@muibook/components 19.6.0 → 20.1.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.
Files changed (172) hide show
  1. package/AGENTS.md +67 -0
  2. package/DESIGN.md +358 -0
  3. package/README.md +53 -2
  4. package/dist/esm/agent/keywords/index.js +2 -173
  5. package/dist/esm/agent/prompts/index.js +6 -432
  6. package/dist/esm/components/mui-accordion/core/index.js +25 -17
  7. package/dist/esm/components/mui-addon/index.js +14 -14
  8. package/dist/esm/components/mui-avatar/index.js +103 -43
  9. package/dist/esm/components/mui-avatar-chip/index.js +158 -0
  10. package/dist/esm/components/mui-avatar-group/index.js +88 -0
  11. package/dist/esm/components/mui-badge/index.js +37 -20
  12. package/dist/esm/components/mui-body/index.js +20 -11
  13. package/dist/esm/components/mui-button/index.js +265 -78
  14. package/dist/esm/components/mui-calendar/index.js +199 -0
  15. package/dist/esm/components/mui-card/body/index.js +33 -18
  16. package/dist/esm/components/mui-card/footer/index.js +11 -9
  17. package/dist/esm/components/mui-carousel/controller/index.js +1 -1
  18. package/dist/esm/components/mui-checkbox/index.js +23 -18
  19. package/dist/esm/components/mui-chip/index.js +219 -73
  20. package/dist/esm/components/mui-chip-input/index.js +146 -137
  21. package/dist/esm/components/mui-chip-rail/index.js +342 -0
  22. package/dist/esm/components/mui-code/index.js +26 -7
  23. package/dist/esm/components/mui-container/index.js +68 -45
  24. package/dist/esm/components/mui-date-picker/index.js +169 -0
  25. package/dist/esm/components/mui-drawer/index.js +968 -100
  26. package/dist/esm/components/mui-dropdown/index.js +255 -59
  27. package/dist/esm/components/mui-field/index.js +1 -1
  28. package/dist/esm/components/mui-file-upload/index.js +14 -4
  29. package/dist/esm/components/mui-form-group/index.js +1 -2
  30. package/dist/esm/components/mui-form-message/index.js +4 -9
  31. package/dist/esm/components/mui-heading/index.js +3 -2
  32. package/dist/esm/components/mui-hint/index.js +178 -72
  33. package/dist/esm/components/mui-icons/copy/index.js +54 -0
  34. package/dist/esm/components/mui-icons/fullscreen/index.js +5 -0
  35. package/dist/esm/components/mui-icons/icon-helper/index.js +56 -0
  36. package/dist/esm/components/mui-icons/index.js +14 -1
  37. package/dist/esm/components/mui-icons/moon/index.js +3 -1
  38. package/dist/esm/components/mui-icons/{rectangle-bottom-panel → panel}/index.js +6 -6
  39. package/dist/esm/components/mui-icons/pause/index.js +5 -0
  40. package/dist/esm/components/mui-icons/picture-in-picture/index.js +5 -0
  41. package/dist/esm/components/mui-icons/play-fill/index.js +5 -0
  42. package/dist/esm/components/mui-icons/rectangle-right-drawer/index.js +56 -0
  43. package/dist/esm/components/mui-icons/reload/index.js +5 -0
  44. package/dist/esm/components/mui-icons/speaker-mute/index.js +5 -0
  45. package/dist/esm/components/mui-icons/speaker-one-wave/index.js +5 -0
  46. package/dist/esm/components/mui-icons/speaker-two-wave/index.js +5 -0
  47. package/dist/esm/components/mui-icons/spinner/index.js +7 -5
  48. package/dist/esm/components/mui-icons/stop-fill/index.js +5 -0
  49. package/dist/esm/components/mui-icons/sun/index.js +5 -5
  50. package/dist/esm/components/mui-icons/timer/index.js +54 -0
  51. package/dist/esm/components/mui-icons/toggle/index.js +16 -6
  52. package/dist/esm/components/mui-icons/vertical-ellipsis/index.js +5 -0
  53. package/dist/esm/components/mui-illustrations/trash/index.js +6 -5
  54. package/dist/esm/components/mui-input/index.js +96 -67
  55. package/dist/esm/components/mui-link/index.js +352 -96
  56. package/dist/esm/components/mui-media-player/index.js +1577 -83
  57. package/dist/esm/components/mui-message/index.js +7 -6
  58. package/dist/esm/components/mui-model-viewer/index.js +258 -0
  59. package/dist/esm/components/mui-progress-ring/index.js +349 -0
  60. package/dist/esm/components/mui-prompt/index.js +143 -115
  61. package/dist/esm/components/mui-prompt-preview/index.js +11 -23
  62. package/dist/esm/components/mui-radio/index.js +38 -17
  63. package/dist/esm/components/mui-range-input/index.js +9 -4
  64. package/dist/esm/components/mui-responsive/index.js +60 -27
  65. package/dist/esm/components/mui-search-input/index.js +300 -0
  66. package/dist/esm/components/mui-select/index.js +235 -46
  67. package/dist/esm/components/mui-slat/slat/index.js +40 -12
  68. package/dist/esm/components/mui-spinner/index.js +11 -9
  69. package/dist/esm/components/mui-stack/hstack/index.js +10 -5
  70. package/dist/esm/components/mui-status/index.js +239 -0
  71. package/dist/esm/components/mui-stepper/step/index.js +46 -32
  72. package/dist/esm/components/mui-switch/index.js +37 -26
  73. package/dist/esm/components/mui-table/row/index.js +2 -6
  74. package/dist/esm/components/mui-table/table/index.js +157 -14
  75. package/dist/esm/components/mui-tabs/controller/index.js +17 -6
  76. package/dist/esm/components/mui-tabs/item/index.js +17 -5
  77. package/dist/esm/components/mui-tabs/tab-bar/index.js +93 -39
  78. package/dist/esm/components/mui-textarea/index.js +43 -26
  79. package/dist/esm/components/mui-time/index/index.js +336 -0
  80. package/dist/esm/components/mui-time-picker/index.js +126 -0
  81. package/dist/esm/components/mui-video-thumbnail/index.js +205 -0
  82. package/dist/esm/css/mui-brand.css +12 -8
  83. package/dist/esm/css/mui-tokens.css +646 -344
  84. package/dist/esm/css/readme.md +2 -2
  85. package/dist/esm/custom-elements.json +4506 -1707
  86. package/dist/esm/dynamic-attrs.json +271 -54
  87. package/dist/esm/index.js +33 -6
  88. package/dist/esm/knowledge/compositions/index.js +1560 -0
  89. package/dist/esm/knowledge/index.js +28 -0
  90. package/dist/esm/knowledge/keywords/index.js +306 -0
  91. package/dist/esm/knowledge/rules/index.js +199 -0
  92. package/dist/esm/tokens/js/index.js +143 -139
  93. package/dist/types/agent/keywords/index.d.ts +1 -1
  94. package/dist/types/components/mui-avatar-chip/api.d.ts +28 -0
  95. package/dist/types/components/mui-avatar-chip/index.d.ts +18 -0
  96. package/dist/types/components/mui-avatar-group/api.d.ts +28 -0
  97. package/dist/types/components/mui-avatar-group/doc.d.ts +2 -0
  98. package/dist/types/components/mui-avatar-group/index.d.ts +1 -0
  99. package/dist/types/components/mui-button/api.d.ts +6 -2
  100. package/dist/types/components/mui-calendar/api.d.ts +41 -0
  101. package/dist/types/components/mui-calendar/doc.d.ts +2 -0
  102. package/dist/types/components/mui-calendar/index.d.ts +3 -0
  103. package/dist/types/components/mui-checkbox/api.d.ts +4 -0
  104. package/dist/types/components/mui-chip/api.d.ts +4 -0
  105. package/dist/types/components/mui-chip-input/api.d.ts +4 -0
  106. package/dist/types/components/mui-chip-rail/api.d.ts +21 -0
  107. package/dist/types/components/mui-chip-rail/doc.d.ts +2 -0
  108. package/dist/types/components/mui-chip-rail/index.d.ts +4 -0
  109. package/dist/types/components/mui-date-picker/api.d.ts +38 -0
  110. package/dist/types/components/mui-date-picker/doc.d.ts +2 -0
  111. package/dist/types/components/mui-date-picker/index.d.ts +6 -0
  112. package/dist/types/components/mui-drawer/api.d.ts +4 -0
  113. package/dist/types/components/mui-drawer/index.d.ts +2 -0
  114. package/dist/types/components/mui-file-upload/api.d.ts +4 -0
  115. package/dist/types/components/mui-icons/fullscreen.d.ts +1 -0
  116. package/dist/types/components/mui-icons/icon-helper.d.ts +1 -0
  117. package/dist/types/components/mui-icons/index.d.ts +14 -1
  118. package/dist/types/components/mui-icons/panel.d.ts +1 -0
  119. package/dist/types/components/mui-icons/pause.d.ts +1 -0
  120. package/dist/types/components/mui-icons/picture-in-picture.d.ts +1 -0
  121. package/dist/types/components/mui-icons/play-fill.d.ts +1 -0
  122. package/dist/types/components/mui-icons/rectangle-right-drawer.d.ts +1 -0
  123. package/dist/types/components/mui-icons/reload.d.ts +1 -0
  124. package/dist/types/components/mui-icons/speaker-mute.d.ts +1 -0
  125. package/dist/types/components/mui-icons/speaker-one-wave.d.ts +1 -0
  126. package/dist/types/components/mui-icons/speaker-two-wave.d.ts +1 -0
  127. package/dist/types/components/mui-icons/stop-fill.d.ts +1 -0
  128. package/dist/types/components/mui-icons/timer.d.ts +1 -0
  129. package/dist/types/components/mui-icons/vertical-ellipsis.d.ts +1 -0
  130. package/dist/types/components/mui-input/api.d.ts +12 -0
  131. package/dist/types/components/mui-link/api.d.ts +4 -0
  132. package/dist/types/components/mui-media-player/api.d.ts +4 -0
  133. package/dist/types/components/mui-media-player/index.d.ts +13 -4
  134. package/dist/types/components/mui-model-viewer/api.d.ts +28 -0
  135. package/dist/types/components/mui-model-viewer/doc.d.ts +2 -0
  136. package/dist/types/components/mui-model-viewer/index.d.ts +17 -0
  137. package/dist/types/components/mui-progress-ring/api.d.ts +24 -0
  138. package/dist/types/components/mui-progress-ring/doc.d.ts +2 -0
  139. package/dist/types/components/mui-progress-ring/index.d.ts +1 -0
  140. package/dist/types/components/mui-radio/api.d.ts +12 -0
  141. package/dist/types/components/mui-range-input/api.d.ts +4 -0
  142. package/dist/types/components/mui-responsive/api.d.ts +10 -2
  143. package/dist/types/components/mui-search-input/api.d.ts +40 -0
  144. package/dist/types/components/mui-search-input/doc.d.ts +2 -0
  145. package/dist/types/components/mui-search-input/index.d.ts +3 -0
  146. package/dist/types/components/mui-select/api.d.ts +12 -0
  147. package/dist/types/components/mui-status/api.d.ts +24 -0
  148. package/dist/types/components/mui-status/doc.d.ts +2 -0
  149. package/dist/types/components/mui-status/index.d.ts +1 -0
  150. package/dist/types/components/mui-switch/api.d.ts +4 -0
  151. package/dist/types/components/mui-table/api.d.ts +15 -0
  152. package/dist/types/components/mui-textarea/api.d.ts +12 -0
  153. package/dist/types/components/mui-time/api.d.ts +41 -0
  154. package/dist/types/components/mui-time/doc.d.ts +2 -0
  155. package/dist/types/components/mui-time/index.d.ts +1 -0
  156. package/dist/types/components/mui-time-picker/api.d.ts +38 -0
  157. package/dist/types/components/mui-time-picker/doc.d.ts +2 -0
  158. package/dist/types/components/mui-time-picker/index.d.ts +4 -0
  159. package/dist/types/components/mui-video-thumbnail/api.d.ts +28 -0
  160. package/dist/types/components/mui-video-thumbnail/doc.d.ts +2 -0
  161. package/dist/types/components/mui-video-thumbnail/index.d.ts +1 -0
  162. package/dist/types/index.d.ts +27 -2
  163. package/dist/types/knowledge/compositions.d.ts +4644 -0
  164. package/dist/types/knowledge/index.d.ts +4657 -0
  165. package/dist/types/knowledge/keywords.d.ts +4 -0
  166. package/dist/types/knowledge/rules.d.ts +1 -0
  167. package/dist/types/tokens/js/index.d.ts +11 -7
  168. package/package.json +131 -12
  169. package/dist/esm/components/mui-form-hint/index.js +0 -1
  170. package/dist/types/components/mui-form-hint/index.d.ts +0 -1
  171. /package/dist/types/components/{mui-form-hint → mui-avatar-chip}/doc.d.ts +0 -0
  172. /package/dist/types/components/mui-icons/{rectangle-bottom-panel.d.ts → copy.d.ts} +0 -0
