@hanzo/ui 0.5.23 → 0.6.15

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 (568) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.prettierrc +22 -0
  3. package/.rush/temp/chunked-rush-logs/ui._phase_build.chunks.jsonl +2 -0
  4. package/.rush/temp/chunked-rush-logs/ui._phase_validate.chunks.jsonl +11 -0
  5. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.tar.log +12 -0
  6. package/.rush/temp/hcengineering+ui-_phase_build-16380278e5d28b32a6666092bd103ddbd2c66a56.untar.log +10 -0
  7. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.tar.log +65 -0
  8. package/.rush/temp/hcengineering+ui-_phase_validate-8f047ca66e6a4a177eee65782e723a7dc128d73e.untar.log +10 -0
  9. package/.rush/temp/operation/_phase_build/all.log +2 -0
  10. package/.rush/temp/operation/_phase_build/log-chunks.jsonl +2 -0
  11. package/.rush/temp/operation/_phase_build/state.json +3 -0
  12. package/.rush/temp/operation/_phase_validate/all.log +11 -0
  13. package/.rush/temp/operation/_phase_validate/log-chunks.jsonl +11 -0
  14. package/.rush/temp/operation/_phase_validate/state.json +3 -0
  15. package/.rush/temp/shrinkwrap-deps.json +585 -0
  16. package/.validate/tsBuildInfoFile.info +1 -0
  17. package/.validate/validate-err.log +0 -0
  18. package/.validate/validate.log +0 -0
  19. package/CHANGELOG.json +17 -0
  20. package/CHANGELOG.md +9 -0
  21. package/config/rig.json +5 -0
  22. package/jest.config.js +5 -0
  23. package/lang/cs.json +119 -0
  24. package/lang/de.json +119 -0
  25. package/lang/en.json +120 -0
  26. package/lang/es.json +120 -0
  27. package/lang/fr.json +120 -0
  28. package/lang/it.json +120 -0
  29. package/lang/pt.json +120 -0
  30. package/lang/ru.json +120 -0
  31. package/lang/zh.json +120 -0
  32. package/package.json +52 -100
  33. package/postcss.config.js +5 -0
  34. package/rush-logs/ui._phase_build.cache.log +4 -0
  35. package/rush-logs/ui._phase_build.log +2 -0
  36. package/rush-logs/ui._phase_validate.cache.log +4 -0
  37. package/rush-logs/ui._phase_validate.log +11 -0
  38. package/src/__test__/location.test.ts +12 -0
  39. package/src/colors.ts +552 -0
  40. package/src/components/AccordionItem.svelte +132 -0
  41. package/src/components/ActionIcon.svelte +88 -0
  42. package/src/components/BarDashboard.svelte +47 -0
  43. package/src/components/BooleanIcon.svelte +31 -0
  44. package/src/components/Breadcrumb.svelte +102 -0
  45. package/src/components/Breadcrumbs.svelte +73 -0
  46. package/src/components/Button.svelte +196 -0
  47. package/src/components/ButtonBase.svelte +117 -0
  48. package/src/components/ButtonGroup.svelte +48 -0
  49. package/src/components/ButtonIcon.svelte +63 -0
  50. package/src/components/ButtonMenu.svelte +103 -0
  51. package/src/components/ButtonWithDropdown.svelte +120 -0
  52. package/src/components/CheckBox.svelte +239 -0
  53. package/src/components/CheckBoxList.svelte.txt +88 -0
  54. package/src/components/CheckBoxWithLabel.svelte.txt +147 -0
  55. package/src/components/Chevron.svelte +85 -0
  56. package/src/components/Chip.svelte +109 -0
  57. package/src/components/CircleButton.svelte +165 -0
  58. package/src/components/CodeForm.svelte +164 -0
  59. package/src/components/CodeInput.svelte +86 -0
  60. package/src/components/ColorPopup.svelte +119 -0
  61. package/src/components/Component.svelte +152 -0
  62. package/src/components/Dialog.svelte +105 -0
  63. package/src/components/Dock.svelte +53 -0
  64. package/src/components/Dropdown.svelte +91 -0
  65. package/src/components/DropdownLabels.svelte +156 -0
  66. package/src/components/DropdownLabelsIntl.svelte +108 -0
  67. package/src/components/DropdownLabelsPopup.svelte +148 -0
  68. package/src/components/DropdownLabelsPopupIntl.svelte +72 -0
  69. package/src/components/DropdownPopup.svelte +146 -0
  70. package/src/components/DropdownRecord.svelte +50 -0
  71. package/src/components/DropdownRecordPopup.svelte +82 -0
  72. package/src/components/EditBox.svelte +211 -0
  73. package/src/components/EditWithIcon.svelte +130 -0
  74. package/src/components/EmbeddedPDF.svelte +88 -0
  75. package/src/components/ErrorPopup.svelte +27 -0
  76. package/src/components/ErrorPresenter.svelte +32 -0
  77. package/src/components/ExpandCollapse.svelte +42 -0
  78. package/src/components/Expandable.svelte +90 -0
  79. package/src/components/FocusHandler.svelte +21 -0
  80. package/src/components/Fold.svelte +52 -0
  81. package/src/components/Grid.svelte +39 -0
  82. package/src/components/Header.svelte +260 -0
  83. package/src/components/HlsVideo.svelte +170 -0
  84. package/src/components/Hotkey.svelte +50 -0
  85. package/src/components/HotkeyGroup.svelte +25 -0
  86. package/src/components/Html.svelte +24 -0
  87. package/src/components/Icon.svelte +45 -0
  88. package/src/components/IconWithEmoji.svelte +74 -0
  89. package/src/components/Image.svelte +71 -0
  90. package/src/components/Label.svelte +38 -0
  91. package/src/components/Lazy.svelte +29 -0
  92. package/src/components/Like.svelte +73 -0
  93. package/src/components/Link.svelte +75 -0
  94. package/src/components/LinkWrapper.svelte +35 -0
  95. package/src/components/ListView.svelte +153 -0
  96. package/src/components/ListViewItem.svelte +84 -0
  97. package/src/components/Loading.svelte +88 -0
  98. package/src/components/Menu.svelte +205 -0
  99. package/src/components/MiniToggle.svelte +125 -0
  100. package/src/components/Modal.svelte +117 -0
  101. package/src/components/ModeSelector.svelte +37 -0
  102. package/src/components/ModernButton.svelte +61 -0
  103. package/src/components/ModernCheckbox.svelte +123 -0
  104. package/src/components/ModernDialog.svelte +258 -0
  105. package/src/components/ModernEditbox.svelte +256 -0
  106. package/src/components/ModernPopup.svelte +105 -0
  107. package/src/components/ModernRadioButton.svelte +111 -0
  108. package/src/components/ModernTab.svelte +184 -0
  109. package/src/components/ModernToggle.svelte +153 -0
  110. package/src/components/MouseSpeedTracker.svelte +74 -0
  111. package/src/components/MultiProgress.svelte +97 -0
  112. package/src/components/NavGroup.svelte +160 -0
  113. package/src/components/NavItem.svelte +346 -0
  114. package/src/components/NestedDropdown.svelte +62 -0
  115. package/src/components/NestedMenu.svelte +119 -0
  116. package/src/components/NotificationToast.svelte +112 -0
  117. package/src/components/NumberInput.svelte +200 -0
  118. package/src/components/Panel.svelte +324 -0
  119. package/src/components/PanelInstance.svelte +254 -0
  120. package/src/components/PlainTextEditor.svelte +100 -0
  121. package/src/components/Popup.svelte +50 -0
  122. package/src/components/PopupInstance.svelte +390 -0
  123. package/src/components/PopupMenu.svelte +120 -0
  124. package/src/components/Progress.svelte +124 -0
  125. package/src/components/ProgressCircle.svelte +71 -0
  126. package/src/components/RadioButton.svelte +69 -0
  127. package/src/components/RadioGroup.svelte +42 -0
  128. package/src/components/RootStatusComponent.svelte +65 -0
  129. package/src/components/Row.svelte +25 -0
  130. package/src/components/ScrollBox.svelte +98 -0
  131. package/src/components/Scroller.svelte +1063 -0
  132. package/src/components/ScrollerBar.svelte +181 -0
  133. package/src/components/SearchEdit.svelte +46 -0
  134. package/src/components/SearchInput.svelte +213 -0
  135. package/src/components/SearchPicker.svelte +114 -0
  136. package/src/components/Section.svelte +49 -0
  137. package/src/components/SectionEmpty.svelte +38 -0
  138. package/src/components/SelectBox.svelte +76 -0
  139. package/src/components/SelectPopup.svelte +217 -0
  140. package/src/components/Separator.svelte +736 -0
  141. package/src/components/ShowMore.svelte +99 -0
  142. package/src/components/Spinner.svelte +72 -0
  143. package/src/components/SplitButton.svelte +100 -0
  144. package/src/components/StateTag.svelte +79 -0
  145. package/src/components/Status.svelte +33 -0
  146. package/src/components/StepsDialog.svelte +290 -0
  147. package/src/components/StylishEdit.svelte +127 -0
  148. package/src/components/Submenu.svelte +68 -0
  149. package/src/components/Switcher.svelte +55 -0
  150. package/src/components/SwitcherBase.svelte +116 -0
  151. package/src/components/TabList.svelte +290 -0
  152. package/src/components/Tabs.svelte +45 -0
  153. package/src/components/TabsControl.svelte +113 -0
  154. package/src/components/TextArea.svelte +110 -0
  155. package/src/components/TextAreaEditor.svelte +78 -0
  156. package/src/components/TimeLeft.svelte +66 -0
  157. package/src/components/TimeShiftPicker.svelte +84 -0
  158. package/src/components/TimeShiftPopup.svelte +64 -0
  159. package/src/components/TimeShiftPresenter.svelte +59 -0
  160. package/src/components/TimeSince.svelte +86 -0
  161. package/src/components/TimeZonesPopup.svelte +185 -0
  162. package/src/components/Timeline.svelte +754 -0
  163. package/src/components/Toggle.svelte +116 -0
  164. package/src/components/ToggleButton.svelte +176 -0
  165. package/src/components/ToggleWithLabel.svelte +58 -0
  166. package/src/components/TooltipInstance.svelte +613 -0
  167. package/src/components/Video.svelte +40 -0
  168. package/src/components/calendar/DateInputBox.svelte +430 -0
  169. package/src/components/calendar/DatePicker.svelte +46 -0
  170. package/src/components/calendar/DatePopup.svelte +274 -0
  171. package/src/components/calendar/DatePresenter.svelte +392 -0
  172. package/src/components/calendar/DateRangePicker.svelte +50 -0
  173. package/src/components/calendar/DateRangePopup.svelte +76 -0
  174. package/src/components/calendar/DateRangePresenter.svelte +779 -0
  175. package/src/components/calendar/DateTimePresenter.svelte +23 -0
  176. package/src/components/calendar/DateTimeRangePresenter.svelte +28 -0
  177. package/src/components/calendar/DueDatePopup.svelte +93 -0
  178. package/src/components/calendar/DueDatePresenter.svelte +83 -0
  179. package/src/components/calendar/Month.svelte +243 -0
  180. package/src/components/calendar/MonthCalendar.svelte +138 -0
  181. package/src/components/calendar/MonthSquare.svelte +315 -0
  182. package/src/components/calendar/RangeDatePopup.svelte +231 -0
  183. package/src/components/calendar/Shifts.svelte +114 -0
  184. package/src/components/calendar/SimpleDatePopup.svelte +42 -0
  185. package/src/components/calendar/SimpleTimePopup.svelte +41 -0
  186. package/src/components/calendar/TimeInputBox.svelte +282 -0
  187. package/src/components/calendar/TimePopup.svelte +62 -0
  188. package/src/components/calendar/WeekCalendar.svelte +116 -0
  189. package/src/components/calendar/YearCalendar.svelte +67 -0
  190. package/src/components/calendar/icons/DPCalendar.svelte +12 -0
  191. package/src/components/calendar/icons/DPCalendarOver.svelte +15 -0
  192. package/src/components/calendar/icons/DPClock.svelte +13 -0
  193. package/src/components/calendar/icons/DPClockBold.svelte +10 -0
  194. package/src/components/calendar/icons/DPEnd.svelte +13 -0
  195. package/src/components/calendar/icons/DPSetCalendar.svelte +10 -0
  196. package/src/components/calendar/icons/DPStart.svelte +13 -0
  197. package/src/components/calendar/internal/DateUtils.ts +186 -0
  198. package/src/components/emoji/ActionsPopup.svelte +116 -0
  199. package/src/components/emoji/EmojiButton.svelte +146 -0
  200. package/src/components/emoji/EmojiGroup.svelte +105 -0
  201. package/src/components/emoji/EmojiGroupPalette.svelte +58 -0
  202. package/src/components/emoji/EmojiPopup.svelte +430 -0
  203. package/src/components/emoji/SkinTonePopup.svelte +40 -0
  204. package/src/components/emoji/SkinToneTooltip.svelte +36 -0
  205. package/src/components/emoji/icons/Activities.svelte +20 -0
  206. package/src/components/emoji/icons/AnimalsAndNature.svelte +16 -0
  207. package/src/components/emoji/icons/Flags.svelte +14 -0
  208. package/src/components/emoji/icons/FoodAndDrink.svelte +20 -0
  209. package/src/components/emoji/icons/FrequentlyUsed.svelte +17 -0
  210. package/src/components/emoji/icons/GettingWorkDone.svelte +14 -0
  211. package/src/components/emoji/icons/Objects.svelte +15 -0
  212. package/src/components/emoji/icons/Search.svelte +14 -0
  213. package/src/components/emoji/icons/SmileysAndPeople.svelte +23 -0
  214. package/src/components/emoji/icons/Symbols.svelte +23 -0
  215. package/src/components/emoji/icons/TravelAndPlaces.svelte +17 -0
  216. package/src/components/emoji/index.ts +97 -0
  217. package/src/components/emoji/store.ts +44 -0
  218. package/src/components/emoji/types.ts +34 -0
  219. package/src/components/emoji/utils.ts +182 -0
  220. package/src/components/icons/Activity.svelte +16 -0
  221. package/src/components/icons/ActivityEdit.svelte +25 -0
  222. package/src/components/icons/Add.svelte +10 -0
  223. package/src/components/icons/ArrowLeft.svelte +25 -0
  224. package/src/components/icons/ArrowRight.svelte +25 -0
  225. package/src/components/icons/Attachment.svelte +29 -0
  226. package/src/components/icons/Back.svelte +32 -0
  227. package/src/components/icons/BlueCheck.svelte +11 -0
  228. package/src/components/icons/Calendar.svelte +10 -0
  229. package/src/components/icons/Check.svelte +12 -0
  230. package/src/components/icons/CheckAll.svelte +27 -0
  231. package/src/components/icons/CheckCircle.svelte +12 -0
  232. package/src/components/icons/Checkmark.svelte +26 -0
  233. package/src/components/icons/ChevronDown.svelte +27 -0
  234. package/src/components/icons/ChevronLeft.svelte +22 -0
  235. package/src/components/icons/ChevronRight.svelte +22 -0
  236. package/src/components/icons/CircleAdd.svelte +13 -0
  237. package/src/components/icons/Circles.svelte +43 -0
  238. package/src/components/icons/Close.svelte +10 -0
  239. package/src/components/icons/ColStar.svelte +31 -0
  240. package/src/components/icons/CollapseArrow.svelte +8 -0
  241. package/src/components/icons/Copy.svelte +10 -0
  242. package/src/components/icons/Delete.svelte +18 -0
  243. package/src/components/icons/Description.svelte +31 -0
  244. package/src/components/icons/Details.svelte +36 -0
  245. package/src/components/icons/DetailsFilled.svelte +27 -0
  246. package/src/components/icons/Down.svelte +8 -0
  247. package/src/components/icons/DownOutline.svelte +8 -0
  248. package/src/components/icons/Dropdown.svelte +8 -0
  249. package/src/components/icons/DropdownDown.svelte +24 -0
  250. package/src/components/icons/DropdownRight.svelte +24 -0
  251. package/src/components/icons/Edit.svelte +26 -0
  252. package/src/components/icons/Emoji.svelte +10 -0
  253. package/src/components/icons/Error.svelte +27 -0
  254. package/src/components/icons/Expand.svelte +10 -0
  255. package/src/components/icons/File.svelte +25 -0
  256. package/src/components/icons/Filter.svelte +26 -0
  257. package/src/components/icons/Folder.svelte +13 -0
  258. package/src/components/icons/FolderCollapsed.svelte +34 -0
  259. package/src/components/icons/FolderExpanded.svelte +34 -0
  260. package/src/components/icons/Forward.svelte +8 -0
  261. package/src/components/icons/HalfUpDown.svelte +7 -0
  262. package/src/components/icons/History.svelte +10 -0
  263. package/src/components/icons/Info.svelte +26 -0
  264. package/src/components/icons/KeyCommand.svelte +12 -0
  265. package/src/components/icons/KeyOption.svelte +8 -0
  266. package/src/components/icons/KeyShift.svelte +8 -0
  267. package/src/components/icons/Left.svelte +10 -0
  268. package/src/components/icons/Like.svelte +25 -0
  269. package/src/components/icons/Link.svelte +10 -0
  270. package/src/components/icons/MaxWidth.svelte +27 -0
  271. package/src/components/icons/Maximize.svelte +25 -0
  272. package/src/components/icons/MenuClose.svelte +28 -0
  273. package/src/components/icons/MenuOpen.svelte +26 -0
  274. package/src/components/icons/MinWidth.svelte +27 -0
  275. package/src/components/icons/Minimize.svelte +28 -0
  276. package/src/components/icons/Mixin.svelte +38 -0
  277. package/src/components/icons/MoreH.svelte +16 -0
  278. package/src/components/icons/MoreV.svelte +16 -0
  279. package/src/components/icons/MoreV2.svelte +29 -0
  280. package/src/components/icons/NavNext.svelte +10 -0
  281. package/src/components/icons/NavPrev.svelte +10 -0
  282. package/src/components/icons/Open.svelte +11 -0
  283. package/src/components/icons/OpenedArrow.svelte +26 -0
  284. package/src/components/icons/Options.svelte +12 -0
  285. package/src/components/icons/Redo.svelte +10 -0
  286. package/src/components/icons/Right.svelte +26 -0
  287. package/src/components/icons/Scale.svelte +13 -0
  288. package/src/components/icons/ScaleFull.svelte +13 -0
  289. package/src/components/icons/Scribble.svelte +10 -0
  290. package/src/components/icons/Search.svelte +12 -0
  291. package/src/components/icons/Send.svelte +10 -0
  292. package/src/components/icons/Settings.svelte +13 -0
  293. package/src/components/icons/Share.svelte +13 -0
  294. package/src/components/icons/SquareExpand.svelte +13 -0
  295. package/src/components/icons/Start.svelte +10 -0
  296. package/src/components/icons/Stop.svelte +8 -0
  297. package/src/components/icons/TableOfContents.svelte +35 -0
  298. package/src/components/icons/Thread.svelte +29 -0
  299. package/src/components/icons/ToDetails.svelte +28 -0
  300. package/src/components/icons/Undo.svelte +10 -0
  301. package/src/components/icons/Up.svelte +8 -0
  302. package/src/components/icons/UpOutline.svelte +8 -0
  303. package/src/components/internal/Clock.svelte +42 -0
  304. package/src/components/internal/ClockFace.svelte +148 -0
  305. package/src/components/internal/ClockPopup.svelte +91 -0
  306. package/src/components/internal/ErrorBoundary.ts +33 -0
  307. package/src/components/internal/ErrorComponent.svelte +37 -0
  308. package/src/components/internal/Root.svelte +323 -0
  309. package/src/components/internal/RootBarExtension.svelte +32 -0
  310. package/src/components/internal/Settings.svelte +39 -0
  311. package/src/components/internal/SettingsPopup.svelte +196 -0
  312. package/src/components/internal/ThemeButton.svelte +151 -0
  313. package/src/components/internal/icons/CheckCircled.svelte +11 -0
  314. package/src/components/internal/icons/Computer.svelte +15 -0
  315. package/src/components/internal/icons/FontSize.svelte +13 -0
  316. package/src/components/internal/icons/Language.svelte +17 -0
  317. package/src/components/internal/icons/Phone.svelte +18 -0
  318. package/src/components/internal/icons/Search.svelte +12 -0
  319. package/src/components/internal/icons/Settings.svelte +13 -0
  320. package/src/components/internal/icons/Theme.svelte +9 -0
  321. package/src/components/internal/icons/WiFi.svelte +21 -0
  322. package/src/components/notifications/Notification.svelte +34 -0
  323. package/src/components/notifications/Notification.ts +16 -0
  324. package/src/components/notifications/NotificationPosition.ts +6 -0
  325. package/src/components/notifications/NotificationSeverity.ts +6 -0
  326. package/src/components/notifications/Notifications.svelte +53 -0
  327. package/src/components/notifications/actions.ts +42 -0
  328. package/src/components/notifications/store.ts +16 -0
  329. package/src/components/wizard/ModernWizardBar.svelte +105 -0
  330. package/src/components/wizard/ModernWizardDialog.svelte +144 -0
  331. package/src/components/wizard/Wizard.svelte +59 -0
  332. package/src/components/wizard/WizardStep.svelte +144 -0
  333. package/src/focus.ts +139 -0
  334. package/src/index.ts +338 -0
  335. package/src/lazy.ts +93 -0
  336. package/src/location.ts +259 -0
  337. package/src/modals.ts +5 -0
  338. package/src/panelup.ts +70 -0
  339. package/src/plugin.ts +156 -0
  340. package/src/popups.ts +486 -0
  341. package/src/resize.ts +179 -0
  342. package/src/svg.d.ts +4 -0
  343. package/src/tooltips.ts +152 -0
  344. package/src/types.ts +545 -0
  345. package/src/utils.ts +420 -0
  346. package/svelte.config.js +5 -0
  347. package/tsconfig.json +9 -0
  348. package/types/__test__/location.test.d.ts +2 -0
  349. package/types/__test__/location.test.d.ts.map +1 -0
  350. package/types/colors.d.ts +163 -0
  351. package/types/colors.d.ts.map +1 -0
  352. package/types/components/calendar/internal/DateUtils.d.ts +34 -0
  353. package/types/components/calendar/internal/DateUtils.d.ts.map +1 -0
  354. package/types/components/emoji/index.d.ts +11 -0
  355. package/types/components/emoji/index.d.ts.map +1 -0
  356. package/types/components/emoji/store.d.ts +12 -0
  357. package/types/components/emoji/store.d.ts.map +1 -0
  358. package/types/components/emoji/types.d.ts +20 -0
  359. package/types/components/emoji/types.d.ts.map +1 -0
  360. package/types/components/emoji/utils.d.ts +17 -0
  361. package/types/components/emoji/utils.d.ts.map +1 -0
  362. package/types/components/internal/ErrorBoundary.d.ts +5 -0
  363. package/types/components/internal/ErrorBoundary.d.ts.map +1 -0
  364. package/types/components/notifications/Notification.d.ts +16 -0
  365. package/types/components/notifications/Notification.d.ts.map +1 -0
  366. package/types/components/notifications/NotificationPosition.d.ts +7 -0
  367. package/types/components/notifications/NotificationPosition.d.ts.map +1 -0
  368. package/types/components/notifications/NotificationSeverity.d.ts +7 -0
  369. package/types/components/notifications/NotificationSeverity.d.ts.map +1 -0
  370. package/types/components/notifications/actions.d.ts +6 -0
  371. package/types/components/notifications/actions.d.ts.map +1 -0
  372. package/types/components/notifications/store.d.ts +9 -0
  373. package/types/components/notifications/store.d.ts.map +1 -0
  374. package/types/focus.d.ts +32 -0
  375. package/types/focus.d.ts.map +1 -0
  376. package/types/index.d.ts +254 -0
  377. package/types/index.d.ts.map +1 -0
  378. package/types/lazy.d.ts +6 -0
  379. package/types/lazy.d.ts.map +1 -0
  380. package/types/location.d.ts +38 -0
  381. package/types/location.d.ts.map +1 -0
  382. package/types/modals.d.ts +5 -0
  383. package/types/modals.d.ts.map +1 -0
  384. package/types/panelup.d.ts +17 -0
  385. package/types/panelup.d.ts.map +1 -0
  386. package/types/plugin.d.ts +135 -0
  387. package/types/plugin.d.ts.map +1 -0
  388. package/types/popups.d.ts +65 -0
  389. package/types/popups.d.ts.map +1 -0
  390. package/types/resize.d.ts +32 -0
  391. package/types/resize.d.ts.map +1 -0
  392. package/types/tooltips.d.ts +8 -0
  393. package/types/tooltips.d.ts.map +1 -0
  394. package/types/types.d.ts +373 -0
  395. package/types/types.d.ts.map +1 -0
  396. package/types/utils.d.ts +125 -0
  397. package/types/utils.d.ts.map +1 -0
  398. package/assets/lux-site-icons/android-chrome-192x192.png +0 -0
  399. package/assets/lux-site-icons/android-chrome-512x512.png +0 -0
  400. package/assets/lux-site-icons/apple-touch-icon.png +0 -0
  401. package/assets/lux-site-icons/favicon-16x16.png +0 -0
  402. package/assets/lux-site-icons/favicon-32x32.png +0 -0
  403. package/assets/lux-site-icons/favicon.ico +0 -0
  404. package/assets/standard-docs/LUX-NFT-Terms-and-Conditions.pdf +0 -0
  405. package/assets/standard-docs/LUX-Privacy-Policy.pdf +0 -0
  406. package/blocks/components/accordian-block.tsx +0 -48
  407. package/blocks/components/block-component-props.ts +0 -11
  408. package/blocks/components/bullet-cards-block.tsx +0 -45
  409. package/blocks/components/card-block.tsx +0 -213
  410. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  411. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  412. package/blocks/components/content.tsx +0 -70
  413. package/blocks/components/cta-block.tsx +0 -98
  414. package/blocks/components/enh-heading-block.tsx +0 -205
  415. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  416. package/blocks/components/grid-block/index.tsx +0 -83
  417. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  418. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  419. package/blocks/components/group-block.tsx +0 -83
  420. package/blocks/components/heading-block.tsx +0 -88
  421. package/blocks/components/image-block.tsx +0 -108
  422. package/blocks/components/index.ts +0 -30
  423. package/blocks/components/screenful-block/content.tsx +0 -120
  424. package/blocks/components/screenful-block/index.tsx +0 -79
  425. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  426. package/blocks/components/screenful-block/video-background.tsx +0 -45
  427. package/blocks/components/space-block.tsx +0 -66
  428. package/blocks/components/video-block.tsx +0 -137
  429. package/blocks/def/accordian-block.ts +0 -14
  430. package/blocks/def/block.ts +0 -7
  431. package/blocks/def/bullet-cards-block.ts +0 -21
  432. package/blocks/def/card-block.ts +0 -24
  433. package/blocks/def/carte-blanche-block.ts +0 -21
  434. package/blocks/def/cta-block.ts +0 -19
  435. package/blocks/def/element-block.ts +0 -11
  436. package/blocks/def/enh-heading-block.ts +0 -45
  437. package/blocks/def/grid-block.ts +0 -16
  438. package/blocks/def/group-block.ts +0 -11
  439. package/blocks/def/heading-block.ts +0 -15
  440. package/blocks/def/image-block.ts +0 -31
  441. package/blocks/def/index.ts +0 -35
  442. package/blocks/def/screenful-block.ts +0 -54
  443. package/blocks/def/space-block.ts +0 -64
  444. package/blocks/def/video-block.ts +0 -28
  445. package/blocks/index.ts +0 -2
  446. package/common/chat-widget.tsx +0 -75
  447. package/common/contact-dialog/contact-form.tsx +0 -111
  448. package/common/contact-dialog/disclaimer.tsx +0 -13
  449. package/common/contact-dialog/index.tsx +0 -48
  450. package/common/copyright.tsx +0 -21
  451. package/common/drawer-menu.tsx +0 -51
  452. package/common/footer.tsx +0 -77
  453. package/common/head-metadata/from-next/metadata-types.ts +0 -158
  454. package/common/head-metadata/from-next/opengraph-types.ts +0 -267
  455. package/common/head-metadata/from-next/twitter-types.ts +0 -92
  456. package/common/head-metadata/index.tsx +0 -208
  457. package/common/header/index.tsx +0 -57
  458. package/common/header/mobile-nav.tsx +0 -72
  459. package/common/header/theme-toggle.tsx +0 -26
  460. package/common/icons/github.tsx +0 -14
  461. package/common/icons/index.tsx +0 -34
  462. package/common/icons/lux-logo.tsx +0 -10
  463. package/common/icons/secure-delivery.tsx +0 -13
  464. package/common/icons/social-icon.tsx +0 -35
  465. package/common/icons/youtube-logo.tsx +0 -59
  466. package/common/index.ts +0 -14
  467. package/common/logo.tsx +0 -71
  468. package/common/mini-chart/index.tsx +0 -8
  469. package/common/mini-chart/mini-chart-props.ts +0 -44
  470. package/common/mini-chart/mini-chart.tsx +0 -76
  471. package/common/mini-chart/wrapper.tsx +0 -23
  472. package/context-providers/index.ts +0 -1
  473. package/context-providers/theme-provider.tsx +0 -20
  474. package/next/README.md +0 -11
  475. package/next/analytics/fpixel.ts +0 -16
  476. package/next/analytics/pixel-analytics.tsx +0 -55
  477. package/next/determine-device-middleware.ts +0 -16
  478. package/next/fonts/DrukTextWide-Bold-Trial.otf +0 -0
  479. package/next/fonts/DrukTextWide-Heavy-Trial.otf +0 -0
  480. package/next/fonts/DrukTextWide-Medium-Trial.otf +0 -0
  481. package/next/fonts/DrukWide-Bold-Trial.otf +0 -0
  482. package/next/fonts/DrukWide-Heavy-Trial.otf +0 -0
  483. package/next/fonts/DrukWide-Medium-Trial.otf +0 -0
  484. package/next/get-app-router-font-classes.ts +0 -12
  485. package/next/load-and-return-lux-next-fonts-on-import.ts +0 -94
  486. package/next/next-font-desc.ts +0 -28
  487. package/next/not-found-content.mdx +0 -4
  488. package/next/not-found.tsx +0 -23
  489. package/next/pages-router-font-vars.tsx +0 -18
  490. package/next/root-layout.tsx +0 -60
  491. package/primitives/accordion.tsx +0 -61
  492. package/primitives/action-button.tsx +0 -46
  493. package/primitives/apply-typography.tsx +0 -55
  494. package/primitives/avatar.tsx +0 -49
  495. package/primitives/badge.tsx +0 -36
  496. package/primitives/button.tsx +0 -73
  497. package/primitives/calendar.tsx +0 -72
  498. package/primitives/card.tsx +0 -83
  499. package/primitives/checkbox.tsx +0 -32
  500. package/primitives/command.tsx +0 -155
  501. package/primitives/dialog-video-controller.tsx +0 -38
  502. package/primitives/dialog.tsx +0 -152
  503. package/primitives/form.tsx +0 -179
  504. package/primitives/index.ts +0 -144
  505. package/primitives/inline-icon.tsx +0 -37
  506. package/primitives/input.tsx +0 -30
  507. package/primitives/label.tsx +0 -28
  508. package/primitives/link-element.tsx +0 -104
  509. package/primitives/main.tsx +0 -17
  510. package/primitives/mdx-link.tsx +0 -22
  511. package/primitives/nav-items.tsx +0 -48
  512. package/primitives/popover.tsx +0 -35
  513. package/primitives/progress.tsx +0 -27
  514. package/primitives/scroll-area.tsx +0 -47
  515. package/primitives/select.tsx +0 -169
  516. package/primitives/separator.tsx +0 -29
  517. package/primitives/sheet.tsx +0 -175
  518. package/primitives/skeleton.tsx +0 -15
  519. package/primitives/switch.tsx +0 -33
  520. package/primitives/table.tsx +0 -117
  521. package/primitives/tabs.tsx +0 -60
  522. package/primitives/tailwind-indicator.tsx +0 -19
  523. package/primitives/text-area.tsx +0 -26
  524. package/primitives/toast.tsx +0 -129
  525. package/primitives/toaster.tsx +0 -37
  526. package/primitives/use-toast.ts +0 -192
  527. package/primitives/video-player.tsx +0 -26
  528. package/primitives/youtube-embed.tsx +0 -83
  529. package/siteDef/footer/community.tsx +0 -67
  530. package/siteDef/footer/company.ts +0 -37
  531. package/siteDef/footer/ecosystem.ts +0 -37
  532. package/siteDef/footer/index.tsx +0 -26
  533. package/siteDef/footer/legal.ts +0 -28
  534. package/siteDef/footer/network.ts +0 -33
  535. package/siteDef/footer/svg/warpcast-logo.svg +0 -12
  536. package/siteDef/main-nav.ts +0 -35
  537. package/style/globals.css +0 -13
  538. package/style/hanzo-common.css +0 -32
  539. package/style/hanzo-default-colors.css +0 -79
  540. package/style/social-svg.css +0 -3
  541. package/tailwind/colors.tailwind.js +0 -46
  542. package/tailwind/fonts.tailwind.ts +0 -31
  543. package/tailwind/index.ts +0 -18
  544. package/tailwind/lux-tw-fonts.ts +0 -37
  545. package/tailwind/safelist.tailwind.js +0 -26
  546. package/tailwind/screens.tailwind.js +0 -8
  547. package/tailwind/spacing.tailwind.js +0 -65
  548. package/tailwind/tailwind.config.base.js +0 -906
  549. package/tailwind/tw-font-desc.ts +0 -15
  550. package/tailwind/typo-plugin/get-plugin-styles.js +0 -676
  551. package/tailwind/typo-plugin/index.d.ts +0 -9
  552. package/tailwind/typo-plugin/index.js +0 -141
  553. package/tailwind/typo-plugin/utils.js +0 -60
  554. package/tailwind/typography-test.mdx +0 -36
  555. package/types/breakpoints.ts +0 -11
  556. package/types/bullet-item.ts +0 -10
  557. package/types/button-def.ts +0 -39
  558. package/types/contact-info.ts +0 -11
  559. package/types/dimensions.ts +0 -20
  560. package/types/grid-def.ts +0 -56
  561. package/types/icon.ts +0 -10
  562. package/types/image-def.ts +0 -28
  563. package/types/index.ts +0 -29
  564. package/types/link-def.ts +0 -59
  565. package/types/site-def.ts +0 -34
  566. package/types/t-shirt-size.ts +0 -5
  567. package/util/index.ts +0 -81
  568. package/util/specifier.ts +0 -43
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ //
3
+ // © 2025 Hardcore Engineering, Inc. All Rights Reserved.
4
+ // Licensed under the Eclipse Public License v2.0 (SPDX: EPL-2.0).
5
+ //
6
+ export let size: 'small' | 'medium' | 'large' | 'x-large'
7
+ const fill: string = 'currentColor'
8
+ </script>
9
+
10
+ <svg class="svg-{size}" viewBox="0 0 24 24" {fill} xmlns="http://www.w3.org/2000/svg">
11
+ <path
12
+ d="M6.5,10.8c2.3,0,4.2-1.9,4.2-4.2S8.8,2.2,6.5,2.2S2.2,4.2,2.2,6.5S4.2,10.8,6.5,10.8z M6.5,3.8C8,3.8,9.2,5,9.2,6.5S8,9.2,6.5,9.2S3.8,8,3.8,6.5S5,3.8,6.5,3.8z"
13
+ />
14
+ <path
15
+ d="M7.2,13.6c-0.3-0.5-1-0.5-1.3,0l-4,7c-0.1,0.2-0.1,0.5,0,0.7c0.1,0.2,0.4,0.4,0.6,0.4h8c0.3,0,0.5-0.1,0.6-0.4c0.1-0.2,0.1-0.5,0-0.7L7.2,13.6z M3.8,20.2l2.7-4.7l2.7,4.7H3.8z"
16
+ />
17
+ <path
18
+ d="M18.6,6.5l3-3c0.3-0.3,0.3-0.8,0-1.1s-0.8-0.3-1.1,0l-3,3l-3-3c-0.3-0.3-0.8-0.3-1.1,0s-0.3,0.8,0,1.1l3,3l-3,3c-0.3,0.3-0.3,0.8,0,1.1c0.1,0.1,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2l3-3l3,3c0.1,0.1,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2c0.3-0.3,0.3-0.8,0-1.1L18.6,6.5z"
19
+ />
20
+ <path
21
+ d="M21,13.2h-7c-0.4,0-0.8,0.3-0.8,0.8v7c0,0.4,0.3,0.8,0.8,0.8h7c0.4,0,0.8-0.3,0.8-0.8v-7C21.8,13.6,21.4,13.2,21,13.2zM20.2,20.2h-5.5v-5.5h5.5V20.2z"
22
+ />
23
+ </svg>
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ //
3
+ // © 2025 Hardcore Engineering, Inc. All Rights Reserved.
4
+ // Licensed under the Eclipse Public License v2.0 (SPDX: EPL-2.0).
5
+ //
6
+ export let size: 'small' | 'medium' | 'large' | 'x-large'
7
+ const fill: string = 'currentColor'
8
+ </script>
9
+
10
+ <svg class="svg-{size}" viewBox="0 0 24 24" {fill} xmlns="http://www.w3.org/2000/svg">
11
+ <path
12
+ d="M21.5,11.5l-9-9c-0.3-0.3-0.8-0.3-1.1,0l-9,9c-0.2,0.2-0.3,0.5-0.2,0.8s0.4,0.5,0.7,0.5h1.2V19c0,1.5,1.2,2.8,2.8,2.8h10c1.5,0,2.8-1.2,2.8-2.8v-6.2H21c0.3,0,0.6-0.2,0.7-0.5C21.8,12,21.7,11.7,21.5,11.5z M18.2,19c0,0.7-0.6,1.2-1.2,1.2H7c-0.7,0-1.2-0.6-1.2-1.2v-7c0-0.4-0.3-0.8-0.8-0.8H4.8L12,4.1l7.2,7.2H19c-0.4,0-0.8,0.3-0.8,0.8V19z"
13
+ />
14
+ <path
15
+ d="M14,11.2h-4c-0.4,0-0.8,0.3-0.8,0.8v4c0,0.4,0.3,0.8,0.8,0.8h4c0.4,0,0.8-0.3,0.8-0.8v-4C14.8,11.6,14.4,11.2,14,11.2zM13.2,15.2h-2.5v-2.5h2.5V15.2z"
16
+ />
17
+ </svg>
@@ -0,0 +1,97 @@
1
+ //
2
+ // Copyright © 2025 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ import type { IntlString } from '@hanzo/platform'
16
+ import IconFrequentlyUsed from './icons/FrequentlyUsed.svelte'
17
+ import IconGettingWorkDone from './icons/GettingWorkDone.svelte'
18
+ import IconSmileysAndPeople from './icons/SmileysAndPeople.svelte'
19
+ import IconAnimalsAndNature from './icons/AnimalsAndNature.svelte'
20
+ import IconFoodAndDrink from './icons/FoodAndDrink.svelte'
21
+ import IconTravelAndPlaces from './icons/TravelAndPlaces.svelte'
22
+ import IconActivities from './icons/Activities.svelte'
23
+ import IconObjects from './icons/Objects.svelte'
24
+ import IconSymbols from './icons/Symbols.svelte'
25
+ import IconFlags from './icons/Flags.svelte'
26
+
27
+ import plugin from '../../plugin'
28
+ import type { EmojiCategory } from './types'
29
+
30
+ export * from './types'
31
+ export * from './store'
32
+ export * from './utils'
33
+
34
+ export { default as EmojiPopup } from './EmojiPopup.svelte'
35
+ export { default as EmojiButton } from './EmojiButton.svelte'
36
+
37
+ export const emojiCategories: EmojiCategory[] = [
38
+ { id: 'frequently-used', label: plugin.string.FrequentlyUsed, icon: IconFrequentlyUsed },
39
+ {
40
+ id: 'getting-work-done',
41
+ label: plugin.string.GettingWorkDone,
42
+ icon: IconGettingWorkDone,
43
+ emojisString: [
44
+ '2705',
45
+ '1F440',
46
+ '1F64C',
47
+ '1F64F',
48
+ '2795',
49
+ '2796',
50
+ '1F44F',
51
+ '1F4A1',
52
+ '1F3AF',
53
+ '1F44B',
54
+ '1F44D',
55
+ '1F389',
56
+ '0031-FE0F-20E3',
57
+ '0032-FE0F-20E3',
58
+ '0033-FE0F-20E3',
59
+ '1F4E3',
60
+ '26AA',
61
+ '1F535',
62
+ '1F534',
63
+ '1F3CE'
64
+ ]
65
+ },
66
+ {
67
+ id: 'smileys-people',
68
+ label: plugin.string.SmileysAndPeople,
69
+ icon: IconSmileysAndPeople,
70
+ categories: ['smileys-emotion', 'people-body']
71
+ },
72
+ {
73
+ id: 'animals-nature',
74
+ label: plugin.string.AnimalsAndNature,
75
+ icon: IconAnimalsAndNature,
76
+ categories: 'animals-nature'
77
+ },
78
+ { id: 'food-drink', label: plugin.string.FoodAndDrink, icon: IconFoodAndDrink, categories: 'food-drink' },
79
+ { id: 'travel-places', label: plugin.string.TravelAndPlaces, icon: IconTravelAndPlaces, categories: 'travel-places' },
80
+ { id: 'activities', label: plugin.string.Activities, icon: IconActivities, categories: 'activities' },
81
+ { id: 'objects', label: plugin.string.Objects, icon: IconObjects, categories: 'objects' },
82
+ { id: 'symbols', label: plugin.string.Symbols, icon: IconSymbols, categories: 'symbols' },
83
+ { id: 'flags', label: plugin.string.Flags, icon: IconFlags, categories: 'flags' }
84
+ ]
85
+
86
+ export const skinTonesCodes = [0x1f3fb, 0x1f3fc, 0x1f3fd, 0x1f3fe, 0x1f3ff]
87
+
88
+ export const skinTones: Map<number, IntlString> = new Map<number, IntlString>(
89
+ [
90
+ plugin.string.NoTone,
91
+ plugin.string.Light,
92
+ plugin.string.MediumLight,
93
+ plugin.string.Medium,
94
+ plugin.string.MediumDark,
95
+ plugin.string.Dark
96
+ ].map((label, index) => [index, label])
97
+ )
@@ -0,0 +1,44 @@
1
+ //
2
+ // Copyright © 2025 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ import { writable, derived } from 'svelte/store'
16
+ import type { Emoji } from 'emojibase'
17
+ import type { EmojiWithGroup } from '.'
18
+
19
+ export const emojiStore = writable<EmojiWithGroup[]>([])
20
+ export const emojiComponents = writable<Emoji[]>([])
21
+ export const searchEmoji = writable<string>('')
22
+
23
+ export const resultEmojis = derived([emojiStore, searchEmoji], ([emojis, search]) => {
24
+ return search !== ''
25
+ ? emojis.filter(
26
+ (emoji) =>
27
+ (emoji.tags?.some((tag: string) => tag.toLowerCase().startsWith(search.toLowerCase())) ?? false) ||
28
+ emoji.label.toLowerCase().includes(search.toLowerCase())
29
+ )
30
+ : emojis
31
+ })
32
+
33
+ export const groupsResultEmojis = derived(resultEmojis, (result) => {
34
+ const keys = new Set(result.map((res) => res?.key ?? ''))
35
+ const groups: string[] = keys?.size > 0 ? [...keys] : ['']
36
+ return {
37
+ emojis: new Map<string, EmojiWithGroup[]>(
38
+ groups.map((group) => {
39
+ return [group, result.filter((res) => res.key === group)]
40
+ })
41
+ ),
42
+ groups
43
+ }
44
+ })
@@ -0,0 +1,34 @@
1
+ //
2
+ // Copyright © 2025 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ import type { IntlString } from '@hanzo/platform'
16
+ import type { AnySvelteComponent } from '../..'
17
+ import type { Emoji } from 'emojibase'
18
+
19
+ export type EmojiWithGroup = Emoji & { key: string }
20
+ export type Emojis = Emoji | EmojiWithGroup
21
+
22
+ export interface EmojiCategory {
23
+ id: string
24
+ label: IntlString
25
+ icon: AnySvelteComponent
26
+ categories?: string[] | string
27
+ emojisString?: string[]
28
+ emojis?: EmojiWithGroup[]
29
+ }
30
+
31
+ export interface EmojiHierarchy {
32
+ emoji: EmojiWithGroup
33
+ parent?: EmojiWithGroup
34
+ }
@@ -0,0 +1,182 @@
1
+ //
2
+ // Copyright © 2025 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ import { get } from 'svelte/store'
16
+ import { fetchEmojis, fetchMessages } from 'emojibase'
17
+ import type { Emoji, Locale } from 'emojibase'
18
+ import { getCurrentAccount } from '@hanzo/core'
19
+ import { deviceOptionsStore as deviceInfo } from '../..'
20
+ import { emojiStore, emojiComponents, emojiCategories, skinTonesCodes } from '.'
21
+ import type { EmojiWithGroup, EmojiHierarchy } from '.'
22
+
23
+ export async function loadEmojis (lang?: string): Promise<{
24
+ emojis: EmojiWithGroup[]
25
+ components: Emoji[]
26
+ }> {
27
+ const local = lang ?? get(deviceInfo).language ?? 'en'
28
+ const englishEmojis =
29
+ local === 'en'
30
+ ? await fetchEmojis('en', { version: '15.0' })
31
+ : await fetchEmojis('en', { compact: true, version: '15.0' })
32
+ const languageEmojis = local === 'en' ? null : await fetchEmojis(local as Locale, { version: '15.0' })
33
+ const messages = await fetchMessages(local as Locale)
34
+ const groups = messages.groups
35
+ const groupKeys = new Map<number, string>(groups.map((group, index) => [index, group.key]))
36
+
37
+ const categories = new Map<string, string>()
38
+ emojiCategories.forEach((cat) => {
39
+ if (Array.isArray(cat.categories)) cat.categories.forEach((c) => categories.set(c, cat.id))
40
+ else if (typeof cat.categories === 'string') categories.set(cat.categories, cat.id)
41
+ })
42
+
43
+ const emojis =
44
+ languageEmojis !== null
45
+ ? languageEmojis.map((langEmoji, index) => {
46
+ return {
47
+ ...langEmoji,
48
+ tags: [...(englishEmojis[index]?.tags ?? []), ...(langEmoji?.tags ?? [])]
49
+ }
50
+ })
51
+ : (englishEmojis as Emoji[])
52
+
53
+ return {
54
+ emojis: emojis
55
+ .filter((e) => e.group !== 2 && e.group !== undefined)
56
+ .map((e) => {
57
+ return { ...e, key: categories.get(groupKeys.get(e?.group ?? 0) ?? '') ?? '' }
58
+ }),
59
+ components: emojis.filter((e) => e.group === 2)
60
+ }
61
+ }
62
+
63
+ export async function updateEmojis (lang?: string): Promise<void> {
64
+ const { emojis, components } = await loadEmojis(lang)
65
+ emojiStore.set(emojis)
66
+ emojiComponents.set(components)
67
+ }
68
+
69
+ function getEmojisLocalStorageKey (suffix: string = 'frequently'): string {
70
+ const me = getCurrentAccount()
71
+ return `emojis.${suffix}.${me.uuid}`
72
+ }
73
+
74
+ export const removeFrequentlyEmojis = (_hexcode: string): void => {
75
+ const emoji = getEmoji(_hexcode)
76
+ const hexcode = emoji?.parent?.hexcode ?? emoji?.emoji.hexcode
77
+ if (hexcode === undefined) return
78
+
79
+ const frequentlyEmojisKey = getEmojisLocalStorageKey()
80
+ const frequentlyEmojis = window.localStorage.getItem(frequentlyEmojisKey)
81
+ if (frequentlyEmojis != null) {
82
+ const parsedEmojis = JSON.parse(frequentlyEmojis)
83
+ if (Array.isArray(parsedEmojis)) {
84
+ window.localStorage.setItem(
85
+ frequentlyEmojisKey,
86
+ JSON.stringify(parsedEmojis.filter((pe) => pe.hexcode !== hexcode))
87
+ )
88
+ }
89
+ }
90
+ }
91
+ export const addFrequentlyEmojis = (_hexcode: string): void => {
92
+ const emoji = getEmoji(_hexcode)
93
+ const hexcode = emoji?.parent?.hexcode ?? emoji?.emoji.hexcode
94
+ if (hexcode === undefined) return
95
+
96
+ const frequentlyEmojisKey = getEmojisLocalStorageKey()
97
+ const frequentlyEmojis = window.localStorage.getItem(frequentlyEmojisKey)
98
+ const empty = frequentlyEmojis == null
99
+
100
+ if (!empty) {
101
+ const parsedEmojis = JSON.parse(frequentlyEmojis)
102
+ if (Array.isArray(parsedEmojis)) {
103
+ const index = parsedEmojis.findIndex((pe) => pe.hexcode === hexcode)
104
+ if (index === -1) parsedEmojis.push({ hexcode, count: 1 })
105
+ else parsedEmojis[index].count++
106
+ parsedEmojis.sort((a, b) => b.count - a.count)
107
+ window.localStorage.setItem(frequentlyEmojisKey, JSON.stringify(parsedEmojis))
108
+ return undefined
109
+ }
110
+ }
111
+ window.localStorage.setItem(frequentlyEmojisKey, JSON.stringify([{ hexcode, count: 1 }]))
112
+ }
113
+ export const getFrequentlyEmojis = (): EmojiWithGroup[] | undefined => {
114
+ const frequentlyEmojisKey = getEmojisLocalStorageKey()
115
+ const frequentlyEmojis = window.localStorage.getItem(frequentlyEmojisKey)
116
+ if (frequentlyEmojis == null) return undefined
117
+
118
+ try {
119
+ const parsedEmojis = JSON.parse(frequentlyEmojis)
120
+ if (!Array.isArray(parsedEmojis)) return undefined
121
+
122
+ const res: EmojiWithGroup[] = []
123
+
124
+ for (const val of parsedEmojis) {
125
+ const map = getEmoji(val.hexcode)
126
+ const emoji = map?.parent ?? map?.emoji
127
+ if (emoji !== undefined) {
128
+ res.push(emoji)
129
+ }
130
+ }
131
+
132
+ return res
133
+ } catch (e) {
134
+ console.error(e)
135
+ return undefined
136
+ }
137
+ }
138
+
139
+ export const setSkinTone = (skinTone: number): void => {
140
+ const skinToneKey = getEmojisLocalStorageKey('skinTone')
141
+ window.localStorage.setItem(skinToneKey, JSON.stringify(skinTone))
142
+ }
143
+ export const getSkinTone = (): number => {
144
+ const skinToneKey = getEmojisLocalStorageKey('skinTone')
145
+ const skinTone = window.localStorage.getItem(skinToneKey)
146
+ if (skinTone == null) return 0
147
+
148
+ try {
149
+ return JSON.parse(skinTone)
150
+ } catch (e) {
151
+ console.error(e)
152
+ return 0
153
+ }
154
+ }
155
+ export const generateSkinToneEmojis = (baseEmoji: number | number[]): string[] => {
156
+ const isArray = Array.isArray(baseEmoji)
157
+ return [
158
+ String.fromCodePoint(...(isArray ? baseEmoji : [baseEmoji])),
159
+ ...skinTonesCodes.map((skinTone) => {
160
+ return String.fromCodePoint(...(isArray ? baseEmoji : [baseEmoji]), skinTone)
161
+ })
162
+ ]
163
+ }
164
+
165
+ export const getEmojiMap = (): Map<string, EmojiHierarchy> | undefined => {
166
+ const result = new Map<string, EmojiHierarchy>()
167
+ const emojis = get(emojiStore)
168
+
169
+ emojis.forEach((emoji) => {
170
+ result.set(emoji.hexcode, { emoji })
171
+ emoji.skins?.forEach((skin) => result.set(skin.hexcode, { emoji: { ...skin, key: emoji.key }, parent: emoji }))
172
+ })
173
+ return result
174
+ }
175
+ export const getEmoji = (hexcode: string): EmojiHierarchy | undefined => {
176
+ return getEmojiMap()?.get(hexcode)
177
+ }
178
+ export const getEmojiCode = (e: number | number[] | string | Emoji | EmojiWithGroup): number | number[] => {
179
+ return typeof e === 'number' || Array.isArray(e)
180
+ ? e
181
+ : (typeof e === 'object' ? e.hexcode : e).split('-').map((h) => parseInt(h, 16))
182
+ }
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ export let size: 'small' | 'medium' | 'large'
3
+ const fill: string = 'currentColor'
4
+ </script>
5
+
6
+ <svg class="svg-{size}" {fill} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
7
+ <path
8
+ d="M7.1,6.9C7,6.8,6.9,6.7,6.8,6.8C6.6,6.8,6.5,6.9,6.4,7l-2,2.6c-0.2,0.2-0.1,0.5,0.1,0.7c0.1,0.1,0.2,0.1,0.3,0.1 c0.1,0,0.3-0.1,0.4-0.2L6.9,8l1.9,1.5C8.9,9.5,9,9.6,9.2,9.5c0.1,0,0.3-0.1,0.3-0.2l2-2.5c0.2-0.2,0.1-0.5-0.1-0.7 C11.1,6,10.8,6,10.7,6.2L9,8.3L7.1,6.9z"
9
+ />
10
+ <path
11
+ d="M13.3,4.6c1,0,1.8-0.8,1.8-1.8S14.3,1,13.3,1s-1.8,0.8-1.8,1.8S12.3,4.6,13.3,4.6z M13.3,2c0.4,0,0.8,0.4,0.8,0.8 c0,0.4-0.4,0.8-0.8,0.8s-0.8-0.4-0.8-0.8C12.5,2.4,12.9,2,13.3,2z"
12
+ />
13
+ <path
14
+ d="M14.1,5.7c-0.3,0-0.5,0.2-0.5,0.5v4.7c0,1.8-1.1,2.9-2.8,2.9H5.1c-1.7,0-2.8-1.1-2.8-2.9V5.5c0-1.8,1.1-2.9,2.8-2.9h4.8 c0.3,0,0.5-0.2,0.5-0.5s-0.2-0.5-0.5-0.5H5.1c-2.2,0-3.8,1.6-3.8,3.9v5.4c0,2.3,1.5,3.9,3.8,3.9h5.7c2.2,0,3.8-1.6,3.8-3.9V6.2 C14.6,5.9,14.4,5.7,14.1,5.7z"
15
+ />
16
+ </svg>
@@ -0,0 +1,25 @@
1
+ <!--
2
+ // Copyright © 2022 Hardcore Engineering Inc.
3
+ //
4
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
5
+ // you may not use this file except in compliance with the License. You may
6
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ //
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ -->
15
+ <script lang="ts">
16
+ export let size: 'small' | 'medium' | 'large'
17
+ const fill: string = 'currentColor'
18
+ </script>
19
+
20
+ <svg class="svg-{size}" {fill} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
21
+ <path d="M15,14.2H9.4c-0.2,0-0.4,0.2-0.4,0.4S9.1,15,9.4,15H15c0.2,0,0.4-0.2,0.4-0.4S15.2,14.2,15,14.2z" />
22
+ <path
23
+ d="M11.8,6.8C11.8,6.8,11.8,6.8,11.8,6.8C13.2,5,13.3,5,13.3,5c0.3-0.5,0.4-1,0.3-1.6c-0.1-0.5-0.5-1-0.9-1.3c0,0-1.3-1-1.3-1c-0.9-0.7-2.2-0.6-3,0.3c0,0,0,0,0,0L1,10.5c-0.3,0.4-0.4,0.9-0.3,1.4l0.6,2.7c0,0.2,0.2,0.3,0.4,0.3c0,0,0,0,0,0l2.8,0c0.5,0,1-0.2,1.3-0.6C8.9,10.4,10.7,8.2,11.8,6.8C11.8,6.8,11.8,6.8,11.8,6.8z"
24
+ />
25
+ </svg>
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ export let size: 'x-small' | 'small' | 'medium' | 'large'
3
+ export let fill: string = 'currentColor'
4
+ </script>
5
+
6
+ <svg class="svg-{size}" {fill} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
7
+ <path
8
+ d="M7.49988 8.49991V12.9999H8.49988V8.49991L13 8.49994L13 7.49994L8.49988 7.49991V2.99988H7.49988V7.49991L3.00001 7.49988L3 8.49988L7.49988 8.49991Z"
9
+ />
10
+ </svg>
@@ -0,0 +1,25 @@
1
+ <!--
2
+ // Copyright © 2020, 2021 Hanzo <dev@hanzo.ai>.
3
+ // Copyright © 2021 Hardcore Engineering Inc.
4
+ //
5
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License. You may
7
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ //
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ -->
16
+ <script lang="ts">
17
+ export let size: 'small' | 'medium' | 'large'
18
+ const fill: string = 'currentColor'
19
+ </script>
20
+
21
+ <svg class="svg-{size}" {fill} viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
22
+ <path
23
+ d="M14 26L15.41 24.59L7.83 17H27C27.5523 17 28 16.5523 28 16C28 15.4477 27.5523 15 27 15H7.83L15.41 7.41L14 6L4 16L14 26Z"
24
+ />
25
+ </svg>
@@ -0,0 +1,25 @@
1
+ <!--
2
+ // Copyright © 2020, 2021 Hanzo <dev@hanzo.ai>.
3
+ // Copyright © 2021 Hardcore Engineering Inc.
4
+ //
5
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License. You may
7
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ //
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ -->
16
+ <script lang="ts">
17
+ export let size: 'small' | 'medium' | 'large'
18
+ export let fill: string = 'currentColor'
19
+ </script>
20
+
21
+ <svg class="svg-{size}" {fill} viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
22
+ <path
23
+ d="M18 6L16.57 7.393L24.15 15H5C4.44771 15 4 15.4477 4 16C4 16.5523 4.44772 17 5 17H24.15L16.57 24.573L18 26L28 16L18 6Z"
24
+ />
25
+ </svg>
@@ -0,0 +1,29 @@
1
+ <!--
2
+ // Copyright © 2020, 2021 Hanzo <dev@hanzo.ai>.
3
+ // Copyright © 2021 Hardcore Engineering Inc.
4
+ //
5
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License. You may
7
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ //
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ -->
16
+ <script lang="ts">
17
+ import { ButtonSize } from '../../types'
18
+
19
+ export let size: ButtonSize
20
+ export let fill: string = 'currentColor'
21
+ </script>
22
+
23
+ <svg class="svg-{size}" {fill} viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
24
+ <path
25
+ fill-rule="evenodd"
26
+ clip-rule="evenodd"
27
+ d="M12.9142 2.58576C12.1378 1.80936 10.8893 1.8178 10.1035 2.60352L3.8535 8.85351C2.68656 10.0205 2.70242 11.9451 3.87865 13.1213C5.05488 14.2975 6.97945 14.3134 8.1464 13.1464L11.1463 10.1465C11.3416 9.95119 11.6582 9.95119 11.8535 10.1465C12.0487 10.3417 12.0487 10.6583 11.8535 10.8536L8.85351 13.8535C7.28679 15.4202 4.72899 15.3858 3.17154 13.8284C1.61411 12.271 1.57967 9.71313 3.1464 8.1464L9.39642 1.89642C10.5633 0.729518 12.4451 0.702443 13.6213 1.87866C14.7975 3.05488 14.7704 4.93673 13.6035 6.10362L7.35245 12.3547C6.59335 13.1138 5.36185 13.1928 4.58451 12.4154C3.80823 11.6392 3.88608 10.4103 4.64203 9.65096L8.01763 6.154C8.20942 5.95532 8.52595 5.94973 8.72463 6.14152C8.92331 6.3333 8.9289 6.64983 8.73711 6.84851L5.35557 10.3516L5.35245 10.3548C4.93991 10.7673 4.94735 11.3641 5.29161 11.7083C5.63594 12.0527 6.23287 12.0601 6.64534 11.6476L12.8964 5.39651C13.6821 4.61079 13.6906 3.36217 12.9142 2.58576Z"
28
+ />
29
+ </svg>
@@ -0,0 +1,32 @@
1
+ <!--
2
+ // Copyright © 2020, 2021 Hanzo <dev@hanzo.ai>.
3
+ // Copyright © 2021 Hardcore Engineering Inc.
4
+ //
5
+ // Licensed under the Eclipse Public License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License. You may
7
+ // obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ //
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ -->
16
+ <script lang="ts">
17
+ export let size: 'small' | 'medium' | 'large'
18
+ const fill: string = 'currentColor'
19
+ export let kind: 'strong' | 'curve' = 'strong'
20
+ </script>
21
+
22
+ {#if kind === 'strong'}
23
+ <svg class="svg-{size}" {fill} viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
24
+ <polygon points="10.6,14.4 4.3,8 10.6,1.6 11.4,2.4 5.7,8 11.4,13.6 " />
25
+ </svg>
26
+ {:else if kind === 'curve'}
27
+ <svg class="svg-{size}" {fill} viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
28
+ <path
29
+ d="M2.66601 5.33333L2.31246 5.68688L1.95891 5.33333L2.31246 4.97978L2.66601 5.33333ZM5.99935 13.1667C5.72321 13.1667 5.49935 12.9428 5.49935 12.6667C5.49935 12.3905 5.72321 12.1667 5.99935 12.1667L5.99935 13.1667ZM5.6458 9.02022L2.31246 5.68688L3.01957 4.97978L6.3529 8.31311L5.6458 9.02022ZM2.31246 4.97978L5.6458 1.64644L6.3529 2.35355L3.01957 5.68688L2.31246 4.97978ZM2.66601 4.83333L9.66601 4.83333L9.66601 5.83333L2.66602 5.83333L2.66601 4.83333ZM9.66602 13.1667L5.99935 13.1667L5.99935 12.1667L9.66602 12.1667L9.66602 13.1667ZM13.8327 9C13.8327 11.3012 11.9672 13.1667 9.66602 13.1667L9.66602 12.1667C11.4149 12.1667 12.8327 10.7489 12.8327 9L13.8327 9ZM9.66601 4.83333C11.9672 4.83333 13.8327 6.69881 13.8327 9L12.8327 9C12.8327 7.2511 11.4149 5.83333 9.66601 5.83333L9.66601 4.83333Z"
30
+ />
31
+ </svg>
32
+ {/if}
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ export let size: 'small' | 'medium' | 'large'
3
+ </script>
4
+
5
+ <svg class="svg-{size}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
6
+ <path fill={'#4474F6'} d="M8,0L8,0c4.4,0,8,3.6,8,8l0,0c0,4.4-3.6,8-8,8l0,0c-4.4,0-8-3.6-8-8l0,0C0,3.6,3.6,0,8,0z" />
7
+ <path
8
+ fill={'#fff'}
9
+ d="M7.3,10.6c-0.2,0-0.3-0.1-0.4-0.2l-1.8-2c-0.2-0.2-0.2-0.6,0-0.8c0.2-0.2,0.6-0.2,0.8,0l1.4,1.5L10,5.6 c0.2-0.3,0.6-0.3,0.8-0.1c0.3,0.2,0.3,0.6,0.1,0.8l-3.2,4C7.7,10.5,7.5,10.6,7.3,10.6C7.3,10.6,7.3,10.6,7.3,10.6z"
10
+ />
11
+ </svg>
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ export let size: 'small' | 'medium' | 'large'
3
+ const fill: string = 'var(--caption-color)'
4
+ </script>
5
+
6
+ <svg class="svg-{size}" {fill} viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
7
+ <path
8
+ d="M19.5,5h-2.1V4.5c0-0.3-0.2-0.5-0.5-0.5s-0.5,0.2-0.5,0.5V5H8.1V4.5C8.1,4.2,7.9,4,7.6,4S7.1,4.2,7.1,4.5V5H5 C4.2,5,3.5,5.7,3.5,6.5V19c0,0.8,0.7,1.5,1.5,1.5h14.5c0.8,0,1.5-0.7,1.5-1.5V6.5C21,5.7,20.3,5,19.5,5z M5,6h2.1v0.5 c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5V6h8.3v0.5c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5V6h2.1C19.7,6,20,6.3,20,6.5v3.1H4.5V6.5 C4.5,6.3,4.7,6,5,6z M19.5,19.5H5c-0.3,0-0.5-0.2-0.5-0.5v-8.3H20V19C20,19.2,19.7,19.5,19.5,19.5z"
9
+ />
10
+ </svg>
@@ -0,0 +1,12 @@
1
+ <script lang="ts">
2
+ export let size: 'small' | 'medium' | 'large'
3
+ export let fill: string = 'currentColor'
4
+ </script>
5
+
6
+ <svg class="svg-{size}" viewBox="0 0 16 16" {fill} xmlns="http://www.w3.org/2000/svg">
7
+ <path
8
+ fill-rule="evenodd"
9
+ clip-rule="evenodd"
10
+ d="M14.8536 3.14645C15.0488 3.34171 15.0488 3.65829 14.8536 3.85355L6.85355 11.8536C6.65829 12.0488 6.34171 12.0488 6.14645 11.8536L2.14645 7.85355C1.95118 7.65829 1.95118 7.34171 2.14645 7.14645C2.34171 6.95118 2.65829 6.95118 2.85355 7.14645L6.5 10.7929L14.1464 3.14645C14.3417 2.95118 14.6583 2.95118 14.8536 3.14645Z"
11
+ />
12
+ </svg>
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ export let size: 'small' | 'medium' | 'large'
3
+ const fill: string = 'currentColor'
4
+ </script>
5
+
6
+ <svg class="svg-{size}" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
7
+ <g>
8
+ <path
9
+ {fill}
10
+ d="M7.1,13.2c0.3,0.3,0.8,0.3,1.1,0c0.3-0.3,0.3-0.8,0-1.1l-0.6-0.6c-0.3-0.3-0.8-0.3-1.1,0c-0.3,0.3-0.3,0.8,0,1.1L7.1,13.2z"
11
+ fill-rule="evenodd"
12
+ clip-rule="evenodd"
13
+ />
14
+ <path
15
+ {fill}
16
+ d="M22.5,6.5c-0.3-0.3-0.8-0.3-1.1,0L12,15.9l-0.1-0.1c-0.3-0.3-0.8-0.3-1.1,0c-0.3,0.3-0.3,0.8,0,1.1l0.6,0.6c0.3,0.3,0.8,0.3,1.1,0l10-10C22.8,7.2,22.8,6.8,22.5,6.5z"
17
+ fill-rule="evenodd"
18
+ clip-rule="evenodd"
19
+ />
20
+ <path
21
+ {fill}
22
+ d="M17.5,6.5c-0.3-0.3-0.8-0.3-1.1,0L7,15.9l-4.5-4.5c-0.3-0.3-0.8-0.3-1.1,0c-0.3,0.3-0.3,0.8,0,1.1l5,5c0.3,0.3,0.8,0.3,1.1,0l10-10C17.8,7.2,17.8,6.8,17.5,6.5z"
23
+ fill-rule="evenodd"
24
+ clip-rule="evenodd"
25
+ />
26
+ </g>
27
+ </svg>
@@ -0,0 +1,12 @@
1
+ <script lang="ts">
2
+ export let size: 'small' | 'medium' | 'large'
3
+ export let fill: string = 'currentColor'
4
+ </script>
5
+
6
+ <svg class="svg-{size}" viewBox="0 0 16 16" {fill} xmlns="http://www.w3.org/2000/svg">
7
+ <path
8
+ fill-rule="evenodd"
9
+ clip-rule="evenodd"
10
+ d="M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM11.7836 6.42901C12.0858 6.08709 12.0695 5.55006 11.7472 5.22952C11.4248 4.90897 10.9186 4.9263 10.6164 5.26821L7.14921 9.19122L5.3315 7.4773C5.00127 7.16593 4.49561 7.19748 4.20208 7.54777C3.90855 7.89806 3.93829 8.43445 4.26852 8.74581L6.28032 10.6427C6.82041 11.152 7.64463 11.1122 8.13886 10.553L11.7836 6.42901Z"
11
+ />
12
+ </svg>