@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,205 @@
1
+ import "../mui-icons/play-rectangle/index.js";
2
+ class n extends HTMLElement {
3
+ constructor() {
4
+ super(), this.themeObserver = null, this.attachShadow({ mode: "open" });
5
+ }
6
+ static get observedAttributes() {
7
+ return [
8
+ "src",
9
+ "src-light",
10
+ "src-dark",
11
+ "src-mui",
12
+ "src-mui-light",
13
+ "src-mui-dark",
14
+ "src-jal",
15
+ "src-jal-light",
16
+ "src-jal-dark",
17
+ "src-ana",
18
+ "src-ana-light",
19
+ "src-ana-dark",
20
+ "src-sensei",
21
+ "src-sensei-light",
22
+ "src-sensei-dark",
23
+ "src-paperclip",
24
+ "src-paperclip-light",
25
+ "src-paperclip-dark",
26
+ "alt",
27
+ "aspect-ratio",
28
+ "loading",
29
+ "decoding",
30
+ "play",
31
+ "overlay",
32
+ "hide-play"
33
+ ];
34
+ }
35
+ connectedCallback() {
36
+ this.render(), this.bindThemeObserver();
37
+ }
38
+ disconnectedCallback() {
39
+ var e;
40
+ (e = this.themeObserver) == null || e.disconnect(), this.themeObserver = null;
41
+ }
42
+ attributeChangedCallback(e, t, a) {
43
+ t !== a && this.shadowRoot && this.render();
44
+ }
45
+ render() {
46
+ if (!this.shadowRoot) return;
47
+ const e = this.getThemedSrc(), t = this.getAttribute("alt") || "", a = this.getAttribute("aspect-ratio") || "var(--video-thumbnail-aspect-ratio, 16 / 9)", i = this.getAttribute("loading") || "lazy", r = this.getAttribute("decoding") || "async", o = this.hasAttribute("play") && !this.hasAttribute("hide-play"), s = this.hasAttribute("overlay");
48
+ this.shadowRoot.innerHTML = /*html*/
49
+ `
50
+ <style>
51
+ :host {
52
+ display: block;
53
+ width: 100%;
54
+ }
55
+
56
+ .media {
57
+ display: flex;
58
+ flex-direction: column;
59
+ width: 100%;
60
+ min-width: 0;
61
+ gap: var(--video-thumbnail-meta-gap, var(--space-300));
62
+ }
63
+
64
+ .frame {
65
+ position: relative;
66
+ display: block;
67
+ width: 100%;
68
+ aspect-ratio: var(--video-thumbnail-aspect-ratio-active, var(--video-thumbnail-aspect-ratio));
69
+ margin: 0;
70
+ overflow: hidden;
71
+ box-sizing: border-box;
72
+ border: var(--video-thumbnail-border, none);
73
+ border-radius: var(--video-thumbnail-radius, var(--radius-300));
74
+ background: var(--video-thumbnail-background, var(--surface-elevated-200));
75
+ box-shadow: var(--video-thumbnail-box-shadow, none);
76
+ transition:
77
+ border var(--speed-100),
78
+ box-shadow var(--speed-100);
79
+ isolation: isolate;
80
+ }
81
+
82
+ :host(:hover) .frame {
83
+ border: var(--video-thumbnail-border-hover, var(--video-thumbnail-border, none));
84
+ box-shadow: var(--video-thumbnail-box-shadow-hover, var(--video-thumbnail-box-shadow, none));
85
+ }
86
+
87
+ .frame:hover {
88
+ border: var(--video-thumbnail-border-hover, var(--video-thumbnail-border, none));
89
+ box-shadow: var(--video-thumbnail-box-shadow-hover, var(--video-thumbnail-box-shadow, none));
90
+ }
91
+
92
+ .image,
93
+ ::slotted([slot="image"]) {
94
+ display: block;
95
+ width: 100%;
96
+ height: 100%;
97
+ object-fit: cover;
98
+ object-position: center;
99
+ border: none;
100
+ filter: var(--video-thumbnail-image-filter, none);
101
+ transition: filter var(--speed-100), transform var(--speed-100);
102
+ }
103
+
104
+ :host(:hover) .image,
105
+ :host(:hover) ::slotted([slot="image"]),
106
+ .frame:hover .image,
107
+ .frame:hover ::slotted([slot="image"]) {
108
+ filter: var(--video-thumbnail-image-filter-hover, var(--video-thumbnail-image-filter, none));
109
+ }
110
+
111
+ .overlay {
112
+ position: absolute;
113
+ inset: 0;
114
+ z-index: 1;
115
+ pointer-events: none;
116
+ background: var(--video-thumbnail-overlay-background, transparent);
117
+ transition: background var(--speed-100);
118
+ }
119
+
120
+ :host(:hover) .overlay,
121
+ .frame:hover .overlay {
122
+ background: var(--video-thumbnail-overlay-background-hover, var(--black-opacity-20));
123
+ }
124
+
125
+ .play {
126
+ position: absolute;
127
+ left: 50%;
128
+ top: 50%;
129
+ z-index: 2;
130
+ display: inline-flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ width: var(--video-thumbnail-play-size, var(--action-icon-only-size-large));
134
+ height: var(--video-thumbnail-play-size, var(--action-icon-only-size-large));
135
+ border-radius: var(--video-thumbnail-play-size, var(--action-icon-only-size-large));
136
+ background: var(--video-thumbnail-play-background, var(--black-opacity-80));
137
+ color: var(--video-thumbnail-play-color, var(--white));
138
+ opacity: var(--video-thumbnail-play-opacity, 0);
139
+ transform: translate(-50%, -50%);
140
+ pointer-events: none;
141
+ transition:
142
+ background var(--speed-100),
143
+ opacity var(--speed-100);
144
+ }
145
+
146
+ :host(:hover) .play,
147
+ .frame:hover .play {
148
+ background: var(--video-thumbnail-play-background-hover, var(--black-opacity-70));
149
+ opacity: var(--video-thumbnail-play-opacity-hover, 1);
150
+ }
151
+
152
+ .play[hidden] {
153
+ display: none;
154
+ }
155
+
156
+ .play mui-icon-play-fill {
157
+ fill: currentColor;
158
+ }
159
+
160
+ @media (prefers-reduced-motion: reduce) {
161
+ .frame,
162
+ .image,
163
+ ::slotted([slot="image"]),
164
+ .overlay,
165
+ .play {
166
+ transition: none;
167
+ }
168
+ }
169
+ </style>
170
+
171
+ <div class="media">
172
+ <figure class="frame" style="--video-thumbnail-aspect-ratio-active: ${this.escapeAttribute(a)}">
173
+ ${e ? `<img class="image" src="${this.escapeAttribute(e)}" alt="${this.escapeAttribute(t)}" loading="${this.escapeAttribute(i)}" decoding="${this.escapeAttribute(r)}" />` : '<slot name="image"></slot>'}
174
+ ${s ? '<span class="overlay" aria-hidden="true"></span>' : ""}
175
+ <span class="play" aria-hidden="true" ${o ? "" : "hidden"}>
176
+ <mui-icon-play-fill size="large"></mui-icon-play-fill>
177
+ </span>
178
+ </figure>
179
+ <slot name="meta"></slot>
180
+ </div>
181
+ `;
182
+ }
183
+ bindThemeObserver() {
184
+ if (this.themeObserver) return;
185
+ const e = document.documentElement;
186
+ this.themeObserver = new MutationObserver((t) => {
187
+ t.some((a) => a.attributeName === "data-brand" || a.attributeName === "data-theme") && this.syncImageSrc();
188
+ }), this.themeObserver.observe(e, { attributes: !0, attributeFilter: ["data-brand", "data-theme"] });
189
+ }
190
+ syncImageSrc() {
191
+ var a;
192
+ const e = (a = this.shadowRoot) == null ? void 0 : a.querySelector(".image");
193
+ if (!e) return;
194
+ const t = this.getThemedSrc();
195
+ e.getAttribute("src") !== t && e.setAttribute("src", t);
196
+ }
197
+ getThemedSrc() {
198
+ const e = document.documentElement.getAttribute("data-brand") || "mui", t = document.documentElement.getAttribute("data-theme") || "light";
199
+ return this.getAttribute(`src-${e}-${t}`) || this.getAttribute(`src-${t}`) || this.getAttribute(`src-${e}`) || this.getAttribute("src") || "";
200
+ }
201
+ escapeAttribute(e) {
202
+ return e.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;");
203
+ }
204
+ }
205
+ customElements.get("mui-video-thumbnail") || customElements.define("mui-video-thumbnail", n);
@@ -1,6 +1,6 @@
1
1
 
