decocms 2.286.0 → 2.286.1

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 (215) hide show
  1. package/dist/client/assets/{AlertCircle-DTmaHldD.js → AlertCircle-Bgzr6uRA.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-DlPeFc4v.js → ArrowNarrowLeft-ByrdB8Dd.js} +1 -1
  3. package/dist/client/assets/{CheckCircle-DJ3lme5R.js → CheckCircle-88bls7UK.js} +1 -1
  4. package/dist/client/assets/{ChevronDown-DGnjAtqs.js → ChevronDown-Jd-cYHC-.js} +1 -1
  5. package/dist/client/assets/{ChevronRight-DV9No7GF.js → ChevronRight-71i8ke8L.js} +1 -1
  6. package/dist/client/assets/{ChevronUp-BkSgkwhO.js → ChevronUp-D_szSdLd.js} +1 -1
  7. package/dist/client/assets/{Container-B1nHZdmn.js → Container-DWaKXfYv.js} +1 -1
  8. package/dist/client/assets/{DotsVertical-Bp2tW8JI.js → DotsVertical-CjXyjLNU.js} +1 -1
  9. package/dist/client/assets/{LinkExternal01-BBbCPDtX.js → LinkExternal01-DB08YntP.js} +1 -1
  10. package/dist/client/assets/{Lock01-DpPIS3K7.js → Lock01-dBhVogWg.js} +1 -1
  11. package/dist/client/assets/{Palette-CI8n49a8.js → Palette-DuWQiO51.js} +1 -1
  12. package/dist/client/assets/{Play-DKFUTU3G.js → Play-D7pqvkYq.js} +1 -1
  13. package/dist/client/assets/{Plus-oXFwCrYz.js → Plus-BzxOIhxj.js} +1 -1
  14. package/dist/client/assets/{RefreshCcw01-B10mKiE2.js → RefreshCcw01-BxULs6ec.js} +1 -1
  15. package/dist/client/assets/{SearchMd-BRJBvWf4.js → SearchMd-D6tCV38D.js} +1 -1
  16. package/dist/client/assets/{Settings02-Dm9dFDqk.js → Settings02-MyfUtBA4.js} +1 -1
  17. package/dist/client/assets/{Shield01-BZJVBd5S.js → Shield01-CMw4M4Ml.js} +1 -1
  18. package/dist/client/assets/{Star01-_IJK5Yjt.js → Star01-DZHrISf9.js} +1 -1
  19. package/dist/client/assets/{Sun-QqE1VnS_.js → Sun-C8X8gjZW.js} +1 -1
  20. package/dist/client/assets/{Tool01-CKowkGsd.js → Tool01-BscqkhhO.js} +1 -1
  21. package/dist/client/assets/{Trash01-C6bAXG6g.js → Trash01-DZpzvWVW.js} +1 -1
  22. package/dist/client/assets/{User01-C2-anwoO.js → User01-VHn0SqBP.js} +1 -1
  23. package/dist/client/assets/{Users03-DqYvPeZM.js → Users03-DwNyb_q2.js} +1 -1
  24. package/dist/client/assets/{X-i9zBn6Hn.js → X-BuUY-erD.js} +1 -1
  25. package/dist/client/assets/{XCircle-C1sJYG9R.js → XCircle-BFZeumzD.js} +1 -1
  26. package/dist/client/assets/{XClose-BbIo6xHe.js → XClose-ANREDbeo.js} +1 -1
  27. package/dist/client/assets/{Zap-KmbRMccM.js → Zap-BxJkZzJb.js} +1 -1
  28. package/dist/client/assets/{ZapSquare-DT93lGV4.js → ZapSquare-Bz3HDhTc.js} +1 -1
  29. package/dist/client/assets/{accordion-BV3tm7bj.js → accordion-DK_chPAh.js} +1 -1
  30. package/dist/client/assets/{agent-icon-CyE6nkC1.js → agent-icon-DKQKq---.js} +1 -1
  31. package/dist/client/assets/{agents-list-7o6gZt-q.js → agents-list-DBdCJGrz.js} +1 -1
  32. package/dist/client/assets/ai-providers-BhNFwI7O.js +1 -0
  33. package/dist/client/assets/{alert-dialog-CicrCOay.js → alert-dialog-CtGXaT-Y.js} +1 -1
  34. package/dist/client/assets/{auth-catchall-Cyd7fWQv.js → auth-catchall-B4ADnlpm.js} +1 -1
  35. package/dist/client/assets/{automation-list-row-B4Vfg4UC.js → automation-list-row-B_yW9vLo.js} +1 -1
  36. package/dist/client/assets/{automations-DRM_lJom.js → automations-B3iEjSty.js} +1 -1
  37. package/dist/client/assets/{avatar-CF1bgUpD.js → avatar-DcLXZkYK.js} +1 -1
  38. package/dist/client/assets/{badge-s_TAXGUN.js → badge-BJBM0LXp.js} +1 -1
  39. package/dist/client/assets/brand-context-BahSISOs.js +1 -0
  40. package/dist/client/assets/{card-CaekC2K0.js → card-DqrPrhd5.js} +1 -1
  41. package/dist/client/assets/{chat-context-DP5UfIrn.js → chat-context-DfEaB6Uj.js} +1 -1
  42. package/dist/client/assets/{checkbox-DznLgPgR.js → checkbox-Dplb_VaM.js} +1 -1
  43. package/dist/client/assets/{collection-detail-CTQuhG7N.js → collection-detail-KgUZfuij.js} +1 -1
  44. package/dist/client/assets/{collection-display-button-BgYKhoGQ.js → collection-display-button-DecHBxzk.js} +1 -1
  45. package/dist/client/assets/{collection-search-Bo2bOvRn.js → collection-search-B_zW9IS4.js} +1 -1
  46. package/dist/client/assets/{collection-search-DMqppne6.js → collection-search-DF-hPm66.js} +1 -1
  47. package/dist/client/assets/{collection-table-wrapper-KnWZIddd.js → collection-table-wrapper-DG-B8ykv.js} +1 -1
  48. package/dist/client/assets/{collection-tabs-CU6MCzSn.js → collection-tabs-tHg8euhu.js} +1 -1
  49. package/dist/client/assets/{collections-DHmXATua.js → collections-KKlyNHih.js} +1 -1
  50. package/dist/client/assets/{command-D4w2xkZT.js → command-Cpu7RbMv.js} +1 -1
  51. package/dist/client/assets/{connection-card-DBz-rrLk.js → connection-card-CD0fnfut.js} +1 -1
  52. package/dist/client/assets/{connection-detail-zHqb5ZSw.js → connection-detail-CFY9ol5g.js} +1 -1
  53. package/dist/client/assets/{connection-form-helpers-CBEV0IXi.js → connection-form-helpers-DVewXDLo.js} +1 -1
  54. package/dist/client/assets/{connections-CHiGbl1F.js → connections-B-Liq5Ll.js} +1 -1
  55. package/dist/client/assets/{constants-v4RUVkEN.js → constants-D7DNenhk.js} +1 -1
  56. package/dist/client/assets/{constants-DDHDU3PV.js → constants-aD7HJ6sY.js} +1 -1
  57. package/dist/client/assets/{dialog-C4lREl-t.js → dialog-nGTWjCEa.js} +1 -1
  58. package/dist/client/assets/{drawer-BTCEaGGQ.js → drawer-DyPUsgdj.js} +1 -1
  59. package/dist/client/assets/{dropdown-menu-v2GifVOh.js → dropdown-menu-Cc_jn9Z7.js} +1 -1
  60. package/dist/client/assets/{dynamic-plugin-layout-CVBBnlEt.js → dynamic-plugin-layout-Bun8S8Gm.js} +1 -1
  61. package/dist/client/assets/{empty-state-DdKZ_is7.js → empty-state-CqQa90x5.js} +1 -1
  62. package/dist/client/assets/{empty-state-BdQTFnZA.js → empty-state-DgThOXBB.js} +1 -1
  63. package/dist/client/assets/{extract-connection-data-CfXvFcGA.js → extract-connection-data-Bx0uarS8.js} +1 -1
  64. package/dist/client/assets/{features-fsR9zLkr.js → features-ekquKatz.js} +1 -1
  65. package/dist/client/assets/{form-D7DN8UcB.js → form-DB-TdsHz.js} +1 -1
  66. package/dist/client/assets/{general-WQbdllPl.js → general-BrK_oI6y.js} +1 -1
  67. package/dist/client/assets/{github-repo-picker-DZqLC6FL.js → github-repo-picker-CwCtQ7G3.js} +1 -1
  68. package/dist/client/assets/{index-DBclwIf_.js → index-Amg25tew.js} +1 -1
  69. package/dist/client/assets/{index-D-RCnwJQ.js → index-BZopUfMN.js} +1 -1
  70. package/dist/client/assets/{index-qXZ0t4XR.js → index-BfYZ2YG_.js} +4 -4
  71. package/dist/client/assets/{index-FnxI6OGR.js → index-CT9V-xpg.js} +1 -1
  72. package/dist/client/assets/{index-C5AR7k1c.js → index-CwstDhH7.js} +1 -1
  73. package/dist/client/assets/{index-D34n6J5J.js → index-DhJrYN5i.js} +2 -2
  74. package/dist/client/assets/{index-CHKi_s_a.js → index-DtMbbDUN.js} +1 -1
  75. package/dist/client/assets/{index-e3AFJ_dX.js → index-DtdOoKdU.js} +1 -1
  76. package/dist/client/assets/{index-zDq2Zqio.js → index-DvgxnJsz.js} +1 -1
  77. package/dist/client/assets/{index-DnJZfbsP.js → index-pD6VF9-w.js} +1 -1
  78. package/dist/client/assets/{infiniteQueryObserver-1_M-sq16.js → infiniteQueryObserver-B_9sKQsI.js} +1 -1
  79. package/dist/client/assets/{input-urtyHxks.js → input-COFLoOjb.js} +1 -1
  80. package/dist/client/assets/{integration-icon-Cdkk9YPE.js → integration-icon-DKrcAAs9.js} +1 -1
  81. package/dist/client/assets/{label-Bt4h_QUk.js → label-BZVcstmy.js} +1 -1
  82. package/dist/client/assets/{layout-B5SDe6IW.js → layout-Dp5y9gtR.js} +1 -1
  83. package/dist/client/assets/{login-7zFMf3C1.js → login-ComGApTe.js} +1 -1
  84. package/dist/client/assets/{members-Dy7hWkQ8.js → members-CHnKVrrd.js} +1 -1
  85. package/dist/client/assets/{monaco-editor-lveN-AoO.js → monaco-editor-EL8K9shU.js} +1 -1
  86. package/dist/client/assets/{monitoring-stats-row-D3x0_phM.js → monitoring-stats-row-D9crys0K.js} +1 -1
  87. package/dist/client/assets/{oauth-callback-BJALVgfT.js → oauth-callback-B0mEhNIK.js} +1 -1
  88. package/dist/client/assets/{oauth-callback-ai-provider-o8Hfz-wL.js → oauth-callback-ai-provider-Dj0EctfO.js} +1 -1
  89. package/dist/client/assets/{onboarding-DlI3PsIA.js → onboarding-czNV0UuI.js} +1 -1
  90. package/dist/client/assets/{org-layout-DPzm8vzJ.js → org-layout-CGtnLM_Q.js} +1 -1
  91. package/dist/client/assets/{org-plugin-layout-DB72TzxO.js → org-plugin-layout-Ba2ZEzcE.js} +1 -1
  92. package/dist/client/assets/{plugin-empty-state-BzyxU1IF.js → plugin-empty-state-fmAUJ6xt.js} +1 -1
  93. package/dist/client/assets/{plugin-header-hJH6-4Nr.js → plugin-header-3c9kItnR.js} +1 -1
  94. package/dist/client/assets/{plugin-layout-l_MDXBYc.js → plugin-layout-CUFHRJeM.js} +1 -1
  95. package/dist/client/assets/{popover-j_PzMtdY.js → popover-Bo1-wNsY.js} +1 -1
  96. package/dist/client/assets/{profile-lf_QL3Ye.js → profile-C4ZfFzUo.js} +1 -1
  97. package/dist/client/assets/{project-app-view-DuFzKNXE.js → project-app-view-DbITEuQv.js} +1 -1
  98. package/dist/client/assets/registry-CrUw5Sj_.js +2 -0
  99. package/dist/client/assets/{registry-layout-DRb_iR_v.js → registry-layout-q6bMBk9s.js} +1 -1
  100. package/dist/client/assets/{required-auth-layout-C2o7AZ4K.js → required-auth-layout-CP-yDaO3.js} +1 -1
  101. package/dist/client/assets/{reset-password-DTEY3I_i.js → reset-password-CpFcPkI4.js} +1 -1
  102. package/dist/client/assets/{roles-DW1_Kn6r.js → roles-CSJcHSQ8.js} +1 -1
  103. package/dist/client/assets/{scroll-area-BebfgLv6.js → scroll-area-CXUp8wR9.js} +1 -1
  104. package/dist/client/assets/{search-input-dmuYGYsk.js → search-input-ClG6niuo.js} +1 -1
  105. package/dist/client/assets/{select-CePxsPeP.js → select-Cn3ZnqjJ.js} +1 -1
  106. package/dist/client/assets/{select-model-QQ7yjZl9.js → select-model-BwE-9vfJ.js} +1 -1
  107. package/dist/client/assets/{settings-layout-Cd1tdTnr.js → settings-layout-dHGH4vpw.js} +1 -1
  108. package/dist/client/assets/{shell-layout-BE22YA40.js → shell-layout-BsqL_vND.js} +1 -1
  109. package/dist/client/assets/{skeleton-C9NsUzIb.js → skeleton-DOcx8lZU.js} +1 -1
  110. package/dist/client/assets/{sso-QSGlyP2n.js → sso-37Vu3qt9.js} +1 -1
  111. package/dist/client/assets/{store-BB9yi6PD.js → store-D1kidhJ8.js} +1 -1
  112. package/dist/client/assets/store-registry-qx_8ffch.js +2 -0
  113. package/dist/client/assets/{switch-VBeL01bM.js → switch-ihM2hYRH.js} +1 -1
  114. package/dist/client/assets/{table-CQMW-Toa.js → table-CAUXYO7-.js} +1 -1
  115. package/dist/client/assets/{tabs-DOoLL5wa.js → tabs-DcOxSeRf.js} +1 -1
  116. package/dist/client/assets/{task-status-vvRP86lz.js → task-status-CHfFeACA.js} +1 -1
  117. package/dist/client/assets/{textarea-Ie4QUdo5.js → textarea-CsnX9Ktr.js} +1 -1
  118. package/dist/client/assets/{toggle-group-C077Smww.js → toggle-group-_HWF3GFc.js} +1 -1
  119. package/dist/client/assets/{tools-list-UnPsMGhr.js → tools-list-A0gJUqTb.js} +1 -1
  120. package/dist/client/assets/{types-D4PfKOFF.js → types-BGXCye_w.js} +1 -1
  121. package/dist/client/assets/{use-ai-providers-DHuVj1kn.js → use-ai-providers-DSLKay0D.js} +1 -1
  122. package/dist/client/assets/{use-collections-DRlHpXQL.js → use-collections-DvPoAlor.js} +1 -1
  123. package/dist/client/assets/{use-connection-Cif-LY0f.js → use-connection-MU3rXx28.js} +1 -1
  124. package/dist/client/assets/{use-copy-uiSuMvtc.js → use-copy-tC0v6ypy.js} +1 -1
  125. package/dist/client/assets/{use-create-virtual-mcp-CBpw3zXA.js → use-create-virtual-mcp-C-LLRhrB.js} +1 -1
  126. package/dist/client/assets/{use-decopilot-events-Dpt6CcIN.js → use-decopilot-events-fHBaJaln.js} +1 -1
  127. package/dist/client/assets/{use-delete-connection-BZmW9ZAz.js → use-delete-connection-CowwQ4CA.js} +1 -1
  128. package/dist/client/assets/{use-infinite-scroll-CWlV3gJA.js → use-infinite-scroll-BUM8dH47.js} +1 -1
  129. package/dist/client/assets/{use-list-state-BJZWeXjY.js → use-list-state-Ba4O0IuX.js} +1 -1
  130. package/dist/client/assets/{use-mcp-tools-BYVtg7WH.js → use-mcp-tools-B5zpuics.js} +1 -1
  131. package/dist/client/assets/{use-members-M_p47epa.js → use-members-Bhu2ZnQb.js} +1 -1
  132. package/dist/client/assets/{use-mobile-CxvYCzu9.js → use-mobile-C4Yo3nsX.js} +1 -1
  133. package/dist/client/assets/{use-navigate-to-agent-CFIKBq0L.js → use-navigate-to-agent-Bx0DB5DW.js} +1 -1
  134. package/dist/client/assets/{use-org-sso-CACnH9GQ.js → use-org-sso-BK-ft_ER.js} +1 -1
  135. package/dist/client/assets/{use-organization-roles-o4lVU0iD.js → use-organization-roles-uEcrMWhG.js} +1 -1
  136. package/dist/client/assets/{use-organization-settings-BD9CIHH5.js → use-organization-settings-CMC2yyUM.js} +1 -1
  137. package/dist/client/assets/{use-registry-connections-DR_etJ2H.js → use-registry-connections-Biq_9qgb.js} +1 -1
  138. package/dist/client/assets/{use-status-sounds-Ce7WandB.js → use-status-sounds-DfhTS64d.js} +1 -1
  139. package/dist/client/assets/{use-tasks-Dpp1DK1f.js → use-tasks-DofxyZR4.js} +1 -1
  140. package/dist/client/assets/{use-view-mode-CZPzVaxj.js → use-view-mode-DSeYcON6.js} +1 -1
  141. package/dist/client/assets/{use-virtual-mcp-0vHwLInn.js → use-virtual-mcp-WT1ZdgMM.js} +1 -1
  142. package/dist/client/assets/useInfiniteQuery-Gkc0b2zi.js +1 -0
  143. package/dist/client/assets/useSuspenseInfiniteQuery-YePUpUV3.js +1 -0
  144. package/dist/client/assets/{user-xj80BAo3.js → user-5oBDTi_W.js} +1 -1
  145. package/dist/client/assets/{view-mode-toggle-D5CGwPOj.js → view-mode-toggle-BvyYLass.js} +1 -1
  146. package/dist/client/assets/{workflow-CD_DiE5j.js → workflow-DoVF6xyx.js} +1 -1
  147. package/dist/client/assets/workflow-detail-XUi-wHY3.js +1 -0
  148. package/dist/client/index.html +1 -1
  149. package/dist/server/cli.js +1 -1
  150. package/dist/server/node_modules/get-east-asian-width/index.d.ts +60 -0
  151. package/dist/server/node_modules/get-east-asian-width/index.js +30 -0
  152. package/dist/server/node_modules/get-east-asian-width/lookup-data.js +18 -0
  153. package/dist/server/node_modules/get-east-asian-width/lookup.js +135 -0
  154. package/dist/server/node_modules/get-east-asian-width/package.json +71 -0
  155. package/dist/server/node_modules/get-east-asian-width/readme.md +65 -0
  156. package/dist/server/node_modules/get-east-asian-width/utilities.js +24 -0
  157. package/dist/server/node_modules/slice-ansi/index.d.ts +19 -0
  158. package/dist/server/node_modules/slice-ansi/index.js +260 -0
  159. package/dist/server/node_modules/{is-fullwidth-code-point → slice-ansi}/license +1 -0
  160. package/dist/server/node_modules/slice-ansi/package.json +59 -0
  161. package/dist/server/node_modules/slice-ansi/readme.md +54 -0
  162. package/dist/server/node_modules/slice-ansi/tokenize-ansi.js +752 -0
  163. package/package.json +1 -1
  164. package/dist/client/assets/ai-providers-DI3UF9nU.js +0 -1
  165. package/dist/client/assets/brand-context-iopLFZ2k.js +0 -1
  166. package/dist/client/assets/registry-D3m_WKwq.js +0 -2
  167. package/dist/client/assets/store-registry-BSp-W72J.js +0 -2
  168. package/dist/client/assets/useInfiniteQuery-B4w-6TrV.js +0 -1
  169. package/dist/client/assets/useSuspenseInfiniteQuery-WURyRq6p.js +0 -1
  170. package/dist/client/assets/workflow-detail-CxWEb-ID.js +0 -1
  171. package/dist/server/node_modules/ansi-regex/index.d.ts +0 -33
  172. package/dist/server/node_modules/ansi-regex/index.js +0 -14
  173. package/dist/server/node_modules/ansi-regex/package.json +0 -61
  174. package/dist/server/node_modules/ansi-regex/readme.md +0 -66
  175. package/dist/server/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  176. package/dist/server/node_modules/emoji-regex/README.md +0 -107
  177. package/dist/server/node_modules/emoji-regex/index.d.ts +0 -3
  178. package/dist/server/node_modules/emoji-regex/index.js +0 -4
  179. package/dist/server/node_modules/emoji-regex/index.mjs +0 -4
  180. package/dist/server/node_modules/emoji-regex/package.json +0 -45
  181. package/dist/server/node_modules/environment/index.d.ts +0 -74
  182. package/dist/server/node_modules/environment/index.js +0 -47
  183. package/dist/server/node_modules/environment/license +0 -9
  184. package/dist/server/node_modules/environment/package.json +0 -74
  185. package/dist/server/node_modules/environment/readme.md +0 -94
  186. package/dist/server/node_modules/escape-string-regexp/index.d.ts +0 -18
  187. package/dist/server/node_modules/escape-string-regexp/index.js +0 -11
  188. package/dist/server/node_modules/escape-string-regexp/license +0 -9
  189. package/dist/server/node_modules/escape-string-regexp/package.json +0 -43
  190. package/dist/server/node_modules/escape-string-regexp/readme.md +0 -29
  191. package/dist/server/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  192. package/dist/server/node_modules/is-fullwidth-code-point/index.js +0 -12
  193. package/dist/server/node_modules/is-fullwidth-code-point/package.json +0 -53
  194. package/dist/server/node_modules/is-fullwidth-code-point/readme.md +0 -31
  195. package/dist/server/node_modules/is-unicode-supported/index.d.ts +0 -12
  196. package/dist/server/node_modules/is-unicode-supported/index.js +0 -21
  197. package/dist/server/node_modules/is-unicode-supported/license +0 -9
  198. package/dist/server/node_modules/is-unicode-supported/package.json +0 -47
  199. package/dist/server/node_modules/is-unicode-supported/readme.md +0 -35
  200. package/dist/server/node_modules/onetime/index.d.ts +0 -64
  201. package/dist/server/node_modules/onetime/index.js +0 -44
  202. package/dist/server/node_modules/onetime/license +0 -9
  203. package/dist/server/node_modules/onetime/package.json +0 -43
  204. package/dist/server/node_modules/onetime/readme.md +0 -94
  205. package/dist/server/node_modules/restore-cursor/index.d.ts +0 -11
  206. package/dist/server/node_modules/restore-cursor/index.js +0 -11
  207. package/dist/server/node_modules/restore-cursor/license +0 -9
  208. package/dist/server/node_modules/restore-cursor/package.json +0 -55
  209. package/dist/server/node_modules/restore-cursor/readme.md +0 -31
  210. package/dist/server/node_modules/string-width/index.d.ts +0 -39
  211. package/dist/server/node_modules/string-width/index.js +0 -82
  212. package/dist/server/node_modules/string-width/license +0 -9
  213. package/dist/server/node_modules/string-width/package.json +0 -64
  214. package/dist/server/node_modules/string-width/readme.md +0 -66
  215. /package/dist/server/node_modules/{ansi-regex → get-east-asian-width}/license +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decocms",
