@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,328 @@
1
+ class l extends HTMLElement{constructor(){super();const i=this.attachShadow({mode:"open"}),t=`
2
+ :host { display: block; }
3
+ `,s=[{name:"variant",type:"string",options:"default, success, warning, error",default:"default",description:"--"},{name:"label",required:!0,type:"string",options:"{text}",default:"",description:"Provides the form element with a unique label. If without, a console warning will remind you to add label."},{name:"hide-label",type:"boolean",options:"hide-label",default:"",description:"Hides the label but it is still present for screen readers"},{name:"message",type:"string",options:"{text}",default:"",description:"--"}],o=s.map(e=>`
4
+ <story-type-row
5
+ ${e.required?"required":""}
6
+ name="${e.name}"
7
+ type="${e.type}"
8
+ options="${e.options||""}"
9
+ default="${e.default||""}"
10
+ description="${e.description}">
11
+ </story-type-row>
12
+ `).join(""),n=s.map((e,a)=>{const r=a===s.length-1?"last-child":"";return`
13
+ <mui-accordion-block
14
+ style="position: relative; z-index: 1;"
15
+ size="medium"
16
+ heading=${e.name.charAt(0).toUpperCase()+e.name.slice(1)}
17
+ ${r}>
18
+ <story-type-slat
19
+ slot="detail"
20
+ ${e.required?"required":""}
21
+ name="${e.name}"
22
+ type="${e.type}"
23
+ options="${e.options||""}"
24
+ default="${e.default||""}"
25
+ description="${e.description}">
26
+ </story-type-slat>
27
+ </mui-accordion-block>
28
+ `}).join("");i.innerHTML=`
29
+ <style>${t}</style>
30
+
31
+ <story-template
32
+ title="Field"
33
+ description="The mui-field component only renders a validation message if the message attribute is set. Showing/hiding the message is controlled by the form logic, or application state. This keeps mui-field simple, declarative, and reactive to the attributes it’s given."
34
+ github="https://github.com/michaeltrilford/muibook/blob/b060f2c788d521abd1f16889a460822d0cf8da3d/src/components/mui-field/index.ts"
35
+ figma="https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=112-620&t=GMqx21isUVAMpLJp-1"
36
+ accessibility="
37
+ A label is required for screen reader support to describe the input’s purpose.;
38
+ If hide-label is used, the label is visually hidden but accessible via aria-label.;
39
+ The label and form element are linked via for and id. If no id is provided, one is generated.;
40
+ Clear focus styles are shown for keyboard users.;
41
+ The native disabled attribute is fully supported by assistive tech.;
42
+ Logs a console warning if no label is provided.
43
+ "
44
+ >
45
+
46
+ <mui-v-stack space="var(--space-700)">
47
+
48
+ <spec-card title="Props">
49
+ <mui-responsive breakpoint="767" slot="body">
50
+ <story-type-table slot="showAbove">
51
+ ${o}
52
+ </story-type-table>
53
+ <mui-accordion-group exclusive slot="showBelow">
54
+ ${n}
55
+ </mui-accordion-group>
56
+ </mui-responsive>
57
+ </spec-card>
58
+
59
+ <story-card title="Input: Default" description="The label prop is forwarded from the parent field to the input element to associate the label with the input correctly.">
60
+ <mui-field label="Email" slot="body">
61
+ <mui-input type="email" placeholder="you@example.com"></mui-input>
62
+ </mui-field>
63
+ <mui-code slot="footer">
64
+ &lt;mui-field label="Email"&gt;
65
+ <br />
66
+ &nbsp;&nbsp;&lt;mui-input type="email" placeholder="you@example.com"&gt;&lt;mui-input&gt;
67
+ <br />
68
+ &lt;mui-field&gt;
69
+ <br />
70
+ </mui-code>
71
+ </story-card>
72
+
73
+ <story-card title="Input: Default w/ Message" description="You are able to pass in a message that stays static on the page.">
74
+ <mui-field label="Name" slot="body" message="This field doesn't accept special characters">
75
+ <mui-input></mui-input>
76
+ </mui-field>
77
+ <mui-code slot="footer">
78
+ &lt;mui-field label="Name" message="This field doesn't accept special characters"&gt;
79
+ <br />
80
+ &nbsp;&nbsp;&lt;mui-input&gt;&lt;mui-input&gt;
81
+ <br />
82
+ &lt;mui-field&gt;
83
+ <br />
84
+ </mui-code>
85
+ </story-card>
86
+
87
+ <story-card title="Input: Success w/ Message" description="The form logic will inject the success message onto the field component and render">
88
+ <!-- Change here: remove onclick, add data-toggle attribute -->
89
+ <mui-button
90
+ variant="secondary"
91
+ style="margin-bottom: var(--space-500)"
92
+ slot="body"
93
+ data-toggle="field-success-toggle"
94
+ data-message="✓ Password strength: Strong"
95
+ data-variant="success"
96
+ >
97
+ Test Validation
98
+ </mui-button>
99
+
100
+ <mui-field id="field-success-toggle" label="Password" slot="body">
101
+ <mui-input type="password" value="temp1234"></mui-input>
102
+ </mui-field>
103
+
104
+
105
+ <mui-code slot="footer">
106
+ <br />
107
+ {
108
+ <br />
109
+ &nbsp;&nbsp;"formMessages": {<br />
110
+ &nbsp;&nbsp;&nbsp;&nbsp;"passwordSuccess": {<br />
111
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"message": "✓ Password strength: Strong",<br />
112
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"variant": "success"<br />
113
+ &nbsp;&nbsp;&nbsp;&nbsp;},<br />
114
+ &nbsp;&nbsp;}<br />
115
+ }
116
+ <br />
117
+ <br />
118
+ &lt;mui-field&gt;
119
+ <br />
120
+ &nbsp;&nbsp;&lt;mui-input type="password" value="••••••••"&gt;&lt;/mui-input&gt;
121
+ <br />
122
+ &lt;/mui-field&gt;
123
+ </mui-code>
124
+ </story-card>
125
+
126
+
127
+ <story-card title="Input: Warning w/ Message" description="The form logic will inject the warning message onto the field component and render">
128
+
129
+ <!-- Change here: remove onclick, add data-toggle attribute -->
130
+ <mui-button
131
+ variant="secondary"
132
+ style="margin-bottom: var(--space-500)"
133
+ slot="body"
134
+ data-toggle="field-warning-toggle"
135
+ data-message="&#9888; Please double-check your email address for typos"
136
+ data-variant="warning"
137
+ >
138
+ Test Validation
139
+ </mui-button>
140
+
141
+ <mui-field id="field-warning-toggle" label="Email" slot="body">
142
+ <mui-input placeholder="you@example.com" value="michael.mui.com"></mui-input>
143
+ </mui-field>
144
+
145
+ <mui-code slot="footer">
146
+ <br />
147
+ {
148
+ <br />
149
+ &nbsp;&nbsp;"formMessages": {<br />
150
+ &nbsp;&nbsp;&nbsp;&nbsp;"emailWarning": {<br />
151
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"message": "⚠ Please double-check your email address for typos",<br />
152
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"variant": "warning"<br />
153
+ &nbsp;&nbsp;&nbsp;&nbsp;},<br />
154
+ &nbsp;&nbsp;}<br />
155
+ }
156
+ <br />
157
+ <br />
158
+ &lt;mui-field&gt;
159
+ <br />
160
+ &nbsp;&nbsp;&lt;mui-input placeholder="you@example.com" value="mui#mui.com"&gt;&lt;/mui-input&gt;
161
+ <br />
162
+ &lt;/mui-field&gt;
163
+ </mui-code>
164
+ </story-card>
165
+
166
+ <story-card title="Input: Error w/ Message" description="The form logic will inject the error message onto the field component and render">
167
+
168
+ <!-- Change here: remove onclick, add data-toggle attribute -->
169
+ <mui-button
170
+ variant="secondary"
171
+ style="margin-bottom: var(--space-500)"
172
+ slot="body"
173
+ data-toggle="field-error-toggle"
174
+ data-message="Enter a valid email to proceed"
175
+ data-variant="error"
176
+ >
177
+ Test Validation
178
+ </mui-button>
179
+
180
+ <mui-field id="field-error-toggle" label="Email" slot="body">
181
+ <mui-input placeholder="you@example.com" value="michael.mui.com"></mui-input>
182
+ </mui-field>
183
+
184
+ <mui-code slot="footer">
185
+ <br />
186
+ {
187
+ <br />
188
+ &nbsp;&nbsp;"formMessages": {<br />
189
+ &nbsp;&nbsp;&nbsp;&nbsp;"emailError": {<br />
190
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"message": "Enter a valid email to proceed",<br />
191
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"variant": "error"<br />
192
+ &nbsp;&nbsp;&nbsp;&nbsp;}<br />
193
+ &nbsp;&nbsp;}<br />
194
+ }
195
+ <br />
196
+ <br />
197
+ &lt;mui-field&gt;
198
+ <br />
199
+ &nbsp;&nbsp;&lt;mui-input placeholder="you@example.com" value="michael.mui.com"&gt;&lt;/mui-input&gt;
200
+ <br />
201
+ &lt;/mui-field&gt;
202
+ </mui-code>
203
+ </story-card>
204
+
205
+ <story-card title="Select: Error w/ Message" description="The form logic will inject the error message onto the field component and render">
206
+
207
+ <!-- Change here: remove onclick, add data-toggle attribute -->
208
+ <mui-button
209
+ variant="secondary"
210
+ style="margin-bottom: var(--space-500)"
211
+ slot="body"
212
+ data-toggle="select-field-error-toggle"
213
+ data-message="Please select one option"
214
+ data-variant="error"
215
+ >
216
+ Test Validation
217
+ </mui-button>
218
+
219
+ <mui-field id="select-field-error-toggle" label="Brand" slot="body">
220
+ <mui-select
221
+ options='[
222
+ {"value": "default", "label": "Select Option"},
223
+ {"value": "mui", "label": "Mui"},
224
+ {"value": "jal", "label": "JAL"},
225
+ {"value": "ana", "label": "ANA"},
226
+ {"value": "mono", "label": "Mono"}
227
+ ]'>
228
+ </mui-select>
229
+ </mui-field>
230
+
231
+ <mui-code slot="footer">
232
+ <br />
233
+ {
234
+ <br />
235
+ &nbsp;&nbsp;"formMessages": {<br />
236
+ &nbsp;&nbsp;&nbsp;&nbsp;"emailError": {<br />
237
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"message": "Please select one option",<br />
238
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"variant": "error"<br />
239
+ &nbsp;&nbsp;&nbsp;&nbsp;}<br />
240
+ &nbsp;&nbsp;}<br />
241
+ }
242
+ <br />
243
+ <br />
244
+ &lt;mui-field&gt;
245
+ <br />
246
+ &nbsp;&nbsp;&lt;mui-input placeholder="you@example.com" value="michael.mui.com"&gt;&lt;/mui-input&gt;
247
+ <br />
248
+ &lt;/mui-field&gt;
249
+ </mui-code>
250
+ </story-card>
251
+
252
+
253
+ <story-card
254
+ title="Input & Select: Error w/ Message"
255
+ description="The form logic will inject the error message onto the field component and render"
256
+ usage="
257
+ Add input is the primary element, so this item should have validation;
258
+ The select isn’t the primary input: It’s more of a supporting control (Filter | Unit | Currency);
259
+ Grouped but semantically separate: While it’s next to the input, it’s not part of the input’s value;
260
+ Validation usually targets primary fields like text, email, number — not auxiliary UI.
261
+ "
262
+
263
+ >
264
+ <!-- Change here: remove onclick, add data-toggle attribute -->
265
+ <mui-button
266
+ variant="secondary"
267
+ style="margin-bottom: var(--space-500)"
268
+ slot="body"
269
+ data-toggle="field-input-select-error-toggle"
270
+ data-message="Enter an amount to transfer"
271
+ data-variant="error"
272
+ >
273
+ Test Validation
274
+ </mui-button>
275
+
276
+ <mui-field id="field-input-select-error-toggle" label="Amount to transfer" slot="body">
277
+ <mui-input type="number">
278
+ <mui-select
279
+ slot="after"
280
+ label="Currency"
281
+ hide-label
282
+ style="width: 100px;"
283
+ options='[
284
+ { "value": "jpy", "label": "JPY" },
285
+ { "value": "usd", "label": "USD" }
286
+ ]'>
287
+ </mui-select>
288
+ </mui-input>
289
+ </mui-field>
290
+
291
+ <mui-code slot="footer">
292
+ <br />
293
+ {
294
+ <br />
295
+ &nbsp;&nbsp;"formMessages": {<br />
296
+ &nbsp;&nbsp;&nbsp;&nbsp;"transferError": {<br />
297
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"message": "Enter an amount to transfer",<br />
298
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"variant": "error"<br />
299
+ &nbsp;&nbsp;&nbsp;&nbsp;}<br />
300
+ &nbsp;&nbsp;}<br />
301
+ }
302
+ <br />
303
+
304
+ &lt;mui-field label=&quot;Amount to transfer&quot; slot=&quot;body&quot;&gt;<br>
305
+ &nbsp;&nbsp;&lt;mui-input type=&quot;number&quot;&gt;<br>
306
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;mui-select<br>
307
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot=&quot;after&quot;<br>
308
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label=&quot;Currency&quot;<br>
309
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hide-label<br>
310
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style=&quot;width: 100px;&quot;<br>
311
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options='[<br>
312
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &quot;value&quot;: &quot;jpy&quot;, &quot;label&quot;: &quot;JPY&quot; },<br>
313
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &quot;value&quot;: &quot;usd&quot;, &quot;label&quot;: &quot;USD&quot; }<br>
314
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]'<br>
315
+ &nbsp;&nbsp;&nbsp;&nbsp;&gt;<br>
316
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;/mui-select&gt;<br>
317
+ &nbsp;&nbsp;&lt;/mui-input&gt;<br>
318
+ &lt;/mui-field&gt;
319
+ </mui-code>
320
+ </story-card>
321
+
322
+
323
+ </mui-v-stack>
324
+
325
+
326
+
327
+ </story-template>
328
+ `}connectedCallback(){this.shadowRoot.addEventListener("click",i=>{const t=i.target.closest("[data-toggle]");if(!t)return;const s=t.getAttribute("data-toggle"),o=t.getAttribute("data-message")||"Password strength is strong",n=t.getAttribute("data-variant"),e=this.shadowRoot.getElementById(s);e&&(e.hasAttribute("message")?e.removeAttribute("message"):e.setAttribute("message",o),n&&(e.getAttribute("variant")===n?e.removeAttribute("variant"):e.setAttribute("variant",n)))})}}customElements.define("story-field",l);