@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.
- package/LICENSE +21 -0
- package/dist/create-mui-app/assets/index-DfcB3F-s.js +597 -0
- package/dist/create-mui-app/create-mui-app.css +1 -0
- package/dist/create-mui-app/index.html +21 -0
- package/dist/esm/_redirects +1 -0
- package/dist/esm/favicon.ico +0 -0
- package/dist/esm/index/index.js +71 -0
- package/dist/esm/logo192.png +0 -0
- package/dist/esm/mui-accordion/block/index.js +168 -0
- package/dist/esm/mui-accordion/group/index.js +26 -0
- package/dist/esm/mui-accordion/index.js +3 -0
- package/dist/esm/mui-accordion/inline/index.js +96 -0
- package/dist/esm/mui-addon/index.js +46 -0
- package/dist/esm/mui-alert/index.js +109 -0
- package/dist/esm/mui-badge/index.js +43 -0
- package/dist/esm/mui-body/index.js +82 -0
- package/dist/esm/mui-button/index.js +296 -0
- package/dist/esm/mui-button-group/index.js +23 -0
- package/dist/esm/mui-card/body/index.js +48 -0
- package/dist/esm/mui-card/card/index.js +43 -0
- package/dist/esm/mui-card/footer/index.js +62 -0
- package/dist/esm/mui-card/header/index.js +29 -0
- package/dist/esm/mui-card/index.js +4 -0
- package/dist/esm/mui-carousel/controller/index.js +117 -0
- package/dist/esm/mui-carousel/index.js +2 -0
- package/dist/esm/mui-carousel/panel/index.js +29 -0
- package/dist/esm/mui-code/index.js +56 -0
- package/dist/esm/mui-container/index.js +57 -0
- package/dist/esm/mui-field/index.js +44 -0
- package/dist/esm/mui-file-upload/index.js +100 -0
- package/dist/esm/mui-grid/index.js +42 -0
- package/dist/esm/mui-heading/index.js +36 -0
- package/dist/esm/mui-icons/accessibility/index.js +55 -0
- package/dist/esm/mui-icons/add/index.js +55 -0
- package/dist/esm/mui-icons/attention/index.js +55 -0
- package/dist/esm/mui-icons/check/index.js +55 -0
- package/dist/esm/mui-icons/close/index.js +55 -0
- package/dist/esm/mui-icons/down-chevron/index.js +55 -0
- package/dist/esm/mui-icons/globe/index.js +55 -0
- package/dist/esm/mui-icons/grid/index.js +55 -0
- package/dist/esm/mui-icons/index.js +23 -0
- package/dist/esm/mui-icons/info/index.js +55 -0
- package/dist/esm/mui-icons/left-arrow/index.js +55 -0
- package/dist/esm/mui-icons/left-chevron/index.js +55 -0
- package/dist/esm/mui-icons/menu/index.js +55 -0
- package/dist/esm/mui-icons/message/index.js +55 -0
- package/dist/esm/mui-icons/moon/index.js +55 -0
- package/dist/esm/mui-icons/notification/index.js +55 -0
- package/dist/esm/mui-icons/right-chevron/index.js +55 -0
- package/dist/esm/mui-icons/stop/index.js +55 -0
- package/dist/esm/mui-icons/subtract/index.js +55 -0
- package/dist/esm/mui-icons/sun/index.js +55 -0
- package/dist/esm/mui-icons/toggle/index.js +72 -0
- package/dist/esm/mui-icons/up-arrow/index.js +55 -0
- package/dist/esm/mui-icons/up-chevron/index.js +55 -0
- package/dist/esm/mui-icons/warning/index.js +55 -0
- package/dist/esm/mui-image/index.js +49 -0
- package/dist/esm/mui-input/index.js +207 -0
- package/dist/esm/mui-link/index.js +263 -0
- package/dist/esm/mui-list/index.js +2 -0
- package/dist/esm/mui-list/item/index.js +65 -0
- package/dist/esm/mui-list/list/index.js +31 -0
- package/dist/esm/mui-message/index.js +90 -0
- package/dist/esm/mui-quote/index.js +27 -0
- package/dist/esm/mui-responsive/index.js +30 -0
- package/dist/esm/mui-rule/index.js +32 -0
- package/dist/esm/mui-select/index.js +204 -0
- package/dist/esm/mui-slat/index.js +21 -0
- package/dist/esm/mui-smart-card/index.js +335 -0
- package/dist/esm/mui-stack/hstack/index.js +52 -0
- package/dist/esm/mui-stack/index.js +2 -0
- package/dist/esm/mui-stack/vstack/index.js +52 -0
- package/dist/esm/mui-switch/index.js +143 -0
- package/dist/esm/mui-table/cell/index.js +64 -0
- package/dist/esm/mui-table/index.js +4 -0
- package/dist/esm/mui-table/row/index.js +26 -0
- package/dist/esm/mui-table/row-group/index.js +24 -0
- package/dist/esm/mui-table/table/index.js +21 -0
- package/dist/esm/mui-tabs/controller/index.js +23 -0
- package/dist/esm/mui-tabs/index.js +4 -0
- package/dist/esm/mui-tabs/item/index.js +61 -0
- package/dist/esm/mui-tabs/panel/index.js +32 -0
- package/dist/esm/mui-tabs/tab-bar/index.js +136 -0
- package/dist/esm/mui-utils/part-map/index.js +49 -0
- package/dist/muibook/_redirects +1 -0
- package/dist/muibook/assets/base-B4dO4n0A.js +198 -0
- package/dist/muibook/assets/components-YZ3tjmIt.js +122 -0
- package/dist/muibook/assets/contextual-D648xs_u.js +59 -0
- package/dist/muibook/assets/image-1080-Bg-8LoSs.js +1 -0
- package/dist/muibook/assets/index-0bBJZTXh.js +135 -0
- package/dist/muibook/assets/index-B4Lbi-ZX.js +82 -0
- package/dist/muibook/assets/index-BJJtzLti.js +144 -0
- package/dist/muibook/assets/index-BN6UEWFf.js +439 -0
- package/dist/muibook/assets/index-Bc68V_xw.js +140 -0
- package/dist/muibook/assets/index-BnpaoEYs.js +386 -0
- package/dist/muibook/assets/index-BrZBJGo2.js +4276 -0
- package/dist/muibook/assets/index-Bx-SU7T2.js +98 -0
- package/dist/muibook/assets/index-C10sNeH-.js +64 -0
- package/dist/muibook/assets/index-C4ZnvuXX.js +333 -0
- package/dist/muibook/assets/index-C7Tqc5BR.js +325 -0
- package/dist/muibook/assets/index-CAkZAmud.js +514 -0
- package/dist/muibook/assets/index-CCegrD2J.js +130 -0
- package/dist/muibook/assets/index-CHZJlumm.js +95 -0
- package/dist/muibook/assets/index-CPZ8jubJ.js +308 -0
- package/dist/muibook/assets/index-CSLqxg9p.js +73 -0
- package/dist/muibook/assets/index-CT3BsW8R.js +177 -0
- package/dist/muibook/assets/index-CYYG9dAN.js +270 -0
- package/dist/muibook/assets/index-CdghbWW3.js +42 -0
- package/dist/muibook/assets/index-CfD1WQYQ.js +106 -0
- package/dist/muibook/assets/index-Ch40uilB.js +52 -0
- package/dist/muibook/assets/index-CwAai54c.js +263 -0
- package/dist/muibook/assets/index-CyWt9f96.js +336 -0
- package/dist/muibook/assets/index-D8hXO6aa.js +131 -0
- package/dist/muibook/assets/index-DBkw7VLa.js +431 -0
- package/dist/muibook/assets/index-DI0vNTNv.js +56 -0
- package/dist/muibook/assets/index-DNImaJPY.js +96 -0
- package/dist/muibook/assets/index-DP6CCnt0.js +257 -0
- package/dist/muibook/assets/index-DR5X8zCc.js +67 -0
- package/dist/muibook/assets/index-DZQ8pS6y.js +133 -0
- package/dist/muibook/assets/index-DlZ1b9ZK.js +233 -0
- package/dist/muibook/assets/index-DwnvCJk0.js +177 -0
- package/dist/muibook/assets/index-_4AZFkzS.js +328 -0
- package/dist/muibook/assets/index-dkW0Vbeg.js +429 -0
- package/dist/muibook/assets/index-ehE10GAP.js +40 -0
- package/dist/muibook/assets/index-icuV1guL.js +69 -0
- package/dist/muibook/assets/index-qOE8f0sK.js +72 -0
- package/dist/muibook/assets/layout-BT0xIYa9.js +184 -0
- package/dist/muibook/assets/mui-D6S1tQ24.js +1 -0
- package/dist/muibook/assets/mui-logo-mobile-DuEMz_jq.js +31 -0
- package/dist/muibook/assets/semantic-cbNjeY5p.js +111 -0
- package/dist/muibook/assets/spacing-DY3cAXq0.js +82 -0
- package/dist/muibook/assets/surface-CMaW9FgJ.js +148 -0
- package/dist/muibook/assets/text-TVCTYde0.js +130 -0
- package/dist/muibook/assets/visual-B_21dq90.js +96 -0
- package/dist/muibook/buttercup.png +0 -0
- package/dist/muibook/create-mui-app.jpg +0 -0
- package/dist/muibook/crystal.png +0 -0
- package/dist/muibook/diamond.png +0 -0
- package/dist/muibook/emerald.svg +13 -0
- package/dist/muibook/favicon.ico +0 -0
- package/dist/muibook/hero-guides.png +0 -0
- package/dist/muibook/hero-outcomes.png +0 -0
- package/dist/muibook/image-1080.png +0 -0
- package/dist/muibook/image-220.png +0 -0
- package/dist/muibook/image-395.png +0 -0
- package/dist/muibook/index.html +38 -0
- package/dist/muibook/logo192.png +0 -0
- package/dist/muibook/mui-tokens.jpg +0 -0
- package/dist/muibook/muibook.css +1 -0
- package/dist/muibook/premier.png +0 -0
- package/dist/muibook/ruby.svg +13 -0
- package/dist/muibook/sapphire.png +0 -0
- package/dist/muibook/sapphire.svg +13 -0
- package/dist/muibook/snowy-mint.png +0 -0
- package/dist/types/components/mui-accordion/block/index.d.ts +2 -0
- package/dist/types/components/mui-accordion/group/index.d.ts +1 -0
- package/dist/types/components/mui-accordion/index.d.ts +3 -0
- package/dist/types/components/mui-accordion/inline/index.d.ts +2 -0
- package/dist/types/components/mui-accordion/mui-accordion-block/index.d.ts +2 -0
- package/dist/types/components/mui-accordion/mui-accordion-group/index.d.ts +1 -0
- package/dist/types/components/mui-accordion/mui-accordion-inline/index.d.ts +2 -0
- package/dist/types/components/mui-addon/index.d.ts +1 -0
- package/dist/types/components/mui-alert/index.d.ts +1 -0
- package/dist/types/components/mui-badge/index.d.ts +1 -0
- package/dist/types/components/mui-body/index.d.ts +1 -0
- package/dist/types/components/mui-button/index.d.ts +1 -0
- package/dist/types/components/mui-button-group/index.d.ts +1 -0
- package/dist/types/components/mui-card/body/index.d.ts +1 -0
- package/dist/types/components/mui-card/card/index.d.ts +1 -0
- package/dist/types/components/mui-card/footer/index.d.ts +1 -0
- package/dist/types/components/mui-card/header/index.d.ts +1 -0
- package/dist/types/components/mui-card/index.d.ts +4 -0
- package/dist/types/components/mui-carousel/controller/index.d.ts +1 -0
- package/dist/types/components/mui-carousel/index.d.ts +2 -0
- package/dist/types/components/mui-carousel/panel/index.d.ts +1 -0
- package/dist/types/components/mui-code/index.d.ts +1 -0
- package/dist/types/components/mui-container/index.d.ts +1 -0
- package/dist/types/components/mui-field/index.d.ts +1 -0
- package/dist/types/components/mui-file-upload/index.d.ts +1 -0
- package/dist/types/components/mui-grid/index.d.ts +1 -0
- package/dist/types/components/mui-heading/index.d.ts +1 -0
- package/dist/types/components/mui-icons/accessibility.d.ts +1 -0
- package/dist/types/components/mui-icons/add.d.ts +1 -0
- package/dist/types/components/mui-icons/attention.d.ts +1 -0
- package/dist/types/components/mui-icons/check.d.ts +1 -0
- package/dist/types/components/mui-icons/chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/close.d.ts +1 -0
- package/dist/types/components/mui-icons/down-chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/globe.d.ts +1 -0
- package/dist/types/components/mui-icons/grid.d.ts +1 -0
- package/dist/types/components/mui-icons/index.d.ts +23 -0
- package/dist/types/components/mui-icons/info.d.ts +1 -0
- package/dist/types/components/mui-icons/left-arrow.d.ts +1 -0
- package/dist/types/components/mui-icons/left-chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/menu.d.ts +1 -0
- package/dist/types/components/mui-icons/message.d.ts +1 -0
- package/dist/types/components/mui-icons/moon.d.ts +1 -0
- package/dist/types/components/mui-icons/mui-icon-add.d.ts +1 -0
- package/dist/types/components/mui-icons/mui-icon-down-chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/mui-icon-moon.d.ts +1 -0
- package/dist/types/components/mui-icons/mui-icon-right-chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/mui-icon-sun.d.ts +1 -0
- package/dist/types/components/mui-icons/notification.d.ts +1 -0
- package/dist/types/components/mui-icons/right-chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/stop.d.ts +1 -0
- package/dist/types/components/mui-icons/subtract.d.ts +1 -0
- package/dist/types/components/mui-icons/sun.d.ts +1 -0
- package/dist/types/components/mui-icons/toggle.d.ts +1 -0
- package/dist/types/components/mui-icons/up-arrow.d.ts +1 -0
- package/dist/types/components/mui-icons/up-chevron.d.ts +1 -0
- package/dist/types/components/mui-icons/warning.d.ts +1 -0
- package/dist/types/components/mui-image/index.d.ts +1 -0
- package/dist/types/components/mui-input/index.d.ts +1 -0
- package/dist/types/components/mui-link/index.d.ts +1 -0
- package/dist/types/components/mui-list/index.d.ts +2 -0
- package/dist/types/components/mui-list/item/index.d.ts +1 -0
- package/dist/types/components/mui-list/list/index.d.ts +1 -0
- package/dist/types/components/mui-message/index.d.ts +1 -0
- package/dist/types/components/mui-quote/index.d.ts +1 -0
- package/dist/types/components/mui-responsive/index.d.ts +1 -0
- package/dist/types/components/mui-rule/index.d.ts +1 -0
- package/dist/types/components/mui-select/index.d.ts +1 -0
- package/dist/types/components/mui-slat/index.d.ts +1 -0
- package/dist/types/components/mui-smart-card/index.d.ts +1 -0
- package/dist/types/components/mui-stack/hstack/index.d.ts +1 -0
- package/dist/types/components/mui-stack/index.d.ts +2 -0
- package/dist/types/components/mui-stack/mui-hstack/index.d.ts +1 -0
- package/dist/types/components/mui-stack/mui-vstack/index.d.ts +1 -0
- package/dist/types/components/mui-stack/vstack/index.d.ts +1 -0
- package/dist/types/components/mui-switch/index.d.ts +1 -0
- package/dist/types/components/mui-table/cell/index.d.ts +1 -0
- package/dist/types/components/mui-table/index.d.ts +4 -0
- package/dist/types/components/mui-table/row/index.d.ts +1 -0
- package/dist/types/components/mui-table/row/row.d.ts +1 -0
- package/dist/types/components/mui-table/row-group/index.d.ts +1 -0
- package/dist/types/components/mui-table/table/index.d.ts +1 -0
- package/dist/types/components/mui-tabs/controller/index.d.ts +1 -0
- package/dist/types/components/mui-tabs/index.d.ts +4 -0
- package/dist/types/components/mui-tabs/item/index.d.ts +1 -0
- package/dist/types/components/mui-tabs/panel/index.d.ts +1 -0
- package/dist/types/components/mui-tabs/tab-bar/index.d.ts +1 -0
- package/dist/types/create-app/index.d.ts +15 -0
- package/dist/types/create-mui-app/index.d.ts +15 -0
- package/dist/types/index.d.ts +68 -0
- package/dist/types/muibook/index.d.ts +93 -0
- package/dist/types/utils/part-map/index.d.ts +3 -0
- package/package.json +345 -0
- package/readme.md +84 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
class a extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"}),i=`
|
|
2
|
+
:host { display: block; }
|
|
3
|
+
`,o=[{name:"slot",required:!0,type:"HTML attribute",options:"mui-body, mui-icons-[name], elements",default:"",description:"Slot in text, icons or other appropriate micro compositions to support form experiences."}],s=o.map(t=>`
|
|
4
|
+
<story-type-row
|
|
5
|
+
${t.required?"required":""}
|
|
6
|
+
name="${t.name}"
|
|
7
|
+
type="${t.type}"
|
|
8
|
+
options="${t.options||""}"
|
|
9
|
+
default="${t.default||""}"
|
|
10
|
+
description="${t.description}">
|
|
11
|
+
</story-type-row>
|
|
12
|
+
`).join(""),n=o.map((t,d)=>{const r=d===o.length-1?"last-child":"";return`
|
|
13
|
+
<mui-accordion-block
|
|
14
|
+
style="position: relative; z-index: 1;"
|
|
15
|
+
size="medium"
|
|
16
|
+
heading=${t.name.charAt(0).toUpperCase()+t.name.slice(1)}
|
|
17
|
+
${r}>
|
|
18
|
+
<story-type-slat
|
|
19
|
+
slot="detail"
|
|
20
|
+
${t.required?"required":""}
|
|
21
|
+
name="${t.name}"
|
|
22
|
+
type="${t.type}"
|
|
23
|
+
options="${t.options||""}"
|
|
24
|
+
default="${t.default||""}"
|
|
25
|
+
description="${t.description}">
|
|
26
|
+
</story-type-slat>
|
|
27
|
+
</mui-accordion-block>
|
|
28
|
+
`}).join("");e.innerHTML=`
|
|
29
|
+
<style>${i}</style>
|
|
30
|
+
|
|
31
|
+
<story-template
|
|
32
|
+
title="Add On"
|
|
33
|
+
description="Enhance form inputs by using mui-addon to display supplementary information like units, prefixes, or suffixes."
|
|
34
|
+
github="https://github.com/michaeltrilford/muibook/blob/b060f2c788d521abd1f16889a460822d0cf8da3d/src/components/mui-addon/index.ts"
|
|
35
|
+
figma="https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=133-588&t=a1UUlxRE4ZIJUKwJ-1"
|
|
36
|
+
>
|
|
37
|
+
|
|
38
|
+
<mui-v-stack space="var(--space-700)">
|
|
39
|
+
|
|
40
|
+
<spec-card title="Props">
|
|
41
|
+
<mui-responsive breakpoint="767" slot="body">
|
|
42
|
+
<story-type-table slot="showAbove">
|
|
43
|
+
${s}
|
|
44
|
+
</story-type-table>
|
|
45
|
+
<mui-accordion-group exclusive slot="showBelow">
|
|
46
|
+
${n}
|
|
47
|
+
</mui-accordion-group>
|
|
48
|
+
</mui-responsive>
|
|
49
|
+
</spec-card>
|
|
50
|
+
|
|
51
|
+
<story-card title="Before: Add On">
|
|
52
|
+
<div slot="body">
|
|
53
|
+
<mui-input label="Enter amount">
|
|
54
|
+
<mui-addon slot="before"><mui-body>USD</mui-body></mui-addon>
|
|
55
|
+
</div>
|
|
56
|
+
<mui-code slot="footer">
|
|
57
|
+
<mui-input label="Enter amount">
|
|
58
|
+
<br />
|
|
59
|
+
|
|
60
|
+
<mui-addon slot="before">
|
|
61
|
+
<br />
|
|
62
|
+
<mui-body>USD<mui-body>
|
|
63
|
+
<br />
|
|
64
|
+
<mui-addon>
|
|
65
|
+
<br />
|
|
66
|
+
|
|
67
|
+
<mui-input>
|
|
68
|
+
<br />
|
|
69
|
+
</mui-code>
|
|
70
|
+
</story-card>
|
|
71
|
+
|
|
72
|
+
<story-card title="After: Add On">
|
|
73
|
+
<div slot="body">
|
|
74
|
+
<mui-input label="Enter amount">
|
|
75
|
+
<mui-addon slot="after"><mui-body>USD</mui-body></mui-input></mui-addon>
|
|
76
|
+
</div>
|
|
77
|
+
<mui-code slot="footer">
|
|
78
|
+
<mui-input label="Enter amount">
|
|
79
|
+
<br />
|
|
80
|
+
|
|
81
|
+
<mui-addon slot="after">
|
|
82
|
+
<br />
|
|
83
|
+
<mui-body>USD<mui-body>
|
|
84
|
+
<br />
|
|
85
|
+
<mui-addon>
|
|
86
|
+
<br />
|
|
87
|
+
|
|
88
|
+
<mui-input>
|
|
89
|
+
<br />
|
|
90
|
+
</mui-code>
|
|
91
|
+
</story-card>
|
|
92
|
+
|
|
93
|
+
</mui-v-stack>
|
|
94
|
+
|
|
95
|
+
</story-template>
|
|
96
|
+
`}}customElements.define("story-addon",a);
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
class o extends HTMLElement{constructor(){super();const t=this.attachShadow({mode:"open"}),l=`
|
|
2
|
+
:host { display: block; }
|
|
3
|
+
`,s=[{name:"options",required:!0,type:"array",options:"[{...}]",default:"",description:"A JSON-encoded string representing the options for the select dropdown. Each option has a value and label."},{name:"id",type:"string",options:"{text}",default:"",description:"Identifier to group the label and input to allow user to focus on the input by clicking the label."},{name:"label",required:!0,type:"string",options:"{text}",default:"",description:"Provide the input 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:"Ensures the label is accessible to screen readers while visually hiding it to avoid redundancy"},{name:"disabled",type:"boolean",options:"disabled",default:"",description:"Disable the select"},{name:"name",type:"string",options:"{text}",default:"",description:"The name attribute is used when submitting forms."},{name:"value",type:"string",options:"{text}",default:"",description:"Define which option is selected by default."}],n=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(""),b=s.map((e,i)=>{const a=i===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
|
+
${a}>
|
|
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("");t.innerHTML=`
|
|
29
|
+
<style>${l}</style>
|
|
30
|
+
|
|
31
|
+
<story-template
|
|
32
|
+
title="Select"
|
|
33
|
+
description="A versatile dropdown component for selecting from a list of options, supporting customisable styles and accessibility features."
|
|
34
|
+
github="https://github.com/michaeltrilford/muibook/blob/b060f2c788d521abd1f16889a460822d0cf8da3d/src/components/mui-select/index.ts"
|
|
35
|
+
figma="https://www.figma.com/design/l0mt1lXu97XoHJCEdnrWLp/Mui-Design-System?node-id=117-2068&t=GMqx21isUVAMpLJp-1"
|
|
36
|
+
accessibility="
|
|
37
|
+
A label is required for screen reader support, describing the purpose of the select.;
|
|
38
|
+
If hide-label is used, the label is visually hidden but still accessible via aria-label.;
|
|
39
|
+
The label and select are linked using for and id attributes. If no id is provided, one is generated.;
|
|
40
|
+
Keyboard users see a clear focus style when navigating.;
|
|
41
|
+
The disabled attribute is native and 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
|
+
${n}
|
|
52
|
+
</story-type-table>
|
|
53
|
+
<mui-accordion-group exclusive slot="showBelow">
|
|
54
|
+
${b}
|
|
55
|
+
</mui-accordion-group>
|
|
56
|
+
</mui-responsive>
|
|
57
|
+
</spec-card>
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
<story-card title="Default" description="A select requires a list of options.">
|
|
61
|
+
<div slot="body">
|
|
62
|
+
<mui-select
|
|
63
|
+
label="Default"
|
|
64
|
+
options='[
|
|
65
|
+
{"value": "default", "label": "Mui"},
|
|
66
|
+
{"value": "jal", "label": "JAL"},
|
|
67
|
+
{"value": "ana", "label": "ANA"},
|
|
68
|
+
{"value": "mono", "label": "Mono"}
|
|
69
|
+
]'>
|
|
70
|
+
</mui-select>
|
|
71
|
+
</div>
|
|
72
|
+
<mui-code slot="footer">
|
|
73
|
+
<mui-select label="Default"
|
|
74
|
+
<br />
|
|
75
|
+
options='[
|
|
76
|
+
<br />
|
|
77
|
+
{"value": "default", "label": "Mui"},
|
|
78
|
+
<br />
|
|
79
|
+
{"value": "jal", "label": "JAL"},
|
|
80
|
+
<br />
|
|
81
|
+
{"value": "ana", "label": "ANA"},
|
|
82
|
+
<br />
|
|
83
|
+
{"value": "mono", "label": "Mono"}
|
|
84
|
+
<br />
|
|
85
|
+
]'>
|
|
86
|
+
<br />
|
|
87
|
+
</mui-select>
|
|
88
|
+
|
|
89
|
+
</mui-code>
|
|
90
|
+
</story-card>
|
|
91
|
+
|
|
92
|
+
<story-card title="Hide Label" description="Ensures the label is accessible to screen readers while visually hiding it to avoid redundancy.">
|
|
93
|
+
<div slot="body">
|
|
94
|
+
<mui-select
|
|
95
|
+
label="Density"
|
|
96
|
+
hide-label
|
|
97
|
+
options='[
|
|
98
|
+
{"value": "spacious", "label": "Spacious"},
|
|
99
|
+
{"value": "compact", "label": "Compact"}
|
|
100
|
+
]'>
|
|
101
|
+
</mui-select>
|
|
102
|
+
</div>
|
|
103
|
+
<mui-code slot="footer">
|
|
104
|
+
<mui-select
|
|
105
|
+
<br />
|
|
106
|
+
label="Brand"
|
|
107
|
+
<br />
|
|
108
|
+
hide-label
|
|
109
|
+
<br />
|
|
110
|
+
options='[
|
|
111
|
+
<br />
|
|
112
|
+
{"value": "spacious", "label": "Spacious"},
|
|
113
|
+
<br />
|
|
114
|
+
{"value": "compact", "label": "Compact"}
|
|
115
|
+
<br />
|
|
116
|
+
]'>
|
|
117
|
+
<br />
|
|
118
|
+
</mui-select>
|
|
119
|
+
|
|
120
|
+
</mui-code>
|
|
121
|
+
</story-card>
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
<story-card title="Value" description="Define which option is selected by default.">
|
|
125
|
+
<div slot="body">
|
|
126
|
+
<mui-select
|
|
127
|
+
value="compact"
|
|
128
|
+
label="Density"
|
|
129
|
+
hide-label
|
|
130
|
+
options='[
|
|
131
|
+
{"value": "spacious", "label": "Spacious"},
|
|
132
|
+
{"value": "compact", "label": "Compact"}
|
|
133
|
+
]'>
|
|
134
|
+
</mui-select>
|
|
135
|
+
</div>
|
|
136
|
+
<mui-code slot="footer">
|
|
137
|
+
<mui-select
|
|
138
|
+
<br />
|
|
139
|
+
label="Brand"
|
|
140
|
+
<br />
|
|
141
|
+
hide-label
|
|
142
|
+
<br />
|
|
143
|
+
options='[
|
|
144
|
+
<br />
|
|
145
|
+
{"value": "spacious", "label": "Spacious"},
|
|
146
|
+
<br />
|
|
147
|
+
{"value": "compact", "label": "Compact"}
|
|
148
|
+
<br />
|
|
149
|
+
]'>
|
|
150
|
+
<br />
|
|
151
|
+
</mui-select>
|
|
152
|
+
|
|
153
|
+
</mui-code>
|
|
154
|
+
</story-card>
|
|
155
|
+
|
|
156
|
+
<story-card title="Disabled">
|
|
157
|
+
<div slot="body">
|
|
158
|
+
<mui-select
|
|
159
|
+
disabled
|
|
160
|
+
label="Brand"
|
|
161
|
+
hide-label
|
|
162
|
+
options='[
|
|
163
|
+
{"value": "spacious", "label": "Spacious"},
|
|
164
|
+
{"value": "compact", "label": "Compact"}
|
|
165
|
+
]'>
|
|
166
|
+
</mui-select>
|
|
167
|
+
</div>
|
|
168
|
+
<mui-code slot="footer">
|
|
169
|
+
<mui-select
|
|
170
|
+
|
|
171
|
+
<br />
|
|
172
|
+
disabled
|
|
173
|
+
<br />
|
|
174
|
+
label="Brand"
|
|
175
|
+
<br />
|
|
176
|
+
hide-label
|
|
177
|
+
<br />
|
|
178
|
+
options='[
|
|
179
|
+
<br />
|
|
180
|
+
{"value": "spacious", "label": "Spacious"},
|
|
181
|
+
<br />
|
|
182
|
+
{"value": "compact", "label": "Compact"}
|
|
183
|
+
<br />
|
|
184
|
+
]'>
|
|
185
|
+
<br />
|
|
186
|
+
</mui-select>
|
|
187
|
+
|
|
188
|
+
</mui-code>
|
|
189
|
+
</story-card>
|
|
190
|
+
|
|
191
|
+
<story-card title="Before: Select">
|
|
192
|
+
<div slot="body">
|
|
193
|
+
<mui-input type="search" label="Search">
|
|
194
|
+
<mui-select
|
|
195
|
+
style="width: 120px;"
|
|
196
|
+
slot="before"
|
|
197
|
+
label="Filter"
|
|
198
|
+
hide-label
|
|
199
|
+
options='[
|
|
200
|
+
{"value": "all", "label": "All"},
|
|
201
|
+
{"value": "images", "label": "Images"},
|
|
202
|
+
{"value": "video", "label": "Video"}
|
|
203
|
+
]'>
|
|
204
|
+
</mui-select>
|
|
205
|
+
</div>
|
|
206
|
+
<mui-code slot="footer">
|
|
207
|
+
<mui-input type="search" label="Search"><br>
|
|
208
|
+
<mui-select<br>
|
|
209
|
+
slot="before"<br>
|
|
210
|
+
label="Filter"<br>
|
|
211
|
+
hide-label<br>
|
|
212
|
+
style="width: 120px;"<br>
|
|
213
|
+
options='[<br>
|
|
214
|
+
{ "value": "all", "label": "All" },<br>
|
|
215
|
+
{ "value": "images", "label": "Images" },<br>
|
|
216
|
+
{ "value": "video", "label": "Video" }<br>
|
|
217
|
+
]'><br>
|
|
218
|
+
</mui-select><br>
|
|
219
|
+
</mui-input>
|
|
220
|
+
</<mui-code>
|
|
221
|
+
</story-card>
|
|
222
|
+
|
|
223
|
+
<story-card title="After: Select">
|
|
224
|
+
<div slot="body">
|
|
225
|
+
<mui-input type="number" label="Amount to transfer">
|
|
226
|
+
<mui-select
|
|
227
|
+
style="width: 100px;"
|
|
228
|
+
slot="after"
|
|
229
|
+
label="Currency"
|
|
230
|
+
hide-label
|
|
231
|
+
options='[
|
|
232
|
+
{"value": "jpy", "label": "JPY"},
|
|
233
|
+
{"value": "usd", "label": "USD"}
|
|
234
|
+
]'>
|
|
235
|
+
</mui-select>
|
|
236
|
+
</div>
|
|
237
|
+
<mui-code slot="footer">
|
|
238
|
+
<mui-input type="number" label="Amount to transfer"><br>
|
|
239
|
+
<mui-select<br>
|
|
240
|
+
slot="after"<br>
|
|
241
|
+
label="Currency"<br>
|
|
242
|
+
hide-label<br>
|
|
243
|
+
style="width: 100px;"<br>
|
|
244
|
+
options='[<br>
|
|
245
|
+
{ "value": "jpy", "label": "JPY" },<br>
|
|
246
|
+
{ "value": "usd", "label": "USD" }<br>
|
|
247
|
+
]'><br>
|
|
248
|
+
</mui-select><br>
|
|
249
|
+
</mui-input>
|
|
250
|
+
</<mui-code>
|
|
251
|
+
</story-card>
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
</mui-v-stack>
|
|
255
|
+
|
|
256
|
+
</story-template>
|
|
257
|
+
`}}customElements.define("story-select",o);
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
class n extends HTMLElement{constructor(){super();const s=this.attachShadow({mode:"open"}),i=`
|
|
2
|
+
:host { display: block; }
|
|
3
|
+
`,t=[{name:"acceptedFileTypes",type:"string",options:"Any",default:"",description:"Comma-separated list of accepted file types (.jpg, .pdf)"},{name:"currentFileName",type:"string",options:"Any",default:"",description:"Initial text to display when no file has been selected."}],o=t.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(""),l=t.map((e,a)=>{const d=a===t.length-1?"last-child":"";return`
|
|
13
|
+
<mui-accordion-block
|
|
14
|
+
size="medium"
|
|
15
|
+
heading=${e.name.charAt(0).toUpperCase()+e.name.slice(1)}
|
|
16
|
+
${d}>
|
|
17
|
+
<story-type-slat
|
|
18
|
+
slot="detail"
|
|
19
|
+
${e.required?"required":""}
|
|
20
|
+
name="${e.name}"
|
|
21
|
+
type="${e.type}"
|
|
22
|
+
options="${e.options||""}"
|
|
23
|
+
default="${e.default||""}"
|
|
24
|
+
description="${e.description}">
|
|
25
|
+
</story-type-slat>
|
|
26
|
+
</mui-accordion-block>
|
|
27
|
+
`}).join("");s.innerHTML=`
|
|
28
|
+
<style>${i}</style>
|
|
29
|
+
|
|
30
|
+
<story-template
|
|
31
|
+
title="File Upload"
|
|
32
|
+
description="A simple file input that displays the selected file name and emits a file-upload event."
|
|
33
|
+
github="https://github.com/michaeltrilford/muibook/blob/b060f2c788d521abd1f16889a460822d0cf8da3d/src/components/mui-file-upload/index.ts"
|
|
34
|
+
>
|
|
35
|
+
|
|
36
|
+
<mui-v-stack space="var(--space-700)">
|
|
37
|
+
|
|
38
|
+
<spec-card title="Props">
|
|
39
|
+
<mui-responsive breakpoint="768" slot="body">
|
|
40
|
+
<story-type-table slot="showAbove">
|
|
41
|
+
${o}
|
|
42
|
+
</story-type-table>
|
|
43
|
+
<mui-accordion-group exclusive slot="showBelow">
|
|
44
|
+
${l}
|
|
45
|
+
</mui-accordion-group>
|
|
46
|
+
</mui-responsive>
|
|
47
|
+
</spec-card>
|
|
48
|
+
|
|
49
|
+
<story-card
|
|
50
|
+
title="Default"
|
|
51
|
+
>
|
|
52
|
+
<mui-file-upload slot="body"
|
|
53
|
+
acceptedFileTypes=".pdf,.jpg"
|
|
54
|
+
currentFileName="No file selected"
|
|
55
|
+
></mui-file-upload>
|
|
56
|
+
<mui-code slot="footer">
|
|
57
|
+
<mui-file-upload<br />
|
|
58
|
+
acceptedFileTypes=".pdf,.jpg"<br />
|
|
59
|
+
currentFileName="No file selected"<br />
|
|
60
|
+
></mui-file-upload>
|
|
61
|
+
</mui-code>
|
|
62
|
+
</story-card>
|
|
63
|
+
|
|
64
|
+
</mui-v-stack>
|
|
65
|
+
|
|
66
|
+
</story-template>
|
|
67
|
+
`}}customElements.define("story-file-upload",n);
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
const s="/mui-tokens.jpg";class t extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"}),i=`
|
|
2
|
+
:host { display: block; }
|
|
3
|
+
|
|
4
|
+
.config::part(display) {
|
|
5
|
+
grid-template-columns: 1fr;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@media (min-width: 1230px) {
|
|
9
|
+
.config::part(display) {
|
|
10
|
+
grid-template-columns: minmax(0, 50ch) 400px;
|
|
11
|
+
gap: 7.2rem;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
align-items: start;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@media (min-width: 1390px) {
|
|
18
|
+
.config::part(display) {
|
|
19
|
+
grid-template-columns: minmax(0, 50ch) 500px;
|
|
20
|
+
gap: 9.6rem;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
`;e.innerHTML=`
|
|
25
|
+
<style>${i}</style>
|
|
26
|
+
|
|
27
|
+
<story-template
|
|
28
|
+
title="Theme Setup"
|
|
29
|
+
description="Connect your theme — token-powered, brand-ready, and dark mode friendly."
|
|
30
|
+
github="https://github.com/michaeltrilford/create-mui-app/blob/main/src/mui-styles/mui-tokens.css"
|
|
31
|
+
>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<mui-v-stack space="var(--space-700)">
|
|
35
|
+
|
|
36
|
+
<page-card>
|
|
37
|
+
|
|
38
|
+
<mui-grid slot="body" class="config" space="var(--space-400)">
|
|
39
|
+
|
|
40
|
+
<mui-v-stack space="var(--space-600)">
|
|
41
|
+
|
|
42
|
+
<mui-v-stack space="var(--space-400)">
|
|
43
|
+
<mui-body size="large">Configure your brand’s colors, typography, and spacing — without touching
|
|
44
|
+
component code. Start with the GitHub template and plan how your brand will come to life, including
|
|
45
|
+
support for both light and dark mode.</mui-body>
|
|
46
|
+
</mui-v-stack>
|
|
47
|
+
|
|
48
|
+
<mui-v-stack space="var(--space-300)">
|
|
49
|
+
<mui-heading level="3" size="5">Design tokens</mui-heading>
|
|
50
|
+
<mui-body size="medium">
|
|
51
|
+
<mui-link size="medium" href="#/base-design-tokens">Base</mui-link>,
|
|
52
|
+
<mui-link size="medium" href="#/semantic-design-tokens">Semantic</mui-link>,
|
|
53
|
+
<mui-link size="medium" href="#/contextual-design-tokens">Contextual</mui-link>,
|
|
54
|
+
<mui-link size="medium" href="#/surface-design-tokens">Surface</mui-link> and
|
|
55
|
+
<mui-link size="medium" href="#/components-design-tokens">Component</mui-link> tokens.</mui-body>
|
|
56
|
+
</mui-v-stack>
|
|
57
|
+
|
|
58
|
+
<mui-v-stack space="var(--space-300)">
|
|
59
|
+
<mui-heading level="3" size="5">Brand primitives</mui-heading>
|
|
60
|
+
<mui-body size="medium">Set your brand’s core design tokens such as color palettes, font stacks,
|
|
61
|
+
and spacing values. These primitives serve as the building blocks for every component.</mui-body>
|
|
62
|
+
</mui-v-stack>
|
|
63
|
+
|
|
64
|
+
<mui-v-stack space="var(--space-300)">
|
|
65
|
+
<mui-heading level="3" size="5">Light mode</mui-heading>
|
|
66
|
+
<mui-body size="medium">Apply your brand primitives to the light color scheme. Ensure accessibility
|
|
67
|
+
and visual harmony by testing components against your chosen values.</mui-body>
|
|
68
|
+
</mui-v-stack>
|
|
69
|
+
|
|
70
|
+
<mui-v-stack space="var(--space-300)">
|
|
71
|
+
<mui-heading level="3" size="5">Dark mode</mui-heading>
|
|
72
|
+
<mui-body size="medium">Customise the dark theme by adjusting contrast, brightness, and other token
|
|
73
|
+
values to provide a cohesive experience in low-light environments.</mui-body>
|
|
74
|
+
</mui-v-stack>
|
|
75
|
+
|
|
76
|
+
<mui-v-stack space="var(--space-300)">
|
|
77
|
+
<mui-heading level="3" size="5">Set the foundation</mui-heading>
|
|
78
|
+
<mui-body size="medium">Establish consistency across your product by using the template to unify
|
|
79
|
+
theming across all modes. Fork the repository and start customizing your theme today.</mui-body>
|
|
80
|
+
</mui-v-stack>
|
|
81
|
+
|
|
82
|
+
</mui-v-stack>
|
|
83
|
+
|
|
84
|
+
<mui-image>
|
|
85
|
+
<img slot="image" src="${s}" alt="Author Tokens" />
|
|
86
|
+
<figcaption slot="caption">mui-styles/mui-tokens.css</figcaption>
|
|
87
|
+
</mui-image>
|
|
88
|
+
</mui-grid>
|
|
89
|
+
|
|
90
|
+
<mui-code slot="footer">
|
|
91
|
+
<br />
|
|
92
|
+
THEME STRUCTURE:
|
|
93
|
+
<br />
|
|
94
|
+
<br />
|
|
95
|
+
/* ===================================== */<br />
|
|
96
|
+
/* 1. BRAND PRIMITIVES<br />
|
|
97
|
+
/* ===================================== */<br />
|
|
98
|
+
:where(html) {<br />
|
|
99
|
+
...<br />
|
|
100
|
+
}<br />
|
|
101
|
+
<br />
|
|
102
|
+
/* ===================================== */<br />
|
|
103
|
+
/* 2. LIGHT MODE <br />
|
|
104
|
+
/* ===================================== */<br />
|
|
105
|
+
html[data-theme='light'] {<br />
|
|
106
|
+
...<br />
|
|
107
|
+
}<br />
|
|
108
|
+
<br />
|
|
109
|
+
/* ===================================== */<br />
|
|
110
|
+
/* 3. DARK MODE<br />
|
|
111
|
+
/* ===================================== */<br />
|
|
112
|
+
html[data-theme='dark'] {<br />
|
|
113
|
+
...<br />
|
|
114
|
+
}<br />
|
|
115
|
+
<br />
|
|
116
|
+
/* ===================================== */<br />
|
|
117
|
+
/* 4. SET THE FOUNDATION<br />
|
|
118
|
+
/* ===================================== */<br />
|
|
119
|
+
:where(html) {<br />
|
|
120
|
+
...<br />
|
|
121
|
+
}<br />
|
|
122
|
+
<br />
|
|
123
|
+
<br />
|
|
124
|
+
|
|
125
|
+
</mui-code>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
</page-card>
|
|
129
|
+
|
|
130
|
+
</mui-v-stack>
|
|
131
|
+
|
|
132
|
+
</story-template>
|
|
133
|
+
`}}customElements.define("theme-setup",t);
|