3
- "version": "2.286.0",
3
+ "version": "2.286.1",
4
4
  "description": "Deco CMS — Self-hostable MCP Gateway for managing AI connections and tools",
5
5
  "author": "Deco team",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{e as t,j as i}from"./index-D34n6J5J.js";import{O as m}from"./select-model-QQ7yjZl9.js";import"./checkbox-DznLgPgR.js";import"./ChevronDown-DGnjAtqs.js";import"./input-urtyHxks.js";import"./dialog-C4lREl-t.js";import"./X-i9zBn6Hn.js";import"./drawer-BTCEaGGQ.js";import"./use-mobile-CxvYCzu9.js";import"./select-CePxsPeP.js";import"./ChevronUp-BkSgkwhO.js";import"./skeleton-C9NsUzIb.js";import"./Tool01-CKowkGsd.js";import"./RefreshCcw01-B10mKiE2.js";import"./SearchMd-BRJBvWf4.js";import"./Settings02-Dm9dFDqk.js";import"./use-ai-providers-DHuVj1kn.js";import"./constants-DDHDU3PV.js";import"./chat-context-DP5UfIrn.js";import"./use-virtual-mcp-0vHwLInn.js";import"./use-collections-DRlHpXQL.js";import"./use-decopilot-events-Dpt6CcIN.js";import"./create-sse-subscription-CxkOgzKf.js";import"./use-tasks-Dpp1DK1f.js";import"./use-organization-settings-BD9CIHH5.js";import"./ai-providers-logos-CS4PCiqI.js";import"./Zap-KmbRMccM.js";import"./AlertCircle-DTmaHldD.js";import"./CheckCircle-DJ3lme5R.js";import"./Trash01-C6bAXG6g.js";import"./index-zDq2Zqio.js";import"./card-CaekC2K0.js";import"./switch-VBeL01bM.js";import"./toggle-group-C077Smww.js";import"./avatar-CF1bgUpD.js";import"./User01-C2-anwoO.js";import"./alert-dialog-CicrCOay.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./unwrap-tool-result-BYXdCQMg.js";function N(){const o=t.c(1);let r;return o[0]===Symbol.for("react.memo_cache_sentinel")?(r=i.jsx(m,{}),o[0]=r):r=o[0],r}export{N as default};
