luxen-ui 0.21.2 → 0.21.4

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.
Files changed (60) hide show
  1. package/cdn/custom-elements.json +296 -296
  2. package/cdn/elements/avatar/avatar.js +1 -1
  3. package/cdn/elements/avatar/avatar.js.map +1 -1
  4. package/cdn/elements/combobox/combobox.d.ts +15 -0
  5. package/cdn/elements/combobox/combobox.d.ts.map +1 -1
  6. package/cdn/elements/combobox/combobox.js +2 -2
  7. package/cdn/elements/combobox/combobox.js.map +1 -1
  8. package/cdn/elements/dialog/dialog.styles.js +1 -1
  9. package/cdn/elements/dialog/dialog.styles.js.map +1 -1
  10. package/cdn/elements/dropdown-label/dropdown-label.js +1 -1
  11. package/cdn/elements/dropdown-label/dropdown-label.js.map +1 -1
  12. package/cdn/elements/select/select.d.ts +10 -0
  13. package/cdn/elements/select/select.d.ts.map +1 -1
  14. package/cdn/elements/select/select.js +2 -2
  15. package/cdn/elements/select/select.js.map +1 -1
  16. package/cdn/elements/stories-viewer/stories-viewer.js +1 -1
  17. package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -1
  18. package/cdn/shared/controllers/datalist-observer.d.ts +42 -0
  19. package/cdn/shared/controllers/datalist-observer.d.ts.map +1 -0
  20. package/cdn/shared/controllers/datalist-observer.js +2 -0
  21. package/cdn/shared/controllers/datalist-observer.js.map +1 -0
  22. package/cdn/standalone.css +9 -9
  23. package/cdn/styles/elements/disclosure.css +1 -1
  24. package/cdn/styles/elements/divider.css +1 -1
  25. package/cdn/styles/elements/kbd.css +1 -1
  26. package/cdn/styles/elements/prose-editor.css +1 -1
  27. package/cdn/styles/elements/segmented-control.css +1 -1
  28. package/cdn/styles/elements/select.css +1 -1
  29. package/cdn/styles/elements/story.css +1 -1
  30. package/cdn/styles/elements/tabs/enclosed.css +1 -1
  31. package/cdn/styles/elements/tabs/line.css +1 -1
  32. package/dist/css/elements/disclosure.css +1 -1
  33. package/dist/css/elements/divider.css +1 -1
  34. package/dist/css/elements/kbd.css +1 -1
  35. package/dist/css/elements/prose-editor.css +1 -1
  36. package/dist/css/elements/segmented-control.css +1 -1
  37. package/dist/css/elements/select.css +1 -1
  38. package/dist/css/elements/story.css +1 -1
  39. package/dist/css/elements/tabs/enclosed.css +1 -1
  40. package/dist/css/elements/tabs/line.css +1 -1
  41. package/dist/custom-elements.json +296 -296
  42. package/dist/elements/avatar/avatar.css +2 -2
  43. package/dist/elements/combobox/combobox.css +1 -1
  44. package/dist/elements/combobox/combobox.d.ts +15 -0
  45. package/dist/elements/combobox/combobox.d.ts.map +1 -1
  46. package/dist/elements/combobox/combobox.js +33 -1
  47. package/dist/elements/dialog/dialog.css +1 -1
  48. package/dist/elements/dropdown-label/dropdown-label.css +1 -1
  49. package/dist/elements/select/select.css +2 -2
  50. package/dist/elements/select/select.d.ts +10 -0
  51. package/dist/elements/select/select.d.ts.map +1 -1
  52. package/dist/elements/select/select.js +19 -0
  53. package/dist/elements/stories-viewer/stories-viewer.css +1 -1
  54. package/dist/metadata/index.json +1 -1
  55. package/dist/shared/controllers/datalist-observer.d.ts +42 -0
  56. package/dist/shared/controllers/datalist-observer.d.ts.map +1 -0
  57. package/dist/shared/controllers/datalist-observer.js +79 -0
  58. package/dist/templates/elements/combobox.md +11 -0
  59. package/dist/templates/elements/select.md +11 -0
  60. package/package.json +1 -1
