@echelon-foundry/design-system 0.4.1 → 0.5.0-main.230.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 (97) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/all.css +27 -0
  3. package/dist/build-metrics.json +166 -2
  4. package/dist/components.css +27 -0
  5. package/dist/icons/add.svg +1 -0
  6. package/dist/icons/agent.svg +1 -0
  7. package/dist/icons/arrow-left.svg +1 -0
  8. package/dist/icons/arrow-right.svg +1 -0
  9. package/dist/icons/bell.svg +1 -0
  10. package/dist/icons/bug.svg +1 -0
  11. package/dist/icons/calendar.svg +1 -0
  12. package/dist/icons/chart.svg +1 -0
  13. package/dist/icons/chevron-down.svg +1 -0
  14. package/dist/icons/chevron-up.svg +1 -0
  15. package/dist/icons/clock.svg +1 -0
  16. package/dist/icons/close.svg +1 -0
  17. package/dist/icons/code.svg +1 -0
  18. package/dist/icons/copy.svg +1 -0
  19. package/dist/icons/database.svg +1 -0
  20. package/dist/icons/download.svg +1 -0
  21. package/dist/icons/edit.svg +1 -0
  22. package/dist/icons/external-link.svg +1 -0
  23. package/dist/icons/file.svg +1 -0
  24. package/dist/icons/filter.svg +1 -0
  25. package/dist/icons/folder.svg +1 -0
  26. package/dist/icons/home.svg +1 -0
  27. package/dist/icons/html/add.html +1 -0
  28. package/dist/icons/html/agent.html +1 -0
  29. package/dist/icons/html/arrow-left.html +1 -0
  30. package/dist/icons/html/arrow-right.html +1 -0
  31. package/dist/icons/html/bell.html +1 -0
  32. package/dist/icons/html/bug.html +1 -0
  33. package/dist/icons/html/calendar.html +1 -0
  34. package/dist/icons/html/chart.html +1 -0
  35. package/dist/icons/html/chevron-down.html +1 -0
  36. package/dist/icons/html/chevron-up.html +1 -0
  37. package/dist/icons/html/clock.html +1 -0
  38. package/dist/icons/html/close.html +1 -0
  39. package/dist/icons/html/code.html +1 -0
  40. package/dist/icons/html/copy.html +1 -0
  41. package/dist/icons/html/database.html +1 -0
  42. package/dist/icons/html/download.html +1 -0
  43. package/dist/icons/html/edit.html +1 -0
  44. package/dist/icons/html/external-link.html +1 -0
  45. package/dist/icons/html/file.html +1 -0
  46. package/dist/icons/html/filter.html +1 -0
  47. package/dist/icons/html/folder.html +1 -0
  48. package/dist/icons/html/home.html +1 -0
  49. package/dist/icons/html/lock.html +1 -0
  50. package/dist/icons/html/menu.html +1 -0
  51. package/dist/icons/html/more-horizontal.html +1 -0
  52. package/dist/icons/html/print.html +1 -0
  53. package/dist/icons/html/refresh.html +1 -0
  54. package/dist/icons/html/save.html +1 -0
  55. package/dist/icons/html/search.html +1 -0
  56. package/dist/icons/html/server.html +1 -0
  57. package/dist/icons/html/settings.html +1 -0
  58. package/dist/icons/html/shield.html +1 -0
  59. package/dist/icons/html/sort.html +1 -0
  60. package/dist/icons/html/success.html +1 -0
  61. package/dist/icons/html/trash.html +1 -0
  62. package/dist/icons/html/upload.html +1 -0
  63. package/dist/icons/html/user.html +1 -0
  64. package/dist/icons/html/users.html +1 -0
  65. package/dist/icons/html/warning.html +1 -0
  66. package/dist/icons/html/workflow.html +1 -0
  67. package/dist/icons/lock.svg +1 -0
  68. package/dist/icons/menu.svg +1 -0
  69. package/dist/icons/more-horizontal.svg +1 -0
  70. package/dist/icons/print.svg +1 -0
  71. package/dist/icons/refresh.svg +1 -0
  72. package/dist/icons/registry.json +527 -0
  73. package/dist/icons/save.svg +1 -0
  74. package/dist/icons/search.svg +1 -0
  75. package/dist/icons/server.svg +1 -0
  76. package/dist/icons/settings.svg +1 -0
  77. package/dist/icons/shield.svg +1 -0
  78. package/dist/icons/sort.svg +1 -0
  79. package/dist/icons/success.svg +1 -0
  80. package/dist/icons/trash.svg +1 -0
  81. package/dist/icons/upload.svg +1 -0
  82. package/dist/icons/user.svg +1 -0
  83. package/dist/icons/users.svg +1 -0
  84. package/dist/icons/warning.svg +1 -0
  85. package/dist/icons/workflow.svg +1 -0
  86. package/dist/marketing/forma-all.css +28 -1
  87. package/dist/marketing/forma-echelon-marketing.css +1 -1
  88. package/dist/marketing/forma-marketing-theme-echelon.css +1 -1
  89. package/dist/marketing/forma-marketing.css +1 -1
  90. package/dist/marketing/forma-marketing.manifest.json +7 -7
  91. package/dist/marketing/forma-marketing.sha256 +4 -4
  92. package/dist/patterns/icon.html +1 -0
  93. package/docs/ICONS.md +50 -0
  94. package/figma/component-contracts.json +10 -0
  95. package/package.json +11 -6
  96. package/patterns/icon.html +1 -0
  97. package/schemas/icon-registry.schema.json +173 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,34 @@ published as GitHub release tarballs
