@humanforest/ui 0.1.0

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 (235) hide show
  1. package/LICENSE +67 -0
  2. package/icons/forest/bike-asterisk.svg +21 -0
  3. package/icons/forest/bike-down.svg +19 -0
  4. package/icons/forest/bike-off.svg +20 -0
  5. package/icons/forest/bike-up.svg +19 -0
  6. package/icons/forest/bike-x.svg +19 -0
  7. package/icons/forest/bike.svg +18 -0
  8. package/icons/forest/map/forest-place-count.svg +21 -0
  9. package/icons/forest/map/forest-place-marker.svg +17 -0
  10. package/icons/forest/map/forest-vehicle-marker.svg +73 -0
  11. package/icons/forest/map/manifest.json +373 -0
  12. package/icons/forest/map/place-count-manifest.json +83 -0
  13. package/icons/forest/map/place-manifest.json +74 -0
  14. package/icons/forest/mark-fill.svg +6 -0
  15. package/icons/forest/mark.svg +6 -0
  16. package/icons/forest/parking.svg +3 -0
  17. package/icons/forest/star-fill.svg +4 -0
  18. package/icons/forest/star.svg +4 -0
  19. package/icons/forest/traffic-light-caution.svg +8 -0
  20. package/icons/forest/traffic-light-go.svg +8 -0
  21. package/icons/forest/traffic-light-lit.svg +8 -0
  22. package/icons/forest/traffic-light-stop.svg +8 -0
  23. package/icons/forest/traffic-light.svg +8 -0
  24. package/package.json +64 -0
  25. package/src/address/address.ts +125 -0
  26. package/src/address/autofill.ts +78 -0
  27. package/src/address/geocode.ts +55 -0
  28. package/src/address/index.ts +31 -0
  29. package/src/address/validate.ts +91 -0
  30. package/src/canvas/FCanvasCard.vue +97 -0
  31. package/src/canvas/FCanvasControl.vue +121 -0
  32. package/src/canvas/FCanvasControlGroup.vue +100 -0
  33. package/src/canvas/FCanvasFlyout.vue +216 -0
  34. package/src/canvas/FCanvasHud.vue +402 -0
  35. package/src/canvas/canvasSurface.ts +39 -0
  36. package/src/canvas/index.ts +17 -0
  37. package/src/contexts/ForestContext.vue +53 -0
  38. package/src/contexts/contexts.ts +153 -0
  39. package/src/contexts/index.ts +23 -0
  40. package/src/contexts/marketing-theme.ts +214 -0
  41. package/src/contexts/mobile-theme.ts +402 -0
  42. package/src/filter/FFilterBar.vue +72 -0
  43. package/src/filter/FFilterChip.vue +362 -0
  44. package/src/filter/FFilterClauses.vue +104 -0
  45. package/src/filter/FFilterTrigger.vue +183 -0
  46. package/src/filter/filter.theme.ts +27 -0
  47. package/src/filter/filterClause.ts +265 -0
  48. package/src/filter/filterPredicate.ts +134 -0
  49. package/src/filter/filterSchema.ts +82 -0
  50. package/src/filter/index.ts +36 -0
  51. package/src/forest-preset.ts +68 -0
  52. package/src/icons.ts +79 -0
  53. package/src/index.ts +17 -0
  54. package/src/kpi/FKpi.vue +253 -0
  55. package/src/kpi/FKpiGroup.vue +161 -0
  56. package/src/kpi/index.ts +20 -0
  57. package/src/kpi/kpi.theme.ts +168 -0
  58. package/src/kpi/kpiDelta.ts +82 -0
  59. package/src/kpi/kpiFormat.ts +72 -0
  60. package/src/kpi/kpiGroupState.ts +63 -0
  61. package/src/logo/FLogo.vue +52 -0
  62. package/src/logo/FSubLogo.vue +214 -0
  63. package/src/logo/index.ts +8 -0
  64. package/src/map/FMap.vue +355 -0
  65. package/src/map/FMapCompass.vue +154 -0
  66. package/src/map/FMapCoordinates.vue +134 -0
  67. package/src/map/FMapDrawTools.vue +116 -0
  68. package/src/map/FMapFullscreen.vue +92 -0
  69. package/src/map/FMapGeolocate.vue +208 -0
  70. package/src/map/FMapLayers.vue +75 -0
  71. package/src/map/FMapLegend.vue +45 -0
  72. package/src/map/FMapPopup.vue +129 -0
  73. package/src/map/FMapRamp.vue +69 -0
  74. package/src/map/FMapRegion.vue +77 -0
  75. package/src/map/FMapScale.vue +107 -0
  76. package/src/map/FMapSearch.vue +362 -0
  77. package/src/map/FMapTilt.vue +87 -0
  78. package/src/map/FMapTools.vue +61 -0
  79. package/src/map/FMapZoom.vue +81 -0
  80. package/src/map/FMarker.vue +218 -0
  81. package/src/map/FTrackScrubber.vue +94 -0
  82. package/src/map/FVehicleLegend.vue +72 -0
  83. package/src/map/FVehicleMark.vue +166 -0
  84. package/src/map/bin.ts +196 -0
  85. package/src/map/coordinates.ts +83 -0
  86. package/src/map/density.ts +401 -0
  87. package/src/map/draw.ts +356 -0
  88. package/src/map/ease.ts +67 -0
  89. package/src/map/fullscreen.ts +59 -0
  90. package/src/map/heat.ts +160 -0
  91. package/src/map/index.ts +351 -0
  92. package/src/map/liveMarkers.ts +60 -0
  93. package/src/map/map.css +116 -0
  94. package/src/map/mapColor.ts +31 -0
  95. package/src/map/mapContext.ts +12 -0
  96. package/src/map/mapLayers.ts +55 -0
  97. package/src/map/mapLegend.ts +70 -0
  98. package/src/map/mapSearch.theme.ts +79 -0
  99. package/src/map/mapSearch.ts +279 -0
  100. package/src/map/mapUrl.ts +117 -0
  101. package/src/map/markerAsset.ts +3 -0
  102. package/src/map/padding.ts +39 -0
  103. package/src/map/place.ts +192 -0
  104. package/src/map/ramp.ts +95 -0
  105. package/src/map/regionSelect.ts +163 -0
  106. package/src/map/route.ts +167 -0
  107. package/src/map/scale.ts +329 -0
  108. package/src/map/scaleBar.ts +67 -0
  109. package/src/map/selectionModel.ts +50 -0
  110. package/src/map/sources/coordinates.ts +58 -0
  111. package/src/map/sources/mapboxPlaces.ts +71 -0
  112. package/src/map/style.ts +14 -0
  113. package/src/map/track.ts +279 -0
  114. package/src/map/useFeatureSelect.ts +230 -0
  115. package/src/map/useLiveMarkers.ts +84 -0
  116. package/src/map/useMap.ts +150 -0
  117. package/src/map/useMapDraw.ts +776 -0
  118. package/src/map/useMapOverlay.ts +421 -0
  119. package/src/map/useMapTableSelection.ts +101 -0
  120. package/src/map/useMapUrlState.ts +155 -0
  121. package/src/map/useMarkerSource.ts +163 -0
  122. package/src/map/useRegionSelect.ts +309 -0
  123. package/src/map/useTokenMode.ts +61 -0
  124. package/src/map/useTrackPlayback.ts +131 -0
  125. package/src/map/useVehicleFilter.ts +51 -0
  126. package/src/map/useVisibleFeatures.ts +124 -0
  127. package/src/map/vehicle.ts +807 -0
  128. package/src/map/vehicleFilter.ts +284 -0
  129. package/src/map/vehicleLegend.ts +155 -0
  130. package/src/map/visibleFeatures.ts +192 -0
  131. package/src/map/zone.ts +291 -0
  132. package/src/shell/FAppNavbar.vue +68 -0
  133. package/src/shell/FAppShell.vue +163 -0
  134. package/src/shell/FAppSidebar.vue +215 -0
  135. package/src/shell/FPageToolbar.vue +126 -0
  136. package/src/shell/FScrollShadow.vue +43 -0
  137. package/src/shell/FSidePanel.vue +258 -0
  138. package/src/shell/FToolbarActions.vue +32 -0
  139. package/src/shell/index.ts +33 -0
  140. package/src/shell/nav.ts +37 -0
  141. package/src/shell/pageToolbar.ts +69 -0
  142. package/src/shell/shell.ts +74 -0
  143. package/src/shell/sidePanel.ts +115 -0
  144. package/src/styles/forest.css +852 -0
  145. package/src/styles/index.css +39 -0
  146. package/src/themes/accordion.ts +36 -0
  147. package/src/themes/alert.ts +16 -0
  148. package/src/themes/auth-form.ts +19 -0
  149. package/src/themes/avatar-group.ts +9 -0
  150. package/src/themes/avatar.ts +18 -0
  151. package/src/themes/badge.ts +51 -0
  152. package/src/themes/banner.ts +21 -0
  153. package/src/themes/breadcrumb.ts +10 -0
  154. package/src/themes/button.mechanics.ts +191 -0
  155. package/src/themes/button.ts +136 -0
  156. package/src/themes/calendar.ts +29 -0
  157. package/src/themes/card.ts +67 -0
  158. package/src/themes/carousel.ts +41 -0
  159. package/src/themes/checkbox-group.ts +20 -0
  160. package/src/themes/checkbox.ts +47 -0
  161. package/src/themes/chip.ts +50 -0
  162. package/src/themes/collapsible.ts +26 -0
  163. package/src/themes/color-picker.ts +13 -0
  164. package/src/themes/command-palette.ts +37 -0
  165. package/src/themes/container.ts +14 -0
  166. package/src/themes/context-menu.ts +38 -0
  167. package/src/themes/dashboard-group.ts +11 -0
  168. package/src/themes/dashboard-navbar.ts +10 -0
  169. package/src/themes/dashboard-panel.ts +18 -0
  170. package/src/themes/dashboard-resize-handle.ts +35 -0
  171. package/src/themes/dashboard-sidebar-collapse.ts +7 -0
  172. package/src/themes/dashboard-sidebar-toggle.ts +7 -0
  173. package/src/themes/dashboard-sidebar.ts +58 -0
  174. package/src/themes/dashboard-toolbar.ts +15 -0
  175. package/src/themes/drawer.ts +45 -0
  176. package/src/themes/dropdown-menu.ts +38 -0
  177. package/src/themes/empty.ts +43 -0
  178. package/src/themes/field-group.ts +52 -0
  179. package/src/themes/file-upload.ts +38 -0
  180. package/src/themes/footer-columns.ts +13 -0
  181. package/src/themes/footer.ts +9 -0
  182. package/src/themes/form-field.ts +25 -0
  183. package/src/themes/form.ts +22 -0
  184. package/src/themes/header.ts +12 -0
  185. package/src/themes/icon.ts +61 -0
  186. package/src/themes/index.ts +99 -0
  187. package/src/themes/input-date.ts +73 -0
  188. package/src/themes/input-menu.ts +66 -0
  189. package/src/themes/input-number.ts +58 -0
  190. package/src/themes/input-rating.ts +25 -0
  191. package/src/themes/input-tags.ts +63 -0
  192. package/src/themes/input-time.ts +70 -0
  193. package/src/themes/input.ts +148 -0
  194. package/src/themes/kbd.ts +27 -0
  195. package/src/themes/link.ts +27 -0
  196. package/src/themes/listbox.ts +48 -0
  197. package/src/themes/main.ts +6 -0
  198. package/src/themes/marquee.ts +45 -0
  199. package/src/themes/modal.ts +46 -0
  200. package/src/themes/navigation-menu.ts +80 -0
  201. package/src/themes/page-anchors.ts +7 -0
  202. package/src/themes/page-aside.ts +7 -0
  203. package/src/themes/page-card.ts +22 -0
  204. package/src/themes/page-cta.ts +18 -0
  205. package/src/themes/page-feature.ts +13 -0
  206. package/src/themes/page-header.ts +16 -0
  207. package/src/themes/page-hero.ts +15 -0
  208. package/src/themes/page-links.ts +12 -0
  209. package/src/themes/page-section.ts +14 -0
  210. package/src/themes/page.ts +7 -0
  211. package/src/themes/pagination.ts +17 -0
  212. package/src/themes/pin-input.ts +73 -0
  213. package/src/themes/popover.ts +30 -0
  214. package/src/themes/progress.ts +29 -0
  215. package/src/themes/prose.ts +45 -0
  216. package/src/themes/radio-group.ts +39 -0
  217. package/src/themes/scroll-area.ts +23 -0
  218. package/src/themes/select-menu.ts +71 -0
  219. package/src/themes/select.ts +72 -0
  220. package/src/themes/separator.ts +28 -0
  221. package/src/themes/sidebar.ts +127 -0
  222. package/src/themes/skeleton.ts +15 -0
  223. package/src/themes/slideover.ts +87 -0
  224. package/src/themes/slider.ts +48 -0
  225. package/src/themes/stepper.ts +41 -0
  226. package/src/themes/switch.ts +63 -0
  227. package/src/themes/table.ts +34 -0
  228. package/src/themes/tabs.ts +74 -0
  229. package/src/themes/textarea.ts +77 -0
  230. package/src/themes/timeline.ts +25 -0
  231. package/src/themes/toast.ts +29 -0
  232. package/src/themes/toaster.ts +66 -0
  233. package/src/themes/tooltip.ts +31 -0
  234. package/src/themes/tree.ts +41 -0
  235. package/src/themes/user.ts +28 -0