@@ -2,176 +2,6 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "readme": "",
4
4
  "modules": [
5
- {
6
- "kind": "javascript-module",
7
- "path": "src/html/elements/alert/alert.ts",
8
- "declarations": [
9
- {
10
- "kind": "class",
11
- "description": "",
12
- "name": "Alert",
13
- "cssProperties": [
14
- {
15
- "description": "Gap between the icon, content, and close button.",
16
- "name": "--gap",
17
- "default": "0.75rem"
18
- },
19
- {
20
- "description": "Inner padding.",
21
- "name": "--padding",
22
- "default": "1rem"
23
- },
24
- {
25
- "description": "Corner radius.",
26
- "name": "--border-radius",
27
- "default": "8px"
28
- }
29
- ],
30
- "members": [
31
- {
32
- "kind": "field",
33
- "name": "variant",
34
- "type": {
35
- "text": "AlertVariant | undefined"
36
- },
37
- "description": "Semantic variant: `info`, `success`, `warning`, or `danger`. Default is neutral.",
38
- "attribute": "variant",
39
- "reflects": true
40
- },
41
- {
42
- "kind": "field",
43
- "name": "icon",
44
- "type": {
45
- "text": "string | undefined"
46
- },
47
- "description": "Iconify icon name (e.g. `lucide:bell`) overriding the variant's default icon.",
48
- "attribute": "icon"
49
- },
50
- {
51
- "kind": "field",
52
- "name": "withoutIcon",
53
- "type": {
54
- "text": "boolean"
55
- },
56
- "default": "false",
57
- "description": "Hide the leading icon entirely.",
58
- "attribute": "without-icon"
59
- },
60
- {
61
- "kind": "field",
62
- "name": "dismissible",
63
- "type": {
64
- "text": "boolean"
65
- },
66
- "default": "false",
67
- "description": "Show a close button that dismisses the alert when clicked.",
68
- "attribute": "dismissible",
69
- "reflects": true
70
- }
71
- ],
72
- "events": [
73
- {
74
- "name": "hide",
75
- "description": "Emitted when a dismissible alert is about to close. Cancelable — call `event.preventDefault()` to keep it open.",
76
- "cancelable": true
77
- },
78
- {
79
- "name": "after-hide",
80
- "description": "Emitted after the dismiss animation completes and the alert is removed from the DOM. Not cancelable.",
81
- "cancelable": false
82
- }
83
- ],
84
- "attributes": [
85
- {
86
- "name": "variant",
87
- "type": {
88
- "text": "AlertVariant | undefined"
89
- },
90
- "description": "Semantic variant: `info`, `success`, `warning`, or `danger`. Default is neutral.",
91
- "fieldName": "variant"
92
- },
93
- {
94
- "name": "icon",
95
- "type": {
96
- "text": "string | undefined"
97
- },
98
- "description": "Iconify icon name (e.g. `lucide:bell`) overriding the variant's default icon.",
99
- "fieldName": "icon"
100
- },
101
- {
102
- "name": "without-icon",
103
- "type": {
104
- "text": "boolean"
105
- },
106
- "default": "false",
107
- "description": "Hide the leading icon entirely.",
108
- "fieldName": "withoutIcon"
109
- },
110
- {
111
- "name": "dismissible",
112
- "type": {
113
- "text": "boolean"
114
- },
115
- "default": "false",
116
- "description": "Show a close button that dismisses the alert when clicked.",
117
- "fieldName": "dismissible"
118
- }
119
- ],
120
- "superclass": {
121
- "name": "LuxenElement",
122
- "module": "/src/html/shared/luxen-element.js"
123
- },
124
- "tagName": "l-alert",
125
- "customElement": true,
126
- "summary": "A callout box that highlights contextual information with a semantic color and a leading icon.",
127
- "examples": [
128
- {
129
- "language": "html",
130
- "code": "<l-alert variant=\"warning\" dismissible>\n <span class=\"l-alert-title\">Heads up</span>\n This action cannot be undone.\n</l-alert>"
131
- }
132
- ],
133
- "_cssClasses": [
134
- {
135
- "name": ".l-alert-icon",
136
- "description": "The leading icon, colored by variant (auto-injected)."
137
- },
138
- {
139
- "name": ".l-alert-content",
140
- "description": "Wrapper the authored children are moved into; stacks them vertically (auto-injected)."
141
- },
142
- {
143
- "name": ".l-alert-title",
144
- "description": "Optional bold heading placed above the body content. Use a real heading element (e.g. `<h3 class=\"l-alert-title\">`) when the alert is a section callout so it is reachable by heading navigation."
145
- }
146
- ]
147
- }
148
- ],
149
- "exports": [
150
- {
151
- "kind": "js",
152
- "name": "Alert",
153
- "declaration": {
154
- "name": "Alert",
155
- "module": "src/html/elements/alert/alert.ts"
156
- }
157
- }
158
- ]
159
- },
160
- {
161
- "kind": "javascript-module",
162
- "path": "src/html/elements/alert/index.ts",
163
- "declarations": [],
164
- "exports": [
165
- {
166
- "kind": "js",
167
- "name": "*",
168
- "declaration": {
169
- "name": "*",
170
- "module": "src/html/elements/alert/alert.js"
171
- }
172
- }
173
- ]
174
- },
175
5
  {
176
6
  "kind": "javascript-module",
177
7
  "path": "src/html/elements/alert-dialog/alert-dialog.ts",
@@ -629,17 +459,187 @@
629
459
  },
630
460
  {
631
461
  "kind": "js",
632
- "name": "AlertDialog",
462
+ "name": "AlertDialog",
463
+ "declaration": {
464
+ "name": "AlertDialog",
465
+ "module": "src/html/elements/alert-dialog/alert-dialog.ts"
466
+ }
467
+ }
468
+ ]
469
+ },
470
+ {
471
+ "kind": "javascript-module",
472
+ "path": "src/html/elements/alert-dialog/index.ts",
473
+ "declarations": [],
474
+ "exports": [
475
+ {
476
+ "kind": "js",
477
+ "name": "*",
478
+ "declaration": {
479
+ "name": "*",
480
+ "module": "src/html/elements/alert-dialog/alert-dialog.js"
481
+ }
482
+ }
483
+ ]
484
+ },
485
+ {
486
+ "kind": "javascript-module",
487
+ "path": "src/html/elements/alert/alert.ts",
488
+ "declarations": [
489
+ {
490
+ "kind": "class",
491
+ "description": "",
492
+ "name": "Alert",
493
+ "cssProperties": [
494
+ {
495
+ "description": "Gap between the icon, content, and close button.",
496
+ "name": "--gap",
497
+ "default": "0.75rem"
498
+ },
499
+ {
500
+ "description": "Inner padding.",
501
+ "name": "--padding",
502
+ "default": "1rem"
503
+ },
504
+ {
505
+ "description": "Corner radius.",
506
+ "name": "--border-radius",
507
+ "default": "8px"
508
+ }
509
+ ],
510
+ "members": [
511
+ {
512
+ "kind": "field",
513
+ "name": "variant",
514
+ "type": {
515
+ "text": "AlertVariant | undefined"
516
+ },
517
+ "description": "Semantic variant: `info`, `success`, `warning`, or `danger`. Default is neutral.",
518
+ "attribute": "variant",
519
+ "reflects": true
520
+ },
521
+ {
522
+ "kind": "field",
523
+ "name": "icon",
524
+ "type": {
525
+ "text": "string | undefined"
526
+ },
527
+ "description": "Iconify icon name (e.g. `lucide:bell`) overriding the variant's default icon.",
528
+ "attribute": "icon"
529
+ },
530
+ {
531
+ "kind": "field",
532
+ "name": "withoutIcon",
533
+ "type": {
534
+ "text": "boolean"
535
+ },
536
+ "default": "false",
537
+ "description": "Hide the leading icon entirely.",
538
+ "attribute": "without-icon"
539
+ },
540
+ {
541
+ "kind": "field",
542
+ "name": "dismissible",
543
+ "type": {
544
+ "text": "boolean"
545
+ },
546
+ "default": "false",
547
+ "description": "Show a close button that dismisses the alert when clicked.",
548
+ "attribute": "dismissible",
549
+ "reflects": true
550
+ }
551
+ ],
552
+ "events": [
553
+ {
554
+ "name": "hide",
555
+ "description": "Emitted when a dismissible alert is about to close. Cancelable — call `event.preventDefault()` to keep it open.",
556
+ "cancelable": true
557
+ },
558
+ {
559
+ "name": "after-hide",
560
+ "description": "Emitted after the dismiss animation completes and the alert is removed from the DOM. Not cancelable.",
561
+ "cancelable": false
562
+ }
563
+ ],
564
+ "attributes": [
565
+ {
566
+ "name": "variant",
567
+ "type": {
568
+ "text": "AlertVariant | undefined"
569
+ },
570
+ "description": "Semantic variant: `info`, `success`, `warning`, or `danger`. Default is neutral.",
571
+ "fieldName": "variant"
572
+ },
573
+ {
574
+ "name": "icon",
575
+ "type": {
576
+ "text": "string | undefined"
577
+ },
578
+ "description": "Iconify icon name (e.g. `lucide:bell`) overriding the variant's default icon.",
579
+ "fieldName": "icon"
580
+ },
581
+ {
582
+ "name": "without-icon",
583
+ "type": {
584
+ "text": "boolean"
585
+ },
586
+ "default": "false",
587
+ "description": "Hide the leading icon entirely.",
588
+ "fieldName": "withoutIcon"
589
+ },
590
+ {
591
+ "name": "dismissible",
592
+ "type": {
593
+ "text": "boolean"
594
+ },
595
+ "default": "false",
596
+ "description": "Show a close button that dismisses the alert when clicked.",
597
+ "fieldName": "dismissible"
598
+ }
599
+ ],
600
+ "superclass": {
601
+ "name": "LuxenElement",
602
+ "module": "/src/html/shared/luxen-element.js"
603
+ },
604
+ "tagName": "l-alert",
605
+ "customElement": true,
606
+ "summary": "A callout box that highlights contextual information with a semantic color and a leading icon.",
607
+ "examples": [
608
+ {
609
+ "language": "html",
610
+ "code": "<l-alert variant=\"warning\" dismissible>\n <span class=\"l-alert-title\">Heads up</span>\n This action cannot be undone.\n</l-alert>"
611
+ }
612
+ ],
613
+ "_cssClasses": [
614
+ {
615
+ "name": ".l-alert-icon",
616
+ "description": "The leading icon, colored by variant (auto-injected)."
617
+ },
618
+ {
619
+ "name": ".l-alert-content",
620
+ "description": "Wrapper the authored children are moved into; stacks them vertically (auto-injected)."
621
+ },
622
+ {
623
+ "name": ".l-alert-title",
624
+ "description": "Optional bold heading placed above the body content. Use a real heading element (e.g. `<h3 class=\"l-alert-title\">`) when the alert is a section callout so it is reachable by heading navigation."
625
+ }
626
+ ]
627
+ }
628
+ ],
629
+ "exports": [
630
+ {
631
+ "kind": "js",
632
+ "name": "Alert",
633
633
  "declaration": {
634
- "name": "AlertDialog",
635
- "module": "src/html/elements/alert-dialog/alert-dialog.ts"
634
+ "name": "Alert",
635
+ "module": "src/html/elements/alert/alert.ts"
636
636
  }
637
637
  }
638
638
  ]
639
639
  },
