@sirenodeck/sirenodeck 0.1.1-alpha.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 (485) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/bin/_wrapper-shared.js +42 -0
  4. package/bin/dev.js +95 -0
  5. package/bin/sirenodeck.js +42 -0
  6. package/config/default-config.yml +117 -0
  7. package/config/starter-config.yml +54 -0
  8. package/dist/main.mjs +64702 -0
  9. package/package.json +140 -0
  10. package/src/action/executor.ts +156 -0
  11. package/src/action/index.ts +7 -0
  12. package/src/addon/api-types.ts +15 -0
  13. package/src/addon/api.ts +461 -0
  14. package/src/addon/check-runner.ts +84 -0
  15. package/src/addon/index.ts +5 -0
  16. package/src/addon/loader.ts +441 -0
  17. package/src/addon/registry.ts +230 -0
  18. package/src/addon/spec.ts +69 -0
  19. package/src/api/addon.ts +33 -0
  20. package/src/api/asset-url.ts +24 -0
  21. package/src/api/index.ts +50 -0
  22. package/src/api/protocol-internal.ts +656 -0
  23. package/src/api/protocol.ts +2 -0
  24. package/src/api/react/index.ts +11 -0
  25. package/src/api/react/registry.ts +91 -0
  26. package/src/api/react/use-addon-channel.ts +26 -0
  27. package/src/api/react/use-button-state.tsx +23 -0
  28. package/src/api/react/use-deck.ts +24 -0
  29. package/src/assets/logo.png +0 -0
  30. package/src/assets/logo72x72.png +0 -0
  31. package/src/assets/logoFull.png +0 -0
  32. package/src/builtin-addons/brightness/README.md +51 -0
  33. package/src/builtin-addons/brightness/buttons/brightness/backend.ts +13 -0
  34. package/src/builtin-addons/brightness/buttons/brightness/config.ts +10 -0
  35. package/src/builtin-addons/brightness/buttons/brightness/frontend.tsx +50 -0
  36. package/src/builtin-addons/brightness/domain/macos.ts +46 -0
  37. package/src/builtin-addons/brightness/index.d.ts +5 -0
  38. package/src/builtin-addons/brightness/index.ts +20 -0
  39. package/src/builtin-addons/brightness/poller.ts +27 -0
  40. package/src/builtin-addons/brightness/providers/darwin.ts +107 -0
  41. package/src/builtin-addons/brightness/providers/index.ts +81 -0
  42. package/src/builtin-addons/brightness/providers/linux.ts +108 -0
  43. package/src/builtin-addons/brightness/providers/windows.ts +77 -0
  44. package/src/builtin-addons/brightness/sirenodeck.json +6 -0
  45. package/src/builtin-addons/coding-agents/assets/claude-code.svg +1 -0
  46. package/src/builtin-addons/coding-agents/assets/opencode-dark-square.svg +1 -0
  47. package/src/builtin-addons/coding-agents/buttons/agent/backend.ts +82 -0
  48. package/src/builtin-addons/coding-agents/buttons/agent/config.ts +13 -0
  49. package/src/builtin-addons/coding-agents/buttons/agent/frontend.tsx +130 -0
  50. package/src/builtin-addons/coding-agents/buttons/agent/pages.tsx +150 -0
  51. package/src/builtin-addons/coding-agents/buttons/summary/backend.ts +48 -0
  52. package/src/builtin-addons/coding-agents/buttons/summary/config.ts +11 -0
  53. package/src/builtin-addons/coding-agents/buttons/summary/frontend.tsx +254 -0
  54. package/src/builtin-addons/coding-agents/decks/agents.ts +69 -0
  55. package/src/builtin-addons/coding-agents/global/backend.ts +402 -0
  56. package/src/builtin-addons/coding-agents/global-entry.ts +7 -0
  57. package/src/builtin-addons/coding-agents/hook/script.ts +123 -0
  58. package/src/builtin-addons/coding-agents/index.ts +15 -0
  59. package/src/builtin-addons/coding-agents/manifest.ts +115 -0
  60. package/src/builtin-addons/coding-agents/providers/claude-code.ts +470 -0
  61. package/src/builtin-addons/coding-agents/providers/claude-instances.ts +184 -0
  62. package/src/builtin-addons/coding-agents/providers/opencode-instances.ts +108 -0
  63. package/src/builtin-addons/coding-agents/providers/opencode.ts +636 -0
  64. package/src/builtin-addons/coding-agents/providers/registry.ts +120 -0
  65. package/src/builtin-addons/coding-agents/providers/spawn.ts +112 -0
  66. package/src/builtin-addons/coding-agents/shared/claude-hook-events.ts +55 -0
  67. package/src/builtin-addons/coding-agents/shared/claude-status.ts +236 -0
  68. package/src/builtin-addons/coding-agents/shared/live-count.ts +39 -0
  69. package/src/builtin-addons/coding-agents/shared/notifier.ts +58 -0
  70. package/src/builtin-addons/coding-agents/shared/opencode-status.ts +82 -0
  71. package/src/builtin-addons/coding-agents/shared/snapshot.ts +66 -0
  72. package/src/builtin-addons/coding-agents/shared/state.ts +72 -0
  73. package/src/builtin-addons/coding-agents/sirenodeck.json +6 -0
  74. package/src/builtin-addons/coding-agents/types/types.ts +33 -0
  75. package/src/builtin-addons/core/README.md +89 -0
  76. package/src/builtin-addons/core/buttons/action/backend.ts +7 -0
  77. package/src/builtin-addons/core/buttons/action/config.ts +13 -0
  78. package/src/builtin-addons/core/buttons/action/frontend.tsx +16 -0
  79. package/src/builtin-addons/core/buttons/change-deck/backend.ts +18 -0
  80. package/src/builtin-addons/core/buttons/change-deck/config.ts +15 -0
  81. package/src/builtin-addons/core/buttons/change-deck/frontend.tsx +18 -0
  82. package/src/builtin-addons/core/buttons/media-sample/backend.ts +8 -0
  83. package/src/builtin-addons/core/buttons/media-sample/config.ts +7 -0
  84. package/src/builtin-addons/core/buttons/media-sample/frontend.tsx +2 -0
  85. package/src/builtin-addons/core/buttons/page-nav/backend.ts +28 -0
  86. package/src/builtin-addons/core/buttons/page-nav/config.ts +9 -0
  87. package/src/builtin-addons/core/buttons/page-nav/frontend.tsx +68 -0
  88. package/src/builtin-addons/core/buttons/toggle/backend.ts +119 -0
  89. package/src/builtin-addons/core/buttons/toggle/config.ts +57 -0
  90. package/src/builtin-addons/core/buttons/toggle/frontend.tsx +57 -0
  91. package/src/builtin-addons/core/buttons/toggle/global-service.ts +174 -0
  92. package/src/builtin-addons/core/index.ts +120 -0
  93. package/src/builtin-addons/core/sirenodeck.json +6 -0
  94. package/src/builtin-addons/date-time/README.md +73 -0
  95. package/src/builtin-addons/date-time/buttons/analog-clock/backend.ts +10 -0
  96. package/src/builtin-addons/date-time/buttons/analog-clock/config.ts +4 -0
  97. package/src/builtin-addons/date-time/buttons/analog-clock/frontend.tsx +88 -0
  98. package/src/builtin-addons/date-time/buttons/custom/backend.ts +10 -0
  99. package/src/builtin-addons/date-time/buttons/custom/config.ts +9 -0
  100. package/src/builtin-addons/date-time/buttons/custom/frontend.tsx +26 -0
  101. package/src/builtin-addons/date-time/buttons/date/backend.ts +10 -0
  102. package/src/builtin-addons/date-time/buttons/date/config.ts +10 -0
  103. package/src/builtin-addons/date-time/buttons/date/frontend.tsx +42 -0
  104. package/src/builtin-addons/date-time/buttons/time/backend.ts +10 -0
  105. package/src/builtin-addons/date-time/buttons/time/config.ts +9 -0
  106. package/src/builtin-addons/date-time/buttons/time/frontend.tsx +29 -0
  107. package/src/builtin-addons/date-time/index.d.ts +5 -0
  108. package/src/builtin-addons/date-time/index.ts +30 -0
  109. package/src/builtin-addons/date-time/poller.ts +11 -0
  110. package/src/builtin-addons/date-time/shared/format-date.ts +36 -0
  111. package/src/builtin-addons/date-time/shared/format.ts +105 -0
  112. package/src/builtin-addons/date-time/shared/use-now.ts +10 -0
  113. package/src/builtin-addons/date-time/sirenodeck.json +6 -0
  114. package/src/builtin-addons/emoji-selector/README.md +45 -0
  115. package/src/builtin-addons/emoji-selector/assets/launcher.svg +10 -0
  116. package/src/builtin-addons/emoji-selector/assets/smileys.svg +8 -0
  117. package/src/builtin-addons/emoji-selector/buttons/category/backend.ts +14 -0
  118. package/src/builtin-addons/emoji-selector/buttons/category/config.ts +8 -0
  119. package/src/builtin-addons/emoji-selector/buttons/category/frontend.tsx +19 -0
  120. package/src/builtin-addons/emoji-selector/buttons/emoji/backend.ts +7 -0
  121. package/src/builtin-addons/emoji-selector/buttons/emoji/config.ts +9 -0
  122. package/src/builtin-addons/emoji-selector/buttons/emoji/frontend.tsx +11 -0
  123. package/src/builtin-addons/emoji-selector/buttons/launcher/backend.ts +13 -0
  124. package/src/builtin-addons/emoji-selector/buttons/launcher/config.ts +6 -0
  125. package/src/builtin-addons/emoji-selector/buttons/launcher/frontend.tsx +31 -0
  126. package/src/builtin-addons/emoji-selector/data/categories.ts +1084 -0
  127. package/src/builtin-addons/emoji-selector/decks/index.ts +137 -0
  128. package/src/builtin-addons/emoji-selector/index.d.ts +5 -0
  129. package/src/builtin-addons/emoji-selector/index.ts +29 -0
  130. package/src/builtin-addons/emoji-selector/sirenodeck.json +6 -0
  131. package/src/builtin-addons/emoji-selector/support.ts +49 -0
  132. package/src/builtin-addons/index.ts +13 -0
  133. package/src/builtin-addons/internal-settings/README.md +26 -0
  134. package/src/builtin-addons/internal-settings/backend.ts +58 -0
  135. package/src/builtin-addons/internal-settings/buttons/app-info/backend.ts +7 -0
  136. package/src/builtin-addons/internal-settings/buttons/app-info/config.ts +13 -0
  137. package/src/builtin-addons/internal-settings/buttons/app-info/frontend.tsx +18 -0
  138. package/src/builtin-addons/internal-settings/buttons/brightness/common/frontend.tsx +50 -0
  139. package/src/builtin-addons/internal-settings/buttons/brightness-down/backend.ts +16 -0
  140. package/src/builtin-addons/internal-settings/buttons/brightness-down/config.ts +6 -0
  141. package/src/builtin-addons/internal-settings/buttons/brightness-down/frontend.tsx +8 -0
  142. package/src/builtin-addons/internal-settings/buttons/brightness-up/backend.ts +16 -0
  143. package/src/builtin-addons/internal-settings/buttons/brightness-up/config.ts +6 -0
  144. package/src/builtin-addons/internal-settings/buttons/brightness-up/frontend.tsx +8 -0
  145. package/src/builtin-addons/internal-settings/decks/settings.ts +25 -0
  146. package/src/builtin-addons/internal-settings/index.d.ts +4 -0
  147. package/src/builtin-addons/internal-settings/index.ts +53 -0
  148. package/src/builtin-addons/internal-settings/logo72x72.png +0 -0
  149. package/src/builtin-addons/internal-settings/sirenodeck.json +6 -0
  150. package/src/builtin-addons/media/README.md +45 -0
  151. package/src/builtin-addons/media/backend.ts +143 -0
  152. package/src/builtin-addons/media/buttons/media-player/backend.ts +19 -0
  153. package/src/builtin-addons/media/buttons/media-player/components/MediaStatus.tsx +25 -0
  154. package/src/builtin-addons/media/buttons/media-player/components/MediaSurface.tsx +52 -0
  155. package/src/builtin-addons/media/buttons/media-player/components/ProgressBar.tsx +21 -0
  156. package/src/builtin-addons/media/buttons/media-player/components/status-meta.ts +36 -0
  157. package/src/builtin-addons/media/buttons/media-player/config.ts +4 -0
  158. package/src/builtin-addons/media/buttons/media-player/frontend.tsx +29 -0
  159. package/src/builtin-addons/media/buttons/volume/common/frontend.tsx +52 -0
  160. package/src/builtin-addons/media/buttons/volume/mute/backend.ts +13 -0
  161. package/src/builtin-addons/media/buttons/volume/mute/config.ts +4 -0
  162. package/src/builtin-addons/media/buttons/volume/mute/frontend.tsx +26 -0
  163. package/src/builtin-addons/media/buttons/volume/volume-down/backend.ts +14 -0
  164. package/src/builtin-addons/media/buttons/volume/volume-down/config.ts +6 -0
  165. package/src/builtin-addons/media/buttons/volume/volume-down/frontend.tsx +10 -0
  166. package/src/builtin-addons/media/buttons/volume/volume-up/backend.ts +14 -0
  167. package/src/builtin-addons/media/buttons/volume/volume-up/config.ts +6 -0
  168. package/src/builtin-addons/media/buttons/volume/volume-up/frontend.tsx +8 -0
  169. package/src/builtin-addons/media/checks.ts +104 -0
  170. package/src/builtin-addons/media/executor.ts +36 -0
  171. package/src/builtin-addons/media/index.d.ts +5 -0
  172. package/src/builtin-addons/media/index.ts +53 -0
  173. package/src/builtin-addons/media/progress.ts +16 -0
  174. package/src/builtin-addons/media/providers/darwin.ts +391 -0
  175. package/src/builtin-addons/media/providers/index.ts +27 -0
  176. package/src/builtin-addons/media/providers/linux.ts +196 -0
  177. package/src/builtin-addons/media/providers/types.ts +48 -0
  178. package/src/builtin-addons/media/providers/windows.ts +121 -0
  179. package/src/builtin-addons/media/sirenodeck.json +6 -0
  180. package/src/builtin-addons/media/state.ts +19 -0
  181. package/src/builtin-addons/register-builtins.ts +65 -0
  182. package/src/builtin-addons/session/README.md +14 -0
  183. package/src/builtin-addons/session/buttons/session-info/backend.ts +8 -0
  184. package/src/builtin-addons/session/buttons/session-info/config.ts +4 -0
  185. package/src/builtin-addons/session/buttons/session-info/frontend.tsx +2 -0
  186. package/src/builtin-addons/session/buttons/time/backend.ts +7 -0
  187. package/src/builtin-addons/session/buttons/time/config.ts +6 -0
  188. package/src/builtin-addons/session/buttons/time/frontend.tsx +2 -0
  189. package/src/builtin-addons/session/index.d.ts +5 -0
  190. package/src/builtin-addons/session/index.ts +18 -0
  191. package/src/builtin-addons/session/sirenodeck.json +6 -0
  192. package/src/builtin-addons/system-status/README.md +169 -0
  193. package/src/builtin-addons/system-status/buttons/_shared.ts +131 -0
  194. package/src/builtin-addons/system-status/buttons/system-status/frontend.tsx +224 -0
  195. package/src/builtin-addons/system-status/buttons/system-status/schemas.ts +67 -0
  196. package/src/builtin-addons/system-status/domain/catalog.ts +53 -0
  197. package/src/builtin-addons/system-status/domain/chart-sampler.ts +58 -0
  198. package/src/builtin-addons/system-status/domain/display-metrics.ts +128 -0
  199. package/src/builtin-addons/system-status/domain/index.ts +10 -0
  200. package/src/builtin-addons/system-status/domain/live-metrics.ts +1021 -0
  201. package/src/builtin-addons/system-status/domain/metric-ids.ts +0 -0
  202. package/src/builtin-addons/system-status/index.ts +16 -0
  203. package/src/builtin-addons/system-status/manifest.ts +105 -0
  204. package/src/builtin-addons/system-status/shared/metrics-catalog.ts +316 -0
  205. package/src/builtin-addons/system-status/sirenodeck.json +6 -0
  206. package/src/builtin-addons/test-buildin/decks/action-buttons-test.ts +56 -0
  207. package/src/builtin-addons/test-buildin/index.d.ts +5 -0
  208. package/src/builtin-addons/test-buildin/index.ts +16 -0
  209. package/src/builtin-addons/value-display/README.md +59 -0
  210. package/src/builtin-addons/value-display/backend.ts +86 -0
  211. package/src/builtin-addons/value-display/buttons/value-display/backend.ts +17 -0
  212. package/src/builtin-addons/value-display/buttons/value-display/config.ts +36 -0
  213. package/src/builtin-addons/value-display/buttons/value-display/frontend.tsx +54 -0
  214. package/src/builtin-addons/value-display/index.d.ts +5 -0
  215. package/src/builtin-addons/value-display/index.ts +23 -0
  216. package/src/builtin-addons/value-display/sirenodeck.json +6 -0
  217. package/src/builtin-addons/weather/README.md +46 -0
  218. package/src/builtin-addons/weather/backend.ts +121 -0
  219. package/src/builtin-addons/weather/buttons/weather/backend.ts +27 -0
  220. package/src/builtin-addons/weather/buttons/weather/config.ts +29 -0
  221. package/src/builtin-addons/weather/buttons/weather/frontend.tsx +63 -0
  222. package/src/builtin-addons/weather/buttons/weather/icons.tsx +88 -0
  223. package/src/builtin-addons/weather/buttons/weather/pages.tsx +109 -0
  224. package/src/builtin-addons/weather/domain/codes.ts +35 -0
  225. package/src/builtin-addons/weather/domain/fetch.ts +47 -0
  226. package/src/builtin-addons/weather/index.d.ts +5 -0
  227. package/src/builtin-addons/weather/index.ts +23 -0
  228. package/src/builtin-addons/weather/poller.ts +70 -0
  229. package/src/builtin-addons/weather/provider/city-key.ts +9 -0
  230. package/src/builtin-addons/weather/provider/codes.ts +35 -0
  231. package/src/builtin-addons/weather/provider/fetch.ts +97 -0
  232. package/src/builtin-addons/weather/provider/geocode.ts +67 -0
  233. package/src/builtin-addons/weather/provider/types.ts +42 -0
  234. package/src/builtin-addons/weather/sirenodeck.json +6 -0
  235. package/src/cli/coding-agents-onboarding.ts +434 -0
  236. package/src/cli/commands/addon-decks.ts +441 -0
  237. package/src/cli/commands/addon-registry.ts +639 -0
  238. package/src/cli/commands/emulator-mode.ts +289 -0
  239. package/src/cli/commands/install.ts +128 -0
  240. package/src/cli/commands/logs.ts +74 -0
  241. package/src/cli/commands/network-bind.ts +111 -0
  242. package/src/cli/commands/pipeline/helpers.ts +75 -0
  243. package/src/cli/commands/pipeline/preflight.ts +20 -0
  244. package/src/cli/commands/port-identity.ts +152 -0
  245. package/src/cli/commands/reload.ts +37 -0
  246. package/src/cli/commands/restart.ts +139 -0
  247. package/src/cli/commands/run.ts +2270 -0
  248. package/src/cli/commands/service/install.ts +121 -0
  249. package/src/cli/commands/service/render-template.ts +158 -0
  250. package/src/cli/commands/service-manager.ts +184 -0
  251. package/src/cli/commands/spawn-daemon.ts +251 -0
  252. package/src/cli/commands/start.ts +1061 -0
  253. package/src/cli/commands/status.ts +110 -0
  254. package/src/cli/commands/stop.ts +121 -0
  255. package/src/cli/commands/subprocess-supervisor.ts +203 -0
  256. package/src/cli/commands/system-requirements.ts +699 -0
  257. package/src/cli/cwd.ts +28 -0
  258. package/src/cli/first-run.ts +149 -0
  259. package/src/cli/http-server.ts +244 -0
  260. package/src/cli/index.ts +355 -0
  261. package/src/cli/install-root.ts +26 -0
  262. package/src/cli/main.ts +194 -0
  263. package/src/cli/package-manager.ts +175 -0
  264. package/src/cli/probe-deps.ts +45 -0
  265. package/src/cli/prompt.ts +22 -0
  266. package/src/cli/startup-display.ts +452 -0
  267. package/src/config/builtin-icons.ts +57 -0
  268. package/src/config/config-diff.ts +54 -0
  269. package/src/config/discovery.ts +64 -0
  270. package/src/config/icon-resolver.ts +90 -0
  271. package/src/config/include-resolver.ts +202 -0
  272. package/src/config/index.ts +9 -0
  273. package/src/config/loader.ts +187 -0
  274. package/src/config/mutation.ts +514 -0
  275. package/src/config/reference-expander.ts +84 -0
  276. package/src/config/schemas.ts +223 -0
  277. package/src/config/validation.ts +254 -0
  278. package/src/core/asset-id.ts +21 -0
  279. package/src/core/gesture-state.ts +344 -0
  280. package/src/core/icon-asset-registry.ts +127 -0
  281. package/src/core/icon-source.ts +86 -0
  282. package/src/core/index.ts +30 -0
  283. package/src/core/mime.ts +16 -0
  284. package/src/core/pagination.ts +90 -0
  285. package/src/core/pub-sub.ts +126 -0
  286. package/src/core/settings.ts +153 -0
  287. package/src/core/store.ts +88 -0
  288. package/src/core/watcher.ts +73 -0
  289. package/src/deck/addon-handler-bridge.ts +516 -0
  290. package/src/deck/deck-config.ts +271 -0
  291. package/src/deck/editor-surfaces.ts +87 -0
  292. package/src/deck/host-context.ts +18 -0
  293. package/src/deck/index.ts +102 -0
  294. package/src/deck/macro-parse.ts +182 -0
  295. package/src/deck/methods.ts +348 -0
  296. package/src/deck/paginate-deck.ts +98 -0
  297. package/src/deck/position-buttons.ts +57 -0
  298. package/src/deck/runtime/index.ts +5 -0
  299. package/src/deck/runtime/runtime.ts +1060 -0
  300. package/src/deck/runtime-subscriptions.ts +45 -0
  301. package/src/deck/system-back-injection.ts +62 -0
  302. package/src/deck/system-buttons/registry.tsx +97 -0
  303. package/src/deck/system-buttons/types.ts +14 -0
  304. package/src/device/black-frame.ts +73 -0
  305. package/src/device/index.ts +13 -0
  306. package/src/device/linux-udev.ts +36 -0
  307. package/src/device/models.ts +89 -0
  308. package/src/device/reconnecting.ts +193 -0
  309. package/src/device/registry.ts +38 -0
  310. package/src/device/stream-deck.ts +155 -0
  311. package/src/index.ts +74 -0
  312. package/src/outputClient/emulator.ts +357 -0
  313. package/src/outputClient/index.ts +26 -0
  314. package/src/outputClient/open-browser.ts +26 -0
  315. package/src/outputClient/real.ts +393 -0
  316. package/src/outputClient/types.ts +83 -0
  317. package/src/render/browser-renderer.ts +240 -0
  318. package/src/render/buffer-hash.ts +20 -0
  319. package/src/render/editor-handler.ts +197 -0
  320. package/src/render/emulator-server.ts +128 -0
  321. package/src/render/icon-source-resolver.ts +69 -0
  322. package/src/render/index.ts +16 -0
  323. package/src/render/protocol.ts +61 -0
  324. package/src/render/push-raw-image.ts +100 -0
  325. package/src/render/screenshot-cadence.ts +87 -0
  326. package/src/render/state-publisher.ts +110 -0
  327. package/src/render/vite-server.ts +138 -0
  328. package/src/render/ws-bridge.ts +315 -0
  329. package/src/system/device-selection.ts +80 -0
  330. package/src/system/glob-match.ts +74 -0
  331. package/src/system/providers/active-app/darwin.ts +117 -0
  332. package/src/system/providers/active-app/linux.ts +245 -0
  333. package/src/system/providers/active-app/wayland-gnome.ts +303 -0
  334. package/src/system/providers/active-app/windows.ts +94 -0
  335. package/src/system/providers/active-app.ts +97 -0
  336. package/src/system/providers/clipboard/darwin.ts +65 -0
  337. package/src/system/providers/clipboard/linux.ts +163 -0
  338. package/src/system/providers/clipboard/windows.ts +94 -0
  339. package/src/system/providers/clipboard.ts +84 -0
  340. package/src/system/providers/error.ts +16 -0
  341. package/src/system/providers/key-macro/darwin.ts +221 -0
  342. package/src/system/providers/key-macro/linux.ts +651 -0
  343. package/src/system/providers/key-macro/parser.ts +215 -0
  344. package/src/system/providers/key-macro/windows.ts +476 -0
  345. package/src/system/providers/key-macro.ts +79 -0
  346. package/src/system/providers/notification/darwin.ts +36 -0
  347. package/src/system/providers/notification/linux.ts +115 -0
  348. package/src/system/providers/notification/windows.ts +72 -0
  349. package/src/system/providers/notification.ts +75 -0
  350. package/src/system/providers/session/darwin.ts +82 -0
  351. package/src/system/providers/session/linux.ts +175 -0
  352. package/src/system/providers/session/windows.ts +73 -0
  353. package/src/system/providers/session.ts +89 -0
  354. package/src/system/providers/shared.ts +65 -0
  355. package/src/system/requirements.ts +235 -0
  356. package/src/system/setup-wizard/config-seed.ts +30 -0
  357. package/src/system/setup-wizard/format.ts +275 -0
  358. package/src/system/setup-wizard/index.ts +45 -0
  359. package/src/system/setup-wizard/open-settings.ts +26 -0
  360. package/src/system/setup-wizard/plan.ts +230 -0
  361. package/src/system/setup-wizard/probe-cache.ts +34 -0
  362. package/src/system/setup-wizard/probe.ts +486 -0
  363. package/src/system/setup-wizard/runtime-features.ts +85 -0
  364. package/src/system/setup-wizard/sudo.ts +178 -0
  365. package/src/system/setup-wizard/types.ts +133 -0
  366. package/src/system/virtual-stream-deck.ts +67 -0
  367. package/src/themes/css.ts +210 -0
  368. package/src/themes/default/assets/IBMPlexSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  369. package/src/themes/default/assets/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  370. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-Bold.ttf +0 -0
  371. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-BoldItalic.ttf +0 -0
  372. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-ExtraLight.ttf +0 -0
  373. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-ExtraLightItalic.ttf +0 -0
  374. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-Italic.ttf +0 -0
  375. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-Light.ttf +0 -0
  376. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-LightItalic.ttf +0 -0
  377. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-Medium.ttf +0 -0
  378. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-MediumItalic.ttf +0 -0
  379. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-Regular.ttf +0 -0
  380. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-SemiBold.ttf +0 -0
  381. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-SemiBoldItalic.ttf +0 -0
  382. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-Thin.ttf +0 -0
  383. package/src/themes/default/assets/IBM_Plex_Mono/IBMPlexMono-ThinItalic.ttf +0 -0
  384. package/src/themes/default/assets/IBM_Plex_Mono/OFL.txt +93 -0
  385. package/src/themes/default/assets/OFL.txt +93 -0
  386. package/src/themes/default/assets/README.txt +106 -0
  387. package/src/themes/default/assets/static/IBMPlexSans-Bold.ttf +0 -0
  388. package/src/themes/default/assets/static/IBMPlexSans-BoldItalic.ttf +0 -0
  389. package/src/themes/default/assets/static/IBMPlexSans-ExtraLight.ttf +0 -0
  390. package/src/themes/default/assets/static/IBMPlexSans-ExtraLightItalic.ttf +0 -0
  391. package/src/themes/default/assets/static/IBMPlexSans-Italic.ttf +0 -0
  392. package/src/themes/default/assets/static/IBMPlexSans-Light.ttf +0 -0
  393. package/src/themes/default/assets/static/IBMPlexSans-LightItalic.ttf +0 -0
  394. package/src/themes/default/assets/static/IBMPlexSans-Medium.ttf +0 -0
  395. package/src/themes/default/assets/static/IBMPlexSans-MediumItalic.ttf +0 -0
  396. package/src/themes/default/assets/static/IBMPlexSans-Regular.ttf +0 -0
  397. package/src/themes/default/assets/static/IBMPlexSans-SemiBold.ttf +0 -0
  398. package/src/themes/default/assets/static/IBMPlexSans-SemiBoldItalic.ttf +0 -0
  399. package/src/themes/default/assets/static/IBMPlexSans-Thin.ttf +0 -0
  400. package/src/themes/default/assets/static/IBMPlexSans-ThinItalic.ttf +0 -0
  401. package/src/themes/default/assets/static/IBMPlexSans_Condensed-Bold.ttf +0 -0
  402. package/src/themes/default/assets/static/IBMPlexSans_Condensed-BoldItalic.ttf +0 -0
  403. package/src/themes/default/assets/static/IBMPlexSans_Condensed-ExtraLight.ttf +0 -0
  404. package/src/themes/default/assets/static/IBMPlexSans_Condensed-ExtraLightItalic.ttf +0 -0
  405. package/src/themes/default/assets/static/IBMPlexSans_Condensed-Italic.ttf +0 -0
  406. package/src/themes/default/assets/static/IBMPlexSans_Condensed-Light.ttf +0 -0
  407. package/src/themes/default/assets/static/IBMPlexSans_Condensed-LightItalic.ttf +0 -0
  408. package/src/themes/default/assets/static/IBMPlexSans_Condensed-Medium.ttf +0 -0
  409. package/src/themes/default/assets/static/IBMPlexSans_Condensed-MediumItalic.ttf +0 -0
  410. package/src/themes/default/assets/static/IBMPlexSans_Condensed-Regular.ttf +0 -0
  411. package/src/themes/default/assets/static/IBMPlexSans_Condensed-SemiBold.ttf +0 -0
  412. package/src/themes/default/assets/static/IBMPlexSans_Condensed-SemiBoldItalic.ttf +0 -0
  413. package/src/themes/default/assets/static/IBMPlexSans_Condensed-Thin.ttf +0 -0
  414. package/src/themes/default/assets/static/IBMPlexSans_Condensed-ThinItalic.ttf +0 -0
  415. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-Bold.ttf +0 -0
  416. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-BoldItalic.ttf +0 -0
  417. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-ExtraLight.ttf +0 -0
  418. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-ExtraLightItalic.ttf +0 -0
  419. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-Italic.ttf +0 -0
  420. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-Light.ttf +0 -0
  421. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-LightItalic.ttf +0 -0
  422. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-Medium.ttf +0 -0
  423. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-MediumItalic.ttf +0 -0
  424. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-Regular.ttf +0 -0
  425. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-SemiBold.ttf +0 -0
  426. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
  427. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-Thin.ttf +0 -0
  428. package/src/themes/default/assets/static/IBMPlexSans_SemiCondensed-ThinItalic.ttf +0 -0
  429. package/src/themes/default/components.css +81 -0
  430. package/src/themes/default/sirenodeck.json +170 -0
  431. package/src/themes/index.ts +14 -0
  432. package/src/themes/light/assets/IBMPlexSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  433. package/src/themes/light/assets/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  434. package/src/themes/light/assets/IBM_Plex_Mono/IBMPlexMono-Bold.ttf +0 -0
  435. package/src/themes/light/assets/IBM_Plex_Mono/IBMPlexMono-Medium.ttf +0 -0
  436. package/src/themes/light/assets/IBM_Plex_Mono/IBMPlexMono-Regular.ttf +0 -0
  437. package/src/themes/light/assets/IBM_Plex_Mono/OFL.txt +93 -0
  438. package/src/themes/light/assets/OFL.txt +93 -0
  439. package/src/themes/light/assets/README.txt +106 -0
  440. package/src/themes/light/assets/static/IBMPlexSans-Light.ttf +0 -0
  441. package/src/themes/light/assets/static/IBMPlexSans-LightItalic.ttf +0 -0
  442. package/src/themes/light/assets/static/IBMPlexSans-Thin.ttf +0 -0
  443. package/src/themes/light/components.css +70 -0
  444. package/src/themes/light/sirenodeck.json +170 -0
  445. package/src/themes/loader.ts +343 -0
  446. package/src/themes/manifest.ts +164 -0
  447. package/src/themes/use-resolved-theme.tsx +32 -0
  448. package/src/ui/ButtonFrame.tsx +230 -0
  449. package/src/ui/contexts/AssetCacheContext.tsx +43 -0
  450. package/src/ui/index.ts +20 -0
  451. package/src/ui/primitives/Chip.tsx +53 -0
  452. package/src/ui/primitives/Icon.tsx +209 -0
  453. package/src/ui/primitives/Label.tsx +82 -0
  454. package/src/ui/primitives/ProgressBar.tsx +38 -0
  455. package/src/ui/primitives/TapIndicator.tsx +67 -0
  456. package/src/ui/primitives/Text.tsx +810 -0
  457. package/src/ui/primitives/index.ts +6 -0
  458. package/src/ui/surfaces/BarsSurface.tsx +211 -0
  459. package/src/ui/surfaces/IconLabelProgressSurface.tsx +133 -0
  460. package/src/ui/surfaces/IconLabelSurface.tsx +59 -0
  461. package/src/ui/surfaces/LabelValueListSurface.tsx +202 -0
  462. package/src/ui/surfaces/PaginatedSurface.tsx +164 -0
  463. package/src/ui/surfaces/SplitActionSurface.tsx +98 -0
  464. package/src/ui/surfaces/TemporaryErrorSurface.tsx +68 -0
  465. package/src/ui/surfaces/ValueChart.tsx +218 -0
  466. package/src/ui/surfaces/index.ts +32 -0
  467. package/src/ui/surfaces/paginated-schema.ts +22 -0
  468. package/src/ui/theme-presentation-builder.ts +184 -0
  469. package/src/ui/theme-presentation.tsx +146 -0
  470. package/src/ui/utils/cn.ts +12 -0
  471. package/src/util/cache-paths.ts +38 -0
  472. package/src/util/config-diff.ts +16 -0
  473. package/src/util/daemon-control.ts +85 -0
  474. package/src/util/daemon.ts +575 -0
  475. package/src/util/device-config.ts +56 -0
  476. package/src/util/errors.ts +13 -0
  477. package/src/util/log-reader.ts +114 -0
  478. package/src/util/log-tail.ts +103 -0
  479. package/src/util/logger.ts +417 -0
  480. package/src/util/process-title.ts +79 -0
  481. package/src/util/single-instance.ts +202 -0
  482. package/src/version.ts +10 -0
  483. package/src/vite/index.ts +6 -0
  484. package/src/vite/virtual-modules.ts +631 -0
  485. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,1084 @@