2
2
  /* ================================================================================================== */
3
- /* Don't edit directly • Generated on Thu, 28 May 2026 12:53:59 GMT • muibook.com */
3
+ /* Don't edit directly • Generated on Mon, 06 Jul 2026 06:17:20 GMT • muibook.com */
4
4
  /* ================================================================================================== */
5
5
 
6
6
  /* ================================================================================================== */
@@ -41,6 +41,7 @@
41
41
 
42
42
  :where(html) {
43
43
  --font-family: system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
44
+ --font-size-10: 0.9rem;
44
45
  --font-size-15: 1.1rem;
45
46
  --font-size-25: 1.2rem;
46
47
  --font-size-50: 1.4rem;
@@ -58,6 +59,7 @@
58
59
  --font-weight-500: 500;
59
60
  --font-weight-600: 600;
60
61
  --font-weight-700: 700;
62
+ --line-height-10: 1.5;
61
63
  --line-height-15: 1.63636364;
62
64
  --line-height-25: 1.5;
63
65
  --line-height-50: 1.5;
@@ -97,19 +99,21 @@
97
99
  --white-opacity-80: oklch(100% 0.00011 271.152 / 0.8);
98
100
  --white-opacity-90: oklch(100% 0.00011 271.152 / 0.9);
99
101
  --white-opacity-100: oklch(100% 0.00011 271.152);
100
- --grey-100: oklch(97.015% 0.00011 271.152);
101
- --grey-150: oklch(94.047% 0.00009 271.152);
102
+ --grey-50: oklch(96.015% 0.00011 271.152);
103
+ --grey-100: oklch(94.047% 0.00009 271.152);
102
104
  --grey-200: oklch(92.191% 0.0001 271.152);
103
105
  --grey-300: oklch(84.522% 0.0001 271.152);
104
106
  --grey-400: oklch(73.802% 0.00008 271.152);
105
107
  --grey-500: oklch(62.675% 0.00007 271.152);
106
108
  --grey-600: oklch(51.028% 0.00006 271.152);
107
109
  --grey-700: oklch(44.953% 0.00005 271.152);
108
- --grey-800: oklch(38.666% 0.00004 271.152);
109
- --grey-900: oklch(32.109% 0.00004 271.152);
110
- --grey-1000: oklch(25.197% 0.00003 271.152);
111
- --grey-1100: oklch(17.764% 0.00002 271.152);
112
- --grey-1200: oklch(11.492% 0.00001 271.152);
110
+ --grey-800: oklch(40.666% 0.00004 271.152);
111
+ --grey-900: oklch(35.109% 0.00004 271.152);
112
+ --grey-1000: oklch(28.5% 0.00003 271.152);
113
+ --grey-1100: oklch(25.197% 0.00003 271.152);
114
+ --grey-1200: oklch(21.4% 0.00002 271.152);
115
+ --grey-1300: oklch(17.764% 0.00002 271.152);
116
+ --grey-1400: oklch(11.492% 0.00001 271.152);
113
117
  --red-100: oklch(98% 0.03 25.0);
114
118
  --red-200: oklch(95% 0.10 25.0);
115
119
  --red-300: oklch(82% 0.14 25.0);