@epa-wg/custom-element-dist 0.0.33 → 0.0.35

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 (185) hide show
  1. package/.claude/settings.local.json +18 -0
  2. package/.gitattributes +4 -0
  3. package/.github/workflows/deploy.yml +59 -0
  4. package/.idea/copilot.data.migration.agent.xml +6 -0
  5. package/.idea/copilot.data.migration.ask.xml +6 -0
  6. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  7. package/.idea/copilot.data.migration.edit.xml +6 -0
  8. package/.idea/custom-element-dist.iml +2 -0
  9. package/.storybook/main.ts +20 -17
  10. package/.storybook/preview.ts +23 -23
  11. package/.yarn/install-state.gz +0 -0
  12. package/.yarnrc.yml +1 -0
  13. package/README.md +6 -4
  14. package/coverage/block-navigation.js +1 -1
  15. package/coverage/coverage-final.json +4 -3
  16. package/coverage/index.html +34 -19
  17. package/coverage/sorter.js +21 -7
  18. package/coverage/src/custom-element/coverage.svg +1 -1
  19. package/coverage/src/custom-element/custom-element.js/coverage.svg +1 -1
  20. package/coverage/src/custom-element/custom-element.js.html +448 -391
  21. package/coverage/src/custom-element/http-request.js/coverage.svg +1 -1
  22. package/coverage/src/custom-element/http-request.js.html +38 -17
  23. package/coverage/src/custom-element/index.html +26 -26
  24. package/coverage/src/custom-element/local-storage.js.html +1 -1
  25. package/coverage/src/custom-element/location-element.js.html +1 -1
  26. package/coverage/src/custom-element/module-url.js.html +1 -1
  27. package/coverage/src/index.html +1 -1
  28. package/coverage/src/material/theme/colors.js/coverage.svg +10 -0
  29. package/coverage/src/material/theme/colors.js.html +217 -0
  30. package/coverage/src/material/theme/coverage.svg +10 -0
  31. package/coverage/src/material/theme/index.html +116 -0
  32. package/coverage/src/mocks/handlers.ts.html +1 -1
  33. package/coverage/src/mocks/index.html +1 -1
  34. package/coverage/src/stories/frame.canvas.ts.html +1 -1
  35. package/coverage/src/stories/http-request.stories.ts.html +1 -1
  36. package/coverage/src/stories/index.html +1 -1
  37. package/coverage/src/stories/testStoryBook.ts.html +12 -12
  38. package/coverage/src/sum.ts.html +1 -1
  39. package/dist/custom-element-Bssk9jRy.cjs +97 -0
  40. package/dist/{custom-element-WnOqmEOe.js → custom-element-BzDjIYMe.js} +193 -183
  41. package/dist/custom-element-bundle.cjs +1 -1
  42. package/dist/custom-element-bundle.js +3 -3
  43. package/dist/demo/a.html +10 -3
  44. package/dist/demo/a.svg +26 -26
  45. package/dist/demo/html-template.html +4 -3
  46. package/dist/demo/s.xml +1 -75
  47. package/dist/demo/s.xslt +351 -72
  48. package/dist/demo/s1.xml +3706 -0
  49. package/dist/http-request-DSaowcG1.cjs +1 -0
  50. package/dist/{http-request-BOvP4KTl.js → http-request-DTCzZ1gc.js} +15 -9
  51. package/dist/mockServiceWorker.js +105 -63
  52. package/package.json +5 -4
  53. package/public/demo/a.html +10 -3
  54. package/public/demo/a.svg +26 -26
  55. package/public/demo/html-template.html +4 -3
  56. package/public/demo/s.xml +1 -75
  57. package/public/demo/s.xslt +351 -72
  58. package/public/demo/s1.xml +3706 -0
  59. package/public/mockServiceWorker.js +105 -63
  60. package/src/custom-element/custom-element.js +28 -9
  61. package/src/custom-element/demo/a.html +10 -3
  62. package/src/custom-element/demo/a.svg +26 -26
  63. package/src/custom-element/demo/html-template.html +4 -3
  64. package/src/custom-element/demo/s.xml +1 -75
  65. package/src/custom-element/demo/s.xslt +351 -72
  66. package/src/custom-element/demo/s1.xml +3706 -0
  67. package/src/custom-element/http-request.js +7 -0
  68. package/src/custom-element/ide/customData-dce.json +123 -0
  69. package/src/custom-element/ide/web-types-dce.json +128 -1
  70. package/src/custom-element/ide/web-types-xsl.json +1 -1
  71. package/src/material/angular.css +987 -987
  72. package/src/material/components/action.html +262 -0
  73. package/src/material/components/autocomplete.html +167 -239
  74. package/src/material/components/badge.html +238 -239
  75. package/src/material/components/dropdown.html +0 -1
  76. package/src/material/components/icon-link.html +160 -161
  77. package/src/material/components/icon.html +251 -252
  78. package/src/material/components/input.html +569 -570
  79. package/src/material/components/menu.html +235 -236
  80. package/src/material/components.html +157 -158
  81. package/src/material/demo.css +36 -36
  82. package/src/material/index.html +109 -110
  83. package/src/material/material.css +356 -356
  84. package/src/material/theme/Base-Principles.md +339 -0
  85. package/src/material/theme/README.md +298 -18
  86. package/src/material/theme/UI Domain Model in web applications.svg +1 -0
  87. package/src/material/theme/User Semantic Theme tokens.svg +1 -0
  88. package/src/material/theme/action-pending-poc.html +62 -0
  89. package/src/material/theme/actions-color.html +141 -0
  90. package/src/material/theme/colors-light.html +631 -0
  91. package/src/material/theme/colors-native.html +51 -0
  92. package/src/material/theme/colors-poc.html +66 -0
  93. package/src/material/theme/colors.html +297 -0
  94. package/src/material/theme/colors.js +44 -0
  95. package/src/material/theme/consumer-theme.css +745 -0
  96. package/src/material/theme/semantic.css +132 -132
  97. package/src/material/theme/style-bug.html +123 -0
  98. package/src/material/theme/theme-data.css +43 -0
  99. package/src/material/theme/theme-data.xhtml +2926 -0
  100. package/src/material/theme/todo.md +274 -0
  101. package/src/material/theme/tokens/action-colors.png +0 -0
  102. package/src/material/theme/tokens/cem-article-illustration-4x1-letterbox-2000x500.png +0 -0
  103. package/src/material/theme/tokens/cem-breakpoints.md +519 -0
  104. package/src/material/theme/tokens/cem-colors.md +715 -0
  105. package/src/material/theme/tokens/cem-consumerflow-typography-matrix.svg +198 -0
  106. package/src/material/theme/tokens/cem-coupling.md +372 -0
  107. package/src/material/theme/tokens/cem-data-vs-reading-numerals.svg +164 -0
  108. package/src/material/theme/tokens/cem-dimension.md +625 -0
  109. package/src/material/theme/tokens/cem-layering.md +562 -0
  110. package/src/material/theme/tokens/cem-m3-parity.md +343 -0
  111. package/src/material/theme/tokens/cem-responsive.md +238 -0
  112. package/src/material/theme/tokens/cem-shape.md +691 -0
  113. package/src/material/theme/tokens/cem-stroke-density-illustration-4to1-v3.svg +102 -0
  114. package/src/material/theme/tokens/cem-stroke.md +480 -0
  115. package/src/material/theme/tokens/cem-timing.md +198 -0
  116. package/src/material/theme/tokens/cem-typography-model-stack.svg +64 -0
  117. package/src/material/theme/tokens/cem-voice-fonts-typography.md +718 -0
  118. package/src/material/theme/tokens/cem-voice-ladder.svg +91 -0
  119. package/src/material/theme/tokens/chips.png +0 -0
  120. package/src/material/theme/tokens/columns-page.png +0 -0
  121. package/src/material/theme/tokens/initials.png +0 -0
  122. package/src/material/theme/tokens/nav-buttons.png +0 -0
  123. package/src/material/theme/tokens/script.png +0 -0
  124. package/src/material/theme/tokens/sufler.png +0 -0
  125. package/src/material/theme/tokens/typography-icons.png +0 -0
  126. package/src/mocks/versions.mock.ts +1 -1
  127. package/src/stories/__screenshots__/dom-merge.test.stories.ts/dom-merge-dom-merge-OrderPreservingOn2ndTransform-1.png +0 -0
  128. package/src/stories/__screenshots__/xslt-conditionals.test.stories.ts/xslt-conditionals-xslt-conditionals-MultipleIfOrderingWorkaround-1.png +0 -0
  129. package/src/stories/dom-merge.test.stories.ts +25 -1
  130. package/src/stories/xslt-conditionals.test.stories.ts +492 -0
  131. package/src/stories/xslt-for-each.test.stories.ts +336 -0
  132. package/src/stories/xslt-if.test.stories.ts +89 -0
  133. package/storybook-static/assets/{Color-F6OSRLHC-Cbp293x2.js → Color-F6OSRLHC-DeDlDLjU.js} +1 -1
  134. package/storybook-static/assets/{Configure-BrFr4SLE.js → Configure-CH_tIP5N.js} +1 -1
  135. package/storybook-static/assets/{DocsRenderer-CFRXHY34-DhHzJiIO.js → DocsRenderer-CFRXHY34-Bc9EPsUI.js} +2 -2
  136. package/storybook-static/assets/{attributes.test.stories-Gg9LQTEK.js → attributes.test.stories-BtamFQkF.js} +1 -1
  137. package/storybook-static/assets/{css.test.stories-B_3ltOrx.js → css.test.stories-BfNxLgwr.js} +1 -1
  138. package/storybook-static/assets/{custom-element-CPnvJnn8.js → custom-element-CnmjNo0g.js} +6 -6
  139. package/storybook-static/assets/{dom-merge.test.stories-nQxcgLoM.js → dom-merge.test.stories-DxnitrLK.js} +47 -6
  140. package/storybook-static/assets/entry-preview-BNCt9WBs.js +26 -0
  141. package/storybook-static/assets/{entry-preview-docs-Dwczwtsc.js → entry-preview-docs-CbF8-81D.js} +2 -2
  142. package/storybook-static/assets/{external-template.test.stories-DZ-rjnfd.js → external-template.test.stories-BTsww7B0.js} +1 -1
  143. package/storybook-static/assets/{form.test.stories-DQhPYtMj.js → form.test.stories-DNJFtPJb.js} +1 -1
  144. package/storybook-static/assets/{frame.canvas-ClTqYyMN.js → frame.canvas-E5n9h6j1.js} +1 -1
  145. package/storybook-static/assets/{handlers-CLkps6Nz.js → handlers-Dvg8CAeR.js} +1 -1
  146. package/storybook-static/assets/http-request-BWeEEBkP.js +1 -0
  147. package/storybook-static/assets/{http-request.stories-jo0f73nw.js → http-request.stories-DgrBNle8.js} +1 -1
  148. package/storybook-static/assets/{iframe-CZwRpnn9.js → iframe-DiVWehoI.js} +11 -11
  149. package/storybook-static/assets/{index-Dr4PwNfd.js → index-CGuyH0k-.js} +87 -87
  150. package/storybook-static/assets/{index-CJQtnF9V.js → index-CdEbhcV9.js} +1 -1
  151. package/storybook-static/assets/index-DO1nmyvI.js +11 -0
  152. package/storybook-static/assets/{index-B68YUdzy.js → index-w6iX3YlR.js} +3 -3
  153. package/storybook-static/assets/{local-storage.test.stories-uA5EKRPf.js → local-storage.test.stories-Hwq80yUr.js} +1 -1
  154. package/storybook-static/assets/{location-element.test.stories-Cu-6Elcg.js → location-element.test.stories-mEhZzm7x.js} +1 -1
  155. package/storybook-static/assets/{module-url.test.stories-CD_wusXQ.js → module-url.test.stories-Bj46iT0V.js} +1 -1
  156. package/storybook-static/assets/{preview-CuCH40jj.js → preview-BjbXcJci.js} +2 -2
  157. package/storybook-static/assets/{preview-BFlNN3Wj.js → preview-Bn8igYMp.js} +1 -1
  158. package/storybook-static/assets/{preview-Cm4PPhHS.js → preview-CfuT8gak.js} +1 -1
  159. package/storybook-static/assets/{set-url.test.stories-CY7B9BVZ.js → set-url.test.stories-hzxLcqmm.js} +1 -1
  160. package/storybook-static/assets/{slice-events.test.stories-BVnPXm6e.js → slice-events.test.stories-DVyXFRU1.js} +1 -1
  161. package/storybook-static/assets/{slots.test.stories-Dxsa9KdA.js → slots.test.stories-CS544nS4.js} +1 -1
  162. package/storybook-static/assets/{version-select.test.stories-Buga1PAa.js → version-select.test.stories-D36nfYBq.js} +1 -1
  163. package/storybook-static/assets/xslt-conditionals.test.stories-BS1PTIHe.js +633 -0
  164. package/storybook-static/assets/xslt-for-each.test.stories-CtPS20RK.js +329 -0
  165. package/storybook-static/assets/xslt-if.test.stories-DcHrAMSY.js +71 -0
  166. package/storybook-static/demo/a.html +10 -3
  167. package/storybook-static/demo/a.svg +26 -26
  168. package/storybook-static/demo/html-template.html +4 -3
  169. package/storybook-static/demo/s.xml +1 -75
  170. package/storybook-static/demo/s.xslt +351 -72
  171. package/storybook-static/demo/s1.xml +3706 -0
  172. package/storybook-static/iframe.html +2 -2
  173. package/storybook-static/index.json +1 -1
  174. package/storybook-static/mockServiceWorker.js +105 -63
  175. package/storybook-static/project.json +1 -1
  176. package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +69 -66
  177. package/storybook-static/sb-addons/essentials-docs-3/manager-bundle.js +62 -59
  178. package/dist/custom-element-6slVaFEs.cjs +0 -97
  179. package/dist/http-request-DPrY7mGh.cjs +0 -1
  180. package/storybook-static/assets/attributes.test.stories-CzWkKw0e.js +0 -1
  181. package/storybook-static/assets/entry-preview-DHVXbf3x.js +0 -26
  182. package/storybook-static/assets/external-template.test.stories-BivZqBTp.js +0 -1
  183. package/storybook-static/assets/http-request-DNq59pnj.js +0 -1
  184. package/storybook-static/assets/index-BwkS7JH_.js +0 -8
  185. package/storybook-static/assets/module-url.test.stories-CTjUAk3J.js +0 -1