7
7
  and to npm. Earlier releases are described in `docs/CONSUMING-FORMA.md` and
8
8
  `HANDOFF.md`.
9
9
 
10
+ ## 0.5.0
11
+
12
+ Additive minor release: Forma's static icon system. Forma core remains
13
+ zero-runtime; no existing HTML class or token contract was renamed, so no
14
+ consumer migration is required.
15
+
16
+ ### Added
17
+
18
+ - **`ef-icon` catalog pattern** (`patterns/icon.html`): decorative inline SVG
19
+ inside a natively named control. The SVG is `aria-hidden` and never names,
20
+ operates or signals state on its own.
21
+ - **40 original, brand-neutral outline icons** in `icons/registry.json`
22
+ (24-unit grid, 1.8 stroke, round caps and joins), validated by
23
+ `schemas/icon-registry.schema.json` and compiled at build time by
24
+ `tools/icons/build.mjs`. Third-party geometry, scripts, external `href`s and
25
+ embedded media are rejected.
26
+ - **Package assets** under `@echelon-foundry/design-system/icons/*`:
27
+ `icons/<name>.svg`, decorative `icons/html/<name>.html` snippets, and
28
+ `icons/registry.json`. The compiled registry records `formaVersion` (the
29
+ producing release) and each icon's `svgSha256`, so consumers can pin and
30
+ verify bundled release geometry offline.
31
+ - **Generated icon gallery** at `/icons/` on the documentation site.
32
+ - Tests for deterministic compilation, offline/static output, SVG security,
33
+ accessibility, forced colors, and 320px layout.
34
+
35
+ Studio and Folio pin 0.5.0 only after this version is published and their own
36
+ end-to-end verification passes.
37
+
10
38
  ## 0.4.1
11
39
 
12
40
  Patch release. There are no markup, class, or token-name changes, so no
package/dist/all.css CHANGED
@@ -6033,6 +6033,33 @@
6033
6033
  /* END generated: character-grid coordinates */
6034
6034
  }
6035
6035
 
