ui-foundations 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 (342) hide show
  1. package/README.md +259 -0
  2. package/dist/assets/fonts/README.md +5 -0
  3. package/dist/assets/icons/location-roundtrip.svg +5 -0
  4. package/dist/assets/icons/location-track.svg +4 -0
  5. package/dist/assets/icons/location.svg +4 -0
  6. package/dist/assets/icons/lock-checkmark.svg +4 -0
  7. package/dist/assets/icons/lock-close.svg +4 -0
  8. package/dist/assets/icons/lock-open.svg +5 -0
  9. package/dist/assets/icons/login.svg +4 -0
  10. package/dist/assets/icons/logout.svg +3 -0
  11. package/dist/assets/icons/loudspeaker.svg +3 -0
  12. package/dist/assets/icons/lounge-chair.svg +5 -0
  13. package/dist/assets/icons/luggage-backpack.svg +4 -0
  14. package/dist/assets/icons/luggage-backpacker.svg +4 -0
  15. package/dist/assets/icons/luggage-box.svg +5 -0
  16. package/dist/assets/icons/luggage-extra.svg +4 -0
  17. package/dist/assets/icons/luggage-golf.svg +4 -0
  18. package/dist/assets/icons/luggage-hand-plus.svg +5 -0
  19. package/dist/assets/icons/luggage-hand.svg +4 -0
  20. package/dist/assets/icons/luggage-liquids.svg +6 -0
  21. package/dist/assets/icons/luggage-notincluded.svg +3 -0
  22. package/dist/assets/icons/luggage-plus.svg +5 -0
  23. package/dist/assets/icons/luggage-sport.svg +4 -0
  24. package/dist/assets/icons/luggage-suitcase-extra.svg +5 -0
  25. package/dist/assets/icons/luggage-suitcase.svg +4 -0
  26. package/dist/assets/icons/luggage-trolley-extra.svg +5 -0
  27. package/dist/assets/icons/luggage-trolley.svg +3 -0
  28. package/dist/assets/icons/luggage-weekender.svg +4 -0
  29. package/dist/assets/icons/luggage.svg +3 -0
  30. package/dist/assets/icons/lying-chair.svg +4 -0
  31. package/dist/assets/icons/magnet.svg +3 -0
  32. package/dist/assets/icons/mail.svg +4 -0
  33. package/dist/assets/icons/map.svg +3 -0
  34. package/dist/assets/icons/meal-serving-plate.svg +5 -0
  35. package/dist/assets/icons/meal.svg +5 -0
  36. package/dist/assets/icons/medal.svg +4 -0
  37. package/dist/assets/icons/megaphone.svg +5 -0
  38. package/dist/assets/icons/menu-filter.svg +3 -0
  39. package/dist/assets/icons/menu.svg +3 -0
  40. package/dist/assets/icons/message-alert.svg +3 -0
  41. package/dist/assets/icons/message-info.svg +4 -0
  42. package/dist/assets/icons/message-love.svg +4 -0
  43. package/dist/assets/icons/message-push.svg +4 -0
  44. package/dist/assets/icons/message-text.svg +4 -0
  45. package/dist/assets/icons/message.svg +3 -0
  46. package/dist/assets/icons/mic.svg +4 -0
  47. package/dist/assets/icons/miniclub.svg +5 -0
  48. package/dist/assets/icons/minimize.svg +3 -0
  49. package/dist/assets/icons/minus-circled.svg +4 -0
  50. package/dist/assets/icons/minus-heavy.svg +3 -0
  51. package/dist/assets/icons/minus.svg +3 -0
  52. package/dist/assets/icons/moon.svg +3 -0
  53. package/dist/assets/icons/moose.svg +5 -0
  54. package/dist/assets/icons/mountain.svg +4 -0
  55. package/dist/assets/icons/mouth.svg +3 -0
  56. package/dist/assets/icons/muffin.svg +4 -0
  57. package/dist/assets/icons/museum.svg +3 -0
  58. package/dist/assets/icons/mustache.svg +3 -0
  59. package/dist/assets/icons/network.svg +3 -0
  60. package/dist/assets/icons/newsletter.svg +6 -0
  61. package/dist/assets/icons/none.svg +3 -0
  62. package/dist/assets/icons/nordic-walking.svg +3 -0
  63. package/dist/assets/icons/notepad.svg +3 -0
  64. package/dist/assets/icons/number.svg +3 -0
  65. package/dist/assets/icons/on-board-meals.svg +4 -0
  66. package/dist/assets/icons/paperjet.svg +4 -0
  67. package/dist/assets/icons/parasol.svg +4 -0
  68. package/dist/assets/icons/parking-garage.svg +4 -0
  69. package/dist/assets/icons/parking-time.svg +4 -0
  70. package/dist/assets/icons/pass-boarding.svg +4 -0
  71. package/dist/assets/icons/paw.svg +3 -0
  72. package/dist/assets/icons/pencil.svg +3 -0
  73. package/dist/assets/icons/pharmacy.svg +4 -0
  74. package/dist/assets/icons/phone-checkin.svg +4 -0
  75. package/dist/assets/icons/phone-push.svg +5 -0
  76. package/dist/assets/icons/phone.svg +3 -0
  77. package/dist/assets/icons/picture-mountain.svg +5 -0
  78. package/dist/assets/icons/picture-stack.svg +5 -0
  79. package/dist/assets/icons/picture-sunset.svg +4 -0
  80. package/dist/assets/icons/picture.svg +3 -0
  81. package/dist/assets/icons/piggy-bank.svg +5 -0
  82. package/dist/assets/icons/pin.svg +3 -0
  83. package/dist/assets/icons/play-circled.svg +4 -0
  84. package/dist/assets/icons/play-next.svg +3 -0
  85. package/dist/assets/icons/play-pause.svg +3 -0
  86. package/dist/assets/icons/play-prev.svg +3 -0
  87. package/dist/assets/icons/play-stop-circled.svg +4 -0
  88. package/dist/assets/icons/play-stop.svg +3 -0
  89. package/dist/assets/icons/play.svg +3 -0
  90. package/dist/assets/icons/plug.svg +3 -0
  91. package/dist/assets/icons/plus-circled.svg +4 -0
  92. package/dist/assets/icons/plus-heavy.svg +3 -0
  93. package/dist/assets/icons/plus.svg +3 -0
  94. package/dist/assets/icons/popsicle.svg +3 -0
  95. package/dist/assets/icons/postit.svg +4 -0
  96. package/dist/assets/icons/pricetag.svg +4 -0
  97. package/dist/assets/icons/printer.svg +5 -0
  98. package/dist/assets/icons/projector-canvas.svg +3 -0
  99. package/dist/assets/icons/puzzle.svg +3 -0
  100. package/dist/assets/icons/question-mark-bold.svg +4 -0
  101. package/dist/assets/icons/question-mark-circled.svg +4 -0
  102. package/dist/assets/icons/question-mark-ultrabold.svg +4 -0
  103. package/dist/assets/icons/question-mark.svg +3 -0
  104. package/dist/assets/icons/rainbow.svg +5 -0
  105. package/dist/assets/icons/reduced-circled.svg +4 -0
  106. package/dist/assets/icons/reduced.svg +3 -0
  107. package/dist/assets/icons/relax.svg +4 -0
  108. package/dist/assets/icons/resize.svg +4 -0
  109. package/dist/assets/icons/robot-smile.svg +16 -0
  110. package/dist/assets/icons/robot.svg +8 -0
  111. package/dist/assets/icons/room-location.svg +5 -0
  112. package/dist/assets/icons/room-selection.svg +5 -0
  113. package/dist/assets/icons/room-upgrade.svg +5 -0
  114. package/dist/assets/icons/running-shoe.svg +4 -0
  115. package/dist/assets/icons/sail.svg +3 -0
  116. package/dist/assets/icons/sailboat.svg +4 -0
  117. package/dist/assets/icons/sailing-yawl.svg +3 -0
  118. package/dist/assets/icons/save.svg +4 -0
  119. package/dist/assets/icons/scan-code.svg +5 -0
  120. package/dist/assets/icons/scissors.svg +4 -0
  121. package/dist/assets/icons/seal.svg +4 -0
  122. package/dist/assets/icons/search-heart.svg +4 -0
  123. package/dist/assets/icons/search-list.svg +4 -0
  124. package/dist/assets/icons/search.svg +4 -0
  125. package/dist/assets/icons/seat-check.svg +3 -0
  126. package/dist/assets/icons/seat-child.svg +4 -0
  127. package/dist/assets/icons/seat-comfort.svg +3 -0
  128. package/dist/assets/icons/seat-extra-legroom.svg +5 -0
  129. package/dist/assets/icons/seat-extra-space.svg +5 -0
  130. package/dist/assets/icons/seat-extra.svg +5 -0
  131. package/dist/assets/icons/seat-plus.svg +3 -0
  132. package/dist/assets/icons/seat-premium.svg +4 -0
  133. package/dist/assets/icons/seat-selection.svg +10 -0
  134. package/dist/assets/icons/seat-star.svg +3 -0
  135. package/dist/assets/icons/seat-top-booked.svg +5 -0
  136. package/dist/assets/icons/seat-top.svg +4 -0
  137. package/dist/assets/icons/seat.svg +3 -0
  138. package/dist/assets/icons/security-check.svg +7 -0
  139. package/dist/assets/icons/select.svg +3 -0
  140. package/dist/assets/icons/send.svg +3 -0
  141. package/dist/assets/icons/service-bell.svg +3 -0
  142. package/dist/assets/icons/serving-trolley.svg +6 -0
  143. package/dist/assets/icons/settings.svg +4 -0
  144. package/dist/assets/icons/sex-diversity.svg +3 -0
  145. package/dist/assets/icons/sex-female.svg +3 -0
  146. package/dist/assets/icons/sex-male.svg +3 -0
  147. package/dist/assets/icons/share-box.svg +4 -0
  148. package/dist/assets/icons/share.svg +6 -0
  149. package/dist/assets/icons/shield-check.svg +4 -0
  150. package/dist/assets/icons/shield-flex.svg +6 -0
  151. package/dist/assets/icons/shield-warning.svg +3 -0
  152. package/dist/assets/icons/shield.svg +3 -0
  153. package/dist/assets/icons/ship-river.svg +4 -0
  154. package/dist/assets/icons/ship.svg +5 -0
  155. package/dist/assets/icons/shoe.svg +3 -0
  156. package/dist/assets/icons/shop.svg +4 -0
  157. package/dist/assets/icons/shopping-bag-tui.svg +4 -0
  158. package/dist/assets/icons/shopping-bag.svg +4 -0
  159. package/dist/assets/icons/shoppingcart.svg +6 -0
  160. package/dist/assets/icons/shower-rain.svg +3 -0
  161. package/dist/assets/icons/shower.svg +3 -0
  162. package/dist/assets/icons/sign-airport.svg +4 -0
  163. package/dist/assets/icons/sign-bio.svg +5 -0
  164. package/dist/assets/icons/sign-directions.svg +12 -0
  165. package/dist/assets/icons/sign-first-aid.svg +4 -0
  166. package/dist/assets/icons/sign-gluten-free.svg +7 -0
  167. package/dist/assets/icons/sign-hotel.svg +3 -0
  168. package/dist/assets/icons/sign-info.svg +5 -0
  169. package/dist/assets/icons/sign-parking.svg +4 -0
  170. package/dist/assets/icons/sign-vegan.svg +4 -0
  171. package/dist/assets/icons/sign-vegetarian.svg +5 -0
  172. package/dist/assets/icons/signpost-direction.svg +3 -0
  173. package/dist/assets/icons/signpost-directions.svg +3 -0
  174. package/dist/assets/icons/signpost-hotel.svg +3 -0
  175. package/dist/assets/icons/ski-crosscountry.svg +4 -0
  176. package/dist/assets/icons/ski-mountain.svg +3 -0
  177. package/dist/assets/icons/snow.svg +3 -0
  178. package/dist/assets/icons/social-distancing.svg +5 -0
  179. package/dist/assets/icons/sort.svg +3 -0
  180. package/dist/assets/icons/square.svg +3 -0
  181. package/dist/assets/icons/star-circled.svg +4 -0
  182. package/dist/assets/icons/star-half.svg +3 -0
  183. package/dist/assets/icons/star.svg +3 -0
  184. package/dist/assets/icons/stats-bar.svg +3 -0
  185. package/dist/assets/icons/stats-growth.svg +4 -0
  186. package/dist/assets/icons/stats-pie.svg +4 -0
  187. package/dist/assets/icons/stats-rise.svg +3 -0
  188. package/dist/assets/icons/steering-wheel.svg +7 -0
  189. package/dist/assets/icons/steering.svg +3 -0
  190. package/dist/assets/icons/stewardess.svg +5 -0
  191. package/dist/assets/icons/suitcase-purchase.svg +5 -0
  192. package/dist/assets/icons/sum.svg +3 -0
  193. package/dist/assets/icons/sun-circled.svg +4 -0
  194. package/dist/assets/icons/sun-hours.svg +5 -0
  195. package/dist/assets/icons/sun-set.svg +3 -0
  196. package/dist/assets/icons/sun-tui-half.svg +4 -0
  197. package/dist/assets/icons/sun-tui.svg +4 -0
  198. package/dist/assets/icons/sun.svg +4 -0
  199. package/dist/assets/icons/surfing.svg +4 -0
  200. package/dist/assets/icons/swimming-bath.svg +3 -0
  201. package/dist/assets/icons/swimming-pool.svg +3 -0
  202. package/dist/assets/icons/sync-failed.svg +4 -0
  203. package/dist/assets/icons/sync.svg +4 -0
  204. package/dist/assets/icons/tape-measure.svg +4 -0
  205. package/dist/assets/icons/target-blank.svg +3 -0
  206. package/dist/assets/icons/target.svg +5 -0
  207. package/dist/assets/icons/teddy.svg +5 -0
  208. package/dist/assets/icons/temp-air.svg +5 -0
  209. package/dist/assets/icons/temp-low.svg +4 -0
  210. package/dist/assets/icons/temp-time.svg +7 -0
  211. package/dist/assets/icons/temp-water.svg +5 -0
  212. package/dist/assets/icons/temp.svg +4 -0
  213. package/dist/assets/icons/tennis-ball.svg +4 -0
  214. package/dist/assets/icons/tennis.svg +5 -0
  215. package/dist/assets/icons/tent.svg +4 -0
  216. package/dist/assets/icons/thumbnails.svg +3 -0
  217. package/dist/assets/icons/thumbs-up--down.svg +3 -0
  218. package/dist/assets/icons/thumbs-up.svg +3 -0
  219. package/dist/assets/icons/thunder.svg +3 -0
  220. package/dist/assets/icons/ticket-coins.svg +5 -0
  221. package/dist/assets/icons/ticket-envelope.svg +5 -0
  222. package/dist/assets/icons/ticket.svg +3 -0
  223. package/dist/assets/icons/tickets.svg +3 -0
  224. package/dist/assets/icons/tipi.svg +4 -0
  225. package/dist/assets/icons/toilet-paper.svg +5 -0
  226. package/dist/assets/icons/toilet.svg +3 -0
  227. package/dist/assets/icons/toolkit-cases-open.svg +3 -0
  228. package/dist/assets/icons/toolkit-cases.svg +3 -0
  229. package/dist/assets/icons/toolkit.svg +4 -0
  230. package/dist/assets/icons/towel.svg +3 -0
  231. package/dist/assets/icons/track.svg +3 -0
  232. package/dist/assets/icons/train.svg +4 -0
  233. package/dist/assets/icons/transfer-private.svg +5 -0
  234. package/dist/assets/icons/transfer-taxi.svg +4 -0
  235. package/dist/assets/icons/transfers-coach.svg +6 -0
  236. package/dist/assets/icons/transfers-train.svg +4 -0
  237. package/dist/assets/icons/trash-crossed.svg +3 -0
  238. package/dist/assets/icons/trash.svg +4 -0
  239. package/dist/assets/icons/travel-documents.svg +6 -0
  240. package/dist/assets/icons/travel-guide.svg +5 -0
  241. package/dist/assets/icons/travel-money.svg +4 -0
  242. package/dist/assets/icons/treats-in-flight.svg +4 -0
  243. package/dist/assets/icons/trolley-purchase.svg +5 -0
  244. package/dist/assets/icons/tub.svg +5 -0
  245. package/dist/assets/icons/tui-card.svg +4 -0
  246. package/dist/assets/icons/tui-chat.svg +5 -0
  247. package/dist/assets/icons/tui-cloud.svg +3 -0
  248. package/dist/assets/icons/tui-extras.svg +4 -0
  249. package/dist/assets/icons/typography.svg +3 -0
  250. package/dist/assets/icons/ui-banner.svg +4 -0
  251. package/dist/assets/icons/umbrella.svg +5 -0
  252. package/dist/assets/icons/undo.svg +4 -0
  253. package/dist/assets/icons/upload.svg +3 -0
  254. package/dist/assets/icons/user-business.svg +4 -0
  255. package/dist/assets/icons/user-casual.svg +4 -0
  256. package/dist/assets/icons/user-chat.svg +4 -0
  257. package/dist/assets/icons/user-circled.svg +4 -0
  258. package/dist/assets/icons/user-couple.svg +3 -0
  259. package/dist/assets/icons/user-driver.svg +6 -0
  260. package/dist/assets/icons/user-drivers.svg +4 -0
  261. package/dist/assets/icons/user-expert.svg +4 -0
  262. package/dist/assets/icons/user-family.svg +4 -0
  263. package/dist/assets/icons/user-friends.svg +3 -0
  264. package/dist/assets/icons/user-group.svg +4 -0
  265. package/dist/assets/icons/user-passport.svg +5 -0
  266. package/dist/assets/icons/user-plus.svg +3 -0
  267. package/dist/assets/icons/user-skipass.svg +4 -0
  268. package/dist/assets/icons/user-visa.svg +6 -0
  269. package/dist/assets/icons/user.svg +3 -0
  270. package/dist/assets/icons/users.svg +4 -0
  271. package/dist/assets/icons/view-hidden.svg +4 -0
  272. package/dist/assets/icons/view.svg +4 -0
  273. package/dist/assets/icons/villa.svg +4 -0
  274. package/dist/assets/icons/virtualtour.svg +4 -0
  275. package/dist/assets/icons/warehouse.svg +3 -0
  276. package/dist/assets/icons/wash-hands.svg +3 -0
  277. package/dist/assets/icons/watch.svg +3 -0
  278. package/dist/assets/icons/water-boiler.svg +4 -0
  279. package/dist/assets/icons/water-slide.svg +4 -0
  280. package/dist/assets/icons/water.svg +3 -0
  281. package/dist/assets/icons/welcome-pack.svg +3 -0
  282. package/dist/assets/icons/wellness.svg +6 -0
  283. package/dist/assets/icons/whatsapp.svg +4 -0
  284. package/dist/assets/icons/wheel.svg +6 -0
  285. package/dist/assets/icons/wheelchair.svg +4 -0
  286. package/dist/assets/icons/wifi.svg +3 -0
  287. package/dist/assets/icons/wind-surfing.svg +3 -0
  288. package/dist/assets/icons/world-globe.svg +4 -0
  289. package/dist/assets/icons/world-travel.svg +5 -0
  290. package/dist/assets/icons/world.svg +5 -0
  291. package/dist/core/base/base.css +13 -0
  292. package/dist/core/base/fonts.css +1 -0
  293. package/dist/core/base/reset.css +48 -0
  294. package/dist/core/base/typography.css +119 -0
  295. package/dist/core/index.css +12 -0
  296. package/dist/core/recipes/layout.css +24 -0
  297. package/dist/core/themes/mode.css +5 -0
  298. package/dist/main.css +1044 -0
  299. package/dist/react/button.js +95 -0
  300. package/dist/react/checkbox.js +43 -0
  301. package/dist/react/icon.js +50 -0
  302. package/dist/react/index.js +5 -0
  303. package/dist/react/input.js +12 -0
  304. package/dist/react/label.js +125 -0
  305. package/dist/tokens/css/brand-a.tokens.css +22 -0
  306. package/dist/tokens/css/brand-b.tokens.css +22 -0
  307. package/dist/tokens/css/color.dark.tokens.css +32 -0
  308. package/dist/tokens/css/color.light.tokens.css +32 -0
  309. package/dist/tokens/css/component.tokens.css +103 -0
  310. package/dist/tokens/css/primitives.tokens.css +127 -0
  311. package/dist/tokens/css/semantic.tokens.css +35 -0
  312. package/dist/tokens/json/brand-a.tokens.json +192 -0
  313. package/dist/tokens/json/brand-b.tokens.json +192 -0
  314. package/dist/tokens/json/color.dark.tokens.json +364 -0
  315. package/dist/tokens/json/color.light.tokens.json +364 -0
  316. package/dist/tokens/json/component.tokens.json +1101 -0
  317. package/dist/tokens/json/primitives.tokens.json +1077 -0
  318. package/dist/tokens/json/semantic.tokens.json +206 -0
  319. package/dist/tokens/tokens.yaml +4400 -0
  320. package/dist/tokens/ts/brand-a.tokens.ts +32 -0
  321. package/dist/tokens/ts/brand-b.tokens.ts +32 -0
  322. package/dist/tokens/ts/color.dark.tokens.ts +36 -0
  323. package/dist/tokens/ts/color.light.tokens.ts +36 -0
  324. package/dist/tokens/ts/component.tokens.ts +107 -0
  325. package/dist/tokens/ts/primitives.tokens.ts +152 -0
  326. package/dist/tokens/ts/semantic.tokens.ts +42 -0
  327. package/dist/ui/index.css +5 -0
  328. package/dist/ui/patterns/button.css +241 -0
  329. package/dist/ui/patterns/checkbox.css +97 -0
  330. package/dist/ui/patterns/icon.css +20 -0
  331. package/dist/ui/patterns/input.css +76 -0
  332. package/dist/ui/patterns/label.css +49 -0
  333. package/docs/foundations/foundation-001-token-layering.md +27 -0
  334. package/docs/foundations/foundation-002-naming-and-grouping.md +38 -0
  335. package/docs/foundations/foundation-003-color-semantics-and-status.md +35 -0
  336. package/docs/foundations/foundation-004-typography-scale-and-line-height.md +39 -0
  337. package/docs/foundations/foundation-005-responsive-breakpoints-and-containers.md +23 -0
  338. package/docs/foundations/foundation-006-z-index-layering.md +31 -0
  339. package/docs/foundations/foundation-007-typography-selectors-and-specificity.md +24 -0
  340. package/docs/foundations/foundation-008-mode-activation-and-consumer-control.md +27 -0
  341. package/docs/foundations/foundation-009-component-boundaries-and-utility.md +30 -0
  342. package/package.json +64 -0
