@bendyline/squisq-editor-react 2.0.1 โ†’ 2.2.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 (357) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +40 -0
  3. package/README.md +10 -2
  4. package/dist/index.d.ts +683 -60
  5. package/dist/index.js +9648 -3750
  6. package/dist/monaco.js +0 -1
  7. package/dist/styles/index.css +1160 -241
  8. package/package.json +10 -6
  9. package/dist/index.js.map +0 -1
  10. package/dist/monaco.js.map +0 -1
  11. package/src/BlockCardView.tsx +0 -121
  12. package/src/BlockPreviewPanel.tsx +0 -69
  13. package/src/BlockPropertiesPopover.tsx +0 -222
  14. package/src/DocumentSettingsDialog.tsx +0 -272
  15. package/src/DropZoneOverlay.tsx +0 -137
  16. package/src/EditorContext.tsx +0 -1247
  17. package/src/EditorShell.tsx +0 -1334
  18. package/src/EmojiPicker.tsx +0 -332
  19. package/src/FolderView.tsx +0 -131
  20. package/src/Icon.tsx +0 -26
  21. package/src/ImageEditor.tsx +0 -395
  22. package/src/ImageNodeView.tsx +0 -284
  23. package/src/ImageViewer.tsx +0 -221
  24. package/src/InlineIcon.ts +0 -84
  25. package/src/InlinePreviewGutter.tsx +0 -590
  26. package/src/LinkDialog.tsx +0 -276
  27. package/src/MediaBin.tsx +0 -500
  28. package/src/MentionExtension.tsx +0 -261
  29. package/src/OutlinePanel.tsx +0 -547
  30. package/src/PlainHtmlPreview.tsx +0 -277
  31. package/src/PreviewControls.tsx +0 -1250
  32. package/src/PreviewPanel.tsx +0 -422
  33. package/src/RawEditor.tsx +0 -731
  34. package/src/RecorderEntry.tsx +0 -159
  35. package/src/StatusBar.tsx +0 -51
  36. package/src/TemplateAnnotation.ts +0 -167
  37. package/src/TemplateContentPreview.tsx +0 -56
  38. package/src/TemplatePicker.tsx +0 -1314
  39. package/src/ThemeCustomizerPanel.tsx +0 -304
  40. package/src/ThemePicker.tsx +0 -433
  41. package/src/TimelineBlockPreview.tsx +0 -37
  42. package/src/TimelineTrack.tsx +0 -671
  43. package/src/Toolbar.tsx +0 -2587
  44. package/src/Tooltip.tsx +0 -142
  45. package/src/TransitionPicker.tsx +0 -390
  46. package/src/VersionHistoryPanel.tsx +0 -359
  47. package/src/ViewMenuPanel.tsx +0 -189
  48. package/src/ViewSwitcher.tsx +0 -56
  49. package/src/WysiwygEditor.tsx +0 -792
  50. package/src/__tests__/blockProperties.test.ts +0 -92
  51. package/src/__tests__/blockPropertiesPopoverTheme.test.tsx +0 -33
  52. package/src/__tests__/blockRange.test.ts +0 -105
  53. package/src/__tests__/blockTagActivity.test.ts +0 -183
  54. package/src/__tests__/buildDocumentPreviewMarkdown.test.ts +0 -75
  55. package/src/__tests__/buildPreviewDocContent.test.ts +0 -48
  56. package/src/__tests__/buildPreviewDocTransition.test.ts +0 -92
  57. package/src/__tests__/canvasSurfaceTextEditing.test.tsx +0 -60
  58. package/src/__tests__/codeContextSectionView.test.tsx +0 -97
  59. package/src/__tests__/codeContextZoneManager.test.ts +0 -127
  60. package/src/__tests__/createShapeLayer.test.ts +0 -46
  61. package/src/__tests__/customLayoutManagerTheme.test.tsx +0 -34
  62. package/src/__tests__/detectMarkdown.test.ts +0 -73
  63. package/src/__tests__/diffContextSections.test.ts +0 -39
  64. package/src/__tests__/documentSettingsDialog.test.tsx +0 -197
  65. package/src/__tests__/drawingShapeRoundTrip.test.ts +0 -49
  66. package/src/__tests__/editorScrollHandoff.test.tsx +0 -102
  67. package/src/__tests__/editorScrollSync.test.ts +0 -65
  68. package/src/__tests__/editorShellCodeContext.test.tsx +0 -86
  69. package/src/__tests__/editorShellProps.test.tsx +0 -485
  70. package/src/__tests__/embeddedMedia.test.ts +0 -48
  71. package/src/__tests__/emojiPicker.test.tsx +0 -93
  72. package/src/__tests__/fileKind.test.ts +0 -112
  73. package/src/__tests__/headingTransition.test.ts +0 -176
  74. package/src/__tests__/imageEditAffordance.test.tsx +0 -272
  75. package/src/__tests__/imageEditModalContract.test.tsx +0 -119
  76. package/src/__tests__/imageEditorShell.test.tsx +0 -94
  77. package/src/__tests__/imageEditorState.test.ts +0 -171
  78. package/src/__tests__/inlinePreviewGutter.test.tsx +0 -62
  79. package/src/__tests__/inlinePreviewGutterAllBlocks.test.tsx +0 -103
  80. package/src/__tests__/jsonEditor.test.tsx +0 -223
  81. package/src/__tests__/layersPanel.test.tsx +0 -167
  82. package/src/__tests__/layoutChildRoundTrip.test.ts +0 -71
  83. package/src/__tests__/linkDialogDocPicker.test.tsx +0 -137
  84. package/src/__tests__/majorApiTypes.test.ts +0 -26
  85. package/src/__tests__/mediaAttachmentFlow.test.ts +0 -110
  86. package/src/__tests__/mediaBinDrop.test.tsx +0 -90
  87. package/src/__tests__/mediaReferences.test.ts +0 -82
  88. package/src/__tests__/narrationSave.test.ts +0 -148
  89. package/src/__tests__/outlinePanel.test.tsx +0 -169
  90. package/src/__tests__/outlineSource.test.ts +0 -217
  91. package/src/__tests__/plainHtmlPreview.test.tsx +0 -125
  92. package/src/__tests__/presentationMode.test.tsx +0 -290
  93. package/src/__tests__/previewControls.test.tsx +0 -540
  94. package/src/__tests__/previewPanelAudioFailure.test.tsx +0 -46
  95. package/src/__tests__/previewPanelPresentation.test.tsx +0 -126
  96. package/src/__tests__/previewPanelTransforms.test.tsx +0 -117
  97. package/src/__tests__/propertiesPanel.test.tsx +0 -69
  98. package/src/__tests__/rawEditorModelIsolation.test.ts +0 -19
  99. package/src/__tests__/recorderFormats.test.ts +0 -146
  100. package/src/__tests__/recorderMediaInsert.test.ts +0 -86
  101. package/src/__tests__/recorderTheme.test.tsx +0 -42
  102. package/src/__tests__/recorderTimingJson.test.ts +0 -41
  103. package/src/__tests__/resolveBlockVisual.test.ts +0 -43
  104. package/src/__tests__/selectionConversions.test.ts +0 -80
  105. package/src/__tests__/statusBar.test.tsx +0 -27
  106. package/src/__tests__/teleprompter.test.tsx +0 -190
  107. package/src/__tests__/templateAnnotationRoundTrip.test.ts +0 -99
  108. package/src/__tests__/templateContentPreview.test.ts +0 -101
  109. package/src/__tests__/templatePickerMetadata.test.ts +0 -32
  110. package/src/__tests__/templatePickerPortal.test.tsx +0 -62
  111. package/src/__tests__/timelineSource.test.ts +0 -134
  112. package/src/__tests__/tiptapBridge.test.ts +0 -566
  113. package/src/__tests__/tiptapBridgeConformance.test.ts +0 -47
  114. package/src/__tests__/tiptapCodeBlockRoundTrip.test.ts +0 -109
  115. package/src/__tests__/tiptapImageRoundTrip.test.ts +0 -73
  116. package/src/__tests__/toolbarSelectionConversion.test.tsx +0 -164
  117. package/src/__tests__/tooltip.test.tsx +0 -72
  118. package/src/__tests__/transformStyleId.test.ts +0 -13
  119. package/src/__tests__/transitionCatalog.test.ts +0 -64
  120. package/src/__tests__/useBlockNavigator.test.tsx +0 -67
  121. package/src/__tests__/useImageEditor.test.tsx +0 -226
  122. package/src/__tests__/useJsonEditorTokens.test.ts +0 -59
  123. package/src/__tests__/useMediaRecorder.test.ts +0 -302
  124. package/src/__tests__/useTimelineClock.test.ts +0 -21
  125. package/src/__tests__/versionHistory.test.tsx +0 -197
  126. package/src/__tests__/viewMenuPanel.test.tsx +0 -130
  127. package/src/__tests__/wysiwygImageUpload.test.ts +0 -69
  128. package/src/__tests__/wysiwygTemplateBadgeFocus.test.tsx +0 -56
  129. package/src/asciiDiagram/AsciiDiagramExtension.ts +0 -343
  130. package/src/asciiDiagram/AsciiDiagramWidget.tsx +0 -254
  131. package/src/asciiDiagram/RepairableDiagramExtension.ts +0 -200
  132. package/src/asciiDiagram/__tests__/AsciiDiagramExtension.test.ts +0 -145
  133. package/src/asciiDiagram/__tests__/RepairableDiagramExtension.test.ts +0 -159
  134. package/src/asciiDiagram/__tests__/asciiDiagramCommands.test.ts +0 -284
  135. package/src/asciiDiagram/__tests__/asciiDiagramOps.test.ts +0 -114
  136. package/src/asciiDiagram/__tests__/asciiPaste.test.ts +0 -43
  137. package/src/asciiDiagram/asciiDiagramCommands.ts +0 -174
  138. package/src/asciiDiagram/asciiDiagramData.ts +0 -149
  139. package/src/asciiDiagram/asciiDiagramOps.ts +0 -238
  140. package/src/asciiDiagram/asciiPaste.ts +0 -19
  141. package/src/blockProperties.ts +0 -88
  142. package/src/blockRange.ts +0 -132
  143. package/src/blockSlice.ts +0 -75
  144. package/src/blockTagActivity.ts +0 -233
  145. package/src/buildDocumentPreviewMarkdown.ts +0 -168
  146. package/src/buildPreviewDoc.ts +0 -405
  147. package/src/codeContext/CodeContextSectionView.tsx +0 -124
  148. package/src/codeContext/CodeContextZoneManager.ts +0 -149
  149. package/src/codeContext/CodeContextZones.tsx +0 -121
  150. package/src/codeContext/diffContextSections.ts +0 -38
  151. package/src/codeContext/types.ts +0 -75
  152. package/src/customTemplates/AddBin.tsx +0 -126
  153. package/src/customTemplates/CustomLayoutManager.tsx +0 -234
  154. package/src/customTemplates/CustomTemplateContext.tsx +0 -188
  155. package/src/customTemplates/LayerToolbar.tsx +0 -580
  156. package/src/customTemplates/ShapeGlyph.tsx +0 -47
  157. package/src/customTemplates/TemplateDesigner.tsx +0 -433
  158. package/src/customTemplates/__tests__/library.test.ts +0 -96
  159. package/src/customTemplates/__tests__/normalizePositions.test.ts +0 -109
  160. package/src/customTemplates/__tests__/shapeDefs.test.ts +0 -49
  161. package/src/customTemplates/__tests__/useMemoryLayerAdapter.test.ts +0 -108
  162. package/src/customTemplates/designer.css +0 -732
  163. package/src/customTemplates/index.ts +0 -31
  164. package/src/customTemplates/library.ts +0 -110
  165. package/src/customTemplates/normalizePositions.ts +0 -75
  166. package/src/customTemplates/shapeDefs.ts +0 -131
  167. package/src/customTemplates/thumbnail.tsx +0 -63
  168. package/src/customTemplates/tokenDefs.ts +0 -60
  169. package/src/customTemplates/useDocCustomTemplates.ts +0 -52
  170. package/src/customTemplates/useMemoryLayerAdapter.ts +0 -129
  171. package/src/customThemes/CustomThemeContext.tsx +0 -185
  172. package/src/customThemes/CustomThemeDialog.tsx +0 -316
  173. package/src/customThemes/ImportThemeSection.tsx +0 -178
  174. package/src/customThemes/__tests__/CustomThemeContext.test.tsx +0 -64
  175. package/src/customThemes/__tests__/CustomThemeDialog.test.tsx +0 -47
  176. package/src/customThemes/__tests__/customThemeLibrary.test.ts +0 -60
  177. package/src/customThemes/__tests__/importThemeSection.test.tsx +0 -192
  178. package/src/customThemes/customThemeLibrary.ts +0 -100
  179. package/src/customThemes/index.ts +0 -37
  180. package/src/customThemes/themeControls.tsx +0 -229
  181. package/src/customThemes/themeDraft.ts +0 -288
  182. package/src/customThemes/useDocCustomThemes.ts +0 -49
  183. package/src/detectMarkdown.ts +0 -62
  184. package/src/diagram/DiagramCanvas.tsx +0 -259
  185. package/src/diagram/DiagramMaximizedOverlay.tsx +0 -46
  186. package/src/diagram/diagramCommands.ts +0 -604
  187. package/src/diagram/diagramConstants.ts +0 -17
  188. package/src/diagram/types.ts +0 -35
  189. package/src/editorScrollSync.ts +0 -73
  190. package/src/embeddedMedia.ts +0 -78
  191. package/src/emojiData.ts +0 -1317
  192. package/src/fileKind.ts +0 -158
  193. package/src/frontmatter.ts +0 -29
  194. package/src/frontmatterSettings.ts +0 -23
  195. package/src/headingTransition.ts +0 -291
  196. package/src/hooks/useFileDrop.ts +0 -266
  197. package/src/imageEditor/CanvasSurface.tsx +0 -703
  198. package/src/imageEditor/ImageVersionHistoryDropdown.tsx +0 -396
  199. package/src/imageEditor/LayersPanel.tsx +0 -218
  200. package/src/imageEditor/PropertiesPanel.tsx +0 -474
  201. package/src/imageEditor/Toolbar.tsx +0 -459
  202. package/src/imageEditor/createShapeLayer.ts +0 -280
  203. package/src/imageEditor/icons.tsx +0 -68
  204. package/src/imageEditor/image-editor.css +0 -574
  205. package/src/imageEditor/layers/EditorImageLayer.tsx +0 -45
  206. package/src/imageEditor/layers/EditorShapeLayer.tsx +0 -62
  207. package/src/imageEditor/layers/EditorTextLayer.tsx +0 -45
  208. package/src/imageEditor/layers/SelectionHandles.tsx +0 -86
  209. package/src/imageEditor/state.ts +0 -173
  210. package/src/imageEditor/useImageEditor.ts +0 -385
  211. package/src/imageEditor/useImageEditorTokens.ts +0 -70
  212. package/src/index.ts +0 -470
  213. package/src/jsonEditor/EmbeddedRichTextField.tsx +0 -81
  214. package/src/jsonEditor/JsonEditor.tsx +0 -81
  215. package/src/jsonEditor/JsonEditorContext.tsx +0 -81
  216. package/src/jsonEditor/RenderNode.tsx +0 -87
  217. package/src/jsonEditor/editors.tsx +0 -745
  218. package/src/jsonEditor/index.ts +0 -2
  219. package/src/jsonEditor/json-editor.css +0 -463
  220. package/src/jsonEditor/useJsonEditorTokens.ts +0 -33
  221. package/src/mediaDragMime.ts +0 -32
  222. package/src/mediaEntries.ts +0 -12
  223. package/src/mediaReferences.ts +0 -299
  224. package/src/monaco.ts +0 -35
  225. package/src/monacoWorkers.ts +0 -89
  226. package/src/outlineSource.ts +0 -171
  227. package/src/presentation/PresentationMode.tsx +0 -596
  228. package/src/rawEditorIsolation.ts +0 -18
  229. package/src/recorder/RecorderButton.tsx +0 -80
  230. package/src/recorder/RecorderModal.tsx +0 -706
  231. package/src/recorder/RecorderPanel.tsx +0 -77
  232. package/src/recorder/formats.ts +0 -159
  233. package/src/recorder/hooks/useMediaRecorder.ts +0 -436
  234. package/src/recorder/hooks/useStreamPreview.ts +0 -47
  235. package/src/recorder/insertMediaBlock.ts +0 -30
  236. package/src/recorder/sources/cameraStream.ts +0 -32
  237. package/src/recorder/sources/micStream.ts +0 -25
  238. package/src/recorder/sources/screenStream.ts +0 -162
  239. package/src/recorder/timingJson.ts +0 -66
  240. package/src/resolveBlockVisual.ts +0 -39
  241. package/src/scene/Scene.tsx +0 -616
  242. package/src/scene/SceneBlockExtension.ts +0 -205
  243. package/src/scene/SceneBlockToolbar.tsx +0 -201
  244. package/src/scene/SceneBlockWidget.tsx +0 -441
  245. package/src/scene/ScenePropsBar.tsx +0 -85
  246. package/src/scene/SceneSelection.tsx +0 -111
  247. package/src/scene/SceneSideToolbar.tsx +0 -89
  248. package/src/scene/SceneViewport.tsx +0 -106
  249. package/src/scene/ShapePalette.tsx +0 -196
  250. package/src/scene/__tests__/DiagramAdapter.test.ts +0 -142
  251. package/src/scene/__tests__/SceneBlockExtension.test.ts +0 -33
  252. package/src/scene/__tests__/bezierEdit.test.ts +0 -85
  253. package/src/scene/__tests__/blockLayers.test.ts +0 -57
  254. package/src/scene/__tests__/sceneIsolation.test.tsx +0 -119
  255. package/src/scene/__tests__/shapeLayers.test.ts +0 -106
  256. package/src/scene/__tests__/useSceneHitTest.test.ts +0 -90
  257. package/src/scene/__tests__/useScenePanZoom.test.ts +0 -103
  258. package/src/scene/adapters/DiagramAdapter.ts +0 -79
  259. package/src/scene/adapters/DrawingAdapter.ts +0 -420
  260. package/src/scene/adapters/LayoutAdapter.ts +0 -313
  261. package/src/scene/adapters/blockLayers.ts +0 -159
  262. package/src/scene/commands/SceneCommand.ts +0 -84
  263. package/src/scene/commands/drawingCommands.ts +0 -318
  264. package/src/scene/commands/layoutCommands.ts +0 -301
  265. package/src/scene/hooks/useSceneHitTest.ts +0 -105
  266. package/src/scene/hooks/useScenePanZoom.ts +0 -147
  267. package/src/scene/hooks/useSceneSelection.ts +0 -62
  268. package/src/scene/index.ts +0 -90
  269. package/src/scene/layers/DiagramEdges.tsx +0 -142
  270. package/src/scene/layers/edgeGeometry.ts +0 -104
  271. package/src/scene/layers/nodeCard.tsx +0 -164
  272. package/src/scene/layers/renderLayer.tsx +0 -70
  273. package/src/scene/layers/shapeLayers.ts +0 -201
  274. package/src/scene/paths/bezierEdit.ts +0 -208
  275. package/src/scene/scene.css +0 -792
  276. package/src/scene/text/SceneTextOverlay.tsx +0 -161
  277. package/src/scene/text/sceneTextChannel.ts +0 -46
  278. package/src/scene/text/sceneTextConfig.ts +0 -31
  279. package/src/scene/text/sceneTiptap.ts +0 -36
  280. package/src/scene/text/useSceneTextEditing.ts +0 -39
  281. package/src/scene/tools/ConnectTool.ts +0 -209
  282. package/src/scene/tools/DrawingConnectTool.ts +0 -231
  283. package/src/scene/tools/PathTool.ts +0 -158
  284. package/src/scene/tools/PlaceTool.ts +0 -47
  285. package/src/scene/tools/SceneTool.ts +0 -85
  286. package/src/scene/tools/SelectTool.ts +0 -300
  287. package/src/scene/tools/ShapeTool.ts +0 -143
  288. package/src/scene/tools/TextTool.ts +0 -72
  289. package/src/scene/tools/TokenTool.ts +0 -95
  290. package/src/scene/tools/createDrawShapeTool.ts +0 -82
  291. package/src/selectionConversions.ts +0 -155
  292. package/src/styles/ascii-diagram.css +0 -79
  293. package/src/styles/ascii-timeline.css +0 -596
  294. package/src/styles/code-context.css +0 -155
  295. package/src/styles/diagram.css +0 -183
  296. package/src/styles/editor.css +0 -6811
  297. package/src/styles/folder-view.css +0 -210
  298. package/src/styles/image-edit-affordance.css +0 -201
  299. package/src/styles/index.css +0 -18
  300. package/src/styles/tree-view.css +0 -189
  301. package/src/teleprompter/TeleprompterControls.tsx +0 -218
  302. package/src/teleprompter/TeleprompterSelfView.tsx +0 -22
  303. package/src/teleprompter/TeleprompterSurface.tsx +0 -267
  304. package/src/teleprompter/TeleprompterView.tsx +0 -338
  305. package/src/teleprompter/canvasRenderer.ts +0 -161
  306. package/src/teleprompter/floatingWindow.ts +0 -352
  307. package/src/teleprompter/index.ts +0 -61
  308. package/src/teleprompter/pcmWorklet.ts +0 -62
  309. package/src/teleprompter/recording/insertPreamble.ts +0 -80
  310. package/src/teleprompter/recording/narrationSave.ts +0 -134
  311. package/src/teleprompter/recording/useNarrationRecorder.ts +0 -367
  312. package/src/teleprompter/scrollModel.ts +0 -85
  313. package/src/teleprompter/teleprompterTheme.ts +0 -303
  314. package/src/teleprompter/types.ts +0 -38
  315. package/src/teleprompter/useFloatingWindow.ts +0 -74
  316. package/src/teleprompter/useMicAnalysis.ts +0 -211
  317. package/src/teleprompter/useTeleprompter.ts +0 -421
  318. package/src/templateContentPreviewResolver.ts +0 -360
  319. package/src/timeline/TimelineEditorWidget.tsx +0 -861
  320. package/src/timeline/TimelineViewExtension.ts +0 -252
  321. package/src/timeline/__tests__/TimelineEditorWidget.test.tsx +0 -414
  322. package/src/timeline/__tests__/TimelineViewExtension.test.ts +0 -163
  323. package/src/timeline/__tests__/timelineCommands.test.ts +0 -359
  324. package/src/timeline/__tests__/timelineOps.test.ts +0 -277
  325. package/src/timeline/__tests__/timelinePaste.test.ts +0 -34
  326. package/src/timeline/timelineCommands.ts +0 -421
  327. package/src/timeline/timelineData.ts +0 -54
  328. package/src/timeline/timelineOps.ts +0 -381
  329. package/src/timeline/timelinePaste.ts +0 -8
  330. package/src/timelineSource.ts +0 -244
  331. package/src/tiptap/TiptapAudio.tsx +0 -86
  332. package/src/tiptap/TiptapVideo.tsx +0 -119
  333. package/src/tiptap/useResolvedMediaSrc.ts +0 -47
  334. package/src/tiptapBridge.ts +0 -986
  335. package/src/tooltipPlacement.ts +0 -13
  336. package/src/transformStyleId.ts +0 -17
  337. package/src/transitionCatalog.ts +0 -159
  338. package/src/treeview/TreeOutlineWidget.tsx +0 -390
  339. package/src/treeview/TreeViewExtension.ts +0 -250
  340. package/src/treeview/__tests__/TreeOutlineWidget.test.tsx +0 -156
  341. package/src/treeview/__tests__/TreeViewExtension.test.ts +0 -122
  342. package/src/treeview/__tests__/treeOps.test.ts +0 -177
  343. package/src/treeview/__tests__/treePaste.test.ts +0 -40
  344. package/src/treeview/__tests__/treeViewCommands.test.ts +0 -179
  345. package/src/treeview/treeOps.ts +0 -231
  346. package/src/treeview/treePaste.ts +0 -13
  347. package/src/treeview/treeViewCommands.ts +0 -99
  348. package/src/treeview/treeViewData.ts +0 -41
  349. package/src/types/monaco-shims.d.ts +0 -10
  350. package/src/useBlockNavigator.ts +0 -153
  351. package/src/useHeadingLayout.ts +0 -294
  352. package/src/useMonacoLoader.ts +0 -82
  353. package/src/useTimelineClock.ts +0 -76
  354. package/src/utils/collectInlineFontAwesomeCss.ts +0 -69
  355. package/src/utils/dropUtils.ts +0 -136
  356. package/src/utils/normalizeMalformedAssetUrl.ts +0 -22
  357. package/src/wysiwygImageUpload.ts +0 -113