640
640
  {
641
641
  "kind": "javascript-module",
642
- "path": "src/html/elements/alert-dialog/index.ts",
642
+ "path": "src/html/elements/alert/index.ts",
643
643
  "declarations": [],
644
644
  "exports": [
645
645
  {
@@ -647,7 +647,7 @@
647
647
  "name": "*",
648
648
  "declaration": {
649
649
  "name": "*",
650
- "module": "src/html/elements/alert-dialog/alert-dialog.js"
650
+ "module": "src/html/elements/alert/alert.js"
651
651
  }
652
652
  }
653
653
  ]
@@ -4796,6 +4796,45 @@
4796
4796
  }
4797
4797
  ]
4798
4798
  },
4799
+ {
4800
+ "kind": "javascript-module",
4801
+ "path": "src/html/elements/kbd/kbd.meta.ts",
4802
+ "declarations": [
4803
+ {
4804
+ "kind": "class",
4805
+ "description": "",
4806
+ "name": "KbdMeta",
4807
+ "summary": "Displays keyboard keys or shortcuts inline with text.",
4808
+ "examples": [
4809
+ {
4810
+ "title": "Single key",
4811
+ "language": "html",
4812
+ "code": "<kbd class=\"l-kbd\">Esc</kbd>"
4813
+ }
4814
+ ],
4815
+ "_cssClasses": [
4816
+ {
4817
+ "name": ".l-kbd",
4818
+ "description": "Base class for keyboard key styling on `<kbd>` elements."
4819
+ }
4820
+ ],
4821
+ "customElement": false,
4822
+ "_native": true,
4823
+ "_nativeTag": "kbd",
4824
+ "selector": ".l-kbd"
4825
+ }
4826
+ ],
4827
+ "exports": [
4828
+ {
4829
+ "kind": "js",
4830
+ "name": "KbdMeta",
4831
+ "declaration": {
4832
+ "name": "KbdMeta",
4833
+ "module": "src/html/elements/kbd/kbd.meta.ts"
4834
+ }
4835
+ }
4836
+ ]
4837
+ },
4799
4838
  {
4800
4839
  "kind": "javascript-module",
4801
4840
  "path": "src/html/elements/input-stepper/index.ts",
@@ -5032,45 +5071,6 @@
5032
5071
  }
