@metadev/daga-angular 2.0.2

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 (84) hide show
  1. package/Changelog.md +204 -0
  2. package/LICENSE.md +13 -0
  3. package/README.md +67 -0
  4. package/assets/fonts/DMMono-Medium.ttf +0 -0
  5. package/assets/fonts/DMMono-Medium.woff +0 -0
  6. package/assets/fonts/DMMono-Medium.woff2 +0 -0
  7. package/assets/fonts/WonderUnitSans-Medium.ttf +0 -0
  8. package/assets/fonts/WonderUnitSans-Medium.woff +0 -0
  9. package/assets/fonts/WonderUnitSans-Medium.woff2 +0 -0
  10. package/assets/icon/action/drop-down-arrow.svg +8 -0
  11. package/assets/icon/action/drop-horizontal-left.svg +14 -0
  12. package/assets/icon/action/drop-horizontal-none.svg +13 -0
  13. package/assets/icon/action/drop-horizontal-right.svg +14 -0
  14. package/assets/icon/action/drop-vertical-down.svg +14 -0
  15. package/assets/icon/action/drop-vertical-none.svg +13 -0
  16. package/assets/icon/action/drop-vertical-up.svg +14 -0
  17. package/assets/icon/action/filter-clear.png +0 -0
  18. package/assets/icon/buttons/center-hover.svg +10 -0
  19. package/assets/icon/buttons/center.svg +10 -0
  20. package/assets/icon/buttons/copy-hover.svg +6 -0
  21. package/assets/icon/buttons/copy.svg +6 -0
  22. package/assets/icon/buttons/cut-hover.svg +6 -0
  23. package/assets/icon/buttons/cut.svg +6 -0
  24. package/assets/icon/buttons/delete-hover.svg +6 -0
  25. package/assets/icon/buttons/delete.svg +6 -0
  26. package/assets/icon/buttons/ellipsis-hover.svg +7 -0
  27. package/assets/icon/buttons/ellipsis.svg +7 -0
  28. package/assets/icon/buttons/filter-off-hover.svg +5 -0
  29. package/assets/icon/buttons/filter-off.svg +5 -0
  30. package/assets/icon/buttons/filter-on-hover.svg +5 -0
  31. package/assets/icon/buttons/filter-on.svg +5 -0
  32. package/assets/icon/buttons/layout-hover.svg +8 -0
  33. package/assets/icon/buttons/layout.svg +8 -0
  34. package/assets/icon/buttons/multiple-selection-hover.svg +18 -0
  35. package/assets/icon/buttons/multiple-selection.svg +18 -0
  36. package/assets/icon/buttons/paste-hover.svg +6 -0
  37. package/assets/icon/buttons/paste.svg +6 -0
  38. package/assets/icon/buttons/redo-hover.svg +5 -0
  39. package/assets/icon/buttons/redo.svg +5 -0
  40. package/assets/icon/buttons/undo-hover.svg +5 -0
  41. package/assets/icon/buttons/undo.svg +5 -0
  42. package/assets/icon/buttons/zoom-in-hover.svg +8 -0
  43. package/assets/icon/buttons/zoom-in.svg +8 -0
  44. package/assets/icon/buttons/zoom-out-hover.svg +7 -0
  45. package/assets/icon/buttons/zoom-out.svg +7 -0
  46. package/assets/icon/context/context-copy.svg +4 -0
  47. package/assets/icon/context/context-cross.svg +3 -0
  48. package/assets/icon/context/context-cut.svg +4 -0
  49. package/assets/icon/context/context-delete.svg +4 -0
  50. package/assets/icon/context/context-paste.svg +4 -0
  51. package/assets/icon/property/add.svg +23 -0
  52. package/assets/icon/property/close.svg +3 -0
  53. package/assets/icon/property/ellipsis.svg +5 -0
  54. package/assets/icon/property/gear.svg +3 -0
  55. package/assets/icon/property/hide.svg +10 -0
  56. package/assets/icon/property/move.svg +35 -0
  57. package/assets/styles/_collapse-button.scss +37 -0
  58. package/assets/styles/_context-menu.scss +32 -0
  59. package/assets/styles/_diagram-buttons.scss +197 -0
  60. package/assets/styles/_diagram.scss +15 -0
  61. package/assets/styles/_errors.scss +83 -0
  62. package/assets/styles/_palette.scss +20 -0
  63. package/assets/styles/_property-editor.scss +285 -0
  64. package/assets/styles/daga.scss +150 -0
  65. package/fesm2022/metadev-daga-angular.mjs +1861 -0
  66. package/fesm2022/metadev-daga-angular.mjs.map +1 -0
  67. package/index.d.ts +14 -0
  68. package/lib/collapse-button/collapse-button.component.d.ts +22 -0
  69. package/lib/daga.module.d.ts +18 -0
  70. package/lib/diagram/diagram.component.d.ts +43 -0
  71. package/lib/diagram-buttons/diagram-buttons.component.d.ts +46 -0
  72. package/lib/diagram-editor/diagram-editor.component.d.ts +34 -0
  73. package/lib/errors/errors.component.d.ts +24 -0
  74. package/lib/palette/palette.component.d.ts +36 -0
  75. package/lib/property-editor/autocomplete/autocomplete.component.d.ts +39 -0
  76. package/lib/property-editor/object-editor/object-editor.component.d.ts +29 -0
  77. package/lib/property-editor/option-list-editor/option-list-editor.component.d.ts +33 -0
  78. package/lib/property-editor/property-editor.component.d.ts +34 -0
  79. package/lib/property-editor/property-settings/property-settings.component.d.ts +33 -0
  80. package/lib/property-editor/text-list-editor/text-list-editor.component.d.ts +29 -0
  81. package/lib/property-editor/text-map-editor/text-map-editor.component.d.ts +36 -0
  82. package/lib/services/canvas-provider.service.d.ts +30 -0
  83. package/lib/services/daga-configuration.service.d.ts +23 -0
  84. package/package.json +55 -0