6036
+ /* Forma static icon presentation. SVG supplies geometry, CSS supplies sizing and color. */
6037
+ @layer echelon.components {
6038
+ .ef-icon {
6039
+ display: inline-flex;
6040
+ inline-size: var(--ef-icon-size, 1.25em);
6041
+ block-size: var(--ef-icon-size, 1.25em);
6042
+ flex: 0 0 auto;
6043
+ align-items: center;
6044
+ justify-content: center;
6045
+ vertical-align: -0.17em;
6046
+ color: inherit;
6047
+ }
6048
+
6049
+ .ef-icon > .ef-icon__svg {
6050
+ display: block;
6051
+ inline-size: 100%;
6052
+ block-size: 100%;
6053
+ flex: none;
6054
+ }
6055
+
6056
+ /* Icon geometry inherits currentColor, including forced-colors and print. */
6057
+ @media (forced-colors: active) {
6058
+ .ef-icon { color: CanvasText; }
6059
+ }
6060
+ }
6061
+
6062
+
6036
6063
  @layer echelon.assessment {
6037
6064
  /* Question shell ------------------------------------------------------ */
6038
6065
  .ef-question {
@@ -7,6 +7,87 @@
7
7
  "brands/index.json",
8
8
  "components.css",
9
9
  "foundations.css",
10
+ "icons/add.svg",
11
+ "icons/agent.svg",
12
+ "icons/arrow-left.svg",
13
+ "icons/arrow-right.svg",
14
+ "icons/bell.svg",
15
+ "icons/bug.svg",
16
+ "icons/calendar.svg",
17
+ "icons/chart.svg",
18
+ "icons/chevron-down.svg",
19
+ "icons/chevron-up.svg",
20
+ "icons/clock.svg",
21
+ "icons/close.svg",
22
+ "icons/code.svg",
23
+ "icons/copy.svg",
24
+ "icons/database.svg",
25
+ "icons/download.svg",
26
+ "icons/edit.svg",
27
+ "icons/external-link.svg",
28
+ "icons/file.svg",
29
+ "icons/filter.svg",
30
+ "icons/folder.svg",
31
+ "icons/home.svg",
32
+ "icons/html/add.html",
33
+ "icons/html/agent.html",
34
+ "icons/html/arrow-left.html",
35
+ "icons/html/arrow-right.html",
36
+ "icons/html/bell.html",
37
+ "icons/html/bug.html",
38
+ "icons/html/calendar.html",
39
+ "icons/html/chart.html",
40
+ "icons/html/chevron-down.html",
41
+ "icons/html/chevron-up.html",
42
+ "icons/html/clock.html",
43
+ "icons/html/close.html",
44
+ "icons/html/code.html",
45
+ "icons/html/copy.html",
46
+ "icons/html/database.html",
47
+ "icons/html/download.html",
48
+ "icons/html/edit.html",
49
+ "icons/html/external-link.html",
50
+ "icons/html/file.html",
51
+ "icons/html/filter.html",
52
+ "icons/html/folder.html",
53
+ "icons/html/home.html",
54
+ "icons/html/lock.html",
55
+ "icons/html/menu.html",
56
+ "icons/html/more-horizontal.html",
57
+ "icons/html/print.html",
58
+ "icons/html/refresh.html",
59
+ "icons/html/save.html",
60
+ "icons/html/search.html",
61
+ "icons/html/server.html",
62
+ "icons/html/settings.html",
63
+ "icons/html/shield.html",
64
+ "icons/html/sort.html",
65
+ "icons/html/success.html",
66
+ "icons/html/trash.html",
67
+ "icons/html/upload.html",
68
+ "icons/html/user.html",
69
+ "icons/html/users.html",
70
+ "icons/html/warning.html",
71
+ "icons/html/workflow.html",
72
+ "icons/lock.svg",
73
+ "icons/menu.svg",
74
+ "icons/more-horizontal.svg",
75
+ "icons/print.svg",
76
+ "icons/refresh.svg",
77
+ "icons/registry.json",
78
+ "icons/save.svg",
79
+ "icons/search.svg",
80
+ "icons/server.svg",
81
+ "icons/settings.svg",
82
+ "icons/shield.svg",
83
+ "icons/sort.svg",
84
+ "icons/success.svg",
85
+ "icons/trash.svg",
86
+ "icons/upload.svg",
87
+ "icons/user.svg",
88
+ "icons/users.svg",
89
+ "icons/warning.svg",
90
+ "icons/workflow.svg",
10
91
  "marketing.css",
11
92
  "patterns/active-filter-summary.html",
12
93
  "patterns/alert.html",
@@ -78,6 +159,7 @@
78
159
  "patterns/hierarchical-choice.html",
79
160
  "patterns/hierarchical-multi-choice.html",
80
161
  "patterns/hierarchy-tree.html",
162
+ "patterns/icon.html",
81
163
  "patterns/identifier.html",
82
164
  "patterns/image-choice.html",
83
165
  "patterns/key-value-list.html",
@@ -177,13 +259,94 @@
177
259
  "tokens.css"
178
260
  ],
179
261
  "bytes": {
180
- "all.css": 316368,
262
+ "all.css": 317020,
181
263
  "assessment.css": 35692,
182
264
  "brands/echelon.css": 3621,
183
265
  "brands/example-harbor.css": 3637,
184
266
  "brands/index.json": 335,
185
- "components.css": 203118,
267
+ "components.css": 203770,
186
268
  "foundations.css": 11558,
269
+ "icons/add.svg": 216,
270
+ "icons/agent.svg": 354,
271
+ "icons/arrow-left.svg": 224,
272
+ "icons/arrow-right.svg": 225,
273
+ "icons/bell.svg": 262,
274
+ "icons/bug.svg": 304,
275
+ "icons/calendar.svg": 287,
276
+ "icons/chart.svg": 232,
277
+ "icons/chevron-down.svg": 215,
278
+ "icons/chevron-up.svg": 216,
279
+ "icons/clock.svg": 245,
280
+ "icons/close.svg": 236,
281
+ "icons/code.svg": 250,
282
+ "icons/copy.svg": 291,
283
+ "icons/database.svg": 300,
284
+ "icons/download.svg": 247,
285
+ "icons/edit.svg": 282,
286
+ "icons/external-link.svg": 268,
287
+ "icons/file.svg": 245,
288
+ "icons/filter.svg": 226,
289
+ "icons/folder.svg": 240,
290
+ "icons/home.svg": 245,
291
+ "icons/html/add.html": 345,
292
+ "icons/html/agent.html": 485,
293
+ "icons/html/arrow-left.html": 360,
294
+ "icons/html/arrow-right.html": 362,
295
+ "icons/html/bell.html": 392,
296
+ "icons/html/bug.html": 433,
297
+ "icons/html/calendar.html": 421,
298
+ "icons/html/chart.html": 363,
299
+ "icons/html/chevron-down.html": 353,
300
+ "icons/html/chevron-up.html": 352,
301
+ "icons/html/clock.html": 376,
302
+ "icons/html/close.html": 367,
303
+ "icons/html/code.html": 380,
304
+ "icons/html/copy.html": 421,
305
+ "icons/html/database.html": 434,
306
+ "icons/html/download.html": 381,
307
+ "icons/html/edit.html": 412,
308
+ "icons/html/external-link.html": 407,
309
+ "icons/html/file.html": 375,
310
+ "icons/html/filter.html": 358,
311
+ "icons/html/folder.html": 372,
312
+ "icons/html/home.html": 375,
313
+ "icons/html/lock.html": 414,
314
+ "icons/html/menu.html": 353,
315
+ "icons/html/more-horizontal.html": 427,
316
+ "icons/html/print.html": 449,
317
+ "icons/html/refresh.html": 410,
318
+ "icons/html/save.html": 405,
319
+ "icons/html/search.html": 385,
320
+ "icons/html/server.html": 521,
321
+ "icons/html/settings.html": 479,
322
+ "icons/html/shield.html": 387,
323
+ "icons/html/sort.html": 392,
324
+ "icons/html/success.html": 392,
325
+ "icons/html/trash.html": 384,
326
+ "icons/html/upload.html": 376,
327
+ "icons/html/user.html": 408,
328
+ "icons/html/users.html": 453,
329
+ "icons/html/warning.html": 457,
330
+ "icons/html/workflow.html": 479,
331
+ "icons/lock.svg": 284,
332
+ "icons/menu.svg": 223,
333
+ "icons/more-horizontal.svg": 286,
334
+ "icons/print.svg": 318,
335
+ "icons/refresh.svg": 277,
336
+ "icons/registry.json": 13904,
337
+ "icons/save.svg": 275,
338
+ "icons/search.svg": 253,
339
+ "icons/server.svg": 389,
340
+ "icons/settings.svg": 345,
341
+ "icons/shield.svg": 255,
342
+ "icons/sort.svg": 262,
343
+ "icons/success.svg": 259,
344
+ "icons/trash.svg": 253,
345
+ "icons/upload.svg": 244,
346
+ "icons/user.svg": 278,
347
+ "icons/users.svg": 322,
348
+ "icons/warning.svg": 324,
349
+ "icons/workflow.svg": 345,
187
350
  "marketing.css": 45073,
188
351
  "patterns/active-filter-summary.html": 532,
189
352
  "patterns/alert.html": 384,
@@ -255,6 +418,7 @@
255
418
  "patterns/hierarchical-choice.html": 919,
256
419
  "patterns/hierarchical-multi-choice.html": 1086,
257
420
  "patterns/hierarchy-tree.html": 480,
421
+ "patterns/icon.html": 385,
258
422
  "patterns/identifier.html": 617,
259
423
  "patterns/image-choice.html": 1813,
260
424
  "patterns/key-value-list.html": 238,
@@ -5284,3 +5284,30 @@
5284
5284
  :where(.ef-character-grid) [data-ef-gutter="4"] { --ef-gutter: 4; }
5285
5285
  /* END generated: character-grid coordinates */
5286
5286
  }
5287
+
5288
+ /* Forma static icon presentation. SVG supplies geometry, CSS supplies sizing and color. */
5289
+ @layer echelon.components {
5290
+ .ef-icon {
5291
+ display: inline-flex;
5292
+ inline-size: var(--ef-icon-size, 1.25em);
5293
+ block-size: var(--ef-icon-size, 1.25em);
5294
+ flex: 0 0 auto;
5295
+ align-items: center;
5296
+ justify-content: center;
5297
+ vertical-align: -0.17em;
5298
+ color: inherit;
5299
+ }
5300
+
5301
+ .ef-icon > .ef-icon__svg {
5302
+ display: block;
5303
+ inline-size: 100%;
5304
+ block-size: 100%;
5305
+ flex: none;
5306
+ }
5307
+
5308
+ /* Icon geometry inherits currentColor, including forced-colors and print. */
5309
+ @media (forced-colors: active) {
5310
+ .ef-icon { color: CanvasText; }
5311
+ }
5312
+ }
5313
+
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5V19M5 12H19"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="8" width="16" height="11" rx="3"/><path d="M12 8V5M9.8 5H14.2"/><circle cx="9" cy="13" r="0.8"/><circle cx="15" cy="13" r="0.8"/><path d="M9 16.3H15"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M20 12H4M11 5L4 12L11 19"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12H20M13 5L20 12L13 19"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6 17H18L16.5 14V10A4.5 4.5 0 0 0 7.5 10V14ZM10 20Q12 22 14 20"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 7Q12 5 15 7L17 11V17Q12 22 7 17V11Z M10 6L8 4M14 6L16 4M7 12H4M17 12H20M7 16L4 18M17 16L20 18M9 12H15"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M8 3V8M16 3V8M3 11H21M8 15H10M14 15H16"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4V20H21M7 16L12 11L15 13L20 7"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M5 9L12 16L19 9"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M5 15L12 8L19 15"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 6V12L16 14"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6.5 6.5L17.5 17.5M17.5 6.5L6.5 17.5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M8.5 6L3 12L8.5 18M15.5 6L21 12L15.5 18M14 4L10 20"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V5Q16 4 15 4H5Q4 4 4 5V15Q4 16 5 16H8"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6Q4 3 12 3Q20 3 20 6V18Q20 21 12 21Q4 21 4 18ZM4 6Q4 9 12 9Q20 9 20 6M4 12Q4 15 12 15Q20 15 20 12"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4V15M7.5 10.5L12 15L16.5 10.5M4 17V20H20V17"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 19.5L9.2 18.5L19 8.7L15.3 5L5.5 14.8L4.5 19.5Z"/><path d="M13.8 6.5L17.5 10.2"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 5H20V12M20 5L11 14M19 14V19Q19 20 18 20H5Q4 20 4 19V6Q4 5 5 5H10"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3H14L19 8V21H6Z M14 3V8H19M9 12H16M9 16H16"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 5H21L14 13V19L10 21V13Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7Q3 5 5 5H10L12 8H19Q21 8 21 10V19H3Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11L12 4L21 11M6 10V20H18V10M10 20V14H14V20"/></svg>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="add"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 5V19M5 12H19"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="agent"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="4" y="8" width="16" height="11" rx="3"/><path d="M12 8V5M9.8 5H14.2"/><circle cx="9" cy="13" r="0.8"/><circle cx="15" cy="13" r="0.8"/><path d="M9 16.3H15"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="arrow-left"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M20 12H4M11 5L4 12L11 19"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="arrow-right"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4 12H20M13 5L20 12L13 19"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="bell"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M6 17H18L16.5 14V10A4.5 4.5 0 0 0 7.5 10V14ZM10 20Q12 22 14 20"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="bug"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M9 7Q12 5 15 7L17 11V17Q12 22 7 17V11Z M10 6L8 4M14 6L16 4M7 12H4M17 12H20M7 16L4 18M17 16L20 18M9 12H15"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="calendar"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M8 3V8M16 3V8M3 11H21M8 15H10M14 15H16"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="chart"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4 4V20H21M7 16L12 11L15 13L20 7"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="chevron-down"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 9L12 16L19 9"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="chevron-up"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 15L12 8L19 15"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="clock"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9"/><path d="M12 6V12L16 14"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="close"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M6.5 6.5L17.5 17.5M17.5 6.5L6.5 17.5"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="code"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M8.5 6L3 12L8.5 18M15.5 6L21 12L15.5 18M14 4L10 20"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="copy"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V5Q16 4 15 4H5Q4 4 4 5V15Q4 16 5 16H8"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="database"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4 6Q4 3 12 3Q20 3 20 6V18Q20 21 12 21Q4 21 4 18ZM4 6Q4 9 12 9Q20 9 20 6M4 12Q4 15 12 15Q20 15 20 12"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="download"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 4V15M7.5 10.5L12 15L16.5 10.5M4 17V20H20V17"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="edit"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4.5 19.5L9.2 18.5L19 8.7L15.3 5L5.5 14.8L4.5 19.5Z"/><path d="M13.8 6.5L17.5 10.2"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="external-link"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M13 5H20V12M20 5L11 14M19 14V19Q19 20 18 20H5Q4 20 4 19V6Q4 5 5 5H10"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="file"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M6 3H14L19 8V21H6Z M14 3V8H19M9 12H16M9 16H16"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="filter"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 5H21L14 13V19L10 21V13Z"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="folder"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 7Q3 5 5 5H10L12 8H19Q21 8 21 10V19H3Z"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="home"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 11L12 4L21 11M6 10V20H18V10M10 20V14H14V20"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="lock"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="5" y="10" width="14" height="11" rx="2"/><path d="M8 10V7A4 4 0 0 1 16 7V10M12 14V17"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="menu"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4 6H20M4 12H20M4 18H20"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="more-horizontal"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="5" cy="12" r="1.1"/><circle cx="12" cy="12" r="1.1"/><circle cx="19" cy="12" r="1.1"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="print"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M7 8V3H17V8M6 17H4Q3 17 3 16V11Q3 9 5 9H19Q21 9 21 11V16Q21 17 20 17H18M7 14H17V21H7Z"/><circle cx="18" cy="12" r="0.7"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="refresh"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M20 7V12H15M4 17V12H9M5.7 10A7 7 0 0 1 18 7L20 12M4 12L6 17A7 7 0 0 0 18.3 14"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="save"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M7 3V10H17V3M8 21V14H16V21"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="search"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="10.3" cy="10.3" r="6.2"/><path d="M15 15L20.5 20.5"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="server"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="3" y="4" width="18" height="7" rx="1.5"/><rect x="3" y="13" width="18" height="7" rx="1.5"/><circle cx="7" cy="7.5" r="0.7"/><circle cx="7" cy="16.5" r="0.7"/><path d="M11 7.5H18M11 16.5H18"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="settings"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="3.5"/><path d="M12 3V5.5M12 18.5V21M3 12H5.5M18.5 12H21M5.7 5.7L7.5 7.5M16.5 16.5L18.3 18.3M18.3 5.7L16.5 7.5M7.5 16.5L5.7 18.3"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="shield"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 3L20 6V11Q20 17 12 21Q4 17 4 11V6Z M8 12L11 15L16 9"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="sort"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M8 20V4M4.5 7.5L8 4L11.5 7.5M16 4V20M12.5 16.5L16 20L19.5 16.5"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="success"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9"/><path d="M7.7 12.1L10.7 15.1L16.5 9.3"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="trash"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 7H19M9 7V4H15V7M7 7L8 20H16L17 7M10 10V17M14 10V17"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="upload"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 16V5M7.5 9.5L12 5L16.5 9.5M4 17V20H20V17"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="user"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="8" r="4"/><path d="M4.5 21V19Q4.5 14.5 12 14.5Q19.5 14.5 19.5 19V21"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="users"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="9" cy="8" r="3.2"/><path d="M3 20V18Q3 14 9 14Q15 14 15 18V20M15.5 5.5Q20 6 19 10.5Q18.5 12 17 12.5M17 15Q21 15.5 21 19"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="warning"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10.1 4.8Q12 1.9 13.9 4.8L21 17.6Q22.5 20 19.6 20H4.4Q1.5 20 3 17.6Z"/><path d="M12 9V13.7"/><circle cx="12" cy="17" r="0.65"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <ef-icon class="ef-component-tag"><span class="ef-icon" data-ef-icon="workflow"><svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="3" y="4" width="7" height="6" rx="1"/><rect x="14" y="14" width="7" height="6" rx="1"/><path d="M10 7H15Q17 7 17 9V14M14.6 11.8L17 14.2L19.4 11.8"/></svg></span></ef-icon>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="10" width="14" height="11" rx="2"/><path d="M8 10V7A4 4 0 0 1 16 7V10M12 14V17"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6H20M4 12H20M4 18H20"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="5" cy="12" r="1.1"/><circle cx="12" cy="12" r="1.1"/><circle cx="19" cy="12" r="1.1"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 8V3H17V8M6 17H4Q3 17 3 16V11Q3 9 5 9H19Q21 9 21 11V16Q21 17 20 17H18M7 14H17V21H7Z"/><circle cx="18" cy="12" r="0.7"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="ef-icon__svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M20 7V12H15M4 17V12H9M5.7 10A7 7 0 0 1 18 7L20 12M4 12L6 17A7 7 0 0 0 18.3 14"/></svg>