5033
5072
  ]
5034
5073
  },
5035
- {
5036
- "kind": "javascript-module",
5037
- "path": "src/html/elements/kbd/kbd.meta.ts",
5038
- "declarations": [
5039
- {
5040
- "kind": "class",
5041
- "description": "",
5042
- "name": "KbdMeta",
5043
- "summary": "Displays keyboard keys or shortcuts inline with text.",
5044
- "examples": [
5045
- {
5046
- "title": "Single key",
5047
- "language": "html",
5048
- "code": "<kbd class=\"l-kbd\">Esc</kbd>"
5049
- }
5050
- ],
5051
- "_cssClasses": [
5052
- {
5053
- "name": ".l-kbd",
5054
- "description": "Base class for keyboard key styling on `<kbd>` elements."
5055
- }
5056
- ],
5057
- "customElement": false,
5058
- "_native": true,
5059
- "_nativeTag": "kbd",
5060
- "selector": ".l-kbd"
5061
- }
5062
- ],
5063
- "exports": [
5064
- {
5065
- "kind": "js",
5066
- "name": "KbdMeta",
5067
- "declaration": {
5068
- "name": "KbdMeta",
5069
- "module": "src/html/elements/kbd/kbd.meta.ts"
5070
- }
5071
- }
5072
- ]
5073
- },
5074
5074
  {
5075
5075
  "kind": "javascript-module",
5076
5076
  "path": "src/html/elements/popover/index.ts",
@@ -6545,6 +6545,88 @@
6545
6545
  }