package/Changelog.md ADDED
@@ -0,0 +1,204 @@
1
+ # DAGA Changelog
2
+
3
+ List of releases and changes.
4
+
5
+ ![Daga logo](https://metadev.pro/icons/daga-logo-header.svg)
6
+
7
+ ## Next release Excalibur
8
+
9
+ ## v. 2.0.0 Lobera
10
+
11
+ Date: _2024-11-22_
12
+
13
+ - Allow multiple selection of nodes by secondary click and drag to draw a selection rectangle [#146](https://github.com/metadevpro/daga/issues/146) [#174](https://github.com/metadevpro/daga/pull/174)
14
+ - Make all diagram components disabled by default in diagram configuration [#174](https://github.com/metadevpro/daga/pull/174)
15
+ - Rename `exists` attribute of diagram configuration of components to `enabled` [#174](https://github.com/metadevpro/daga/pull/174)
16
+ - Move methods regarding user selection in diagram canvas (`isInUserSelection`, `addToUserSelection`, `removeFromUserSelection`, `toggleUserSelection`, `clearUserSelection`, `deleteUserSelection`, `copyUserSelectionToClipboard`, `pasteUserSelectionFromClipboard`, `setPropertyEditorSelection`) to its own `userSelection` object in the canvas [#174](https://github.com/metadevpro/daga/pull/174)
17
+ - Move methods regarding user highlight in diagram canvas (`highlight`, `unhighlight`) to its own `userHighlight` object in the canvas [#174](https://github.com/metadevpro/daga/pull/174)
18
+ - Move methods regarding context menu in diagram canvas (`openContextMenu`, `closeContextMenu`) to its own `contextMenu` object in the canvas [#174](https://github.com/metadevpro/daga/pull/174)
19
+ - Split the core of Daga functionalities from the Angular-specific parts [#150](https://github.com/metadevpro/daga/issues/150) [#175](https://github.com/metadevpro/daga/pull/175)
20
+ - Add `Move` action type to support moving multiple elements at once [#177](https://github.com/metadevpro/daga/pull/177)
21
+ - When moving a selected element, move the entire user selection [#177](https://github.com/metadevpro/daga/pull/177)
22
+ - Fix bug with undoing paste actions not removing the correct elements [#177](https://github.com/metadevpro/daga/pull/177)
23
+ - Void property editor selection when selecting multiple elements [#178](https://github.com/metadevpro/daga/pull/178)
24
+ - Extract canvas configuration to its own object within the diagram configuration [#180](https://github.com/metadevpro/daga/pull/180)
25
+ - Solve bug with infinite loop on getting an element from an element set [#181](https://github.com/metadevpro/daga/pull/181)
26
+ - Add multiple selection menu button [#182](https://github.com/metadevpro/daga/pull/182)
27
+ - Do not highlight nodes when moving nodes or drawing a multiple selection rectangle [#182](https://github.com/metadevpro/daga/pull/182)
28
+ - Rename `guessConnectionType` to `inferConnectionType` [#185](https://github.com/metadevpro/daga/pull/185)
29
+ - Rename `ActionQueue` to `ActionStack` [#185](https://github.com/metadevpro/daga/pull/185)
30
+ - Rename `zoomRate` to `zoomFactor` [#185](https://github.com/metadevpro/daga/pull/185)
31
+ - Rename `validatorChanges$` to `validatorChange$`, `diagramChanges$` to `diagramChange$` and `diagramImportantChanges$` to `diagramImportantChange$` [#185](https://github.com/metadevpro/daga/pull/185)
32
+ - When undoing or redoing user actions, perform undo or redo repeatedly until there's an effect on the diagram [#190](https://github.com/metadevpro/daga/pull/190)
33
+
34
+ ## v. 1.5.7
35
+
36
+ Date: _2024-10-16_
37
+
38
+ - Fix the selecion of layout algorithms in examples [#170](https://github.com/metadevpro/daga/pull/170)
39
+ - Add `daga-` prefixes to element classes to avoid stylesheet conflicts [#171](https://github.com/metadevpro/daga/pull/171)
40
+ - Highlight diagram elements with the error when showing an error [#171](https://github.com/metadevpro/daga/pull/171)
41
+ - Prevent selecting the same element multiple times [#172](https://github.com/metadevpro/daga/issues/172) [#173](https://github.com/metadevpro/daga/pull/173)
42
+
43
+ ## v. 1.5.6
44
+
45
+ Date: _2024-10-10_
46
+
47
+ - Filter away removed elements by default [#168](https://github.com/metadevpro/daga/pull/168)
48
+ - Generalize the margin and padding of fields to enable different amounts of margin on each side [#168](https://github.com/metadevpro/daga/pull/168)
49
+ - Enable using the - and + keys for zoom [#168](https://github.com/metadevpro/daga/pull/168)
50
+ - Enable using the arrow keys for panning [#168](https://github.com/metadevpro/daga/pull/168)
51
+
52
+ ## v. 1.5.5
53
+
54
+ Date: _2024-10-02_
55
+
56
+ - Ensure that decorators are always removed [#167](https://github.com/metadevpro/daga/pull/167)
57
+
58
+ ## v. 1.5.4
59
+
60
+ Date: _2024-09-21_
61
+
62
+ - Add diagram decorators [#164](https://github.com/metadevpro/daga/issues/164) [#166](https://github.com/metadevpro/daga/pull/166)
63
+ - Enable diagram events on diagram objects [#166](https://github.com/metadevpro/daga/pull/166)
64
+
65
+ ## v. 1.5.3
66
+
67
+ Date: _2024-09-09_
68
+
69
+ - Create interface for listening to user events on the diagram [#160](https://github.com/metadevpro/daga/issues/160) [#161](https://github.com/metadevpro/daga/pull/161)
70
+
71
+ ## v. 1.5.2
72
+
73
+ Date: _2024-08-30_
74
+
75
+ - Create new UpdateValuesAction on debounced user changes instead of only on closing the property editor [#136](https://github.com/metadevpro/daga/issues/136) [#152](https://github.com/metadevpro/daga/pull/152)
76
+ - Fix bug with failing to highlight ports due to attempting to highlight ports from a removed node instead [#156](https://github.com/metadevpro/daga/pull/156)
77
+ - Stop propagation of keydown events on input fields to prevent deleting nodes on pressing backspace while editing a node's label [#155](https://github.com/metadevpro/daga/issues/155) [#157](https://github.com/metadevpro/daga/pull/157)
78
+ - Add hasProperty method to PropertySet [#158](https://github.com/metadevpro/daga/pull/158)
79
+
80
+ ## v. 1.5.1
81
+
82
+ Date: _2024-06-19_
83
+
84
+ - Highlight elements when opening the context menu on them [#142](https://github.com/metadevpro/daga/pull/142)
85
+ - Add select all (Control+A) and invert selection (Control+I) keyboard shortcuts [#143](https://github.com/metadevpro/daga/pull/143)
86
+ - Enable adding to selection with Shift+Click as well as Control+Click [#145](https://github.com/metadevpro/daga/pull/145)
87
+ - Make context menu items focusable [#145](https://github.com/metadevpro/daga/pull/145)
88
+ - Only show context menu buttons if they can be clicked [#145](https://github.com/metadevpro/daga/pull/145)
89
+ - Select elements when opening the context menu on them [#145](https://github.com/metadevpro/daga/pull/145)
90
+ - Paste selection centered on the user's view or on the context menu location instead of in the place of the original selection [#147](https://github.com/metadevpro/daga/pull/147)
91
+ - Add diagram objects [#148](https://github.com/metadevpro/daga/pull/148)
92
+ - Enable toggling context menu in diagram configuration [#149](https://github.com/metadevpro/daga/pull/149)
93
+ - Center icons of context menu buttons [#149](https://github.com/metadevpro/daga/pull/149)
94
+
95
+ ## v. 1.5.0 Colada
96
+
97
+ Date: _2024-06-06_
98
+
99
+ - Ported to Angular 18, nx 19, node 20 [#140](https://github.com/metadevpro/daga/pull/140)
100
+ - Add context menu and clipboard functionality [#139](https://github.com/metadevpro/daga/pull/139)
101
+
102
+ ## v. 1.4.3
103
+
104
+ Date: _2024-06-04_
105
+
106
+ - Add property editor settings page [#113](https://github.com/metadevpro/daga/issues/113) [#119](https://github.com/metadevpro/daga/pull/119) [#120](https://github.com/metadevpro/daga/pull/120)
107
+ - Add `TextSet` and `OptionSet` property types [#121](https://github.com/metadevpro/daga/pull/121)
108
+ - Don't allow adding empty values in `TextList`, `TextSet` and `TextMap` property types [#121](https://github.com/metadevpro/daga/pull/121)
109
+ - Prevent overlapping connections [#122](https://github.com/metadevpro/daga/pull/122)
110
+ - Highlight a port when the pointer is close to the port while drawing a connection [#138](https://github.com/metadevpro/daga/pull/138)
111
+ - Adding support for collaborative actions.
112
+
113
+ ## v. 1.4.2
114
+
115
+ Date: _2024-04-11_
116
+
117
+ - Allow instancing nodes and connections referencing their type by its identifier rather than having to get the type from the set of types [#94](https://github.com/metadevpro/daga/pull/94)
118
+ - Use logical removal of diagram elements via the `removed` flag instead of removing them from the model [#96](https://github.com/metadevpro/daga/pull/96)
119
+ - Add `do()` method to `DiagramAction` [#96](https://github.com/metadevpro/daga/pull/96)
120
+ - Only register changed values in `UpdateValuesAction` to reduce chances of overwriting when different users edit the same `ValueSet` simultaneously [#106](https://github.com/metadevpro/daga/pull/106)
121
+ - Define and document the behavior of `ValueSet` [#106](https://github.com/metadevpro/daga/pull/106)
122
+ - When creating a new `DiagramElement` with a `ValueSet`, set the `DiagramElement`'s attributes to the `ValueSet`'s values if any of the values has an associated attribute [#106](https://github.com/metadevpro/daga/pull/106)
123
+ - Move the components of property editor to within property editor folder for better code organization [#106](https://github.com/metadevpro/daga/pull/106)
124
+ - Remove Lux dependence [#106](https://github.com/metadevpro/daga/pull/106)
125
+ - Make the `rootAttribute` of `Property` optional to make diagram configurations simpler [#106](https://github.com/metadevpro/daga/pull/106)
126
+ - Improve behavior of nested `ValueSet`s [#106](https://github.com/metadevpro/daga/pull/106)
127
+ - Fix bug with the list of options in properties of `Option` type appearing misplaced in scrolled property editors [#116](https://github.com/metadevpro/daga/pull/116)
128
+ - Make property editor not appear when collapsed [#118](https://github.com/metadevpro/daga/pull/118)
129
+
130
+ ## v. 1.4.1
131
+
132
+ Date: _2024-03-08_
133
+
134
+ - Fix bug with diagram changes not triggering validation [#91](https://github.com/metadevpro/daga/pull/91)
135
+ - Compensate for scroll when getting cursor position relative to screen [#92](https://github.com/metadevpro/daga/pull/92)
136
+
137
+ ## v. 1.4.0 Tizona
138
+
139
+ Date: _2024-03-08_
140
+
141
+ - Enable configuring which components are present in a diagram [#66](https://github.com/metadevpro/daga/pull/66)
142
+ - Add `zoom` configurable user action and enable configuring whether zooming and panning is enabled [#66](https://github.com/metadevpro/daga/pull/66)
143
+ - Rename `color` configuration property of diagram to `backgroundColor` and `color` configuration property of node to `fillColor` [#65](https://github.com/metadevpro/daga/issues/65) [#69](https://github.com/metadevpro/daga/pull/69)
144
+ - Remove `generic-diagram.json` file and add testing diagram configuration in `test-util` file instead [#69](https://github.com/metadevpro/daga/pull/69)
145
+ - Fix bug with connections with zero priority not being displayed [#70](https://github.com/metadevpro/daga/pull/70)
146
+ - Organize the configuration for each diagram component in the diagram configuration interface [#71](https://github.com/metadevpro/daga/pull/71)
147
+ - Enable configuring the location of diagram components [#71](https://github.com/metadevpro/daga/pull/71)
148
+ - Enable configuring the presence of specific buttons in the diagram buttons [#71](https://github.com/metadevpro/daga/pull/71)
149
+ - Generalize the expansion and collapse animation of the diagram buttons to an arbitrary number of buttons [#71](https://github.com/metadevpro/daga/pull/71)
150
+ - Add `fit` option to `FieldConfig` interface. Resize nodes and sections when that option is true and the size of their labels changes. [#35](https://github.com/metadevpro/daga/pull/35)
151
+ - Fix [#39](https://github.com/metadevpro/daga/issues/39) Allow delete with `backspace` key for Mac (no delete key on Mac).
152
+ - Fix [#75](https://github.com/metadevpro/daga/issues/75) Blur event in input field. Also implement autoselect all text.
153
+ - Reorganize configuration of diagram sections such that each section can be configured individually [#81](https://github.com/metadevpro/daga/pull/81)
154
+ - Resize nodes when filtering their sections [#83](https://github.com/metadevpro/daga/pull/83)
155
+ - Add methods to more easily get the priority of diagram elements and get and set the priority threshold of a canvas [#83](https://github.com/metadevpro/daga/pull/83)
156
+ - Use `not-allowed` cursor style when the user attempts to do an action that is not allowed [#41](https://github.com/metadevpro/daga/issues/41) [#85](https://github.com/metadevpro/daga/pull/85)
157
+ - Group up diagram elements by their type in the dom to ensure order of drawing of diagram elements [#84](https://github.com/metadevpro/daga/issues/84) [#86](https://github.com/metadevpro/daga/pull/86)
158
+ - Enable two way diagram model databinding [#73](https://github.com/metadevpro/daga/issues/73) [#87](https://github.com/metadevpro/daga/pull/87)
159
+ - Enable making changes to the diagram in the view without broadcasting changes to the model [#87](https://github.com/metadevpro/daga/pull/87)
160
+ - Move example-specific assets to their example asset folder [#87](https://github.com/metadevpro/daga/pull/87)
161
+ - Add a diagram's ValueSet to the DagaModel and serialize and deserialize a diagram's ValueSet when exporting and importing a diagram using the default daga exporter/importer [#87](https://github.com/metadevpro/daga/pull/87)
162
+
163
+ ## v. 1.3.1
164
+
165
+ Date: _2024.02.13_
166
+
167
+ - Add link to documentation and tutorials: <https://daga.metadev.pro/>
168
+
169
+ ## v. 1.3.0
170
+
171
+ Date: _2024.02.12_
172
+
173
+ - Add TSDoc documentation of types, methods and fields [#62](https://github.com/metadevpro/daga/pull/62)
174
+ - Creatw UserActionConfig type to represent configuration of allowed user actions [#62](https://github.com/metadevpro/daga/pull/62)
175
+ - Fix typo in README [#62](https://github.com/metadevpro/daga/pull/62)
176
+ - Use `DataSource<unknown, string>` as the type for the options of `Property` instead of `DataSource<string, string>` to allow arbitrary values [#63](https://github.com/metadevpro/daga/pull/63)
177
+ - Improved efficiency of moving the start and end ports of a connection [#64](https://github.com/metadevpro/daga/pull/64)
178
+
179
+ ## v. 1.2.0
180
+
181
+ Date: _2024.02.08_
182
+
183
+ - Enable configuring what user actions are allowed [#47](https://github.com/metadevpro/daga/issues/47) [#54](https://github.com/metadevpro/daga/pull/54)
184
+ - Add missing exports to index and clean up unused utils [#55](https://github.com/metadevpro/daga/pull/55)
185
+ - Use separate configuration defaults for `DiagramNode` and `DiagramSection` [#56](https://github.com/metadevpro/daga/pull/56)
186
+ - Add TypeDoc for automatic documentation generation [#58](https://github.com/metadevpro/daga/pull/58)
187
+ - Move all styles to a dedicated `styles` folder [#60](https://github.com/metadevpro/daga/pull/60)
188
+ - Remove unused CSS variables [#60](https://github.com/metadevpro/daga/pull/60)
189
+ - Remove ampersands from stylesheets [#60](https://github.com/metadevpro/daga/pull/60)
190
+ - Prefix Daga's CSS variables with `daga-` [#60](https://github.com/metadevpro/daga/pull/60)
191
+ - Update libraries [#60](https://github.com/metadevpro/daga/pull/60)
192
+
193
+ ## v. 1.1.0
194
+
195
+ Date: _2024.02.05_
196
+
197
+ - Refactor API for sets of elements of Diagram Model [#51](https://github.com/metadevpro/daga/pull/51)
198
+ - Make diagrams not absolutely positioned in CSS [#50](https://github.com/metadevpro/daga/issues/50), [#52](https://github.com/metadevpro/daga/pull/52)
199
+
200
+ ## v. 1.0.0
201
+
202
+ Date: _2024.02.01_
203
+
204
+ - First public version. ⚔️🚀🎉
package/LICENSE.md ADDED
@@ -0,0 +1,13 @@
1
+ # DAGA License
2
+
3
+ ![Daga logo](https://metadev.pro/icons/daga-logo-header.svg)
4
+
5
+ **Metadev** offers a dual license for [**Daga**](https://metadev.pro/products/daga/).
6
+ Feel free to [contact](https://metadev.pro/contact/) for any inquiry about it.
7
+
8
+ 1. Commercial license granted for for-profit organizations.
9
+ 2. Free license for research and educational usages.
10
+
11
+ ---
12
+
13
+ ![Metadev logo](https://metadev.pro/content/metadev-logo-600px.png)
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # Daga
2
+
3
+ ![Daga banner](https://metadev.pro/content/daga/daga-banner.png)
4
+
5
+ Diagramming library for models.
6
+
7
+ [Daga documentation and tutorial](https://daga.metadev.pro)
8
+ [Daga product page](https://metadev.pro/products/daga/).
9
+ Made and comercial suport by [Metadev](https://metadev.pro).
10
+
11
+ ## Diagram Example
12
+
13
+ ![Sample diagram](https://metadev.pro/img/daga/daga-diagram.svg)
14
+
15
+ ## Requirements
16
+
17
+ - Angular 18
18
+
19
+ ## Build Daga
20
+
21
+ ```bash
22
+ npm run build
23
+ ```
24
+
25
+ ## Generate Docs
26
+
27
+ ```bash
28
+ npm run doc
29
+ ```
30
+
31
+ ## Test
32
+
33
+ ```bash
34
+ npm run test
35
+ ```
36
+
37
+ ## Lint
38
+
39
+ ```bash
40
+ npm run lint
41
+ ```
42
+
43
+ ## Pack
44
+
45
+ ```bash
46
+ npm run pack-daga
47
+ ```
48
+
49
+ ## Publish in npmjs
50
+
51
+ ```bash
52
+ npm run publish-daga
53
+ ```
54
+
55
+ ## Tutorial & Documentation
56
+
57
+ - [Documentation, tutorial and samples](https://daga.metadev.pro/)
58
+
59
+ ## License
60
+
61
+ (C) 2023-2024 [Metadev S.L.](https://metadev.pro) All rights reserved.
62
+ [Dual license](LICENSE.md):
63
+
64
+ 1. Comercial licence for for-profit organizations.
65
+ 2. Free license for research & educational usages.
66
+
67
+ ![Metadev logo](https://metadev.pro/content/metadev-logo-600px.png)
Binary file
Binary file
Binary file
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
5
+ <g id="arrow-drop-down">
6
+ <polygon points="0,63.75 127.5,191.25 255,63.75"/>
7
+ </g>
8
+ </svg>
@@ -0,0 +1,14 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="
4
+ M 15 1
5
+ L 9 12
6
+ L 15 23
7
+ "
8
+ fill="none"
9
+ stroke="#C1CDD9"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ />
14
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="
4
+ M 12 1
5
+ L 12 23
6
+ "
7
+ fill="none"
8
+ stroke="#C1CDD9"
9
+ stroke-width="2"
10
+ stroke-linecap="round"
11
+ stroke-linejoin="round"
12
+ />
13
+ </svg>
@@ -0,0 +1,14 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="
4
+ M 9 1
5
+ L 15 12
6
+ L 9 23
7
+ "
8
+ fill="none"
9
+ stroke="#C1CDD9"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ />
14
+ </svg>
@@ -0,0 +1,14 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="
4
+ M 1 9
5
+ L 12 15
6
+ L 23 9
7
+ "
8
+ fill="none"
9
+ stroke="#C1CDD9"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ />
14
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="
4
+ M 1 12
5
+ L 23 12
6
+ "
7
+ fill="none"
8
+ stroke="#C1CDD9"
9
+ stroke-width="2"
10
+ stroke-linecap="round"
11
+ stroke-linejoin="round"
12
+ />
13
+ </svg>
@@ -0,0 +1,14 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="
4
+ M 1 15
5
+ L 12 9
6
+ L 23 15
7
+ "
8
+ fill="none"
9
+ stroke="#C1CDD9"
10
+ stroke-width="2"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ />
14
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <circle cx="24" cy="24" r="7" stroke="#33363F" stroke-width="2"/>
4
+ <circle cx="24" cy="24" r="2" fill="#33363F" stroke="#33363F" stroke-width="2"/>
5
+ <path d="M24 17V13" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
6
+ <path d="M31 24L35 24" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
7
+ <path d="M24 35L24 31" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
8
+ <path d="M13 24H17" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
9
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
10
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <circle cx="24" cy="24" r="7" stroke="#33363F" stroke-width="2"/>
4
+ <circle cx="24" cy="24" r="2" fill="#33363F" stroke="#33363F" stroke-width="2"/>
5
+ <path d="M24 17V13" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
6
+ <path d="M31 24L35 24" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
7
+ <path d="M24 35L24 31" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
8
+ <path d="M13 24H17" stroke="#33363F" stroke-width="2" stroke-linecap="round"/>
9
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
10
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path d="M 16 16 H 26 V 20 H 20 V 26 H 16 V 16 Z" fill="#33363F"/>
4
+ <path d="M 32 22 H 22 V 32 H 32 V 22 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path d="M 16 16 H 26 V 20 H 20 V 26 H 16 V 16 Z" fill="#33363F"/>
4
+ <path d="M 32 22 H 22 V 32 H 32 V 22 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M 21.454666666666668 16.87868 C 22.454013333333332 17.878026666666667 22.60092 19.407 21.8954 20.562066666666666 L 31.333333333333336 30 L 30.333333333333336 31 H 27.333333333333336 L 22.833333333333332 26.5 L 21.8954 27.437933333333334 C 22.60092 28.593000000000004 22.454013333333332 30.122 21.454666666666668 31.121333333333332 C 20.86888 31.70706666666667 20.101106666666666 32 19.333333333333332 32 H 19.16176 C 17.599666666666668 32 16.333333333333332 30.733733333333333 16.333333333333332 29.171573333333335 C 16.333333333333332 28.42142666666667 16.631326666666666 27.701999999999998 17.16176 27.171573333333335 L 20.333333333333332 24 L 17.16176 20.828426666666665 C 16.631326666666666 20.298000000000002 16.333333333333332 19.578573333333335 16.333333333333332 18.828426666666665 C 16.333333333333332 17.26633066666667 17.599666666666668 16 19.16176 16 H 19.333333333333332 C 20.101106666666666 16 20.86888 16.292889333333335 21.454666666666668 16.87868Z M 18.333333333333332 19 C 18.333333333333332 19.55228 18.781053333333332 20 19.333333333333332 20C19.885613333333332 20 20.333333333333332 19.55228 20.333333333333332 19C20.333333333333332 18.44772 19.885613333333332 18 19.333333333333332 18C18.781053333333332 18 18.333333333333332 18.44772 18.333333333333332 19 Z M 19.333333333333332 28 C 18.781053333333332 28 18.333333333333332 28.447719999999997 18.333333333333332 29 C 18.333333333333332 29.552266666666668 18.781053333333332 30 19.333333333333332 30 C 19.885613333333332 30 20.333333333333332 29.552266666666668 20.333333333333332 29 C 20.333333333333332 28.447719999999997 19.885613333333332 28 19.333333333333332 28 Z" fill="#33363F"/>
4
+ <path d="M 27.333333333333336 17 L 24.333333333333336 20 L 26.833333333333336 22.5 L 31.333333333333336 18 L 30.333333333333336 17 L 27.333333333333336 17 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M 21.454666666666668 16.87868 C 22.454013333333332 17.878026666666667 22.60092 19.407 21.8954 20.562066666666666 L 31.333333333333336 30 L 30.333333333333336 31 H 27.333333333333336 L 22.833333333333332 26.5 L 21.8954 27.437933333333334 C 22.60092 28.593000000000004 22.454013333333332 30.122 21.454666666666668 31.121333333333332 C 20.86888 31.70706666666667 20.101106666666666 32 19.333333333333332 32 H 19.16176 C 17.599666666666668 32 16.333333333333332 30.733733333333333 16.333333333333332 29.171573333333335 C 16.333333333333332 28.42142666666667 16.631326666666666 27.701999999999998 17.16176 27.171573333333335 L 20.333333333333332 24 L 17.16176 20.828426666666665 C 16.631326666666666 20.298000000000002 16.333333333333332 19.578573333333335 16.333333333333332 18.828426666666665 C 16.333333333333332 17.26633066666667 17.599666666666668 16 19.16176 16 H 19.333333333333332 C 20.101106666666666 16 20.86888 16.292889333333335 21.454666666666668 16.87868Z M 18.333333333333332 19 C 18.333333333333332 19.55228 18.781053333333332 20 19.333333333333332 20C19.885613333333332 20 20.333333333333332 19.55228 20.333333333333332 19C20.333333333333332 18.44772 19.885613333333332 18 19.333333333333332 18C18.781053333333332 18 18.333333333333332 18.44772 18.333333333333332 19 Z M 19.333333333333332 28 C 18.781053333333332 28 18.333333333333332 28.447719999999997 18.333333333333332 29 C 18.333333333333332 29.552266666666668 18.781053333333332 30 19.333333333333332 30 C 19.885613333333332 30 20.333333333333332 29.552266666666668 20.333333333333332 29 C 20.333333333333332 28.447719999999997 19.885613333333332 28 19.333333333333332 28 Z" fill="#33363F"/>
4
+ <path d="M 27.333333333333336 17 L 24.333333333333336 20 L 26.833333333333336 22.5 L 31.333333333333336 18 L 30.333333333333336 17 L 27.333333333333336 17 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path d="M 20 18 H 17 V 20 H 31 V 18 H 28 V 16 H 20 V 18 Z" fill="#33363F"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M 19 22 H 29 V 32 H 19 V 22 Z M 23 25 H 25 V 29 H 23 V 25 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path d="M 20 18 H 17 V 20 H 31 V 18 H 28 V 16 H 20 V 18 Z" fill="#33363F"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M 19 22 H 29 V 32 H 19 V 22 Z M 23 25 H 25 V 29 H 23 V 25 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <circle cx="16" cy="24" r="2" fill="#33363F"/>
4
+ <circle cx="24" cy="24" r="2" fill="#33363F"/>
5
+ <circle cx="32" cy="24" r="2" fill="#33363F"/>
6
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
7
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <circle cx="16" cy="24" r="2" fill="#33363F"/>
4
+ <circle cx="24" cy="24" r="2" fill="#33363F"/>
5
+ <circle cx="32" cy="24" r="2" fill="#33363F"/>
6
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
7
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path d="M34 16H14L22 25.46V32L26 34V25.46L34 16Z" stroke="#233154" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path d="M34 16H14L22 25.46V32L26 34V25.46L34 16Z" stroke="#233154" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M35.153 14.5443C35.5197 14.1313 35.4821 13.4992 35.0691 13.1326C34.6561 12.7659 34.024 12.8035 33.6574 13.2165L32.074 15H14C13.6107 15 13.2568 15.2259 13.0929 15.5791C12.929 15.9323 12.985 16.3484 13.2364 16.6457L21 25.8261V27.4735L17.8325 31.0414C17.4658 31.4544 17.5034 32.0865 17.9164 32.4531C18.3294 32.8198 18.9614 32.7822 19.3281 32.3692L35.153 14.5443ZM22.977 25.2467L30.2984 17H16.1553L22.7636 24.8143C22.8696 24.9396 22.9424 25.0883 22.977 25.2467ZM23 31.3819V30.2386L21.0688 32.3646C21.1576 32.5911 21.3276 32.7818 21.5528 32.8944L25.5528 34.8944C25.8628 35.0494 26.2309 35.0328 26.5257 34.8506C26.8206 34.6684 27 34.3466 27 34V25.8351L25 28.0369V32.3819L23 31.3819Z" fill="#233154"/>
4
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M35.153 14.5443C35.5197 14.1313 35.4821 13.4992 35.0691 13.1326C34.6561 12.7659 34.024 12.8035 33.6574 13.2165L32.074 15H14C13.6107 15 13.2568 15.2259 13.0929 15.5791C12.929 15.9323 12.985 16.3484 13.2364 16.6457L21 25.8261V27.4735L17.8325 31.0414C17.4658 31.4544 17.5034 32.0865 17.9164 32.4531C18.3294 32.8198 18.9614 32.7822 19.3281 32.3692L35.153 14.5443ZM22.977 25.2467L30.2984 17H16.1553L22.7636 24.8143C22.8696 24.9396 22.9424 25.0883 22.977 25.2467ZM23 31.3819V30.2386L21.0688 32.3646C21.1576 32.5911 21.3276 32.7818 21.5528 32.8944L25.5528 34.8944C25.8628 35.0494 26.2309 35.0328 26.5257 34.8506C26.8206 34.6684 27 34.3466 27 34V25.8351L25 28.0369V32.3819L23 31.3819Z" fill="#233154"/>
4
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
5
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <rect x="16" y="16" width="6" height="7" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
4
+ <rect x="16" y="27" width="6" height="5" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
5
+ <rect x="26" y="16" width="6" height="5" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
6
+ <rect x="26" y="25" width="6" height="7" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
7
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
8
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <rect x="16" y="16" width="6" height="7" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
4
+ <rect x="16" y="27" width="6" height="5" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
5
+ <rect x="26" y="16" width="6" height="5" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
6
+ <rect x="26" y="25" width="6" height="7" rx="1" stroke="#33363F" stroke-width="2" stroke-linejoin="round"/>
7
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
8
+ </svg>
@@ -0,0 +1,18 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path d="
4
+ M 13 18 V 16 H 15
5
+ M 17 16 H 21
6
+ M 23 16 H 27
7
+ M 29 16 H 31 V 18
8
+ M 31 20 V 24
9
+ M 31 26 V 28 H 29
10
+ M 29 28 H 23
11
+ M 21 28 H 17
12
+ M 15 28 H 13 V 26
13
+ M 13 24 V 20
14
+ " fill="none" stroke="#33363F" stroke-width="1"/>
15
+ <path d="M 31 22 V 34" fill="none" stroke="#33363F" stroke-width="2"/>
16
+ <path d="M 25 28 H 37" fill="none" stroke="#33363F" stroke-width="2"/>
17
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
18
+ </svg>
@@ -0,0 +1,18 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path d="
4
+ M 13 18 V 16 H 15
5
+ M 17 16 H 21
6
+ M 23 16 H 27
7
+ M 29 16 H 31 V 18
8
+ M 31 20 V 24
9
+ M 31 26 V 28 H 29
10
+ M 29 28 H 23
11
+ M 21 28 H 17
12
+ M 15 28 H 13 V 26
13
+ M 13 24 V 20
14
+ " fill="none" stroke="#33363F" stroke-width="1"/>
15
+ <path d="M 31 22 V 34" fill="none" stroke="#33363F" stroke-width="2"/>
16
+ <path d="M 25 28 H 37" fill="none" stroke="#33363F" stroke-width="2"/>
17
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
18
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="#F5F5F5"/>
3
+ <path d="M 21 16 H 27 V 19 H 21 Z" fill="#33363F"/>
4
+ <path d="M 17 17 H 20 V 20 H 28 V 17 H 31 V 32 H 17 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white"/>
3
+ <path d="M 21 16 H 27 V 19 H 21 Z" fill="#33363F"/>
4
+ <path d="M 17 17 H 20 V 20 H 28 V 17 H 31 V 32 H 17 Z" fill="#33363F"/>
5
+ <rect x="0.5" y="0.5" width="47" height="47" rx="23.5" stroke="#E5E5E5"/>
6
+ </svg>