package/src/emojiData.ts DELETED
@@ -1,1317 +0,0 @@
1
- /**
2
- * Emoji Dataset
3
- *
4
- * Curated set of common emoji grouped by Unicode CLDR category. Used by
5
- * `EmojiPicker` for both the category tabs and the search index.
6
- *
7
- * Each entry is a flat tuple `[char, name, ...keywords]` so the data
8
- * stays compact in source and is cheap to scan for the typeahead
9
- * search. Categories follow the official Unicode buckets in display
10
- * order (CLDR v44 grouping), trimmed to common picks per category โ€”
11
- * we deliberately don't ship the whole Unicode emoji set (thousands)
12
- * because the picker is meant for quick insertion, not exhaustive
13
- * lookup; the user can paste anything we don't have.
14
- */
15
-
16
- interface EmojiEntry {
17
- /** The actual emoji glyph (may be multi-codepoint, e.g. ZWJ sequences). */
18
- char: string;
19
- /** Display name shown in the tooltip. */
20
- name: string;
21
- /** Lowercase keywords for the search index โ€” name words plus aliases. */
22
- keywords: string;
23
- }
24
-
25
- interface EmojiCategory {
26
- id: string;
27
- label: string;
28
- /** Single-glyph icon shown on the tab. */
29
- icon: string;
30
- emojis: EmojiEntry[];
31
- }
32
-
33
- function e(char: string, name: string, ...kw: string[]): EmojiEntry {
34
- return { char, name, keywords: [name, ...kw].join(' ').toLowerCase() };
35
- }
36
-
37
- const EMOJI_CATEGORIES: EmojiCategory[] = [
38
- {
39
- id: 'smileys',
40
- label: 'Smileys',
41
- icon: '๐Ÿ˜€',
42
- emojis: [
43
- e('๐Ÿ˜€', 'grinning'),
44
- e('๐Ÿ˜ƒ', 'smiley'),
45
- e('๐Ÿ˜„', 'smile', 'happy'),
46
- e('๐Ÿ˜', 'grin', 'beaming'),
47
- e('๐Ÿ˜†', 'laughing'),
48
- e('๐Ÿ˜…', 'sweat smile'),
49
- e('๐Ÿคฃ', 'rofl', 'rolling laughing'),
50
- e('๐Ÿ˜‚', 'joy', 'laughing tears'),
51
- e('๐Ÿ™‚', 'slight smile'),
52
- e('๐Ÿ™ƒ', 'upside down'),
53
- e('๐Ÿ˜‰', 'wink'),
54
- e('๐Ÿ˜Š', 'blush'),
55
- e('๐Ÿ˜‡', 'innocent', 'halo'),
56
- e('๐Ÿฅฐ', 'smiling hearts'),
57
- e('๐Ÿ˜', 'heart eyes'),
58
- e('๐Ÿคฉ', 'star struck'),
59
- e('๐Ÿ˜˜', 'kiss', 'blow kiss'),
60
- e('๐Ÿ˜—', 'kissing'),
61
- e('๐Ÿ˜š', 'kissing closed eyes'),
62
- e('๐Ÿ˜™', 'kissing smile'),
63
- e('๐Ÿฅฒ', 'smiling tear'),
64
- e('๐Ÿ˜‹', 'yum', 'tongue'),
65
- e('๐Ÿ˜›', 'tongue out'),
66
- e('๐Ÿ˜œ', 'wink tongue'),
67
- e('๐Ÿคช', 'zany', 'crazy'),
68
- e('๐Ÿ˜', 'squint tongue'),
69
- e('๐Ÿค‘', 'money face'),
70
- e('๐Ÿค—', 'hugging'),
71
- e('๐Ÿคญ', 'hand over mouth'),
72
- e('๐Ÿคซ', 'shushing'),
73
- e('๐Ÿค”', 'thinking'),
74
- e('๐Ÿค', 'zipper mouth'),
75
- e('๐Ÿคจ', 'raised eyebrow'),
76
- e('๐Ÿ˜', 'neutral'),
77
- e('๐Ÿ˜‘', 'expressionless'),
78
- e('๐Ÿ˜ถ', 'no mouth'),
79
- e('๐Ÿ˜', 'smirk'),
80
- e('๐Ÿ˜’', 'unamused'),
81
- e('๐Ÿ™„', 'eye roll'),
82
- e('๐Ÿ˜ฌ', 'grimace'),
83
- e('๐Ÿคฅ', 'lying', 'pinocchio'),
84
- e('๐Ÿ˜Œ', 'relieved'),
85
- e('๐Ÿ˜”', 'pensive'),
86
- e('๐Ÿ˜ช', 'sleepy'),
87
- e('๐Ÿคค', 'drool'),
88
- e('๐Ÿ˜ด', 'sleeping', 'zzz'),
89
- e('๐Ÿ˜ท', 'mask'),
90
- e('๐Ÿค’', 'thermometer face'),
91
- e('๐Ÿค•', 'head bandage'),
92
- e('๐Ÿคข', 'nauseated'),
93
- e('๐Ÿคฎ', 'vomiting'),
94
- e('๐Ÿคง', 'sneeze'),
95
- e('๐Ÿฅต', 'hot face'),
96
- e('๐Ÿฅถ', 'cold face'),
97
- e('๐Ÿฅด', 'woozy'),
98
- e('๐Ÿ˜ต', 'dizzy'),
99
- e('๐Ÿคฏ', 'mind blown', 'exploding head'),
100
- e('๐Ÿค ', 'cowboy'),
101
- e('๐Ÿฅณ', 'partying'),
102
- e('๐Ÿฅธ', 'disguised'),
103
- e('๐Ÿ˜Ž', 'sunglasses', 'cool'),
104
- e('๐Ÿค“', 'nerd', 'glasses'),
105
- e('๐Ÿง', 'monocle'),
106
- e('๐Ÿ˜•', 'confused'),
107
- e('๐Ÿ˜Ÿ', 'worried'),
108
- e('๐Ÿ™', 'slight frown'),
109
- e('โ˜น๏ธ', 'frown'),
110
- e('๐Ÿ˜ฎ', 'open mouth'),
111
- e('๐Ÿ˜ฏ', 'hushed'),
112
- e('๐Ÿ˜ฒ', 'astonished'),
113
- e('๐Ÿ˜ณ', 'flushed'),
114
- e('๐Ÿฅบ', 'pleading'),
115
- e('๐Ÿ˜ฆ', 'frowning open mouth'),
116
- e('๐Ÿ˜ง', 'anguished'),
117
- e('๐Ÿ˜จ', 'fearful'),
118
- e('๐Ÿ˜ฐ', 'anxious sweat'),
119
- e('๐Ÿ˜ฅ', 'sad relieved'),
120
- e('๐Ÿ˜ข', 'cry'),
121
- e('๐Ÿ˜ญ', 'sobbing', 'loud cry'),
122
- e('๐Ÿ˜ฑ', 'screaming', 'shocked'),
123
- e('๐Ÿ˜–', 'confounded'),
124
- e('๐Ÿ˜ฃ', 'persevering'),
125
- e('๐Ÿ˜ž', 'disappointed'),
126
- e('๐Ÿ˜“', 'downcast sweat'),
127
- e('๐Ÿ˜ฉ', 'weary'),
128
- e('๐Ÿ˜ซ', 'tired'),
129
- e('๐Ÿ˜ค', 'triumph'),
130
- e('๐Ÿ˜ก', 'pout', 'red angry'),
131
- e('๐Ÿ˜ ', 'angry'),
132
- e('๐Ÿคฌ', 'cursing', 'symbols'),
133
- e('๐Ÿ˜ˆ', 'smiling devil'),
134
- e('๐Ÿ‘ฟ', 'angry devil'),
135
- e('๐Ÿ’€', 'skull'),
136
- e('๐Ÿ’ฉ', 'poop', 'pile'),
137
- e('๐Ÿคก', 'clown'),
138
- e('๐Ÿ‘ป', 'ghost'),
139
- e('๐Ÿ‘ฝ', 'alien'),
140
- e('๐Ÿค–', 'robot'),
141
- e('๐ŸŽƒ', 'jack o lantern', 'pumpkin'),
142
- ],
143
- },
144
- {
145
- id: 'people',
146
- label: 'People',
147
- icon: '๐Ÿ‘‹',
148
- emojis: [
149
- e('๐Ÿ‘‹', 'wave', 'hello'),
150
- e('๐Ÿคš', 'raised back hand'),
151
- e('๐Ÿ–๏ธ', 'raised hand fingers'),
152
- e('โœ‹', 'raised hand', 'stop'),
153
- e('๐Ÿ––', 'vulcan'),
154
- e('๐Ÿ‘Œ', 'ok hand'),
155
- e('๐ŸคŒ', 'pinched fingers'),
156
- e('๐Ÿค', 'pinching'),
157
- e('โœŒ๏ธ', 'peace'),
158
- e('๐Ÿคž', 'crossed fingers', 'luck'),
159
- e('๐ŸคŸ', 'love you gesture'),
160
- e('๐Ÿค˜', 'rock on', 'horns'),
161
- e('๐Ÿค™', 'call me'),
162
- e('๐Ÿ‘ˆ', 'point left'),
163
- e('๐Ÿ‘‰', 'point right'),
164
- e('๐Ÿ‘†', 'point up'),
165
- e('๐Ÿ‘‡', 'point down'),
166
- e('โ˜๏ธ', 'index up'),
167
- e('๐Ÿ‘', 'thumbs up', 'like'),
168
- e('๐Ÿ‘Ž', 'thumbs down', 'dislike'),
169
- e('โœŠ', 'raised fist'),
170
- e('๐Ÿ‘Š', 'oncoming fist', 'punch'),
171
- e('๐Ÿค›', 'left fist', 'bump'),
172
- e('๐Ÿคœ', 'right fist'),
173
- e('๐Ÿ‘', 'clap'),
174
- e('๐Ÿ™Œ', 'raised hands', 'praise'),
175
- e('๐Ÿ‘', 'open hands'),
176
- e('๐Ÿคฒ', 'palms up'),
177
- e('๐Ÿค', 'handshake'),
178
- e('๐Ÿ™', 'pray', 'thanks'),
179
- e('๐Ÿ’ช', 'muscle', 'strong'),
180
- e('๐Ÿฆต', 'leg'),
181
- e('๐Ÿฆถ', 'foot'),
182
- e('๐Ÿ‘‚', 'ear'),
183
- e('๐Ÿฆป', 'ear hearing aid'),
184
- e('๐Ÿ‘ƒ', 'nose'),
185
- e('๐Ÿง ', 'brain'),
186
- e('๐Ÿซ€', 'heart anatomy'),
187
- e('๐Ÿซ', 'lungs'),
188
- e('๐Ÿฆท', 'tooth'),
189
- e('๐Ÿฆด', 'bone'),
190
- e('๐Ÿ‘€', 'eyes'),
191
- e('๐Ÿ‘๏ธ', 'eye'),
192
- e('๐Ÿ‘…', 'tongue'),
193
- e('๐Ÿ‘„', 'mouth'),
194
- e('๐Ÿ’‹', 'lipstick kiss'),
195
- e('๐Ÿ‘ถ', 'baby'),
196
- e('๐Ÿง’', 'child'),
197
- e('๐Ÿ‘ฆ', 'boy'),
198
- e('๐Ÿ‘ง', 'girl'),
199
- e('๐Ÿง‘', 'person'),
200
- e('๐Ÿ‘จ', 'man'),
201
- e('๐Ÿ‘ฉ', 'woman'),
202
- e('๐Ÿง“', 'older person'),
203
- e('๐Ÿ‘ด', 'old man'),
204
- e('๐Ÿ‘ต', 'old woman'),
205
- e('๐Ÿ‘ฎ', 'police'),
206
- e('๐Ÿ•ต๏ธ', 'detective'),
207
- e('๐Ÿ’‚', 'guard'),
208
- e('๐Ÿง‘โ€โš•๏ธ', 'health worker'),
209
- e('๐Ÿง‘โ€๐ŸŽ“', 'student'),
210
- e('๐Ÿง‘โ€๐Ÿซ', 'teacher'),
211
- e('๐Ÿง‘โ€๐Ÿ”ง', 'mechanic'),
212
- e('๐Ÿง‘โ€๐Ÿ’ป', 'technologist', 'developer'),
213
- e('๐Ÿง‘โ€๐ŸŽจ', 'artist'),
214
- e('๐Ÿง‘โ€๐Ÿš€', 'astronaut'),
215
- e('๐Ÿง‘โ€๐Ÿš’', 'firefighter'),
216
- e('๐Ÿ‘ท', 'construction worker'),
217
- e('๐Ÿคด', 'prince'),
218
- e('๐Ÿ‘ธ', 'princess'),
219
- e('๐Ÿฆธ', 'superhero'),
220
- e('๐Ÿฆน', 'supervillain'),
221
- e('๐Ÿง™', 'mage', 'wizard'),
222
- e('๐Ÿงš', 'fairy'),
223
- e('๐Ÿง›', 'vampire'),
224
- e('๐Ÿงœ', 'merperson'),
225
- e('๐Ÿง', 'elf'),
226
- e('๐Ÿงž', 'genie'),
227
- e('๐ŸงŸ', 'zombie'),
228
- ],
229
- },
230
- {
231
- id: 'nature',
232
- label: 'Nature',
233
- icon: '๐ŸŒฟ',
234
- emojis: [
235
- e('๐Ÿถ', 'dog face'),
236
- e('๐Ÿฑ', 'cat face'),
237
- e('๐Ÿญ', 'mouse'),
238
- e('๐Ÿน', 'hamster'),
239
- e('๐Ÿฐ', 'rabbit face'),
240
- e('๐ŸฆŠ', 'fox'),
241
- e('๐Ÿป', 'bear'),
242
- e('๐Ÿผ', 'panda'),
243
- e('๐Ÿปโ€โ„๏ธ', 'polar bear'),
244
- e('๐Ÿจ', 'koala'),
245
- e('๐Ÿฏ', 'tiger face'),
246
- e('๐Ÿฆ', 'lion'),
247
- e('๐Ÿฎ', 'cow face'),
248
- e('๐Ÿท', 'pig face'),
249
- e('๐Ÿฝ', 'pig nose'),
250
- e('๐Ÿธ', 'frog'),
251
- e('๐Ÿต', 'monkey face'),
252
- e('๐Ÿ™ˆ', 'see no evil'),
253
- e('๐Ÿ™‰', 'hear no evil'),
254
- e('๐Ÿ™Š', 'speak no evil'),
255
- e('๐Ÿ’', 'monkey'),
256
- e('๐Ÿ”', 'chicken'),
257
- e('๐Ÿง', 'penguin'),
258
- e('๐Ÿฆ', 'bird'),
259
- e('๐Ÿค', 'baby chick'),
260
- e('๐Ÿฃ', 'hatching chick'),
261
- e('๐Ÿฆ†', 'duck'),
262
- e('๐Ÿฆ…', 'eagle'),
263
- e('๐Ÿฆ‰', 'owl'),
264
- e('๐Ÿฆ‡', 'bat'),
265
- e('๐Ÿบ', 'wolf'),
266
- e('๐Ÿ—', 'boar'),
267
- e('๐Ÿด', 'horse face'),
268
- e('๐Ÿฆ„', 'unicorn'),
269
- e('๐Ÿ', 'bee'),
270
- e('๐Ÿ›', 'bug'),
271
- e('๐Ÿฆ‹', 'butterfly'),
272
- e('๐ŸŒ', 'snail'),
273
- e('๐Ÿž', 'lady beetle'),
274
- e('๐Ÿœ', 'ant'),
275
- e('๐Ÿฆ‚', 'scorpion'),
276
- e('๐Ÿ•ท๏ธ', 'spider'),
277
- e('๐Ÿข', 'turtle'),
278
- e('๐Ÿ', 'snake'),
279
- e('๐Ÿฆ–', 'trex'),
280
- e('๐Ÿฆ•', 'sauropod'),
281
- e('๐Ÿ™', 'octopus'),
282
- e('๐Ÿฆ‘', 'squid'),
283
- e('๐Ÿฆ', 'shrimp'),
284
- e('๐Ÿฆž', 'lobster'),
285
- e('๐Ÿฆ€', 'crab'),
286
- e('๐Ÿก', 'blowfish'),
287
- e('๐Ÿ ', 'tropical fish'),
288
- e('๐ŸŸ', 'fish'),
289
- e('๐Ÿฌ', 'dolphin'),
290
- e('๐Ÿณ', 'spouting whale'),
291
- e('๐Ÿ‹', 'whale'),
292
- e('๐Ÿฆˆ', 'shark'),
293
- e('๐ŸŠ', 'crocodile'),
294
- e('๐Ÿ…', 'tiger'),
295
- e('๐Ÿ†', 'leopard'),
296
- e('๐Ÿฆ“', 'zebra'),
297
- e('๐Ÿฆ', 'gorilla'),
298
- e('๐Ÿฆง', 'orangutan'),
299
- e('๐Ÿ˜', 'elephant'),
300
- e('๐Ÿฆ›', 'hippopotamus'),
301
- e('๐Ÿฆ', 'rhinoceros'),
302
- e('๐Ÿช', 'camel'),
303
- e('๐Ÿซ', 'two hump camel'),
304
- e('๐Ÿฆ’', 'giraffe'),
305
- e('๐Ÿฆ˜', 'kangaroo'),
306
- e('๐Ÿƒ', 'water buffalo'),
307
- e('๐Ÿ‚', 'ox'),
308
- e('๐Ÿ„', 'cow'),
309
- e('๐ŸŽ', 'horse'),
310
- e('๐Ÿ–', 'pig'),
311
- e('๐Ÿ', 'ram'),
312
- e('๐Ÿ‘', 'ewe'),
313
- e('๐Ÿฆ™', 'llama'),
314
- e('๐Ÿ', 'goat'),
315
- e('๐ŸฆŒ', 'deer'),
316
- e('๐Ÿ•', 'dog'),
317
- e('๐Ÿฉ', 'poodle'),
318
- e('๐Ÿฆฎ', 'guide dog'),
319
- e('๐Ÿ•โ€๐Ÿฆบ', 'service dog'),
320
- e('๐Ÿˆ', 'cat'),
321
- e('๐Ÿˆโ€โฌ›', 'black cat'),
322
- e('๐Ÿ“', 'rooster'),
323
- e('๐Ÿฆƒ', 'turkey'),
324
- e('๐Ÿฆš', 'peacock'),
325
- e('๐Ÿฆœ', 'parrot'),
326
- e('๐Ÿฆข', 'swan'),
327
- e('๐ŸŒฒ', 'evergreen tree'),
328
- e('๐ŸŒณ', 'deciduous tree'),
329
- e('๐ŸŒด', 'palm tree'),
330
- e('๐ŸŒต', 'cactus'),
331
- e('๐ŸŒท', 'tulip'),
332
- e('๐ŸŒธ', 'cherry blossom'),
333
- e('๐ŸŒน', 'rose'),
334
- e('๐Ÿฅ€', 'wilted flower'),
335
- e('๐ŸŒบ', 'hibiscus'),
336
- e('๐ŸŒป', 'sunflower'),
337
- e('๐ŸŒผ', 'blossom'),
338
- e('๐ŸŒฑ', 'seedling'),
339
- e('๐Ÿชด', 'potted plant'),
340
- e('๐ŸŒฟ', 'herb'),
341
- e('โ˜˜๏ธ', 'shamrock'),
342
- e('๐Ÿ€', 'four leaf clover'),
343
- e('๐Ÿ', 'maple leaf'),
344
- e('๐Ÿ‚', 'fallen leaf'),
345
- e('๐Ÿƒ', 'leaf wind'),
346
- e('๐ŸŒž', 'sun face'),
347
- e('โ˜€๏ธ', 'sun'),
348
- e('๐ŸŒ', 'full moon face'),
349
- e('๐ŸŒš', 'new moon face'),
350
- e('๐ŸŒ›', 'first quarter moon face'),
351
- e('๐ŸŒœ', 'last quarter moon face'),
352
- e('๐ŸŒ™', 'crescent moon'),
353
- e('๐ŸŒŽ', 'earth americas'),
354
- e('๐ŸŒ', 'earth europe africa'),
355
- e('๐ŸŒ', 'earth asia australia'),
356
- e('๐Ÿช', 'ringed planet'),
357
- e('โญ', 'star'),
358
- e('๐ŸŒŸ', 'glowing star'),
359
- e('โœจ', 'sparkles'),
360
- e('โšก', 'lightning', 'bolt'),
361
- e('โ˜„๏ธ', 'comet'),
362
- e('๐Ÿ”ฅ', 'fire'),
363
- e('๐Ÿ’ฅ', 'collision', 'boom'),
364
- e('๐ŸŒˆ', 'rainbow'),
365
- e('โ˜๏ธ', 'cloud'),
366
- e('โ›…', 'sun behind cloud'),
367
- e('๐ŸŒง๏ธ', 'rain cloud'),
368
- e('โ›ˆ๏ธ', 'thunder cloud'),
369
- e('๐ŸŒฉ๏ธ', 'lightning cloud'),
370
- e('๐ŸŒจ๏ธ', 'snow cloud'),
371
- e('โ„๏ธ', 'snowflake'),
372
- e('โ›„', 'snowman'),
373
- e('๐ŸŒช๏ธ', 'tornado'),
374
- e('๐ŸŒซ๏ธ', 'fog'),
375
- e('๐ŸŒŠ', 'wave'),
376
- e('๐Ÿ’ง', 'droplet'),
377
- e('๐Ÿ’ฆ', 'sweat drops'),
378
- ],
379
- },
380
- {
381
- id: 'food',
382
- label: 'Food',
383
- icon: '๐ŸŽ',
384
- emojis: [
385
- e('๐Ÿ', 'green apple'),
386
- e('๐ŸŽ', 'red apple'),
387
- e('๐Ÿ', 'pear'),
388
- e('๐ŸŠ', 'tangerine', 'orange'),
389
- e('๐Ÿ‹', 'lemon'),
390
- e('๐ŸŒ', 'banana'),
391
- e('๐Ÿ‰', 'watermelon'),
392
- e('๐Ÿ‡', 'grapes'),
393
- e('๐Ÿ“', 'strawberry'),
394
- e('๐Ÿซ', 'blueberries'),
395
- e('๐Ÿˆ', 'melon'),
396
- e('๐Ÿ’', 'cherries'),
397
- e('๐Ÿ‘', 'peach'),
398
- e('๐Ÿฅญ', 'mango'),
399
- e('๐Ÿ', 'pineapple'),
400
- e('๐Ÿฅฅ', 'coconut'),
401
- e('๐Ÿฅ', 'kiwi'),
402
- e('๐Ÿ…', 'tomato'),
403
- e('๐Ÿ†', 'eggplant'),
404
- e('๐Ÿฅ‘', 'avocado'),
405
- e('๐Ÿฅฆ', 'broccoli'),
406
- e('๐Ÿฅฌ', 'leafy green'),
407
- e('๐Ÿฅ’', 'cucumber'),
408
- e('๐ŸŒถ๏ธ', 'pepper'),
409
- e('๐Ÿซ‘', 'bell pepper'),
410
- e('๐ŸŒฝ', 'corn'),
411
- e('๐Ÿฅ•', 'carrot'),
412
- e('๐Ÿซ’', 'olive'),
413
- e('๐Ÿง„', 'garlic'),
414
- e('๐Ÿง…', 'onion'),
415
- e('๐Ÿฅ”', 'potato'),
416
- e('๐Ÿ ', 'sweet potato'),
417
- e('๐Ÿฅ', 'croissant'),
418
- e('๐Ÿฅฏ', 'bagel'),
419
- e('๐Ÿž', 'bread'),
420
- e('๐Ÿฅ–', 'baguette'),
421
- e('๐Ÿฅจ', 'pretzel'),
422
- e('๐Ÿง€', 'cheese'),
423
- e('๐Ÿฅš', 'egg'),
424
- e('๐Ÿณ', 'cooking', 'frying'),
425
- e('๐Ÿงˆ', 'butter'),
426
- e('๐Ÿฅž', 'pancakes'),
427
- e('๐Ÿง‡', 'waffle'),
428
- e('๐Ÿฅ“', 'bacon'),
429
- e('๐Ÿฅฉ', 'cut of meat'),
430
- e('๐Ÿ—', 'poultry leg'),
431
- e('๐Ÿ–', 'meat on bone'),
432
- e('๐ŸŒญ', 'hot dog'),
433
- e('๐Ÿ”', 'hamburger'),
434
- e('๐ŸŸ', 'fries'),
435
- e('๐Ÿ•', 'pizza'),
436
- e('๐Ÿฅช', 'sandwich'),
437
- e('๐ŸŒฎ', 'taco'),
438
- e('๐ŸŒฏ', 'burrito'),
439
- e('๐Ÿฅ™', 'stuffed flatbread'),
440
- e('๐Ÿง†', 'falafel'),
441
- e('๐Ÿฅ—', 'salad'),
442
- e('๐Ÿฅ˜', 'shallow pan of food'),
443
- e('๐Ÿ', 'spaghetti'),
444
- e('๐Ÿœ', 'steaming bowl'),
445
- e('๐Ÿฒ', 'pot of food'),
446
- e('๐Ÿ›', 'curry'),
447
- e('๐Ÿฃ', 'sushi'),
448
- e('๐Ÿฑ', 'bento'),
449
- e('๐ŸฅŸ', 'dumpling'),
450
- e('๐Ÿค', 'shrimp tempura'),
451
- e('๐Ÿ™', 'rice ball'),
452
- e('๐Ÿš', 'rice'),
453
- e('๐Ÿ˜', 'rice cracker'),
454
- e('๐Ÿฅ ', 'fortune cookie'),
455
- e('๐Ÿฅฎ', 'moon cake'),
456
- e('๐Ÿข', 'oden'),
457
- e('๐Ÿก', 'dango'),
458
- e('๐Ÿฆช', 'oyster'),
459
- e('๐Ÿฆ', 'soft serve'),
460
- e('๐Ÿง', 'shaved ice'),
461
- e('๐Ÿจ', 'ice cream'),
462
- e('๐Ÿฉ', 'doughnut'),
463
- e('๐Ÿช', 'cookie'),
464
- e('๐ŸŽ‚', 'birthday cake'),
465
- e('๐Ÿฐ', 'shortcake'),
466
- e('๐Ÿง', 'cupcake'),
467
- e('๐Ÿฅง', 'pie'),
468
- e('๐Ÿซ', 'chocolate bar'),
469
- e('๐Ÿฌ', 'candy'),
470
- e('๐Ÿญ', 'lollipop'),
471
- e('๐Ÿฎ', 'custard'),
472
- e('๐Ÿฏ', 'honey'),
473
- e('๐Ÿผ', 'baby bottle'),
474
- e('๐Ÿฅ›', 'milk'),
475
- e('โ˜•', 'coffee'),
476
- e('๐Ÿซ–', 'teapot'),
477
- e('๐Ÿต', 'tea'),
478
- e('๐Ÿถ', 'sake'),
479
- e('๐Ÿพ', 'champagne'),
480
- e('๐Ÿท', 'wine glass'),
481
- e('๐Ÿธ', 'cocktail'),
482
- e('๐Ÿน', 'tropical drink'),
483
- e('๐Ÿบ', 'beer'),
484
- e('๐Ÿป', 'clink beers'),
485
- e('๐Ÿฅ‚', 'clink champagne'),
486
- e('๐Ÿฅƒ', 'tumbler'),
487
- e('๐Ÿฅค', 'cup straw'),
488
- e('๐Ÿง‹', 'bubble tea'),
489
- e('๐Ÿงƒ', 'juice box'),
490
- e('๐Ÿง‰', 'mate'),
491
- e('๐ŸงŠ', 'ice cube'),
492
- ],
493
- },
494
- {
495
- id: 'travel',
496
- label: 'Travel',
497
- icon: 'โœˆ๏ธ',
498
- emojis: [
499
- e('๐Ÿš—', 'car'),
500
- e('๐Ÿš•', 'taxi'),
501
- e('๐Ÿš™', 'suv'),
502
- e('๐ŸšŒ', 'bus'),
503
- e('๐ŸšŽ', 'trolleybus'),
504
- e('๐ŸŽ๏ธ', 'racing car'),
505
- e('๐Ÿš“', 'police car'),
506
- e('๐Ÿš‘', 'ambulance'),
507
- e('๐Ÿš’', 'fire engine'),
508
- e('๐Ÿš', 'minibus'),
509
- e('๐Ÿ›ป', 'pickup truck'),
510
- e('๐Ÿšš', 'delivery truck'),
511
- e('๐Ÿš›', 'semi truck'),
512
- e('๐Ÿšœ', 'tractor'),
513
- e('๐Ÿ›ต', 'motor scooter'),
514
- e('๐Ÿ๏ธ', 'motorcycle'),
515
- e('๐Ÿšฒ', 'bicycle'),
516
- e('๐Ÿ›ด', 'kick scooter'),
517
- e('๐Ÿ›น', 'skateboard'),
518
- e('๐Ÿ›ผ', 'roller skate'),
519
- e('๐Ÿš‚', 'locomotive'),
520
- e('๐Ÿšƒ', 'railway car'),
521
- e('๐Ÿš„', 'high speed train'),
522
- e('๐Ÿš…', 'bullet train'),
523
- e('๐Ÿš†', 'train'),
524
- e('๐Ÿš‡', 'metro'),
525
- e('๐Ÿšˆ', 'light rail'),
526
- e('๐Ÿš‰', 'station'),
527
- e('๐Ÿš', 'monorail'),
528
- e('๐Ÿšž', 'mountain railway'),
529
- e('๐Ÿš‹', 'tram'),
530
- e('๐ŸšŠ', 'tram car'),
531
- e('๐ŸšŸ', 'suspension railway'),
532
- e('๐Ÿš ', 'mountain cableway'),
533
- e('๐Ÿšก', 'aerial tramway'),
534
- e('โœˆ๏ธ', 'airplane'),
535
- e('๐Ÿ›ซ', 'departing'),
536
- e('๐Ÿ›ฌ', 'arriving'),
537
- e('๐Ÿ›ฉ๏ธ', 'small airplane'),
538
- e('๐Ÿš', 'helicopter'),
539
- e('๐Ÿ›ธ', 'flying saucer'),
540
- e('๐Ÿš€', 'rocket'),
541
- e('๐Ÿ›ฐ๏ธ', 'satellite'),
542
- e('๐Ÿ›ถ', 'canoe'),
543
- e('โ›ต', 'sailboat'),
544
- e('๐Ÿšค', 'speedboat'),
545
- e('๐Ÿ›ฅ๏ธ', 'motor boat'),
546
- e('๐Ÿ›ณ๏ธ', 'passenger ship'),
547
- e('โ›ด๏ธ', 'ferry'),
548
- e('๐Ÿšข', 'ship'),
549
- e('โš“', 'anchor'),
550
- e('๐Ÿช', 'hook'),
551
- e('โ›ฝ', 'fuel pump'),
552
- e('๐Ÿšง', 'construction'),
553
- e('๐Ÿšฆ', 'traffic light'),
554
- e('๐Ÿšฅ', 'horizontal traffic light'),
555
- e('๐Ÿ—บ๏ธ', 'map'),
556
- e('๐Ÿ—ฟ', 'moai'),
557
- e('๐Ÿ—ฝ', 'statue of liberty'),
558
- e('๐Ÿ—ผ', 'tokyo tower'),
559
- e('๐Ÿฐ', 'castle'),
560
- e('๐Ÿฏ', 'japanese castle'),
561
- e('๐ŸŸ๏ธ', 'stadium'),
562
- e('๐ŸŽก', 'ferris wheel'),
563
- e('๐ŸŽข', 'roller coaster'),
564
- e('๐ŸŽ ', 'carousel'),
565
- e('โ›ฒ', 'fountain'),
566
- e('โ›ฑ๏ธ', 'umbrella ground'),
567
- e('๐Ÿ–๏ธ', 'beach umbrella'),
568
- e('๐Ÿ๏ธ', 'desert island'),
569
- e('๐Ÿœ๏ธ', 'desert'),
570
- e('๐ŸŒ‹', 'volcano'),
571
- e('โ›ฐ๏ธ', 'mountain'),
572
- e('๐Ÿ”๏ธ', 'snow mountain'),
573
- e('๐Ÿ—ป', 'mount fuji'),
574
- e('๐Ÿ•๏ธ', 'camping'),
575
- e('โ›บ', 'tent'),
576
- e('๐Ÿ›–', 'hut'),
577
- e('๐Ÿ ', 'house'),
578
- e('๐Ÿก', 'house with garden'),
579
- e('๐Ÿ˜๏ธ', 'houses'),
580
- e('๐Ÿš๏ธ', 'derelict house'),
581
- e('๐Ÿ—๏ธ', 'construction site'),
582
- e('๐Ÿญ', 'factory'),
583
- e('๐Ÿข', 'office building'),
584
- e('๐Ÿฌ', 'department store'),
585
- e('๐Ÿฃ', 'japanese post office'),
586
- e('๐Ÿค', 'post office'),
587
- e('๐Ÿฅ', 'hospital'),
588
- e('๐Ÿฆ', 'bank'),
589
- e('๐Ÿจ', 'hotel'),
590
- e('๐Ÿช', 'convenience store'),
591
- e('๐Ÿซ', 'school'),
592
- e('๐Ÿฉ', 'love hotel'),
593
- e('๐Ÿ’’', 'wedding'),
594
- e('๐Ÿ›๏ธ', 'classical building'),
595
- e('โ›ช', 'church'),
596
- e('๐Ÿ•Œ', 'mosque'),
597
- e('๐Ÿ›•', 'hindu temple'),
598
- e('๐Ÿ•', 'synagogue'),
599
- e('โ›ฉ๏ธ', 'shrine'),
600
- e('๐ŸŒ', 'foggy city'),
601
- e('๐ŸŒƒ', 'night stars'),
602
- e('๐ŸŒ„', 'sunrise mountains'),
603
- e('๐ŸŒ…', 'sunrise'),
604
- e('๐ŸŒ†', 'cityscape dusk'),
605
- e('๐ŸŒ‡', 'sunset'),
606
- e('๐ŸŒ‰', 'bridge night'),
607
- e('โ™จ๏ธ', 'hot springs'),
608
- e('๐ŸŽ‘', 'moon viewing'),
609
- e('๐Ÿž๏ธ', 'national park'),
610
- ],
611
- },
612
- {
613
- id: 'activities',
614
- label: 'Activities',
615
- icon: 'โšฝ',
616
- emojis: [
617
- e('โšฝ', 'soccer'),
618
- e('๐Ÿ€', 'basketball'),
619
- e('๐Ÿˆ', 'football'),
620
- e('โšพ', 'baseball'),
621
- e('๐ŸฅŽ', 'softball'),
622
- e('๐ŸŽพ', 'tennis'),
623
- e('๐Ÿ', 'volleyball'),
624
- e('๐Ÿ‰', 'rugby'),
625
- e('๐Ÿฅ', 'flying disc', 'frisbee'),
626
- e('๐ŸŽฑ', 'pool', 'eight ball'),
627
- e('๐Ÿช€', 'yoyo'),
628
- e('๐Ÿ“', 'ping pong'),
629
- e('๐Ÿธ', 'badminton'),
630
- e('๐Ÿ’', 'ice hockey'),
631
- e('๐Ÿ‘', 'field hockey'),
632
- e('๐Ÿฅ', 'lacrosse'),
633
- e('๐Ÿ', 'cricket'),
634
- e('๐Ÿชƒ', 'boomerang'),
635
- e('๐Ÿฅ…', 'goal net'),
636
- e('โ›ณ', 'flag in hole', 'golf'),
637
- e('๐Ÿช', 'kite'),
638
- e('๐Ÿน', 'bow and arrow'),
639
- e('๐ŸŽฃ', 'fishing'),
640
- e('๐Ÿคฟ', 'diving mask'),
641
- e('๐ŸฅŠ', 'boxing glove'),
642
- e('๐Ÿฅ‹', 'martial arts'),
643
- e('๐ŸŽฝ', 'running shirt'),
644
- e('๐Ÿ›น', 'skateboard'),
645
- e('๐Ÿ›ผ', 'roller skate'),
646
- e('๐Ÿ›ท', 'sled'),
647
- e('โ›ธ๏ธ', 'ice skate'),
648
- e('๐ŸฅŒ', 'curling stone'),
649
- e('๐ŸŽฟ', 'skis'),
650
- e('โ›ท๏ธ', 'skier'),
651
- e('๐Ÿ‚', 'snowboarder'),
652
- e('๐Ÿช‚', 'parachute'),
653
- e('๐Ÿ‹๏ธ', 'weight lifting'),
654
- e('๐Ÿคผ', 'wrestling'),
655
- e('๐Ÿคธ', 'cartwheel'),
656
- e('โ›น๏ธ', 'bouncing ball'),
657
- e('๐Ÿคบ', 'fencing'),
658
- e('๐Ÿคพ', 'handball'),
659
- e('๐ŸŒ๏ธ', 'golfing'),
660
- e('๐Ÿ‡', 'horse racing'),
661
- e('๐Ÿง˜', 'meditation', 'yoga'),
662
- e('๐Ÿ„', 'surfing'),
663
- e('๐ŸŠ', 'swimming'),
664
- e('๐Ÿคฝ', 'water polo'),
665
- e('๐Ÿšฃ', 'rowing'),
666
- e('๐Ÿง—', 'climbing'),
667
- e('๐Ÿšต', 'mountain biker'),
668
- e('๐Ÿšด', 'biker'),
669
- e('๐Ÿ†', 'trophy'),
670
- e('๐Ÿฅ‡', 'gold medal'),
671
- e('๐Ÿฅˆ', 'silver medal'),
672
- e('๐Ÿฅ‰', 'bronze medal'),
673
- e('๐Ÿ…', 'sports medal'),
674
- e('๐ŸŽ–๏ธ', 'military medal'),
675
- e('๐Ÿต๏ธ', 'rosette'),
676
- e('๐ŸŽ—๏ธ', 'reminder ribbon'),
677
- e('๐ŸŽซ', 'ticket'),
678
- e('๐ŸŽŸ๏ธ', 'admission tickets'),
679
- e('๐ŸŽช', 'circus tent'),
680
- e('๐ŸŽญ', 'theatre masks'),
681
- e('๐ŸŽจ', 'art palette'),
682
- e('๐ŸŽฌ', 'clapper board'),
683
- e('๐ŸŽค', 'microphone'),
684
- e('๐ŸŽง', 'headphone'),
685
- e('๐ŸŽผ', 'musical score'),
686
- e('๐ŸŽน', 'piano'),
687
- e('๐Ÿฅ', 'drum'),
688
- e('๐Ÿช˜', 'long drum'),
689
- e('๐ŸŽท', 'saxophone'),
690
- e('๐ŸŽบ', 'trumpet'),
691
- e('๐ŸŽธ', 'guitar'),
692
- e('๐Ÿช•', 'banjo'),
693
- e('๐ŸŽป', 'violin'),
694
- e('๐Ÿช—', 'accordion'),
695
- e('๐ŸŽฒ', 'game die'),
696
- e('โ™Ÿ๏ธ', 'chess pawn'),
697
- e('๐ŸŽฏ', 'bullseye', 'dart'),
698
- e('๐ŸŽณ', 'bowling'),
699
- e('๐ŸŽฎ', 'video game'),
700
- e('๐ŸŽฐ', 'slot machine'),
701
- e('๐Ÿงฉ', 'jigsaw'),
702
- ],
703
- },
704
- {
705
- id: 'objects',
706
- label: 'Objects',
707
- icon: '๐Ÿ’ก',
708
- emojis: [
709
- e('๐Ÿ’ก', 'light bulb', 'idea'),
710
- e('๐Ÿ”ฆ', 'flashlight'),
711
- e('๐Ÿ•ฏ๏ธ', 'candle'),
712
- e('๐Ÿช”', 'diya lamp'),
713
- e('๐Ÿงฏ', 'fire extinguisher'),
714
- e('๐Ÿ›ข๏ธ', 'oil drum'),
715
- e('๐Ÿ’ธ', 'money wings'),
716
- e('๐Ÿ’ต', 'dollar'),
717
- e('๐Ÿ’ด', 'yen banknote'),
718
- e('๐Ÿ’ถ', 'euro banknote'),
719
- e('๐Ÿ’ท', 'pound banknote'),
720
- e('๐Ÿ’ฐ', 'money bag'),
721
- e('๐Ÿ’ณ', 'credit card'),
722
- e('๐Ÿ’Ž', 'gem'),
723
- e('โš–๏ธ', 'balance scale'),
724
- e('๐Ÿชœ', 'ladder'),
725
- e('๐Ÿงฐ', 'toolbox'),
726
- e('๐Ÿ”ง', 'wrench'),
727
- e('๐Ÿช›', 'screwdriver'),
728
- e('๐Ÿ”จ', 'hammer'),
729
- e('โš’๏ธ', 'hammer and pick'),
730
- e('๐Ÿ› ๏ธ', 'hammer and wrench'),
731
- e('โ›๏ธ', 'pick'),
732
- e('๐Ÿชš', 'saw'),
733
- e('๐Ÿ”ฉ', 'nut and bolt'),
734
- e('โš™๏ธ', 'gear'),
735
- e('๐Ÿงฑ', 'brick'),
736
- e('โ›“๏ธ', 'chains'),
737
- e('๐Ÿงฒ', 'magnet'),
738
- e('๐Ÿ”ซ', 'water pistol'),
739
- e('๐Ÿ’ฃ', 'bomb'),
740
- e('๐Ÿงจ', 'firecracker'),
741
- e('๐Ÿช“', 'axe'),
742
- e('๐Ÿ”ช', 'kitchen knife'),
743
- e('๐Ÿ—ก๏ธ', 'dagger'),
744
- e('โš”๏ธ', 'crossed swords'),
745
- e('๐Ÿ›ก๏ธ', 'shield'),
746
- e('๐Ÿšฌ', 'cigarette'),
747
- e('โšฐ๏ธ', 'coffin'),
748
- e('๐Ÿชฆ', 'headstone'),
749
- e('โšฑ๏ธ', 'urn'),
750
- e('๐Ÿบ', 'amphora'),
751
- e('๐Ÿ”ฎ', 'crystal ball'),
752
- e('๐Ÿ“ฟ', 'prayer beads'),
753
- e('๐Ÿงฟ', 'nazar amulet'),
754
- e('๐Ÿ’ˆ', 'barber pole'),
755
- e('โš—๏ธ', 'alembic'),
756
- e('๐Ÿ”ญ', 'telescope'),
757
- e('๐Ÿ”ฌ', 'microscope'),
758
- e('๐Ÿ•ณ๏ธ', 'hole'),
759
- e('๐Ÿฉน', 'bandage'),
760
- e('๐Ÿฉบ', 'stethoscope'),
761
- e('๐Ÿ’Š', 'pill'),
762
- e('๐Ÿ’‰', 'syringe'),
763
- e('๐Ÿฉธ', 'blood drop'),
764
- e('๐Ÿงฌ', 'dna'),
765
- e('๐Ÿฆ ', 'microbe'),
766
- e('๐Ÿงซ', 'petri dish'),
767
- e('๐Ÿงช', 'test tube'),
768
- e('๐ŸŒก๏ธ', 'thermometer'),
769
- e('๐Ÿงน', 'broom'),
770
- e('๐Ÿช ', 'plunger'),
771
- e('๐Ÿงบ', 'basket'),
772
- e('๐Ÿงป', 'roll of paper'),
773
- e('๐Ÿšฝ', 'toilet'),
774
- e('๐Ÿšฐ', 'tap water'),
775
- e('๐Ÿšฟ', 'shower'),
776
- e('๐Ÿ›', 'bathtub'),
777
- e('๐Ÿ›€', 'person bathing'),
778
- e('๐Ÿงผ', 'soap'),
779
- e('๐Ÿชฅ', 'toothbrush'),
780
- e('๐Ÿช’', 'razor'),
781
- e('๐Ÿงฝ', 'sponge'),
782
- e('๐Ÿชฃ', 'bucket'),
783
- e('๐Ÿงด', 'lotion'),
784
- e('๐Ÿ›Ž๏ธ', 'bellhop bell'),
785
- e('๐Ÿ”‘', 'key'),
786
- e('๐Ÿ—๏ธ', 'old key'),
787
- e('๐Ÿšช', 'door'),
788
- e('๐Ÿช‘', 'chair'),
789
- e('๐Ÿ›‹๏ธ', 'couch'),
790
- e('๐Ÿ›๏ธ', 'bed'),
791
- e('๐Ÿ›Œ', 'person in bed'),
792
- e('๐Ÿงธ', 'teddy bear'),
793
- e('๐Ÿ–ผ๏ธ', 'framed picture'),
794
- e('๐Ÿชž', 'mirror'),
795
- e('๐ŸชŸ', 'window'),
796
- e('๐Ÿ›๏ธ', 'shopping bags'),
797
- e('๐Ÿ›’', 'cart'),
798
- e('๐ŸŽ', 'gift'),
799
- e('๐ŸŽ€', 'ribbon'),
800
- e('๐ŸŽŠ', 'confetti ball'),
801
- e('๐ŸŽ‰', 'party popper', 'celebration'),
802
- e('๐ŸŽˆ', 'balloon'),
803
- e('๐Ÿช„', 'magic wand'),
804
- e('๐Ÿ“ฑ', 'mobile'),
805
- e('๐Ÿ“ฒ', 'incoming phone'),
806
- e('โ˜Ž๏ธ', 'phone'),
807
- e('๐Ÿ“ž', 'phone receiver'),
808
- e('๐Ÿ“Ÿ', 'pager'),
809
- e('๐Ÿ“ ', 'fax'),
810
- e('๐Ÿ”‹', 'battery'),
811
- e('๐Ÿ”Œ', 'plug'),
812
- e('๐Ÿ’ป', 'laptop'),
813
- e('๐Ÿ–ฅ๏ธ', 'desktop'),
814
- e('๐Ÿ–จ๏ธ', 'printer'),
815
- e('โŒจ๏ธ', 'keyboard'),
816
- e('๐Ÿ–ฑ๏ธ', 'mouse'),
817
- e('๐Ÿ–ฒ๏ธ', 'trackball'),
818
- e('๐Ÿ’ฝ', 'minidisc'),
819
- e('๐Ÿ’พ', 'floppy', 'save'),
820
- e('๐Ÿ’ฟ', 'cd'),
821
- e('๐Ÿ“€', 'dvd'),
822
- e('๐Ÿงฎ', 'abacus'),
823
- e('๐ŸŽฅ', 'movie camera'),
824
- e('๐ŸŽž๏ธ', 'film frames'),
825
- e('๐Ÿ“ฝ๏ธ', 'film projector'),
826
- e('๐Ÿ“บ', 'television'),
827
- e('๐Ÿ“ท', 'camera'),
828
- e('๐Ÿ“ธ', 'camera flash'),
829
- e('๐Ÿ“น', 'video camera'),
830
- e('๐Ÿ“ผ', 'videocassette'),
831
- e('๐Ÿ”', 'magnifying left'),
832
- e('๐Ÿ”Ž', 'magnifying right'),
833
- e('๐Ÿ•ฐ๏ธ', 'mantelpiece clock'),
834
- e('โฐ', 'alarm clock'),
835
- e('โฑ๏ธ', 'stopwatch'),
836
- e('โฒ๏ธ', 'timer'),
837
- e('โณ', 'hourglass flowing'),
838
- e('โŒ›', 'hourglass done'),
839
- e('๐Ÿ“ก', 'satellite antenna'),
840
- e('๐Ÿ“š', 'books'),
841
- e('๐Ÿ“–', 'open book'),
842
- e('๐Ÿ”–', 'bookmark'),
843
- e('๐Ÿท๏ธ', 'tag'),
844
- e('๐Ÿ“ฐ', 'newspaper'),
845
- e('๐Ÿ—ž๏ธ', 'rolled newspaper'),
846
- e('๐Ÿ“„', 'page'),
847
- e('๐Ÿ“ƒ', 'page curl'),
848
- e('๐Ÿ“‘', 'bookmark tabs'),
849
- e('๐Ÿ“œ', 'scroll'),
850
- e('๐Ÿ“‹', 'clipboard'),
851
- e('๐Ÿ“…', 'calendar'),
852
- e('๐Ÿ“†', 'tear off calendar'),
853
- e('๐Ÿ—“๏ธ', 'spiral calendar'),
854
- e('๐Ÿ“‡', 'card index'),
855
- e('๐Ÿ—ƒ๏ธ', 'card file box'),
856
- e('๐Ÿ—ณ๏ธ', 'ballot box'),
857
- e('๐Ÿ—„๏ธ', 'file cabinet'),
858
- e('๐Ÿ“‚', 'open folder'),
859
- e('๐Ÿ“', 'folder'),
860
- e('๐Ÿ“Š', 'bar chart'),
861
- e('๐Ÿ“ˆ', 'chart up'),
862
- e('๐Ÿ“‰', 'chart down'),
863
- e('๐Ÿ“Œ', 'pushpin'),
864
- e('๐Ÿ“', 'round pushpin'),
865
- e('๐Ÿ“Ž', 'paperclip'),
866
- e('๐Ÿ–‡๏ธ', 'linked paperclips'),
867
- e('๐Ÿ“', 'straight ruler'),
868
- e('๐Ÿ“', 'triangular ruler'),
869
- e('โœ‚๏ธ', 'scissors'),
870
- e('๐Ÿ–Š๏ธ', 'pen'),
871
- e('๐Ÿ–‹๏ธ', 'fountain pen'),
872
- e('โœ’๏ธ', 'black nib'),
873
- e('๐Ÿ–Œ๏ธ', 'paintbrush'),
874
- e('๐Ÿ–๏ธ', 'crayon'),
875
- e('๐Ÿ“', 'memo', 'note'),
876
- e('โœ๏ธ', 'pencil'),
877
- e('๐Ÿ”', 'locked with pen'),
878
- e('๐Ÿ”', 'locked with key'),
879
- e('๐Ÿ”’', 'locked'),
880
- e('๐Ÿ”“', 'unlocked'),
881
- e('๐Ÿงฟ', 'amulet'),
882
- e('๐Ÿชฌ', 'hamsa'),
883
- ],
884
- },
885
- {
886
- id: 'symbols',
887
- label: 'Symbols',
888
- icon: 'โค๏ธ',
889
- emojis: [
890
- e('โค๏ธ', 'red heart'),
891
- e('๐Ÿงก', 'orange heart'),
892
- e('๐Ÿ’›', 'yellow heart'),
893
- e('๐Ÿ’š', 'green heart'),
894
- e('๐Ÿ’™', 'blue heart'),
895
- e('๐Ÿ’œ', 'purple heart'),
896
- e('๐Ÿ–ค', 'black heart'),
897
- e('๐Ÿค', 'white heart'),
898
- e('๐ŸคŽ', 'brown heart'),
899
- e('๐Ÿ’”', 'broken heart'),
900
- e('โฃ๏ธ', 'heart exclamation'),
901
- e('๐Ÿ’•', 'two hearts'),
902
- e('๐Ÿ’ž', 'revolving hearts'),
903
- e('๐Ÿ’“', 'beating heart'),
904
- e('๐Ÿ’—', 'growing heart'),
905
- e('๐Ÿ’–', 'sparkling heart'),
906
- e('๐Ÿ’˜', 'heart arrow'),
907
- e('๐Ÿ’', 'heart with ribbon'),
908
- e('๐Ÿ’Ÿ', 'heart decoration'),
909
- e('โ˜ฎ๏ธ', 'peace'),
910
- e('โœ๏ธ', 'cross'),
911
- e('โ˜ช๏ธ', 'star and crescent'),
912
- e('๐Ÿ•‰๏ธ', 'om'),
913
- e('โ˜ธ๏ธ', 'wheel of dharma'),
914
- e('โœก๏ธ', 'star of david'),
915
- e('๐Ÿ”ฏ', 'six pointed star'),
916
- e('๐Ÿ•Ž', 'menorah'),
917
- e('โ˜ฏ๏ธ', 'yin yang'),
918
- e('โ˜ฆ๏ธ', 'orthodox cross'),
919
- e('๐Ÿ›', 'place of worship'),
920
- e('โ›Ž', 'ophiuchus'),
921
- e('โ™ˆ', 'aries'),
922
- e('โ™‰', 'taurus'),
923
- e('โ™Š', 'gemini'),
924
- e('โ™‹', 'cancer'),
925
- e('โ™Œ', 'leo'),
926
- e('โ™', 'virgo'),
927
- e('โ™Ž', 'libra'),
928
- e('โ™', 'scorpio'),
929
- e('โ™', 'sagittarius'),
930
- e('โ™‘', 'capricorn'),
931
- e('โ™’', 'aquarius'),
932
- e('โ™“', 'pisces'),
933
- e('๐Ÿ†”', 'id'),
934
- e('โš›๏ธ', 'atom'),
935
- e('๐Ÿ‰‘', 'accept'),
936
- e('โ˜ข๏ธ', 'radioactive'),
937
- e('โ˜ฃ๏ธ', 'biohazard'),
938
- e('๐Ÿ“ด', 'phone off'),
939
- e('๐Ÿ“ณ', 'vibration'),
940
- e('๐Ÿˆถ', 'not free'),
941
- e('๐Ÿˆš', 'free'),
942
- e('๐Ÿˆธ', 'application'),
943
- e('๐Ÿˆบ', 'open for business'),
944
- e('๐Ÿˆท๏ธ', 'monthly amount'),
945
- e('โœด๏ธ', 'eight pointed star'),
946
- e('๐Ÿ†š', 'vs'),
947
- e('๐Ÿ’ฎ', 'white flower'),
948
- e('๐Ÿ‰', 'bargain'),
949
- e('ใŠ™๏ธ', 'secret'),
950
- e('ใŠ—๏ธ', 'congratulations'),
951
- e('๐Ÿˆด', 'passing grade'),
952
- e('๐Ÿˆต', 'no vacancy'),
953
- e('๐Ÿˆน', 'discount'),
954
- e('๐Ÿˆฒ', 'prohibited'),
955
- e('๐Ÿ…ฐ๏ธ', 'a button'),
956
- e('๐Ÿ…ฑ๏ธ', 'b button'),
957
- e('๐Ÿ†Ž', 'ab button'),
958
- e('๐Ÿ†‘', 'cl button'),
959
- e('๐Ÿ…พ๏ธ', 'o button'),
960
- e('๐Ÿ†˜', 'sos'),
961
- e('โŒ', 'cross mark'),
962
- e('โญ•', 'circle'),
963
- e('๐Ÿ›‘', 'stop sign'),
964
- e('โ›”', 'no entry'),
965
- e('๐Ÿ“›', 'name badge'),
966
- e('๐Ÿšซ', 'prohibited sign'),
967
- e('๐Ÿ’ฏ', '100', 'hundred'),
968
- e('๐Ÿ’ข', 'anger'),
969
- e('โ™จ๏ธ', 'hot springs'),
970
- e('๐Ÿšท', 'no pedestrians'),
971
- e('๐Ÿšฏ', 'no littering'),
972
- e('๐Ÿšณ', 'no bicycles'),
973
- e('๐Ÿšฑ', 'non potable'),
974
- e('๐Ÿ”ž', 'no minors'),
975
- e('๐Ÿ“ต', 'no phones'),
976
- e('๐Ÿšญ', 'no smoking'),
977
- e('โ—', 'exclamation'),
978
- e('โ•', 'white exclamation'),
979
- e('โ“', 'question'),
980
- e('โ”', 'white question'),
981
- e('โ€ผ๏ธ', 'double exclamation'),
982
- e('โ‰๏ธ', 'exclamation question'),
983
- e('๐Ÿ”…', 'dim'),
984
- e('๐Ÿ”†', 'bright'),
985
- e('ใ€ฝ๏ธ', 'part alternation'),
986
- e('โš ๏ธ', 'warning'),
987
- e('๐Ÿšธ', 'children crossing'),
988
- e('๐Ÿ”ฑ', 'trident'),
989
- e('โšœ๏ธ', 'fleur de lis'),
990
- e('๐Ÿ”ฐ', 'beginner'),
991
- e('โ™ป๏ธ', 'recycle'),
992
- e('โœ…', 'check mark'),
993
- e('๐Ÿˆฏ', 'reserved'),
994
- e('๐Ÿ’น', 'chart with yen'),
995
- e('โ‡๏ธ', 'sparkle'),
996
- e('โœณ๏ธ', 'eight spoked asterisk'),
997
- e('โŽ', 'cross box'),
998
- e('๐ŸŒ', 'globe meridians'),
999
- e('๐Ÿ’ ', 'diamond'),
1000
- e('โ“‚๏ธ', 'circled m'),
1001
- e('๐ŸŒ€', 'cyclone'),
1002
- e('๐Ÿ’ค', 'zzz', 'sleep'),
1003
- e('๐Ÿง', 'atm'),
1004
- e('๐Ÿšพ', 'water closet'),
1005
- e('โ™ฟ', 'wheelchair'),
1006
- e('๐Ÿ…ฟ๏ธ', 'parking'),
1007
- e('๐Ÿ›—', 'elevator'),
1008
- e('๐Ÿˆณ', 'vacancy'),
1009
- e('๐Ÿˆ‚๏ธ', 'service'),
1010
- e('๐Ÿ›‚', 'passport control'),
1011
- e('๐Ÿ›ƒ', 'customs'),
1012
- e('๐Ÿ›„', 'baggage claim'),
1013
- e('๐Ÿ›…', 'left luggage'),
1014
- e('๐Ÿšน', 'mens'),
1015
- e('๐Ÿšบ', 'womens'),
1016
- e('๐Ÿšผ', 'baby symbol'),
1017
- e('๐Ÿšป', 'restroom'),
1018
- e('๐Ÿšฎ', 'litter bin'),
1019
- e('๐ŸŽฆ', 'cinema'),
1020
- e('๐Ÿ“ถ', 'antenna bars'),
1021
- e('๐Ÿˆ', 'here'),
1022
- e('๐Ÿ”ฃ', 'input symbols'),
1023
- e('โ„น๏ธ', 'info'),
1024
- e('๐Ÿ”ค', 'input latin'),
1025
- e('๐Ÿ”ก', 'input lowercase'),
1026
- e('๐Ÿ” ', 'input uppercase'),
1027
- e('๐Ÿ†–', 'ng'),
1028
- e('๐Ÿ†—', 'ok'),
1029
- e('๐Ÿ†™', 'up'),
1030
- e('๐Ÿ†’', 'cool'),
1031
- e('๐Ÿ†•', 'new'),
1032
- e('๐Ÿ†“', 'free'),
1033
- e('0๏ธโƒฃ', 'keycap 0'),
1034
- e('1๏ธโƒฃ', 'keycap 1'),
1035
- e('2๏ธโƒฃ', 'keycap 2'),
1036
- e('3๏ธโƒฃ', 'keycap 3'),
1037
- e('4๏ธโƒฃ', 'keycap 4'),
1038
- e('5๏ธโƒฃ', 'keycap 5'),
1039
- e('6๏ธโƒฃ', 'keycap 6'),
1040
- e('7๏ธโƒฃ', 'keycap 7'),
1041
- e('8๏ธโƒฃ', 'keycap 8'),
1042
- e('9๏ธโƒฃ', 'keycap 9'),
1043
- e('๐Ÿ”Ÿ', 'keycap 10'),
1044
- e('๐Ÿ”ข', 'input numbers'),
1045
- e('#๏ธโƒฃ', 'keycap hash'),
1046
- e('*๏ธโƒฃ', 'keycap asterisk'),
1047
- e('โ–ถ๏ธ', 'play'),
1048
- e('โธ๏ธ', 'pause'),
1049
- e('โฏ๏ธ', 'play or pause'),
1050
- e('โน๏ธ', 'stop button'),
1051
- e('โบ๏ธ', 'record'),
1052
- e('โญ๏ธ', 'next track'),
1053
- e('โฎ๏ธ', 'last track'),
1054
- e('โฉ', 'fast forward'),
1055
- e('โช', 'fast reverse'),
1056
- e('โซ', 'fast up'),
1057
- e('โฌ', 'fast down'),
1058
- e('โ—€๏ธ', 'reverse'),
1059
- e('๐Ÿ”ผ', 'up button'),
1060
- e('๐Ÿ”ฝ', 'down button'),
1061
- e('โžก๏ธ', 'right arrow'),
1062
- e('โฌ…๏ธ', 'left arrow'),
1063
- e('โฌ†๏ธ', 'up arrow'),
1064
- e('โฌ‡๏ธ', 'down arrow'),
1065
- e('โ†—๏ธ', 'up right arrow'),
1066
- e('โ†˜๏ธ', 'down right arrow'),
1067
- e('โ†™๏ธ', 'down left arrow'),
1068
- e('โ†–๏ธ', 'up left arrow'),
1069
- e('โ†•๏ธ', 'up down arrow'),
1070
- e('โ†”๏ธ', 'left right arrow'),
1071
- e('โ†ช๏ธ', 'right arrow curving'),
1072
- e('โ†ฉ๏ธ', 'left arrow curving'),
1073
- e('โคด๏ธ', 'arrow up curve'),
1074
- e('โคต๏ธ', 'arrow down curve'),
1075
- e('๐Ÿ”€', 'shuffle'),
1076
- e('๐Ÿ”', 'repeat'),
1077
- e('๐Ÿ”‚', 'repeat single'),
1078
- e('๐Ÿ”„', 'arrows ccw'),
1079
- e('๐Ÿ”ƒ', 'arrows cw'),
1080
- e('๐ŸŽต', 'note'),
1081
- e('๐ŸŽถ', 'notes'),
1082
- e('โž•', 'plus'),
1083
- e('โž–', 'minus'),
1084
- e('โž—', 'divide'),
1085
- e('โœ–๏ธ', 'multiply'),
1086
- e('๐ŸŸฐ', 'equals'),
1087
- e('โ™พ๏ธ', 'infinity'),
1088
- e('๐Ÿ’ฒ', 'dollar'),
1089
- e('๐Ÿ’ฑ', 'currency exchange'),
1090
- e('โ„ข๏ธ', 'tm'),
1091
- e('ยฉ๏ธ', 'copyright'),
1092
- e('ยฎ๏ธ', 'registered'),
1093
- e('ใ€ฐ๏ธ', 'wavy'),
1094
- e('โžฐ', 'curly loop'),
1095
- e('โžฟ', 'double curly loop'),
1096
- e('๐Ÿ”š', 'end'),
1097
- e('๐Ÿ”™', 'back'),
1098
- e('๐Ÿ”›', 'on'),
1099
- e('๐Ÿ”', 'top'),
1100
- e('๐Ÿ”œ', 'soon'),
1101
- e('โœ”๏ธ', 'check'),
1102
- e('โ˜‘๏ธ', 'ballot box check'),
1103
- e('๐Ÿ”˜', 'radio button'),
1104
- e('๐Ÿ”ด', 'red circle'),
1105
- e('๐ŸŸ ', 'orange circle'),
1106
- e('๐ŸŸก', 'yellow circle'),
1107
- e('๐ŸŸข', 'green circle'),
1108
- e('๐Ÿ”ต', 'blue circle'),
1109
- e('๐ŸŸฃ', 'purple circle'),
1110
- e('๐ŸŸค', 'brown circle'),
1111
- e('โšซ', 'black circle'),
1112
- e('โšช', 'white circle'),
1113
- e('๐ŸŸฅ', 'red square'),
1114
- e('๐ŸŸง', 'orange square'),
1115
- e('๐ŸŸจ', 'yellow square'),
1116
- e('๐ŸŸฉ', 'green square'),
1117
- e('๐ŸŸฆ', 'blue square'),
1118
- e('๐ŸŸช', 'purple square'),
1119
- e('๐ŸŸซ', 'brown square'),
1120
- e('โฌ›', 'black square'),
1121
- e('โฌœ', 'white square'),
1122
- e('โ—ผ๏ธ', 'medium black square'),
1123
- e('โ—ป๏ธ', 'medium white square'),
1124
- e('โ—พ', 'small black square'),
1125
- e('โ—ฝ', 'small white square'),
1126
- e('โ–ช๏ธ', 'tiny black square'),
1127
- e('โ–ซ๏ธ', 'tiny white square'),
1128
- e('๐Ÿ”ถ', 'large orange diamond'),
1129
- e('๐Ÿ”ท', 'large blue diamond'),
1130
- e('๐Ÿ”ธ', 'small orange diamond'),
1131
- e('๐Ÿ”น', 'small blue diamond'),
1132
- e('๐Ÿ”บ', 'red triangle up'),
1133
- e('๐Ÿ”ป', 'red triangle down'),
1134
- e('๐Ÿ”ณ', 'white square button'),
1135
- e('๐Ÿ”ฒ', 'black square button'),
1136
- ],
1137
- },
1138
- {
1139
- id: 'flags',
1140
- label: 'Flags',
1141
- icon: '๐Ÿณ๏ธ',
1142
- emojis: [
1143
- e('๐Ÿ', 'checkered flag'),
1144
- e('๐Ÿšฉ', 'triangular flag'),
1145
- e('๐ŸŽŒ', 'crossed flags'),
1146
- e('๐Ÿด', 'black flag'),
1147
- e('๐Ÿณ๏ธ', 'white flag'),
1148
- e('๐Ÿณ๏ธโ€๐ŸŒˆ', 'rainbow flag'),
1149
- e('๐Ÿณ๏ธโ€โšง๏ธ', 'transgender flag'),
1150
- e('๐Ÿดโ€โ˜ ๏ธ', 'pirate flag'),
1151
- e('๐Ÿ‡บ๐Ÿ‡ธ', 'united states', 'us', 'usa'),
1152
- e('๐Ÿ‡จ๐Ÿ‡ฆ', 'canada'),
1153
- e('๐Ÿ‡ฒ๐Ÿ‡ฝ', 'mexico'),
1154
- e('๐Ÿ‡ฌ๐Ÿ‡ง', 'united kingdom', 'uk'),
1155
- e('๐Ÿ‡ฎ๐Ÿ‡ช', 'ireland'),
1156
- e('๐Ÿ‡ซ๐Ÿ‡ท', 'france'),
1157
- e('๐Ÿ‡ฉ๐Ÿ‡ช', 'germany'),
1158
- e('๐Ÿ‡ฎ๐Ÿ‡น', 'italy'),
1159
- e('๐Ÿ‡ช๐Ÿ‡ธ', 'spain'),
1160
- e('๐Ÿ‡ต๐Ÿ‡น', 'portugal'),
1161
- e('๐Ÿ‡ณ๐Ÿ‡ฑ', 'netherlands'),
1162
- e('๐Ÿ‡ง๐Ÿ‡ช', 'belgium'),
1163
- e('๐Ÿ‡จ๐Ÿ‡ญ', 'switzerland'),
1164
- e('๐Ÿ‡ฆ๐Ÿ‡น', 'austria'),
1165
- e('๐Ÿ‡ธ๐Ÿ‡ช', 'sweden'),
1166
- e('๐Ÿ‡ณ๐Ÿ‡ด', 'norway'),
1167
- e('๐Ÿ‡ฉ๐Ÿ‡ฐ', 'denmark'),
1168
- e('๐Ÿ‡ซ๐Ÿ‡ฎ', 'finland'),
1169
- e('๐Ÿ‡ฎ๐Ÿ‡ธ', 'iceland'),
1170
- e('๐Ÿ‡ต๐Ÿ‡ฑ', 'poland'),
1171
- e('๐Ÿ‡จ๐Ÿ‡ฟ', 'czech republic'),
1172
- e('๐Ÿ‡ธ๐Ÿ‡ฐ', 'slovakia'),
1173
- e('๐Ÿ‡ญ๐Ÿ‡บ', 'hungary'),
1174
- e('๐Ÿ‡ท๐Ÿ‡ด', 'romania'),
1175
- e('๐Ÿ‡ง๐Ÿ‡ฌ', 'bulgaria'),
1176
- e('๐Ÿ‡ฌ๐Ÿ‡ท', 'greece'),
1177
- e('๐Ÿ‡น๐Ÿ‡ท', 'turkey'),
1178
- e('๐Ÿ‡ท๐Ÿ‡บ', 'russia'),
1179
- e('๐Ÿ‡บ๐Ÿ‡ฆ', 'ukraine'),
1180
- e('๐Ÿ‡จ๐Ÿ‡ณ', 'china'),
1181
- e('๐Ÿ‡ฏ๐Ÿ‡ต', 'japan'),
1182
- e('๐Ÿ‡ฐ๐Ÿ‡ท', 'south korea', 'korea'),
1183
- e('๐Ÿ‡ฎ๐Ÿ‡ณ', 'india'),
1184
- e('๐Ÿ‡ต๐Ÿ‡ฐ', 'pakistan'),
1185
- e('๐Ÿ‡ง๐Ÿ‡ฉ', 'bangladesh'),
1186
- e('๐Ÿ‡น๐Ÿ‡ญ', 'thailand'),
1187
- e('๐Ÿ‡ป๐Ÿ‡ณ', 'vietnam'),
1188
- e('๐Ÿ‡ฎ๐Ÿ‡ฉ', 'indonesia'),
1189
- e('๐Ÿ‡ต๐Ÿ‡ญ', 'philippines'),
1190
- e('๐Ÿ‡ฒ๐Ÿ‡พ', 'malaysia'),
1191
- e('๐Ÿ‡ธ๐Ÿ‡ฌ', 'singapore'),
1192
- e('๐Ÿ‡ฆ๐Ÿ‡บ', 'australia'),
1193
- e('๐Ÿ‡ณ๐Ÿ‡ฟ', 'new zealand'),
1194
- e('๐Ÿ‡ง๐Ÿ‡ท', 'brazil'),
1195
- e('๐Ÿ‡ฆ๐Ÿ‡ท', 'argentina'),
1196
- e('๐Ÿ‡จ๐Ÿ‡ฑ', 'chile'),
1197
- e('๐Ÿ‡จ๐Ÿ‡ด', 'colombia'),
1198
- e('๐Ÿ‡ต๐Ÿ‡ช', 'peru'),
1199
- e('๐Ÿ‡ป๐Ÿ‡ช', 'venezuela'),
1200
- e('๐Ÿ‡ฟ๐Ÿ‡ฆ', 'south africa'),
1201
- e('๐Ÿ‡ช๐Ÿ‡ฌ', 'egypt'),
1202
- e('๐Ÿ‡ฒ๐Ÿ‡ฆ', 'morocco'),
1203
- e('๐Ÿ‡ฐ๐Ÿ‡ช', 'kenya'),
1204
- e('๐Ÿ‡ณ๐Ÿ‡ฌ', 'nigeria'),
1205
- e('๐Ÿ‡ธ๐Ÿ‡ฆ', 'saudi arabia'),
1206
- e('๐Ÿ‡ฆ๐Ÿ‡ช', 'uae'),
1207
- e('๐Ÿ‡ฎ๐Ÿ‡ฑ', 'israel'),
1208
- e('๐Ÿ‡ฎ๐Ÿ‡ท', 'iran'),
1209
- e('๐Ÿ‡ฎ๐Ÿ‡ถ', 'iraq'),
1210
- e('๐Ÿ‡ธ๐Ÿ‡พ', 'syria'),
1211
- e('๐Ÿ‡ฑ๐Ÿ‡ง', 'lebanon'),
1212
- e('๐Ÿ‡ฏ๐Ÿ‡ด', 'jordan'),
1213
- e('๐Ÿ‡ช๐Ÿ‡บ', 'european union', 'eu'),
1214
- e('๐Ÿ‡บ๐Ÿ‡ณ', 'united nations', 'un'),
1215
- ],
1216
- },
1217
- ];
1218
-
1219
- // โ”€โ”€ Unified picker entries (emoji + FontAwesome icons) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
1220
-
1221
- import { ICONS } from '@bendyline/squisq/icons';
1222
- import { canonicalIconToken } from '@bendyline/squisq/icons';
1223
- import type { IconEntry, IconFamily } from '@bendyline/squisq/icons';
1224
-
1225
- /**
1226
- * Discriminated picker entry. The picker UI dispatches on `kind` to
1227
- * render either an emoji glyph or a FontAwesome `<i>` element. The
1228
- * Toolbar consumes the selected entry to insert into the editor.
1229
- */
1230
- export type PickerEntry =
1231
- | { kind: 'emoji'; char: string; name: string; keywords: string }
1232
- | {
1233
- kind: 'icon';
1234
- family: IconFamily;
1235
- name: string;
1236
- label: string;
1237
- keywords: string;
1238
- /** Canonical token used in the markdown source (bare or qualified). */
1239
- token: string;
1240
- };
1241
-
1242
- export interface PickerCategory {
1243
- id: string;
1244
- label: string;
1245
- /** What to render on the category tab. Emoji glyph or FA class. */
1246
- tab: { kind: 'emoji'; char: string } | { kind: 'icon'; family: IconFamily; name: string };
1247
- entries: PickerEntry[];
1248
- }
1249
-
1250
- function buildIconCategory(family: IconFamily, label: string): PickerCategory {
1251
- // Pick a representative icon for the tab โ€” `github` for brands, `house` for solid,
1252
- // `face-smile` for regular. We fall back to the family's first entry if the
1253
- // representative is missing in a future FA version.
1254
- const repName = family === 'brands' ? 'github' : family === 'solid' ? 'house' : 'face-smile';
1255
- const familyIcons = ICONS.filter((i) => i.family === family);
1256
- const rep = familyIcons.find((i) => i.name === repName) ?? familyIcons[0];
1257
- const tabIcon = rep
1258
- ? { kind: 'icon' as const, family, name: rep.name }
1259
- : { kind: 'emoji' as const, char: 'โ—†' };
1260
- return {
1261
- id: `fa-${family}`,
1262
- label,
1263
- tab: tabIcon,
1264
- entries: familyIcons.map(
1265
- (i: IconEntry): PickerEntry => ({
1266
- kind: 'icon',
1267
- family: i.family,
1268
- name: i.name,
1269
- label: i.label,
1270
- keywords: i.keywords,
1271
- token: canonicalIconToken(i),
1272
- }),
1273
- ),
1274
- };
1275
- }
1276
-
1277
- /**
1278
- * The full picker category list โ€” emoji buckets followed by the three
1279
- * FontAwesome families. Drives the EmojiPicker tabs.
1280
- */
1281
- export const PICKER_CATEGORIES: PickerCategory[] = [
1282
- ...EMOJI_CATEGORIES.map(
1283
- (c): PickerCategory => ({
1284
- id: c.id,
1285
- label: c.label,
1286
- tab: { kind: 'emoji', char: c.icon },
1287
- entries: c.emojis.map(
1288
- (e): PickerEntry => ({
1289
- kind: 'emoji',
1290
- char: e.char,
1291
- name: e.name,
1292
- keywords: e.keywords,
1293
- }),
1294
- ),
1295
- }),
1296
- ),
1297
- buildIconCategory('brands', 'Brands'),
1298
- buildIconCategory('solid', 'Solid'),
1299
- buildIconCategory('regular', 'Regular'),
1300
- ];
1301
-
1302
- /** Flat corpus for the picker search index. */
1303
- export const ALL_PICKER_ENTRIES: PickerEntry[] = PICKER_CATEGORIES.flatMap((c) => c.entries);
1304
-
1305
- /** Lowercase substring search across emoji + icon entries. */
1306
- export function searchPickerEntries(query: string, limit = 80): PickerEntry[] {
1307
- const q = query.trim().toLowerCase();
1308
- if (!q) return [];
1309
- const out: PickerEntry[] = [];
1310
- for (const entry of ALL_PICKER_ENTRIES) {
1311
- if (entry.keywords.includes(q)) {
1312
- out.push(entry);
1313
- if (out.length >= limit) break;
1314
- }
1315
- }
1316
- return out;
1317
- }