@lilydesignsystem/angular-headless 0.4.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.
@@ -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
  });
@@ -12078,7 +12356,11 @@ i0.ɵɵngDeclareClassMetadata({
12078
12356
  });
12079
12357
  var DateRange = class DateRange {
12080
12358
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
12359
+ startLabel = input("", ...ngDevMode ? [{ debugName: "startLabel" }] : /* istanbul ignore next */ []);
12360
+ endLabel = input("", ...ngDevMode ? [{ debugName: "endLabel" }] : /* istanbul ignore next */ []);
12081
12361
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
12362
+ start = model("", ...ngDevMode ? [{ debugName: "start" }] : /* istanbul ignore next */ []);
12363
+ end = model("", ...ngDevMode ? [{ debugName: "end" }] : /* istanbul ignore next */ []);
12082
12364
  static ɵfac = i0.ɵɵngDeclareFactory({
12083
12365
  minVersion: "12.0.0",
12084
12366
  version: "22.2.1",
@@ -12101,16 +12383,63 @@ var DateRange = class DateRange {
12101
12383
  isRequired: false,
12102
12384
  transformFunction: null
12103
12385
  },
12386
+ startLabel: {
12387
+ classPropertyName: "startLabel",
12388
+ publicName: "startLabel",
12389
+ isSignal: true,
12390
+ isRequired: false,
12391
+ transformFunction: null
12392
+ },
12393
+ endLabel: {
12394
+ classPropertyName: "endLabel",
12395
+ publicName: "endLabel",
12396
+ isSignal: true,
12397
+ isRequired: false,
12398
+ transformFunction: null
12399
+ },
12104
12400
  className: {
12105
12401
  classPropertyName: "className",
12106
12402
  publicName: "className",
12107
12403
  isSignal: true,
12108
12404
  isRequired: false,
12109
12405
  transformFunction: null
12406
+ },
12407
+ start: {
12408
+ classPropertyName: "start",
12409
+ publicName: "start",
12410
+ isSignal: true,
12411
+ isRequired: false,
12412
+ transformFunction: null
12413
+ },
12414
+ end: {
12415
+ classPropertyName: "end",
12416
+ publicName: "end",
12417
+ isSignal: true,
12418
+ isRequired: false,
12419
+ transformFunction: null
12110
12420
  }
12111
12421
  },
12422
+ outputs: {
12423
+ start: "startChange",
12424
+ end: "endChange"
12425
+ },
12112
12426
  ngImport: i0,
12113
- template: `<div class="date-range {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
12427
+ template: `<fieldset class="date-range {{ className() }}" [attr.aria-label]="label() || null">
12428
+ <input
12429
+ class="date-input"
12430
+ type="date"
12431
+ [attr.aria-label]="startLabel() || null"
12432
+ [value]="start()"
12433
+ (input)="start.set($any($event.target).value)"
12434
+ />
12435
+ <input
12436
+ class="date-input"
12437
+ type="date"
12438
+ [attr.aria-label]="endLabel() || null"
12439
+ [value]="end()"
12440
+ (input)="end.set($any($event.target).value)"
12441
+ />
12442
+ </fieldset>`,
12114
12443
  isInline: true,
12115
12444
  changeDetection: i0.ChangeDetectionStrategy.OnPush
12116
12445
  });
@@ -12125,7 +12454,22 @@ i0.ɵɵngDeclareClassMetadata({
12125
12454
  args: [{
12126
12455
  selector: "lily-date-range",
12127
12456
  standalone: true,
12128
- template: `<div class="date-range {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
12457
+ template: `<fieldset class="date-range {{ className() }}" [attr.aria-label]="label() || null">
12458
+ <input
12459
+ class="date-input"
12460
+ type="date"
12461
+ [attr.aria-label]="startLabel() || null"
12462
+ [value]="start()"
12463
+ (input)="start.set($any($event.target).value)"
12464
+ />
12465
+ <input
12466
+ class="date-input"
12467
+ type="date"
12468
+ [attr.aria-label]="endLabel() || null"
12469
+ [value]="end()"
12470
+ (input)="end.set($any($event.target).value)"
12471
+ />
12472
+ </fieldset>`,
12129
12473
  changeDetection: ChangeDetectionStrategy.OnPush
12130
12474
  }]
12131
12475
  }],
@@ -12138,6 +12482,22 @@ i0.ɵɵngDeclareClassMetadata({
12138
12482
  required: false
12139
12483
  }]
