@muibook/components 1.0.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 (248) hide show
  1. package/LICENSE +21 -0
  2. package/dist/create-mui-app/assets/index-DfcB3F-s.js +597 -0
  3. package/dist/create-mui-app/create-mui-app.css +1 -0
  4. package/dist/create-mui-app/index.html +21 -0
  5. package/dist/esm/_redirects +1 -0
  6. package/dist/esm/favicon.ico +0 -0
  7. package/dist/esm/index/index.js +71 -0
  8. package/dist/esm/logo192.png +0 -0
  9. package/dist/esm/mui-accordion/block/index.js +168 -0
  10. package/dist/esm/mui-accordion/group/index.js +26 -0
  11. package/dist/esm/mui-accordion/index.js +3 -0
  12. package/dist/esm/mui-accordion/inline/index.js +96 -0
  13. package/dist/esm/mui-addon/index.js +46 -0
  14. package/dist/esm/mui-alert/index.js +109 -0
  15. package/dist/esm/mui-badge/index.js +43 -0
  16. package/dist/esm/mui-body/index.js +82 -0
  17. package/dist/esm/mui-button/index.js +296 -0
  18. package/dist/esm/mui-button-group/index.js +23 -0
  19. package/dist/esm/mui-card/body/index.js +48 -0
  20. package/dist/esm/mui-card/card/index.js +43 -0
  21. package/dist/esm/mui-card/footer/index.js +62 -0
  22. package/dist/esm/mui-card/header/index.js +29 -0
  23. package/dist/esm/mui-card/index.js +4 -0
  24. package/dist/esm/mui-carousel/controller/index.js +117 -0
  25. package/dist/esm/mui-carousel/index.js +2 -0
  26. package/dist/esm/mui-carousel/panel/index.js +29 -0
  27. package/dist/esm/mui-code/index.js +56 -0
  28. package/dist/esm/mui-container/index.js +57 -0
  29. package/dist/esm/mui-field/index.js +44 -0
  30. package/dist/esm/mui-file-upload/index.js +100 -0
  31. package/dist/esm/mui-grid/index.js +42 -0
  32. package/dist/esm/mui-heading/index.js +36 -0
  33. package/dist/esm/mui-icons/accessibility/index.js +55 -0
  34. package/dist/esm/mui-icons/add/index.js +55 -0
  35. package/dist/esm/mui-icons/attention/index.js +55 -0
  36. package/dist/esm/mui-icons/check/index.js +55 -0
  37. package/dist/esm/mui-icons/close/index.js +55 -0
  38. package/dist/esm/mui-icons/down-chevron/index.js +55 -0
  39. package/dist/esm/mui-icons/globe/index.js +55 -0
  40. package/dist/esm/mui-icons/grid/index.js +55 -0
  41. package/dist/esm/mui-icons/index.js +23 -0
  42. package/dist/esm/mui-icons/info/index.js +55 -0
  43. package/dist/esm/mui-icons/left-arrow/index.js +55 -0
  44. package/dist/esm/mui-icons/left-chevron/index.js +55 -0
  45. package/dist/esm/mui-icons/menu/index.js +55 -0
  46. package/dist/esm/mui-icons/message/index.js +55 -0
  47. package/dist/esm/mui-icons/moon/index.js +55 -0
  48. package/dist/esm/mui-icons/notification/index.js +55 -0
  49. package/dist/esm/mui-icons/right-chevron/index.js +55 -0
  50. package/dist/esm/mui-icons/stop/index.js +55 -0
  51. package/dist/esm/mui-icons/subtract/index.js +55 -0
  52. package/dist/esm/mui-icons/sun/index.js +55 -0
  53. package/dist/esm/mui-icons/toggle/index.js +72 -0
  54. package/dist/esm/mui-icons/up-arrow/index.js +55 -0
  55. package/dist/esm/mui-icons/up-chevron/index.js +55 -0
  56. package/dist/esm/mui-icons/warning/index.js +55 -0
  57. package/dist/esm/mui-image/index.js +49 -0
  58. package/dist/esm/mui-input/index.js +207 -0
  59. package/dist/esm/mui-link/index.js +263 -0
  60. package/dist/esm/mui-list/index.js +2 -0
  61. package/dist/esm/mui-list/item/index.js +65 -0
  62. package/dist/esm/mui-list/list/index.js +31 -0
  63. package/dist/esm/mui-message/index.js +90 -0
  64. package/dist/esm/mui-quote/index.js +27 -0
  65. package/dist/esm/mui-responsive/index.js +30 -0
  66. package/dist/esm/mui-rule/index.js +32 -0
  67. package/dist/esm/mui-select/index.js +204 -0
  68. package/dist/esm/mui-slat/index.js +21 -0
  69. package/dist/esm/mui-smart-card/index.js +335 -0
  70. package/dist/esm/mui-stack/hstack/index.js +52 -0
  71. package/dist/esm/mui-stack/index.js +2 -0
  72. package/dist/esm/mui-stack/vstack/index.js +52 -0
  73. package/dist/esm/mui-switch/index.js +143 -0
  74. package/dist/esm/mui-table/cell/index.js +64 -0
  75. package/dist/esm/mui-table/index.js +4 -0
  76. package/dist/esm/mui-table/row/index.js +26 -0
  77. package/dist/esm/mui-table/row-group/index.js +24 -0
  78. package/dist/esm/mui-table/table/index.js +21 -0
  79. package/dist/esm/mui-tabs/controller/index.js +23 -0
  80. package/dist/esm/mui-tabs/index.js +4 -0
  81. package/dist/esm/mui-tabs/item/index.js +61 -0
  82. package/dist/esm/mui-tabs/panel/index.js +32 -0
  83. package/dist/esm/mui-tabs/tab-bar/index.js +136 -0
  84. package/dist/esm/mui-utils/part-map/index.js +49 -0
  85. package/dist/muibook/_redirects +1 -0
  86. package/dist/muibook/assets/base-B4dO4n0A.js +198 -0
  87. package/dist/muibook/assets/components-YZ3tjmIt.js +122 -0
  88. package/dist/muibook/assets/contextual-D648xs_u.js +59 -0
  89. package/dist/muibook/assets/image-1080-Bg-8LoSs.js +1 -0
  90. package/dist/muibook/assets/index-0bBJZTXh.js +135 -0
  91. package/dist/muibook/assets/index-B4Lbi-ZX.js +82 -0
  92. package/dist/muibook/assets/index-BJJtzLti.js +144 -0
  93. package/dist/muibook/assets/index-BN6UEWFf.js +439 -0
  94. package/dist/muibook/assets/index-Bc68V_xw.js +140 -0
  95. package/dist/muibook/assets/index-BnpaoEYs.js +386 -0
  96. package/dist/muibook/assets/index-BrZBJGo2.js +4276 -0
  97. package/dist/muibook/assets/index-Bx-SU7T2.js +98 -0
  98. package/dist/muibook/assets/index-C10sNeH-.js +64 -0
  99. package/dist/muibook/assets/index-C4ZnvuXX.js +333 -0
  100. package/dist/muibook/assets/index-C7Tqc5BR.js +325 -0
  101. package/dist/muibook/assets/index-CAkZAmud.js +514 -0
  102. package/dist/muibook/assets/index-CCegrD2J.js +130 -0
  103. package/dist/muibook/assets/index-CHZJlumm.js +95 -0
  104. package/dist/muibook/assets/index-CPZ8jubJ.js +308 -0
  105. package/dist/muibook/assets/index-CSLqxg9p.js +73 -0
  106. package/dist/muibook/assets/index-CT3BsW8R.js +177 -0
  107. package/dist/muibook/assets/index-CYYG9dAN.js +270 -0
  108. package/dist/muibook/assets/index-CdghbWW3.js +42 -0
  109. package/dist/muibook/assets/index-CfD1WQYQ.js +106 -0
  110. package/dist/muibook/assets/index-Ch40uilB.js +52 -0
  111. package/dist/muibook/assets/index-CwAai54c.js +263 -0
  112. package/dist/muibook/assets/index-CyWt9f96.js +336 -0
  113. package/dist/muibook/assets/index-D8hXO6aa.js +131 -0
  114. package/dist/muibook/assets/index-DBkw7VLa.js +431 -0
  115. package/dist/muibook/assets/index-DI0vNTNv.js +56 -0
  116. package/dist/muibook/assets/index-DNImaJPY.js +96 -0
  117. package/dist/muibook/assets/index-DP6CCnt0.js +257 -0
  118. package/dist/muibook/assets/index-DR5X8zCc.js +67 -0
  119. package/dist/muibook/assets/index-DZQ8pS6y.js +133 -0
  120. package/dist/muibook/assets/index-DlZ1b9ZK.js +233 -0
  121. package/dist/muibook/assets/index-DwnvCJk0.js +177 -0
  122. package/dist/muibook/assets/index-_4AZFkzS.js +328 -0
  123. package/dist/muibook/assets/index-dkW0Vbeg.js +429 -0
  124. package/dist/muibook/assets/index-ehE10GAP.js +40 -0
  125. package/dist/muibook/assets/index-icuV1guL.js +69 -0
  126. package/dist/muibook/assets/index-qOE8f0sK.js +72 -0
  127. package/dist/muibook/assets/layout-BT0xIYa9.js +184 -0
  128. package/dist/muibook/assets/mui-D6S1tQ24.js +1 -0
  129. package/dist/muibook/assets/mui-logo-mobile-DuEMz_jq.js +31 -0
  130. package/dist/muibook/assets/semantic-cbNjeY5p.js +111 -0
  131. package/dist/muibook/assets/spacing-DY3cAXq0.js +82 -0
  132. package/dist/muibook/assets/surface-CMaW9FgJ.js +148 -0
  133. package/dist/muibook/assets/text-TVCTYde0.js +130 -0
  134. package/dist/muibook/assets/visual-B_21dq90.js +96 -0
  135. package/dist/muibook/buttercup.png +0 -0
  136. package/dist/muibook/create-mui-app.jpg +0 -0
  137. package/dist/muibook/crystal.png +0 -0
  138. package/dist/muibook/diamond.png +0 -0
  139. package/dist/muibook/emerald.svg +13 -0
  140. package/dist/muibook/favicon.ico +0 -0
  141. package/dist/muibook/hero-guides.png +0 -0
  142. package/dist/muibook/hero-outcomes.png +0 -0
  143. package/dist/muibook/image-1080.png +0 -0
  144. package/dist/muibook/image-220.png +0 -0
  145. package/dist/muibook/image-395.png +0 -0
  146. package/dist/muibook/index.html +38 -0
  147. package/dist/muibook/logo192.png +0 -0
  148. package/dist/muibook/mui-tokens.jpg +0 -0
  149. package/dist/muibook/muibook.css +1 -0
  150. package/dist/muibook/premier.png +0 -0
  151. package/dist/muibook/ruby.svg +13 -0
  152. package/dist/muibook/sapphire.png +0 -0
  153. package/dist/muibook/sapphire.svg +13 -0
  154. package/dist/muibook/snowy-mint.png +0 -0
  155. package/dist/types/components/mui-accordion/block/index.d.ts +2 -0
  156. package/dist/types/components/mui-accordion/group/index.d.ts +1 -0
  157. package/dist/types/components/mui-accordion/index.d.ts +3 -0
  158. package/dist/types/components/mui-accordion/inline/index.d.ts +2 -0
  159. package/dist/types/components/mui-accordion/mui-accordion-block/index.d.ts +2 -0
  160. package/dist/types/components/mui-accordion/mui-accordion-group/index.d.ts +1 -0
  161. package/dist/types/components/mui-accordion/mui-accordion-inline/index.d.ts +2 -0
  162. package/dist/types/components/mui-addon/index.d.ts +1 -0
  163. package/dist/types/components/mui-alert/index.d.ts +1 -0
  164. package/dist/types/components/mui-badge/index.d.ts +1 -0
  165. package/dist/types/components/mui-body/index.d.ts +1 -0
  166. package/dist/types/components/mui-button/index.d.ts +1 -0
  167. package/dist/types/components/mui-button-group/index.d.ts +1 -0
  168. package/dist/types/components/mui-card/body/index.d.ts +1 -0
  169. package/dist/types/components/mui-card/card/index.d.ts +1 -0
  170. package/dist/types/components/mui-card/footer/index.d.ts +1 -0
  171. package/dist/types/components/mui-card/header/index.d.ts +1 -0
  172. package/dist/types/components/mui-card/index.d.ts +4 -0
  173. package/dist/types/components/mui-carousel/controller/index.d.ts +1 -0
  174. package/dist/types/components/mui-carousel/index.d.ts +2 -0
  175. package/dist/types/components/mui-carousel/panel/index.d.ts +1 -0
  176. package/dist/types/components/mui-code/index.d.ts +1 -0
  177. package/dist/types/components/mui-container/index.d.ts +1 -0
  178. package/dist/types/components/mui-field/index.d.ts +1 -0
  179. package/dist/types/components/mui-file-upload/index.d.ts +1 -0
  180. package/dist/types/components/mui-grid/index.d.ts +1 -0
  181. package/dist/types/components/mui-heading/index.d.ts +1 -0
  182. package/dist/types/components/mui-icons/accessibility.d.ts +1 -0
  183. package/dist/types/components/mui-icons/add.d.ts +1 -0
  184. package/dist/types/components/mui-icons/attention.d.ts +1 -0
  185. package/dist/types/components/mui-icons/check.d.ts +1 -0
  186. package/dist/types/components/mui-icons/chevron.d.ts +1 -0
  187. package/dist/types/components/mui-icons/close.d.ts +1 -0
  188. package/dist/types/components/mui-icons/down-chevron.d.ts +1 -0
  189. package/dist/types/components/mui-icons/globe.d.ts +1 -0
  190. package/dist/types/components/mui-icons/grid.d.ts +1 -0
  191. package/dist/types/components/mui-icons/index.d.ts +23 -0
  192. package/dist/types/components/mui-icons/info.d.ts +1 -0
  193. package/dist/types/components/mui-icons/left-arrow.d.ts +1 -0
  194. package/dist/types/components/mui-icons/left-chevron.d.ts +1 -0
  195. package/dist/types/components/mui-icons/menu.d.ts +1 -0
  196. package/dist/types/components/mui-icons/message.d.ts +1 -0
  197. package/dist/types/components/mui-icons/moon.d.ts +1 -0
  198. package/dist/types/components/mui-icons/mui-icon-add.d.ts +1 -0
  199. package/dist/types/components/mui-icons/mui-icon-down-chevron.d.ts +1 -0
  200. package/dist/types/components/mui-icons/mui-icon-moon.d.ts +1 -0
  201. package/dist/types/components/mui-icons/mui-icon-right-chevron.d.ts +1 -0
  202. package/dist/types/components/mui-icons/mui-icon-sun.d.ts +1 -0
  203. package/dist/types/components/mui-icons/notification.d.ts +1 -0
  204. package/dist/types/components/mui-icons/right-chevron.d.ts +1 -0
  205. package/dist/types/components/mui-icons/stop.d.ts +1 -0
  206. package/dist/types/components/mui-icons/subtract.d.ts +1 -0
  207. package/dist/types/components/mui-icons/sun.d.ts +1 -0
  208. package/dist/types/components/mui-icons/toggle.d.ts +1 -0
  209. package/dist/types/components/mui-icons/up-arrow.d.ts +1 -0
  210. package/dist/types/components/mui-icons/up-chevron.d.ts +1 -0
  211. package/dist/types/components/mui-icons/warning.d.ts +1 -0
  212. package/dist/types/components/mui-image/index.d.ts +1 -0
  213. package/dist/types/components/mui-input/index.d.ts +1 -0
  214. package/dist/types/components/mui-link/index.d.ts +1 -0
  215. package/dist/types/components/mui-list/index.d.ts +2 -0
  216. package/dist/types/components/mui-list/item/index.d.ts +1 -0
  217. package/dist/types/components/mui-list/list/index.d.ts +1 -0
  218. package/dist/types/components/mui-message/index.d.ts +1 -0
  219. package/dist/types/components/mui-quote/index.d.ts +1 -0
  220. package/dist/types/components/mui-responsive/index.d.ts +1 -0
  221. package/dist/types/components/mui-rule/index.d.ts +1 -0
  222. package/dist/types/components/mui-select/index.d.ts +1 -0
  223. package/dist/types/components/mui-slat/index.d.ts +1 -0
  224. package/dist/types/components/mui-smart-card/index.d.ts +1 -0
  225. package/dist/types/components/mui-stack/hstack/index.d.ts +1 -0
  226. package/dist/types/components/mui-stack/index.d.ts +2 -0
  227. package/dist/types/components/mui-stack/mui-hstack/index.d.ts +1 -0
  228. package/dist/types/components/mui-stack/mui-vstack/index.d.ts +1 -0
  229. package/dist/types/components/mui-stack/vstack/index.d.ts +1 -0
  230. package/dist/types/components/mui-switch/index.d.ts +1 -0
  231. package/dist/types/components/mui-table/cell/index.d.ts +1 -0
  232. package/dist/types/components/mui-table/index.d.ts +4 -0
  233. package/dist/types/components/mui-table/row/index.d.ts +1 -0
  234. package/dist/types/components/mui-table/row/row.d.ts +1 -0
  235. package/dist/types/components/mui-table/row-group/index.d.ts +1 -0
  236. package/dist/types/components/mui-table/table/index.d.ts +1 -0
  237. package/dist/types/components/mui-tabs/controller/index.d.ts +1 -0
  238. package/dist/types/components/mui-tabs/index.d.ts +4 -0
  239. package/dist/types/components/mui-tabs/item/index.d.ts +1 -0
  240. package/dist/types/components/mui-tabs/panel/index.d.ts +1 -0
  241. package/dist/types/components/mui-tabs/tab-bar/index.d.ts +1 -0
  242. package/dist/types/create-app/index.d.ts +15 -0
  243. package/dist/types/create-mui-app/index.d.ts +15 -0
  244. package/dist/types/index.d.ts +68 -0
  245. package/dist/types/muibook/index.d.ts +93 -0
  246. package/dist/types/utils/part-map/index.d.ts +3 -0
  247. package/package.json +345 -0
  248. package/readme.md +84 -0
