@ckeditor/ckeditor5-emoji 0.0.0-nightly-20250129.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +28 -0
  3. package/README.md +31 -0
  4. package/build/emoji.js +4 -0
  5. package/ckeditor5-metadata.json +32 -0
  6. package/dist/index-content.css +4 -0
  7. package/dist/index-editor.css +111 -0
  8. package/dist/index.css +143 -0
  9. package/dist/index.css.map +1 -0
  10. package/dist/index.js +1477 -0
  11. package/dist/index.js.map +1 -0
  12. package/lang/contexts.json +24 -0
  13. package/package.json +67 -0
  14. package/src/augmentation.d.ts +24 -0
  15. package/src/augmentation.js +5 -0
  16. package/src/emoji.d.ts +32 -0
  17. package/src/emoji.js +38 -0
  18. package/src/emojicommand.d.ts +24 -0
  19. package/src/emojicommand.js +33 -0
  20. package/src/emojiconfig.d.ts +80 -0
  21. package/src/emojiconfig.js +5 -0
  22. package/src/emojimention.d.ts +68 -0
  23. package/src/emojimention.js +193 -0
  24. package/src/emojipicker.d.ts +97 -0
  25. package/src/emojipicker.js +255 -0
  26. package/src/emojirepository.d.ts +139 -0
  27. package/src/emojirepository.js +267 -0
  28. package/src/index.d.ts +14 -0
  29. package/src/index.js +13 -0
  30. package/src/ui/emojicategoriesview.d.ts +68 -0
  31. package/src/ui/emojicategoriesview.js +131 -0
  32. package/src/ui/emojigridview.d.ts +140 -0
  33. package/src/ui/emojigridview.js +183 -0
  34. package/src/ui/emojipickerview.d.ts +91 -0
  35. package/src/ui/emojipickerview.js +172 -0
  36. package/src/ui/emojisearchview.d.ts +51 -0
  37. package/src/ui/emojisearchview.js +89 -0
  38. package/src/ui/emojitoneview.d.ts +46 -0
  39. package/src/ui/emojitoneview.js +89 -0
  40. package/theme/emojicategories.css +29 -0
  41. package/theme/emojigrid.css +55 -0
  42. package/theme/emojipicker.css +32 -0
  43. package/theme/emojitone.css +21 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,4 @@