@@ -1 +0,0 @@
1
- import{e as $,a9 as le,s as ie,o as ce,K as ee,n as de,r as w,a as Q,j as s,B as Z,c as H,t as U,z as R}from"./index-D34n6J5J.js";import{S as me,u as fe}from"./constants-DDHDU3PV.js";import{t as ue,i as xe}from"./ChevronDown-DGnjAtqs.js";import{i as re}from"./ChevronRight-DV9No7GF.js";import{t as ge,s as he,i as pe}from"./Star01-_IJK5Yjt.js";import{n as ve}from"./LinkExternal01-BBbCPDtX.js";import{s as te}from"./Plus-oXFwCrYz.js";import{s as be}from"./Trash01-C6bAXG6g.js";import{i as je}from"./X-i9zBn6Hn.js";import{i as ye}from"./Zap-KmbRMccM.js";import{I as L}from"./input-urtyHxks.js";import{T as Ne}from"./textarea-Ie4QUdo5.js";import{P as J}from"./index-zDq2Zqio.js";import{u as se}from"./unwrap-tool-result-BYXdCQMg.js";import"./use-mobile-CxvYCzu9.js";function V(n){const e=$.c(17),{title:t,children:i,onEdit:o,editing:g,onSave:a,onCancel:c,className:x}=n,b=g&&"ring-2 ring-ring/30";let d;e[0]!==x||e[1]!==b?(d=H("group relative rounded-2xl border border-border/60 bg-background p-5",b,x),e[0]=x,e[1]=b,e[2]=d):d=e[2];let h;e[3]!==t?(h=s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t}),e[3]=t,e[4]=h):h=e[4];let m;e[5]!==g||e[6]!==c||e[7]!==o||e[8]!==a?(m=g?s.jsxs("div",{className:"flex gap-1",children:[s.jsx("button",{type:"button",onClick:c,className:"flex h-7 w-7 items-center justify-center rounded-lg bg-muted hover:bg-muted-foreground/15",children:s.jsx(je,{size:13,className:"text-muted-foreground"})}),s.jsx("button",{type:"button",onClick:a,className:"flex h-7 w-7 items-center justify-center rounded-lg bg-primary/10 hover:bg-primary/20",children:s.jsx(xe,{size:13,className:"text-primary"})})]}):o&&s.jsx("button",{type:"button",onClick:o,className:"flex h-7 w-7 items-center justify-center rounded-lg bg-muted opacity-0 transition-opacity duration-150 hover:bg-muted-foreground/15 group-hover:opacity-100",children:s.jsx(pe,{size:13,className:"text-muted-foreground"})}),e[5]=g,e[6]=c,e[7]=o,e[8]=a,e[9]=m):m=e[9];let u;e[10]!==h||e[11]!==m?(u=s.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[h,m]}),e[10]=h,e[11]=m,e[12]=u):u=e[12];let p;return e[13]!==i||e[14]!==d||e[15]!==u?(p=s.jsxs("div",{className:d,children:[u,i]}),e[13]=i,e[14]=d,e[15]=u,e[16]=p):p=e[16],p}function _e(n){const e=$.c(25),{onExtract:t,isExtracting:i}=n,[o,g]=w.useState("");let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-primary/10",children:s.jsx(ye,{size:18,className:"text-primary"})}),e[0]=a):a=e[0];let c,x;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsx("p",{className:"text-sm font-medium text-foreground",children:"Auto-extract brand context"}),x=s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"Enter your website URL and we'll automatically extract your brand colors, fonts, logos, and company overview."}),e[1]=c,e[2]=x):(c=e[1],x=e[2]);let b;e[3]===Symbol.for("react.memo_cache_sentinel")?(b=r=>g(r.target.value),e[3]=b):b=e[3];let d;e[4]!==o||e[5]!==i||e[6]!==t?(d=r=>{r.key==="Enter"&&o.trim()&&!i&&t(o.trim())},e[4]=o,e[5]=i,e[6]=t,e[7]=d):d=e[7];let h;e[8]!==o||e[9]!==d?(h=s.jsx(L,{placeholder:"acme.com",value:o,onChange:b,className:"max-w-xs",onKeyDown:d}),e[8]=o,e[9]=d,e[10]=h):h=e[10];let m;e[11]!==o||e[12]!==i?(m=!o.trim()||i,e[11]=o,e[12]=i,e[13]=m):m=e[13];let u;e[14]!==o||e[15]!==t?(u=()=>t(o.trim()),e[14]=o,e[15]=t,e[16]=u):u=e[16];let p;e[17]===Symbol.for("react.memo_cache_sentinel")?(p=s.jsx(he,{size:14}),e[17]=p):p=e[17];const j=i?"Extracting...":"Extract";let l;e[18]!==j||e[19]!==m||e[20]!==u?(l=s.jsxs(Z,{variant:"outline",disabled:m,onClick:u,children:[p,j]}),e[18]=j,e[19]=m,e[20]=u,e[21]=l):l=e[21];let v;return e[22]!==l||e[23]!==h?(v=s.jsx("div",{className:"rounded-2xl border border-dashed border-border bg-muted/30 p-5",children:s.jsxs("div",{className:"flex items-start gap-4",children:[a,s.jsxs("div",{className:"flex-1",children:[c,x,s.jsxs("div",{className:"mt-3 flex gap-2",children:[h,l]})]})]})}),e[22]=l,e[23]=h,e[24]=v):v=e[24],v}function ke(n){const e=$.c(24),{brand:t,onSave:i}=n,[o,g]=w.useState(!1),[a,c]=w.useState(t.name??""),[x,b]=w.useState(t.domain??""),[d,h]=w.useState(t.overview??"");let m;e[0]!==t.domain||e[1]!==t.name||e[2]!==t.overview?(m=()=>{c(t.name??""),b(t.domain??""),h(t.overview??""),g(!0)},e[0]=t.domain,e[1]=t.name,e[2]=t.overview,e[3]=m):m=e[3];const u=m;let p;e[4]!==x||e[5]!==a||e[6]!==i||e[7]!==d?(p=()=>{i({name:a,domain:x,overview:d}),g(!1)},e[4]=x,e[5]=a,e[6]=i,e[7]=d,e[8]=p):p=e[8];const j=p,l=!t.name&&!t.domain&&!t.overview;let v;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=()=>g(!1),e[9]=v):v=e[9];let r;e[10]!==t.domain||e[11]!==t.name||e[12]!==t.overview||e[13]!==x||e[14]!==o||e[15]!==l||e[16]!==a||e[17]!==d?(r=o?s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:"Company name"}),s.jsx(L,{value:a,onChange:y=>c(y.target.value),placeholder:"Acme Corp"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:"Domain"}),s.jsx(L,{value:x,onChange:y=>b(y.target.value),placeholder:"acme.com"})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:"Overview"}),s.jsx(Ne,{value:d,onChange:y=>h(y.target.value),placeholder:"Brief description of what the company does...",rows:3})]})]}):l?s.jsx("p",{className:"text-sm text-muted-foreground/60",children:"No company info yet. Click edit to add your company name, domain, and overview."}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"mb-3 flex items-start justify-between gap-4",children:[s.jsx("h2",{className:"text-xl font-semibold leading-tight text-foreground",children:t.name}),t.domain&&s.jsxs("a",{href:`https://${t.domain}`,target:"_blank",rel:"noopener noreferrer",className:"mt-0.5 flex shrink-0 items-center gap-1 text-xs text-muted-foreground transition-colors hover:text-foreground",children:[s.jsx(ve,{size:11}),t.domain]})]}),t.overview&&s.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.overview})]}),e[10]=t.domain,e[11]=t.name,e[12]=t.overview,e[13]=x,e[14]=o,e[15]=l,e[16]=a,e[17]=d,e[18]=r):r=e[18];let f;return e[19]!==o||e[20]!==j||e[21]!==u||e[22]!==r?(f=s.jsx(V,{title:"Company Overview",onEdit:u,editing:o,onSave:j,onCancel:v,children:r}),e[19]=o,e[20]=j,e[21]=u,e[22]=r,e[23]=f):f=e[23],f}function we(n){const e=$.c(24),{brand:t,onSave:i}=n,[o,g]=w.useState(!1),[a,c]=w.useState(t.logo??""),[x,b]=w.useState(t.favicon??""),[d,h]=w.useState(t.ogImage??"");let m;e[0]!==t.favicon||e[1]!==t.logo||e[2]!==t.ogImage?(m=()=>{c(t.logo??""),b(t.favicon??""),h(t.ogImage??""),g(!0)},e[0]=t.favicon,e[1]=t.logo,e[2]=t.ogImage,e[3]=m):m=e[3];const u=m;let p;e[4]!==x||e[5]!==a||e[6]!==d||e[7]!==i?(p=()=>{i({logo:a||null,favicon:x||null,ogImage:d||null}),g(!1)},e[4]=x,e[5]=a,e[6]=d,e[7]=i,e[8]=p):p=e[8];const j=p,l=t.logo||t.favicon||t.ogImage;let v;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=()=>g(!1),e[9]=v):v=e[9];let r;e[10]!==t.favicon||e[11]!==t.logo||e[12]!==t.ogImage||e[13]!==o||e[14]!==x||e[15]!==l||e[16]!==a||e[17]!==d?(r=o?s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:"Logo URL"}),s.jsx(L,{value:a,onChange:y=>c(y.target.value),placeholder:"https://..."})]}),s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:"Favicon URL"}),s.jsx(L,{value:x,onChange:y=>b(y.target.value),placeholder:"https://..."})]}),s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:"OG Image URL"}),s.jsx(L,{value:d,onChange:y=>h(y.target.value),placeholder:"https://..."})]})]}):l?s.jsxs("div",{className:"flex gap-2",children:[t.logo&&s.jsx("div",{className:"flex h-16 w-24 shrink-0 items-center justify-center overflow-hidden rounded-xl",style:{backgroundImage:"linear-gradient(45deg, #e5e7eb 25%, transparent 25%, transparent 75%, #e5e7eb 75%), linear-gradient(45deg, #e5e7eb 25%, transparent 25%, transparent 75%, #e5e7eb 75%)",backgroundSize:"8px 8px",backgroundPosition:"0 0, 4px 4px",backgroundColor:"#fff"},children:s.jsx("img",{src:t.logo,alt:"Logo",className:"h-full w-full object-contain p-2"})}),t.favicon&&s.jsx("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-xl",style:{backgroundImage:"linear-gradient(45deg, #e5e7eb 25%, transparent 25%, transparent 75%, #e5e7eb 75%), linear-gradient(45deg, #e5e7eb 25%, transparent 25%, transparent 75%, #e5e7eb 75%)",backgroundSize:"8px 8px",backgroundPosition:"0 0, 4px 4px",backgroundColor:"#fff"},children:s.jsx("img",{src:t.favicon,alt:"Favicon",className:"h-8 w-8 object-contain"})}),t.ogImage&&s.jsx("div",{className:"h-16 flex-1 overflow-hidden rounded-xl",children:s.jsx("img",{src:t.ogImage,alt:"OG",className:"h-full w-full object-cover",loading:"lazy"})})]}):s.jsx("p",{className:"text-sm text-muted-foreground/60",children:"No logos added yet. Click edit to add logo, favicon, and OG image URLs."}),e[10]=t.favicon,e[11]=t.logo,e[12]=t.ogImage,e[13]=o,e[14]=x,e[15]=l,e[16]=a,e[17]=d,e[18]=r):r=e[18];let f;return e[19]!==o||e[20]!==j||e[21]!==u||e[22]!==r?(f=s.jsx(V,{title:"Logos & Images",onEdit:u,editing:o,onSave:j,onCancel:v,children:r}),e[19]=o,e[20]=j,e[21]=u,e[22]=r,e[23]=f):f=e[23],f}const ne=[{key:"heading",label:"Headings"},{key:"body",label:"Body"},{key:"code",label:"Code"}];function Ce(n){const e=$.c(20),{brand:t,onSave:i}=n,[o,g]=w.useState(!1);let a;e[0]!==t.fonts?(a=t.fonts??{},e[0]=t.fonts,e[1]=a):a=e[1];const[c,x]=w.useState(a);let b;e[2]!==t.fonts?(b=()=>{x(t.fonts??{}),g(!0)},e[2]=t.fonts,e[3]=b):b=e[3];const d=b;let h;e[4]!==c||e[5]!==i?(h=()=>{const r=Object.values(c).some(Se);i({fonts:r?c:null}),g(!1)},e[4]=c,e[5]=i,e[6]=h):h=e[6];const m=h;let u;e[7]!==t.fonts?(u=t.fonts&&Object.values(t.fonts).some(Ee),e[7]=t.fonts,e[8]=u):u=e[8];const p=u;let j;e[9]===Symbol.for("react.memo_cache_sentinel")?(j=()=>g(!1),e[9]=j):j=e[9];let l;e[10]!==t.fonts||e[11]!==o||e[12]!==c||e[13]!==p?(l=o?s.jsx("div",{className:"space-y-2",children:ne.map(r=>{const{key:f,label:y}=r;return s.jsxs("div",{children:[s.jsx("label",{className:"mb-1 block text-xs text-muted-foreground",children:y}),s.jsx(L,{value:c[f]??"",onChange:k=>x({...c,[f]:k.target.value}),placeholder:`Font family for ${y.toLowerCase()}`})]},f)})}):p?s.jsx("div",{className:"space-y-3",children:ne.filter(r=>{const{key:f}=r;return t.fonts?.[f]}).map(r=>{const{key:f,label:y}=r;return s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("span",{className:"w-9 text-xl font-medium leading-none text-foreground",children:"Aa"}),s.jsxs("div",{children:[s.jsx("p",{className:"text-sm font-medium leading-none text-foreground",children:t.fonts[f]}),s.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:y})]})]},f)})}):s.jsx("p",{className:"text-sm text-muted-foreground/60",children:"No fonts defined. Click edit to add your brand fonts."}),e[10]=t.fonts,e[11]=o,e[12]=c,e[13]=p,e[14]=l):l=e[14];let v;return e[15]!==o||e[16]!==m||e[17]!==d||e[18]!==l?(v=s.jsx(V,{title:"Fonts",onEdit:d,editing:o,onSave:m,onCancel:j,children:l}),e[15]=o,e[16]=m,e[17]=d,e[18]=l,e[19]=v):v=e[19],v}function Ee(n){return n?.trim()}function Se(n){return n?.trim()}const oe=[{key:"primary",label:"Primary"},{key:"secondary",label:"Secondary"},{key:"accent",label:"Accent"},{key:"background",label:"Background"},{key:"foreground",label:"Foreground"}];function Te(n){const e=$.c(20),{brand:t,onSave:i}=n,[o,g]=w.useState(!1);let a;e[0]!==t.colors?(a=t.colors??{},e[0]=t.colors,e[1]=a):a=e[1];const[c,x]=w.useState(a);let b;e[2]!==t.colors?(b=()=>{x(t.colors??{}),g(!0)},e[2]=t.colors,e[3]=b):b=e[3];const d=b;let h;e[4]!==c||e[5]!==i?(h=()=>{const r=Object.values(c).some(Be);i({colors:r?c:null}),g(!1)},e[4]=c,e[5]=i,e[6]=h):h=e[6];const m=h;let u;e[7]!==t.colors?(u=t.colors&&Object.values(t.colors).some(Ae),e[7]=t.colors,e[8]=u):u=e[8];const p=u;let j;e[9]===Symbol.for("react.memo_cache_sentinel")?(j=()=>g(!1),e[9]=j):j=e[9];let l;e[10]!==t.colors||e[11]!==c||e[12]!==o||e[13]!==p?(l=o?s.jsx("div",{className:"space-y-2",children:oe.map(r=>{const{key:f,label:y}=r;return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("input",{type:"color",value:c[f]??"#000000",onChange:k=>x({...c,[f]:k.target.value}),className:"h-9 w-9 shrink-0 cursor-pointer rounded-lg border border-border bg-transparent p-0.5"}),s.jsx(L,{value:c[f]??"",onChange:k=>x({...c,[f]:k.target.value}),placeholder:"#000000",className:"w-28"}),s.jsx("span",{className:"flex-1 text-xs text-muted-foreground",children:y})]},f)})}):p?s.jsx("div",{className:"flex flex-wrap gap-4",children:oe.filter(r=>{const{key:f}=r;return t.colors?.[f]}).map(r=>{const{key:f,label:y}=r;return s.jsxs("div",{className:"flex flex-col items-center gap-2",children:[s.jsx("div",{className:"h-14 w-14 rounded-full shadow-sm",style:{backgroundColor:t.colors[f],border:t.colors[f]==="#FFFFFF"?"1px solid #e5e7eb":void 0}}),s.jsx("p",{className:"font-mono text-[10px] text-muted-foreground",children:t.colors[f]}),s.jsx("p",{className:"text-[10px] text-muted-foreground",children:y})]},f)})}):s.jsx("p",{className:"text-sm text-muted-foreground/60",children:"No colors defined. Click edit to add your brand palette."}),e[10]=t.colors,e[11]=c,e[12]=o,e[13]=p,e[14]=l):l=e[14];let v;return e[15]!==o||e[16]!==m||e[17]!==d||e[18]!==l?(v=s.jsx(V,{title:"Colors",onEdit:d,editing:o,onSave:m,onCancel:j,children:l}),e[15]=o,e[16]=m,e[17]=d,e[18]=l,e[19]=v):v=e[19],v}function Ae(n){return n?.trim()}function Be(n){return n?.trim()}function ae(n){const e=$.c(91),{brand:t,client:i,onChanged:o,archived:g}=n,[a,c]=w.useState(!1);let x;e[0]!==t.colors||e[1]!==t.domain||e[2]!==t.favicon||e[3]!==t.fonts||e[4]!==t.id||e[5]!==t.images||e[6]!==t.logo||e[7]!==t.name||e[8]!==t.ogImage||e[9]!==t.overview||e[10]!==i?(x=async N=>{const W={id:t.id,name:N.name??t.name??"",domain:N.domain??t.domain??"",overview:N.overview??t.overview??"",logo:"logo"in N?N.logo:t.logo,favicon:"favicon"in N?N.favicon:t.favicon,ogImage:"ogImage"in N?N.ogImage:t.ogImage,fonts:"fonts"in N?N.fonts:t.fonts,colors:"colors"in N?N.colors:t.colors,images:"images"in N?N.images:t.images};await i.callTool({name:"BRAND_CONTEXT_UPDATE",arguments:W})},e[0]=t.colors,e[1]=t.domain,e[2]=t.favicon,e[3]=t.fonts,e[4]=t.id,e[5]=t.images,e[6]=t.logo,e[7]=t.name,e[8]=t.ogImage,e[9]=t.overview,e[10]=i,e[11]=x):x=e[11];let b;e[12]!==t.id||e[13]!==o?(b=(N,W)=>{U("brand_updated",{brand_id:t.id,fields:Object.keys(W)}),o(),R.success("Brand context saved")},e[12]=t.id,e[13]=o,e[14]=b):b=e[14];let d;e[15]!==x||e[16]!==b?(d={mutationFn:x,onSuccess:b,onError:$e},e[15]=x,e[16]=b,e[17]=d):d=e[17];const{mutate:h}=Q(d);let m;e[18]!==g||e[19]!==t.id||e[20]!==i?(m=async()=>{g?await i.callTool({name:"BRAND_CONTEXT_UPDATE",arguments:{id:t.id,archivedAt:null}}):await i.callTool({name:"BRAND_CONTEXT_DELETE",arguments:{id:t.id}})},e[18]=g,e[19]=t.id,e[20]=i,e[21]=m):m=e[21];let u;e[22]!==g||e[23]!==t.id||e[24]!==o?(u=()=>{U(g?"brand_restored":"brand_archived",{brand_id:t.id}),o(),R.success(g?"Brand restored":"Brand archived")},e[22]=g,e[23]=t.id,e[24]=o,e[25]=u):u=e[25];let p;e[26]!==g?(p=()=>R.error(g?"Failed to restore brand":"Failed to archive brand"),e[26]=g,e[27]=p):p=e[27];let j;e[28]!==m||e[29]!==u||e[30]!==p?(j={mutationFn:m,onSuccess:u,onError:p},e[28]=m,e[29]=u,e[30]=p,e[31]=j):j=e[31];const{mutate:l,isPending:v}=Q(j);let r;e[32]!==t.id||e[33]!==i?(r=async()=>{await i.callTool({name:"BRAND_CONTEXT_UPDATE",arguments:{id:t.id,isDefault:!0}})},e[32]=t.id,e[33]=i,e[34]=r):r=e[34];let f;e[35]!==t.id||e[36]!==o?(f=()=>{U("brand_set_as_default",{brand_id:t.id}),o(),R.success("Set as default brand")},e[35]=t.id,e[36]=o,e[37]=f):f=e[37];let y;e[38]!==r||e[39]!==f?(y={mutationFn:r,onSuccess:f,onError:Re},e[38]=r,e[39]=f,e[40]=y):y=e[40];const{mutate:k}=Q(y),F=t.isDefault?"border-primary/30":"border-border/60";let C;e[41]!==F?(C=H("rounded-2xl border bg-background",F),e[41]=F,e[42]=C):C=e[42];let S;e[43]!==a?(S=()=>c(!a),e[43]=a,e[44]=S):S=e[44];let O;e[45]!==a?(O=s.jsx("span",{className:"shrink-0 text-muted-foreground",children:a?s.jsx(ue,{size:14}):s.jsx(re,{size:14})}),e[45]=a,e[46]=O):O=e[46];let P;e[47]!==t.logo||e[48]!==t.name?(P=t.logo?s.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg",style:{backgroundImage:"linear-gradient(45deg, #e5e7eb 25%, transparent 25%, transparent 75%, #e5e7eb 75%), linear-gradient(45deg, #e5e7eb 25%, transparent 25%, transparent 75%, #e5e7eb 75%)",backgroundSize:"6px 6px",backgroundPosition:"0 0, 3px 3px",backgroundColor:"#fff"},children:s.jsx("img",{src:t.logo,alt:"",className:"h-full w-full object-contain p-1",onError:Pe})}):s.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-muted",children:s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t.name?.charAt(0)?.toUpperCase()||"?"})}),e[47]=t.logo,e[48]=t.name,e[49]=P):P=e[49];const z=t.name||"Untitled Brand";let E;e[50]!==z?(E=s.jsx("span",{className:"text-sm font-medium text-foreground",children:z}),e[50]=z,e[51]=E):E=e[51];let T;e[52]!==t.domain?(T=t.domain&&s.jsx("span",{className:"truncate text-xs text-muted-foreground",children:t.domain}),e[52]=t.domain,e[53]=T):T=e[53];let A;e[54]!==E||e[55]!==T?(A=s.jsxs("div",{className:"flex flex-1 flex-col items-start gap-0.5 overflow-hidden text-left",children:[E,T]}),e[54]=E,e[55]=T,e[56]=A):A=e[56];let B;e[57]!==t.colors?(B=t.colors&&Object.values(t.colors).some(Oe)&&s.jsx("div",{className:"flex shrink-0 gap-1",children:Object.entries(t.colors).filter(Fe).map(De)}),e[57]=t.colors,e[58]=B):B=e[58];let I;e[59]!==t.fonts?(I=t.fonts&&Object.values(t.fonts).some(Ie)&&s.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Object.values(t.fonts).filter(Boolean).join(", ")}),e[59]=t.fonts,e[60]=I):I=e[60];let _;e[61]!==g||e[62]!==t.isDefault||e[63]!==k?(_=!g&&s.jsx("span",{role:"button",tabIndex:0,className:H("flex h-7 w-7 shrink-0 items-center justify-center rounded-lg transition-opacity",t.isDefault?"opacity-100":"opacity-0 hover:bg-muted group-hover:opacity-100"),onClick:N=>{N.stopPropagation(),t.isDefault||k()},onKeyDown:N=>{N.key==="Enter"&&(N.stopPropagation(),t.isDefault||k())},title:t.isDefault?"Default brand":"Set as default",children:s.jsx(ge,{size:13,className:H(t.isDefault?"text-primary fill-primary":"text-muted-foreground")})}),e[61]=g,e[62]=t.isDefault,e[63]=k,e[64]=_):_=e[64];let D,X;e[65]!==l?(D=N=>{N.stopPropagation(),l()},X=N=>{N.key==="Enter"&&(N.stopPropagation(),l())},e[65]=l,e[66]=D,e[67]=X):(D=e[66],X=e[67]);let K;e[68]!==v?(K=v?s.jsx("span",{className:"text-[10px] text-muted-foreground",children:"..."}):s.jsx(be,{size:13,className:"text-muted-foreground"}),e[68]=v,e[69]=K):K=e[69];let q;e[70]!==D||e[71]!==X||e[72]!==K?(q=s.jsx("span",{role:"button",tabIndex:0,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg opacity-0 transition-opacity hover:bg-muted group-hover:opacity-100",onClick:D,onKeyDown:X,children:K}),e[70]=D,e[71]=X,e[72]=K,e[73]=q):q=e[73];let M;e[74]!==S||e[75]!==O||e[76]!==P||e[77]!==A||e[78]!==B||e[79]!==I||e[80]!==_||e[81]!==q?(M=s.jsxs("button",{type:"button",className:"flex w-full items-center gap-3 p-5",onClick:S,children:[O,P,A,B,I,_,q]}),e[74]=S,e[75]=O,e[76]=P,e[77]=A,e[78]=B,e[79]=I,e[80]=_,e[81]=q,e[82]=M):M=e[82];let G;e[83]!==t||e[84]!==a||e[85]!==h?(G=a&&s.jsxs("div",{className:"space-y-3 px-5 pb-5",children:[s.jsx(ke,{brand:t,onSave:h}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsx(we,{brand:t,onSave:h}),s.jsx(Ce,{brand:t,onSave:h})]}),s.jsx(Te,{brand:t,onSave:h})]}),e[83]=t,e[84]=a,e[85]=h,e[86]=G):G=e[86];let Y;return e[87]!==C||e[88]!==M||e[89]!==G?(Y=s.jsxs("div",{className:C,children:[M,G]}),e[87]=C,e[88]=M,e[89]=G,e[90]=Y):Y=e[90],Y}function Ie(n){return n}function De(n){const[e,t]=n;return s.jsx("div",{className:"h-5 w-5 rounded-full border border-border/40",style:{backgroundColor:t},title:`${e}: ${t}`},e)}function Fe(n){const[,e]=n;return e}function Oe(n){return n}function Pe(n){n.target.style.display="none"}function Re(){return R.error("Failed to set default brand")}function $e(){return R.error("Failed to save brand context")}function ze(){const n=$.c(40),{brandExtractEnabled:e}=le(),{org:t}=ie();let i;n[0]!==t.id?(i={connectionId:me,orgId:t.id},n[0]=t.id,n[1]=i):i=n[1];const o=fe(i),g=ce();let a;n[2]!==t.id?(a=ee.brandContext(t.id),n[2]=t.id,n[3]=a):a=n[3];let c;n[4]!==o?(c=async()=>{const _=await o.callTool({name:"BRAND_CONTEXT_LIST",arguments:{includeArchived:!0}}),D=se(_);return Array.isArray(D?.items)?D.items:[]},n[4]=o,n[5]=c):c=n[5];let x;n[6]!==a||n[7]!==c?(x={queryKey:a,queryFn:c},n[6]=a,n[7]=c,n[8]=x):x=n[8];const{data:b}=de(x),d=b===void 0?[]:b,h=d.filter(Ke),m=d.filter(Xe),[u,p]=w.useState(!1);let j;n[9]!==t.id||n[10]!==g?(j=()=>g.invalidateQueries({queryKey:ee.brandContext(t.id),refetchType:"all"}),n[9]=t.id,n[10]=g,n[11]=j):j=n[11];const l=j;let v;n[12]!==o?(v=async()=>{await o.callTool({name:"BRAND_CONTEXT_CREATE",arguments:{name:"New Brand",domain:"example.com",overview:""}})},n[12]=o,n[13]=v):v=n[13];let r;n[14]!==l?(r=()=>{U("brand_created"),l(),R.success("Brand created")},n[14]=l,n[15]=r):r=n[15];let f;n[16]!==v||n[17]!==r?(f={mutationFn:v,onSuccess:r,onError:Ue},n[16]=v,n[17]=r,n[18]=f):f=n[18];const{mutate:y,isPending:k}=Q(f);let F;n[19]!==o?(F=async _=>{U("brand_extract_started",{domain:_});const D=await o.callTool({name:"BRAND_CONTEXT_EXTRACT",arguments:{domain:_}});se(D)},n[19]=o,n[20]=F):F=n[20];let C;n[21]!==l?(C=()=>{U("brand_extract_succeeded"),l(),R.success("Brand extracted successfully")},n[21]=l,n[22]=C):C=n[22];let S;n[23]!==C||n[24]!==F?(S={mutationFn:F,onSuccess:C,onError:Le},n[23]=C,n[24]=F,n[25]=S):S=n[25];const{mutate:O,isPending:P}=Q(S);let z;n[26]===Symbol.for("react.memo_cache_sentinel")?(z=s.jsxs("div",{children:[s.jsx(J.Title,{children:"Brand Context"}),s.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Define your brand profiles. Each brand is available as an MCP prompt for AI clients."})]}),n[26]=z):z=n[26];let E;n[27]!==y?(E=()=>y(),n[27]=y,n[28]=E):E=n[28];let T;n[29]===Symbol.for("react.memo_cache_sentinel")?(T=s.jsx(te,{size:14}),n[29]=T):T=n[29];let A;n[30]!==k||n[31]!==E?(A=s.jsxs("div",{className:"flex items-center justify-between",children:[z,s.jsxs(Z,{variant:"outline",onClick:E,disabled:k,children:[T,"Add Brand"]})]}),n[30]=k,n[31]=E,n[32]=A):A=n[32];let B;n[33]!==e||n[34]!==O||n[35]!==P?(B=e&&s.jsx(_e,{onExtract:_=>O(_),isExtracting:P}),n[33]=e,n[34]=O,n[35]=P,n[36]=B):B=n[36];let I;return n[37]!==o||n[38]!==l?(I=_=>s.jsx(ae,{brand:_,client:o,onChanged:l},_.id),n[37]=o,n[38]=l,n[39]=I):I=n[39],s.jsx(J,{children:s.jsx(J.Content,{children:s.jsx(J.Body,{children:s.jsxs("div",{className:"flex flex-col gap-6",children:[A,B,h.length===0&&m.length===0&&s.jsxs("div",{className:"rounded-2xl border border-dashed border-border bg-muted/30 p-8 text-center",children:[s.jsx("p",{className:"text-sm text-muted-foreground",children:"No brands configured yet."}),s.jsxs(Z,{variant:"outline",size:"sm",className:"mt-3",onClick:()=>y(),disabled:k,children:[s.jsx(te,{size:14}),"Add your first brand"]})]}),s.jsx("div",{className:"group space-y-3",children:h.map(I)}),m.length>0&&s.jsxs("div",{className:"space-y-3",children:[s.jsxs("button",{type:"button",onClick:()=>p(!u),className:"flex items-center gap-1.5 text-xs text-muted-foreground/60 transition-colors hover:text-muted-foreground",children:[s.jsx(re,{size:12,className:H("transition-transform",u&&"rotate-90")}),m.length," archived"]}),u&&s.jsx("div",{className:"space-y-3 opacity-60",children:m.map(_=>s.jsx(ae,{brand:_,client:o,onChanged:l,archived:!0},_.id))})]})]})})})})}function Le(n){U("brand_extract_failed",{error:n instanceof Error?n.message:"unknown"}),R.error(n instanceof Error?n.message:"Failed to extract brand")}function Ue(){return R.error("Failed to create brand")}function Xe(n){return n.archivedAt}function Ke(n){return!n.archivedAt}function at(){const n=$.c(1);let e;return n[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsx(ze,{}),n[0]=e):e=n[0],e}export{at as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-DRb_iR_v.js","assets/index-D34n6J5J.js","assets/index-BCwsJqWc.css","assets/ArrowNarrowLeft-DlPeFc4v.js","assets/CheckCircle-DJ3lme5R.js","assets/Container-B1nHZdmn.js","assets/Settings02-Dm9dFDqk.js","assets/XCircle-C1sJYG9R.js","assets/constants-DDHDU3PV.js","assets/useInfiniteQuery-B4w-6TrV.js","assets/infiniteQueryObserver-1_M-sq16.js","assets/badge-s_TAXGUN.js","assets/input-urtyHxks.js","assets/dropdown-menu-v2GifVOh.js","assets/ChevronDown-DGnjAtqs.js","assets/ChevronRight-DV9No7GF.js","assets/DotsVertical-Bp2tW8JI.js","assets/table-CQMW-Toa.js","assets/toggle-group-C077Smww.js","assets/use-view-mode-CZPzVaxj.js","assets/use-mobile-CxvYCzu9.js","assets/SearchMd-BRJBvWf4.js","assets/dialog-C4lREl-t.js","assets/X-i9zBn6Hn.js","assets/AlertCircle-DTmaHldD.js","assets/alert-dialog-CicrCOay.js","assets/card-CaekC2K0.js","assets/Trash01-C6bAXG6g.js","assets/label-Bt4h_QUk.js","assets/select-CePxsPeP.js","assets/ChevronUp-BkSgkwhO.js","assets/switch-VBeL01bM.js","assets/textarea-Ie4QUdo5.js","assets/RefreshCcw01-B10mKiE2.js","assets/checkbox-DznLgPgR.js","assets/LinkExternal01-BBbCPDtX.js","assets/use-copy-uiSuMvtc.js","assets/Plus-oXFwCrYz.js","assets/Play-DKFUTU3G.js"])))=>i.map(i=>d[i]);
2
- import{e as a,j as t,r,l as i,aE as o}from"./index-D34n6J5J.js";const n=r.lazy(()=>o(()=>import("./registry-layout-DRb_iR_v.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])));function c(){const s=a.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(r.Suspense,{fallback:t.jsx("div",{className:"flex-1 flex items-center justify-center",children:t.jsx(i,{size:20,className:"animate-spin text-muted-foreground"})}),children:t.jsx(n,{})}),s[0]=e):e=s[0],e}export{c as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-DRb_iR_v.js","assets/index-D34n6J5J.js","assets/index-BCwsJqWc.css","assets/ArrowNarrowLeft-DlPeFc4v.js","assets/CheckCircle-DJ3lme5R.js","assets/Container-B1nHZdmn.js","assets/Settings02-Dm9dFDqk.js","assets/XCircle-C1sJYG9R.js","assets/constants-DDHDU3PV.js","assets/useInfiniteQuery-B4w-6TrV.js","assets/infiniteQueryObserver-1_M-sq16.js","assets/badge-s_TAXGUN.js","assets/input-urtyHxks.js","assets/dropdown-menu-v2GifVOh.js","assets/ChevronDown-DGnjAtqs.js","assets/ChevronRight-DV9No7GF.js","assets/DotsVertical-Bp2tW8JI.js","assets/table-CQMW-Toa.js","assets/toggle-group-C077Smww.js","assets/use-view-mode-CZPzVaxj.js","assets/use-mobile-CxvYCzu9.js","assets/SearchMd-BRJBvWf4.js","assets/dialog-C4lREl-t.js","assets/X-i9zBn6Hn.js","assets/AlertCircle-DTmaHldD.js","assets/alert-dialog-CicrCOay.js","assets/card-CaekC2K0.js","assets/Trash01-C6bAXG6g.js","assets/label-Bt4h_QUk.js","assets/select-CePxsPeP.js","assets/ChevronUp-BkSgkwhO.js","assets/switch-VBeL01bM.js","assets/textarea-Ie4QUdo5.js","assets/RefreshCcw01-B10mKiE2.js","assets/checkbox-DznLgPgR.js","assets/LinkExternal01-BBbCPDtX.js","assets/use-copy-uiSuMvtc.js","assets/Plus-oXFwCrYz.js","assets/Play-DKFUTU3G.js"])))=>i.map(i=>d[i]);
2
- import{e as n,f as c,g as m,j as r,l as f,r as l,aE as u}from"./index-D34n6J5J.js";const g=l.lazy(()=>u(()=>import("./registry-layout-DRb_iR_v.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38])));function _(){const e=n.c(5),o=c();let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t={from:"/shell/$org"},e[0]=t):t=e[0];const{org:i}=m(t);let s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=r.jsx("div",{className:"h-full flex items-center justify-center",children:r.jsx(f,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=s):s=e[1];let a;return e[2]!==o||e[3]!==i?(a=r.jsx(l.Suspense,{fallback:s,children:r.jsx(g,{onBack:()=>o({to:"/$org/settings/store",params:{org:i}})})}),e[2]=o,e[3]=i,e[4]=a):a=e[4],a}export{_ as default};
@@ -1 +0,0 @@
1
- import{I as u}from"./infiniteQueryObserver-1_M-sq16.js";import{c1 as i}from"./index-D34n6J5J.js";function t(e,r){return i(e,u,r)}export{t as u};
@@ -1 +0,0 @@
1
- import{I as s}from"./infiniteQueryObserver-1_M-sq16.js";import{c1 as u,c2 as n}from"./index-D34n6J5J.js";function a(r,e){return u({...r,enabled:!0,suspense:!0,throwOnError:n},s,e)}export{a as u};
@@ -1 +0,0 @@
1
- import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-D34n6J5J.js";import{a as f}from"./index-DBclwIf_.js";import"./index-CHKi_s_a.js";import"./constants-DDHDU3PV.js";import"./collections-DHmXATua.js";import"./index-D-RCnwJQ.js";import"./use-virtual-mcp-0vHwLInn.js";import"./use-collections-DRlHpXQL.js";import"./monaco-editor-lveN-AoO.js";import"./scroll-area-BebfgLv6.js";import"./select-CePxsPeP.js";import"./use-mobile-CxvYCzu9.js";import"./ChevronDown-DGnjAtqs.js";import"./ChevronUp-BkSgkwhO.js";import"./accordion-BV3tm7bj.js";import"./agent-icon-CyE6nkC1.js";import"./AlertCircle-DTmaHldD.js";import"./Tool01-CKowkGsd.js";import"./XClose-BbIo6xHe.js";import"./RefreshCcw01-B10mKiE2.js";import"./ArrowNarrowLeft-DlPeFc4v.js";import"./XCircle-C1sJYG9R.js";import"./ZapSquare-DT93lGV4.js";import"./Users03-DqYvPeZM.js";import"./CheckCircle-DJ3lme5R.js";import"./ChevronRight-DV9No7GF.js";import"./DotsVertical-Bp2tW8JI.js";import"./Container-B1nHZdmn.js";import"./Star01-_IJK5Yjt.js";import"./Palette-CI8n49a8.js";import"./SearchMd-BRJBvWf4.js";import"./index-zDq2Zqio.js";import"./X-i9zBn6Hn.js";import"./LinkExternal01-BBbCPDtX.js";import"./Lock01-DpPIS3K7.js";import"./Sun-QqE1VnS_.js";import"./Play-DKFUTU3G.js";import"./Plus-oXFwCrYz.js";import"./Settings02-Dm9dFDqk.js";import"./Shield01-BZJVBd5S.js";import"./Trash01-C6bAXG6g.js";import"./User01-C2-anwoO.js";import"./Zap-KmbRMccM.js";import"./badge-s_TAXGUN.js";import"./view-mode-toggle-D5CGwPOj.js";import"./layout-B5SDe6IW.js";import"./use-connection-Cif-LY0f.js";import"./use-mcp-tools-BYVtg7WH.js";import"./dialog-C4lREl-t.js";import"./dropdown-menu-v2GifVOh.js";import"./integration-icon-Cdkk9YPE.js";import"./index-C5AR7k1c.js";import"./empty-state-DdKZ_is7.js";import"./create-sse-subscription-CxkOgzKf.js";import"./input-urtyHxks.js";function ut(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{ut as default};
@@ -1,33 +0,0 @@
1
- export type Options = {
2
- /**
3
- Match only the first ANSI escape.
4
-
5
- @default false
6
- */
7
- readonly onlyFirst: boolean;
8
- };
9
-
10
- /**
11
- Regular expression for matching ANSI escape codes.
12
-
13
- @example
14
- ```
15
- import ansiRegex from 'ansi-regex';
16
-
17
- ansiRegex().test('\u001B[4mcake\u001B[0m');
18
- //=> true
19
-
20
- ansiRegex().test('cake');
21
- //=> false
22
-
23
- '\u001B[4mcake\u001B[0m'.match(ansiRegex());
24
- //=> ['\u001B[4m', '\u001B[0m']
25
-
26
- '\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
27
- //=> ['\u001B[4m']
28
-
29
- '\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
30
- //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
31
- ```
32
- */
33
- export default function ansiRegex(options?: Options): RegExp;
@@ -1,14 +0,0 @@
1
- export default function ansiRegex({onlyFirst = false} = {}) {
2
- // Valid string terminator sequences are BEL, ESC\, and 0x9c
3
- const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
4
-
5
- // OSC sequences only: ESC ] ... ST (non-greedy until the first ST)
6
- const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
7
-
8
- // CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte
9
- const csi = '[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]';
10
-
11
- const pattern = `${osc}|${csi}`;
12
-
13
- return new RegExp(pattern, onlyFirst ? undefined : 'g');
14
- }
@@ -1,61 +0,0 @@
1
- {
2
- "name": "ansi-regex",
3
- "version": "6.2.2",
4
- "description": "Regular expression for matching ANSI escape codes",
5
- "license": "MIT",
6
- "repository": "chalk/ansi-regex",
7
- "funding": "https://github.com/chalk/ansi-regex?sponsor=1",
8
- "author": {
9
- "name": "Sindre Sorhus",
10
- "email": "sindresorhus@gmail.com",
11
- "url": "https://sindresorhus.com"
12
- },
13
- "type": "module",
14
- "exports": "./index.js",
15
- "types": "./index.d.ts",
16
- "sideEffects": false,
17
- "engines": {
18
- "node": ">=12"
19
- },
20
- "scripts": {
21
- "test": "xo && ava && tsd",
22
- "view-supported": "node fixtures/view-codes.js"
23
- },
24
- "files": [
25
- "index.js",
26
- "index.d.ts"
27
- ],
28
- "keywords": [
29
- "ansi",
30
- "styles",
31
- "color",
32
- "colour",
33
- "colors",
34
- "terminal",
35
- "console",
36
- "cli",
37
- "string",
38
- "tty",
39
- "escape",
40
- "formatting",
41
- "rgb",
42
- "256",
43
- "shell",
44
- "xterm",
45
- "command-line",
46
- "text",
47
- "regex",
48
- "regexp",
49
- "re",
50
- "match",
51
- "test",
52
- "find",
53
- "pattern"
54
- ],
55
- "devDependencies": {
56
- "ansi-escapes": "^5.0.0",
57
- "ava": "^3.15.0",
58
- "tsd": "^0.21.0",
59
- "xo": "^0.54.2"
60
- }
61
- }
@@ -1,66 +0,0 @@
1
- # ansi-regex
2
-
3
- > Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
4
-
5
- ## Install
6
-
7
- ```sh
8
- npm install ansi-regex
9
- ```
10
-
11
- ## Usage
12
-
13
- ```js
14
- import ansiRegex from 'ansi-regex';
15
-
16
- ansiRegex().test('\u001B[4mcake\u001B[0m');
17
- //=> true
18
-
19
- ansiRegex().test('cake');
20
- //=> false
21
-
22
- '\u001B[4mcake\u001B[0m'.match(ansiRegex());
23
- //=> ['\u001B[4m', '\u001B[0m']
24
-
25
- '\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true}));
26
- //=> ['\u001B[4m']
27
-
28
- '\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex());
29
- //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
30
- ```
31
-
32
- ## API
33
-
34
- ### ansiRegex(options?)
35
-
36
- Returns a regex for matching ANSI escape codes.
37
-
38
- #### options
39
-
40
- Type: `object`
41
-
42
- ##### onlyFirst
43
-
44
- Type: `boolean`\
45
- Default: `false` *(Matches any ANSI escape codes in a string)*
46
-
47
- Match only the first ANSI escape.
48
-
49
- ## Important
50
-
51
- If you run the regex against untrusted user input in a server context, you should [give it a timeout](https://github.com/sindresorhus/super-regex).
52
-
53
- **I do not consider [ReDoS](https://blog.yossarian.net/2022/12/28/ReDoS-vulnerabilities-and-misaligned-incentives) a valid vulnerability for this package.**
54
-
55
- ## FAQ
56
-
57
- ### Why do you test for codes not in the ECMA 48 standard?
58
-
59
- Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
60
-
61
- On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
62
-
63
- ## Maintainers
64
-
65
- - [Sindre Sorhus](https://github.com/sindresorhus)
66
- - [Josh Junon](https://github.com/qix-)
@@ -1,20 +0,0 @@
1
- Copyright Mathias Bynens <https://mathiasbynens.be/>
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,107 +0,0 @@
1
- # emoji-regex [![Build status](https://github.com/mathiasbynens/emoji-regex/actions/workflows/main.yml/badge.svg)](https://github.com/mathiasbynens/emoji-regex/actions/workflows/main.yml) [![emoji-regex on npm](https://img.shields.io/npm/v/emoji-regex)](https://www.npmjs.com/package/emoji-regex)
2
-
3
- _emoji-regex_ offers a regular expression to match all emoji symbols and sequences (including textual representations of emoji) as per the Unicode Standard. It’s based on [_emoji-test-regex-pattern_](https://github.com/mathiasbynens/emoji-test-regex-pattern), which generates (at build time) the regular expression pattern based on the Unicode Standard. As a result, _emoji-regex_ can easily be updated whenever new emoji are added to Unicode.
4
-
5
- Since each version of _emoji-regex_ is tied to the latest Unicode version at the time of release, results are deterministic. This is important for use cases like image replacement, where you want to guarantee that an image asset is available for every possibly matched emoji. If you don’t need a deterministic regex, a lighter-weight, general emoji pattern is available via the [_emoji-regex-xs_](https://github.com/slevithan/emoji-regex-xs) package that follows the same API.
6
-
7
- ## Installation
8
-
9
- Via [npm](https://www.npmjs.com/):
10
-
11
- ```bash
12
- npm install emoji-regex
13
- ```
14
-
15
- In [Node.js](https://nodejs.org/):
16
-
17
- ```js
18
- const emojiRegex = require('emoji-regex');
19
- // Note: because the regular expression has the global flag set, this module
20
- // exports a function that returns the regex rather than exporting the regular
21
- // expression itself, to make it impossible to (accidentally) mutate the
22
- // original regular expression.
23
-
24
- const text = `
25
- \u{231A}: ⌚ default emoji presentation character (Emoji_Presentation)
26
- \u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji
27
- \u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base)
28
- \u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier
29
- `;
30
-
31
- const regex = emojiRegex();
32
- for (const match of text.matchAll(regex)) {
33
- const emoji = match[0];
34
- console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
35
- }
36
- ```
37
-
38
- Console output:
39
-
40
- ```
41
- Matched sequence ⌚ — code points: 1
42
- Matched sequence ⌚ — code points: 1
43
- Matched sequence ↔️ — code points: 2
44
- Matched sequence ↔️ — code points: 2
45
- Matched sequence 👩 — code points: 1
46
- Matched sequence 👩 — code points: 1
47
- Matched sequence 👩🏿 — code points: 2
48
- Matched sequence 👩🏿 — code points: 2
49
- ```
50
-
51
- ## For maintainers
52
-
53
- ### How to update emoji-regex after new Unicode Standard releases
54
-
55
- 1. [Update _emoji-test-regex-pattern_ as described in its repository](https://github.com/mathiasbynens/emoji-test-regex-pattern#how-to-update-emoji-test-regex-pattern-after-new-uts51-releases).
56
-
57
- 1. Bump the _emoji-test-regex-pattern_ dependency to the latest version.
58
-
59
- 1. Update the Unicode data dependency in `package.json` by running the following commands:
60
-
61
- ```sh
62
- # Example: updating from Unicode v13 to Unicode v14.
63
- npm uninstall @unicode/unicode-13.0.0
64
- npm install @unicode/unicode-14.0.0 --save-dev
65
- ````
66
-
67
- 1. Generate the new output:
68
-
69
- ```sh
70
- npm run build
71
- ```
72
-
73
- 1. Verify that tests still pass:
74
-
75
- ```sh
76
- npm test
77
- ```
78
-
79
- ### How to publish a new release
80
-
81
- 1. On the `main` branch, bump the emoji-regex version number in `package.json`:
82
-
83
- ```sh
84
- npm version patch -m 'Release v%s'
85
- ```
86
-
87
- Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
88
-
89
- Note that this produces a Git commit + tag.
90
-
91
- 1. Push the release commit and tag:
92
-
93
- ```sh
94
- git push && git push --tags
95
- ```
96
-
97
- Our CI then automatically publishes the new release to npm.
98
-
99
- ## Author
100
-
101
- | [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
102
- |---|
103
- | [Mathias Bynens](https://mathiasbynens.be/) |
104
-
105
- ## License
106
-
107
- _emoji-regex_ is available under the [MIT](https://mths.be/mit) license.
@@ -1,3 +0,0 @@
1
- declare module 'emoji-regex' {
2
- export default function emojiRegex(): RegExp;
3
- }
@@ -1,4 +0,0 @@
1
- module.exports = () => {
2
- // https://mths.be/emoji
3
- return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
4
- };
@@ -1,4 +0,0 @@
1
- export default () => {
2
- // https://mths.be/emoji
3
- return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
4
- };
@@ -1,45 +0,0 @@
1
- {
2
- "name": "emoji-regex",
3
- "version": "10.6.0",
4
- "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
5
- "homepage": "https://mths.be/emoji-regex",
6
- "main": "index.js",
7
- "module": "index.mjs",
8
- "types": "index.d.ts",
9
- "keywords": [
10
- "unicode",
11
- "regex",
12
- "regexp",
13
- "regular expressions",
14
- "code points",
15
- "symbols",
16
- "characters",
17
- "emoji"
18
- ],
19
- "license": "MIT",
20
- "author": {
21
- "name": "Mathias Bynens",
22
- "url": "https://mathiasbynens.be/"
23
- },
24
- "repository": {
25
- "type": "git",
26
- "url": "https://github.com/mathiasbynens/emoji-regex.git"
27
- },
28
- "bugs": "https://github.com/mathiasbynens/emoji-regex/issues",
29
- "files": [
30
- "LICENSE-MIT.txt",
31
- "index.js",
32
- "index.d.ts",
33
- "index.mjs"
34
- ],
35
- "scripts": {
36
- "build": "node script/build.js",
37
- "test": "mocha",
38
- "test:watch": "npm run test -- --watch"
39
- },
40
- "devDependencies": {
41
- "@unicode/unicode-17.0.0": "^1.6.10",
42
- "emoji-test-regex-pattern": "^2.4.0",
43
- "mocha": "^11.7.2"
44
- }
45
- }
@@ -1,74 +0,0 @@
1
- /**
2
- Check if the code is running in a web browser environment.
3
- */
4
- export const isBrowser: boolean;
5
-
6
- /**
7
- Check if the code is running in a [Node.js](https://nodejs.org) environment.
8
- */
9
- export const isNode: boolean;
10
-
11
- /**
12
- Check if the code is running in a [Bun](https://bun.sh) environment.
13
- */
14
- export const isBun: boolean;
15
-
16
- /**
17
- Check if the code is running in a Deno environment.
18
- */
19
- export const isDeno: boolean;
20
-
21
- /**
22
- Check if the code is running in an Electron environment.
23
- */
24
- export const isElectron: boolean;
25
-
26
- /**
27
- Check if the code is running in a [jsdom](https://github.com/jsdom/jsdom) environment.
28
- */
29
- export const isJsDom: boolean;
30
-
31
- /**
32
- Check if the code is running in a [Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API#worker_global_contexts_and_functions) environment, which could be either a dedicated worker, shared worker, or service worker.
33
- */
34
- export const isWebWorker: boolean;
35
-
36
- /**
37
- Check if the code is running in a [Dedicated Worker](https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope) environment.
38
- */
39
- export const isDedicatedWorker: boolean;
40
-
41
- /**
42
- Check if the code is running in a [Shared Worker](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorkerGlobalScope) environment.
43
- */
44
- export const isSharedWorker: boolean;
45
-
46
- /**
47
- Check if the code is running in a [Service Worker](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope) environment.
48
- */
49
- export const isServiceWorker: boolean;
50
-
51
- /**
52
- Check if the code is running on macOS.
53
- */
54
- export const isMacOs: boolean;
55
-
56
- /**
57
- Check if the code is running on Windows.
58
- */
59
- export const isWindows: boolean;
60
-
61
- /**
62
- Check if the code is running on Linux.
63
- */
64
- export const isLinux: boolean;
65
-
66
- /**
67
- Check if the code is running on iOS.
68
- */
69
- export const isIos: boolean;
70
-
71
- /**
72
- Check if the code is running on Android.
73
- */
74
- export const isAndroid: boolean;