package/README.md ADDED
@@ -0,0 +1,259 @@
1
+ # UI Foundations
2
+
3
+ This repository contains the **foundation layer** of our UI platform:
4
+
5
+ - Design tokens (core primitives, color modes, semantic roles)
6
+ - Component token APIs (variants, parts, properties, states)
7
+ - Foundational architecture rules for long-term consistency
8
+ - Docs/playground generated with Eleventy
9
+
10
+ ## What this is
11
+
12
+ - A **token-first** foundation that aligns **Figma Variables** with **CSS custom properties**
13
+ - A **multi-brand** and **multi-mode** ready architecture
14
+ - A place to document foundational rules that must remain stable over time
15
+
16
+ ## What this is not (yet)
17
+
18
+ - A full “product design system” with all patterns, usage guidelines, and governance
19
+ - Product-specific application rules (these live downstream in product repositories)
20
+
21
+ ## Architecture (4 layers)
22
+
23
+ 1. **Core (Primitives)**
24
+ Raw physical values: spacing, radii, borders, typography primitives, layout constants.
25
+
26
+ 2. **Color Modes (Light/Dark)**
27
+ Theme palettes: brand colors, neutrals, overlays. No semantic meaning.
28
+
29
+ 3. **Semantics (Roles)**
30
+ Meaning-based roles: `Color.Text.*`, `Color.Fill.*`, `Color.Border.*`, `Typography.*`, `Corner.*`.
31
+ Supports brand modes (e.g. TUI, ROBINSON, LTUR).
32
+
33
+ 4. **Components (APIs)**
34
+ Component-level API rules: variants, parts, properties, states.
35
+ Components reference semantic roles—**never raw values**.
36
+
37
+ ## Naming conventions
38
+
39
+ Component tokens use a **variant-first** grouping:
40
+
41
+ `Component.variant.part.property.state`
42
+
43
+ Example:
44
+
45
+ - `Button.solid.container.background.default`
46
+ - `Button.outline.container.border-color.hover`
47
+
48
+ Rules:
49
+
50
+ - **Typography never includes color** (color lives in `Color.Text.*`)
51
+ - **Components never introduce new colors** (they reference semantic roles)
52
+ - Layout primitives (breakpoints, container sizes, z-index) live in **Core**
53
+
54
+ ## Repository structure
55
+
56
+ - `figma/exports/` — token source exports from Figma
57
+ - `dist/tokens/` — generated token artifacts (CSS/JSON/TS)
58
+ - `src/` — package source layers (Core/UI/React)
59
+ - `site/` — Eleventy preview/docs site (templates + docs-specific CSS)
60
+ - `docs/foundations/` — foundational architecture and token rules (source of truth)
61
+ - `docs/agentic/` — assistant behavior rules and AI collaboration playbooks
62
+ - `figma/` — Figma exports, mappings, Code Connect notes
63
+ - `AGENTS.md` — entrypoint for AI coding agents
64
+
65
+ Docs structure (`site/`):
66
+ - `_includes/layouts/` — shared Nunjucks layouts
67
+ - `tokens/*.md` — token docs pages (Eleventy collection)
68
+ - `components/*.md` — component docs pages (Eleventy collection)
69
+ - `assets/docs.css` — docs-only styling
70
+
71
+ AI collaboration:
72
+ - `AGENTS.md` — quick entrypoint and baseline checks for agents
73
+ - `docs/agentic/assistant-behavior-rules.md` — assistant-specific guardrails
74
+ - `docs/agentic/team-ai-playbook.md` — standard AI-assisted workflows for component incubation and token roundtrips
75
+
76
+ ## Flow: Add a new component
77
+
78
+ ```text
79
+ Figma
80
+ ├─ 0) Run boundary + utility check
81
+ │ ├─ Is this a standalone component or composition of an existing one?
82
+ │ └─ Snowflake check: one-off local case vs shared cross-context utility
83
+ ├─ 1) Create/update component tokens
84
+ │ └─ figma/exports/Component.tokens.json
85
+ ├─ 2) (Optional) Add/update Code Connect mapping
86
+ │ └─ figma/connections/web-<component>.figma.ts
87
+ └─ 3) Regenerate generated artifacts
88
+ └─ npm run build:all
89
+ ├─ dist/tokens/*
90
+ ├─ dist/ui/*
91
+ ├─ dist/react/*
92
+ └─ dist/main.css
93
+
94
+ Repository implementation
95
+ ├─ 4) Add CSS pattern
96
+ │ └─ src/ui/patterns/<component>.css
97
+ ├─ 5) Export pattern in UI bundle
98
+ │ └─ src/ui/index.css
99
+ ├─ 6) Add React wrapper (if needed)
100
+ │ ├─ src/react/<component>.js
101
+ │ └─ src/react/index.js
102
+ └─ 7) Add assets (if needed)
103
+ └─ src/assets/*
104
+
105
+ Documentation + Playground
106
+ ├─ 8) Add component docs page
107
+ │ └─ site/components/<component>.md
108
+ ├─ 9) Add playground page
109
+ │ └─ site/components/<component>-playground.md
110
+ ├─ 10) Extend macros (if needed)
111
+ │ └─ site/_includes/macros/{ui.njk,playground.njk}
112
+ └─ 11) Extend playground runtime (only for new behavior)
113
+ └─ site/assets/playground/{renderers.js,state.js,code.js,shared.js}
114
+
115
+ Validation
116
+ ├─ npm run test:unit
117
+ ├─ npm run build:all
118
+ ├─ npm run docs:site
119
+ └─ npm run ci:check
120
+ ```
121
+
122
+ ## Flow: AI-assisted component incubation
123
+
124
+ This project is designed for a collaborative build loop between design and implementation, not only for one-way token export.
125
+
126
+ ```text
127
+ Collaborative loop (real-world workflow)
128
+ ├─ 0) Run boundary + utility check
129
+ │ ├─ standalone component or composition inside an existing component family
130
+ │ └─ Snowflake check: solves one local case or reusable across contexts
131
+ ├─ 1) Ask the assistant for a proposed component setup
132
+ │ ├─ component structure (HTML/CSS/React)
133
+ │ ├─ token naming proposal
134
+ │ └─ docs/playground example
135
+ ├─ 2) Review and adapt the proposal
136
+ │ └─ align names and states with your design language
137
+ ├─ 3) Create/import the proposed tokens in Figma
138
+ │ └─ refine values and variants in design
139
+ ├─ 4) Export from Figma back into this repository
140
+ │ └─ figma/exports/*.tokens.json
141
+ ├─ 5) Let the assistant integrate and align implementation
142
+ │ ├─ src/ui/patterns/<component>.css
143
+ │ ├─ src/react/<component>.js
144
+ │ ├─ site/components/<component>.md
145
+ │ ├─ site/components/<component>-playground.md
146
+ │ └─ figma/connections/web-<component>.figma.ts (if needed)
147
+ └─ 6) Validate and iterate
148
+ ├─ npm run ci:check
149
+ └─ repeat loop for naming, states, a11y, and behavior refinements
150
+ ```
151
+
152
+ Why this matters:
153
+ - It closes the gap between design intent and production implementation.
154
+ - It keeps token naming and component APIs consistent across Figma and code.
155
+ - It makes component incubation faster while staying auditable in Git.
156
+
157
+ ## Script locations
158
+
159
+ - `scripts/` — build, token extraction, validation, lint and smoke-check automation for local/CI usage
160
+ - `site/assets/playground/` — browser runtime modules for docs playground (shared helpers, state, code formatting, renderers)
161
+ - `tests/` — unit tests for extraction helpers and edge-case behavior
162
+
163
+ ## CSS variable naming
164
+
165
+ CSS custom property names are derived from `com.figma.codeSyntax.WEB`.
166
+ If a token is missing `codeSyntax.WEB`, a warning is logged and the build
167
+ falls back to an auto-derived token name.
168
+
169
+ Scopes are derived from export filenames:
170
+
171
+ - `Brand X.tokens.json` -> `:root[data-brand="x"]`
172
+ - `Mode Light.tokens.json` -> `:root`
173
+ - `Mode Dark.tokens.json` -> `:root[data-mode="dark"]`
174
+
175
+ ## Specification compliance
176
+
177
+ Generated JSON tokens follow the official Design Tokens Community Group format where applicable:
178
+
179
+ - W3C DTCG format: `https://www.designtokens.org/tr/drafts/format/`
180
+ - Export normalization maps Figma values to spec-friendly types (for example `dimension`, `fontFamily`, `fontWeight`)
181
+ - `fontWeight` values are emitted numerically in generated JSON, even if authored as strings in Figma
182
+ - Distributed JSON in `dist/tokens/json/*.json` strips `com.figma.*` metadata for cleaner consumer output
183
+ - Optional: include Figma metadata sidecars with `npm run tokens:generate -- --include-figma-metadata` (writes `*.figma.json`)
184
+
185
+ ## Quick start (local)
186
+
187
+ 1. Read the foundation rules in `docs/foundations/`
188
+ 2. Inspect source tokens in `figma/exports/` and generated tokens in `dist/tokens/`
189
+ 3. Run `npm run docs:dev`
190
+
191
+ ## Prompt to UI Component
192
+
193
+ Use this copy/paste prompt with AI when you want a new component scaffolded and implemented in this repo:
194
+
195
+ ```text
196
+ Scaffold and implement a new UI component named <component-name> in this repository.
197
+
198
+ Follow these sources strictly:
199
+ - docs/agentic/team-ai-playbook.md
200
+ - docs/agentic/assistant-behavior-rules.md
201
+ - docs/foundations/*
202
+
203
+ Execution requirements:
204
+ 1) Run the Component Boundary Check first and state the decision (composition vs standalone).
205
+ 2) Keep scope small, incremental, and reviewable in Git.
206
+ 3) Implement token-first and reuse existing patterns:
207
+ - src/ui/patterns/<component>.css
208
+ - src/react/<component>.js and src/react/index.js (if needed)
209
+ - site/components/<component>.md
210
+ - site/components/<component>-playground.md
211
+ - figma/connections/web-<component>.figma.ts (only if a publishable top-level Figma component/component-set exists)
212
+ 4) Validate before handoff:
213
+ - npm run lint
214
+ - npm run test:unit
215
+ - npm run ci:check
216
+
217
+ Mandatory progress tracker for this task type:
218
+ - Start with: Tasks completion: 0/4
219
+ - Update after each phase: 1/4, 2/4, 3/4, 4/4
220
+
221
+ Handoff format:
222
+ - boundary decision result
223
+ - files changed
224
+ - validation results
225
+ - open follow-ups (if any)
226
+ ```
227
+
228
+ ## Build (local)
229
+
230
+ 1. Optional syntax lint for JS files: `npm run lint`
231
+ 2. Optional unit tests for extractor helpers: `npm run test:unit`
232
+ 3. Generate token outputs (after Figma export updates): `npm run tokens:generate`
233
+ 4. Build CSS bundles from already generated tokens: `npm run build:css`
234
+ 5. Full refresh in one command (tokens + CSS): `npm run build:all`
235
+ 6. Run smoke checks for generated artifacts: `npm run smoke:check`
236
+ 7. Build docs: `npm run docs:site`
237
+ 8. Run CI-equivalent checks locally: `npm run ci:check`
238
+
239
+ `npm run build:css` fails if `dist/tokens/css/*.tokens.css` does not exist yet.
240
+
241
+ ## Token Pipeline Internals
242
+
243
+ `scripts/extract-tokens.js` is the orchestration entry point.
244
+
245
+ Main helper modules:
246
+ - `scripts/extract-tokens.utils.js` — parsing + normalization helpers (`readJsonLike`, `parseWebSyntax`, length/path utilities)
247
+ - `scripts/extract-tokens.lookup.js` — alias lookup + cycle/missing-target handling
248
+ - `scripts/extract-tokens.value.js` — token grouping + output value formatting
249
+ - `scripts/extract-tokens.scope.js` — scope parsing and selector/output-base normalization
250
+
251
+ Data flow:
252
+ 1. Read `figma/exports/*.tokens.json` (JSON/JSONC supported)
253
+ 2. Flatten tokens + resolve aliases across the combined lookup
254
+ 3. Assign CSS variable names from `com.figma.codeSyntax.WEB`
255
+ 4. Emit `dist/tokens/{css,json,ts}` and `dist/tokens/tokens.yaml`
256
+
257
+ Fallback behavior:
258
+ - Missing or invalid `com.figma.codeSyntax.WEB` values fall back to auto-derived CSS variable names and are reported in the extract summary.
259
+ - Missing alias targets and alias cycles fall back to literal values and are reported.
@@ -0,0 +1,5 @@
1
+ # Fonts Assets
2
+
3
+ Place self-hosted font files here (for example: `.woff2`, `.woff`, `.ttf`).
4
+
5
+ This folder is copied to `dist/assets/fonts` during `npm run build:css`.
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3.73201 15.5492C1.77181 10.9832 3.88441 5.6922 8.45021 3.732C13.0166 1.7718 18.3076 3.884 20.268 8.45C22.2284 13.0166 20.1154 18.3078 15.5494 20.268C10.9834 22.2282 5.69261 20.116 3.73201 15.5492Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M15.8 6.0284H18.5934C18.666 6.0284 18.6282 5.873 18.6282 5.8154V5.025L18.6284 3.3326V3.2M8.23796 18H5.44456C5.37196 18 5.40976 18.1554 5.40976 18.213V20.8284M9.99996 11.3764C9.99996 10.2848 10.8956 9.4 12 9.4C13.1044 9.4 14 10.2848 14 11.3764C14 13.4 12 15 12 15C12 15 9.99996 13.4 9.99996 11.3764Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.99995 11.4C9.99995 10.2954 10.8952 9.40001 12 9.40001C13.1046 9.40001 14 10.2954 14 11.4C14 12.5046 13.1046 13.4 12 13.4C10.8952 13.4 9.99995 12.5046 9.99995 11.4Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17 16.1764C17 15.0848 17.8956 14.2 19 14.2C20.1044 14.2 21 15.0848 21 16.1764C21 18.2 19 19.8 19 19.8C19 19.8 17 18.2 17 16.1764ZM3 9.953C3 6.4444 5.8654 3.6 9.4 3.6C12.9346 3.6 15.8 6.4444 15.8 9.953C15.8 13.4614 9.4 21.6 9.4 21.6C9.4 21.6 3 13.4614 3 9.953Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M9.40001 10.2C9.84183 10.2 10.2 9.84182 10.2 9.39999C10.2 8.95817 9.84183 8.59999 9.40001 8.59999C8.95818 8.59999 8.60001 8.95817 8.60001 9.39999C8.60001 9.84182 8.95818 10.2 9.40001 10.2Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5.60001 9.353C5.60001 5.8444 8.46541 3 12 3C15.5346 3 18.4 5.8444 18.4 9.353C18.4 12.8614 12 21 12 21C12 21 5.60001 12.8614 5.60001 9.353Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12 9.6C12.4419 9.6 12.8 9.24183 12.8 8.8C12.8 8.35817 12.4419 8 12 8C11.5582 8 11.2 8.35817 11.2 8.8C11.2 9.24183 11.5582 9.6 12 9.6Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5 10.0096H19V19.4C19 19.8243 18.8314 20.2313 18.5314 20.5314C18.2313 20.8314 17.8243 21 17.4 21H6.6C6.17565 21 5.76869 20.8314 5.46863 20.5314C5.16857 20.2313 5 19.8243 5 19.4V10.0096ZM8 5C8 3.9 8.9 3 10 3H14C15.1 3 16 3.9 16 5V10L8.022 10.0096L8 5Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M15.0238 12.9774L12 18L10 16L12 17.2304L15.0238 12.9774Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 18V14M5 10.0096H19V19.4C19 19.8243 18.8314 20.2313 18.5314 20.5314C18.2313 20.8314 17.8243 21 17.4 21H6.6C6.17565 21 5.76869 20.8314 5.46863 20.5314C5.16857 20.2313 5 19.8243 5 19.4V10.0096ZM8 5C8 3.9 8.9 3 10 3H14C15.1 3 16 3.9 16 5V10L8.022 10.0096L8 5Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12 14.6C12.4418 14.6 12.8 14.2418 12.8 13.8C12.8 13.3582 12.4418 13 12 13C11.5582 13 11.2 13.3582 11.2 13.8C11.2 14.2418 11.5582 14.6 12 14.6Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5 10.0096H19V19.4C19 19.8243 18.8314 20.2313 18.5314 20.5314C18.2313 20.8314 17.8243 21 17.4 21H6.6C6.17565 21 5.76869 20.8314 5.46863 20.5314C5.16857 20.2313 5 19.8243 5 19.4V10.0096Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M8 5C8 3.9 8.9 3 10 3H14C15.1 3 16 3.9 16 5V10L8.012 10.0108M12 18V14" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M12 14.6C12.4418 14.6 12.8 14.2418 12.8 13.8C12.8 13.3582 12.4418 13 12 13C11.5582 13 11.2 13.3582 11.2 13.8C11.2 14.2418 11.5582 14.6 12 14.6Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 18V21H18V3H6V6" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M6 9L9 12M9 12L6 15M9 12H3" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.8 6V3H5.79999V21H17.8V18M17.8 9L20.8 12M20.8 12L17.8 15M20.8 12H14.8" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15 15.4196C16.1974 14.7092 17 13.4032 17 11.9098C17 10.4164 16.1974 9.1106 15 8.4M17.6 18C19.647 16.7852 21.019 14.5528 21.019 12C21.019 9.4472 19.647 7.2148 17.6 6M7 8L12 3V21L7 16H3V8H7Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 19C4.10218 19 3.72064 18.842 3.43934 18.5607C3.15804 18.2794 3 17.8978 3 17.5V10.5C3 10.1022 3.15804 9.72064 3.43934 9.43934C3.72064 9.15803 4.10218 9 4.5 9C4.89782 9 5.27936 9.15803 5.56066 9.43934C5.84196 9.72064 6 10.1022 6 10.5V16H18V10.5C18 10.1022 18.158 9.72064 18.4393 9.43934C18.7206 9.15803 19.1022 9 19.5 9C19.8978 9 20.2794 9.15803 20.5607 9.43934C20.842 9.72064 21 10.1022 21 10.5V17.5C21 17.8894 20.8486 18.2636 20.5777 18.5433C20.3068 18.8231 19.9378 18.9866 19.5486 18.9992L19.5 19H4.5Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M7.6 3H16.4C16.8243 3 17.2313 3.16857 17.5314 3.46863C17.8314 3.76869 18 4.17565 18 4.6V16H6V4.6C6 4.17565 6.16857 3.76869 6.46863 3.46863C6.76869 3.16857 7.17565 3 7.6 3Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M6 19V21M18 19V21M7.6 13H16.4C16.8243 13 17.2313 13.1686 17.5314 13.4686C17.8314 13.7687 18 14.1757 18 14.6V16H6V14.6C6 14.1757 6.16857 13.7687 6.46863 13.4686C6.76869 13.1686 7.17565 13 7.6 13Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3 6.802C2.99995 6.59166 3.04133 6.38337 3.12178 6.18902C3.20223 5.99467 3.32018 5.81807 3.46889 5.66931C3.61759 5.52055 3.79415 5.40254 3.98846 5.32201C4.18278 5.24149 4.39106 5.20003 4.6014 5.2H19.3986C19.609 5.19982 19.8174 5.24113 20.0118 5.32158C20.2062 5.40203 20.3828 5.52004 20.5316 5.66884C20.6803 5.81765 20.7983 5.99433 20.8787 6.18877C20.959 6.38321 21.0003 6.5916 21 6.802V19.398C21.0001 19.6083 20.9587 19.8166 20.8782 20.011C20.7978 20.2053 20.6798 20.3819 20.5311 20.5307C20.3824 20.6795 20.2059 20.7975 20.0115 20.878C19.8172 20.9585 19.6089 21 19.3986 21H4.6014C4.391 21.0002 4.18263 20.9589 3.98822 20.8784C3.7938 20.798 3.61717 20.68 3.46842 20.5312C3.31967 20.3824 3.20173 20.2057 3.12135 20.0112C3.04098 19.8168 2.99974 19.6084 3 19.398V6.802Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M20.8 6.175L18.6454 10.709C18.289 11.422 17.2854 12 16.4002 12H7.60001C6.71641 12 5.72801 11.4164 5.39101 10.694L3.20001 6.175M8.00001 12V15M16 12V15M8.80001 5.2H15.2C15.2 5.2 15.2 2.788 12 2.8C8.80001 2.8122 8.80001 5.2 8.80001 5.2Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M16.1506 21.9108H7.87864C7.45429 21.9108 7.04732 21.7422 6.74727 21.4422C6.44721 21.1421 6.27864 20.7351 6.27864 20.3108V6.0644C6.27864 5.64005 6.44721 5.23309 6.74727 4.93303C7.04732 4.63297 7.45429 4.4644 7.87864 4.4644H16.1506C16.575 4.4644 16.9819 4.63297 17.282 4.93303C17.5821 5.23309 17.7506 5.64005 17.7506 6.0644V20.3108C17.7506 20.7351 17.5821 21.1421 17.282 21.4422C16.9819 21.7422 16.575 21.9108 16.1506 21.9108Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12.1118 11.2212V13.8052M17.7506 6.8984L15.617 10.446C15.4747 10.6825 15.2737 10.8783 15.0334 11.0141C14.7932 11.15 14.5218 11.2214 14.2458 11.2214H9.774C9.50045 11.2214 9.23146 11.1512 8.99274 11.0176C8.75401 10.8841 8.55352 10.6915 8.4104 10.4584L6.2786 6.9854V6.0644C6.2786 5.64005 6.44717 5.23308 6.74723 4.93303C7.04729 4.63297 7.45425 4.4644 7.8786 4.4644H16.1506C16.5749 4.4644 16.9819 4.63297 17.282 4.93303C17.582 5.23308 17.7506 5.64005 17.7506 6.0644V6.8984ZM19.2292 21.3986H17.7506V14.826H19.2292C19.6535 14.826 20.0605 14.9946 20.3606 15.2946C20.6606 15.5947 20.8292 16.0017 20.8292 16.426V19.7986C20.8292 20.2229 20.6606 20.6299 20.3606 20.93C20.0605 21.23 19.6535 21.3986 19.2292 21.3986ZM6.2786 21.3986H4.8C4.37565 21.3986 3.96869 21.23 3.66863 20.93C3.36857 20.6299 3.2 20.2229 3.2 19.7986V16.426C3.2 16.0017 3.36857 15.5947 3.66863 15.2946C3.96869 14.9946 4.37565 14.826 4.8 14.826H6.2786V21.3986ZM14.2876 4.4644H9.936V3.9056C9.936 3.45324 10.1157 3.01942 10.4356 2.69956C10.7554 2.37969 11.1892 2.2 11.6416 2.2H12.582C13.0344 2.2 13.4682 2.37969 13.788 2.69956C14.1079 3.01942 14.2876 3.45324 14.2876 3.9056V4.4644Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M18 7V21H6V7" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M6 7.0032L9 12.0032H15C15 12.0032 18.15 6.8532 18 7.0032M12 21V15" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M3 12.0001L6 7.00006H18L21 12.0001" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13 6C13 8.7614 15.2386 11 18 11M13 6H4.6014C3.7168 6 3 6.716 3 7.5992V18.4008C3 19.284 3.717 20 4.6014 20H19.3986C20.2832 20 21 19.284 21 18.4008V10.0002C20.1352 10.6507 19.0821 11.0017 18 11M13 6H9V3L13.9998 2.9998C13.3493 3.86461 12.9983 4.91785 13 6ZM18 11V21M6 6V21M15.5 6H20.5M18 3.5V8.5" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M18 11C20.7614 11 23 8.76142 23 6C23 3.23858 20.7614 1 18 1C15.2386 1 13 3.23858 13 6C13 8.76142 15.2386 11 18 11Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M15 10V17C13.8954 17 13 17.8956 13 19C13 19.3644 13.0974 19.706 13.2678 20.0002L10 20C8.9 20 8 19.1 8 18V10H15Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M15 11V5L17 3M9 10V8H8M11 10V6H10M13 10V7.2M13 19C13 17.8956 13.8954 17 15 17C16.1046 17 17 17.8956 17 19C17 20.1044 16.1046 21 15 21C13.8954 21 13 20.1044 13 19Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M18 23C20.7614 23 23 20.7614 23 18C23 15.2386 20.7614 13 18 13C15.2386 13 13 15.2386 13 18C13 20.7614 15.2386 23 18 23Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M20.0622 10C20.502 11.2162 20.8014 12.5452 20.9296 13.9476C20.0777 13.3301 19.0521 12.9983 18 13C15.2386 13 13 15.2386 13 18C12.9983 19.0821 13.3493 20.1352 13.9998 21H3.9376C3.3384 19.3428 3 17.4762 3 15.5C3 13.5856 3.3176 11.774 3.8822 10.156L3.9376 10H20.0622Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M15 14V10C15 10 15 3 12 3C9 3 9 10 9 10V21M18 16V20M20 18H16" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3.9376 10C3.3384 11.6572 3 13.5238 3 15.5C3 17.4762 3.3384 19.3428 3.9376 21H20.0622C20.6614 19.3428 21 17.4762 21 15.5C21 13.5238 20.6614 11.6572 20.0622 10H3.9376Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M15 21V10C15 10 15 3 12 3C9 3 9 10 9 10V21" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3 21H21V3H3V21Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M14 10.8H18V18H14V10.8Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M8 18C9.10457 18 10 17.1046 10 16C10 14.8954 9.10457 14 8 14C6.89543 14 6 14.8954 6 16C6 17.1046 6.89543 18 8 18Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M11 9V11M4 6H20.8M6 9H9.4L10 9.4H11V10.6H10L9.4 11H6V9ZM15 9.2H17V10.8H15V9.2ZM5.2 5.2H6.8V6.8H5.2V5.2Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 20V21M18 20V21M18 6V18M3 3L21 21M3 7.5992C3 6.716 3.7168 6 4.6014 6H19.3986C20.283 6 21 6.716 21 7.5992V18.4008C21 19.284 20.2832 20 19.3986 20H4.6014C3.717 20 3 19.284 3 18.4008V7.5992ZM9 3H15V6H9V3Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M21 13.9996C20.1352 13.3492 19.0821 12.9983 18 13C15.2386 13 13 15.2386 13 18C13 18.7112 13.1484 19.3876 13.416 20H4.6014C3.717 20 3 19.284 3 18.4008V7.5992C3 6.716 3.7168 6 4.6014 6H19.3986C20.283 6 21 6.716 21 7.5992V13.9996Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M18 23C20.7614 23 23 20.7614 23 18C23 15.2386 20.7614 13 18 13C15.2386 13 13 15.2386 13 18C13 20.7614 15.2386 23 18 23Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M18 16V20M20 18H16M9 6V3H15V6M6 6V21M18 6V13" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M15 10V17C13.8954 17 13 17.8956 13 19C13 19.3644 13.0974 19.706 13.2678 20.0002L10 20C8.9 20 8 19.1 8 18V10H15Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M15 11V5L17 3M9 10V8H8M11 10V6H10M13 10V7.2M13 19C13 17.8956 13.8954 17 15 17C16.1046 17 17 17.8956 17 19C17 20.1044 16.1046 21 15 21C13.8954 21 13 20.1044 13 19Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M13 6C13 8.7338 15.194 10.9552 17.9174 10.9994L18 11V18.4008C18.0001 18.6109 17.9588 18.8189 17.8784 19.0131C17.7981 19.2072 17.6802 19.3835 17.5316 19.5321C17.383 19.6806 17.2066 19.7984 17.0125 19.8787C16.8184 19.9589 16.6103 20.0002 16.4002 20H7.6C7.38993 20.0001 7.1819 19.9588 6.9878 19.8784C6.79369 19.7981 6.61732 19.6803 6.46874 19.5318C6.32016 19.3833 6.20229 19.207 6.12186 19.0129C6.04144 18.8189 6.00003 18.6109 6 18.4008V7.5992C5.99989 7.38911 6.04121 7.18106 6.12157 6.98695C6.20194 6.79284 6.31979 6.61648 6.46837 6.46795C6.61696 6.31942 6.79336 6.20164 6.9875 6.12135C7.18164 6.04105 7.38971 5.99982 7.5998 6H13Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M9 21V3L13.9998 2.9998C13.3493 3.86461 12.9983 4.91785 13 6C13 7.6358 13.7856 9.088 15 10.0002V21M12 20V6M15.5 6H20.5M18 3.5V8.5" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M18 11C20.7614 11 23 8.76142 23 6C23 3.23858 20.7614 1 18 1C15.2386 1 13 3.23858 13 6C13 8.76142 15.2386 11 18 11Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M16.4002 6C16.6103 5.99995 16.8183 6.04127 17.0123 6.12161C17.2064 6.20196 17.3828 6.31974 17.5313 6.46824C17.6799 6.61674 17.7977 6.79305 17.8782 6.98711C17.9586 7.18116 18 7.38915 18 7.5992V18.4008C18.0001 18.6109 17.9588 18.8189 17.8784 19.0131C17.7981 19.2072 17.6802 19.3835 17.5316 19.5321C17.383 19.6806 17.2066 19.7984 17.0125 19.8787C16.8184 19.9589 16.6103 20.0002 16.4002 20H7.6C7.38993 20.0001 7.1819 19.9588 6.9878 19.8784C6.79369 19.7981 6.61732 19.6803 6.46874 19.5318C6.32016 19.3833 6.20229 19.207 6.12186 19.0129C6.04144 18.8189 6.00003 18.6109 6 18.4008V7.5992C5.99989 7.38911 6.04121 7.18106 6.12157 6.98695C6.20194 6.79284 6.31979 6.61648 6.46837 6.46795C6.61696 6.31942 6.79336 6.20164 6.9875 6.12135C7.18164 6.04105 7.38971 5.99982 7.5998 6H16.4002Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M9 21V3H15V21M12 19.6V6.2" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13 6C13 8.7338 15.194 10.9552 17.9174 10.9994L18 11V18.4008C18.0001 18.6109 17.9588 18.8189 17.8784 19.0131C17.7981 19.2072 17.6802 19.3835 17.5316 19.5321C17.383 19.6806 17.2066 19.7984 17.0125 19.8787C16.8184 19.959 16.6103 20.0002 16.4002 20H7.6C7.38993 20.0001 7.1819 19.9588 6.9878 19.8784C6.79369 19.7981 6.61732 19.6803 6.46874 19.5318C6.32016 19.3833 6.20229 19.207 6.12186 19.0129C6.04144 18.8189 6.00003 18.6109 6 18.4008V7.5992C5.99989 7.38911 6.04121 7.18106 6.12157 6.98695C6.20194 6.79284 6.31979 6.61648 6.46837 6.46795C6.61696 6.31942 6.79336 6.20164 6.9875 6.12135C7.18164 6.04105 7.38971 5.99982 7.5998 6H13ZM13 6H10V3L13.9998 2.9998C13.3493 3.86461 12.9983 4.91785 13 6ZM14 9H6" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M18 11C20.7614 11 23 8.76142 23 6C23 3.23858 20.7614 1 18 1C15.2386 1 13 3.23858 13 6C13 8.76142 15.2386 11 18 11Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M18 17H6M8.1 20.1V21.7M15.9 20.1V21.7M15.5 6H20.5M18 3.5V8.5" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M18 9H6M18 17H6M8.1 20.1V21.7M15.9 20.1V21.7M10 3H14V6H10V3ZM7.6 6H16.4C16.8243 6 17.2313 6.16857 17.5314 6.46863C17.8314 6.76869 18 7.17565 18 7.6V18.4C18 18.8243 17.8314 19.2313 17.5314 19.5314C17.2313 19.8314 16.8243 20 16.4 20H7.6C7.17565 20 6.76869 19.8314 6.46863 19.5314C6.16857 19.2313 6 18.8243 6 18.4V7.6C6 7.17565 6.16857 6.76869 6.46863 6.46863C6.76869 6.16857 7.17565 6 7.6 6Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M20.028 21H3.98039C2.71219 17.5812 2.67299 13.765 3.87059 10.316L3.98039 10H20.028C21.2964 13.4526 21.3244 17.3014 20.1066 20.776L20.028 21ZM12.001 3C8.82099 3 9.00179 10 9.00179 10H15C15 10 14.9946 3 12.001 3Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M7.99997 18V16M16 18V16M4.30797 10L4.10357 10.8212C3.81117 11.9976 4.15057 13.2696 4.95837 14.0214L8.15697 17H15.7264L19.0168 14.0156C19.8402 13.2686 20.1914 11.9858 19.8974 10.7974L19.7004 10H4.30797Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 6V21M18 6V21M3 7.5992C3 6.716 3.7168 6 4.6014 6H19.3986C20.283 6 21 6.716 21 7.5992V18.4008C21 19.284 20.2832 20 19.3986 20H4.6014C3.717 20 3 19.284 3 18.4008V7.5992ZM9 3H15V6H9V3Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3 13L9 18H21M21 21L19 18M19 17H10M7 15L4.8 13M12.839 8.3752L8 21M19.728 11.1216L16.2004 9.6696L9.6884 6.9896L6.1612 5.5382C7.0916 3.2768 10.7406 2.1202 14.8108 3.7954C18.8808 5.4704 20.6586 8.8604 19.728 11.1214V11.1216Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M9.83798 7.05139C9.83798 7.05139 10.486 5.82299 11.7466 5.07279C13.0074 4.32239 14.8114 3.79439 14.8114 3.79439M14.8114 3.79439L15.034 3.25279M14.8114 3.79439C14.8114 3.79439 15.7208 5.43899 16.0882 6.85959C16.4554 8.27979 16.2006 9.66999 16.2006 9.66999" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4 6H8M16 6H20M8 3V13.2H8.005C8.109 15.3162 9.858 17 12 17C14.142 17 15.8908 15.3162 15.995 13.2H16V3H20V13C20 17.4182 16.4182 21 12 21C7.626 21 4.0718 17.4896 4.001 13.1322L4 13V3H8Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M3 19.6H21V6H3V19.6Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M21 6L12 15.0666L3 6" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.10001 22.3L3.10001 18.3V4.3L9.10001 8.3M9.10001 22.3V8.3M9.10001 22.3L15.1 18.3M9.10001 8.3L15.1 4.3M15.1 4.3V18.3M15.1 4.3L21.1 8.3V22.3L15.1 18.3" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M20 17C20 12 17 8 12 8C7 8 4 12 4 17H20Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12 7C13.1046 7 14 6.10457 14 5C14 3.89543 13.1046 3 12 3C10.8954 3 10 3.89543 10 5C10 6.10457 10.8954 7 12 7Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M12 7.8V5.8M2 19H22C20.6666 19 19.3334 19.6666 18 21H6C4.6666 19.6666 3.3334 19 2 19Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16 17V7C14 7 14 12 14 12C16 12 16 14 16 14M11 7.2V10C11 11 9 11 9 12C9 11 7 11 7 10V7.2" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M9 7V17" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.2094 13.8142L3 6L6 3H18L21 6L15.7954 13.807" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12 12C9.5152 12 7.5 14.0148 7.5 16.5C7.5 18.9852 9.5152 21 12 21C14.485 21 16.5 18.9852 16.5 16.5C16.5 14.0148 14.485 12 12 12ZM12 12L18 3M12 12L6 3M13.5 16.5C13.5 16.8978 13.342 17.2794 13.0607 17.5607C12.7794 17.842 12.3978 18 12 18M15.2 7.1H8.8" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5 16H2V8H5M5 16V8M5 16H7.6C9.8666 16 12.3334 17.6666 15 21V3C12.3334 6.3334 9.8666 8 7.6 8H5" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6.60001 18L6.20001 16H7.60001V18H6.60001Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M18 12H22M18 8.99999L21 7.39999M18 15L21 16.6M3 16H6.2L7.2 21H8H4L3 16Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 7.60001H18M9 12H15M11 16.4H13" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 7.60001H18M6 12H18M6 16.4H18" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 6.2V12.4M12 15.4V15.2M17.1818 17.5388C19.4904 16.0906 21 13.7026 21 11C21 6.5816 16.9698 3 12 3C7.0304 3 3 6.5816 3 11C3 15.4182 7.0304 19 12 19C12.4462 19 12.8846 18.9698 13.3134 18.9142C14.6608 20.2052 16.4872 21 18.5 21C19.3768 21 20.218 20.848 21 20.5714C19.4146 20.0108 18.0746 18.9318 17.1818 17.5388Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17.1818 17.5388C19.4904 16.0906 21 13.7026 21 11C21 6.5816 16.9698 3 12 3C7.0304 3 3 6.5816 3 11C3 15.4182 7.0304 19 12 19C12.4462 19 12.8846 18.9698 13.3134 18.9142C14.6608 20.2052 16.4872 21 18.5 21C19.3768 21 20.218 20.848 21 20.5714C19.4146 20.0108 18.0746 18.9318 17.1818 17.5388Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M12 15V10H11M10 15H14M12.8 7C12.8 6.78782 12.7157 6.58434 12.5657 6.43431C12.4157 6.28428 12.2122 6.2 12 6.2C11.7878 6.2 11.5843 6.28428 11.4343 6.43431C11.2843 6.58434 11.2 6.78782 11.2 7C11.2 7.21217 11.2843 7.41565 11.4343 7.56568C11.5843 7.71571 11.7878 7.8 12 7.8C12.2122 7.8 12.4157 7.71571 12.5657 7.56568C12.7157 7.41565 12.8 7.21217 12.8 7Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17.1818 17.5388C19.4904 16.0906 21 13.7026 21 11C21 6.5816 16.9698 3 12 3C7.0304 3 3 6.5816 3 11C3 15.4182 7.0304 19 12 19C12.4462 19 12.8846 18.9698 13.3134 18.9142C14.6608 20.2052 16.4872 21 18.5 21C19.3768 21 20.218 20.848 21 20.5714C19.4146 20.0108 18.0746 18.9318 17.1818 17.5388Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M13.6556 7.60001C13.3537 7.59972 13.0559 7.66988 12.7858 7.8049C12.5158 7.93993 12.2809 8.13609 12.1 8.37781C11.9191 8.13614 11.6843 7.94001 11.4143 7.80499C11.1443 7.66997 10.8465 7.59978 10.5446 7.60001C9.47061 7.60001 8.60001 8.47061 8.60001 9.54461C8.60001 11.1 12.1 14.6 12.1 14.6C12.1 14.6 15.6 11.1 15.6 9.54461C15.6 8.47061 14.7292 7.60001 13.6556 7.60001Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 7.5V5.5M12 7.5C12.8284 7.5 14 8.1716 14 9C14 10.5 15.5 10.5 15.5 13.5H8.5C8.5 10.5 10 10.5 10 9C10 8.1716 11.1716 7.5 12 7.5ZM13 15C12.744 15.309 12.3906 15.5 12 15.5C11.6094 15.5 11.256 15.309 11 15" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5 3H19C20.1378 3 21 3.8622 21 5V16C21 17.1378 20.0778 18.06 18.94 18.06H10.7L6 22.8V18H5.085C3.9472 18 3.025 17.0778 3.025 15.94L3 5C3 3.8622 3.8622 3 5 3Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17.1818 17.5388C19.4904 16.0906 21 13.7026 21 11C21 6.5816 16.9698 3 12 3C7.0304 3 3 6.5816 3 11C3 15.4182 7.0304 19 12 19C12.4462 19 12.8846 18.9698 13.3134 18.9142C14.6608 20.2052 16.4872 21 18.5 21C19.3768 21 20.218 20.848 21 20.5714C19.4146 20.0108 18.0746 18.9318 17.1818 17.5388Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M7.39999 11C7.39999 10.7878 7.48428 10.5843 7.63431 10.4343C7.78434 10.2843 7.98782 10.2 8.19999 10.2C8.41217 10.2 8.61565 10.2843 8.76568 10.4343C8.91571 10.5843 8.99999 10.7878 8.99999 11C8.99999 11.2122 8.91571 11.4157 8.76568 11.5657C8.61565 11.7157 8.41217 11.8 8.19999 11.8C7.98782 11.8 7.78434 11.7157 7.63431 11.5657C7.48428 11.4157 7.39999 11.2122 7.39999 11ZM11.4 11C11.4 10.7878 11.4843 10.5843 11.6343 10.4343C11.7843 10.2843 11.9878 10.2 12.2 10.2C12.4122 10.2 12.6157 10.2843 12.7657 10.4343C12.9157 10.5843 13 10.7878 13 11C13 11.2122 12.9157 11.4157 12.7657 11.5657C12.6157 11.7157 12.4122 11.8 12.2 11.8C11.9878 11.8 11.7843 11.7157 11.6343 11.5657C11.4843 11.4157 11.4 11.2122 11.4 11ZM15.4 11C15.4 10.7878 15.4843 10.5843 15.6343 10.4343C15.7843 10.2843 15.9878 10.2 16.2 10.2C16.4122 10.2 16.6157 10.2843 16.7657 10.4343C16.9157 10.5843 17 10.7878 17 11C17 11.2122 16.9157 11.4157 16.7657 11.5657C16.6157 11.7157 16.4122 11.8 16.2 11.8C15.9878 11.8 15.7843 11.7157 15.6343 11.5657C15.4843 11.4157 15.4 11.2122 15.4 11Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.1818 17.5388C19.4904 16.0906 21 13.7026 21 11C21 6.5816 16.9698 3 12 3C7.0304 3 3 6.5816 3 11C3 15.4182 7.0304 19 12 19C12.4462 19 12.8846 18.9698 13.3134 18.9142C14.6608 20.2052 16.4872 21 18.5 21C19.3768 21 20.218 20.848 21 20.5714C19.4146 20.0108 18.0746 18.9318 17.1818 17.5388Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 9C6 7.3432 7.3432 6 9 6M3 9C3 5.6864 5.6864 3.0002 9.0002 3C12.3136 3 15 5.686 15 9C15.0002 12.314 12.3136 15 9.0002 15C5.6864 15 3 12.3136 3 9Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M15.2428 11L19.6502 16.5094C20.3374 17.3684 20.2634 18.7074 19.4854 19.4852C18.7074 20.2628 17.3684 20.3372 16.5094 19.65L11 15.2426M20 20C20.6482 20.6354 21.0502 22.0208 21.0502 23" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.0044 19.6C11.8154 19.6 11.7572 19.586 11.5804 19.5358C11.703 19.1922 11.6388 18.811 11.6372 18.4402C11.6372 18.2446 11.6156 18.045 11.5806 17.8466C11.5386 17.6028 11.3334 17.0058 11.3072 16.948C10.9746 16.2234 10.4362 15.6584 9.80005 15.328C10.1882 14.3074 11.0294 13.6 12.0044 13.6C12.9722 13.6 13.808 14.2964 14.2 15.305L14.1786 15.3158C13.5344 15.6446 12.9878 16.2148 12.6518 16.9506C12.6262 17.0078 12.4198 17.604 12.3774 17.848C12.343 18.0464 12.3216 18.246 12.3216 18.442C12.3202 18.817 12.2528 19.1892 12.3776 19.5358C12.2438 19.5786 12.1196 19.6 12.0044 19.6Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M16.1024 15C16.115 14.874 16.1222 14.747 16.1222 14.6186C16.1222 14.2906 16.0782 13.9724 16.0032 13.6666C17.0456 13.8794 17.941 14.1616 18.602 14.4814C18.8029 14.577 19.0226 14.6267 19.2452 14.6268C19.7888 14.6268 20.3102 14.3314 20.5652 13.8232C21.0218 12.9118 20.8204 12.3416 19.8916 11.9012C18.6896 11.3316 17.2112 10.9166 15.5556 10.67C16.1686 9.908 16.5374 8.9488 16.5374 7.9024C16.5361 7.64289 16.5118 7.38401 16.4648 7.1288C17.3746 6.72 18.0098 5.8264 18.0098 4.7838C18.0098 3.3562 16.8274 2.2012 15.3692 2.2002C14.898 2.19965 14.4353 2.32526 14.029 2.564C13.6228 2.80274 13.2879 3.14588 13.0592 3.5578C12.6987 3.46887 12.3289 3.42322 11.9576 3.4218C11.5778 3.4218 11.2096 3.4718 10.8556 3.5586C10.6271 3.14645 10.2924 2.80304 9.8863 2.5641C9.48015 2.32517 9.01739 2.19944 8.54617 2.2C7.08657 2.2012 5.90617 3.356 5.90477 4.7836C5.90577 5.826 6.54037 6.72 7.45057 7.1284C7.40258 7.38363 7.37794 7.6427 7.37697 7.9024C7.37697 8.9476 7.74537 9.9074 8.35837 10.6698C6.70397 10.9164 5.22517 11.3308 4.02277 11.8996C3.29477 12.2478 2.99357 13.1086 3.34877 13.822C3.70577 14.5326 4.58357 14.8272 5.31237 14.48C5.97237 14.16 6.86837 13.8784 7.90997 13.6654C7.83202 13.9766 7.79193 14.2961 7.79057 14.617C7.79057 14.746 7.79897 14.8714 7.81017 14.9976" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12 11.6C13.1046 11.6 14 10.7046 14 9.59999C14 8.49539 14 7.59999 12 7.59999C10 7.59999 10 8.49539 10 9.59999C10 10.7046 10.8954 11.6 12 11.6ZM8.24762 15.4886C9.57682 15.1194 10.9432 15.9372 11.2996 17.3154L11.5144 18.1474C11.8706 19.5254 11.0818 20.942 9.75242 21.3114C8.42322 21.6806 7.05682 20.8628 6.70042 19.4846L6.48562 18.6526C6.12942 17.2746 6.91822 15.858 8.24762 15.4886ZM15.9524 15.4886C17.2818 15.858 18.0706 17.2746 17.7144 18.6526L17.4994 19.4846C17.1434 20.8626 15.7768 21.6806 14.4474 21.3114C13.1182 20.942 12.3294 19.5254 12.6854 18.1474L12.9006 17.3154C13.2566 15.9374 14.623 15.1194 15.9524 15.4886Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 6L3 12L9 18M11 7.6H18M11 16.4H18" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M7 12H17" stroke="#9747FF" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>