6546
6546
  ]
6547
6547
  },
6548
+ {
6549
+ "kind": "javascript-module",
6550
+ "path": "src/html/elements/skeleton/index.ts",
6551
+ "declarations": [],
6552
+ "exports": [
6553
+ {
6554
+ "kind": "js",
6555
+ "name": "*",
6556
+ "declaration": {
6557
+ "name": "*",
6558
+ "module": "src/html/elements/skeleton/skeleton.js"
6559
+ }
6560
+ }
6561
+ ]
6562
+ },
6563
+ {
6564
+ "kind": "javascript-module",
6565
+ "path": "src/html/elements/skeleton/skeleton.ts",
6566
+ "declarations": [
6567
+ {
6568
+ "kind": "class",
6569
+ "description": "",
6570
+ "name": "Skeleton",
6571
+ "cssProperties": [
6572
+ {
6573
+ "description": "Width of the skeleton",
6574
+ "name": "--width"
6575
+ },
6576
+ {
6577
+ "description": "Height of the skeleton",
6578
+ "name": "--height"
6579
+ }
6580
+ ],
6581
+ "members": [],
6582
+ "attributes": [
6583
+ {
6584
+ "description": "circle | text — Placeholder shape. Default is a block.",
6585
+ "name": "shape"
6586
+ },
6587
+ {
6588
+ "description": "pulse | wave — Loading animation. Default is `pulse`.",
6589
+ "name": "animation"
6590
+ }
6591
+ ],
6592
+ "superclass": {
6593
+ "name": "LuxenElement",
6594
+ "module": "/src/html/shared/luxen-element.js"
6595
+ },
6596
+ "tagName": "l-skeleton",
6597
+ "customElement": true,
6598
+ "summary": "A skeleton loading placeholder.",
6599
+ "_attributes": [
6600
+ {
6601
+ "name": "shape",
6602
+ "values": [
6603
+ "circle",
6604
+ "text"
6605
+ ],
6606
+ "description": "Placeholder shape. Default is a block."
6607
+ },
6608
+ {
6609
+ "name": "animation",
6610
+ "values": [
6611
+ "pulse",
6612
+ "wave"
6613
+ ],
6614
+ "description": "Loading animation. Default is `pulse`."
6615
+ }
6616
+ ]
6617
+ }
6618
+ ],
6619
+ "exports": [
6620
+ {
6621
+ "kind": "js",
6622
+ "name": "Skeleton",
6623
+ "declaration": {
6624
+ "name": "Skeleton",
6625
+ "module": "src/html/elements/skeleton/skeleton.ts"
6626
+ }
6627
+ }
6628
+ ]
6629
+ },
6548
6630
  {
6549
6631
  "kind": "javascript-module",
6550
6632
  "path": "src/html/elements/select/index.ts",
@@ -6923,88 +7005,6 @@
6923
7005
  }
