@eui/mobile-core 20.0.2 → 22.0.0-alpha.1

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 (196) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/docs/architecture.html +223 -0
  3. package/docs/changelog.html +69 -4
  4. package/docs/components/EuiMUserProfileActionComponent.html +80 -130
  5. package/docs/components/EuiMUserProfileAvatarComponent.html +74 -129
  6. package/docs/components/EuiMUserProfileInfosComponent.html +117 -117
  7. package/docs/components/EuiMUserProfileInfosItemComponent.html +74 -129
  8. package/docs/components/EuimAboutComponent.html +108 -28
  9. package/docs/components/EuimAboutContentLoadingComponent.html +107 -33
  10. package/docs/components/EuimAlertMessageComponent.html +161 -90
  11. package/docs/components/EuimAppComponent.html +105 -27
  12. package/docs/components/EuimAvatarBadgeComponent.html +120 -72
  13. package/docs/components/EuimAvatarComponent.html +123 -121
  14. package/docs/components/EuimAvatarIconComponent.html +74 -129
  15. package/docs/components/EuimAvatarIconSubComponent.html +123 -121
  16. package/docs/components/EuimAvatarImageComponent.html +91 -121
  17. package/docs/components/EuimAvatarTextComponent.html +115 -117
  18. package/docs/components/EuimBadgeComponent.html +121 -43
  19. package/docs/components/EuimCardComponent.html +123 -71
  20. package/docs/components/EuimCardListComponent.html +118 -118
  21. package/docs/components/EuimChangelogComponent.html +131 -128
  22. package/docs/components/EuimChipSelectorComponent.html +257 -184
  23. package/docs/components/EuimDataSummaryColComponent.html +92 -25
  24. package/docs/components/EuimDataSummaryComponent.html +127 -44
  25. package/docs/components/EuimEmptyListPlaceholderComponent.html +176 -156
  26. package/docs/components/EuimHeaderDetailsComponent.html +130 -49
  27. package/docs/components/EuimHelpSupportComponent.html +159 -130
  28. package/docs/components/EuimHelperTextComponent.html +161 -66
  29. package/docs/components/EuimLabelComponent.html +134 -53
  30. package/docs/components/EuimLanguageListComponent.html +185 -31
  31. package/docs/components/EuimLanguageSelectorComponent.html +156 -54
  32. package/docs/components/EuimMediaHeaderComponent.html +137 -52
  33. package/docs/components/EuimMessageComponent.html +130 -47
  34. package/docs/components/EuimMessageTitleComponent.html +92 -25
  35. package/docs/components/EuimMultiselectComponent.html +160 -131
  36. package/docs/components/EuimMultiselectFilterComponent.html +103 -123
  37. package/docs/components/EuimMultiselectInfoComponent.html +91 -125
  38. package/docs/components/EuimMultiselectListComponent.html +85 -122
  39. package/docs/components/EuimMultiselectToolbarComponent.html +126 -134
  40. package/docs/components/EuimNotificationItemComponent.html +121 -43
  41. package/docs/components/EuimOpenSourceLicencesComponent.html +127 -137
  42. package/docs/components/EuimPdfViewerComponent.html +214 -141
  43. package/docs/components/EuimScrollerXComponent.html +78 -130
  44. package/docs/components/EuimSidebarComponent.html +125 -114
  45. package/docs/components/EuimSidebarContentComponent.html +151 -124
  46. package/docs/components/EuimSkeletonListComponent.html +127 -42
  47. package/docs/components/EuimSkeletonListItemComponent.html +159 -56
  48. package/docs/components/EuimSlideInfoScreenComponent.html +74 -129
  49. package/docs/components/EuimSliderInfoScreenComponent.html +247 -174
  50. package/docs/components/EuimSpinnerComponent.html +131 -119
  51. package/docs/components/EuimSpinnerDescriptionComponent.html +74 -129
  52. package/docs/components/EuimSpinnerMessageComponent.html +74 -129
  53. package/docs/components/EuimToolbarActionItemsComponent.html +74 -129
  54. package/docs/components/EuimToolbarComponent.html +150 -140
  55. package/docs/components/EuimToolbarDatepickerComponent.html +291 -114
  56. package/docs/components/EuimToolbarQrcodeComponent.html +100 -32
  57. package/docs/components/EuimToolbarTitleComponent.html +121 -43
  58. package/docs/components/EuimUserProfileComponent.html +117 -117
  59. package/docs/dependencies.html +56 -4
  60. package/docs/directives/BaseStatesDirective.html +175 -62
  61. package/docs/directives/EuimAlignCenterDirective.html +92 -23
  62. package/docs/directives/EuimAlignTopDirective.html +92 -23
  63. package/docs/directives/EuimAvatarMainIconDirective.html +73 -23
  64. package/docs/directives/EuimAvatarSubIconDirective.html +73 -23
  65. package/docs/directives/EuimCardImageDirective.html +86 -118
  66. package/docs/directives/EuimChipSelectorItemDirective.html +104 -108
  67. package/docs/directives/EuimDataSummaryColLabelDirective.html +121 -41
  68. package/docs/directives/EuimDataSummaryColValueDirective.html +117 -41
  69. package/docs/directives/EuimDividerDirective.html +118 -42
  70. package/docs/directives/EuimEmptyListPlaceholderIconDirective.html +92 -23
  71. package/docs/directives/EuimEmptyListPlaceholderSubtitleDirective.html +92 -23
  72. package/docs/directives/EuimEmptyListPlaceholderTitleDirective.html +92 -23
  73. package/docs/directives/EuimFooterTransparentDirective.html +92 -23
  74. package/docs/directives/EuimHeaderDetailsIconDirective.html +66 -126
  75. package/docs/directives/EuimHeaderDetailsMetaDirective.html +66 -126
  76. package/docs/directives/EuimHeaderDetailsTitleDirective.html +66 -126
  77. package/docs/directives/EuimListHeaderDirective.html +118 -42
  78. package/docs/directives/EuimListItemNoPaddingsDirective.html +92 -23
  79. package/docs/directives/EuimMediaHeaderCustomContentDirective.html +95 -23
  80. package/docs/directives/EuimMediaHeaderImageDirective.html +92 -23
  81. package/docs/directives/EuimMediaHeaderSubTitleDirective.html +92 -23
  82. package/docs/directives/EuimMediaHeaderTitleDirective.html +66 -126
  83. package/docs/directives/EuimMinWidthDirective.html +105 -29
  84. package/docs/directives/EuimMultiselectAllDirective.html +138 -101
  85. package/docs/directives/EuimMultiselectSelectFieldDirective.html +102 -127
  86. package/docs/directives/EuimReadOnlyFormDirective.html +66 -126
  87. package/docs/directives/EuimReadOnlyFormLabelDirective.html +92 -23
  88. package/docs/directives/EuimReadOnlyFormValueDirective.html +66 -126
  89. package/docs/directives/EuimSidebarFooterNoBordersDirective.html +92 -23
  90. package/docs/directives/EuimSkeletonTextAvatarDirective.html +92 -23
  91. package/docs/directives/EuimSliderInfoScreenContentDirective.html +112 -114
  92. package/docs/directives/EuimSliderInfoScreenSubTitleDirective.html +66 -126
  93. package/docs/directives/EuimSliderInfoScreenTitleDirective.html +66 -126
  94. package/docs/directives/EuimToolbarDatepickerDatetimeDirective.html +122 -43
  95. package/docs/directives/EuimToolbarTransparentDirective.html +140 -54
  96. package/docs/index.html +54 -2
  97. package/docs/injectables/EuimAppService.html +102 -38
  98. package/docs/interfaces/ActionBtnsIconsNames.html +169 -123
  99. package/docs/interfaces/ActionBtnsNames.html +169 -123
  100. package/docs/interfaces/FilteredData.html +138 -92
  101. package/docs/interfaces/HelpAndSupportItem.html +145 -99
  102. package/docs/interfaces/Item.html +504 -458
  103. package/docs/interfaces/MenuItem.html +408 -362
  104. package/docs/interfaces/UIState.html +109 -63
  105. package/docs/js/architecture-graph.js +288 -0
  106. package/docs/js/libs/bootstrap-native.js +4 -2
  107. package/docs/js/libs/jszip.min.js +13 -0
  108. package/docs/js/libs/svg-pan-zoom.min.js +3 -3
  109. package/docs/js/libs/tablesort.min.js +3 -3
  110. package/docs/js/libs/tablesort.number.min.js +3 -3
  111. package/docs/js/libs/vis-network.min.js +78 -0
  112. package/docs/js/menu-wc.js +25 -13
  113. package/docs/js/routes/routes_index.js +1 -0
  114. package/docs/js/routes.js +142 -34
  115. package/docs/js/search/search.js +62 -0
  116. package/docs/js/search/search_index.js +2 -2
  117. package/docs/js/tabs.js +98 -15
  118. package/docs/js/tree.js +44 -7
  119. package/docs/json/EuimAlertMessageComponent.md +1 -1
  120. package/docs/json/EuimAvatarImageComponent.md +1 -1
  121. package/docs/json/EuimCardListComponent.md +1 -1
  122. package/docs/json/EuimChangelogComponent.md +1 -1
  123. package/docs/json/EuimChipSelectorComponent.md +4 -4
  124. package/docs/json/EuimHeaderDetailsComponent.md +1 -1
  125. package/docs/json/EuimHelperTextComponent.md +1 -0
  126. package/docs/json/EuimMultiselectComponent.md +1 -1
  127. package/docs/json/EuimMultiselectToolbarComponent.md +2 -2
  128. package/docs/json/EuimOpenSourceLicencesComponent.md +2 -2
  129. package/docs/json/EuimPdfViewerComponent.md +0 -1
  130. package/docs/json/EuimSidebarContentComponent.md +3 -4
  131. package/docs/json/EuimSliderInfoScreenComponent.md +3 -3
  132. package/docs/json/EuimToolbarComponent.md +1 -1
  133. package/docs/json/EuimToolbarDatepickerComponent.md +5 -4
  134. package/docs/json/EuimToolbarQrcodeComponent.md +1 -1
  135. package/docs/json/HbsRenderService.md +6 -0
  136. package/docs/json/TemplateEditorService.md +6 -0
  137. package/docs/json/TemplatePlaygroundComponent.md +8 -0
  138. package/docs/json/ZipExportService.md +6 -0
  139. package/docs/json/documentation.json +6868 -3891
  140. package/docs/license.html +46 -4
  141. package/docs/llms.txt +1527 -0
  142. package/docs/miscellaneous/typealiases.html +53 -8
  143. package/docs/miscellaneous/variables.html +320 -36
  144. package/docs/modules/EuimAboutModule.html +87 -10
  145. package/docs/modules/EuimAlertMessageModule.html +75 -10
  146. package/docs/modules/EuimAllModule.html +190 -9
  147. package/docs/modules/EuimAppModule.html +75 -10
  148. package/docs/modules/EuimAvatarModule.html +99 -10
  149. package/docs/modules/EuimBadgeModule.html +75 -10
  150. package/docs/modules/EuimCardListModule.html +75 -10
  151. package/docs/modules/EuimCardModule.html +78 -10
  152. package/docs/modules/EuimChipSelectorComponentModule.html +74 -10
  153. package/docs/modules/EuimDataSummaryModule.html +84 -10
  154. package/docs/modules/EuimDividerModule.html +75 -10
  155. package/docs/modules/EuimEmptyListPlaceholderModule.html +90 -10
  156. package/docs/modules/EuimHeaderDetailsModule.html +84 -10
  157. package/docs/modules/EuimLabelModule.html +87 -10
  158. package/docs/modules/EuimLanguageSelectorModule.html +81 -10
  159. package/docs/modules/EuimListHeaderModule.html +75 -10
  160. package/docs/modules/EuimMediaHeaderModule.html +87 -10
  161. package/docs/modules/EuimMessageModule.html +78 -10
  162. package/docs/modules/EuimMultiselectModule.html +93 -10
  163. package/docs/modules/EuimNotificationItemModule.html +75 -10
  164. package/docs/modules/EuimPdfViewerModule.html +75 -10
  165. package/docs/modules/EuimScrollerXComponentModule.html +75 -10
  166. package/docs/modules/EuimSidebarModule.html +78 -10
  167. package/docs/modules/EuimSkeletonListItemModule.html +75 -10
  168. package/docs/modules/EuimSkeletonListModule.html +75 -10
  169. package/docs/modules/EuimSkeletonTextAvatarModule.html +75 -10
  170. package/docs/modules/EuimSliderInfoScreenModule.html +87 -10
  171. package/docs/modules/EuimSpinnerComponentModule.html +81 -10
  172. package/docs/modules/EuimToolbarComponentModule.html +81 -10
  173. package/docs/modules/EuimToolbarDatepickerModule.html +75 -10
  174. package/docs/modules/EuimToolbarQrcodeModule.html +75 -10
  175. package/docs/modules/EuimUserProfileModule.html +87 -10
  176. package/docs/modules.html +44 -2
  177. package/docs/properties.html +45 -3
  178. package/docs/routes.html +228 -0
  179. package/docs/styles/compodoc.css +365 -44
  180. package/docs/styles/dark.css +16 -0
  181. package/docs/template-playground/default-templates.json +192 -0
  182. package/docs/template-playground/hbs-render.service.ts +217 -0
  183. package/docs/template-playground/main.ts +9 -0
  184. package/docs/template-playground/template-editor.service.ts +173 -0
  185. package/docs/template-playground/template-playground.component.ts +614 -0
  186. package/docs/template-playground/template-playground.module.ts +29 -0
  187. package/docs/template-playground/zip-export.service.ts +86 -0
  188. package/docs/template-playground-app/app.js +1389 -0
  189. package/docs/template-playground-app/index.html +462 -0
  190. package/fesm2022/eui-mobile-core.mjs +870 -1214
  191. package/fesm2022/eui-mobile-core.mjs.map +1 -1
  192. package/package.json +12 -11
  193. package/{index.d.ts → types/eui-mobile-core.d.ts} +143 -215
  194. package/types/eui-mobile-core.d.ts.map +1 -0
  195. package/docs/js/libs/vis.min.js +0 -47
  196. package/docs/js/menu-wc_es5.js +0 -40
