@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,162 +1,161 @@
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
- <template id="cem-icon-link">
43
- <attribute name="href"></attribute>
44
- <attribute name="icon"></attribute>
45
- <attribute aria-description="color appearance. Default value is 'normal'. Values: normal|primary|secondary|alert|blend"
46
- name="kind"></attribute>
47
- <style>
48
- &:not([kind]) a, &[kind="normal"] a {
49
- /*background-color: var(--mdc-theme-primary, #6200ee);*/
50
- }
51
-
52
- a {
53
- display: inline-flex;
54
- align-items: center;
55
- gap: 0.5rem;
56
- padding: 0.5rem 1rem;;
57
- border-radius: 1.5rem;
58
-
59
- background-color: var(--cem-action-primary-background);
60
- transition: var(--cem-action-transition);
61
- box-shadow: var(--cem-action-box-shadow);
62
-
63
- &:hover {
64
- background-color: var(--cem-action-primary-background-hover);
65
- box-shadow: var(--cem-action-box-shadow-hover);
66
- }
67
-
68
- &:focus {
69
- background-color: var(--cem-action-primary-background-focus);
70
- }
71
-
72
- &:active, &:focus:active {
73
- background-color: var(--cem-action-primary-background-active);
74
- }
75
-
76
- &, &:visited {
77
- text-decoration: none;
78
- color: var(--mat-light-blue-900);
79
- }
80
- --icon-size: 2rem;
81
- min-height: var(--icon-size);
82
- }
83
-
84
- .icon {
85
- font-size: var(--icon-size);
86
- height: var(--icon-size);
87
- }
88
-
89
- </style>
90
- <a href="{$href}">
91
- <choose>
92
- <when test="contains($icon,'/')"><img alt="DCE logo" class="icon" src="{$icon}"/></when>
93
- <when test="contains($icon,'fa-')"><i class="icon {$icon}"></i></when>
94
- <when test="$icon"><span class="icon material-icons">{$icon}</span></when>
95
- </choose>
96
- <slot></slot>
97
- </a>
98
- </template>
99
-
100
- <custom-element hidden src="#cem-icon-link" tag="cem-icon-link"></custom-element>
101
-
102
- <header class="cem-theme-teal">
103
- <custom-element src="../index.html#nav-head" ></custom-element>
104
- </header>
105
- <main>
106
- <p><code>cem-icon-link</code> is button like component from &lt;custom-element&gt; Material suite based on the
107
- <a href="https://material.io/components" >Material Design specification</a>.
108
- </p>
109
- <p>
110
- <code>direction</code> attribute defines css <code>row</code> or <code>column</code> flex-direction.
111
- </p>
112
-
113
-
114
- <html-demo-element legend="Image from importmap module"
115
- description="logo SVG with link to file in module">
116
- <template>
117
- <custom-element>
118
- <template>
119
- <module-url slice="cem-url" src="@epa-wg/material"></module-url>
120
- <module-url slice="logo-url" src="@epa-wg/custom-element/demo/wc-square.svg"></module-url>
121
- <cem-icon-link href="{//cem-url}/" icon="{//logo-url}"> custom-element</cem-icon-link>
122
- <cem-icon-link icon="https://unpkg.com/pokeapi-sprites@2.0.2/sprites/pokemon/other/dream-world/1.svg">
123
- bulbasaur</cem-icon-link>
124
- </template>
125
- </custom-element>
126
- </template>
127
- </html-demo-element>
128
-
129
- <html-demo-element legend="Google Material icon font" >
130
- <p slot="description">
131
- <a href="https://fonts.google.com/icons">Material Icon</a> example.
132
- </p>
133
- <template>
134
- <cem-icon-link icon="recycling"> recycling</cem-icon-link>
135
- <cem-icon-link icon="shopping_cart"> shopping_cart</cem-icon-link>
136
- </template>
137
- </html-demo-element>
138
-
139
- <html-demo-element legend="Fontawesome" >
140
- <p slot="description">
141
- <a href="https://fontawesome.com/icons/">Fontawesome Icon</a> example.
142
- </p>
143
- <template>
144
- <cem-icon-link icon="fab fa-github" > GitHub </cem-icon-link>
145
- <cem-icon-link icon="fas fa-cloud-upload-alt" > Upload </cem-icon-link>
146
- </template>
147
- </html-demo-element>
148
-
149
-
150
-
151
-
152
-
153
- </main>
154
- <footer>
155
- <hr/>
156
- Powered by Syngrafact Corp. ©2024.<br/>
157
- <a href="../../LICENSE"> Code and documentation licensed under an Apache License 2.0 </a>
158
- </footer>
159
- <script type="module" src="https://unpkg.com/html-demo-element@1.0.8/html-demo-element.js"></script>
160
-
161
- </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
+ <template id="cem-icon-link">
43
+ <attribute name="href"></attribute>
44
+ <attribute name="icon"></attribute>
45
+ <attribute aria-description="color appearance. Default value is 'normal'. Values: normal|primary|secondary|alert|blend"
46
+ name="kind"></attribute>
47
+ <style>
48
+ &:not([kind]) a, &[kind="normal"] a {
49
+ /*background-color: var(--mdc-theme-primary, #6200ee);*/
50
+ }
51
+
52
+ a {
53
+ display: inline-flex;
54
+ align-items: center;
55
+ gap: 0.5rem;
56
+ padding: 0.5rem 1rem;;
57
+ border-radius: 1.5rem;
58
+
59
+ background-color: var(--cem-action-primary-background);
60
+ transition: var(--cem-action-transition);
61
+ box-shadow: var(--cem-action-box-shadow);
62
+
63
+ &:hover {
64
+ background-color: var(--cem-action-primary-background-hover);
65
+ box-shadow: var(--cem-action-box-shadow-hover);
66
+ }
67
+
68
+ &:focus {
69
+ background-color: var(--cem-action-primary-background-focus);
70
+ }
71
+
72
+ &:active, &:focus:active {
73
+ background-color: var(--cem-action-primary-background-active);
74
+ }
75
+
76
+ &, &:visited {
77
+ text-decoration: none;
78
+ color: var(--mat-light-blue-900);
79
+ }
80
+ --icon-size: 2rem;
81
+ min-height: var(--icon-size);
82
+ }
83
+
84
+ .icon {
85
+ font-size: var(--icon-size);
86
+ height: var(--icon-size);
87
+ }
88
+
89
+ </style>
90
+ <a href="{$href}">
91
+ <choose>
92
+ <when test="contains($icon,'/')"><img alt="DCE logo" class="icon" src="{$icon}"/></when>
93
+ <when test="contains($icon,'fa-')"><i class="icon {$icon}"></i></when>
94
+ <when test="$icon"><span class="icon material-icons">{$icon}</span></when>
95
+ </choose>
96
+ <slot></slot>
97
+ </a>
98
+ </template>
99
+
100
+ <custom-element hidden src="#cem-icon-link" tag="cem-icon-link"></custom-element>
101
+
102
+ <header class="cem-theme-teal">
103
+ <custom-element src="../index.html#nav-head" ></custom-element>
104
+ </header>
105
+ <main>
106
+ <p><code>cem-icon-link</code> is button like component from &lt;custom-element&gt; Material suite based on the
107
+ <a href="https://material.io/components" >Material Design specification</a>.
108
+ </p>
109
+ <p>
110
+ <code>direction</code> attribute defines css <code>row</code> or <code>column</code> flex-direction.
111
+ </p>
112
+
113
+
114
+ <html-demo-element legend="Image from importmap module"
115
+ description="logo SVG with link to file in module">
116
+ <template>
117
+ <custom-element>
118
+ <template>
119
+ <module-url slice="cem-url" src="@epa-wg/material"></module-url>
120
+ <module-url slice="logo-url" src="@epa-wg/custom-element/demo/wc-square.svg"></module-url>
121
+ <cem-icon-link href="{//cem-url}/" icon="{//logo-url}"> custom-element</cem-icon-link>
122
+ <cem-icon-link icon="https://unpkg.com/pokeapi-sprites@2.0.2/sprites/pokemon/other/dream-world/1.svg">
123
+ bulbasaur</cem-icon-link>
124
+ </template>
125
+ </custom-element>
126
+ </template>
127
+ </html-demo-element>
128
+
129
+ <html-demo-element legend="Google Material icon font" >
130
+ <p slot="description">
131
+ <a href="https://fonts.google.com/icons">Material Icon</a> example.
132
+ </p>
133
+ <template>
134
+ <cem-icon-link icon="recycling"> recycling</cem-icon-link>
135
+ <cem-icon-link icon="shopping_cart"> shopping_cart</cem-icon-link>
136
+ </template>
137
+ </html-demo-element>
138
+
139
+ <html-demo-element legend="Fontawesome" >
140
+ <p slot="description">
141
+ <a href="https://fontawesome.com/icons/">Fontawesome Icon</a> example.
142
+ </p>
143
+ <template>
144
+ <cem-icon-link icon="fab fa-github" > GitHub </cem-icon-link>
145
+ <cem-icon-link icon="fas fa-cloud-upload-alt" > Upload </cem-icon-link>
146
+ </template>
147
+ </html-demo-element>
148
+
149
+
150
+
151
+
152
+
153
+ </main>
154
+ <footer>
155
+ <hr/>
156
+ <a href="../../LICENSE"> Code and documentation licensed under an Apache License 2.0 </a>
157
+ </footer>
158
+ <script type="module" src="https://unpkg.com/html-demo-element@1.0.8/html-demo-element.js"></script>
159
+
160
+ </body>
162
161
  </html>