@@ -0,0 +1,52 @@
1
+ import { getPartMap as a } from "../../mui-utils/part-map/index.js";
2
+ class e extends HTMLElement {
3
+ static get observedAttributes() {
4
+ return ["space", "alignX", "alignY"];
5
+ }
6
+ constructor() {
7
+ super(), this.attachShadow({ mode: "open" }), this.space = "var(--space-500)", this.alignX = "normal", this.alignY = "normal", this.styles = /*css*/
8
+ `
9
+ :host {
10
+ display: block;
11
+ }
12
+ slot {
13
+ display: grid;
14
+ gap: var(--space);
15
+ justify-items: var(--alignX);
16
+ align-items: var(--alignY);
17
+ }
18
+ `;
19
+ }
20
+ async connectedCallback() {
21
+ if (!this.shadowRoot) return;
22
+ await this.waitForPartMap();
23
+ const t = a("spacing", "layout", "visual");
24
+ this.shadowRoot.innerHTML = /*html*/
25
+ `
26
+ <style>${this.styles}</style>
27
+ <slot
28
+ part="${t}"
29
+ style="
30
+ --space: ${this.getAttribute("space") || this.space};
31
+ --alignX: ${this.getAttribute("alignX") || this.alignX};
32
+ --alignY: ${this.getAttribute("alignY") || this.alignY};
33
+ ">
34
+ </slot>
35
+ `;
36
+ }
37
+ attributeChangedCallback(t, s) {
38
+ if (!this.shadowRoot) return;
39
+ const i = this.shadowRoot.querySelector("slot");
40
+ i && (t === "space" && i.style.setProperty("--space", s || this.space), t === "alignX" && i.style.setProperty("--alignX", s || this.alignX), t === "alignY" && i.style.setProperty("--alignY", s || this.alignY));
41
+ }
42
+ waitForPartMap() {
43
+ return new Promise((t) => {
44
+ if (typeof a == "function") return t();
45
+ const s = () => {
46
+ typeof a == "function" ? t() : requestAnimationFrame(s);
47
+ };
48
+ s();
49
+ });
50
+ }
51
+ }
52
+ customElements.define("mui-v-stack", e);
@@ -0,0 +1,143 @@
1
+ class h extends HTMLElement {
2
+ constructor() {
3
+ super(), this._checked = !1, this._checkbox = null, this.attachShadow({ mode: "open" }), this._checked = !1;
4
+ }
5
+ connectedCallback() {
6
+ var t;
7
+ this.render(), this._checkbox = this.shadowRoot.querySelector('input[type="checkbox"]'), this._checked = this.hasAttribute("checked"), this._checkbox && (this._checkbox.checked = this._checked), this._updateIcons(), this._updateDisabledState(), (t = this._checkbox) == null || t.addEventListener("change", () => {
8
+ this._checkbox && (this.checked = this._checkbox.checked, this.dispatchEvent(
9
+ new CustomEvent("change", {
10
+ detail: { checked: this.checked },
11
+ bubbles: !0,
12
+ composed: !0
13
+ })
14
+ ));
15
+ });
16
+ }
17
+ static get observedAttributes() {
18
+ return ["label", "disabled", "checked"];
19
+ }
20
+ attributeChangedCallback(t, e, i) {
21
+ if (t === "checked" && e !== i && (this._checked = i !== null, this._checkbox && (this._checkbox.checked = this._checked, this._updateIcons())), t === "disabled" && e !== i) {
22
+ const s = i !== null;
23
+ this._checkbox && (this._checkbox.disabled = s, this._checkbox.setAttribute("aria-disabled", s.toString())), this._updateDisabledState();
24
+ }
25
+ }
26
+ get checked() {
27
+ return this._checked;
28
+ }
29
+ set checked(t) {
30
+ const e = !!t;
31
+ this._checked !== e && (this._checked = e, e ? this.setAttribute("checked", "") : this.removeAttribute("checked"), this._checkbox && (this._checkbox.checked = this._checked, this._checkbox.setAttribute("aria-checked", this._checked.toString()), this._updateIcons()));
32
+ }
33
+ _updateDisabledState() {
34
+ var e, i, s, c;
35
+ this.hasAttribute("disabled") ? (this.shadowRoot.host.classList.add("disabled"), (e = this._checkbox) == null || e.setAttribute("aria-disabled", "true"), (i = this._checkbox) == null || i.setAttribute("tabindex", "-1")) : (this.shadowRoot.host.classList.remove("disabled"), (s = this._checkbox) == null || s.removeAttribute("aria-disabled"), (c = this._checkbox) == null || c.removeAttribute("tabindex"));
36
+ }
37
+ _updateIcons() {
38
+ const t = this.shadowRoot.querySelector(
39
+ 'slot[name="on-icon"]'
40
+ ), e = this.shadowRoot.querySelector(
41
+ 'slot[name="off-icon"]'
42
+ );
43
+ t && t.assignedElements().forEach((i) => {
44
+ i.style.display = this._checked ? "inline" : "none";
45
+ }), e && e.assignedElements().forEach((i) => {
46
+ i.style.display = this._checked ? "none" : "inline";
47
+ });
48
+ }
49
+ render() {
50
+ const t = this.getAttribute("label");
51
+ t || console.warn(
52
+ "mui-switch Accessibility warning: Provide a 'label' to ensure the switch is described for assistive technologies."
53
+ ), this.shadowRoot.innerHTML = /*html*/
54
+ `
55
+ <style>
56
+ :host { display: inline-block; }
57
+
58
+ .switch {
59
+ position: relative;
60
+ display: inline-block;
61
+ width: var(--switch-width);
62
+ height: var(--switch-height);
63
+ }
64
+
65
+ .switch input {
66
+ opacity: 0;
67
+ width: 0;
68
+ height: 0;
69
+ }
70
+
71
+ .switch input:focus-visible + .track {
72
+ outline: var(--outline-thick);
73
+ }
74
+
75
+ .track {
76
+ position: absolute;
77
+ cursor: pointer;
78
+ top: 0;
79
+ left: 0;
80
+ right: 0;
81
+ bottom: 0;
82
+ background-color: var(--switch-track-background);
83
+ transition: background-color var(--speed-200);
84
+ border-radius: var(--switch-height);
85
+ }
86
+
87
+ .thumb {
88
+ position: absolute;
89
+ top: var(--switch-offset);
90
+ left: var(--switch-offset);
91
+ width: var(--switch-thumb-size);
92
+ height: var(--switch-thumb-size);
93
+ background-color: var(--switch-thumb-bg);
94
+ transition: transform var(--speed-200);
95
+ border-radius: 50%;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ }
100
+
101
+ input:checked + .track {
102
+ background-color: var(--switch-track-background-checked);
103
+ }
104
+
105
+ input:checked + .track .thumb {
106
+ transform: translateX(calc(var(--switch-width) - var(--switch-thumb-size) - (var(--switch-offset) * 2)));
107
+ }
108
+
109
+ ::slotted([slot="on-icon"]),
110
+ ::slotted([slot="off-icon"]) {
111
+ width: 16px;
112
+ height: 16px;
113
+ fill: var(--switch-icon);
114
+ }
115
+
116
+ :host(.disabled) {
117
+ cursor: not-allowed;
118
+ }
119
+
120
+ :host(.disabled) .switch {
121
+ opacity: 0.4;
122
+ pointer-events: none;
123
+ }
124
+
125
+ </style>
126
+ <label class="switch">
127
+ <input
128
+ type="checkbox"
129
+ role="switch"
130
+ aria-checked="${this._checked}"
131
+ ${t ? `aria-label="${t}"` : ""}
132
+ >
133
+ <span class="track">
134
+ <span class="thumb">
135
+ <slot name="on-icon"></slot>
136
+ <slot name="off-icon"></slot>
137
+ </span>
138
+ </span>
139
+ </label>
140
+ `;
141
+ }
142
+ }
143
+ customElements.define("mui-switch", h);
@@ -0,0 +1,64 @@
1
+ class s extends HTMLElement {
2
+ static get observedAttributes() {
3
+ return ["align-y"];
4
+ }
5
+ constructor() {
6
+ super();
7
+ const t = this.attachShadow({ mode: "open" });
8
+ this.setAttribute("role", "cell");
9
+ const e = (
10
+ /*css*/
11
+ `
12
+ :host {
13
+ display: flex;
14
+ justify-content: space-between;
15
+ align-self: ${this.getAttribute("align-y") || "initial"};
16
+ text-align: left;
17
+ }
18
+ :host(*:first-of-type) {
19
+ padding-left: var(--space-600);
20
+ }
21
+ :host(*:last-of-type) {
22
+ padding-right: var(--space-600);
23
+ }
24
+
25
+ /* Card Slot (Supports: Table Cell, Accordion Block) */
26
+ :host(.card-slot:first-of-type) {
27
+ padding-left: var(--space-500);
28
+ }
29
+ :host(.card-slot:last-of-type) {
30
+ padding-right: var(--space-500);
31
+ }
32
+ @media (min-width: 768px) {
33
+ :host(.card-slot:first-of-type) {
34
+ padding-left: var(--space-600);
35
+ }
36
+ :host(.card-slot:last-of-type) {
37
+ padding-right: var(--space-600);
38
+ }
39
+ }
40
+
41
+ :host([checkbox]) {
42
+ width: auto;
43
+ padding: 0;
44
+ text-align: center;
45
+ }
46
+ :host([action]) {
47
+ width: 4.4rem;
48
+ height: 4.4rem;
49
+ padding: 0;
50
+ padding-right: var(--space-300);
51
+ }
52
+ :host([heading]) {
53
+ font-weight: bold;
54
+ }
55
+ `
56
+ );
57
+ t.innerHTML = /*html*/
58
+ `
59
+ <style>${e}</style>
60
+ <slot></slot>
61
+ `;
62
+ }
63
+ }
64
+ customElements.define("mui-cell", s);
@@ -0,0 +1,4 @@
1
+ import "./cell/index.js";
2
+ import "./row/index.js";
3
+ import "./row-group/index.js";
4
+ import "./table/index.js";
@@ -0,0 +1,26 @@
1
+ class t extends HTMLElement {
2
+ static get observedAttributes() {
3
+ return ["columns"];
4
+ }
5
+ constructor() {
6
+ super(), this.attachShadow({ mode: "open" });
7
+ }
8
+ connectedCallback() {
9
+ this.setAttribute("role", "row"), this.shadowRoot && (this.shadowRoot.innerHTML = /*html*/
10
+ `
11
+ <style>
12
+ :host {
13
+ display: grid;
14
+ grid-template-columns: ${this.getAttribute("columns")};
15
+ grid-gap: var(--space-500);
16
+ margin-bottom: var(--space-000);
17
+ padding: var(--space-300) var(--space-000);
18
+ border-top: var(--border-thin);
19
+ align-items: center;
20
+ }
21
+ </style>
22
+ <slot></slot>
23
+ `);
24
+ }
25
+ }
26
+ customElements.define("mui-row", t);
@@ -0,0 +1,24 @@
1
+ class o extends HTMLElement {
2
+ constructor() {
3
+ super(), this.attachShadow({ mode: "open" });
4
+ }
5
+ connectedCallback() {
6
+ this.setAttribute("role", "rowgroup"), this.shadowRoot && (this.shadowRoot.innerHTML = /*html*/
7
+ `
8
+ <style>
9
+ :host {
10
+ display: block;
11
+ }
12
+ :host([heading]) {
13
+ display: block;
14
+ }
15
+
16
+ :host([heading]) ::slotted(mui-row) {
17
+ border: none;
18
+ }
19
+ </style>
20
+ <slot></slot>
21
+ `);
22
+ }
23
+ }
24
+ customElements.define("mui-row-group", o);
@@ -0,0 +1,21 @@
1
+ class t extends HTMLElement {
2
+ constructor() {
3
+ super(), this.attachShadow({ mode: "open" });
4
+ }
5
+ connectedCallback() {
6
+ this.setAttribute("role", "table"), this.shadowRoot && (this.shadowRoot.innerHTML = /*html*/
7
+ `
8
+ <style>
9
+ :host {
10
+ display: block;
11
+ box-sizing: border-box;
12
+ text-indent: initial;
13
+ width: 100%;
14
+ margin: var(--space-000);
15
+ }
16
+ </style>
17
+ <slot></slot>
18
+ `);
19
+ }
20
+ }
21
+ customElements.define("mui-table", t);
@@ -0,0 +1,23 @@
1
+ class n extends HTMLElement {
2
+ constructor() {
3
+ super(), this.handleTabChange = this.handleTabChange.bind(this);
4
+ }
5
+ connectedCallback() {
6
+ this.addEventListener("tab-change", this.handleTabChange);
7
+ const e = this.querySelector("mui-tab-bar");
8
+ if (e) {
9
+ const t = e.querySelector("mui-tab-item[active]");
10
+ t && this.updatePanels(t.id);
11
+ }
12
+ }
13
+ handleTabChange(e) {
14
+ const t = e;
15
+ this.updatePanels(t.detail.activeId);
16
+ }
17
+ updatePanels(e) {
18
+ this.querySelectorAll("mui-tab-panel").forEach((a) => {
19
+ a.getAttribute("item") === e ? a.style.display = "" : a.style.display = "none";
20
+ });
21
+ }
22
+ }
23
+ customElements.define("mui-tab-controller", n);
@@ -0,0 +1,4 @@
1
+ import "./controller/index.js";
2
+ import "./item/index.js";
3
+ import "./panel/index.js";
4
+ import "./tab-bar/index.js";
@@ -0,0 +1,61 @@
1
+ class s extends HTMLElement {
2
+ constructor() {
3
+ super(), this.attachShadow({ mode: "open" });
4
+ }
5
+ static get observedAttributes() {
6
+ return ["active"];
7
+ }
8
+ attributeChangedCallback(t, i, a) {
9
+ t === "active" && this.updateActiveState();
10
+ }
11
+ connectedCallback() {
12
+ if (!this.shadowRoot) return;
13
+ const t = this.getAttribute("icon");
14
+ this.setAttribute("tabindex", this.hasAttribute("active") ? "0" : "-1"), this.shadowRoot.innerHTML = "";
15
+ const i = document.createElement("style");
16
+ if (i.textContent = /*html*/
17
+ `
18
+ :host {
19
+ user-select: none;
20
+ display: flex;
21
+ justify-content: center;
22
+ gap: var(--space-100);
23
+ align-items: center;
24
+ padding: var(--space-200) var(--space-400);
25
+ font-size: var(--text-font-size-m);
26
+ line-height: var(--text-line-height-m);
27
+ font-weight: var(--font-weight-bold);
28
+ color: var(--tab-text-color);
29
+ background: transparent;
30
+ white-space: nowrap;
31
+ cursor: pointer;
32
+ min-height: 4.2rem;
33
+ box-sizing: border-box;
34
+ border-radius: calc(var(--tab-radius) - 0.2rem);
35
+ }
36
+
37
+ :host(.active) {
38
+ color: var(--tab-text-color-active);
39
+ }
40
+
41
+ :host(.active:focus-visible) {
42
+ outline: var(--outline-thick);
43
+ outline-offset: -5px;
44
+ }
45
+
46
+ ::slotted(*) {
47
+ margin-left: var(--space-100);
48
+ }
49
+ `, this.shadowRoot.appendChild(i), t && t.trim() !== "" && customElements.get(t)) {
50
+ const e = document.createElement(t);
51
+ e.setAttribute("color", "var(--tab-icon)"), e.setAttribute("size", "small"), this.shadowRoot.appendChild(e), this.iconEl = e;
52
+ }
53
+ const a = document.createElement("slot");
54
+ this.shadowRoot.appendChild(a), this.updateActiveState();
55
+ }
56
+ updateActiveState() {
57
+ const t = this.hasAttribute("active");
58
+ this.classList.toggle("active", t), this.setAttribute("role", "tab"), this.setAttribute("aria-selected", t ? "true" : "false"), this.setAttribute("tabindex", t ? "0" : "-1"), this.iconEl && this.iconEl.setAttribute("color", t ? "var(--tab-icon-active)" : "var(--tab-icon)");
59
+ }
60
+ }
61
+ customElements.define("mui-tab-item", s);
@@ -0,0 +1,32 @@
1
+ class e extends HTMLElement {
2
+ static get observedAttributes() {
3
+ return ["item"];
4
+ }
5
+ constructor() {
6
+ super();
7
+ const t = this.attachShadow({ mode: "open" });
8
+ t.innerHTML = /*html*/
9
+ `
10
+ <style>
11
+ :host {
12
+ display: block;
13
+ }
14
+ .inner {
15
+ padding: var(--tab-panel-padding, 0);
16
+ }
17
+ </style>
18
+ <div class="inner">
19
+ <slot></slot>
20
+ </div>
21
+ `;
22
+ }
23
+ get item() {
24
+ return this.getAttribute("item");
25
+ }
26
+ set item(t) {
27
+ t !== null ? this.setAttribute("item", t) : this.removeAttribute("item");
28
+ }
29
+ attributeChangedCallback(t, s, n) {
30
+ }
31
+ }
32
+ customElements.define("mui-tab-panel", e);
@@ -0,0 +1,136 @@
1
+ class c extends HTMLElement {
2
+ constructor() {
3
+ super(), this._animationSpeed = 200, this.attachShadow({ mode: "open" }), this._handleResize = this._handleResize.bind(this), this._hasInitialized = !1, this._resizeTimeout = null, this._observedTab = null, this._activeTab = null, this._resizeObserver = new ResizeObserver(() => {
4
+ this._activeTab && this._updateHighlight(this._activeTab);
5
+ });
6
+ }
7
+ connectedCallback() {
8
+ const i = this.getAttribute("speed") || "200";
9
+ this._animationSpeed = parseInt(i, 10);
10
+ const s = Array.from(this.children);
11
+ this.hasAttribute("full-width") && this.classList.add("full-width"), this.setAttribute("role", "tablist");
12
+ const n = this.getAttribute("orientation") || "horizontal";
13
+ this.setAttribute("aria-orientation", n), this.addEventListener("keydown", (e) => {
14
+ const t = Array.from(this.children), r = t.findIndex((l) => l.hasAttribute("active")), h = this.getAttribute("aria-orientation") || "horizontal";
15
+ let o = r;
16
+ switch (e.key) {
17
+ case "ArrowRight":
18
+ h === "horizontal" && (o = (r + 1) % t.length, e.preventDefault());
19
+ break;
20
+ case "ArrowLeft":
21
+ h === "horizontal" && (o = (r - 1 + t.length) % t.length, e.preventDefault());
22
+ break;
23
+ case "ArrowDown":
24
+ h === "vertical" && (o = (r + 1) % t.length, e.preventDefault());
25
+ break;
26
+ case "ArrowUp":
27
+ h === "vertical" && (o = (r - 1 + t.length) % t.length, e.preventDefault());
28
+ break;
29
+ case "Home":
30
+ o = 0, e.preventDefault();
31
+ break;
32
+ case "End":
33
+ o = t.length - 1, e.preventDefault();
34
+ break;
35
+ default:
36
+ return;
37
+ }
38
+ const d = t[o];
39
+ d && (this.setActiveTab(d), d.focus());
40
+ }), s.forEach((e, t) => {
41
+ e.classList.remove("first", "middle", "last", "only"), s.length === 1 ? e.classList.add("only") : t === 0 ? e.classList.add("first") : t === s.length - 1 ? e.classList.add("last") : e.classList.add("middle");
42
+ }), s.forEach((e) => {
43
+ const t = e;
44
+ t.addEventListener("click", () => {
45
+ this.setActiveTab(t);
46
+ });
47
+ }), this.shadowRoot && (this.shadowRoot.innerHTML = /*html*/
48
+ `
49
+ <style>
50
+ :host {
51
+ --tab-animation-speed: ${this._animationSpeed}ms;
52
+ position: relative;
53
+ display: inline-flex;
54
+ border-width: var(--stroke-size-100);
55
+ border-style: var(--stroke-solid);
56
+ border-color: var(--tab-border-color);
57
+ border-radius: var(--tab-radius);
58
+ background: var(--tab-background);
59
+ will-change: transform;
60
+ box-sizing: border-box;
61
+ overflow: hidden;
62
+ }
63
+
64
+ :host(.full-width) {
65
+ display: flex;
66
+ width: 100%;
67
+ }
68
+
69
+ .highlight {
70
+ border-radius: calc(var(--tab-radius) - 0.2rem);
71
+ position: absolute;
72
+ top: 0;
73
+ bottom: 0;
74
+ background: var(--tab-background-active);
75
+ transition: transform var(--tab-animation-speed) cubic-bezier(0.25, 1, 0.5, 1), width var(--tab-animation-speed) cubic-bezier(0.25, 1, 0.5, 1);
76
+ z-index: 0;
77
+ padding: var(--space-200) var(--space-400);
78
+ box-sizing: border-box;
79
+ box-shadow: 0 0 4px 4px var(--tab-shadow-active);
80
+ will-change: transform, width;
81
+ transform: translateX(0);
82
+ width: 0;
83
+ }
84
+
85
+ ::slotted(mui-tab-item) {
86
+ position: relative;
87
+ z-index: 1;
88
+ flex: 1;
89
+ contain: content; /* Performance optimization */
90
+ }
91
+ </style>
92
+ <div class="highlight"></div>
93
+ <slot></slot>
94
+ `, window.addEventListener("resize", this._handleResize), this._resizeObserver.observe(this), requestAnimationFrame(() => {
95
+ const e = this.shadowRoot.querySelector(".highlight");
96
+ e.style.transition = "none";
97
+ const t = s.find((r) => r.hasAttribute("active")) || s[0];
98
+ t && (this._activeTab = t, t.setAttribute("active", ""), this._updateHighlight(t), this._observedTab = t, this._resizeObserver.observe(t)), e.offsetWidth, requestAnimationFrame(() => {
99
+ e.style.transition = "", this._hasInitialized = !0;
100
+ });
101
+ }));
102
+ }
103
+ disconnectedCallback() {
104
+ window.removeEventListener("resize", this._handleResize), this._observedTab && this._resizeObserver.unobserve(this._observedTab), this._resizeObserver.unobserve(this), this._resizeTimeout && clearTimeout(this._resizeTimeout), this._resizeObserver.disconnect();
105
+ }
106
+ _handleResize() {
107
+ if (!this._activeTab) return;
108
+ this._resizeTimeout && clearTimeout(this._resizeTimeout), this._activeTab && Array.from(this.children).forEach((s) => {
109
+ s === this._activeTab ? s.setAttribute("active", "") : s.removeAttribute("active");
110
+ });
111
+ const i = this.shadowRoot.querySelector(".highlight");
112
+ i && (i.style.transition = "none", this._updateHighlight(this._activeTab), i.offsetWidth, this._resizeTimeout = window.setTimeout(() => {
113
+ i.style.transition = "", this._updateHighlight(this._activeTab);
114
+ }, 100));
115
+ }
116
+ _updateHighlight(i) {
117
+ const s = this.shadowRoot.querySelector(".highlight"), a = i.getBoundingClientRect(), n = this.getBoundingClientRect(), e = parseFloat(getComputedStyle(this).borderWidth) || 0, t = a.left - n.left - e;
118
+ s.style.transform = `translateX(${t}px)`, s.style.width = `${a.width}px`;
119
+ }
120
+ setActiveTab(i) {
121
+ if (Array.from(this.children).forEach((a) => a.removeAttribute("active")), i.setAttribute("active", ""), this._activeTab = i, this._observedTab && this._observedTab !== i && this._resizeObserver.unobserve(this._observedTab), this._observedTab = i, this._resizeObserver.observe(i), this._hasInitialized)
122
+ this._updateHighlight(i);
123
+ else {
124
+ const a = this.shadowRoot.querySelector(".highlight");
125
+ a.style.transition = "none", this._updateHighlight(i), a.offsetWidth, a.style.transition = "", this._hasInitialized = !0;
126
+ }
127
+ this.dispatchEvent(
128
+ new CustomEvent("tab-change", {
129
+ bubbles: !0,
130
+ composed: !0,
131
+ detail: { activeId: i.id }
132
+ })
133
+ );
134
+ }
135
+ }
136
+ customElements.define("mui-tab-bar", c);
@@ -0,0 +1,49 @@
1
+ const t = {
2
+ text: [
3
+ "color",
4
+ "font-family",
5
+ "font-size",
6
+ "font-weight",
7
+ "letter-spacing",
8
+ "line-height",
9
+ "text-transform",
10
+ "text-decoration",
11
+ "text-align"
12
+ ],
13
+ spacing: ["padding", "margin", "gap", "width", "height", "box-sizing"],
14
+ layout: [
15
+ "display",
16
+ "flex",
17
+ "flex-direction",
18
+ "flex-wrap",
19
+ "justify-content",
20
+ "align-items",
21
+ "align-content",
22
+ "align-self",
23
+ "grid-template-columns",
24
+ "grid-template-rows",
25
+ "grid-column",
26
+ "grid-row",
27
+ "place-items",
28
+ "place-content",
29
+ "vertical-align"
30
+ ],
31
+ visual: [
32
+ "background",
33
+ "border",
34
+ "border-radius",
35
+ "box-shadow",
36
+ "opacity",
37
+ "transition",
38
+ "outline",
39
+ "color"
40
+ ]
41
+ }, a = Object.values(t).flat();
42
+ function n(...e) {
43
+ return e.map((i) => t[i] || []).flat().join(" ");
44
+ }
45
+ export {
46
+ t as PartTypes,
47
+ a as Parts,
48
+ n as getPartMap
49
+ };
@@ -0,0 +1 @@
1
+ /* /index.html 200