1
+ export type Emoji = {
2
+ char: string
3
+ shortcode?: string
4
+ }
5
+
6
+ export type EmojiCategory = {
7
+ id: string
8
+ label: string
9
+ icon: string
10
+ emojis: Emoji[]
11
+ }
12
+
13
+ export const categories: EmojiCategory[] = [
14
+ {
15
+ id: "smileys",
16
+ label: "Smileys",
17
+ icon: "😀",
18
+ emojis: [
19
+ { char: "😀", shortcode: "grinning" },
20
+ { char: "😃", shortcode: "smiley" },
21
+ { char: "😄", shortcode: "smile" },
22
+ { char: "😁", shortcode: "grin" },
23
+ { char: "😆", shortcode: "laughing" },
24
+ { char: "😅", shortcode: "sweat_smile" },
25
+ { char: "🤣", shortcode: "rofl" },
26
+ { char: "😂", shortcode: "joy" },
27
+ { char: "🙂", shortcode: "slightly_smiling" },
28
+ { char: "🙃", shortcode: "upside_down" },
29
+ { char: "😉", shortcode: "wink" },
30
+ { char: "😊", shortcode: "blush" },
31
+ { char: "😇", shortcode: "innocent" },
32
+ { char: "😍", shortcode: "heart_eyes" },
33
+ { char: "🥰", shortcode: "smiling_face_with_three_hearts" },
34
+ { char: "😘", shortcode: "kissing_heart" },
35
+ { char: "😗", shortcode: "kissing" },
36
+ { char: "😚", shortcode: "kissing_closed_eyes" },
37
+ { char: "😙", shortcode: "kissing_smiling_eyes" },
38
+ { char: "🥲", shortcode: "smiling_face_with_tear" },
39
+ { char: "😋", shortcode: "yum" },
40
+ { char: "😛", shortcode: "stuck_out_tongue" },
41
+ { char: "😜", shortcode: "stuck_out_tongue_winking_eye" },
42
+ { char: "🤪", shortcode: "zany_face" },
43
+ { char: "😝", shortcode: "stuck_out_tongue_closed_eyes" },
44
+ { char: "🤑", shortcode: "money_mouth_face" },
45
+ { char: "🤗", shortcode: "hugs" },
46
+ { char: "🤭", shortcode: "hand_over_mouth" },
47
+ { char: "🤫", shortcode: "shushing_face" },
48
+ { char: "🤔", shortcode: "thinking" },
49
+ { char: "🤐", shortcode: "zipper_mouth_face" },
50
+ { char: "🤨", shortcode: "face_with_raised_eyebrow" },
51
+ { char: "😐", shortcode: "neutral_face" },
52
+ { char: "😑", shortcode: "expressionless" },
53
+ { char: "😶", shortcode: "no_mouth" },
54
+ { char: "😏", shortcode: "smirk" },
55
+ { char: "😒", shortcode: "unamused" },
56
+ { char: "🙄", shortcode: "face_with_rolling_eyes" },
57
+ { char: "😬", shortcode: "grimacing" },
58
+ { char: "🤥", shortcode: "lying_face" },
59
+ { char: "😌", shortcode: "relieved" },
60
+ { char: "😔", shortcode: "pensive" },
61
+ { char: "😪", shortcode: "sleepy" },
62
+ { char: "🤤", shortcode: "drooling_face" },
63
+ { char: "😴", shortcode: "sleeping" },
64
+ { char: "😷", shortcode: "mask" },
65
+ { char: "🤒", shortcode: "face_with_thermometer" },
66
+ { char: "🤕", shortcode: "face_with_head_bandage" },
67
+ { char: "🤢", shortcode: "nauseated_face" },
68
+ { char: "🤮", shortcode: "vomiting_face" },
69
+
70
+ { char: "🤩", shortcode: "star_struck" },
71
+ { char: "🥳", shortcode: "partying_face" },
72
+ { char: "🥸", shortcode: "disguised_face" },
73
+ { char: "🥹", shortcode: "face_holding_back_tears" },
74
+ { char: "🥺", shortcode: "pleading_face" },
75
+ { char: "🫠", shortcode: "melting_face" },
76
+ { char: "🫥", shortcode: "dotted_line_face" },
77
+ { char: "🫣", shortcode: "face_with_peeking_eye" },
78
+ { char: "🫡", shortcode: "saluting_face" },
79
+ { char: "🥴", shortcode: "woozy_face" },
80
+ { char: "🥵", shortcode: "hot_face" },
81
+ { char: "🥶", shortcode: "cold_face" },
82
+ { char: "😎", shortcode: "sunglasses" },
83
+ { char: "🤓", shortcode: "nerd_face" },
84
+ { char: "😈", shortcode: "smiling_imp" },
85
+ { char: "👿", shortcode: "imp" },
86
+ { char: "💀", shortcode: "skull" },
87
+ { char: "👻", shortcode: "ghost" },
88
+ { char: "👽", shortcode: "alien" },
89
+ { char: "🤖", shortcode: "robot" },
90
+ { char: "🤡", shortcode: "clown_face" },
91
+ { char: "😹", shortcode: "joy_cat" },
92
+ { char: "😻", shortcode: "heart_eyes_cat" },
93
+ { char: "😼", shortcode: "smirk_cat" },
94
+ { char: "😾", shortcode: "pouting_cat" },
95
+ ],
96
+ },
97
+ {
98
+ id: "people",
99
+ label: "People",
100
+ icon: "👤",
101
+ emojis: [
102
+ { char: "👶", shortcode: "baby" },
103
+ { char: "🧒", shortcode: "child" },
104
+ { char: "👦", shortcode: "boy" },
105
+ { char: "👧", shortcode: "girl" },
106
+ { char: "🧑", shortcode: "adult" },
107
+ { char: "👨", shortcode: "man" },
108
+ { char: "👩", shortcode: "woman" },
109
+ { char: "🧓", shortcode: "older_adult" },
110
+ { char: "👴", shortcode: "older_man" },
111
+ { char: "👵", shortcode: "older_woman" },
112
+ { char: "👮", shortcode: "police_officer" },
113
+ { char: "🕵️", shortcode: "detective" },
114
+ { char: "💂", shortcode: "guard" },
115
+ { char: "👷", shortcode: "construction_worker" },
116
+ { char: "🤴", shortcode: "prince" },
117
+ { char: "👸", shortcode: "princess" },
118
+ { char: "👳", shortcode: "person_wearing_turban" },
119
+ { char: "👲", shortcode: "man_with_chinese_cap" },
120
+ { char: "🧕", shortcode: "woman_with_headscarf" },
121
+ { char: "🤵", shortcode: "person_in_tuxedo" },
122
+ { char: "👰", shortcode: "bride_with_veil" },
123
+ { char: "🤰", shortcode: "pregnant_woman" },
124
+ { char: "🤱", shortcode: "breast_feeding" },
125
+ { char: "👼", shortcode: "baby_angel" },
126
+ { char: "🎅", shortcode: "santa" },
127
+ { char: "🤶", shortcode: "mrs_claus" },
128
+ { char: "🧙", shortcode: "mage" },
129
+ { char: "🧚", shortcode: "fairy" },
130
+ { char: "🧛", shortcode: "vampire" },
131
+ { char: "🧜", shortcode: "merperson" },
132
+ { char: "🧝", shortcode: "elf" },
133
+ { char: "🧞", shortcode: "genie" },
134
+ { char: "🧟", shortcode: "zombie" },
135
+ { char: "💆", shortcode: "massage" },
136
+ { char: "💇", shortcode: "haircut" },
137
+ { char: "🚶", shortcode: "walking" },
138
+ { char: "🏃", shortcode: "runner" },
139
+ { char: "💃", shortcode: "woman_dancing" },
140
+ { char: "🕺", shortcode: "man_dancing" },
141
+ { char: "🧎", shortcode: "kneeling_person" },
142
+ { char: "🧑‍🦯", shortcode: "person_with_probing_cane" },
143
+ { char: "🧑‍🦼", shortcode: "person_in_motorized_wheelchair" },
144
+ { char: "🧑‍🦽", shortcode: "person_in_manual_wheelchair" },
145
+
146
+ { char: "💯", shortcode: "100" },
147
+ { char: "💋", shortcode: "kiss" },
148
+ { char: "👋", shortcode: "wave" },
149
+ { char: "🤚", shortcode: "raised_back_of_hand" },
150
+ { char: "✋", shortcode: "raised_hand" },
151
+ { char: "🖐️", shortcode: "hand_with_fingers_splayed" },
152
+ { char: "👌", shortcode: "ok_hand" },
153
+ { char: "✌️", shortcode: "v" },
154
+ { char: "🤞", shortcode: "crossed_fingers" },
155
+ { char: "🤟", shortcode: "love_you_gesture" },
156
+ { char: "🤘", shortcode: "sign_of_the_horns" },
157
+ { char: "🤙", shortcode: "call_me_hand" },
158
+ { char: "👈", shortcode: "point_left" },
159
+ { char: "👉", shortcode: "point_right" },
160
+ { char: "👆", shortcode: "point_up_2" },
161
+ { char: "👇", shortcode: "point_down" },
162
+ { char: "☝️", shortcode: "point_up" },
163
+ { char: "👍", shortcode: "thumbsup" },
164
+ { char: "👎", shortcode: "thumbsdown" },
165
+ { char: "✊", shortcode: "raised_fist" },
166
+ { char: "👊", shortcode: "oncoming_fist" },
167
+ { char: "🤛", shortcode: "left_facing_fist" },
168
+ { char: "🤜", shortcode: "right_facing_fist" },
169
+ { char: "👏", shortcode: "clap" },
170
+ { char: "🙌", shortcode: "raised_hands" },
171
+ { char: "👐", shortcode: "open_hands" },
172
+ { char: "🤲", shortcode: "palms_up_together" },
173
+ { char: "🙏", shortcode: "pray" },
174
+ { char: "✍️", shortcode: "writing_hand" },
175
+ { char: "👂", shortcode: "ear" },
176
+ { char: "👃", shortcode: "nose" },
177
+ ],
178
+ },
179
+ {
180
+ id: "animals",
181
+ label: "Animals",
182
+ icon: "🐾",
183
+ emojis: [
184
+ { char: "🐶", shortcode: "dog" },
185
+ { char: "🐱", shortcode: "cat" },
186
+ { char: "🐭", shortcode: "mouse" },
187
+ { char: "🐹", shortcode: "hamster" },
188
+ { char: "🐰", shortcode: "rabbit" },
189
+ { char: "🦊", shortcode: "fox" },
190
+ { char: "🐻", shortcode: "bear" },
191
+ { char: "🐼", shortcode: "panda" },
192
+ { char: "🐨", shortcode: "koala" },
193
+ { char: "🐯", shortcode: "tiger" },
194
+ { char: "🦁", shortcode: "lion" },
195
+ { char: "🐮", shortcode: "cow" },
196
+ { char: "🐷", shortcode: "pig" },
197
+ { char: "🐸", shortcode: "frog" },
198
+ { char: "🐵", shortcode: "monkey_face" },
199
+ { char: "🐔", shortcode: "chicken" },
200
+ { char: "🐧", shortcode: "penguin" },
201
+ { char: "🐦", shortcode: "bird" },
202
+ { char: "🐤", shortcode: "baby_chick" },
203
+ { char: "🦆", shortcode: "duck" },
204
+ { char: "🦅", shortcode: "eagle" },
205
+ { char: "🦉", shortcode: "owl" },
206
+ { char: "🦇", shortcode: "bat" },
207
+ { char: "🐺", shortcode: "wolf" },
208
+ { char: "🐗", shortcode: "boar" },
209
+ { char: "🐴", shortcode: "horse" },
210
+ { char: "🦄", shortcode: "unicorn" },
211
+ { char: "🐝", shortcode: "bee" },
212
+ { char: "🐛", shortcode: "bug" },
213
+ { char: "🦋", shortcode: "butterfly" },
214
+ { char: "🐌", shortcode: "snail" },
215
+ { char: "🐞", shortcode: "lady_beetle" },
216
+ { char: "🐢", shortcode: "turtle" },
217
+ { char: "🐍", shortcode: "snake" },
218
+ { char: "🦎", shortcode: "lizard" },
219
+ { char: "🐙", shortcode: "octopus" },
220
+ { char: "🦑", shortcode: "squid" },
221
+ { char: "🦐", shortcode: "shrimp" },
222
+ { char: "🦞", shortcode: "lobster" },
223
+ { char: "🦀", shortcode: "crab" },
224
+ { char: "🐡", shortcode: "blowfish" },
225
+ { char: "🐠", shortcode: "tropical_fish" },
226
+ { char: "🐟", shortcode: "fish" },
227
+ { char: "🐬", shortcode: "dolphin" },
228
+
229
+ { char: "🦦", shortcode: "otter" },
230
+ { char: "🦥", shortcode: "sloth" },
231
+ { char: "🦨", shortcode: "skunk" },
232
+ { char: "🦘", shortcode: "kangaroo" },
233
+ { char: "🦡", shortcode: "badger" },
234
+ { char: "🦒", shortcode: "giraffe" },
235
+ { char: "🦔", shortcode: "hedgehog" },
236
+ { char: "🦓", shortcode: "zebra" },
237
+ { char: "🦏", shortcode: "rhinoceros" },
238
+ { char: "🦛", shortcode: "hippopotamus" },
239
+ { char: "🦣", shortcode: "mammoth" },
240
+ { char: "🦬", shortcode: "bison" },
241
+ { char: "🐆", shortcode: "leopard" },
242
+ { char: "🐅", shortcode: "tiger" },
243
+ { char: "🐂", shortcode: "ox" },
244
+ { char: "🐃", shortcode: "water_buffalo" },
245
+ { char: "🐄", shortcode: "cow" },
246
+ { char: "🐖", shortcode: "pig" },
247
+ { char: "🐏", shortcode: "ram" },
248
+ { char: "🐑", shortcode: "sheep" },
249
+ { char: "🐪", shortcode: "dromedary_camel" },
250
+ { char: "🐫", shortcode: "bactrian_camel" },
251
+ { char: "🦙", shortcode: "llama" },
252
+ { char: "🐀", shortcode: "rat" },
253
+ { char: "🐁", shortcode: "mouse" },
254
+ { char: "🐿️", shortcode: "chipmunk" },
255
+ { char: "🦃", shortcode: "turkey" },
256
+ { char: "🦚", shortcode: "peacock" },
257
+ { char: "🦜", shortcode: "parrot" },
258
+ { char: "🦢", shortcode: "swan" },
259
+ { char: "🦩", shortcode: "flamingo" },
260
+ { char: "🕊️", shortcode: "dove" },
261
+ { char: "🦤", shortcode: "dodo" },
262
+ { char: "🐊", shortcode: "crocodile" },
263
+ { char: "🐋", shortcode: "whale" },
264
+ { char: "🐳", shortcode: "spouting_whale" },
265
+ { char: "🦈", shortcode: "shark" },
266
+ { char: "🦭", shortcode: "seal" },
267
+ { char: "🦟", shortcode: "mosquito" },
268
+ { char: "🦠", shortcode: "microbe" },
269
+ { char: "🪲", shortcode: "beetle" },
270
+ { char: "🪳", shortcode: "cockroach" },
271
+ { char: "🪰", shortcode: "fly" },
272
+ { char: "🪱", shortcode: "worm" },
273
+ { char: "🪨", shortcode: "rock" },
274
+ { char: "🐚", shortcode: "spiral_shell" },
275
+ { char: "🌸", shortcode: "cherry_blossom" },
276
+ { char: "🪴", shortcode: "potted_plant" },
277
+ { char: "🪵", shortcode: "wood" },
278
+ { char: "🪺", shortcode: "nest_with_eggs" },
279
+ { char: "🍄", shortcode: "mushroom" },
280
+ ],
281
+ },
282
+ {
283
+ id: "nature",
284
+ label: "Nature",
285
+ icon: "🌿",
286
+ emojis: [
287
+ { char: "🌿", shortcode: "herb" },
288
+ { char: "☘️", shortcode: "shamrock" },
289
+ { char: "🍀", shortcode: "four_leaf_clover" },
290
+ { char: "🍃", shortcode: "leaves" },
291
+ { char: "🍂", shortcode: "fallen_leaf" },
292
+ { char: "🍁", shortcode: "maple_leaf" },
293
+ { char: "🌾", shortcode: "sheaf_of_rice" },
294
+ { char: "🌱", shortcode: "seedling" },
295
+ { char: "🌲", shortcode: "evergreen_tree" },
296
+ { char: "🌳", shortcode: "deciduous_tree" },
297
+ { char: "🌴", shortcode: "palm_tree" },
298
+ { char: "🌵", shortcode: "cactus" },
299
+ { char: "🌷", shortcode: "tulip" },
300
+ { char: "🌸", shortcode: "cherry_blossom" },
301
+ { char: "🌼", shortcode: "blossom" },
302
+ { char: "🌻", shortcode: "sunflower" },
303
+ { char: "🌞", shortcode: "sun_with_face" },
304
+ { char: "🌝", shortcode: "full_moon_with_face" },
305
+ { char: "🌛", shortcode: "first_quarter_moon_with_face" },
306
+ { char: "🌜", shortcode: "last_quarter_moon_with_face" },
307
+ { char: "🌚", shortcode: "new_moon_with_face" },
308
+ { char: "🌕", shortcode: "full_moon" },
309
+ { char: "🌖", shortcode: "waning_gibbous_moon" },
310
+ { char: "🌗", shortcode: "last_quarter_moon" },
311
+ { char: "🌘", shortcode: "waning_crescent_moon" },
312
+ { char: "🌑", shortcode: "new_moon" },
313
+ { char: "🌒", shortcode: "waxing_crescent_moon" },
314
+ { char: "🌓", shortcode: "first_quarter_moon" },
315
+ { char: "🌔", shortcode: "waxing_gibbous_moon" },
316
+ { char: "🌙", shortcode: "crescent_moon" },
317
+ { char: "⭐", shortcode: "star" },
318
+ { char: "🌟", shortcode: "star2" },
319
+ { char: "✨", shortcode: "sparkles" },
320
+ { char: "⚡", shortcode: "zap" },
321
+ { char: "🔥", shortcode: "fire" },
322
+ { char: "💧", shortcode: "droplet" },
323
+ { char: "🌊", shortcode: "ocean" },
324
+ { char: "☀️", shortcode: "sunny" },
325
+ { char: "☁️", shortcode: "cloud" },
326
+ { char: "⛅", shortcode: "partly_sunny" },
327
+ { char: "⛈️", shortcode: "thunder_cloud_and_rain" },
328
+
329
+ { char: "🌤️", shortcode: "sun_behind_small_cloud" },
330
+ { char: "🌥️", shortcode: "sun_behind_large_cloud" },
331
+ { char: "🌦️", shortcode: "sun_behind_rain_cloud" },
332
+ { char: "🌧️", shortcode: "cloud_with_rain" },
333
+ { char: "🌨️", shortcode: "cloud_with_snow" },
334
+ { char: "🌩️", shortcode: "cloud_with_lightning" },
335
+ { char: "🌪️", shortcode: "tornado" },
336
+ { char: "🌫️", shortcode: "fog" },
337
+ { char: "🪴", shortcode: "potted_plant" },
338
+ { char: "🪵", shortcode: "wood" },
339
+ { char: "🍄", shortcode: "mushroom" },
340
+ { char: "🪺", shortcode: "nest_with_eggs" },
341
+ { char: "🥀", shortcode: "wilted_flower" },
342
+ { char: "🌹", shortcode: "rose" },
343
+ { char: "🌺", shortcode: "hibiscus" },
344
+ { char: "💐", shortcode: "bouquet" },
345
+ { char: "💫", shortcode: "dizzy" },
346
+ { char: "💦", shortcode: "sweat_drops" },
347
+ { char: "🎄", shortcode: "christmas_tree" },
348
+ { char: "🎃", shortcode: "jack_o_lantern" },
349
+ ],
350
+ },
351
+ {
352
+ id: "food",
353
+ label: "Food",
354
+ icon: "🍏",
355
+ emojis: [
356
+ { char: "🍏", shortcode: "green_apple" },
357
+ { char: "🍎", shortcode: "apple" },
358
+ { char: "🍐", shortcode: "pear" },
359
+ { char: "🍊", shortcode: "tangerine" },
360
+ { char: "🍋", shortcode: "lemon" },
361
+ { char: "🍌", shortcode: "banana" },
362
+ { char: "🍉", shortcode: "watermelon" },
363
+ { char: "🍇", shortcode: "grapes" },
364
+ { char: "🍓", shortcode: "strawberry" },
365
+ { char: "🫐", shortcode: "blueberries" },
366
+ { char: "🍈", shortcode: "melon" },
367
+ { char: "🍒", shortcode: "cherries" },
368
+ { char: "🍑", shortcode: "peach" },
369
+ { char: "🥭", shortcode: "mango" },
370
+ { char: "🍍", shortcode: "pineapple" },
371
+ { char: "🥥", shortcode: "coconut" },
372
+ { char: "🥝", shortcode: "kiwifruit" },
373
+ { char: "🍅", shortcode: "tomato" },
374
+ { char: "🍆", shortcode: "eggplant" },
375
+ { char: "🥑", shortcode: "avocado" },
376
+ { char: "🥦", shortcode: "broccoli" },
377
+ { char: "🥬", shortcode: "leafy_green" },
378
+ { char: "🥒", shortcode: "cucumber" },
379
+ { char: "🌶️", shortcode: "hot_pepper" },
380
+ { char: "🫑", shortcode: "bell_pepper" },
381
+ { char: "🌽", shortcode: "corn" },
382
+ { char: "🥕", shortcode: "carrot" },
383
+ { char: "🫒", shortcode: "olive" },
384
+ { char: "🧄", shortcode: "garlic" },
385
+ { char: "🧅", shortcode: "onion" },
386
+ { char: "🥔", shortcode: "potato" },
387
+ { char: "🍠", shortcode: "sweet_potato" },
388
+ { char: "🥐", shortcode: "croissant" },
389
+ { char: "🥯", shortcode: "bagel" },
390
+ { char: "🍞", shortcode: "bread" },
391
+ { char: "🥖", shortcode: "baguette_bread" },
392
+ { char: "🥨", shortcode: "pretzel" },
393
+ { char: "🧀", shortcode: "cheese_wedge" },
394
+ { char: "🥚", shortcode: "egg" },
395
+ { char: "🍳", shortcode: "fried_egg" },
396
+
397
+ { char: "🍯", shortcode: "honey_pot" },
398
+ { char: "🥜", shortcode: "peanuts" },
399
+ { char: "🫘", shortcode: "beans" },
400
+ { char: "🌰", shortcode: "chestnut" },
401
+ { char: "🥫", shortcode: "canned_food" },
402
+ { char: "🥓", shortcode: "bacon" },
403
+ { char: "🥩", shortcode: "cut_of_meat" },
404
+ { char: "🥪", shortcode: "sandwich" },
405
+ { char: "🌮", shortcode: "taco" },
406
+ { char: "🌯", shortcode: "burrito" },
407
+ { char: "🥙", shortcode: "stuffed_flatbread" },
408
+ { char: "🧆", shortcode: "falafel" },
409
+ { char: "🥗", shortcode: "green_salad" },
410
+ { char: "🍝", shortcode: "spaghetti" },
411
+ { char: "🍜", shortcode: "steaming_bowl" },
412
+ { char: "🍲", shortcode: "pot_of_food" },
413
+ { char: "🍛", shortcode: "curry" },
414
+ { char: "🍣", shortcode: "sushi" },
415
+ { char: "🍤", shortcode: "fried_shrimp" },
416
+ { char: "🍙", shortcode: "rice_ball" },
417
+ { char: "🍚", shortcode: "cooked_rice" },
418
+ { char: "🍘", shortcode: "rice_cracker" },
419
+ { char: "🍢", shortcode: "oden" },
420
+ { char: "🍡", shortcode: "dango" },
421
+ { char: "🍱", shortcode: "bento" },
422
+ { char: "🍮", shortcode: "custard" },
423
+ { char: "🍰", shortcode: "shortcake" },
424
+ { char: "🎂", shortcode: "birthday_cake" },
425
+ { char: "🍭", shortcode: "lollipop" },
426
+ { char: "🍬", shortcode: "candy" },
427
+ { char: "🍫", shortcode: "chocolate_bar" },
428
+ { char: "🍿", shortcode: "popcorn" },
429
+ { char: "🍩", shortcode: "doughnut" },
430
+ { char: "🍪", shortcode: "cookie" },
431
+ { char: "🥧", shortcode: "pie" },
432
+ { char: "🧁", shortcode: "cupcake" },
433
+ { char: "🥡", shortcode: "takeout_box" },
434
+ { char: "🥟", shortcode: "dumpling" },
435
+ { char: "🥠", shortcode: "fortune_cookie" },
436
+ { char: "🥮", shortcode: "moon_cake" },
437
+ ],
438
+ },
439
+ {
440
+ id: "drink",
441
+ label: "Drink",
442
+ icon: "🥤",
443
+ emojis: [
444
+ { char: "☕", shortcode: "coffee" },
445
+ { char: "🍵", shortcode: "tea" },
446
+ { char: "🧃", shortcode: "beverage_box" },
447
+ { char: "🥤", shortcode: "cup_with_straw" },
448
+ { char: "🧋", shortcode: "bubble_tea" },
449
+ { char: "🍶", shortcode: "sake" },
450
+ { char: "🍺", shortcode: "beer" },
451
+ { char: "🍻", shortcode: "beers" },
452
+ { char: "🥂", shortcode: "clinking_glasses" },
453
+ { char: "🍷", shortcode: "wine_glass" },
454
+ { char: "🥃", shortcode: "tumbler_glass" },
455
+ { char: "🍸", shortcode: "cocktail" },
456
+ { char: "🍹", shortcode: "tropical_drink" },
457
+ { char: "🍾", shortcode: "bottle_with_popping_cork" },
458
+ { char: "🧊", shortcode: "ice" },
459
+ { char: "🥛", shortcode: "glass_of_milk" },
460
+ { char: "🍼", shortcode: "baby_bottle" },
461
+ { char: "🫗", shortcode: "pouring_liquid" },
462
+
463
+ { char: "🧉", shortcode: "mate" },
464
+ { char: "🫖", shortcode: "teapot" },
465
+ { char: "🥄", shortcode: "spoon" },
466
+ { char: "🍴", shortcode: "fork_and_knife" },
467
+ { char: "🥢", shortcode: "chopsticks" },
468
+ { char: "🍽️", shortcode: "fork_knife_plate" },
469
+ ],
470
+ },
471
+ {
472
+ id: "activities",
473
+ label: "Activities",
474
+ icon: "⚽",
475
+ emojis: [
476
+ { char: "⚽", shortcode: "soccer" },
477
+ { char: "🏀", shortcode: "basketball" },
478
+ { char: "🏈", shortcode: "football" },
479
+ { char: "⚾", shortcode: "baseball" },
480
+ { char: "🥎", shortcode: "softball" },
481
+ { char: "🎾", shortcode: "tennis" },
482
+ { char: "🏐", shortcode: "volleyball" },
483
+ { char: "🏉", shortcode: "rugby_football" },
484
+ { char: "🥏", shortcode: "flying_disc" },
485
+ { char: "🎱", shortcode: "8ball" },
486
+ { char: "🪀", shortcode: "yo_yo" },
487
+ { char: "🏓", shortcode: "ping_pong" },
488
+ { char: "🏸", shortcode: "badminton" },
489
+ { char: "🥅", shortcode: "goal_net" },
490
+ { char: "🥌", shortcode: "curling_stone" },
491
+ { char: "🎯", shortcode: "dart" },
492
+ { char: "🪁", shortcode: "kite" },
493
+ { char: "🎮", shortcode: "video_game" },
494
+ { char: "🕹️", shortcode: "joystick" },
495
+ { char: "🎰", shortcode: "slot_machine" },
496
+ { char: "🎲", shortcode: "game_die" },
497
+ { char: "🧩", shortcode: "puzzle_piece" },
498
+ { char: "🧸", shortcode: "teddy_bear" },
499
+ { char: "🪆", shortcode: "nesting_dolls" },
500
+ { char: "♟️", shortcode: "chess_pawn" },
501
+ { char: "🎴", shortcode: "flower_playing_cards" },
502
+ { char: "🀄", shortcode: "mahjong" },
503
+ { char: "🎨", shortcode: "art" },
504
+ { char: "🧵", shortcode: "thread" },
505
+ { char: "🪡", shortcode: "sewing_needle" },
506
+
507
+ { char: "🤺", shortcode: "fencing" },
508
+ { char: "🤼", shortcode: "wrestling" },
509
+ { char: "🤽", shortcode: "water_polo" },
510
+ { char: "🤾", shortcode: "handball" },
511
+ { char: "🥇", shortcode: "1st_place_medal" },
512
+ { char: "🥈", shortcode: "2nd_place_medal" },
513
+ { char: "🥉", shortcode: "3rd_place_medal" },
514
+ { char: "🏆", shortcode: "trophy" },
515
+ { char: "🎖️", shortcode: "medal" },
516
+ { char: "🏅", shortcode: "medal" },
517
+ { char: "🎗️", shortcode: "reminder_ribbon" },
518
+ { char: "🎟️", shortcode: "ticket" },
519
+ { char: "🎫", shortcode: "ticket" },
520
+ { char: "🎭", shortcode: "performing_arts" },
521
+ { char: "🎪", shortcode: "circus_tent" },
522
+ { char: "🎤", shortcode: "microphone" },
523
+ { char: "🎧", shortcode: "headphone" },
524
+ { char: "🎼", shortcode: "musical_score" },
525
+ { char: "🎹", shortcode: "musical_keyboard" },
526
+ { char: "🎷", shortcode: "saxophone" },
527
+ { char: "🎸", shortcode: "guitar" },
528
+ { char: "🎺", shortcode: "trumpet" },
529
+ { char: "🎻", shortcode: "violin" },
530
+ { char: "🪕", shortcode: "banjo" },
531
+ { char: "🥁", shortcode: "drum" },
532
+ { char: "🪘", shortcode: "long_drum" },
533
+ ],
534
+ },
535
+ {
536
+ id: "travel",
537
+ label: "Travel",
538
+ icon: "✈️",
539
+ emojis: [
540
+ { char: "🚗", shortcode: "car" },
541
+ { char: "🚕", shortcode: "taxi" },
542
+ { char: "🚙", shortcode: "blue_car" },
543
+ { char: "🚌", shortcode: "bus" },
544
+ { char: "🚎", shortcode: "trolleybus" },
545
+ { char: "🏎️", shortcode: "racing_car" },
546
+ { char: "🚓", shortcode: "police_car" },
547
+ { char: "🚑", shortcode: "ambulance" },
548
+ { char: "🚒", shortcode: "fire_engine" },
549
+ { char: "🚐", shortcode: "minibus" },
550
+ { char: "🛻", shortcode: "pickup_truck" },
551
+ { char: "🚚", shortcode: "delivery_truck" },
552
+ { char: "🚛", shortcode: "articulated_lorry" },
553
+ { char: "🛴", shortcode: "kick_scooter" },
554
+ { char: "🚲", shortcode: "bike" },
555
+ { char: "🛵", shortcode: "motor_scooter" },
556
+ { char: "🏍️", shortcode: "motorcycle" },
557
+ { char: "🚂", shortcode: "steam_locomotive" },
558
+ { char: "🚆", shortcode: "train" },
559
+ { char: "🚇", shortcode: "metro" },
560
+ { char: "🚊", shortcode: "tram" },
561
+ { char: "🚉", shortcode: "station" },
562
+ { char: "✈️", shortcode: "airplane" },
563
+ { char: "🛫", shortcode: "airplane_departure" },
564
+ { char: "🛬", shortcode: "airplane_arriving" },
565
+ { char: "🛩️", shortcode: "small_airplane" },
566
+ { char: "🚁", shortcode: "helicopter" },
567
+ { char: "🚀", shortcode: "rocket" },
568
+ { char: "🛸", shortcode: "flying_saucer" },
569
+ { char: "🚢", shortcode: "ship" },
570
+
571
+ { char: "🚟", shortcode: "suspension_railway" },
572
+ { char: "🚠", shortcode: "mountain_cableway" },
573
+ { char: "🚡", shortcode: "aerial_tramway" },
574
+ { char: "🚜", shortcode: "tractor" },
575
+ { char: "🛺", shortcode: "auto_rickshaw" },
576
+ { char: "🚔", shortcode: "oncoming_police_car" },
577
+ { char: "🚍", shortcode: "oncoming_bus" },
578
+ { char: "🚘", shortcode: "oncoming_automobile" },
579
+ { char: "🚖", shortcode: "oncoming_taxi" },
580
+ { char: "🏭", shortcode: "factory" },
581
+ { char: "🏢", shortcode: "office" },
582
+ { char: "🏬", shortcode: "department_store" },
583
+ { char: "🏣", shortcode: "japanese_post_office" },
584
+ { char: "🏤", shortcode: "post_office" },
585
+ { char: "🏥", shortcode: "hospital" },
586
+ { char: "🏦", shortcode: "bank" },
587
+ { char: "🏨", shortcode: "hotel" },
588
+ { char: "🏪", shortcode: "convenience_store" },
589
+ { char: "🏫", shortcode: "school" },
590
+ { char: "🏰", shortcode: "castle" },
591
+ { char: "🗼", shortcode: "tokyo_tower" },
592
+ { char: "🗽", shortcode: "statue_of_liberty" },
593
+ { char: "⛪", shortcode: "church" },
594
+ { char: "🕌", shortcode: "mosque" },
595
+ { char: "🕍", shortcode: "synagogue" },
596
+ { char: "🛕", shortcode: "hindu_temple" },
597
+ { char: "🏛️", shortcode: "classical_building" },
598
+ { char: "🏯", shortcode: "japanese_castle" },
599
+ { char: "🏟️", shortcode: "stadium" },
600
+ { char: "🏜️", shortcode: "desert" },
601
+ { char: "🏝️", shortcode: "desert_island" },
602
+ { char: "🏞️", shortcode: " national_park" },
603
+ { char: "🏖️", shortcode: "beach" },
604
+ { char: "🏗️", shortcode: "building_construction" },
605
+ { char: "🛤️", shortcode: "railway_track" },
606
+ { char: "🚦", shortcode: "vertical_traffic_light" },
607
+ { char: "🚥", shortcode: "horizontal_traffic_light" },
608
+ ],
609
+ },
610
+ {
611
+ id: "objects",
612
+ label: "Objects",
613
+ icon: "💻",
614
+ emojis: [
615
+ { char: "⌚", shortcode: "watch" },
616
+ { char: "📱", shortcode: "iphone" },
617
+ { char: "💻", shortcode: "computer" },
618
+ { char: "⌨️", shortcode: "keyboard" },
619
+ { char: "🖥️", shortcode: "desktop_computer" },
620
+ { char: "🖨️", shortcode: "printer" },
621
+ { char: "🖱️", shortcode: "computer_mouse" },
622
+ { char: "🖲️", shortcode: "trackball" },
623
+ { char: "🕹️", shortcode: "joystick" },
624
+ { char: "🗜️", shortcode: "clamp" },
625
+ { char: "💽", shortcode: "minidisc" },
626
+ { char: "💾", shortcode: "floppy_disk" },
627
+ { char: "💿", shortcode: "cd" },
628
+ { char: "📀", shortcode: "dvd" },
629
+ { char: "📼", shortcode: "vhs" },
630
+ { char: "📷", shortcode: "camera" },
631
+ { char: "📸", shortcode: "camera_flash" },
632
+ { char: "📹", shortcode: "video_camera" },
633
+ { char: "🎥", shortcode: "movie_camera" },
634
+ { char: "📽️", shortcode: "film_projector" },
635
+ { char: "🎞️", shortcode: "film_strip" },
636
+ { char: "📞", shortcode: "telephone_receiver" },
637
+ { char: "☎️", shortcode: "phone" },
638
+ { char: "📟", shortcode: "pager" },
639
+ { char: "📠", shortcode: "fax" },
640
+ { char: "📺", shortcode: "tv" },
641
+ { char: "📻", shortcode: "radio" },
642
+ { char: "🎙️", shortcode: "studio_microphone" },
643
+ { char: "🎚️", shortcode: "level_slider" },
644
+ { char: "🎛️", shortcode: "control_knobs" },
645
+
646
+ { char: "💎", shortcode: "gem_stone" },
647
+ { char: "🔮", shortcode: "crystal_ball" },
648
+ { char: "🧿", shortcode: "nazar_amulet" },
649
+ { char: "🪬", shortcode: "hamsa" },
650
+ { char: "🎁", shortcode: "wrapped_gift" },
651
+ { char: "🎈", shortcode: "balloon" },
652
+ { char: "🎉", shortcode: "party_popper" },
653
+ { char: "🎊", shortcode: "confetti_ball" },
654
+ { char: "🎋", shortcode: "tanabata_tree" },
655
+ { char: "🎍", shortcode: "pine_decoration" },
656
+ { char: "🎎", shortcode: "japanese_dolls" },
657
+ { char: "🎏", shortcode: "carp_streamer" },
658
+ { char: "🎐", shortcode: "wind_chime" },
659
+ { char: "🎑", shortcode: "moon_viewing_ceremony" },
660
+ { char: "🧧", shortcode: "red_envelope" },
661
+ { char: "🎀", shortcode: "ribbon" },
662
+ { char: "🪧", shortcode: "placard" },
663
+ { char: "💰", shortcode: "moneybag" },
664
+ { char: "💵", shortcode: "dollar_banknote" },
665
+ { char: "💴", shortcode: "yen_banknote" },
666
+ { char: "💶", shortcode: "euro_banknote" },
667
+ { char: "💷", shortcode: "pound_banknote" },
668
+ { char: "💸", shortcode: "money_with_wings" },
669
+ { char: "💳", shortcode: "credit_card" },
670
+ { char: "💹", shortcode: "chart_increasing_yen" },
671
+ { char: "🪙", shortcode: "coin" },
672
+ { char: "🔑", shortcode: "key" },
673
+ { char: "🗝️", shortcode: "old_key" },
674
+ { char: "🔒", shortcode: "locked" },
675
+ { char: "🔓", shortcode: "unlocked" },
676
+ { char: "🔐", shortcode: "locked_with_key" },
677
+ { char: "🔏", shortcode: "locked_with_pen" },
678
+ { char: "🪪", shortcode: "id_card" },
679
+ { char: "🪟", shortcode: "window" },
680
+ { char: "🪞", shortcode: "mirror" },
681
+ { char: "🪑", shortcode: "chair" },
682
+ { char: "🛏️", shortcode: "bed" },
683
+ { char: "🛋️", shortcode: "couch_and_lamp" },
684
+ { char: "🪠", shortcode: "plunger" },
685
+ { char: "🪣", shortcode: "bucket" },
686
+ { char: "🪥", shortcode: "toothbrush" },
687
+ { char: "🧽", shortcode: "sponge" },
688
+ { char: "🧴", shortcode: "lotion_bottle" },
689
+ { char: "🪢", shortcode: "knot" },
690
+ { char: "🧰", shortcode: "toolbox" },
691
+ { char: "🪛", shortcode: "screwdriver" },
692
+ { char: "🔧", shortcode: "wrench" },
693
+ { char: "🔨", shortcode: "hammer" },
694
+ { char: "🪓", shortcode: "axe" },
695
+ { char: "⛏️", shortcode: "pick" },
696
+ { char: "⚔️", shortcode: "crossed_swords" },
697
+ { char: "🔪", shortcode: "kitchen_knife" },
698
+ { char: "🪚", shortcode: "carpentry_saw" },
699
+ { char: "🔫", shortcode: "water_pistol" },
700
+ { char: "🪃", shortcode: "boomerang" },
701
+ { char: "🪄", shortcode: "magic_wand" },
702
+ { char: "🧯", shortcode: "fire_extinguisher" },
703
+ { char: "🛒", shortcode: "shopping_cart" },
704
+ { char: "🛍️", shortcode: "shopping_bags" },
705
+ { char: "📿", shortcode: "prayer_beads" },
706
+ ],
707
+ },
708
+ {
709
+ id: "symbols",
710
+ label: "Symbols",
711
+ icon: "❤️",
712
+ emojis: [
713
+ { char: "❤️", shortcode: "heart" },
714
+ { char: "🧡", shortcode: "orange_heart" },
715
+ { char: "💛", shortcode: "yellow_heart" },
716
+ { char: "💚", shortcode: "green_heart" },
717
+ { char: "💙", shortcode: "blue_heart" },
718
+ { char: "💜", shortcode: "purple_heart" },
719
+ { char: "🖤", shortcode: "black_heart" },
720
+ { char: "🤍", shortcode: "white_heart" },
721
+ { char: "🤎", shortcode: "brown_heart" },
722
+ { char: "💔", shortcode: "broken_heart" },
723
+ { char: "❣️", shortcode: "heavy_heart_exclamation" },
724
+ { char: "💕", shortcode: "two_hearts" },
725
+ { char: "💞", shortcode: "revolving_hearts" },
726
+ { char: "💓", shortcode: "heartbeat" },
727
+ { char: "💗", shortcode: "heartpulse" },
728
+ { char: "💖", shortcode: "sparkling_heart" },
729
+ { char: "💘", shortcode: "cupid" },
730
+ { char: "💝", shortcode: "gift_heart" },
731
+ { char: "💟", shortcode: "heart_decoration" },
732
+ { char: "☮️", shortcode: "peace_symbol" },
733
+ { char: "✝️", shortcode: "latin_cross" },
734
+ { char: "☪️", shortcode: "star_and_crescent" },
735
+ { char: "🕉️", shortcode: "om" },
736
+ { char: "☸️", shortcode: "wheel_of_dharma" },
737
+ { char: "✡️", shortcode: "star_of_david" },
738
+ { char: "🔯", shortcode: "six_pointed_star" },
739
+ { char: "🕎", shortcode: "menorah" },
740
+ { char: "☯️", shortcode: "yin_yang" },
741
+ { char: "☦️", shortcode: "orthodox_cross" },
742
+ { char: "🛐", shortcode: "worship" },
743
+ { char: "⛎", shortcode: "ophiuchus" },
744
+ { char: "♈", shortcode: "aries" },
745
+
746
+ { char: "♻️", shortcode: "recycle" },
747
+ { char: "✅", shortcode: "check_mark_button" },
748
+ { char: "❌", shortcode: "cross_mark" },
749
+ { char: "❎", shortcode: "negative_squared_cross_mark" },
750
+ { char: "⭕", shortcode: "hollow_red_circle" },
751
+ { char: "🅾", shortcode: "o_button" },
752
+ { char: "🅿", shortcode: "p_button" },
753
+ { char: "🆎", shortcode: "ab_button" },
754
+ { char: "🆑", shortcode: "cl_button" },
755
+ { char: "🆘", shortcode: "sos_button" },
756
+ { char: "🆗", shortcode: "ok_button" },
757
+ { char: "🆙", shortcode: "up_button" },
758
+ { char: "🆚", shortcode: "vs_button" },
759
+ { char: "🆖", shortcode: "ng_button" },
760
+ { char: "🆕", shortcode: "new_button" },
761
+ { char: "🆓", shortcode: "free_button" },
762
+ { char: "ℹ️", shortcode: "info" },
763
+ { char: "⛔", shortcode: "no_entry" },
764
+ { char: "🚫", shortcode: "prohibited" },
765
+ { char: "🚷", shortcode: "no_pedestrians" },
766
+ { char: "🚯", shortcode: "do_not_litter" },
767
+ { char: "🚱", shortcode: "non_potable_water" },
768
+ { char: "🚳", shortcode: "no_bicycles" },
769
+ { char: "🚭", shortcode: "no_smoking" },
770
+ { char: "🚸", shortcode: "children_crossing" },
771
+ { char: "⚠️", shortcode: "warning" },
772
+ { char: "🔞", shortcode: "no_one_under_eighteen" },
773
+ { char: "☢️", shortcode: "radioactive" },
774
+ { char: "☣️", shortcode: "biohazard" },
775
+ { char: "☠️", shortcode: "skull_and_crossbones" },
776
+ { char: "⬆️", shortcode: "up_arrow" },
777
+ { char: "⬇️", shortcode: "down_arrow" },
778
+ { char: "⬅️", shortcode: "left_arrow" },
779
+ { char: "➡️", shortcode: "right_arrow" },
780
+ { char: "↗️", shortcode: "upper_right_arrow" },
781
+ { char: "↘️", shortcode: "lower_right_arrow" },
782
+ { char: "↙️", shortcode: "lower_left_arrow" },
783
+ { char: "↖️", shortcode: "upper_left_arrow" },
784
+ { char: "↕️", shortcode: "up_down_arrow" },
785
+ { char: "↔️", shortcode: "left_right_arrow" },
786
+ { char: "↩️", shortcode: "right_arrow_curving_left" },
787
+ { char: "↪️", shortcode: "left_arrow_curving_right" },
788
+ { char: "⤴️", shortcode: "right_arrow_curving_up" },
789
+ { char: "⤵️", shortcode: "right_arrow_curving_down" },
790
+ { char: "🔃", shortcode: "arrows_clockwise" },
791
+ { char: "🔄", shortcode: "counterclockwise_arrows_button" },
792
+ { char: "🔙", shortcode: "back_arrow" },
793
+ { char: "🔚", shortcode: "end_arrow" },
794
+ { char: "🔛", shortcode: "on_arrow" },
795
+ { char: "🔜", shortcode: "soon_arrow" },
796
+ { char: "🔝", shortcode: "top_arrow" },
797
+ { char: "⚛️", shortcode: "atom_symbol" },
798
+ { char: "🔱", shortcode: "trident_emblem" },
799
+ { char: "📛", shortcode: "name_badge" },
800
+ { char: "🔰", shortcode: "beginner" },
801
+ { char: "🔟", shortcode: "keycap_ten" },
802
+ { char: "🔢", shortcode: "input_numbers" },
803
+ { char: "🔤", shortcode: "input_latin_letters" },
804
+ { char: "🔡", shortcode: "input_lowercase" },
805
+ { char: "🔠", shortcode: "input_uppercase" },
806
+ { char: "🆔", shortcode: "id_button" },
807
+ { char: "⚜️", shortcode: "fleur_de_lis" },
808
+ { char: "⚧️", shortcode: "transgender_symbol" },
809
+ ],
810
+ },
811
+ {
812
+ id: "flags",
813
+ label: "Flags",
814
+ icon: "🚩",
815
+ emojis: [
816
+ { char: "🏁", shortcode: "checkered_flag" },
817
+ { char: "🚩", shortcode: "triangular_flag_on_post" },
818
+ { char: "🎌", shortcode: "crossed_flags" },
819
+ { char: "🏴", shortcode: "black_flag" },
820
+ { char: "🏳️", shortcode: "white_flag" },
821
+ { char: "🏳️‍🌈", shortcode: "rainbow_flag" },
822
+ { char: "🏳️‍⚧️", shortcode: "transgender_flag" },
823
+ { char: "🏴‍☠️", shortcode: "pirate_flag" },
824
+ { char: "🇺🇳", shortcode: "united_nations" },
825
+ { char: "🇪🇺", shortcode: "eu" },
826
+ { char: "🇺🇸", shortcode: "us" },
827
+ { char: "🇬🇧", shortcode: "gb" },
828
+ { char: "🇨🇦", shortcode: "ca" },
829
+ { char: "🇫🇷", shortcode: "fr" },
830
+ { char: "🇩🇪", shortcode: "de" },
831
+ { char: "🇪🇸", shortcode: "es" },
832
+ { char: "🇮🇹", shortcode: "it" },
833
+ { char: "🇯🇵", shortcode: "jp" },
834
+ { char: "🇨🇳", shortcode: "cn" },
835
+ { char: "🇰🇷", shortcode: "kr" },
836
+ { char: "🇧🇷", shortcode: "br" },
837
+ { char: "🇦🇷", shortcode: "ar" },
838
+ { char: "🇲🇽", shortcode: "mx" },
839
+ { char: "🇦🇺", shortcode: "au" },
840
+ { char: "🇮🇳", shortcode: "in" },
841
+ { char: "🇦🇫", shortcode: "afghanistan" },
842
+ { char: "🇦🇽", shortcode: "aland_islands" },
843
+ { char: "🇦🇱", shortcode: "albania" },
844
+ { char: "🇩🇿", shortcode: "algeria" },
845
+ { char: "🇦🇸", shortcode: "american_samoa" },
846
+ { char: "🇦🇩", shortcode: "andorra" },
847
+ { char: "🇦🇴", shortcode: "angola" },
848
+ { char: "🇦🇮", shortcode: "anguilla" },
849
+ { char: "🇦🇶", shortcode: "antarctica" },
850
+ { char: "🇦🇬", shortcode: "antigua_barbuda" },
851
+ { char: "🇦🇲", shortcode: "armenia" },
852
+ { char: "🇦🇼", shortcode: "aruba" },
853
+ { char: "🇦🇨", shortcode: "ascension_island" },
854
+ { char: "🇦🇹", shortcode: "austria" },
855
+ { char: "🇦🇿", shortcode: "azerbaijan" },
856
+ { char: "🇧🇸", shortcode: "bahamas" },
857
+ { char: "🇧🇭", shortcode: "bahrain" },
858
+ { char: "🇧🇩", shortcode: "bangladesh" },
859
+ { char: "🇧🇧", shortcode: "barbados" },
860
+ { char: "🇧🇾", shortcode: "belarus" },
861
+ { char: "🇧🇪", shortcode: "belgium" },
862
+ { char: "🇧🇿", shortcode: "belize" },
863
+ { char: "🇧🇯", shortcode: "benin" },
864
+ { char: "🇧🇲", shortcode: "bermuda" },
865
+ { char: "🇧🇹", shortcode: "bhutan" },
866
+ { char: "🇧🇴", shortcode: "bolivia" },
867
+ { char: "🇧🇦", shortcode: "bosnia_herzegovina" },
868
+ { char: "🇧🇼", shortcode: "botswana" },
869
+ { char: "🇧🇻", shortcode: "bouvet_island" },
870
+ { char: "🇮🇴", shortcode: "british_indian_ocean_territory" },
871
+ { char: "🇻🇬", shortcode: "british_virgin_islands" },
872
+ { char: "🇧🇳", shortcode: "brunei" },
873
+ { char: "🇧🇬", shortcode: "bulgaria" },
874
+ { char: "🇧🇫", shortcode: "burkina_faso" },
875
+ { char: "🇧🇮", shortcode: "burundi" },
876
+ { char: "🇰🇭", shortcode: "cambodia" },
877
+ { char: "🇨🇲", shortcode: "cameroon" },
878
+ { char: "🇮🇨", shortcode: "canary_islands" },
879
+ { char: "🇨🇻", shortcode: "cape_verde" },
880
+ { char: "🇧🇶", shortcode: "caribbean_netherlands" },
881
+ { char: "🇰🇾", shortcode: "cayman_islands" },
882
+ { char: "🇨🇫", shortcode: "central_african_republic" },
883
+ { char: "🇪🇦", shortcode: "ceuta_melilla" },
884
+ { char: "🇹🇩", shortcode: "chad" },
885
+ { char: "🇨🇱", shortcode: "chile" },
886
+ { char: "🇨🇽", shortcode: "christmas_island" },
887
+ { char: "🇨🇵", shortcode: "clipperton_island" },
888
+ { char: "🇨🇨", shortcode: "cocos_islands" },
889
+ { char: "🇨🇴", shortcode: "colombia" },
890
+ { char: "🇰🇲", shortcode: "comoros" },
891
+ { char: "🇨🇬", shortcode: "congo_brazzaville" },
892
+ { char: "🇨🇩", shortcode: "congo_kinshasa" },
893
+ { char: "🇨🇰", shortcode: "cook_islands" },
894
+ { char: "🇨🇷", shortcode: "costa_rica" },
895
+ { char: "🇨🇮", shortcode: "cote_divoire" },
896
+ { char: "🇭🇷", shortcode: "croatia" },
897
+ { char: "🇨🇺", shortcode: "cuba" },
898
+ { char: "🇨🇼", shortcode: "curacao" },
899
+ { char: "🇨🇾", shortcode: "cyprus" },
900
+ { char: "🇨🇿", shortcode: "czech_republic" },
901
+ { char: "🇩🇰", shortcode: "denmark" },
902
+ { char: "🇩🇬", shortcode: "diego_garcia" },
903
+ { char: "🇩🇯", shortcode: "djibouti" },
904
+ { char: "🇩🇲", shortcode: "dominica" },
905
+ { char: "🇩🇴", shortcode: "dominican_republic" },
906
+ { char: "🇪🇨", shortcode: "ecuador" },
907
+ { char: "🇪🇬", shortcode: "egypt" },
908
+ { char: "🇸🇻", shortcode: "el_salvador" },
909
+ { char: "🇬🇶", shortcode: "equatorial_guinea" },
910
+ { char: "🇪🇷", shortcode: "eritrea" },
911
+ { char: "🇪🇪", shortcode: "estonia" },
912
+ { char: "🇪🇹", shortcode: "ethiopia" },
913
+ { char: "🇫🇰", shortcode: "falkland_islands" },
914
+ { char: "🇫🇴", shortcode: "faroe_islands" },
915
+ { char: "🇫🇯", shortcode: "fiji" },
916
+ { char: "🇫🇮", shortcode: "finland" },
917
+ { char: "🇬🇫", shortcode: "french_guiana" },
918
+ { char: "🇵🇫", shortcode: "french_polynesia" },
919
+ { char: "🇹🇫", shortcode: "french_southern_territories" },
920
+ { char: "🇬🇦", shortcode: "gabon" },
921
+ { char: "🇬🇲", shortcode: "gambia" },
922
+ { char: "🇬🇪", shortcode: "georgia" },
923
+ { char: "🇬🇭", shortcode: "ghana" },
924
+ { char: "🇬🇮", shortcode: "gibraltar" },
925
+ { char: "🇬🇷", shortcode: "greece" },
926
+ { char: "🇬🇱", shortcode: "greenland" },
927
+ { char: "🇬🇩", shortcode: "grenada" },
928
+ { char: "🇬🇵", shortcode: "guadeloupe" },
929
+ { char: "🇬🇺", shortcode: "guam" },
930
+ { char: "🇬🇹", shortcode: "guatemala" },
931
+ { char: "🇬🇬", shortcode: "guernsey" },
932
+ { char: "🇬🇳", shortcode: "guinea" },
933
+ { char: "🇬🇼", shortcode: "guinea_bissau" },
934
+ { char: "🇬🇾", shortcode: "guyana" },
935
+ { char: "🇭🇹", shortcode: "haiti" },
936
+ { char: "🇭🇲", shortcode: "heard_mcdonald_islands" },
937
+ { char: "🇭🇳", shortcode: "honduras" },
938
+ { char: "🇭🇰", shortcode: "hong_kong" },
939
+ { char: "🇭🇺", shortcode: "hungary" },
940
+ { char: "🇮🇸", shortcode: "iceland" },
941
+ { char: "🇮🇩", shortcode: "indonesia" },
942
+ { char: "🇮🇷", shortcode: "iran" },
943
+ { char: "🇮🇶", shortcode: "iraq" },
944
+ { char: "🇮🇪", shortcode: "ireland" },
945
+ { char: "🇮🇲", shortcode: "isle_of_man" },
946
+ { char: "🇮🇱", shortcode: "israel" },
947
+ { char: "🇯🇲", shortcode: "jamaica" },
948
+ { char: "🇯🇪", shortcode: "jersey" },
949
+ { char: "🇯🇴", shortcode: "jordan" },
950
+ { char: "🇰🇿", shortcode: "kazakhstan" },
951
+ { char: "🇰🇪", shortcode: "kenya" },
952
+ { char: "🇰🇮", shortcode: "kiribati" },
953
+ { char: "🇽🇰", shortcode: "kosovo" },
954
+ { char: "🇰🇼", shortcode: "kuwait" },
955
+ { char: "🇰🇬", shortcode: "kyrgyzstan" },
956
+ { char: "🇱🇦", shortcode: "laos" },
957
+ { char: "🇱🇻", shortcode: "latvia" },
958
+ { char: "🇱🇧", shortcode: "lebanon" },
959
+ { char: "🇱🇸", shortcode: "lesotho" },
960
+ { char: "🇱🇷", shortcode: "liberia" },
961
+ { char: "🇱🇾", shortcode: "libya" },
962
+ { char: "🇱🇮", shortcode: "liechtenstein" },
963
+ { char: "🇱🇹", shortcode: "lithuania" },
964
+ { char: "🇱🇺", shortcode: "luxembourg" },
965
+ { char: "🇲🇴", shortcode: "macau" },
966
+ { char: "🇲🇰", shortcode: "macedonia" },
967
+ { char: "🇲🇬", shortcode: "madagascar" },
968
+ { char: "🇲🇼", shortcode: "malawi" },
969
+ { char: "🇲🇾", shortcode: "malaysia" },
970
+ { char: "🇲🇻", shortcode: "maldives" },
971
+ { char: "🇲🇱", shortcode: "mali" },
972
+ { char: "🇲🇹", shortcode: "malta" },
973
+ { char: "🇲🇭", shortcode: "marshall_islands" },
974
+ { char: "🇲🇶", shortcode: "martinique" },
975
+ { char: "🇲🇷", shortcode: "mauritania" },
976
+ { char: "🇲🇺", shortcode: "mauritius" },
977
+ { char: "🇾🇹", shortcode: "mayotte" },
978
+ { char: "🇫🇲", shortcode: "micronesia" },
979
+ { char: "🇲🇩", shortcode: "moldova" },
980
+ { char: "🇲🇨", shortcode: "monaco" },
981
+ { char: "🇲🇳", shortcode: "mongolia" },
982
+ { char: "🇲🇪", shortcode: "montenegro" },
983
+ { char: "🇲🇸", shortcode: "montserrat" },
984
+ { char: "🇲🇦", shortcode: "morocco" },
985
+ { char: "🇲🇿", shortcode: "mozambique" },
986
+ { char: "🇲🇲", shortcode: "myanmar" },
987
+ { char: "🇳🇦", shortcode: "namibia" },
988
+ { char: "🇳🇷", shortcode: "nauru" },
989
+ { char: "🇳🇵", shortcode: "nepal" },
990
+ { char: "🇳🇱", shortcode: "netherlands" },
991
+ { char: "🇳🇨", shortcode: "new_caledonia" },
992
+ { char: "🇳🇿", shortcode: "new_zealand" },
993
+ { char: "🇳🇮", shortcode: "nicaragua" },
994
+ { char: "🇳🇪", shortcode: "niger" },
995
+ { char: "🇳🇬", shortcode: "nigeria" },
996
+ { char: "🇳🇺", shortcode: "niue" },
997
+ { char: "🇳🇫", shortcode: "norfolk_island" },
998
+ { char: "🇰🇵", shortcode: "north_korea" },
999
+ { char: "🇲🇵", shortcode: "northern_mariana_islands" },
1000
+ { char: "🇳🇴", shortcode: "norway" },
1001
+ { char: "🇴🇲", shortcode: "oman" },
1002
+ { char: "🇵🇰", shortcode: "pakistan" },
1003
+ { char: "🇵🇼", shortcode: "palau" },
1004
+ { char: "🇵🇸", shortcode: "palestinian_territories" },
1005
+ { char: "🇵🇦", shortcode: "panama" },
1006
+ { char: "🇵🇬", shortcode: "papua_new_guinea" },
1007
+ { char: "🇵🇾", shortcode: "paraguay" },
1008
+ { char: "🇵🇪", shortcode: "peru" },
1009
+ { char: "🇵🇭", shortcode: "philippines" },
1010
+ { char: "🇵🇳", shortcode: "pitcairn_islands" },
1011
+ { char: "🇵🇱", shortcode: "poland" },
1012
+ { char: "🇵🇹", shortcode: "portugal" },
1013
+ { char: "🇵🇷", shortcode: "puerto_rico" },
1014
+ { char: "🇶🇦", shortcode: "qatar" },
1015
+ { char: "🇷🇪", shortcode: "reunion" },
1016
+ { char: "🇷🇴", shortcode: "romania" },
1017
+ { char: "🇷🇺", shortcode: "ru" },
1018
+ { char: "🇷🇼", shortcode: "rwanda" },
1019
+ { char: "🇼🇸", shortcode: "samoa" },
1020
+ { char: "🇸🇲", shortcode: "san_marino" },
1021
+ { char: "🇸🇹", shortcode: "sao_tome_principe" },
1022
+ { char: "🇸🇦", shortcode: "saudi_arabia" },
1023
+ { char: "🇸🇳", shortcode: "senegal" },
1024
+ { char: "🇷🇸", shortcode: "serbia" },
1025
+ { char: "🇸🇨", shortcode: "seychelles" },
1026
+ { char: "🇸🇱", shortcode: "sierra_leone" },
1027
+ { char: "🇸🇬", shortcode: "singapore" },
1028
+ { char: "🇸🇽", shortcode: "sint_maarten" },
1029
+ { char: "🇸🇰", shortcode: "slovakia" },
1030
+ { char: "🇸🇮", shortcode: "slovenia" },
1031
+ { char: "🇸🇧", shortcode: "solomon_islands" },
1032
+ { char: "🇸🇴", shortcode: "somalia" },
1033
+ { char: "🇿🇦", shortcode: "south_africa" },
1034
+ { char: "🇬🇸", shortcode: "south_georgia_south_sandwich_islands" },
1035
+ { char: "🇸🇸", shortcode: "south_sudan" },
1036
+ { char: "🇱🇰", shortcode: "sri_lanka" },
1037
+ { char: "🇧🇱", shortcode: "st_barthelemy" },
1038
+ { char: "🇸🇭", shortcode: "st_helena" },
1039
+ { char: "🇰🇳", shortcode: "st_kitts_nevis" },
1040
+ { char: "🇱🇨", shortcode: "st_lucia" },
1041
+ { char: "🇲🇫", shortcode: "st_martin" },
1042
+ { char: "🇵🇲", shortcode: "st_pierre_miquelon" },
1043
+ { char: "🇻🇨", shortcode: "st_vincent_grenadines" },
1044
+ { char: "🇸🇩", shortcode: "sudan" },
1045
+ { char: "🇸🇷", shortcode: "suriname" },
1046
+ { char: "🇸🇯", shortcode: "svalbard_jan_mayen" },
1047
+ { char: "🇸🇿", shortcode: "swaziland" },
1048
+ { char: "🇸🇪", shortcode: "sweden" },
1049
+ { char: "🇨🇭", shortcode: "switzerland" },
1050
+ { char: "🇸🇾", shortcode: "syria" },
1051
+ { char: "🇹🇼", shortcode: "taiwan" },
1052
+ { char: "🇹🇯", shortcode: "tajikistan" },
1053
+ { char: "🇹🇿", shortcode: "tanzania" },
1054
+ { char: "🇹🇭", shortcode: "thailand" },
1055
+ { char: "🇹🇱", shortcode: "timor_leste" },
1056
+ { char: "🇹🇬", shortcode: "togo" },
1057
+ { char: "🇹🇰", shortcode: "tokelau" },
1058
+ { char: "🇹🇴", shortcode: "tonga" },
1059
+ { char: "🇹🇷", shortcode: "tr" },
1060
+ { char: "🇹🇹", shortcode: "trinidad_tobago" },
1061
+ { char: "🇹🇦", shortcode: "tristan_da_cunha" },
1062
+ { char: "🇹🇳", shortcode: "tunisia" },
1063
+ { char: "🇹🇲", shortcode: "turkmenistan" },
1064
+ { char: "🇹🇨", shortcode: "turks_caicos_islands" },
1065
+ { char: "🇹🇻", shortcode: "tuvalu" },
1066
+ { char: "🇺🇬", shortcode: "uganda" },
1067
+ { char: "🇺🇦", shortcode: "ukraine" },
1068
+ { char: "🇦🇪", shortcode: "united_arab_emirates" },
1069
+ { char: "🇺🇾", shortcode: "uruguay" },
1070
+ { char: "🇺🇲", shortcode: "us_outlying_islands" },
1071
+ { char: "🇻🇮", shortcode: "us_virgin_islands" },
1072
+ { char: "🇺🇿", shortcode: "uzbekistan" },
1073
+ { char: "🇻🇺", shortcode: "vanuatu" },
1074
+ { char: "🇻🇦", shortcode: "vatican_city" },
1075
+ { char: "🇻🇪", shortcode: "venezuela" },
1076
+ { char: "🇻🇳", shortcode: "vietnam" },
1077
+ { char: "🇼🇫", shortcode: "wallis_futuna" },
1078
+ { char: "🇪🇭", shortcode: "western_sahara" },
1079
+ { char: "🇾🇪", shortcode: "yemen" },
1080
+ { char: "🇿🇲", shortcode: "zambia" },
1081
+ { char: "🇿🇼", shortcode: "zimbabwe" },
1082
+ ],
1083
+ },
1084
+ ]