@@ -0,0 +1,199 @@
1
+ import "../mui-button/index.js";
2
+ import "../mui-icons/left-chevron/index.js";
3
+ import "../mui-icons/right-chevron/index.js";
4
+ class z extends HTMLElement {
5
+ constructor() {
6
+ super(), this.selectedDate = null, this.viewMode = "single", this.attachShadow({ mode: "open" });
7
+ const t = /* @__PURE__ */ new Date();
8
+ this.currentDate = new Date(t.getFullYear(), t.getMonth(), 1);
9
+ }
10
+ static get observedAttributes() {
11
+ return ["value", "view", "min-date", "max-date"];
12
+ }
13
+ get value() {
14
+ return this.getAttribute("value") || "";
15
+ }
16
+ set value(t) {
17
+ this.setAttribute("value", t ?? "");
18
+ }
19
+ focus(t) {
20
+ var i;
21
+ const e = (i = this.shadowRoot) == null ? void 0 : i.querySelector(".selected, .today, .day:not(.empty)");
22
+ e && typeof e.focus == "function" ? e.focus(t) : super.focus(t);
23
+ }
24
+ connectedCallback() {
25
+ this.syncAttributes(), this.render();
26
+ }
27
+ attributeChangedCallback(t, e, i) {
28
+ e !== i && (this.syncAttributes(), this.render());
29
+ }
30
+ syncAttributes() {
31
+ const t = this.getAttribute("value");
32
+ if (t) {
33
+ const e = new Date(t);
34
+ isNaN(e.getTime()) || (this.selectedDate = e, this.hasAttribute("data-initialized") || (this.currentDate = new Date(e.getFullYear(), e.getMonth(), 1), this.setAttribute("data-initialized", "true")));
35
+ }
36
+ this.viewMode = this.getAttribute("view") === "double" ? "double" : "single";
37
+ }
38
+ changeMonth(t) {
39
+ this.currentDate.setMonth(this.currentDate.getMonth() + t), this.render();
40
+ }
41
+ selectDate(t) {
42
+ this.selectedDate = t;
43
+ const e = t.getFullYear(), i = String(t.getMonth() + 1).padStart(2, "0"), h = String(t.getDate()).padStart(2, "0"), o = `${e}-${i}-${h}`;
44
+ this.setAttribute("value", o), this.dispatchEvent(new CustomEvent("change", { detail: { value: o }, bubbles: !0, composed: !0 }));
45
+ }
46
+ renderMonth(t, e) {
47
+ var d, u, g;
48
+ const i = new Date(t, e + 1, 0).getDate(), h = new Date(t, e, 1).getDay(), o = new Intl.DateTimeFormat("en-US", { month: "long" }).format(new Date(t, e, 1)), p = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
49
+ let c = "";
50
+ for (let n = 0; n < h; n++)
51
+ c += '<div class="day empty"></div>';
52
+ const r = /* @__PURE__ */ new Date(), m = r.getFullYear() === t && r.getMonth() === e, s = ((d = this.selectedDate) == null ? void 0 : d.getFullYear()) === t && ((u = this.selectedDate) == null ? void 0 : u.getMonth()) === e;
53
+ for (let n = 1; n <= i; n++) {
54
+ const a = m && r.getDate() === n, v = s && ((g = this.selectedDate) == null ? void 0 : g.getDate()) === n, y = `${t}-${String(e + 1).padStart(2, "0")}-${String(n).padStart(2, "0")}`, l = ["day"];
55
+ v && l.push("selected"), a && l.push("today"), c += `<mui-button variant="${v ? "primary" : "tertiary"}" size="small" class="${l.join(" ")}" data-date="${y}" aria-label="${o} ${n}, ${t}">${n}</mui-button>`;
56
+ }
57
+ return (
58
+ /*html*/
59
+ `
60
+ <div class="month">
61
+ <div class="month-header">
62
+ <div class="month-title">${o} ${t}</div>
63
+ </div>
64
+ <div class="grid">
65
+ ${p.map((n) => `<div class="weekday">${n}</div>`).join("")}
66
+ ${c}
67
+ </div>
68
+ </div>
69
+ `
70
+ );
71
+ }
72
+ render() {
73
+ var h, o, p;
74
+ if (!this.shadowRoot) return;
75
+ const t = this.currentDate.getFullYear(), e = this.currentDate.getMonth(), i = (
76
+ /*html*/
77
+ `
78
+ <style>
79
+ :host {
80
+ display: inline-block;
81
+ font-family: inherit;
82
+ --calendar-width: 28rem;
83
+ --calendar-day-size: 3.6rem;
84
+ }
85
+ .calendar-container {
86
+ position: relative;
87
+ display: flex;
88
+ gap: var(--space-400);
89
+ padding: var(--space-200);
90
+ }
91
+ .controls {
92
+ position: absolute;
93
+ top: var(--space-200);
94
+ left: var(--space-200);
95
+ right: var(--space-200);
96
+ display: flex;
97
+ justify-content: space-between;
98
+ pointer-events: none;
99
+ }
100
+ .controls mui-button {
101
+ pointer-events: auto;
102
+ }
103
+ .month {
104
+ width: var(--calendar-width);
105
+ }
106
+ .month-header {
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ height: 3.6rem;
111
+ margin-bottom: var(--space-200);
112
+ }
113
+ .month-title {
114
+ font-weight: var(--font-weight-medium);
115
+ font-size: var(--text-font-size-s);
116
+ color: var(--text-color);
117
+ }
118
+ .grid {
119
+ display: grid;
120
+ grid-template-columns: repeat(7, 1fr);
121
+ gap: var(--space-050);
122
+ justify-items: center;
123
+ }
124
+ .weekday {
125
+ font-size: var(--text-font-size-xs);
126
+ color: var(--text-color-secondary);
127
+ font-weight: var(--font-weight-medium);
128
+ width: var(--calendar-day-size);
129
+ height: var(--calendar-day-size);
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ }
134
+ .day {
135
+ width: var(--calendar-day-size);
136
+ height: var(--calendar-day-size);
137
+ --action-size-small: var(--calendar-day-size);
138
+ --action-padding-small: 0;
139
+ }
140
+ :host([slotted]) .day {
141
+ --action-radius-small: var(--stroke-size-200);
142
+ }
143
+ .day.today {
144
+ --action-tertiary-text-color: var(--action-primary-background);
145
+ }
146
+ .day.empty {
147
+ cursor: default;
148
+ }
149
+ </style>
150
+ <div class="calendar-container">
151
+ <div class="controls">
152
+ <mui-button variant="tertiary" size="small" id="prev-btn" aria-label="Previous Month">
153
+ <mui-icon-left-chevron></mui-icon-left-chevron>
154
+ </mui-button>
155
+ <mui-button variant="tertiary" size="small" id="next-btn" aria-label="Next Month">
156
+ <mui-icon-right-chevron></mui-icon-right-chevron>
157
+ </mui-button>
158
+ </div>
159
+ ${this.renderMonth(t, e)}
160
+ ${this.viewMode === "double" ? this.renderMonth(t, e + 1) : ""}
161
+ </div>
162
+ `
163
+ );
164
+ this.shadowRoot.innerHTML = i, (h = this.shadowRoot.getElementById("prev-btn")) == null || h.addEventListener("click", () => this.changeMonth(-1)), (o = this.shadowRoot.getElementById("next-btn")) == null || o.addEventListener("click", () => this.changeMonth(1)), this.shadowRoot.querySelectorAll(".day:not(.empty)").forEach((c) => {
165
+ c.addEventListener("click", (r) => {
166
+ const s = r.target.getAttribute("data-date");
167
+ if (s) {
168
+ const [d, u, g] = s.split("-").map(Number);
169
+ this.selectDate(new Date(d, u - 1, g));
170
+ }
171
+ });
172
+ }), (p = this.shadowRoot.querySelector(".calendar-container")) == null || p.addEventListener("keydown", (c) => {
173
+ const r = c.target;
174
+ if (!r.classList.contains("day") || r.classList.contains("empty")) return;
175
+ const m = c, s = m.key;
176
+ if (["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"].includes(s)) {
177
+ m.preventDefault();
178
+ const d = r.getAttribute("data-date");
179
+ if (!d) return;
180
+ const [u, g, n] = d.split("-").map(Number), a = new Date(u, g - 1, n);
181
+ s === "ArrowLeft" && a.setDate(a.getDate() - 1), s === "ArrowRight" && a.setDate(a.getDate() + 1), s === "ArrowUp" && a.setDate(a.getDate() - 7), s === "ArrowDown" && a.setDate(a.getDate() + 7);
182
+ const v = () => {
183
+ var S;
184
+ const D = a.getFullYear(), $ = String(a.getMonth() + 1).padStart(2, "0"), A = String(a.getDate()).padStart(2, "0"), x = `${D}-${$}-${A}`, M = (S = this.shadowRoot) == null ? void 0 : S.querySelector(`.day[data-date="${x}"]`);
185
+ M == null || M.focus();
186
+ }, y = this.currentDate.getMonth(), l = this.currentDate.getFullYear(), f = a.getMonth(), w = a.getFullYear();
187
+ let b = !1;
188
+ if (this.viewMode === "single")
189
+ b = y === f && l === w;
190
+ else {
191
+ const D = new Date(l, y + 1, 1);
192
+ b = y === f && l === w || D.getMonth() === f && D.getFullYear() === w;
193
+ }
194
+ b ? v() : (this.currentDate = new Date(w, f, 1), this.render(), setTimeout(v, 0));
195
+ }
196
+ });
197
+ }
198
+ }
199
+ customElements.get("mui-calendar") || customElements.define("mui-calendar", z);
@@ -1,4 +1,4 @@
1
- class l extends HTMLElement {
1
+ class m extends HTMLElement {
2
2
  static get observedAttributes() {
3
3
  return ["condensed"];
4
4
  }
@@ -8,7 +8,7 @@ class l extends HTMLElement {
8
8
  connectedCallback() {
9
9
  this.render();
10
10
  }
11
- attributeChangedCallback(s, a, r) {
11
+ attributeChangedCallback(s, l, a) {
12
12
  s === "condensed" && this.updateSlottedContent();
13
13
  }
14
14
  updateSlottedContent() {
@@ -16,28 +16,43 @@ class l extends HTMLElement {
16
16
  if (!this.shadowRoot) return;
17
17
  const s = this.shadowRoot.querySelector("slot");
18
18
  if (!s) return;
19
- const a = s.assignedNodes({ flatten: !0 });
19
+ const l = s.assignedNodes({ flatten: !0 });
20
20
  this.removeAttribute("inner-space"), this.removeAttribute("has-card-slat-group"), this.removeAttribute("has-accordion-slat-group");
21
- let r = !1;
22
- a.forEach((i) => {
23
- if (i.nodeType === Node.ELEMENT_NODE) {
24
- const t = i, n = t.tagName.toLowerCase() === "mui-accordion-group" ? t : t.querySelector("mui-accordion-group");
25
- n instanceof HTMLElement && (n.querySelectorAll("mui-accordion-block").forEach((o) => {
21
+ let a = !1;
22
+ const u = [];
23
+ if (l.forEach((r) => {
24
+ if (r.nodeType === Node.ELEMENT_NODE) {
25
+ const t = r, c = t.tagName.toLowerCase() === "mui-accordion-group" ? t : t.querySelector("mui-accordion-group");
26
+ c instanceof HTMLElement && (c.querySelectorAll("mui-accordion-block").forEach((o) => {
26
27
  o.setAttribute("card-slot", "");
27
- }), r = !0), (t.tagName.toLowerCase() === "mui-slat" ? [t] : Array.from(t.querySelectorAll("mui-slat"))).forEach((e) => {
28
+ }), a = !0), (t.tagName.toLowerCase() === "mui-slat" ? [t] : Array.from(t.querySelectorAll("mui-slat"))).forEach((e) => {
28
29
  const o = e.getAttribute("variant");
29
- (o === "action" || o === "row") && (e.setAttribute("card-slot", ""), this.hasAttribute("condensed") ? e.setAttribute("condensed-slot", "") : e.removeAttribute("condensed-slot"));
30
+ (o === "action" || o === "row") && (e.setAttribute("card-slot", ""), e.removeAttribute("condensed-slot-first"), e.removeAttribute("condensed-slot-last"), this.hasAttribute("condensed") ? (e.setAttribute("condensed-slot", ""), u.push(e)) : e.removeAttribute("condensed-slot"));
30
31
  });
31
- const c = t.tagName.toLowerCase() === "mui-table" ? t : t.querySelector("mui-table");
32
- c instanceof HTMLElement && (c.querySelectorAll("mui-cell").forEach((o) => {
32
+ const d = t.tagName.toLowerCase() === "mui-table" ? t : t.querySelector("mui-table");
33
+ d instanceof HTMLElement && (d.setAttribute("card-slot", ""), d.querySelectorAll("mui-cell").forEach((o) => {
33
34
  o.setAttribute("card-slot", "");
34
- }), r = !0);
35
- const d = t.tagName.toLowerCase() === "mui-slat-group" ? [t] : Array.from(t.querySelectorAll("mui-slat-group"));
36
- d.length && (r = !0, d.forEach((e) => {
35
+ }), a = !0), (t.tagName.toLowerCase() === "mui-avatar-group" ? [t] : Array.from(t.querySelectorAll("mui-avatar-group"))).forEach((e) => {
36
+ e.setAttribute("card-slot", "");
37
+ }), (t.tagName.toLowerCase() === "mui-chip-rail" ? [t] : Array.from(t.querySelectorAll("mui-chip-rail"))).forEach((e) => {
38
+ e.setAttribute("card-slot", "");
39
+ }), (t.tagName.toLowerCase() === "mui-code" ? [t] : Array.from(t.querySelectorAll("mui-code"))).forEach((e) => {
40
+ e.setAttribute("card-slot", "");
41
+ });
42
+ const h = t.tagName.toLowerCase() === "mui-slat-group" ? [t] : Array.from(t.querySelectorAll("mui-slat-group"));
43
+ h.length && (a = !0, h.forEach((e) => {
37
44
  e.setAttribute("usage", "card"), e.closest("mui-accordion-block") ? this.setAttribute("has-accordion-slat-group", "") : (this.setAttribute("inner-space", ""), this.setAttribute("has-card-slat-group", ""));
38
45
  }));
39
46
  }
40
- }), !r && !this.hasAttribute("condensed") && this.setAttribute("inner-space", "");
47
+ }), u.length) {
48
+ const r = l.flatMap((c) => {
49
+ if (c.nodeType !== Node.ELEMENT_NODE) return [];
50
+ const n = c;
51
+ return n.tagName.toLowerCase() === "mui-slat" ? [n] : Array.from(n.querySelectorAll("mui-slat"));
52
+ }), t = r[0], i = r[r.length - 1];
53
+ t != null && t.hasAttribute("condensed-slot") && t.setAttribute("condensed-slot-first", ""), i != null && i.hasAttribute("condensed-slot") && i.setAttribute("condensed-slot-last", "");
54
+ }
55
+ !a && !this.hasAttribute("condensed") && this.setAttribute("inner-space", "");
41
56
  });
42
57
  }
43
58
  render() {
@@ -73,7 +88,7 @@ class l extends HTMLElement {
73
88
  :host([condensed][inner-space]),
74
89
  :host([condensed][has-card-slat-group]),
75
90
  :host([condensed][has-accordion-slat-group]) {
76
- padding: var(--space-000);
91
+ padding: var(--stroke-size-100);
77
92
  }
78
93
 
79
94
  </style>
@@ -83,4 +98,4 @@ class l extends HTMLElement {
83
98
  this.shadowRoot.innerHTML = s, this.updateSlottedContent();
84
99
  }
85
100
  }
86
- customElements.get("mui-card-body") || customElements.define("mui-card-body", l);
101
+ customElements.get("mui-card-body") || customElements.define("mui-card-body", m);
@@ -1,4 +1,4 @@
1
- class c extends HTMLElement {
1
+ class l extends HTMLElement {
2
2
  constructor() {
3
3
  super(), this.attachShadow({ mode: "open" });
4
4
  }
@@ -46,23 +46,25 @@ class c extends HTMLElement {
46
46
  if (!this.shadowRoot) return;
47
47
  const s = this.shadowRoot.querySelector("slot");
48
48
  if (!s) return;
49
- const r = s.assignedNodes({ flatten: !0 }).filter((e) => {
49
+ const i = s.assignedNodes({ flatten: !0 }).filter((e) => {
50
50
  var o;
51
51
  return e.nodeType === Node.ELEMENT_NODE || e.nodeType === Node.TEXT_NODE && ((o = e.textContent) == null ? void 0 : o.trim()) !== "";
52
52
  });
53
- if (r.length === 0) {
53
+ if (i.length === 0) {
54
54
  this.setAttribute("hidden", "");
55
55
  return;
56
56
  }
57
- let i = !1, a = !1;
58
- r.forEach((e) => {
57
+ let a = !1, d = !1;
58
+ i.forEach((e) => {
59
59
  var o, n;
60
60
  if (e.nodeType === Node.ELEMENT_NODE) {
61
- const t = e, d = t.tagName.toLowerCase();
62
- (d === "mui-code" || (o = t.querySelector) != null && o.call(t, "mui-code")) && (i = !0), (d === "mui-button-group" || (n = t.querySelector) != null && n.call(t, "mui-button-group")) && (a = !0);
61
+ const t = e, r = t.tagName.toLowerCase();
62
+ (r === "mui-code" || (o = t.querySelector) != null && o.call(t, "mui-code")) && (a = !0, (r === "mui-code" ? [t] : Array.from(t.querySelectorAll("mui-code"))).forEach((c) => {
63
+ c.setAttribute("card-slot", "");
64
+ })), (r === "mui-button-group" || (n = t.querySelector) != null && n.call(t, "mui-button-group")) && (d = !0);
63
65
  }
64
- }), i || this.setAttribute("inner-space", ""), a && this.setAttribute("has-button-group", "");
66
+ }), a || this.setAttribute("inner-space", ""), d && this.setAttribute("has-button-group", "");
65
67
  });
66
68
  }
67
69
  }
68
- customElements.get("mui-card-footer") || customElements.define("mui-card-footer", c);
70
+ customElements.get("mui-card-footer") || customElements.define("mui-card-footer", l);
@@ -99,7 +99,7 @@ class n extends HTMLElement {
99
99
  /* Base positioning for all control slots */
100
100
  ::slotted([slot="controls"]) {
101
101
  position: absolute;
102
- z-index: 10;
102
+ z-index: 1;
103
103
  }
104
104
 
105
105
  ::slotted([slot="controls"][controlsPosition="top"]) {
@@ -6,29 +6,34 @@ class p extends HTMLElement {
6
6
  constructor() {
7
7
  super(), this.attachShadow({ mode: "open" });
8
8
  }
9
+ focus(e) {
10
+ var i;
11
+ const t = (i = this.shadowRoot) == null ? void 0 : i.querySelector("input");
12
+ t ? t.focus(e) : super.focus(e);
13
+ }
9
14
  connectedCallback() {
10
15
  this.hasAttribute("size") || this.setAttribute("size", "medium"), this.render(), this.setupListener();
11
16
  }
12
17
  disconnectedCallback() {
13
18
  this.cleanupListeners();
14
19
  }
15
- attributeChangedCallback(e, t, s) {
16
- var c, a, o;
20
+ attributeChangedCallback(e, t, i) {
21
+ var s, a, o;
17
22
  if (e === "checked") {
18
- const i = (c = this.shadowRoot) == null ? void 0 : c.querySelector("input");
19
- if (!i) return;
20
- i.checked = s !== null;
23
+ const c = (s = this.shadowRoot) == null ? void 0 : s.querySelector("input");
24
+ if (!c) return;
25
+ c.checked = i !== null;
21
26
  }
22
27
  if (e === "disabled") {
23
- const i = (a = this.shadowRoot) == null ? void 0 : a.querySelector("input");
24
- if (!i) return;
25
- i.disabled = s !== null;
28
+ const c = (a = this.shadowRoot) == null ? void 0 : a.querySelector("input");
29
+ if (!c) return;
30
+ c.disabled = i !== null;
26
31
  }
27
32
  if (e === "indeterminate") {
28
- const i = (o = this.shadowRoot) == null ? void 0 : o.querySelector("input");
29
- if (!i) return;
30
- const r = s !== null;
31
- i.indeterminate = r, r && (i.checked = !0, this.setAttribute("checked", ""));
33
+ const c = (o = this.shadowRoot) == null ? void 0 : o.querySelector("input");
34
+ if (!c) return;
35
+ const r = i !== null;
36
+ c.indeterminate = r, r && (c.checked = !0, this.setAttribute("checked", ""));
32
37
  }
33
38
  ["id", "size"].includes(e) && (this.render(), this.setupListener());
34
39
  }
@@ -40,11 +45,11 @@ class p extends HTMLElement {
40
45
  setupListener() {
41
46
  var t;
42
47
  const e = (t = this.shadowRoot) == null ? void 0 : t.querySelector("input");
43
- e && (this.cleanupListeners(), e.indeterminate = this.hasAttribute("indeterminate"), this._changeHandler = (s) => {
44
- const c = s.target;
45
- c.checked ? this.setAttribute("checked", "") : this.removeAttribute("checked"), this.removeAttribute("indeterminate"), this.dispatchEvent(
48
+ e && (this.cleanupListeners(), e.indeterminate = this.hasAttribute("indeterminate"), this._changeHandler = (i) => {
49
+ const s = i.target;
50
+ s.checked ? this.setAttribute("checked", "") : this.removeAttribute("checked"), this.removeAttribute("indeterminate"), this.dispatchEvent(
46
51
  new CustomEvent("change", {
47
- detail: { checked: c.checked },
52
+ detail: { checked: s.checked },
48
53
  bubbles: !0,
49
54
  composed: !0
50
55
  })
@@ -52,7 +57,7 @@ class p extends HTMLElement {
52
57
  }, e.addEventListener("change", this._changeHandler));
53
58
  }
54
59
  render() {
55
- const e = this.getAttribute("id") || `mui-checkbox-${Math.random().toString(36).substr(2, 9)}`, t = this.hasAttribute("checked"), s = this.hasAttribute("disabled"), c = this.getAttribute("size") || "medium", o = ["x-small", "small", "medium", "large"].includes(c) ? c : "medium", r = {
60
+ const e = this.getAttribute("id") || `mui-checkbox-${Math.random().toString(36).substr(2, 9)}`, t = this.hasAttribute("checked"), i = this.hasAttribute("disabled"), s = this.getAttribute("size") || "medium", o = ["x-small", "small", "medium", "large"].includes(s) ? s : "medium", r = {
56
61
  "x-small": "x-small",
57
62
  small: "x-small",
58
63
  medium: "small",
@@ -173,7 +178,7 @@ class p extends HTMLElement {
173
178
  id="${e}"
174
179
  ${n ? "indeterminate" : ""}
175
180
  ${n || t ? "checked" : ""}
176
- ${s ? "disabled" : ""}
181
+ ${i ? "disabled" : ""}
177
182
  />
178
183
  ${u}
179
184
  </span>