1
+ Changelog
2
+ =========
3
+
4
+ All changes in the package are documented in https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
package/LICENSE.md ADDED
@@ -0,0 +1,28 @@
1
+ Software License Agreement
2
+ ==========================
3
+
4
+ **CKEditor&nbsp;5 emoji feature** – https://github.com/ckeditor/ckeditor5-emoji <br>
5
+ Copyright (c) 2003–2025, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
+
7
+ Licensed under a dual-license model, this software is available under:
8
+
9
+ * the [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html),
10
+ * or commercial license terms from CKSource Holding sp. z o.o.
11
+
12
+ For more information, see: [https://ckeditor.com/legal/ckeditor-licensing-options](https://ckeditor.com/legal/ckeditor-licensing-options).
13
+
14
+ Sources of Intellectual Property Included in CKEditor
15
+ -----------------------------------------------------
16
+
17
+ Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
18
+
19
+ The following libraries are included in CKEditor&nbsp;5 emoji feature under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0):
20
+
21
+ * emoji-picker-element-data - Copyright (c) 2020 Nolan Lawson.
22
+ * Fuse.js - Copyright (c) 2017 Kirollos Risk.
23
+ * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/.
24
+
25
+ Trademarks
26
+ ----------
27
+
28
+ **CKEditor** is a trademark of [CKSource Holding sp. z o.o.](https://cksource.com) All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ CKEditor&nbsp;5 emoji feature
2
+ =============================
3
+
4
+ [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-emoji.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-emoji)
5
+ [![Coverage Status](https://coveralls.io/repos/github/ckeditor/ckeditor5/badge.svg?branch=master)](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
6
+ [![Build Status](https://travis-ci.com/ckeditor/ckeditor5.svg?branch=master)](https://app.travis-ci.com/github/ckeditor/ckeditor5)
7
+
8
+ This package implements the emoji feature for CKEditor&nbsp;5.
9
+
10
+ ## Demo
11
+
12
+ Check out the demo in the [emoji feature guide](https://ckeditor.com/docs/ckeditor5/latest/features/emoji.html#demo).
13
+
14
+ ## Documentation
15
+
16
+ See the [`@ckeditor/ckeditor5-emoji` package](https://ckeditor.com/docs/ckeditor5/latest/api/emoji.html) page as well as the [emoji feature](https://ckeditor.com/docs/ckeditor5/latest/features/emoji.html) guide in [CKEditor&nbsp;5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install ckeditor5
22
+ ```
23
+
24
+ ## License
25
+
26
+ Licensed under a dual-license model, this software is available under:
27
+
28
+ * the [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html),
29
+ * or commercial license terms from CKSource Holding sp. z o.o.
30
+
31
+ For more information, see: [https://ckeditor.com/legal/ckeditor-licensing-options](https://ckeditor.com/legal/ckeditor-licensing-options).
package/build/emoji.js ADDED
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */(()=>{var t={223:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var n=i(758),r=i.n(n),s=i(935),o=i.n(s)()(r());o.push([t.id,".ck.ck-emoji__categories-list{display:flex;justify-content:space-between;margin:0 var(--ck-spacing-large)}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text{border-width:0;border-bottom:2px solid transparent;font-size:var(--ck-font-size-big);min-height:var(--ck-font-size-big);min-width:var(--ck-font-size-big);padding:0}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on{border-bottom-color:var(--ck-color-base-active)}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text>span{margin:auto}",""]);const c=o},291:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var n=i(758),r=i.n(n),s=i(935),o=i.n(s)()(r());o.push([t.id,":root{--ck-emoji-grid-tile-size:27px}.ck.ck-emoji .ck.ck-emoji__tiles{border-top:1px solid var(--ck-color-base-border);max-height:265px;max-width:100%;overflow-x:hidden;overflow-y:auto}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--ck-emoji-grid-tile-size),1fr));margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-small)}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{border:0;font-size:1.5em;height:var(--ck-emoji-grid-tile-size);min-height:var(--ck-emoji-grid-tile-size);min-width:var(--ck-emoji-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-emoji-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{transition:none}}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label{line-height:var(--ck-emoji-grid-tile-size);text-align:center;width:100%}",""]);const c=o},913:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var n=i(758),r=i.n(n),s=i(935),o=i.n(s)()(r());o.push([t.id,".ck.ck-emoji{width:320px}.ck .ck.ck-emoji__search{align-items:center;display:flex;justify-content:space-between;padding:var(--ck-spacing-large);padding-bottom:var(--ck-spacing-medium)}.ck .ck-fake-emoji-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-emoji-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}",""]);const c=o},59:(t,e,i)=>{"use strict";i.d(e,{A:()=>c});var n=i(758),r=i.n(n),s=i(935),o=i.n(s)()(r());o.push([t.id,".ck.ck-emoji__skin-tone{margin-left:var(--ck-spacing-standard)}.ck.ck-emoji__skin-tone>.ck.ck-dropdown .ck.ck-list__item{min-width:1em}.ck.ck-emoji__skin-tone>.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:auto}",""]);const c=o},935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i="",n=void 0!==e[5];return e[4]&&(i+="@supports (".concat(e[4],") {")),e[2]&&(i+="@media ".concat(e[2]," {")),n&&(i+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),i+=t(e),n&&(i+="}"),e[2]&&(i+="}"),e[4]&&(i+="}"),i})).join("")},e.i=function(t,i,n,r,s){"string"==typeof t&&(t=[[null,t,void 0]]);var o={};if(n)for(var c=0;c<this.length;c++){var a=this[c][0];null!=a&&(o[a]=!0)}for(var u=0;u<t.length;u++){var l=[].concat(t[u]);n&&o[l[0]]||(void 0!==s&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=s),i&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=i):l[2]=i),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),e.push(l))}},e}},758:t=>{"use strict";t.exports=function(t){return t[1]}},591:t=>{"use strict";var e=[];function i(t){for(var i=-1,n=0;n<e.length;n++)if(e[n].identifier===t){i=n;break}return i}function n(t,n){for(var s={},o=[],c=0;c<t.length;c++){var a=t[c],u=n.base?a[0]+n.base:a[0],l=s[u]||0,h="".concat(u," ").concat(l);s[u]=l+1;var d=i(h),f={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==d)e[d].references++,e[d].updater(f);else{var g=r(f,n);n.byIndex=c,e.splice(c,0,{identifier:h,updater:g,references:1})}o.push(h)}return o}function r(t,e){var i=e.domAPI(e);i.update(t);return function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;i.update(t=e)}else i.remove()}}t.exports=function(t,r){var s=n(t=t||[],r=r||{});return function(t){t=t||[];for(var o=0;o<s.length;o++){var c=i(s[o]);e[c].references--}for(var a=n(t,r),u=0;u<s.length;u++){var l=i(s[u]);0===e[l].references&&(e[l].updater(),e.splice(l,1))}s=a}}},128:t=>{"use strict";var e={};t.exports=function(t,i){var n=function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}e[t]=i}return e[t]}(t);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(i)}},51:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},21:t=>{"use strict";t.exports=function(t,e){Object.keys(e).forEach((function(i){t.setAttribute(i,e[i])}))}},639:t=>{"use strict";var e,i=(e=[],function(t,i){return e[t]=i,e.filter(Boolean).join("\n")});function n(t,e,n,r){var s;if(n)s="";else{s="",r.supports&&(s+="@supports (".concat(r.supports,") {")),r.media&&(s+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(s+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),s+=r.css,o&&(s+="}"),r.media&&(s+="}"),r.supports&&(s+="}")}if(t.styleSheet)t.styleSheet.cssText=i(e,s);else{var c=document.createTextNode(s),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(c,a[e]):t.appendChild(c)}}var r={singleton:null,singletonCounter:0};t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=r.singletonCounter++,i=r.singleton||(r.singleton=t.insertStyleElement(t));return{update:function(t){n(i,e,!1,t)},remove:function(t){n(i,e,!0,t)}}}},782:(t,e,i)=>{t.exports=i(237)("./src/core.js")},834:(t,e,i)=>{t.exports=i(237)("./src/typing.js")},311:(t,e,i)=>{t.exports=i(237)("./src/ui.js")},584:(t,e,i)=>{t.exports=i(237)("./src/utils.js")},237:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var s=e[n]={id:n,exports:{}};return t[n](s,s.exports,i),s.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{Emoji:()=>nr,EmojiCommand:()=>Tn,EmojiMention:()=>Mn,EmojiPicker:()=>ir,EmojiRepository:()=>wn});var t=i(782),e=i(584),r=i(834);function s(t){return Array.isArray?Array.isArray(t):"[object Array]"===d(t)}function o(t){return"string"==typeof t}function c(t){return"number"==typeof t}function a(t){return!0===t||!1===t||function(t){return u(t)&&null!==t}(t)&&"[object Boolean]"==d(t)}function u(t){return"object"==typeof t}function l(t){return null!=t}function h(t){return!t.trim().length}function d(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const f=Object.prototype.hasOwnProperty;class g{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach((t=>{let i=p(t);this._keys.push(i),this._keyMap[i.id]=i,e+=i.weight})),this._keys.forEach((t=>{t.weight/=e}))}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function p(t){let e=null,i=null,n=null,r=1,c=null;if(o(t)||s(t))n=t,e=m(t),i=y(t);else{if(!f.call(t,"name"))throw new Error((t=>`Missing ${t} property in key`)("name"));const s=t.name;if(n=s,f.call(t,"weight")&&(r=t.weight,r<=0))throw new Error((t=>`Property 'weight' in key '${t}' must be a positive integer`)(s));e=m(s),i=y(s),c=t.getFn}return{path:e,id:i,weight:r,src:n,getFn:c}}function m(t){return s(t)?t:t.split(".")}function y(t){return s(t)?t.join("."):t}var k={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,...{useExtendedSearch:!1,getFn:function(t,e){let i=[],n=!1;const r=(t,e,u)=>{if(l(t))if(e[u]){const h=t[e[u]];if(!l(h))return;if(u===e.length-1&&(o(h)||c(h)||a(h)))i.push(function(t){return null==t?"":function(t){if("string"==typeof t)return t;let e=t+"";return"0"==e&&1/t==-1/0?"-0":e}(t)}(h));else if(s(h)){n=!0;for(let t=0,i=h.length;t<i;t+=1)r(h[t],e,u+1)}else e.length&&r(h,e,u+1)}else i.push(t)};return r(t,o(e)?e.split("."):e,0),n?i:i[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}};const b=/[^ ]+/g;class _{constructor({getFn:t=k.getFn,fieldNormWeight:e=k.fieldNormWeight}={}){this.norm=function(t=1,e=3){const i=new Map,n=Math.pow(10,e);return{get(e){const r=e.match(b).length;if(i.has(r))return i.get(r);const s=1/Math.pow(r,.5*t),o=parseFloat(Math.round(s*n)/n);return i.set(r,o),o},clear(){i.clear()}}}(e,3),this.getFn=t,this.isCreated=!1,this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach(((t,e)=>{this._keysMap[t.id]=e}))}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,o(this.docs[0])?this.docs.forEach(((t,e)=>{this._addString(t,e)})):this.docs.forEach(((t,e)=>{this._addObject(t,e)})),this.norm.clear())}add(t){const e=this.size();o(t)?this._addString(t,e):this._addObject(t,e)}removeAt(t){this.records.splice(t,1);for(let e=t,i=this.size();e<i;e+=1)this.records[e].i-=1}getValueForItemAtKeyId(t,e){return t[this._keysMap[e]]}size(){return this.records.length}_addString(t,e){if(!l(t)||h(t))return;let i={v:t,i:e,n:this.norm.get(t)};this.records.push(i)}_addObject(t,e){let i={i:e,$:{}};this.keys.forEach(((e,n)=>{let r=e.getFn?e.getFn(t):this.getFn(t,e.path);if(l(r))if(s(r)){let t=[];const e=[{nestedArrIndex:-1,value:r}];for(;e.length;){const{nestedArrIndex:i,value:n}=e.pop();if(l(n))if(o(n)&&!h(n)){let e={v:n,i,n:this.norm.get(n)};t.push(e)}else s(n)&&n.forEach(((t,i)=>{e.push({nestedArrIndex:i,value:t})}))}i.$[n]=t}else if(o(r)&&!h(r)){let t={v:r,n:this.norm.get(r)};i.$[n]=t}})),this.records.push(i)}toJSON(){return{keys:this.keys,records:this.records}}}function v(t,e,{getFn:i=k.getFn,fieldNormWeight:n=k.fieldNormWeight}={}){const r=new _({getFn:i,fieldNormWeight:n});return r.setKeys(t.map(p)),r.setSources(e),r.create(),r}function w(t,{errors:e=0,currentLocation:i=0,expectedLocation:n=0,distance:r=k.distance,ignoreLocation:s=k.ignoreLocation}={}){const o=e/t.length;if(s)return o;const c=Math.abs(n-i);return r?o+c/r:c?1:o}const j=32;function x(t,e,i,{location:n=k.location,distance:r=k.distance,threshold:s=k.threshold,findAllMatches:o=k.findAllMatches,minMatchCharLength:c=k.minMatchCharLength,includeMatches:a=k.includeMatches,ignoreLocation:u=k.ignoreLocation}={}){if(e.length>j)throw new Error(`Pattern length exceeds max of ${j}.`);const l=e.length,h=t.length,d=Math.max(0,Math.min(n,h));let f=s,g=d;const p=c>1||a,m=p?Array(h):[];let y;for(;(y=t.indexOf(e,g))>-1;){let t=w(e,{currentLocation:y,expectedLocation:d,distance:r,ignoreLocation:u});if(f=Math.min(t,f),g=y+l,p){let t=0;for(;t<l;)m[y+t]=1,t+=1}}g=-1;let b=[],_=1,v=l+h;const x=1<<l-1;for(let n=0;n<l;n+=1){let s=0,c=v;for(;s<c;){w(e,{errors:n,currentLocation:d+c,expectedLocation:d,distance:r,ignoreLocation:u})<=f?s=c:v=c,c=Math.floor((v-s)/2+s)}v=c;let a=Math.max(1,d-c+1),y=o?h:Math.min(d+c,h)+l,k=Array(y+2);k[y+1]=(1<<n)-1;for(let s=y;s>=a;s-=1){let o=s-1,c=i[t.charAt(o)];if(p&&(m[o]=+!!c),k[s]=(k[s+1]<<1|1)&c,n&&(k[s]|=(b[s+1]|b[s])<<1|1|b[s+1]),k[s]&x&&(_=w(e,{errors:n,currentLocation:o,expectedLocation:d,distance:r,ignoreLocation:u}),_<=f)){if(f=_,g=o,g<=d)break;a=Math.max(1,2*d-g)}}if(w(e,{errors:n+1,currentLocation:d,expectedLocation:d,distance:r,ignoreLocation:u})>f)break;b=k}const V={isMatch:g>=0,score:Math.max(.001,_)};if(p){const t=function(t=[],e=k.minMatchCharLength){let i=[],n=-1,r=-1,s=0;for(let o=t.length;s<o;s+=1){let o=t[s];o&&-1===n?n=s:o||-1===n||(r=s-1,r-n+1>=e&&i.push([n,r]),n=-1)}return t[s-1]&&s-n>=e&&i.push([n,s-1]),i}(m,c);t.length?a&&(V.indices=t):V.isMatch=!1}return V}function V(t){let e={};for(let i=0,n=t.length;i<n;i+=1){const r=t.charAt(i);e[r]=(e[r]||0)|1<<n-i-1}return e}class M{constructor(t,{location:e=k.location,threshold:i=k.threshold,distance:n=k.distance,includeMatches:r=k.includeMatches,findAllMatches:s=k.findAllMatches,minMatchCharLength:o=k.minMatchCharLength,isCaseSensitive:c=k.isCaseSensitive,ignoreLocation:a=k.ignoreLocation}={}){if(this.options={location:e,threshold:i,distance:n,includeMatches:r,findAllMatches:s,minMatchCharLength:o,isCaseSensitive:c,ignoreLocation:a},this.pattern=c?t:t.toLowerCase(),this.chunks=[],!this.pattern.length)return;const u=(t,e)=>{this.chunks.push({pattern:t,alphabet:V(t),startIndex:e})},l=this.pattern.length;if(l>j){let t=0;const e=l%j,i=l-e;for(;t<i;)u(this.pattern.substr(t,j),t),t+=j;if(e){const t=l-j;u(this.pattern.substr(t),t)}}else u(this.pattern,0)}searchIn(t){const{isCaseSensitive:e,includeMatches:i}=this.options;if(e||(t=t.toLowerCase()),this.pattern===t){let e={isMatch:!0,score:0};return i&&(e.indices=[[0,t.length-1]]),e}const{location:n,distance:r,threshold:s,findAllMatches:o,minMatchCharLength:c,ignoreLocation:a}=this.options;let u=[],l=0,h=!1;this.chunks.forEach((({pattern:e,alphabet:d,startIndex:f})=>{const{isMatch:g,score:p,indices:m}=x(t,e,d,{location:n+f,distance:r,threshold:s,findAllMatches:o,minMatchCharLength:c,includeMatches:i,ignoreLocation:a});g&&(h=!0),l+=p,g&&m&&(u=[...u,...m])}));let d={isMatch:h,score:h?l/this.chunks.length:1};return h&&i&&(d.indices=u),d}}class E{constructor(t){this.pattern=t}static isMultiMatch(t){return T(t,this.multiRegex)}static isSingleMatch(t){return T(t,this.singleRegex)}search(){}}function T(t,e){const i=t.match(e);return i?i[1]:null}class C extends E{constructor(t,{location:e=k.location,threshold:i=k.threshold,distance:n=k.distance,includeMatches:r=k.includeMatches,findAllMatches:s=k.findAllMatches,minMatchCharLength:o=k.minMatchCharLength,isCaseSensitive:c=k.isCaseSensitive,ignoreLocation:a=k.ignoreLocation}={}){super(t),this._bitapSearch=new M(t,{location:e,threshold:i,distance:n,includeMatches:r,findAllMatches:s,minMatchCharLength:o,isCaseSensitive:c,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class P extends E{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let e,i=0;const n=[],r=this.pattern.length;for(;(e=t.indexOf(this.pattern,i))>-1;)i=e+r,n.push([e,i-1]);const s=!!n.length;return{isMatch:s,score:s?0:1,indices:n}}}const L=[class extends E{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const e=t===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},P,class extends E{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const e=t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},class extends E{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const e=!t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}},class extends E{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const e=!t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}},class extends E{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const e=t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},class extends E{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const e=-1===t.indexOf(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}},C],S=L.length,A=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;const I=new Set([C.type,P.type]);class O{constructor(t,{isCaseSensitive:e=k.isCaseSensitive,includeMatches:i=k.includeMatches,minMatchCharLength:n=k.minMatchCharLength,ignoreLocation:r=k.ignoreLocation,findAllMatches:s=k.findAllMatches,location:o=k.location,threshold:c=k.threshold,distance:a=k.distance}={}){this.query=null,this.options={isCaseSensitive:e,includeMatches:i,minMatchCharLength:n,findAllMatches:s,ignoreLocation:r,location:o,threshold:c,distance:a},this.pattern=e?t:t.toLowerCase(),this.query=function(t,e={}){return t.split("|").map((t=>{let i=t.trim().split(A).filter((t=>t&&!!t.trim())),n=[];for(let t=0,r=i.length;t<r;t+=1){const r=i[t];let s=!1,o=-1;for(;!s&&++o<S;){const t=L[o];let i=t.isMultiMatch(r);i&&(n.push(new t(i,e)),s=!0)}if(!s)for(o=-1;++o<S;){const t=L[o];let i=t.isSingleMatch(r);if(i){n.push(new t(i,e));break}}}return n}))}(this.pattern,this.options)}static condition(t,e){return e.useExtendedSearch}searchIn(t){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:i,isCaseSensitive:n}=this.options;t=n?t:t.toLowerCase();let r=0,s=[],o=0;for(let n=0,c=e.length;n<c;n+=1){const c=e[n];s.length=0,r=0;for(let e=0,n=c.length;e<n;e+=1){const n=c[e],{isMatch:a,indices:u,score:l}=n.search(t);if(!a){o=0,r=0,s.length=0;break}if(r+=1,o+=l,i){const t=n.constructor.type;I.has(t)?s=[...s,...u]:s.push(u)}}if(r){let t={isMatch:!0,score:o/r};return i&&(t.indices=s),t}}return{isMatch:!1,score:1}}}const F=[];function $(t,e){for(let i=0,n=F.length;i<n;i+=1){let n=F[i];if(n.condition(t,e))return new n(t,e)}return new M(t,e)}const R="$and",N="$or",z="$path",B="$val",D=t=>!(!t[R]&&!t[N]),W=t=>({[R]:Object.keys(t).map((e=>({[e]:t[e]})))});function q(t,e,{auto:i=!0}={}){const n=t=>{let r=Object.keys(t);const c=(t=>!!t[z])(t);if(!c&&r.length>1&&!D(t))return n(W(t));if((t=>!s(t)&&u(t)&&!D(t))(t)){const n=c?t[z]:r[0],s=c?t[B]:t[n];if(!o(s))throw new Error((t=>`Invalid value for key ${t}`)(n));const a={keyId:y(n),pattern:s};return i&&(a.searcher=$(s,e)),a}let a={children:[],operator:r[0]};return r.forEach((e=>{const i=t[e];s(i)&&i.forEach((t=>{a.children.push(n(t))}))})),a};return D(t)||(t=W(t)),n(t)}function U(t,e){const i=t.matches;e.matches=[],l(i)&&i.forEach((t=>{if(!l(t.indices)||!t.indices.length)return;const{indices:i,value:n}=t;let r={indices:i,value:n};t.key&&(r.key=t.key.src),t.idx>-1&&(r.refIndex=t.idx),e.matches.push(r)}))}function K(t,e){e.score=t.score}class H{constructor(t,e={},i){this.options={...k,...e},this.options.useExtendedSearch,this._keyStore=new g(this.options.keys),this.setCollection(t,i)}setCollection(t,e){if(this._docs=t,e&&!(e instanceof _))throw new Error("Incorrect 'index' type");this._myIndex=e||v(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){l(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const e=[];for(let i=0,n=this._docs.length;i<n;i+=1){const r=this._docs[i];t(r,i)&&(this.removeAt(i),i-=1,n-=1,e.push(r))}return e}removeAt(t){this._docs.splice(t,1),this._myIndex.removeAt(t)}getIndex(){return this._myIndex}search(t,{limit:e=-1}={}){const{includeMatches:i,includeScore:n,shouldSort:r,sortFn:s,ignoreFieldNorm:a}=this.options;let u=o(t)?o(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return function(t,{ignoreFieldNorm:e=k.ignoreFieldNorm}){t.forEach((t=>{let i=1;t.matches.forEach((({key:t,norm:n,score:r})=>{const s=t?t.weight:null;i*=Math.pow(0===r&&s?Number.EPSILON:r,(s||1)*(e?1:n))})),t.score=i}))}(u,{ignoreFieldNorm:a}),r&&u.sort(s),c(e)&&e>-1&&(u=u.slice(0,e)),function(t,e,{includeMatches:i=k.includeMatches,includeScore:n=k.includeScore}={}){const r=[];return i&&r.push(U),n&&r.push(K),t.map((t=>{const{idx:i}=t,n={item:e[i],refIndex:i};return r.length&&r.forEach((e=>{e(t,n)})),n}))}(u,this._docs,{includeMatches:i,includeScore:n})}_searchStringList(t){const e=$(t,this.options),{records:i}=this._myIndex,n=[];return i.forEach((({v:t,i,n:r})=>{if(!l(t))return;const{isMatch:s,score:o,indices:c}=e.searchIn(t);s&&n.push({item:t,idx:i,matches:[{score:o,value:t,norm:r,indices:c}]})})),n}_searchLogical(t){const e=q(t,this.options),i=(t,e,n)=>{if(!t.children){const{keyId:i,searcher:r}=t,s=this._findMatches({key:this._keyStore.get(i),value:this._myIndex.getValueForItemAtKeyId(e,i),searcher:r});return s&&s.length?[{idx:n,item:e,matches:s}]:[]}const r=[];for(let s=0,o=t.children.length;s<o;s+=1){const o=t.children[s],c=i(o,e,n);if(c.length)r.push(...c);else if(t.operator===R)return[]}return r},n=this._myIndex.records,r={},s=[];return n.forEach((({$:t,i:n})=>{if(l(t)){let o=i(e,t,n);o.length&&(r[n]||(r[n]={idx:n,item:t,matches:[]},s.push(r[n])),o.forEach((({matches:t})=>{r[n].matches.push(...t)})))}})),s}_searchObjectList(t){const e=$(t,this.options),{keys:i,records:n}=this._myIndex,r=[];return n.forEach((({$:t,i:n})=>{if(!l(t))return;let s=[];i.forEach(((i,n)=>{s.push(...this._findMatches({key:i,value:t[n],searcher:e}))})),s.length&&r.push({idx:n,item:t,matches:s})})),r}_findMatches({key:t,value:e,searcher:i}){if(!l(e))return[];let n=[];if(s(e))e.forEach((({v:e,i:r,n:s})=>{if(!l(e))return;const{isMatch:o,score:c,indices:a}=i.searchIn(e);o&&n.push({score:c,key:t,value:e,idx:r,norm:s,indices:a})}));else{const{v:r,n:s}=e,{isMatch:o,score:c,indices:a}=i.searchIn(r);o&&n.push({score:c,key:t,value:r,norm:s,indices:a})}return n}}H.version="7.0.0",H.createIndex=v,H.parseIndex=function(t,{getFn:e=k.getFn,fieldNormWeight:i=k.fieldNormWeight}={}){const{keys:n,records:r}=t,s=new _({getFn:e,fieldNormWeight:i});return s.setKeys(n),s.setIndexRecords(r),s},H.config=k,H.parseQuery=q,function(...t){F.push(...t)}(O);const Q="object"==typeof global&&global&&global.Object===Object&&global;var G="object"==typeof self&&self&&self.Object===Object&&self;const J=Q||G||Function("return this")();const X=J.Symbol;var Y=Object.prototype,Z=Y.hasOwnProperty,tt=Y.toString,et=X?X.toStringTag:void 0;const it=function(t){var e=Z.call(t,et),i=t[et];try{t[et]=void 0;var n=!0}catch(t){}var r=tt.call(t);return n&&(e?t[et]=i:delete t[et]),r};var nt=Object.prototype.toString;const rt=function(t){return nt.call(t)};var st=X?X.toStringTag:void 0;const ot=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":st&&st in Object(t)?it(t):rt(t)};const ct=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const at=function(t){if(!ct(t))return!1;var e=ot(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e};const ut=J["__core-js_shared__"];var lt,ht=(lt=/[^.]+$/.exec(ut&&ut.keys&&ut.keys.IE_PROTO||""))?"Symbol(src)_1."+lt:"";const dt=function(t){return!!ht&&ht in t};var ft=Function.prototype.toString;const gt=function(t){if(null!=t){try{return ft.call(t)}catch(t){}try{return t+""}catch(t){}}return""};var pt=/^\[object .+?Constructor\]$/,mt=Function.prototype,yt=Object.prototype,kt=mt.toString,bt=yt.hasOwnProperty,_t=RegExp("^"+kt.call(bt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const vt=function(t){return!(!ct(t)||dt(t))&&(at(t)?_t:pt).test(gt(t))};const wt=function(t,e){return null==t?void 0:t[e]};const jt=function(t,e){var i=wt(t,e);return vt(i)?i:void 0};const xt=function(){try{var t=jt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();const Vt=function(t,e,i){"__proto__"==e&&xt?xt(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i};const Mt=function(t,e,i,n){for(var r=-1,s=null==t?0:t.length;++r<s;){var o=t[r];e(n,o,i(o),t)}return n};const Et=function(t){return function(e,i,n){for(var r=-1,s=Object(e),o=n(e),c=o.length;c--;){var a=o[t?c:++r];if(!1===i(s[a],a,s))break}return e}}();const Tt=function(t,e){for(var i=-1,n=Array(t);++i<t;)n[i]=e(i);return n};const Ct=function(t){return null!=t&&"object"==typeof t};const Pt=function(t){return Ct(t)&&"[object Arguments]"==ot(t)};var Lt=Object.prototype,St=Lt.hasOwnProperty,At=Lt.propertyIsEnumerable;const It=Pt(function(){return arguments}())?Pt:function(t){return Ct(t)&&St.call(t,"callee")&&!At.call(t,"callee")};const Ot=Array.isArray;const Ft=function(){return!1};var $t="object"==typeof exports&&exports&&!exports.nodeType&&exports,Rt=$t&&"object"==typeof module&&module&&!module.nodeType&&module,Nt=Rt&&Rt.exports===$t?J.Buffer:void 0;const zt=(Nt?Nt.isBuffer:void 0)||Ft;var Bt=/^(?:0|[1-9]\d*)$/;const Dt=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&Bt.test(t))&&t>-1&&t%1==0&&t<e};const Wt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991};var qt={};qt["[object Float32Array]"]=qt["[object Float64Array]"]=qt["[object Int8Array]"]=qt["[object Int16Array]"]=qt["[object Int32Array]"]=qt["[object Uint8Array]"]=qt["[object Uint8ClampedArray]"]=qt["[object Uint16Array]"]=qt["[object Uint32Array]"]=!0,qt["[object Arguments]"]=qt["[object Array]"]=qt["[object ArrayBuffer]"]=qt["[object Boolean]"]=qt["[object DataView]"]=qt["[object Date]"]=qt["[object Error]"]=qt["[object Function]"]=qt["[object Map]"]=qt["[object Number]"]=qt["[object Object]"]=qt["[object RegExp]"]=qt["[object Set]"]=qt["[object String]"]=qt["[object WeakMap]"]=!1;const Ut=function(t){return Ct(t)&&Wt(t.length)&&!!qt[ot(t)]};const Kt=function(t){return function(e){return t(e)}};var Ht="object"==typeof exports&&exports&&!exports.nodeType&&exports,Qt=Ht&&"object"==typeof module&&module&&!module.nodeType&&module,Gt=Qt&&Qt.exports===Ht&&Q.process,Jt=function(){try{var t=Qt&&Qt.require&&Qt.require("util").types;return t||Gt&&Gt.binding&&Gt.binding("util")}catch(t){}}();var Xt=Jt&&Jt.isTypedArray;const Yt=Xt?Kt(Xt):Ut;var Zt=Object.prototype.hasOwnProperty;const te=function(t,e){var i=Ot(t),n=!i&&It(t),r=!i&&!n&&zt(t),s=!i&&!n&&!r&&Yt(t),o=i||n||r||s,c=o?Tt(t.length,String):[],a=c.length;for(var u in t)!e&&!Zt.call(t,u)||o&&("length"==u||r&&("offset"==u||"parent"==u)||s&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Dt(u,a))||c.push(u);return c};var ee=Object.prototype;const ie=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||ee)};const ne=function(t,e){return function(i){return t(e(i))}}(Object.keys,Object);var re=Object.prototype.hasOwnProperty;const se=function(t){if(!ie(t))return ne(t);var e=[];for(var i in Object(t))re.call(t,i)&&"constructor"!=i&&e.push(i);return e};const oe=function(t){return null!=t&&Wt(t.length)&&!at(t)};const ce=function(t){return oe(t)?te(t):se(t)};const ae=function(t,e){return function(i,n){if(null==i)return i;if(!oe(i))return t(i,n);for(var r=i.length,s=e?r:-1,o=Object(i);(e?s--:++s<r)&&!1!==n(o[s],s,o););return i}}((function(t,e){return t&&Et(t,e,ce)}));const ue=function(t,e,i,n){return ae(t,(function(t,r,s){e(n,t,i(t),s)})),n};const le=function(){this.__data__=[],this.size=0};const he=function(t,e){return t===e||t!=t&&e!=e};const de=function(t,e){for(var i=t.length;i--;)if(he(t[i][0],e))return i;return-1};var fe=Array.prototype.splice;const ge=function(t){var e=this.__data__,i=de(e,t);return!(i<0)&&(i==e.length-1?e.pop():fe.call(e,i,1),--this.size,!0)};const pe=function(t){var e=this.__data__,i=de(e,t);return i<0?void 0:e[i][1]};const me=function(t){return de(this.__data__,t)>-1};const ye=function(t,e){var i=this.__data__,n=de(i,t);return n<0?(++this.size,i.push([t,e])):i[n][1]=e,this};function ke(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}ke.prototype.clear=le,ke.prototype.delete=ge,ke.prototype.get=pe,ke.prototype.has=me,ke.prototype.set=ye;const be=ke;const _e=function(){this.__data__=new be,this.size=0};const ve=function(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i};const we=function(t){return this.__data__.get(t)};const je=function(t){return this.__data__.has(t)};const xe=jt(J,"Map");const Ve=jt(Object,"create");const Me=function(){this.__data__=Ve?Ve(null):{},this.size=0};const Ee=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var Te=Object.prototype.hasOwnProperty;const Ce=function(t){var e=this.__data__;if(Ve){var i=e[t];return"__lodash_hash_undefined__"===i?void 0:i}return Te.call(e,t)?e[t]:void 0};var Pe=Object.prototype.hasOwnProperty;const Le=function(t){var e=this.__data__;return Ve?void 0!==e[t]:Pe.call(e,t)};const Se=function(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=Ve&&void 0===e?"__lodash_hash_undefined__":e,this};function Ae(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}Ae.prototype.clear=Me,Ae.prototype.delete=Ee,Ae.prototype.get=Ce,Ae.prototype.has=Le,Ae.prototype.set=Se;const Ie=Ae;const Oe=function(){this.size=0,this.__data__={hash:new Ie,map:new(xe||be),string:new Ie}};const Fe=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};const $e=function(t,e){var i=t.__data__;return Fe(e)?i["string"==typeof e?"string":"hash"]:i.map};const Re=function(t){var e=$e(this,t).delete(t);return this.size-=e?1:0,e};const Ne=function(t){return $e(this,t).get(t)};const ze=function(t){return $e(this,t).has(t)};const Be=function(t,e){var i=$e(this,t),n=i.size;return i.set(t,e),this.size+=i.size==n?0:1,this};function De(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}De.prototype.clear=Oe,De.prototype.delete=Re,De.prototype.get=Ne,De.prototype.has=ze,De.prototype.set=Be;const We=De;const qe=function(t,e){var i=this.__data__;if(i instanceof be){var n=i.__data__;if(!xe||n.length<199)return n.push([t,e]),this.size=++i.size,this;i=this.__data__=new We(n)}return i.set(t,e),this.size=i.size,this};function Ue(t){var e=this.__data__=new be(t);this.size=e.size}Ue.prototype.clear=_e,Ue.prototype.delete=ve,Ue.prototype.get=we,Ue.prototype.has=je,Ue.prototype.set=qe;const Ke=Ue;const He=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const Qe=function(t){return this.__data__.has(t)};function Ge(t){var e=-1,i=null==t?0:t.length;for(this.__data__=new We;++e<i;)this.add(t[e])}Ge.prototype.add=Ge.prototype.push=He,Ge.prototype.has=Qe;const Je=Ge;const Xe=function(t,e){for(var i=-1,n=null==t?0:t.length;++i<n;)if(e(t[i],i,t))return!0;return!1};const Ye=function(t,e){return t.has(e)};const Ze=function(t,e,i,n,r,s){var o=1&i,c=t.length,a=e.length;if(c!=a&&!(o&&a>c))return!1;var u=s.get(t),l=s.get(e);if(u&&l)return u==e&&l==t;var h=-1,d=!0,f=2&i?new Je:void 0;for(s.set(t,e),s.set(e,t);++h<c;){var g=t[h],p=e[h];if(n)var m=o?n(p,g,h,e,t,s):n(g,p,h,t,e,s);if(void 0!==m){if(m)continue;d=!1;break}if(f){if(!Xe(e,(function(t,e){if(!Ye(f,e)&&(g===t||r(g,t,i,n,s)))return f.push(e)}))){d=!1;break}}else if(g!==p&&!r(g,p,i,n,s)){d=!1;break}}return s.delete(t),s.delete(e),d};const ti=J.Uint8Array;const ei=function(t){var e=-1,i=Array(t.size);return t.forEach((function(t,n){i[++e]=[n,t]})),i};const ii=function(t){var e=-1,i=Array(t.size);return t.forEach((function(t){i[++e]=t})),i};var ni=X?X.prototype:void 0,ri=ni?ni.valueOf:void 0;const si=function(t,e,i,n,r,s,o){switch(i){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!s(new ti(t),new ti(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return he(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var c=ei;case"[object Set]":var a=1&n;if(c||(c=ii),t.size!=e.size&&!a)return!1;var u=o.get(t);if(u)return u==e;n|=2,o.set(t,e);var l=Ze(c(t),c(e),n,r,s,o);return o.delete(t),l;case"[object Symbol]":if(ri)return ri.call(t)==ri.call(e)}return!1};const oi=function(t,e){for(var i=-1,n=e.length,r=t.length;++i<n;)t[r+i]=e[i];return t};const ci=function(t,e,i){var n=e(t);return Ot(t)?n:oi(n,i(t))};const ai=function(t,e){for(var i=-1,n=null==t?0:t.length,r=0,s=[];++i<n;){var o=t[i];e(o,i,t)&&(s[r++]=o)}return s};const ui=function(){return[]};var li=Object.prototype.propertyIsEnumerable,hi=Object.getOwnPropertySymbols;const di=hi?function(t){return null==t?[]:(t=Object(t),ai(hi(t),(function(e){return li.call(t,e)})))}:ui;const fi=function(t){return ci(t,ce,di)};var gi=Object.prototype.hasOwnProperty;const pi=function(t,e,i,n,r,s){var o=1&i,c=fi(t),a=c.length;if(a!=fi(e).length&&!o)return!1;for(var u=a;u--;){var l=c[u];if(!(o?l in e:gi.call(e,l)))return!1}var h=s.get(t),d=s.get(e);if(h&&d)return h==e&&d==t;var f=!0;s.set(t,e),s.set(e,t);for(var g=o;++u<a;){var p=t[l=c[u]],m=e[l];if(n)var y=o?n(m,p,l,e,t,s):n(p,m,l,t,e,s);if(!(void 0===y?p===m||r(p,m,i,n,s):y)){f=!1;break}g||(g="constructor"==l)}if(f&&!g){var k=t.constructor,b=e.constructor;k==b||!("constructor"in t)||!("constructor"in e)||"function"==typeof k&&k instanceof k&&"function"==typeof b&&b instanceof b||(f=!1)}return s.delete(t),s.delete(e),f};const mi=jt(J,"DataView");const yi=jt(J,"Promise");const ki=jt(J,"Set");const bi=jt(J,"WeakMap");var _i="[object Map]",vi="[object Promise]",wi="[object Set]",ji="[object WeakMap]",xi="[object DataView]",Vi=gt(mi),Mi=gt(xe),Ei=gt(yi),Ti=gt(ki),Ci=gt(bi),Pi=ot;(mi&&Pi(new mi(new ArrayBuffer(1)))!=xi||xe&&Pi(new xe)!=_i||yi&&Pi(yi.resolve())!=vi||ki&&Pi(new ki)!=wi||bi&&Pi(new bi)!=ji)&&(Pi=function(t){var e=ot(t),i="[object Object]"==e?t.constructor:void 0,n=i?gt(i):"";if(n)switch(n){case Vi:return xi;case Mi:return _i;case Ei:return vi;case Ti:return wi;case Ci:return ji}return e});const Li=Pi;var Si="[object Arguments]",Ai="[object Array]",Ii="[object Object]",Oi=Object.prototype.hasOwnProperty;const Fi=function(t,e,i,n,r,s){var o=Ot(t),c=Ot(e),a=o?Ai:Li(t),u=c?Ai:Li(e),l=(a=a==Si?Ii:a)==Ii,h=(u=u==Si?Ii:u)==Ii,d=a==u;if(d&&zt(t)){if(!zt(e))return!1;o=!0,l=!1}if(d&&!l)return s||(s=new Ke),o||Yt(t)?Ze(t,e,i,n,r,s):si(t,e,a,i,n,r,s);if(!(1&i)){var f=l&&Oi.call(t,"__wrapped__"),g=h&&Oi.call(e,"__wrapped__");if(f||g){var p=f?t.value():t,m=g?e.value():e;return s||(s=new Ke),r(p,m,i,n,s)}}return!!d&&(s||(s=new Ke),pi(t,e,i,n,r,s))};const $i=function t(e,i,n,r,s){return e===i||(null==e||null==i||!Ct(e)&&!Ct(i)?e!=e&&i!=i:Fi(e,i,n,r,t,s))};const Ri=function(t,e,i,n){var r=i.length,s=r,o=!n;if(null==t)return!s;for(t=Object(t);r--;){var c=i[r];if(o&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++r<s;){var a=(c=i[r])[0],u=t[a],l=c[1];if(o&&c[2]){if(void 0===u&&!(a in t))return!1}else{var h=new Ke;if(n)var d=n(u,l,a,t,e,h);if(!(void 0===d?$i(l,u,3,n,h):d))return!1}}return!0};const Ni=function(t){return t==t&&!ct(t)};const zi=function(t){for(var e=ce(t),i=e.length;i--;){var n=e[i],r=t[n];e[i]=[n,r,Ni(r)]}return e};const Bi=function(t,e){return function(i){return null!=i&&(i[t]===e&&(void 0!==e||t in Object(i)))}};const Di=function(t){var e=zi(t);return 1==e.length&&e[0][2]?Bi(e[0][0],e[0][1]):function(i){return i===t||Ri(i,t,e)}};const Wi=function(t){return"symbol"==typeof t||Ct(t)&&"[object Symbol]"==ot(t)};var qi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ui=/^\w*$/;const Ki=function(t,e){if(Ot(t))return!1;var i=typeof t;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=t&&!Wi(t))||(Ui.test(t)||!qi.test(t)||null!=e&&t in Object(e))};function Hi(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var i=function(){var n=arguments,r=e?e.apply(this,n):n[0],s=i.cache;if(s.has(r))return s.get(r);var o=t.apply(this,n);return i.cache=s.set(r,o)||s,o};return i.cache=new(Hi.Cache||We),i}Hi.Cache=We;const Qi=Hi;var Gi=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ji=/\\(\\)?/g;const Xi=function(t){var e=Qi(t,(function(t){return 500===i.size&&i.clear(),t})),i=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Gi,(function(t,i,n,r){e.push(n?r.replace(Ji,"$1"):i||t)})),e}));const Yi=function(t,e){for(var i=-1,n=null==t?0:t.length,r=Array(n);++i<n;)r[i]=e(t[i],i,t);return r};var Zi=X?X.prototype:void 0,tn=Zi?Zi.toString:void 0;const en=function t(e){if("string"==typeof e)return e;if(Ot(e))return Yi(e,t)+"";if(Wi(e))return tn?tn.call(e):"";var i=e+"";return"0"==i&&1/e==-1/0?"-0":i};const nn=function(t){return null==t?"":en(t)};const rn=function(t,e){return Ot(t)?t:Ki(t,e)?[t]:Xi(nn(t))};const sn=function(t){if("string"==typeof t||Wi(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e};const on=function(t,e){for(var i=0,n=(e=rn(e,t)).length;null!=t&&i<n;)t=t[sn(e[i++])];return i&&i==n?t:void 0};const cn=function(t,e,i){var n=null==t?void 0:on(t,e);return void 0===n?i:n};const an=function(t,e){return null!=t&&e in Object(t)};const un=function(t,e,i){for(var n=-1,r=(e=rn(e,t)).length,s=!1;++n<r;){var o=sn(e[n]);if(!(s=null!=t&&i(t,o)))break;t=t[o]}return s||++n!=r?s:!!(r=null==t?0:t.length)&&Wt(r)&&Dt(o,r)&&(Ot(t)||It(t))};const ln=function(t,e){return null!=t&&un(t,e,an)};const hn=function(t,e){return Ki(t)&&Ni(e)?Bi(sn(t),e):function(i){var n=cn(i,t);return void 0===n&&n===e?ln(i,t):$i(e,n,3)}};const dn=function(t){return t};const fn=function(t){return function(e){return null==e?void 0:e[t]}};const gn=function(t){return function(e){return on(e,t)}};const pn=function(t){return Ki(t)?fn(sn(t)):gn(t)};const mn=function(t){return"function"==typeof t?t:null==t?dn:"object"==typeof t?Ot(t)?hn(t[0],t[1]):Di(t):pn(t)};const yn=function(t,e){return function(i,n){var r=Ot(i)?Mt:ue,s=e?e():{};return r(i,t,mn(n,2),s)}};var kn=Object.prototype.hasOwnProperty;const bn=yn((function(t,e,i){kn.call(t,i)?t[i].push(e):Vt(t,i,[e])})),_n={0:"default",1:"light",2:"medium-light",3:"medium",4:"medium-dark",5:"dark"};class vn extends t.Plugin{static get pluginName(){return"EmojiRepository"}static get isOfficialPlugin(){return!0}constructor(t){super(t),this.editor.config.define("emoji",{version:16,skinTone:"default"}),this._database=[],this._databasePromise=new Promise((t=>{this._databasePromiseResolveCallback=t})),this._fuseSearch=null}async init(){const t=this.editor.config.get("emoji.version"),i="https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json".replace("{version}",`${t}`),n=await async function(t){const i=await fetch(t).then((t=>t.ok?t.json():[])).catch((()=>[]));i.length||(0,e.logWarning)("emoji-database-load-failed");return i}(i);if(!n.length)return this._databasePromiseResolveCallback(!1);const r=function(){const t=document.createElement("div");return t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.left="-9999px",t.style.whiteSpace="nowrap",t.style.fontSize="24px",document.body.appendChild(t),t}();return this._database=n.filter((t=>function(t){return 2!==t.group}(t))).filter((t=>vn._isEmojiSupported(t,r))).map((t=>function(t){const e={...t,skins:{default:t.emoji}};t.skins&&t.skins.forEach((t=>{const i=_n[t.tone];e.skins[i]=t.emoji}));return e}(t))),r.remove(),this._fuseSearch=new H(this._database,{keys:[{name:"emoticon",weight:5},{name:"annotation",weight:3},{name:"tags",weight:1}],minMatchCharLength:2,threshold:0,ignoreLocation:!0}),this._databasePromiseResolveCallback(!0)}getEmojiByQuery(t){if(!this._fuseSearch)return[];const e=t.split(/\s/).filter(Boolean);return e.some((t=>t.length>=2))?this._fuseSearch.search({$or:[{emoticon:t},{$and:e.map((t=>({annotation:t})))},{$and:e.map((t=>({tags:t})))}]}).map((t=>t.item)):[]}getEmojiCategories(){if(!this._database.length)return[];const{t}=this.editor.locale,e=[{title:t("Smileys & Expressions"),icon:"😀",groupId:0},{title:t("Gestures & People"),icon:"👋",groupId:1},{title:t("Animals & Nature"),icon:"🐻",groupId:3},{title:t("Food & Drinks"),icon:"🍎",groupId:4},{title:t("Travel & Places"),icon:"🚘",groupId:5},{title:t("Activities"),icon:"🏀",groupId:6},{title:t("Objects"),icon:"💡",groupId:7},{title:t("Symbols"),icon:"🟢",groupId:8},{title:t("Flags"),icon:"🏁",groupId:9}],i=bn(this._database,"group");return e.map((t=>({...t,items:i[t.groupId]})))}getSkinTones(){const{t}=this.editor.locale;return[{id:"default",icon:"👋",tooltip:t("Default skin tone")},{id:"light",icon:"👋🏻",tooltip:t("Light skin tone")},{id:"medium-light",icon:"👋🏼",tooltip:t("Medium Light skin tone")},{id:"medium",icon:"👋🏽",tooltip:t("Medium skin tone")},{id:"medium-dark",icon:"👋🏾",tooltip:t("Medium Dark skin tone")},{id:"dark",icon:"👋🏿",tooltip:t("Dark skin tone")}]}isReady(){return this._databasePromise}}vn._isEmojiSupported=function(t,e){const i=function(t,e){const i=document.createElement("span");i.textContent=e,t.appendChild(i);const n=i.offsetWidth;return t.removeChild(i),n}(e,t.emoji);return i/1.8<24&&i>=24};const wn=vn;const jn=":",xn=":__EMOJI_SHOW_ALL:",Vn=":__EMOJI_HINT:";class Mn extends t.Plugin{static get requires(){return[wn,r.Typing,"Mention"]}static get pluginName(){return"EmojiMention"}static get isOfficialPlugin(){return!0}constructor(t){super(t),this.editor.config.define("emoji",{dropdownLimit:6}),this._emojiDropdownLimit=t.config.get("emoji.dropdownLimit"),this._skinTone=t.config.get("emoji.skinTone");const i=t.config.get("mention.feeds"),n=t.config.get("mergeFields.prefix"),r=i.some((t=>t.marker===jn)),s=!!n&&n[0]===jn;r||s?(0,e.logWarning)("emoji-config-marker-already-used",{marker:jn}):this._setupMentionConfiguration(i)}async init(){const t=this.editor;this._emojiPickerPlugin=t.plugins.has("EmojiPicker")?t.plugins.get("EmojiPicker"):null,this._emojiRepositoryPlugin=t.plugins.get("EmojiRepository"),await this._emojiRepositoryPlugin.isReady()&&t.once("ready",this._overrideMentionExecuteListener.bind(this))}_setupMentionConfiguration(t){const e={marker:jn,dropdownLimit:this._emojiDropdownLimit,itemRenderer:this._customItemRendererFactory(this.editor.t),feed:this._queryEmojiCallbackFactory()};this.editor.config.set("mention.feeds",[...t,e])}_customItemRendererFactory(t){return e=>{const i=document.createElement("button");i.classList.add("ck"),i.classList.add("ck-button"),i.classList.add("ck-button_with-text"),i.id=`mention-list-item-id${e.id.slice(0,-1)}`,i.type="button",i.tabIndex=-1;const n=document.createElement("span");return n.classList.add("ck"),n.classList.add("ck-button__label"),i.appendChild(n),e.id===Vn?(i.classList.add("ck-list-item-button"),i.classList.add("ck-disabled"),n.textContent=t("Keep on typing to see the emoji.")):e.id===xn?n.textContent=t("Show all emoji..."):n.textContent=`${e.text} ${e.id}`,i}}_overrideMentionExecuteListener(){const t=this.editor;t.commands.get("mention").on("execute",((e,i)=>{const n=i[0];if(n.marker===jn&&(e.stop(),n.mention.id!==Vn))if(n.mention.id===xn){const e=[...n.range.getItems()].filter((t=>t.is("$textProxy"))).map((t=>t.data)).reduce(((t,e)=>t+e),"");t.model.change((e=>{t.model.deleteContent(e.createSelection(n.range))}));const i=this._emojiPickerPlugin;i.showUI(e.slice(1)),setTimeout((()=>{i.emojiPickerView.focus()}))}else t.execute("insertText",{text:n.mention.text,range:n.range})}),{priority:"high"})}_queryEmojiCallbackFactory(){return t=>{if(t.startsWith(" "))return[];const e=this._emojiRepositoryPlugin.getEmojiByQuery(t).map((t=>{let e=t.skins[this._skinTone]||t.skins.default;return this._emojiPickerPlugin&&(e=t.skins[this._emojiPickerPlugin.skinTone]||t.skins.default),{id:`:${t.annotation}:`,text:e}}));if(!this._emojiPickerPlugin)return e.slice(0,this._emojiDropdownLimit);const i={id:t.length>1?xn:Vn};return[...e.slice(0,this._emojiDropdownLimit-1),i]}}}var En=i(311);class Tn extends t.Command{refresh(){const t=this.editor.model,e=t.schema,i=t.document.selection;this.isEnabled=e.checkChild(i.getFirstPosition(),"$text")}execute(t=""){this.editor.plugins.get("EmojiPicker").showUI(t)}}var Cn=i(591),Pn=i.n(Cn),Ln=i(639),Sn=i.n(Ln),An=i(128),In=i.n(An),On=i(21),Fn=i.n(On),$n=i(51),Rn=i.n($n),Nn=i(291),zn={attributes:{"data-cke":!0}};zn.setAttributes=Fn(),zn.insert=In().bind(null,"head"),zn.domAPI=Sn(),zn.insertStyleElement=Rn();Pn()(Nn.A,zn);Nn.A&&Nn.A.locals&&Nn.A.locals;class Bn extends En.View{constructor(t,{categoryName:i,emojiCategories:n,getEmojiByQuery:r,skinTone:s}){super(t),this.set("isEmpty",!0),this.set("categoryName",i),this.set("skinTone",s),this.tiles=this.createCollection(),this.cachedTiles=this.createCollection(),this.focusTracker=new e.FocusTracker,this.keystrokes=new e.KeystrokeHandler,this._getEmojiByQuery=r,this.emojiCategories=n;const o=this.bindTemplate;this.setTemplate({tag:"div",children:[{tag:"div",attributes:{role:"grid",class:["ck","ck-emoji__grid"]},children:this.tiles}],attributes:{role:"tabpanel",class:["ck","ck-emoji__tiles",o.if("isEmpty","ck-hidden",(t=>t))]}}),(0,En.addKeyboardHandlingForGrid)({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.tiles,numberOfColumns:()=>e.global.window.getComputedStyle(this.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy(),this.focusTracker.destroy()}focus(){const t=this.tiles.first;t&&t.focus()}filter(t){const{matchingItems:e,allItems:i}=t?this._getItemsByQuery(t.source):this._getItemsByCategory();return this._updateGrid(e),this.set("isEmpty",0===e.length),{resultsCount:e.length,totalItemsCount:i.length}}_getItemsByQuery(t){return{matchingItems:this._getEmojiByQuery(t),allItems:this.emojiCategories.flatMap((t=>t.items))}}_getItemsByCategory(){const t=this.emojiCategories.find((t=>t.title===this.categoryName)),{items:e}=t;return{matchingItems:e,allItems:e}}_updateGrid(t){[...this.tiles].forEach((t=>{this.focusTracker.remove(t),this.tiles.remove(t)})),t.map((t=>{const e=t.skins[this.skinTone]||t.skins.default;return this.cachedTiles.get(e)||this._createTile(e,t.annotation)})).forEach((t=>{this.tiles.add(t),this.focusTracker.add(t)}))}_createTile(t,e){const i=new En.ButtonView(this.locale);return i.viewUid=t,i.extendTemplate({attributes:{class:["ck-emoji__tile"]}}),i.set({label:t,tooltip:e,withText:!0,ariaLabel:e,ariaLabelledBy:void 0}),i.on("execute",(()=>{this.fire("execute",{name:e,emoji:t})})),this.cachedTiles.add(i),i}}var Dn=i(223),Wn={attributes:{"data-cke":!0}};Wn.setAttributes=Fn(),Wn.insert=In().bind(null,"head"),Wn.domAPI=Sn(),Wn.insertStyleElement=Rn();Pn()(Dn.A,Wn);Dn.A&&Dn.A.locals&&Dn.A.locals;class qn extends En.View{constructor(t,{emojiCategories:i,categoryName:n}){super(t),this.buttonViews=this.createCollection(i.map((t=>this._createCategoryButton(t)))),this.focusTracker=new e.FocusTracker,this.keystrokes=new e.KeystrokeHandler,this.focusCycler=new En.FocusCycler({focusables:this.buttonViews,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowleft",focusNext:"arrowright"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-emoji__categories-list"],role:"tablist"},children:this.buttonViews}),this.on("change:categoryName",((t,e,i,n)=>{const r=this.buttonViews.find((t=>t.tooltip===n));r&&(r.isOn=!1);this.buttonViews.find((t=>t.tooltip===i)).isOn=!0})),this.set("categoryName",n)}render(){super.render(),this.buttonViews.forEach((t=>{this.focusTracker.add(t)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),this.buttonViews.destroy()}focus(){this.buttonViews.first.focus()}enableCategories(){this.buttonViews.forEach((t=>{t.isEnabled=!0}))}disableCategories(){this.buttonViews.forEach((t=>{t.set({class:"",isEnabled:!1,isOn:!1})}))}_createCategoryButton(t){const e=new En.ButtonView,i=e.bindTemplate;return e.extendTemplate({attributes:{"aria-selected":i.to("isOn",(t=>t.toString())),class:["ck-emoji__category-item"]}}),e.set({ariaLabel:t.title,label:t.icon,role:"tab",tooltip:t.title,withText:!0,ariaLabelledBy:void 0}),e.on("execute",(()=>{this.categoryName=t.title})),e.on("change:isEnabled",(()=>{e.isEnabled&&e.tooltip===this.categoryName&&(e.isOn=!0)})),e}}var Un=/[\\^$.*+?()[\]{}|]/g,Kn=RegExp(Un.source);const Hn=function(t){return(t=nn(t))&&Kn.test(t)?t.replace(Un,"\\$&"):t};class Qn extends En.View{constructor(t,{gridView:e,resultsView:i}){super(t),this.gridView=e;const n=t.t;this.inputView=new En.SearchTextView(this.locale,{queryView:{label:n("Find an emoji (min. 2 characters)"),creator:En.createLabeledInputText},filteredView:this.gridView,infoView:{instance:i}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-search"],tabindex:"-1"},children:[this.inputView.queryView]}),this.inputView.delegate("search").to(this)}destroy(){super.destroy(),this.inputView.destroy()}search(t){const e=t?new RegExp(Hn(t),"ig"):null,i=this.gridView.filter(e);this.inputView.fire("search",{query:t,...i})}setInputValue(t){t?this.inputView.queryView.fieldView.value=t:this.inputView.queryView.fieldView.reset()}getInputValue(){return this.inputView.queryView.fieldView.element.value}focus(){this.inputView.focus()}}var Gn=i(59),Jn={attributes:{"data-cke":!0}};Jn.setAttributes=Fn(),Jn.insert=In().bind(null,"head"),Jn.domAPI=Sn(),Jn.insertStyleElement=Rn();Pn()(Gn.A,Jn);Gn.A&&Gn.A.locals&&Gn.A.locals;class Xn extends En.View{constructor(t,{skinTone:i,skinTones:n}){super(t),this.set("skinTone",i),this._skinTones=n;const r=(0,t.t)("Select skin tone"),s=(0,En.createDropdown)(t),o=new e.Collection;for(const{id:t,icon:e,tooltip:i}of this._skinTones){const n={type:"button",model:new En.ViewModel({value:t,label:e,ariaLabel:i,tooltip:i,tooltipPosition:"e",role:"menuitemradio",withText:!0,ariaLabelledBy:void 0})};n.model.bind("isOn").to(this,"skinTone",(e=>e===t)),o.add(n)}(0,En.addListToDropdown)(s,o,{ariaLabel:r,role:"menu"}),s.buttonView.set({label:this._getSkinTone().icon,ariaLabel:r,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:r}),this.dropdownView=s,this.listenTo(s,"execute",(t=>{this.skinTone=t.source.value})),s.buttonView.bind("label").to(this,"skinTone",(()=>this._getSkinTone().icon)),s.buttonView.bind("ariaLabel").to(this,"skinTone",(()=>`${this._getSkinTone().tooltip}, ${r}`)),this.setTemplate({tag:"div",attributes:{class:["ck","ck-emoji__skin-tone"]},children:[s]})}focus(){this.dropdownView.buttonView.focus()}_getSkinTone(){return this._skinTones.find((t=>t.id===this.skinTone))}}class Yn extends En.View{constructor(t,{emojiCategories:i,getEmojiByQuery:n,skinTone:r,skinTones:s}){super(t);const o=i[0].title;this.gridView=new Bn(t,{categoryName:o,emojiCategories:i,getEmojiByQuery:n,skinTone:r}),this.infoView=new En.SearchInfoView,this.searchView=new Qn(t,{gridView:this.gridView,resultsView:this.infoView}),this.categoriesView=new qn(t,{emojiCategories:i,categoryName:o}),this.toneView=new Xn(t,{skinTone:r,skinTones:s}),this.items=this.createCollection([this.searchView,this.toneView,this.categoriesView,this.gridView,this.infoView]),this.focusTracker=new e.FocusTracker,this.keystrokes=new e.KeystrokeHandler,this.focusCycler=new En.FocusCycler({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",children:[{tag:"div",children:[this.searchView,this.toneView],attributes:{class:["ck","ck-emoji__search"]}},this.categoriesView,this.gridView,{tag:"div",children:[this.infoView],attributes:{class:["ck","ck-search__results"]}}],attributes:{tabindex:"-1",class:["ck","ck-emoji","ck-search"]}}),this._setupEventListeners()}render(){super.render(),this.focusTracker.add(this.searchView.element),this.focusTracker.add(this.toneView.element),this.focusTracker.add(this.categoriesView.element),this.focusTracker.add(this.gridView.element),this.focusTracker.add(this.infoView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.searchView.focus()}_setupEventListeners(){const t=this.locale.t;this.searchView.on("search",((t,e)=>{e.query?this.categoriesView.disableCategories():this.categoriesView.enableCategories()})),this.searchView.on("search",((e,i)=>{1===i.query.length?this.infoView.set({primaryText:t("Keep on typing to see the emoji."),secondaryText:t("The query must contain at least two characters."),isVisible:!0}):i.resultsCount?this.infoView.set({isVisible:!1}):this.infoView.set({primaryText:t('No emojis were found matching "%0".',i.query),secondaryText:t("Please try a different phrase or check the spelling."),isVisible:!0})})),this.searchView.on("search",(()=>{this.fire("update")})),this.categoriesView.on("change:categoryName",((t,e,i)=>{this.gridView.categoryName=i,this.searchView.search("")})),this.toneView.on("change:skinTone",((t,e,i)=>{this.gridView.skinTone=i,this.searchView.search(this.searchView.getInputValue())}))}}var Zn=i(913),tr={attributes:{"data-cke":!0}};tr.setAttributes=Fn(),tr.insert=In().bind(null,"head"),tr.domAPI=Sn(),tr.insertStyleElement=Rn();Pn()(Zn.A,tr);Zn.A&&Zn.A.locals&&Zn.A.locals;const er="emoji-picker";class ir extends t.Plugin{static get requires(){return[wn,En.ContextualBalloon,En.Dialog,r.Typing]}static get pluginName(){return"EmojiPicker"}static get isOfficialPlugin(){return!0}async init(){const t=this.editor;if(this._balloonPlugin=t.plugins.get("ContextualBalloon"),this._emojiRepositoryPlugin=t.plugins.get("EmojiRepository"),!await this._emojiRepositoryPlugin.isReady())return;const e=new Tn(t);t.commands.add("emoji",e),t.ui.componentFactory.add("emoji",(()=>{const t=this._createButton(En.ButtonView,e);return t.set({tooltip:!0}),t})),t.ui.componentFactory.add("menuBar:emoji",(()=>this._createButton(En.MenuBarMenuListItemButtonView,e))),this._setupConversion()}destroy(){super.destroy(),this.emojiPickerView&&this.emojiPickerView.destroy()}get skinTone(){return this.emojiPickerView?this.emojiPickerView.gridView.skinTone:this.editor.config.get("emoji.skinTone")}showUI(t=""){this._showFakeVisualSelection(),this.emojiPickerView||(this.emojiPickerView=this._createEmojiPickerView()),t&&this.emojiPickerView.searchView.setInputValue(t),this.emojiPickerView.searchView.search(t),this._balloonPlugin.hasView(this.emojiPickerView)||this._balloonPlugin.add({view:this.emojiPickerView,position:this._getBalloonPositionData()}),this.emojiPickerView.focus()}_createButton(e,i){const n=new e(this.editor.locale),r=this.editor.locale.t;return n.bind("isEnabled").to(i,"isEnabled"),n.set({label:r("Emoji"),icon:t.icons.emoji,isToggleable:!0}),n.on("execute",(()=>{this.showUI()})),n}_createEmojiPickerView(){const t=new Yn(this.editor.locale,{emojiCategories:this._emojiRepositoryPlugin.getEmojiCategories(),skinTone:this.editor.config.get("emoji.skinTone"),skinTones:this._emojiRepositoryPlugin.getSkinTones(),getEmojiByQuery:t=>this._emojiRepositoryPlugin.getEmojiByQuery(t)});return this.listenTo(t.gridView,"execute",((t,e)=>{const i=this.editor,n=e.emoji;this._hideUI(),i.execute("insertText",{text:n})})),this.listenTo(t,"update",(()=>{this._balloonPlugin.visibleView===t&&this._balloonPlugin.updatePosition()})),t.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),(0,En.clickOutsideHandler)({emitter:t,contextElements:[this._balloonPlugin.view.element],callback:()=>this._hideUI(),activator:()=>this._balloonPlugin.visibleView===t}),t}_hideUI(){this._balloonPlugin.remove(this.emojiPickerView),this.emojiPickerView.searchView.setInputValue(""),this.editor.editing.view.focus(),this._hideFakeVisualSelection()}_setupConversion(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:er,view:{classes:["ck-fake-emoji-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:er,view:(t,{writer:e})=>{if(!t.markerRange.isCollapsed)return null;const i=e.createUIElement("span");return e.addClass(["ck-fake-emoji-selection","ck-fake-emoji-selection_collapsed"],i),i}})}_getBalloonPositionData(){const t=this.editor.editing.view,e=t.document;return{target:()=>t.domConverter.viewRangeToDom(e.selection.getFirstRange())}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const i=t.document.selection.getFirstRange();if(t.markers.has(er))e.updateMarker(er,{range:i});else if(i.start.isAtEnd){const n=i.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:i});e.addMarker(er,{usingOperation:!1,affectsData:!1,range:e.createRange(n,i.end)})}else e.addMarker(er,{usingOperation:!1,affectsData:!1,range:i})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has(er)&&t.change((t=>{t.removeMarker(er)}))}}class nr extends t.Plugin{static get requires(){return[Mn,ir]}static get pluginName(){return"Emoji"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).emoji=n})();
@@ -0,0 +1,32 @@
1
+ {
2
+ "plugins": [
3
+ {
4
+ "name": "Emoji",
5
+ "className": "Emoji",
6
+ "description": "Allows for inserting emojis via a dropdown or by typing `:` followed by emoji name.",
7
+ "path": "src/emoji.js",
8
+ "docs": "features/emoji.html"
9
+ },
10
+ {
11
+ "name": "Emoji mention",
12
+ "className": "EmojiMention",
13
+ "description": "Allows for inserting emojis by typing `:` followed by emoji name.",
14
+ "path": "src/emojimention.js",
15
+ "docs": "features/emoji.html"
16
+ },
17
+ {
18
+ "name": "Emoji picker",
19
+ "className": "EmojiPicker",
20
+ "description": "Allows for inserting emojis via a dropdown.",
21
+ "path": "src/emojipicker.js",
22
+ "docs": "features/emoji.html",
23
+ "uiComponents": [
24
+ {
25
+ "type": "Button",
26
+ "name": "emoji",
27
+ "iconPath": "@ckeditor/ckeditor5-core/theme/icons/emoji.svg"
28
+ }
29
+ ]
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ :root{
6
+ --ck-emoji-grid-tile-size:27px;
7
+ }
8
+
9
+ .ck.ck-emoji .ck.ck-emoji__tiles{
10
+ max-width:100%;
11
+ max-height:265px;
12
+
13
+ overflow-y:auto;
14
+ overflow-x:hidden;
15
+ border-top:1px solid var(--ck-color-base-border);
16
+ }
17
+
18
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid{
19
+ display:grid;
20
+ grid-template-columns:repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));
21
+ margin:var(--ck-spacing-standard) var(--ck-spacing-large);
22
+ grid-gap:var(--ck-spacing-small);
23
+ }
24
+
25
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{
26
+ width:var(--ck-emoji-grid-tile-size);
27
+ height:var(--ck-emoji-grid-tile-size);
28
+ min-width:var(--ck-emoji-grid-tile-size);
29
+ min-height:var(--ck-emoji-grid-tile-size);
30
+ font-size:1.5em;
31
+ padding:0;
32
+ transition:.2s ease box-shadow;
33
+ border:0;
34
+ }
35
+
36
+ @media (prefers-reduced-motion: reduce){
37
+
38
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{
39
+ transition:none;
40
+ }
41
+ }
42
+
43
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),
44
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled){
45
+ border:0;
46
+ box-shadow:inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
47
+ }
48
+
49
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label{
50
+ line-height:var(--ck-emoji-grid-tile-size);
51
+ width:100%;
52
+ text-align:center;
53
+ }
54
+
55
+ .ck.ck-emoji__categories-list{
56
+ display:flex;
57
+ justify-content:space-between;
58
+ margin:0 var(--ck-spacing-large);
59
+ }
60
+
61
+ .ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text{
62
+ border-width:0;
63
+ border-bottom-width:2px;
64
+ border-bottom-style:solid;
65
+ border-bottom-color:transparent;
66
+ padding:0;
67
+ font-size:var(--ck-font-size-big);
68
+ min-width:var(--ck-font-size-big);
69
+ min-height:var(--ck-font-size-big);
70
+ }
71
+
72
+ .ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on{
73
+ border-bottom-color:var(--ck-color-base-active);
74
+ }
75
+
76
+ .ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text > span{
77
+ margin:auto;
78
+ }
79
+
80
+ .ck.ck-emoji__skin-tone{
81
+ margin-left:var(--ck-spacing-standard);
82
+ }
83
+
84
+ .ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck.ck-list__item{
85
+ min-width:1em;
86
+ }
87
+
88
+ .ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{
89
+ width:initial;
90
+ }
91
+
92
+ .ck.ck-emoji{
93
+ width:320px;
94
+ }
95
+
96
+ .ck .ck.ck-emoji__search{
97
+ display:flex;
98
+ padding:var(--ck-spacing-large);
99
+ padding-bottom:var(--ck-spacing-medium);
100
+ justify-content:space-between;
101
+ align-items:center;
102
+ }
103
+ .ck .ck-fake-emoji-selection{
104
+ background:var(--ck-color-link-fake-selection);
105
+ }
106
+ .ck .ck-fake-emoji-selection_collapsed{
107
+ height:100%;
108
+ border-right:1px solid var(--ck-color-base-text);
109
+ margin-right:-1px;
110
+ outline:solid 1px hsla(0, 0%, 100%, .5);
111
+ }
package/dist/index.css ADDED
@@ -0,0 +1,143 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /*
6
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
+ */
9
+
10
+ :root {
11
+ --ck-emoji-grid-tile-size: 27px;
12
+ }
13
+
14
+ .ck.ck-emoji .ck.ck-emoji__tiles {
15
+ max-width: 100%;
16
+ max-height: 265px;
17
+
18
+ overflow-y: auto;
19
+ overflow-x: hidden;
20
+ border-top: 1px solid var(--ck-color-base-border);
21
+ }
22
+
23
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid {
24
+ display: grid;
25
+ grid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));
26
+ margin: var(--ck-spacing-standard) var(--ck-spacing-large);
27
+ grid-gap: var(--ck-spacing-small);
28
+ }
29
+
30
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
31
+ width: var(--ck-emoji-grid-tile-size);
32
+ height: var(--ck-emoji-grid-tile-size);
33
+ min-width: var(--ck-emoji-grid-tile-size);
34
+ min-height: var(--ck-emoji-grid-tile-size);
35
+ font-size: 1.5em;
36
+ padding: 0;
37
+ transition: .2s ease box-shadow;
38
+ border: 0;
39
+ }
40
+
41
+ @media (prefers-reduced-motion: reduce) {
42
+
43
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
44
+ transition: none;
45
+ }
46
+ }
47
+
48
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),
49
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled) {
50
+ /* Disable the default .ck-button's border ring. */
51
+ border: 0;
52
+ box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
53
+ }
54
+
55
+ /* Make sure the glyph is rendered in the center of the button */
56
+
57
+ .ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label {
58
+ line-height: var(--ck-emoji-grid-tile-size);
59
+ width: 100%;
60
+ text-align: center;
61
+ }
62
+
63
+ /*
64
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
65
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
66
+ */
67
+
68
+ .ck.ck-emoji__categories-list {
69
+ display: flex;
70
+ justify-content: space-between;
71
+ margin: 0 var(--ck-spacing-large);
72
+ }
73
+
74
+ .ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text {
75
+ border-width: 0;
76
+ border-bottom-width: 2px;
77
+ border-bottom-style: solid;
78
+ border-bottom-color: transparent;
79
+ padding: 0;
80
+ font-size: var(--ck-font-size-big);
81
+ min-width: var(--ck-font-size-big);
82
+ min-height: var(--ck-font-size-big);
83
+ }
84
+
85
+ .ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on {
86
+ border-bottom-color: var(--ck-color-base-active);
87
+ }
88
+
89
+ .ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text > span {
90
+ margin: auto;
91
+ }
92
+
93
+ /*
94
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
95
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
96
+ */
97
+
98
+ .ck.ck-emoji__skin-tone {
99
+ margin-left: var(--ck-spacing-standard);
100
+ }
101
+
102
+ .ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck.ck-list__item {
103
+ min-width: 1em;
104
+ }
105
+
106
+ .ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
107
+ width: initial;
108
+ }
109
+
110
+ /*
111
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
112
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
113
+ */
114
+
115
+ .ck.ck-emoji {
116
+ width: 320px;
117
+ }
118
+
119
+ .ck .ck.ck-emoji__search {
120
+ display: flex;
121
+ padding: var(--ck-spacing-large);
122
+ padding-bottom: var(--ck-spacing-medium);
123
+ justify-content: space-between;
124
+ align-items: center;
125
+ }
126
+
127
+ /*
128
+ * Classes used by the "fake visual selection" displayed in the content when an input
129
+ * in the emoji picker UI has focus (the browser does not render the native selection in this state).
130
+ */
131
+ .ck .ck-fake-emoji-selection {
132
+ background: var(--ck-color-link-fake-selection);
133
+ }
134
+
135
+ /* A collapsed fake visual selection. */
136
+ .ck .ck-fake-emoji-selection_collapsed {
137
+ height: 100%;
138
+ border-right: 1px solid var(--ck-color-base-text);
139
+ margin-right: -1px;
140
+ outline: solid 1px hsla(0, 0%, 100%, .5);
141
+ }
142
+
143
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../theme/emojigrid.css","index.css","../theme/emojicategories.css","../theme/emojitone.css","../theme/emojipicker.css"],"names":[],"mappings":"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","file":"index.css.map","sourcesContent":["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-emoji-grid-tile-size: 27px;\n}\n\n.ck.ck-emoji {\n\t& .ck.ck-emoji__tiles {\n\t\tmax-width: 100%;\n\t\tmax-height: 265px;\n\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t& .ck-emoji__grid {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\t\t\tgrid-gap: var(--ck-spacing-small);\n\t\t}\n\n\t\t& .ck-emoji__tile {\n\t\t\twidth: var(--ck-emoji-grid-tile-size);\n\t\t\theight: var(--ck-emoji-grid-tile-size);\n\t\t\tmin-width: var(--ck-emoji-grid-tile-size);\n\t\t\tmin-height: var(--ck-emoji-grid-tile-size);\n\t\t\tfont-size: 1.5em;\n\t\t\tpadding: 0;\n\t\t\ttransition: .2s ease box-shadow;\n\t\t\tborder: 0;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-disabled),\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\t/* Disable the default .ck-button's border ring. */\n\t\t\t\tborder: 0;\n\t\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t\t}\n\n\t\t\t/* Make sure the glyph is rendered in the center of the button */\n\t\t\t& .ck-button__label {\n\t\t\t\tline-height: var(--ck-emoji-grid-tile-size);\n\t\t\t\twidth: 100%;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-emoji-grid-tile-size: 27px;\n}\n\n.ck.ck-emoji .ck.ck-emoji__tiles {\n\t\tmax-width: 100%;\n\t\tmax-height: 265px;\n\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t}\n\n.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\t\t\tgrid-gap: var(--ck-spacing-small);\n\t\t}\n\n.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {\n\t\t\twidth: var(--ck-emoji-grid-tile-size);\n\t\t\theight: var(--ck-emoji-grid-tile-size);\n\t\t\tmin-width: var(--ck-emoji-grid-tile-size);\n\t\t\tmin-height: var(--ck-emoji-grid-tile-size);\n\t\t\tfont-size: 1.5em;\n\t\t\tpadding: 0;\n\t\t\ttransition: .2s ease box-shadow;\n\t\t\tborder: 0;\n\t\t}\n\n@media (prefers-reduced-motion: reduce) {\n\n.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {\n\t\t\t\ttransition: none;\n\t\t}\n\t\t\t}\n\n.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),\n\t\t\t.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled) {\n\t\t\t\t/* Disable the default .ck-button's border ring. */\n\t\t\t\tborder: 0;\n\t\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t\t}\n\n/* Make sure the glyph is rendered in the center of the button */\n\n.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label {\n\t\t\t\tline-height: var(--ck-emoji-grid-tile-size);\n\t\t\t\twidth: 100%;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\n/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-emoji__categories-list {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tmargin: 0 var(--ck-spacing-large);\n}\n\n.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text {\n\t\tborder-width: 0;\n\t\tborder-bottom-width: 2px;\n\t\tborder-bottom-style: solid;\n\t\tborder-bottom-color: transparent;\n\t\tpadding: 0;\n\t\tfont-size: var(--ck-font-size-big);\n\t\tmin-width: var(--ck-font-size-big);\n\t\tmin-height: var(--ck-font-size-big);\n\t}\n\n.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on {\n\t\t\tborder-bottom-color: var(--ck-color-base-active);\n\t\t}\n\n.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text > span {\n\t\t\tmargin: auto;\n\t\t}\n\n/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-emoji__skin-tone {\n\tmargin-left: var(--ck-spacing-standard);\n}\n\n.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck.ck-list__item {\n\t\t\tmin-width: 1em;\n\t\t}\n\n.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {\n\t\t\t\twidth: initial;\n\t\t\t}\n\n/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-emoji {\n\twidth: 320px;\n}\n\n.ck .ck.ck-emoji__search {\n\tdisplay: flex;\n\tpadding: var(--ck-spacing-large);\n\tpadding-bottom: var(--ck-spacing-medium);\n\tjustify-content: space-between;\n\talign-items: center;\n}\n\n/*\n * Classes used by the \"fake visual selection\" displayed in the content when an input\n * in the emoji picker UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-emoji-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-emoji-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n\n/*# sourceMappingURL=index.css.map */","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-emoji__categories-list {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tmargin: 0 var(--ck-spacing-large);\n\n\t> .ck.ck-button.ck-button_with-text {\n\t\tborder-width: 0;\n\t\tborder-bottom-width: 2px;\n\t\tborder-bottom-style: solid;\n\t\tborder-bottom-color: transparent;\n\t\tpadding: 0;\n\t\tfont-size: var(--ck-font-size-big);\n\t\tmin-width: var(--ck-font-size-big);\n\t\tmin-height: var(--ck-font-size-big);\n\n\t\t&.ck-emoji__category-item.ck-on {\n\t\t\tborder-bottom-color: var(--ck-color-base-active);\n\t\t}\n\n\t\t> span {\n\t\t\tmargin: auto;\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-emoji__skin-tone {\n\tmargin-left: var(--ck-spacing-standard);\n\n\t> .ck.ck-dropdown {\n\n\t\t.ck.ck-list__item {\n\t\t\tmin-width: 1em;\n\t\t}\n\n\t\t.ck-button.ck-dropdown__button {\n\t\t\t.ck-button__label {\n\t\t\t\twidth: initial;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-emoji {\n\twidth: 320px;\n}\n\n.ck .ck.ck-emoji__search {\n\tdisplay: flex;\n\tpadding: var(--ck-spacing-large);\n\tpadding-bottom: var(--ck-spacing-medium);\n\tjustify-content: space-between;\n\talign-items: center;\n}\n\n/*\n * Classes used by the \"fake visual selection\" displayed in the content when an input\n * in the emoji picker UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-emoji-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-emoji-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n"]}