12140
12484
  }],
12485
+ startLabel: [{
12486
+ type: i0.Input,
12487
+ args: [{
12488
+ isSignal: true,
12489
+ alias: "startLabel",
12490
+ required: false
12491
+ }]
12492
+ }],
12493
+ endLabel: [{
12494
+ type: i0.Input,
12495
+ args: [{
12496
+ isSignal: true,
12497
+ alias: "endLabel",
12498
+ required: false
12499
+ }]
12500
+ }],
12141
12501
  className: [{
12142
12502
  type: i0.Input,
12143
12503
  args: [{
@@ -12145,6 +12505,28 @@ i0.ɵɵngDeclareClassMetadata({
12145
12505
  alias: "className",
12146
12506
  required: false
12147
12507
  }]
12508
+ }],
12509
+ start: [{
12510
+ type: i0.Input,
12511
+ args: [{
12512
+ isSignal: true,
12513
+ alias: "start",
12514
+ required: false
12515
+ }]
12516
+ }, {
12517
+ type: i0.Output,
12518
+ args: ["startChange"]
12519
+ }],
12520
+ end: [{
12521
+ type: i0.Input,
12522
+ args: [{
12523
+ isSignal: true,
12524
+ alias: "end",
12525
+ required: false
12526
+ }]
12527
+ }, {
12528
+ type: i0.Output,
12529
+ args: ["endChange"]
12148
12530
  }]
12149
12531
  }
12150
12532
  });
@@ -36357,7 +36739,7 @@ var RadioGroup = class RadioGroup {
36357
36739
  }
36358
36740
  },
36359
36741
  ngImport: i0,
36360
- 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>`,
36361
36743
  isInline: true,
36362
36744
  changeDetection: i0.ChangeDetectionStrategy.OnPush
36363
36745
  });
@@ -36372,7 +36754,7 @@ i0.ɵɵngDeclareClassMetadata({
36372
36754
  args: [{
36373
36755
  selector: "lily-radio-group",
36374
36756
  standalone: true,
36375
- 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>`,
36376
36758
  changeDetection: ChangeDetectionStrategy.OnPush
36377
36759
  }]
36378
36760
  }],
@@ -37431,6 +37813,7 @@ i0.ɵɵngDeclareClassMetadata({
37431
37813
  });
37432
37814
  var ReviewDate = class ReviewDate {
37433
37815
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
37816
+ datetime = input("", ...ngDevMode ? [{ debugName: "datetime" }] : /* istanbul ignore next */ []);
37434
37817
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
37435
37818
  static ɵfac = i0.ɵɵngDeclareFactory({
37436
37819
  minVersion: "12.0.0",
@@ -37454,6 +37837,13 @@ var ReviewDate = class ReviewDate {
37454
37837
  isRequired: false,
37455
37838
  transformFunction: null
37456
37839
  },
37840
+ datetime: {
37841
+ classPropertyName: "datetime",
37842
+ publicName: "datetime",
37843
+ isSignal: true,
37844
+ isRequired: false,
37845
+ transformFunction: null
37846
+ },
37457
37847
  className: {
37458
37848
  classPropertyName: "className",
37459
37849
  publicName: "className",
@@ -37463,7 +37853,12 @@ var ReviewDate = class ReviewDate {
37463
37853
  }
37464
37854
  },
37465
37855
  ngImport: i0,
37466
- template: `<div class="review-date {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
37856
+ template: `<time
37857
+ class="review-date {{ className() }}"
37858
+ [attr.aria-label]="label() || null"
37859
+ [attr.datetime]="datetime() || null"
37860
+ ><ng-content
37861
+ /></time>`,
37467
37862
  isInline: true,
37468
37863
  changeDetection: i0.ChangeDetectionStrategy.OnPush
37469
37864
  });
@@ -37478,7 +37873,12 @@ i0.ɵɵngDeclareClassMetadata({
37478
37873
  args: [{
37479
37874
  selector: "lily-review-date",
37480
37875
  standalone: true,
37481
- template: `<div class="review-date {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
37876
+ template: `<time
37877
+ class="review-date {{ className() }}"
37878
+ [attr.aria-label]="label() || null"
37879
+ [attr.datetime]="datetime() || null"
37880
+ ><ng-content
37881
+ /></time>`,
37482
37882
  changeDetection: ChangeDetectionStrategy.OnPush
37483
37883
  }]
37484
37884
  }],