@@ -0,0 +1,462 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Compodoc Template Playground</title>
7
+ <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
8
+
9
+ <!-- Compodoc CSS files -->
10
+ <link rel="stylesheet" href="../styles/bootstrap.min.css">
11
+ <link rel="stylesheet" href="../styles/compodoc.css">
12
+ <link rel="stylesheet" href="../styles/prism.css">
13
+ <link rel="stylesheet" href="../styles/dark.css">
14
+ <link rel="stylesheet" href="../styles/style.css">
15
+
16
+ <!-- Monaco Editor -->
17
+ <script src="https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min/vs/loader.js"></script>
18
+
19
+ <!-- JSZip for creating ZIP files -->
20
+ <script src="https://unpkg.com/jszip@3.10.1/dist/jszip.min.js"
21
+ onerror="console.error('Failed to load JSZip from unpkg, trying cdnjs fallback'); this.remove(); var script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js'; script.onerror = function() { console.error('Failed to load JSZip from all CDNs'); window.JSZipLoadError = true; }; document.head.appendChild(script);"></script>
22
+
23
+ <!-- Font Awesome for icons -->
24
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
25
+
26
+ <!-- Custom CSS -->
27
+ <style>
28
+ body {
29
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
30
+ background-color: #f8f9fa;
31
+ margin: 0;
32
+ padding: 0;
33
+ height: 100vh;
34
+ overflow: hidden;
35
+ }
36
+
37
+ .playground-container {
38
+ display: flex;
39
+ height: 100vh;
40
+ flex-direction: column;
41
+ }
42
+
43
+ .playground-header {
44
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
45
+ color: white;
46
+ padding: 1rem 1.5rem;
47
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
48
+ z-index: 1000;
49
+ }
50
+
51
+ .playground-title {
52
+ margin: 0;
53
+ font-size: 1.5rem;
54
+ font-weight: 600;
55
+ display: flex;
56
+ align-items: center;
57
+ gap: 0.5rem;
58
+ }
59
+
60
+ .playground-subtitle {
61
+ margin: 0.25rem 0 0 0;
62
+ font-size: 0.9rem;
63
+ opacity: 0.9;
64
+ }
65
+
66
+ .playground-content {
67
+ display: flex;
68
+ flex: 1;
69
+ overflow: hidden;
70
+ }
71
+
72
+ .variables-panel {
73
+ width: 350px;
74
+ background: white;
75
+ border-right: 1px solid #e9ecef;
76
+ display: flex;
77
+ flex-direction: column;
78
+ height: 100%;
79
+ }
80
+
81
+ .template-panel {
82
+ flex: 1;
83
+ background: white;
84
+ display: flex;
85
+ flex-direction: column;
86
+ height: 100%;
87
+ }
88
+
89
+ .panel-header {
90
+ background: #f8f9fa;
91
+ border-bottom: 1px solid #e9ecef;
92
+ padding: 1rem 1.5rem;
93
+ font-weight: 600;
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: space-between;
97
+ min-height: 60px;
98
+ }
99
+
100
+ .panel-content {
101
+ flex: 1;
102
+ overflow: auto;
103
+ padding: 1rem;
104
+ }
105
+
106
+ .template-selection {
107
+ margin-bottom: 1rem;
108
+ }
109
+
110
+ .template-select {
111
+ width: 100%;
112
+ padding: 0.5rem;
113
+ border: 1px solid #ddd;
114
+ border-radius: 0.375rem;
115
+ font-size: 0.9rem;
116
+ }
117
+
118
+ .variable-item {
119
+ background: #f8f9fa;
120
+ border: 1px solid #e9ecef;
121
+ border-radius: 0.375rem;
122
+ padding: 0.75rem;
123
+ margin-bottom: 0.5rem;
124
+ position: relative;
125
+ }
126
+
127
+ .variable-name {
128
+ font-weight: 600;
129
+ font-size: 0.9rem;
130
+ color: #495057;
131
+ margin-bottom: 0.25rem;
132
+ }
133
+
134
+ .variable-type {
135
+ font-size: 0.8rem;
136
+ color: #6c757d;
137
+ margin-bottom: 0.5rem;
138
+ }
139
+
140
+ .variable-value {
141
+ width: 100%;
142
+ padding: 0.375rem;
143
+ border: 1px solid #ddd;
144
+ border-radius: 0.25rem;
145
+ font-size: 0.85rem;
146
+ font-family: 'Courier New', monospace;
147
+ background: white;
148
+ }
149
+
150
+ .variable-actions {
151
+ position: absolute;
152
+ top: 0.5rem;
153
+ right: 0.5rem;
154
+ display: flex;
155
+ gap: 0.25rem;
156
+ }
157
+
158
+ .btn-icon {
159
+ padding: 0.25rem;
160
+ width: 24px;
161
+ height: 24px;
162
+ border: none;
163
+ border-radius: 0.25rem;
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: center;
167
+ font-size: 0.7rem;
168
+ cursor: pointer;
169
+ }
170
+
171
+ .btn-icon:hover {
172
+ transform: scale(1.1);
173
+ }
174
+
175
+ .add-variable-section {
176
+ border-top: 1px solid #e9ecef;
177
+ padding-top: 1rem;
178
+ margin-top: 1rem;
179
+ }
180
+
181
+ .add-variable-form {
182
+ display: flex;
183
+ flex-direction: column;
184
+ gap: 0.5rem;
185
+ }
186
+
187
+ .add-variable-input {
188
+ padding: 0.375rem;
189
+ border: 1px solid #ddd;
190
+ border-radius: 0.25rem;
191
+ font-size: 0.85rem;
192
+ }
193
+
194
+ .template-preview-container {
195
+ flex: 1;
196
+ display: flex;
197
+ flex-direction: column;
198
+ overflow: hidden;
199
+ }
200
+
201
+ .template-editor-container {
202
+ height: 40%;
203
+ border-bottom: 1px solid #e9ecef;
204
+ }
205
+
206
+ .template-preview {
207
+ flex: 1;
208
+ background: white;
209
+ overflow: auto;
210
+ padding: 1rem;
211
+ border: 1px solid #e9ecef;
212
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
213
+ }
214
+
215
+ .toolbar {
216
+ display: flex;
217
+ gap: 0.5rem;
218
+ align-items: center;
219
+ }
220
+
221
+ .btn-toolbar {
222
+ padding: 0.5rem 1rem;
223
+ border: 1px solid #ddd;
224
+ border-radius: 0.375rem;
225
+ background: white;
226
+ color: #495057;
227
+ font-size: 0.85rem;
228
+ cursor: pointer;
229
+ display: flex;
230
+ align-items: center;
231
+ gap: 0.5rem;
232
+ transition: all 0.2s;
233
+ }
234
+
235
+ .btn-toolbar:hover {
236
+ background: #f8f9fa;
237
+ border-color: #007bff;
238
+ color: #007bff;
239
+ }
240
+
241
+ .btn-primary {
242
+ background: #007bff;
243
+ color: white;
244
+ border-color: #007bff;
245
+ }
246
+
247
+ .btn-primary:hover {
248
+ background: #0056b3;
249
+ border-color: #0056b3;
250
+ color: white;
251
+ }
252
+
253
+ .error-message {
254
+ background: #f8d7da;
255
+ color: #721c24;
256
+ padding: 0.75rem;
257
+ border-radius: 0.375rem;
258
+ margin-bottom: 1rem;
259
+ border: 1px solid #f5c6cb;
260
+ }
261
+
262
+ .success-message {
263
+ background: #d4edda;
264
+ color: #155724;
265
+ padding: 0.75rem;
266
+ border-radius: 0.375rem;
267
+ margin-bottom: 1rem;
268
+ border: 1px solid #c3e6cb;
269
+ }
270
+
271
+ .resizer {
272
+ width: 4px;
273
+ background: #e9ecef;
274
+ cursor: col-resize;
275
+ transition: background-color 0.2s;
276
+ }
277
+
278
+ .resizer:hover {
279
+ background: #007bff;
280
+ }
281
+
282
+ .template-metadata {
283
+ font-size: 0.8rem;
284
+ color: #6c757d;
285
+ margin-bottom: 1rem;
286
+ padding: 0.5rem;
287
+ background: #f8f9fa;
288
+ border-radius: 0.375rem;
289
+ }
290
+
291
+ .loading {
292
+ display: flex;
293
+ align-items: center;
294
+ justify-content: center;
295
+ flex: 1;
296
+ color: #6c757d;
297
+ }
298
+
299
+ .spinner {
300
+ width: 20px;
301
+ height: 20px;
302
+ border: 2px solid #f3f3f3;
303
+ border-top: 2px solid #007bff;
304
+ border-radius: 50%;
305
+ animation: spin 1s linear infinite;
306
+ margin-right: 0.5rem;
307
+ }
308
+
309
+ @keyframes spin {
310
+ 0% { transform: rotate(0deg); }
311
+ 100% { transform: rotate(360deg); }
312
+ }
313
+
314
+ /* Responsive design */
315
+ @media (max-width: 768px) {
316
+ .playground-content {
317
+ flex-direction: column;
318
+ }
319
+
320
+ .variables-panel {
321
+ width: 100%;
322
+ height: 40%;
323
+ }
324
+
325
+ .template-panel {
326
+ height: 60%;
327
+ }
328
+ }
329
+ </style>
330
+ </head>
331
+ <body>
332
+ <div class="playground-container">
333
+ <!-- Header -->
334
+ <div class="playground-header">
335
+ <h1 class="playground-title">
336
+ <i class="fas fa-code"></i>
337
+ Compodoc Template Playground
338
+ </h1>
339
+ <p class="playground-subtitle">
340
+ Customize and preview Handlebars templates with live data
341
+ </p>
342
+ </div>
343
+
344
+ <!-- Main Content -->
345
+ <div class="playground-content">
346
+ <!-- Variables/Properties Panel -->
347
+ <div class="variables-panel">
348
+ <div class="panel-header">
349
+ <span><i class="fas fa-sliders-h"></i> Configuration options</span>
350
+ <div class="toolbar">
351
+ <button class="btn-toolbar" id="resetVariables" title="Reset to default values">
352
+ <i class="fas fa-undo"></i>
353
+ </button>
354
+ <button class="btn-toolbar" id="exportData" title="Export current data">
355
+ <i class="fas fa-download"></i>
356
+ </button>
357
+ </div>
358
+ </div>
359
+ <div class="panel-content">
360
+ <!-- Template Selection -->
361
+ <div class="template-selection">
362
+ <label for="templateSelect" class="form-label">Template Type:</label>
363
+ <select class="template-select" id="templateSelect">
364
+ <option value="">Select a template...</option>
365
+ <option value="component">Component</option>
366
+ <option value="module">Module</option>
367
+ <option value="interface">Interface</option>
368
+ <option value="class">Class</option>
369
+ <option value="injectable">Injectable/Service</option>
370
+ <option value="directive">Directive</option>
371
+ <option value="pipe">Pipe</option>
372
+ <option value="guard">Guard</option>
373
+ <option value="interceptor">Interceptor</option>
374
+ <option value="entity">Entity</option>
375
+ <option value="controller">Controller</option>
376
+ <option value="overview">Overview</option>
377
+ <option value="miscellaneous">Miscellaneous</option>
378
+ </select>
379
+ </div>
380
+
381
+ <!-- Template Metadata -->
382
+ <div class="template-metadata" id="templateMetadata" style="display: none;">
383
+ <strong>Template:</strong> <span id="templateName">-</span><br>
384
+ <strong>File:</strong> <span id="templateFile">-</span><br>
385
+ <strong>Description:</strong> <span id="templateDescription">-</span>
386
+ </div>
387
+
388
+ <!-- Variables List -->
389
+ <div id="variablesList">
390
+ <div class="loading">
391
+ <div class="spinner"></div>
392
+ Select a template to see variables
393
+ </div>
394
+ </div>
395
+
396
+ <!-- Add Variable Section -->
397
+
398
+ </div>
399
+ </div>
400
+
401
+ <!-- Resizer -->
402
+ <div class="resizer" id="resizer"></div>
403
+
404
+ <!-- Template Panel -->
405
+ <div class="template-panel">
406
+ <div class="panel-header">
407
+ <span><i class="fas fa-eye"></i> Template Editor</span>
408
+ <div class="toolbar">
409
+ <button class="btn-toolbar" id="copyTemplate" title="Copy template content">
410
+ <i class="fas fa-copy"></i>
411
+ </button>
412
+ <button class="btn-toolbar" id="downloadTemplate" title="Download as ZIP">
413
+ <i class="fas fa-download"></i> Export
414
+ </button>
415
+ <button class="btn-toolbar btn-primary" id="refreshPreview" title="Refresh preview">
416
+ <i class="fas fa-sync"></i>
417
+ </button>
418
+ </div>
419
+ </div>
420
+
421
+ <div class="template-preview-container">
422
+ <!-- Template Editor -->
423
+ <div class="template-editor-container">
424
+ <div id="templateEditor" style="height: 100%;"></div>
425
+ </div>
426
+
427
+ <!-- Template Preview -->
428
+ <div class="panel-header" style="border-top: 1px solid #e9ecef;">
429
+ <span><i class="fas fa-browser"></i> Live Preview</span>
430
+ <div class="toolbar">
431
+ <span class="btn-toolbar" id="previewStatus">Ready</span>
432
+ </div>
433
+ </div>
434
+ <div class="template-preview-iframe-container" style="flex: 1; overflow: hidden;">
435
+ <iframe id="templatePreviewFrame"
436
+ name="templatePreviewFrame"
437
+ style="width: 100%; height: 100%; border: none; background: white;"
438
+ src="about:blank">
439
+ </iframe>
440
+ <div class="template-preview-loading" id="templatePreviewLoading" style="display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
441
+ <div class="loading">
442
+ <div class="spinner"></div>
443
+ Rendering template...
444
+ </div>
445
+ </div>
446
+ </div>
447
+ </div>
448
+ </div>
449
+ </div>
450
+ </div>
451
+
452
+ <!-- Compodoc JavaScript files -->
453
+ <script src="../js/libs/bootstrap-native.js"></script>
454
+ <script src="../js/libs/prism.js"></script>
455
+ <script src="../js/compodoc.js"></script>
456
+ <script src="../js/tabs.js"></script>
457
+ <script src="../js/sourceCode.js"></script>
458
+
459
+ <!-- Template Playground App -->
460
+ <script src="app.js"></script>
461
+ </body>
462
+ </html>