6924
7006
  ]
6925
7007
  },
6926
- {
6927
- "kind": "javascript-module",
6928
- "path": "src/html/elements/skeleton/index.ts",
6929
- "declarations": [],
6930
- "exports": [
6931
- {
6932
- "kind": "js",
6933
- "name": "*",
6934
- "declaration": {
6935
- "name": "*",
6936
- "module": "src/html/elements/skeleton/skeleton.js"
6937
- }
6938
- }
6939
- ]
6940
- },
6941
- {
6942
- "kind": "javascript-module",
6943
- "path": "src/html/elements/skeleton/skeleton.ts",
6944
- "declarations": [
6945
- {
6946
- "kind": "class",
6947
- "description": "",
6948
- "name": "Skeleton",
6949
- "cssProperties": [
6950
- {
6951
- "description": "Width of the skeleton",
6952
- "name": "--width"
6953
- },
6954
- {
6955
- "description": "Height of the skeleton",
6956
- "name": "--height"
6957
- }
6958
- ],
6959
- "members": [],
6960
- "attributes": [
6961
- {
6962
- "description": "circle | text — Placeholder shape. Default is a block.",
6963
- "name": "shape"
6964
- },
6965
- {
6966
- "description": "pulse | wave — Loading animation. Default is `pulse`.",
6967
- "name": "animation"
6968
- }
6969
- ],
6970
- "superclass": {
6971
- "name": "LuxenElement",
6972
- "module": "/src/html/shared/luxen-element.js"
6973
- },
6974
- "tagName": "l-skeleton",
6975
- "customElement": true,
6976
- "summary": "A skeleton loading placeholder.",
6977
- "_attributes": [
6978
- {
6979
- "name": "shape",
6980
- "values": [
6981
- "circle",
6982
- "text"
6983
- ],
6984
- "description": "Placeholder shape. Default is a block."
6985
- },
6986
- {
6987
- "name": "animation",
6988
- "values": [
6989
- "pulse",
6990
- "wave"
6991
- ],
6992
- "description": "Loading animation. Default is `pulse`."
6993
- }
6994
- ]
6995
- }
6996
- ],
6997
- "exports": [
6998
- {
6999
- "kind": "js",
7000
- "name": "Skeleton",
7001
- "declaration": {
7002
- "name": "Skeleton",
7003
- "module": "src/html/elements/skeleton/skeleton.ts"
7004
- }
7005
- }
7006
- ]
7007
- },
7008
7008
  {
7009
7009
  "kind": "javascript-module",
7010
7010
  "path": "src/html/elements/slider/index.ts",
@@ -1,4 +1,4 @@
1
- import{i as e}from"../../chunks/lit.js";import{i as t,r as n,t as r}from"../../chunks/decorate.js";import{a as i,o as a,t as o}from"../../chunks/lit-html.js";import{LuxenElement as s}from"../../shared/luxen-element.js";import{r as c,t as l}from"../../chunks/static-html.js";import u from"../../shared/styles/host.styles.js";var d=e(`:host{--size:40px;--_font-size:calc(var(--size) * .4);width:var(--size);height:var(--size);border-radius:calc(var(--size) * .15);isolation:isolate;vertical-align:middle;color:var(--l-color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}:host([size=xs]){--size:24px;--_font-size:.75rem}:host([size=sm]){--size:32px;--_font-size:.875rem}:host([size=lg]){--size:48px;--_font-size:1.25rem}:host([size=xl]){--size:56px;--_font-size:1.25rem}img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.initials{margin:auto}.icon{color:currentColor;width:60%;height:60%}.badge{z-index:1;min-width:12px;height:12px;box-shadow:0 0 0 2px var(--l-color-surface);background-color:var(--l-color-surface);font-variant-numeric:tabular-nums;color:var(--l-color-text-primary);border-radius:3px;justify-content:center;align-items:center;padding-inline:2px;font-size:.625rem;font-weight:500;line-height:1;display:flex;position:absolute;bottom:0;right:0;overflow:hidden}.base:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--lightningcss-light,oklch(0% 0 0/.07))var(--lightningcss-dark,oklch(100% 0 0/.1))}.base{border-radius:calc(var(--size) * .15);background-color:var(--color,var(--l-color-bg-fill-neutral-soft));--_on:calc(255 * ( 1 - sign(.2126 * (r / 255) * (r / 255) + .7152 * (g / 255) * (g / 255) + .0722 * (b / 255) * (b / 255) - .2) ) / 2);width:100%;height:100%;color:var(--text-color,rgb(from var(--color) var(--_on) var(--_on) var(--_on)));font-size:var(--_font-size);text-transform:uppercase;cursor:inherit;border:none;justify-content:center;align-items:center;padding:0;font-weight:500;line-height:1;display:inline-flex}@supports (color:contrast-color(red)){.base{color:var(--text-color,contrast-color(var(--color)))}}button.base{cursor:pointer}button.base:focus-visible{outline:2px solid var(--l-focus-ring);outline-offset:2px}button.base:hover{box-shadow:inset 0 0 0 1.5px var(--l-color-border-interactive)}@container style(--appearance:circle){.base{border-radius:50%}}`);function f(e=``){let t=e.normalize(`NFC`).trim().split(/\s+/).filter(Boolean);if(t.length===0)return``;let n=e=>[...e][0];return(n(t[0])+(t.length>1?n(t[t.length-1]):``)).toUpperCase()}var p=a`<svg class="icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
1
+ import{i as e}from"../../chunks/lit.js";import{i as t,r as n,t as r}from"../../chunks/decorate.js";import{a as i,o as a,t as o}from"../../chunks/lit-html.js";import{LuxenElement as s}from"../../shared/luxen-element.js";import{r as c,t as l}from"../../chunks/static-html.js";import u from"../../shared/styles/host.styles.js";var d=e(`:host{--size:40px;--_font-size:calc(var(--size) * .4);width:var(--size);height:var(--size);border-radius:calc(var(--size) * .15);isolation:isolate;vertical-align:middle;color:var(--l-color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}:host([size=xs]){--size:24px;--_font-size:.75rem}:host([size=sm]){--size:32px;--_font-size:.875rem}:host([size=lg]){--size:48px;--_font-size:1.25rem}:host([size=xl]){--size:56px;--_font-size:1.25rem}img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.initials{margin:auto}.icon{color:currentColor;width:60%;height:60%}.badge{z-index:1;min-width:12px;height:12px;box-shadow:0 0 0 2px var(--l-color-surface);background-color:var(--l-color-surface);font-size:.625rem;font-weight:var(--l-font-weight-medium);font-variant-numeric:tabular-nums;color:var(--l-color-text-primary);border-radius:3px;justify-content:center;align-items:center;padding-inline:2px;line-height:1;display:flex;position:absolute;bottom:0;right:0;overflow:hidden}.base:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--lightningcss-light,oklch(0% 0 0/.07))var(--lightningcss-dark,oklch(100% 0 0/.1))}.base{border-radius:calc(var(--size) * .15);background-color:var(--color,var(--l-color-bg-fill-neutral-soft));--_on:calc(255 * ( 1 - sign(.2126 * (r / 255) * (r / 255) + .7152 * (g / 255) * (g / 255) + .0722 * (b / 255) * (b / 255) - .2) ) / 2);width:100%;height:100%;color:var(--text-color,rgb(from var(--color) var(--_on) var(--_on) var(--_on)));font-size:var(--_font-size);font-weight:var(--l-font-weight-medium);text-transform:uppercase;cursor:inherit;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}@supports (color:contrast-color(red)){.base{color:var(--text-color,contrast-color(var(--color)))}}button.base{cursor:pointer}button.base:focus-visible{outline:2px solid var(--l-focus-ring);outline-offset:2px}button.base:hover{box-shadow:inset 0 0 0 1.5px var(--l-color-border-interactive)}@container style(--appearance:circle){.base{border-radius:50%}}`);function f(e=``){let t=e.normalize(`NFC`).trim().split(/\s+/).filter(Boolean);if(t.length===0)return``;let n=e=>[...e][0];return(n(t[0])+(t.length>1?n(t[t.length-1]):``)).toUpperCase()}var p=a`<svg class="icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
2
2
  <path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z" />
3
3
  </svg>`,m=class extends s{constructor(...e){super(...e),this.src=``,this.name=``,this.size=`md`,this.badge=0,this.interactive=!1,this._hasError=!1,this._onError=()=>{this._hasError=!0}}static{this.styles=[u,d]}willUpdate(e){e.has(`src`)&&(this._hasError=!1)}connectedCallback(){super.connectedCallback(),!this.interactive&&!this.hasAttribute(`role`)&&this.setAttribute(`role`,`img`)}updated(){this.interactive?(this.getAttribute(`role`)===`img`&&this.removeAttribute(`role`),this.removeAttribute(`aria-label`)):(this.hasAttribute(`role`)||this.setAttribute(`role`,`img`),this.name&&this.setAttribute(`aria-label`,this.name));let e=getComputedStyle(this).getPropertyValue(`--appearance`).trim()===`circle`;this.style.borderRadius=e?`50%`:``}get _tag(){return this.interactive?l`button`:l`div`}render(){let e=this.src&&!this._hasError?i`<img
4
4
  src=${this.src}