@@ -37491,6 +37891,14 @@ i0.ɵɵngDeclareClassMetadata({
37491
37891
  required: false
37492
37892
  }]
37493
37893
  }],
37894
+ datetime: [{
37895
+ type: i0.Input,
37896
+ args: [{
37897
+ isSignal: true,
37898
+ alias: "datetime",
37899
+ required: false
37900
+ }]
37901
+ }],
37494
37902
  className: [{
37495
37903
  type: i0.Input,
37496
37904
  args: [{
@@ -39692,6 +40100,9 @@ i0.ɵɵngDeclareClassMetadata({
39692
40100
  var SegmentGroupItem = class SegmentGroupItem {
39693
40101
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
39694
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 */ []);
39695
40106
  static ɵfac = i0.ɵɵngDeclareFactory({
39696
40107
  minVersion: "12.0.0",
39697
40108
  version: "22.2.1",
@@ -39720,10 +40131,40 @@ var SegmentGroupItem = class SegmentGroupItem {
39720
40131
  isSignal: true,
39721
40132
  isRequired: false,
39722
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
39723
40155
  }
39724
40156
  },
39725
40157
  ngImport: i0,
39726
- 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>`,
39727
40168
  isInline: true,
39728
40169
  changeDetection: i0.ChangeDetectionStrategy.OnPush
39729
40170
  });
@@ -39738,7 +40179,16 @@ i0.ɵɵngDeclareClassMetadata({
39738
40179
  args: [{
39739
40180
  selector: "lily-segment-group-item",
39740
40181
  standalone: true,
39741
- 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>`,
39742
40192
  changeDetection: ChangeDetectionStrategy.OnPush
39743
40193
  }]
39744
40194
  }],
@@ -39758,6 +40208,30 @@ i0.ɵɵngDeclareClassMetadata({
39758
40208
  alias: "className",
39759
40209
  required: false
39760
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
+ }]
39761
40235
  }]
39762
40236
  }
39763
40237
  });
@@ -44562,6 +45036,7 @@ i0.ɵɵngDeclareClassMetadata({
44562
45036
  var Tag = class Tag {
44563
45037
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
44564
45038
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
45039
+ live = input(false, ...ngDevMode ? [{ debugName: "live" }] : /* istanbul ignore next */ []);
44565
45040
  static ɵfac = i0.ɵɵngDeclareFactory({
44566
45041
  minVersion: "12.0.0",
44567
45042
  version: "22.2.1",
@@ -44571,7 +45046,7 @@ var Tag = class Tag {
44571
45046
  target: i0.ɵɵFactoryTarget.Component
44572
45047
  });
44573
45048
  static ɵcmp = i0.ɵɵngDeclareComponent({
44574
- minVersion: "17.1.0",
45049
+ minVersion: "17.0.0",
44575
45050
  version: "22.2.1",
44576
45051
  type: Tag,
44577
45052
  isStandalone: true,
@@ -44590,10 +45065,21 @@ var Tag = class Tag {
44590
45065
  isSignal: true,
44591
45066
  isRequired: false,
44592
45067
  transformFunction: null
45068
+ },
45069
+ live: {
45070
+ classPropertyName: "live",
45071
+ publicName: "live",
45072
+ isSignal: true,
45073
+ isRequired: false,
45074
+ transformFunction: null
44593
45075
  }
44594
45076
  },
44595
45077
  ngImport: i0,
44596
- 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
+ }`,
44597
45083
  isInline: true,
44598
45084
  changeDetection: i0.ChangeDetectionStrategy.OnPush
44599
45085
  });
@@ -44608,7 +45094,11 @@ i0.ɵɵngDeclareClassMetadata({
44608
45094
  args: [{
44609
45095
  selector: "lily-tag",
44610
45096
  standalone: true,
44611
- 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
+ }`,
44612
45102
  changeDetection: ChangeDetectionStrategy.OnPush
44613
45103
  }]
44614
45104
  }],
@@ -44628,6 +45118,14 @@ i0.ɵɵngDeclareClassMetadata({
44628
45118
  alias: "className",
44629
45119
  required: false
44630
45120
  }]
45121
+ }],
45122
+ live: [{
45123
+ type: i0.Input,
45124
+ args: [{
45125
+ isSignal: true,
45126
+ alias: "live",
45127
+ required: false
45128
+ }]
44631
45129
  }]
44632
45130
  }
44633
45131
  });