package/LICENSE ADDED
@@ -0,0 +1,67 @@
1
+ Forest Design System — Licence
2
+ Copyright (c) 2026 HumanForest Ltd. All rights reserved.
3
+
4
+ This software is published openly so that people building Forest products can install it
5
+ without access to its source repository. It is not open-source software.
6
+
7
+
8
+ 1. GRANT
9
+
10
+ You may install, use, copy and modify this software, and incorporate it into applications,
11
+ prototypes, documents and presentations, for the purpose of building or operating Forest
12
+ products, services and communications.
13
+
14
+ This grant is free of charge and requires no separate agreement. It runs to anyone who
15
+ obtains the software from a public registry.
16
+
17
+
18
+ 2. RESERVED
19
+
20
+ All rights not granted above are reserved. In particular, you may not:
21
+
22
+ (a) redistribute this software, modified or unmodified, as a design system, component
23
+ library, template or theme of your own;
24
+
25
+ (b) use the HumanForest and Forest names, logos, wordmarks, sub-brand marks or any
26
+ confusingly similar mark. Nothing here grants any trademark right. The brand marks
27
+ included in these packages are provided to render Forest's own products correctly,
28
+ not as artwork you may adopt;
29
+
30
+ (c) represent your product as being made, endorsed or approved by HumanForest.
31
+
32
+
33
+ 3. THIRD-PARTY MATERIAL
34
+
35
+ Parts of these packages are not HumanForest's to license, and the grant in section 1 does
36
+ not extend to them. Each keeps its own terms:
37
+
38
+ TYPEFACES — Mohr and GT Haptik are licensed to HumanForest by their foundries and are NOT
39
+ sublicensed to you. No font binary is included in any published package. The stylesheets
40
+ reference https://assets.forest.bike/fonts/, which serves them to those entitled to use
41
+ them. If you are not covered by Forest's licences, substitute your own faces. JetBrains
42
+ Mono is licensed under the SIL Open Font License 1.1 and may be used under those terms.
43
+
44
+ GLYPH OUTLINES — packages/tokens ships `glyphs/glyphs.json`, letterforms of the above
45
+ typefaces outlined as vector paths so sub-brand lockups can be composed at runtime. It is
46
+ covered by the same foundry terms as the typefaces themselves, not by section 1.
47
+
48
+ DEVICE ARTWORK — packages/frames ships device renders from Wikimedia Commons under the
49
+ Creative Commons Attribution-ShareAlike 4.0 International licence
50
+ (https://creativecommons.org/licenses/by-sa/4.0/). They are unmodified. Attribution is a
51
+ condition of that licence: see ATTRIBUTION.md in that package, and keep it with the art
52
+ wherever the art travels. Works derived from the artwork must themselves be CC BY-SA 4.0.
53
+
54
+ DEPENDENCIES — third-party packages installed alongside these keep their own licences.
55
+
56
+
57
+ 4. NO WARRANTY
58
+
59
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
60
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
61
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
62
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
63
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
64
+ DEALINGS IN THE SOFTWARE.
65
+
66
+
67
+ Questions about use beyond this grant: design@forest.bike
@@ -0,0 +1,21 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z"
4
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
5
+ <path
6
+ d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z"
7
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
8
+ <path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2"
9
+ stroke-linecap="round" />
10
+ <path d="M8 9H10" stroke-width="2" stroke-linecap="round" />
11
+ <path d="M9 9L12 15" stroke-width="2" stroke-linecap="round" />
12
+ <path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2"
13
+ stroke-linecap="round" />
14
+ <path
15
+ d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16"
16
+ stroke-width="2" stroke-linecap="round" />
17
+ <path d="M5.5 12H3" stroke-width="2" stroke-linecap="round" />
18
+ <path d="M5 3V7.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
19
+ <path d="M7 4L3 6.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
20
+ <path d="M3 4L7 6.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
21
+ </svg>
@@ -0,0 +1,19 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z"
4
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
5
+ <path
6
+ d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z"
7
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
8
+ <path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2"
9
+ stroke-linecap="round" />
10
+ <path d="M8 9H10" stroke-width="2" stroke-linecap="round" />
11
+ <path d="M9 9L12 15" stroke-width="2" stroke-linecap="round" />
12
+ <path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2"
13
+ stroke-linecap="round" />
14
+ <path
15
+ d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16"
16
+ stroke-width="2" stroke-linecap="round" />
17
+ <path d="M5.5 12H3" stroke-width="2" stroke-linecap="round" />
18
+ <path d="M4 8L4 2.5M4 8L2 5.5M4 8L6 5.5" stroke-width="2" stroke-linecap="round" />
19
+ </svg>
@@ -0,0 +1,20 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M18.5 18C20.433 18 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 18 18.5 18Z"
4
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
5
+ <path
6
+ d="M5.5 18C7.433 18 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 18 5.5 18Z"
7
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
8
+ <path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2"
9
+ stroke-linecap="round" />
10
+ <path d="M8 9H10" stroke-width="2" stroke-linecap="round" />
11
+ <path d="M9 9L12 15" stroke-width="2" stroke-linecap="round" />
12
+ <path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2"
13
+ stroke-linecap="round" />
14
+ <path
15
+ d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16"
16
+ stroke-width="2" stroke-linecap="round" />
17
+ <path d="M5.5 12H3" stroke-width="2" stroke-linecap="round" />
18
+ <path d="M8 18H3" stroke-width="2" stroke-linecap="round" />
19
+ <path d="M21 18H16" stroke-width="2" stroke-linecap="round" />
20
+ </svg>
@@ -0,0 +1,19 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z"
4
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
5
+ <path
6
+ d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z"
7
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
8
+ <path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2"
9
+ stroke-linecap="round" />
10
+ <path d="M8 9H10" stroke-width="2" stroke-linecap="round" />
11
+ <path d="M9 9L12 15" stroke-width="2" stroke-linecap="round" />
12
+ <path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2"
13
+ stroke-linecap="round" />
14
+ <path
15
+ d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16"
16
+ stroke-width="2" stroke-linecap="round" />
17
+ <path d="M5.5 12H3" stroke-width="2" stroke-linecap="round" />
18
+ <path d="M4 2.5V8M4 2.5L6 5M4 2.5L2 5" stroke-width="2" stroke-linecap="round" />
19
+ </svg>
@@ -0,0 +1,19 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z"
4
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
5
+ <path
6
+ d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z"
7
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
8
+ <path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2"
9
+ stroke-linecap="round" />
10
+ <path d="M8 9H10" stroke-width="2" stroke-linecap="round" />
11
+ <path d="M9 9L12 15" stroke-width="2" stroke-linecap="round" />
12
+ <path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2"
13
+ stroke-linecap="round" />
14
+ <path
15
+ d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16"
16
+ stroke-width="2" stroke-linecap="round" />
17
+ <path d="M5.5 12H3" stroke-width="2" stroke-linecap="round" />
18
+ <path d="M3 7L7 3M7 7L3 3" stroke-width="2" stroke-linecap="round" />
19
+ </svg>
@@ -0,0 +1,18 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z"
4
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
5
+ <path
6
+ d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z"
7
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
8
+ <path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2"
9
+ stroke-linecap="round" />
10
+ <path d="M8 9H10" stroke-width="2" stroke-linecap="round" />
11
+ <path d="M9 9L12 15" stroke-width="2" stroke-linecap="round" />
12
+ <path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2"
13
+ stroke-linecap="round" />
14
+ <path
15
+ d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16"
16
+ stroke-width="2" stroke-linecap="round" />
17
+ <path d="M5.5 12H3" stroke-width="2" stroke-linecap="round" />
18
+ </svg>
@@ -0,0 +1,21 @@
1
+ <svg width="42" height="28" viewBox="0 0 42 28" fill="none"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ xmlns:m="https://www.mapbox.com">
4
+ <m:metadata>
5
+ <m:parameters>
6
+ <m:parameter m:type="color" m:name="body" m:value="#FF00FF" />
7
+ <m:parameter m:type="color" m:name="ring" m:value="#FF01FF" />
8
+ <m:parameter m:type="color" m:name="warehouse" m:value="#FF02FF" />
9
+ <m:parameter m:type="color" m:name="parking" m:value="#FF03FF" />
10
+ <m:parameter m:type="color" m:name="bike" m:value="#FF04FF" />
11
+ </m:parameters>
12
+ <m:stretch-x-areas>
13
+ <m:stretch-x-area m:left="25" m:width="2" />
14
+ </m:stretch-x-areas>
15
+ <m:content m:left="25" m:top="0" m:width="9" m:height="28" />
16
+ </m:metadata>
17
+ <rect x="1.4" y="1.4" width="39.2" height="25.2" rx="12.6" fill="#FF00FF" stroke="#FF01FF" stroke-width="2.8" />
18
+ <g transform="translate(8 8) scale(0.5)" fill="none" stroke="#FF02FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="2.52"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"/><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></g></g>
19
+ <g transform="translate(8 8) scale(0.5)" fill="#FF03FF" stroke="none"><path d="M4.68 20.5 6.48 3.5H12.99Q16.15 3.5 17.78 5.02Q19.41 6.53 19.32 9.35Q19.24 12.66 17.19 14.43Q15.14 16.2 11.62 16.2H10.22L9.78 20.5ZM10.7 11.79H11.95Q13 11.79 13.57 11.26Q14.14 10.73 14.2 9.74Q14.23 8.88 13.77 8.4Q13.3 7.91 12.38 7.91H11.1Z" /></g>
20
+ <g transform="translate(8 8) scale(0.5)" fill="none" stroke="#FF04FF" stroke-linecap="round" stroke-linejoin="round"><path d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z" stroke-width="2.52" stroke-linecap="round" stroke-linejoin="round" /><path d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z" stroke-width="2.52" stroke-linecap="round" stroke-linejoin="round" /><path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="2.52" stroke-linecap="round" /><path d="M8 9H10" stroke-width="2.52" stroke-linecap="round" /><path d="M9 9L12 15" stroke-width="2.52" stroke-linecap="round" /><path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="2.52" stroke-linecap="round" /><path d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16" stroke-width="2.52" stroke-linecap="round" /><path d="M5.5 12H3" stroke-width="2.52" stroke-linecap="round" /></g>
21
+ </svg>
@@ -0,0 +1,17 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ xmlns:m="https://www.mapbox.com">
4
+ <m:metadata>
5
+ <m:parameters>
6
+ <m:parameter m:type="color" m:name="body" m:value="#FF00FF" />
7
+ <m:parameter m:type="color" m:name="ring" m:value="#FF01FF" />
8
+ <m:parameter m:type="color" m:name="warehouse" m:value="#FF02FF" />
9
+ <m:parameter m:type="color" m:name="parking" m:value="#FF03FF" />
10
+ <m:parameter m:type="color" m:name="bike" m:value="#FF04FF" />
11
+ </m:parameters>
12
+ </m:metadata>
13
+ <rect x="1.665" y="1.665" width="36.67" height="36.67" rx="9.17" fill="#FF00FF" stroke="#FF01FF" stroke-width="3.33" />
14
+ <g transform="translate(8.5 8.5) scale(0.9585)" fill="none" stroke="#FF02FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"/><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></g></g>
15
+ <g transform="translate(8.5 8.5) scale(0.9585)" fill="#FF03FF" stroke="none"><path d="M4.68 20.5 6.48 3.5H12.99Q16.15 3.5 17.78 5.02Q19.41 6.53 19.32 9.35Q19.24 12.66 17.19 14.43Q15.14 16.2 11.62 16.2H10.22L9.78 20.5ZM10.7 11.79H11.95Q13 11.79 13.57 11.26Q14.14 10.73 14.2 9.74Q14.23 8.88 13.77 8.4Q13.3 7.91 12.38 7.91H11.1Z" /></g>
16
+ <g transform="translate(8.5 8.5) scale(0.9585)" fill="none" stroke="#FF04FF" stroke-linecap="round" stroke-linejoin="round"><path d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /><path d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /><path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="1.74" stroke-linecap="round" /><path d="M8 9H10" stroke-width="1.74" stroke-linecap="round" /><path d="M9 9L12 15" stroke-width="1.74" stroke-linecap="round" /><path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="1.74" stroke-linecap="round" /><path d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16" stroke-width="1.74" stroke-linecap="round" /><path d="M5.5 12H3" stroke-width="1.74" stroke-linecap="round" /></g>
17
+ </svg>
@@ -0,0 +1,73 @@
1
+ <svg width="40" height="40" viewBox="0 0 40 40" fill="none"
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ xmlns:m="https://www.mapbox.com">
4
+ <m:metadata>
5
+ <m:parameters>
6
+ <m:parameter m:type="color" m:name="body" m:value="#FF00FF" />
7
+ <m:parameter m:type="color" m:name="edge" m:value="#FF01FF" />
8
+ <m:parameter m:type="color" m:name="battery" m:value="#FF02FF" />
9
+ <m:parameter m:type="color" m:name="batteryEdge" m:value="#FF03FF" />
10
+ <m:parameter m:type="color" m:name="dot" m:value="#FF04FF" />
11
+ <m:parameter m:type="color" m:name="dotEdge" m:value="#FF05FF" />
12
+ <m:parameter m:type="color" m:name="badgeSquare" m:value="#FF06FF" />
13
+ <m:parameter m:type="color" m:name="badgeSquareEdge" m:value="#FF07FF" />
14
+ <m:parameter m:type="color" m:name="badgeTriangle" m:value="#FF08FF" />
15
+ <m:parameter m:type="color" m:name="badgeTriangleEdge" m:value="#FF09FF" />
16
+ <m:parameter m:type="color" m:name="badgeCircle" m:value="#FF0AFF" />
17
+ <m:parameter m:type="color" m:name="badgeCircleEdge" m:value="#FF0BFF" />
18
+ <m:parameter m:type="color" m:name="badgeStar" m:value="#FF0CFF" />
19
+ <m:parameter m:type="color" m:name="badgeStarEdge" m:value="#FF0DFF" />
20
+ <m:parameter m:type="color" m:name="inUseFrom" m:value="#FF0EFF" />
21
+ <m:parameter m:type="color" m:name="inUseTo" m:value="#FF0FFF" />
22
+ <m:parameter m:type="color" m:name="locked" m:value="#FF10FF" />
23
+ <m:parameter m:type="color" m:name="lockedEdge" m:value="#FF11FF" />
24
+ <m:parameter m:type="color" m:name="bike" m:value="#FF12FF" />
25
+ <m:parameter m:type="color" m:name="pine" m:value="#FF13FF" />
26
+ <m:parameter m:type="color" m:name="eye" m:value="#FF14FF" />
27
+ <m:parameter m:type="color" m:name="relocate" m:value="#FF15FF" />
28
+ <m:parameter m:type="color" m:name="wrench" m:value="#FF16FF" />
29
+ <m:parameter m:type="color" m:name="warehouse" m:value="#FF17FF" />
30
+ <m:parameter m:type="color" m:name="truck" m:value="#FF18FF" />
31
+ <m:parameter m:type="color" m:name="bandage" m:value="#FF19FF" />
32
+ <m:parameter m:type="color" m:name="question" m:value="#FF1AFF" />
33
+ <m:parameter m:type="color" m:name="hand" m:value="#FF1BFF" />
34
+ <m:parameter m:type="color" m:name="flag" m:value="#FF1CFF" />
35
+ <m:parameter m:type="color" m:name="ready" m:value="#FF1DFF" />
36
+ <m:parameter m:type="color" m:name="skull" m:value="#FF1EFF" />
37
+ <m:parameter m:type="color" m:name="container" m:value="#FF1FFF" />
38
+ <m:parameter m:type="color" m:name="staff" m:value="#FF20FF" />
39
+ </m:parameters>
40
+ </m:metadata>
41
+ <defs>
42
+ <radialGradient id="inUse" cx="0.35" cy="0.3" r="0.85">
43
+ <stop offset="0" stop-color="#FF0EFF" />
44
+ <stop offset="1" stop-color="#FF0FFF" />
45
+ </radialGradient>
46
+ </defs>
47
+ <circle cx="20" cy="20" r="19.2" fill="#FF02FF" stroke="#FF03FF" stroke-width="1.6" />
48
+ <circle cx="20" cy="20" r="15.2" fill="#FF00FF" stroke="#FF01FF" stroke-width="1.6" />
49
+ <circle cx="20" cy="20" r="14.4" fill="url(#inUse)" />
50
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF12FF" stroke-linecap="round" stroke-linejoin="round"><path d="M18.5 19C20.433 19 22 17.433 22 15.5C22 13.567 20.433 12 18.5 12C16.567 12 15 13.567 15 15.5C15 17.433 16.567 19 18.5 19Z" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /><path d="M5.5 19C7.433 19 9 17.433 9 15.5C9 13.567 7.433 12 5.5 12C3.567 12 2 13.567 2 15.5C2 17.433 3.567 19 5.5 19Z" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /><path d="M6 15.5H11.3602C11.7502 15.5 12.1047 15.2732 12.2681 14.9191L15 9" stroke-width="1.74" stroke-linecap="round" /><path d="M8 9H10" stroke-width="1.74" stroke-linecap="round" /><path d="M9 9L12 15" stroke-width="1.74" stroke-linecap="round" /><path d="M12 5H12.8686C13.2543 5 13.6056 5.22183 13.7715 5.57007L18.5 15.5" stroke-width="1.74" stroke-linecap="round" /><path d="M15 6H18.6126C19.2951 6 19.7771 6.6687 19.5613 7.31623L19.2279 8.31623C19.0918 8.72457 18.7097 9 18.2792 9H16" stroke-width="1.74" stroke-linecap="round" /><path d="M5.5 12H3" stroke-width="1.74" stroke-linecap="round" /></g>
51
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF13FF" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L17.2 12.4H15.4L17.2 16H6.8L8.6 12.4H6.8L12 2Z" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /><path d="M10.2 16V22H8.6" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /><path d="M13.8 16V22H15.4" stroke-width="1.74" stroke-linecap="round" stroke-linejoin="round" /></g>
52
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF14FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/></g></g>
53
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF15FF" stroke-linecap="round" stroke-linejoin="round"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74" d="m16 3l4 4l-4 4m4-4H4m4 14l-4-4l4-4m-4 4h16"/></g>
54
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF16FF" stroke-linecap="round" stroke-linejoin="round"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74" d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"/></g>
55
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF17FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11"/><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8zM6 13h12M6 17h12"/></g></g>
56
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF18FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2m10 0H9m10 0h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14"/><circle cx="17" cy="18" r="2"/><circle cx="7" cy="18" r="2"/></g></g>
57
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF19FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M10 10.01h.01m-.01 4h.01m3.99-4h.01m-.01 4h.01M18 6v12M6 6v12"/><rect width="20" height="12" x="2" y="6" rx="2"/></g></g>
58
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF1AFF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01"/></g></g>
59
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF1BFF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2m0 4V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2m0 4.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8"/><path d="M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/></g></g>
60
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF1CFF" stroke-linecap="round" stroke-linejoin="round"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74" d="M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528"/></g>
61
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF1DFF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M12 22V12m4 5l2 2l4-4"/><path d="M21 11.127V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l1.32-.753"/><path d="M3.29 7L12 12l8.71-5M7.5 4.27l8.997 5.148"/></g></g>
62
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF1EFF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="m12.5 17l-.5-1l-.5 1z"/><path d="M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25a8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z"/><circle cx="15" cy="12" r="1"/><circle cx="9" cy="12" r="1"/></g></g>
63
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF1FFF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"/><path d="M10 21.9V14L2.1 9.1M10 14l11.9-6.9M14 19.8v-8.1m4 5.8V9.4"/></g></g>
64
+ <g transform="translate(10.06 10.06) scale(0.828)" fill="none" stroke="#FF20FF" stroke-linecap="round" stroke-linejoin="round"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.74"><path d="M12 12h.01M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2m14 7a18.15 18.15 0 0 1-20 0"/><rect width="20" height="14" x="2" y="6" rx="2"/></g></g>
65
+ <circle cx="32.16" cy="7.84" r="5.44" fill="#FF04FF" stroke="#FF05FF" stroke-width="1.6" />
66
+ <rect x="3.71" y="28.03" width="8.26" height="8.26" rx="1.4" fill="#FF06FF" stroke="#FF07FF" stroke-width="1.6" />
67
+ <path d="M 7.84,26.82 L 13.18,36 L 2.5,36 Z" fill="#FF08FF" stroke="#FF09FF" stroke-width="1.6" stroke-linejoin="round" />
68
+ <circle cx="7.84" cy="32.16" r="4.64" fill="#FF0AFF" stroke="#FF0BFF" stroke-width="1.6" />
69
+ <path d="M 7.84,26.68 L 9.77,29.5 L 13.05,30.47 L 10.96,33.18 L 11.06,36.59 L 7.84,35.45 L 4.62,36.59 L 4.72,33.18 L 2.63,30.47 L 5.91,29.5 Z" fill="#FF0CFF" stroke="#FF0DFF" stroke-width="1.6" stroke-linejoin="round" stroke-linecap="round" />
70
+ <circle cx="32.16" cy="32.16" r="5.44" fill="#FF10FF" stroke="#FF11FF" stroke-width="1.6" />
71
+ <rect x="29.92" y="29.49" width="1.95" height="5.34" rx="0.58" fill="#FF11FF" />
72
+ <rect x="32.45" y="29.49" width="1.95" height="5.34" rx="0.58" fill="#FF11FF" />
73
+ </svg>