@@ -1,237 +1,236 @@
1
- <!DOCTYPE html>
2
- <html lang="en" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
6
- <title>Components - custom-element - Material Design</title>
7
- <link href="../../custom-element/demo/wc-square.svg" rel="icon"/>
8
- <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"/>
9
- <link crossorigin="anonymous" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css"
10
- integrity="sha384-DyZ88mC6Up2uqS4h/KRgHuoeGwBcD4Ng9SiP4dIRy0EXTlnuz47vAwmeGwVChigm" rel="stylesheet"/>
11
-
12
- <script type="importmap">
13
- {
14
- "imports": {
15
- "@epa-wg/": "../../"
16
- }
17
- }
18
- </script>
19
- <script src="../../custom-element/module-url.js" type="module"></script>
20
- <script src="../../custom-element/custom-element.js" type="module"></script>
21
- <style>
22
- @import "../angular.css";
23
- @import "../material.css";
24
- @import "../theme/semantic.css";
25
- @import "../demo.css";
26
- main{
27
- display: flex; flex-wrap: wrap;
28
- gap: 3rem;
29
- padding: 5rem;
30
- &>p{ min-width: 90%; }
31
- html-demo-element
32
- { overflow: visible;
33
- [slot="legend"]{ border-radius: 1rem 1rem 0 0; }
34
- [slot="description"]{ padding: 0 1rem 1rem 1rem; dd{ padding: 0 !important;margin: 0; }}
35
- [slot="description"] dd{ padding: 0; }
36
- }
37
- }
38
- </style>
39
- </head>
40
-
41
- <body>
42
- <custom-element hidden src="./icon-link.html#cem-icon-link" tag="cem-icon-link"></custom-element>
43
-
44
- <header class="cem-theme-teal">
45
- <custom-element src="../index.html#nav-head" ></custom-element>
46
- </header>
47
- <main>
48
- <p><code>cem-menu</code> is responsive menu component from &lt;custom-element&gt; Material suite based on the
49
- <a href="https://material.io/components" >Material Design specification</a>.
50
- </p>
51
- <p>
52
- <code>direction</code> attribute defines css <code>row</code> or <code>column</code> flex-direction.
53
- </p>
54
- <custom-element tag="cem-menu" hidden>
55
- <template id="cem-menu">
56
- <attribute name="direction"></attribute>
57
- <attribute name="justify"></attribute>
58
- <style>
59
-
60
- &[direction="column"]>*{ flex-direction: column; }
61
- &[direction="row" ]>*{ flex-direction: row; }
62
- &[justify="end" ]>*{ justify-content: flex-end; }
63
- &[justify="start" ]>*{ justify-content: flex-start;}
64
-
65
- dce-root
66
- {
67
- display: flex;
68
- flex-direction: row;
69
- flex-wrap: wrap;
70
- &>style{display: none !important;}
71
- &>*
72
- { display: flex;
73
- align-items: center;
74
- padding: var(--cem-menu-item-padding);
75
- background-color: var( --cem-menu-item-background );
76
- color: var( --cem-menu-item-color );
77
- text-decoration: none;
78
- font-weight: var(--cem-menu-item-font-weight);
79
- &:focus{ z-index: 1; }
80
- &[disabled],&[disabled]:visited{ color:var(--cem-menu-item-color-disabled); pointer-events: none;}
81
- &:visited{ color:var(--cem-menu-item-color); }
82
- &:hover
83
- {
84
- color: var(--cem-menu-item-hover-color);
85
- background-color: var(--cem-menu-item-hover-background);
86
- }
87
- &:empty{ display: none;}
88
- }
89
- }
90
-
91
- </style>
92
- <slot name=""></slot>
93
- </template>
94
- </custom-element>
95
-
96
- <html-demo-element legend="Default" description="horizontal menu with padding on elements">
97
- <template>
98
- <cem-menu>
99
- <a href="#">link 1</a>
100
- <a disabled>link 2</a>
101
- <a href="#">link 3</a>
102
- </cem-menu>
103
- </template>
104
- </html-demo-element>
105
-
106
- <html-demo-element legend="Vertical" description="vertical menu">
107
- <template>
108
- <cem-menu direction="column">
109
- <a href="#">link 1</a>
110
- <a href="#">link 2</a>
111
- <a href="#">link 3</a>
112
- </cem-menu>
113
- </template>
114
- </html-demo-element>
115
-
116
- <html-demo-element legend="Horizontal" description="horizontal menu">
117
- <template>
118
- <cem-menu direction="row">
119
- <a href="#">link 1</a>
120
- <a href="#">link 2</a>
121
- <a href="#">link 3</a>
122
- </cem-menu>
123
- </template>
124
- </html-demo-element>
125
-
126
- <html-demo-element legend="custom styling for all menus in scope" description="supported via overriding css properties">
127
- <template>
128
- <custom-element>
129
- <template>
130
- <style>
131
- a{
132
- --cem-menu-item-color: yellow;
133
- --cem-menu-item-background: lightblue;
134
- --cem-menu-item-hover-background: blue;
135
- --cem-menu-item-hover-color: red;
136
- &:visited{ color:var(--cem-menu-item-color); }
137
- &:hover{ color:var(--cem-menu-item-hover-color); }
138
- }
139
- </style>
140
- <cem-menu direction="row">
141
- <a href="#">link 1</a>
142
- <a href="#">link 2</a>
143
- <a href="#">link 3</a>
144
- </cem-menu>
145
- <cem-menu direction="row">
146
- <a href="#">link A</a>
147
- <a href="#">link B</a>
148
- </cem-menu>
149
- </template>
150
- </custom-element>
151
- </template>
152
- </html-demo-element>
153
-
154
- <html-demo-element legend="inline custom styling " description="supported via overriding css properties">
155
- <template>
156
- <cem-menu direction="row">
157
- <template>
158
- <style>
159
- a
160
- { --cem-menu-item-color:blue;
161
- --cem-menu-item-background: salmon;
162
- --cem-menu-item-hover-background: blue;
163
- --cem-menu-item-hover-color: yellow;
164
- }
165
- </style>
166
- <a href="#">link 1</a>
167
- <a href="#">link 2</a>
168
- <a href="#">link 3</a>
169
- </template>
170
- </cem-menu>
171
- </template>
172
- </html-demo-element>
173
-
174
- <html-demo-element legend="wrap menu" description="second line is left aligned by default">
175
- <template>
176
-
177
- <custom-element>
178
- <template>
179
- <style>
180
- cem-menu
181
- { display: block;
182
- width: 8rem;
183
- border: dashed 1px coral;
184
- }
185
- </style>
186
- <cem-menu>
187
- <template>
188
- <a href="#">link 1</a>
189
- <a href="#">link 2</a>
190
- <a href="#">link 3</a>
191
- </template>
192
- </cem-menu>
193
- </template>
194
- </custom-element>
195
-
196
- </template>
197
- </html-demo-element>
198
-
199
- <html-demo-element legend="wrap menu right" description="second line right aligned">
200
- <template>
201
-
202
- <custom-element>
203
- <template>
204
- <style>
205
- cem-menu
206
- { display: block;
207
- width: 8rem;
208
- border: dashed 1px coral;
209
- }
210
- </style>
211
- <cem-menu justify="end">
212
- <template>
213
- <a href="#">link 1</a>
214
- <a href="#">link 2</a>
215
- <a href="#">link 3</a>
216
- </template>
217
- </cem-menu>
218
- </template>
219
- </custom-element>
220
-
221
- </template>
222
- </html-demo-element>
223
-
224
-
225
-
226
-
227
-
228
- </main>
229
- <footer>
230
- <hr/>
231
- Powered by Syngrafact Corp. ©2024.<br/>
232
- <a href="../../LICENSE"> Code and documentation licensed under an Apache License 2.0 </a>
233
- </footer>
234
- <script type="module" src="https://unpkg.com/html-demo-element@1.0.8/html-demo-element.js"></script>
235
-
236
- </body>
1
+ <!DOCTYPE html>
2
+ <html lang="en" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
6
+ <title>Components - custom-element - Material Design</title>
7
+ <link href="../../custom-element/demo/wc-square.svg" rel="icon"/>
8
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"/>
9
+ <link crossorigin="anonymous" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css"
10
+ integrity="sha384-DyZ88mC6Up2uqS4h/KRgHuoeGwBcD4Ng9SiP4dIRy0EXTlnuz47vAwmeGwVChigm" rel="stylesheet"/>
11
+
12
+ <script type="importmap">
13
+ {
14
+ "imports": {
15
+ "@epa-wg/": "../../"
16
+ }
17
+ }
18
+ </script>
19
+ <script src="../../custom-element/module-url.js" type="module"></script>
20
+ <script src="../../custom-element/custom-element.js" type="module"></script>
21
+ <style>
22
+ @import "../angular.css";
23
+ @import "../material.css";
24
+ @import "../theme/semantic.css";
25
+ @import "../demo.css";
26
+ main{
27
+ display: flex; flex-wrap: wrap;
28
+ gap: 3rem;
29
+ padding: 5rem;
30
+ &>p{ min-width: 90%; }
31
+ html-demo-element
32
+ { overflow: visible;
33
+ [slot="legend"]{ border-radius: 1rem 1rem 0 0; }
34
+ [slot="description"]{ padding: 0 1rem 1rem 1rem; dd{ padding: 0 !important;margin: 0; }}
35
+ [slot="description"] dd{ padding: 0; }
36
+ }
37
+ }
38
+ </style>
39
+ </head>
40
+
41
+ <body>
42
+ <custom-element hidden src="./icon-link.html#cem-icon-link" tag="cem-icon-link"></custom-element>
43
+
44
+ <header class="cem-theme-teal">
45
+ <custom-element src="../index.html#nav-head" ></custom-element>
46
+ </header>
47
+ <main>
48
+ <p><code>cem-menu</code> is responsive menu component from &lt;custom-element&gt; Material suite based on the
49
+ <a href="https://material.io/components" >Material Design specification</a>.
50
+ </p>
51
+ <p>
52
+ <code>direction</code> attribute defines css <code>row</code> or <code>column</code> flex-direction.
53
+ </p>
54
+ <custom-element tag="cem-menu" hidden>
55
+ <template id="cem-menu">
56
+ <attribute name="direction"></attribute>
57
+ <attribute name="justify"></attribute>
58
+ <style>
59
+
60
+ &[direction="column"]>*{ flex-direction: column; }
61
+ &[direction="row" ]>*{ flex-direction: row; }
62
+ &[justify="end" ]>*{ justify-content: flex-end; }
63
+ &[justify="start" ]>*{ justify-content: flex-start;}
64
+
65
+ dce-root
66
+ {
67
+ display: flex;
68
+ flex-direction: row;
69
+ flex-wrap: wrap;
70
+ &>style{display: none !important;}
71
+ &>*
72
+ { display: flex;
73
+ align-items: center;
74
+ padding: var(--cem-menu-item-padding);
75
+ background-color: var( --cem-menu-item-background );
76
+ color: var( --cem-menu-item-color );
77
+ text-decoration: none;
78
+ font-weight: var(--cem-menu-item-font-weight);
79
+ &:focus{ z-index: 1; }
80
+ &[disabled],&[disabled]:visited{ color:var(--cem-menu-item-color-disabled); pointer-events: none;}
81
+ &:visited{ color:var(--cem-menu-item-color); }
82
+ &:hover
83
+ {
84
+ color: var(--cem-menu-item-hover-color);
85
+ background-color: var(--cem-menu-item-hover-background);
86
+ }
87
+ &:empty{ display: none;}
88
+ }
89
+ }
90
+
91
+ </style>
92
+ <slot name=""></slot>
93
+ </template>
94
+ </custom-element>
95
+
96
+ <html-demo-element legend="Default" description="horizontal menu with padding on elements">
97
+ <template>
98
+ <cem-menu>
99
+ <a href="#">link 1</a>
100
+ <a disabled>link 2</a>
101
+ <a href="#">link 3</a>
102
+ </cem-menu>
103
+ </template>
104
+ </html-demo-element>
105
+
106
+ <html-demo-element legend="Vertical" description="vertical menu">
107
+ <template>
108
+ <cem-menu direction="column">
109
+ <a href="#">link 1</a>
110
+ <a href="#">link 2</a>
111
+ <a href="#">link 3</a>
112
+ </cem-menu>
113
+ </template>
114
+ </html-demo-element>
115
+
116
+ <html-demo-element legend="Horizontal" description="horizontal menu">
117
+ <template>
118
+ <cem-menu direction="row">
119
+ <a href="#">link 1</a>
120
+ <a href="#">link 2</a>
121
+ <a href="#">link 3</a>
122
+ </cem-menu>
123
+ </template>
124
+ </html-demo-element>
125
+
126
+ <html-demo-element legend="custom styling for all menus in scope" description="supported via overriding css properties">
127
+ <template>
128
+ <custom-element>
129
+ <template>
130
+ <style>
131
+ a{
132
+ --cem-menu-item-color: yellow;
133
+ --cem-menu-item-background: lightblue;
134
+ --cem-menu-item-hover-background: blue;
135
+ --cem-menu-item-hover-color: red;
136
+ &:visited{ color:var(--cem-menu-item-color); }
137
+ &:hover{ color:var(--cem-menu-item-hover-color); }
138
+ }
139
+ </style>
140
+ <cem-menu direction="row">
141
+ <a href="#">link 1</a>
142
+ <a href="#">link 2</a>
143
+ <a href="#">link 3</a>
144
+ </cem-menu>
145
+ <cem-menu direction="row">
146
+ <a href="#">link A</a>
147
+ <a href="#">link B</a>
148
+ </cem-menu>
149
+ </template>
150
+ </custom-element>
151
+ </template>
152
+ </html-demo-element>
153
+
154
+ <html-demo-element legend="inline custom styling " description="supported via overriding css properties">
155
+ <template>
156
+ <cem-menu direction="row">
157
+ <template>
158
+ <style>
159
+ a
160
+ { --cem-menu-item-color:blue;
161
+ --cem-menu-item-background: salmon;
162
+ --cem-menu-item-hover-background: blue;
163
+ --cem-menu-item-hover-color: yellow;
164
+ }
165
+ </style>
166
+ <a href="#">link 1</a>
167
+ <a href="#">link 2</a>
168
+ <a href="#">link 3</a>
169
+ </template>
170
+ </cem-menu>
171
+ </template>
172
+ </html-demo-element>
173
+
174
+ <html-demo-element legend="wrap menu" description="second line is left aligned by default">
175
+ <template>
176
+
177
+ <custom-element>
178
+ <template>
179
+ <style>
180
+ cem-menu
181
+ { display: block;
182
+ width: 8rem;
183
+ border: dashed 1px coral;
184
+ }
185
+ </style>
186
+ <cem-menu>
187
+ <template>
188
+ <a href="#">link 1</a>
189
+ <a href="#">link 2</a>
190
+ <a href="#">link 3</a>
191
+ </template>
192
+ </cem-menu>
193
+ </template>
194
+ </custom-element>
195
+
196
+ </template>
197
+ </html-demo-element>
198
+
199
+ <html-demo-element legend="wrap menu right" description="second line right aligned">
200
+ <template>
201
+
202
+ <custom-element>
203
+ <template>
204
+ <style>
205
+ cem-menu
206
+ { display: block;
207
+ width: 8rem;
208
+ border: dashed 1px coral;
209
+ }
210
+ </style>
211
+ <cem-menu justify="end">
212
+ <template>
213
+ <a href="#">link 1</a>
214
+ <a href="#">link 2</a>
215
+ <a href="#">link 3</a>
216
+ </template>
217
+ </cem-menu>
218
+ </template>
219
+ </custom-element>
220
+
221
+ </template>
222
+ </html-demo-element>
223
+
224
+
225
+
226
+
227
+
228
+ </main>
229
+ <footer>
230
+ <hr/>
231
+ <a href="../../LICENSE"> Code and documentation licensed under an Apache License 2.0 </a>
232
+ </footer>
233
+ <script type="module" src="https://unpkg.com/html-demo-element@1.0.8/html-demo-element.js"></script>
234
+
235
+ </body>
237
236
  </html>