@omegagrid/markdown 0.10.59 → 0.10.61

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 (34) hide show
  1. package/dist/components/features/blockEditMenu.d.ts +1 -0
  2. package/dist/components/features/blockEditMenu.d.ts.map +1 -1
  3. package/dist/components/features/blockEditMenu.js +2 -2
  4. package/dist/components/features/blockEditMenu.js.map +1 -1
  5. package/dist/components/features/calloutBlock.d.ts +11 -0
  6. package/dist/components/features/calloutBlock.d.ts.map +1 -0
  7. package/dist/components/features/calloutBlock.js +1 -0
  8. package/dist/components/features/calloutBlock.js.map +1 -0
  9. package/dist/components/features/emojiPicker.d.ts +12 -0
  10. package/dist/components/features/emojiPicker.d.ts.map +1 -0
  11. package/dist/components/features/emojiPicker.js +92 -0
  12. package/dist/components/features/emojiPicker.js.map +1 -0
  13. package/dist/components/features/index.d.ts +4 -1
  14. package/dist/components/features/index.d.ts.map +1 -1
  15. package/dist/components/features/index.js +1 -1
  16. package/dist/components/features/index.js.map +1 -1
  17. package/dist/components/features/utils.d.ts +1 -0
  18. package/dist/components/features/utils.d.ts.map +1 -1
  19. package/dist/components/features/utils.js +1 -1
  20. package/dist/components/features/utils.js.map +1 -1
  21. package/dist/components/markdownEditor.style.d.ts.map +1 -1
  22. package/dist/components/markdownEditor.style.js +11 -3
  23. package/dist/components/markdownEditor.style.js.map +1 -1
  24. package/dist/components/markdownView.style.d.ts.map +1 -1
  25. package/dist/components/markdownView.style.js +11 -3
  26. package/dist/components/markdownView.style.js.map +1 -1
  27. package/dist/components/styles/callout.d.ts +2 -0
  28. package/dist/components/styles/callout.d.ts.map +1 -0
  29. package/dist/components/styles/callout.js +56 -0
  30. package/dist/components/styles/callout.js.map +1 -0
  31. package/dist/components/styles/index.d.ts.map +1 -1
  32. package/dist/components/styles/index.js +1 -1
  33. package/dist/components/styles/index.js.map +1 -1
  34. package/package.json +6 -6
@@ -4,6 +4,7 @@ import { MenuItem } from "@omegagrid/core";
4
4
  import type * as milkdown from '@omegagrid/milkdown-kit';
5
5
  type BlockMenuItem = MenuItem & {
6
6
  onRun?: (ctx: milkdown.ctx.Ctx) => void;
7
+ openPicker?: boolean;
7
8
  };
8
9
  export declare class BlockEditMenu extends LitElement {
9
10
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"blockEditMenu.d.ts","sourceRoot":"","sources":["../../../src/components/features/blockEditMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAY,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAkD,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAChG,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAWzD,KAAK,aAAa,GAAG,QAAQ,GAAG;IAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAA;CAAC,CAAC;AAoK1E,qBACa,aAAc,SAAQ,UAAU;;IAE5C,MAAM,CAAC,MAAM,0BAkBX;IAKF,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IAGtB,EAAE,EAAE,OAAO,QAAQ,CAAC;IAGpB,IAAI,SAAS,oBAA6E;IAG1F,IAAI,KAAK,cAA0D;IAmCnE,MAAM,wCAMJ;CACF"}
1
+ {"version":3,"file":"blockEditMenu.d.ts","sourceRoot":"","sources":["../../../src/components/features/blockEditMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAY,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAkD,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAChG,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAYzD,KAAK,aAAa,GAAG,QAAQ,GAAG;IAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAC,CAAC;AAwLhG,qBACa,aAAc,SAAQ,UAAU;;IAE5C,MAAM,CAAC,MAAM,0BAkBX;IAKF,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IAGtB,EAAE,EAAE,OAAO,QAAQ,CAAC;IAGpB,IAAI,SAAS,oBAA6E;IAG1F,IAAI,KAAK,cAA0D;IA2DnE,MAAM,wCAMJ;CACF"}
@@ -1,10 +1,10 @@
1
- var _BlockEditMenu_menu,_BlockEditMenu_menuItems,_BlockEditMenu_items,_BlockEditMenu_createComponent,_BlockEditMenu_onTabSelect,__decorate=this&&this.__decorate||function(e,t,o,i){var n,s=arguments.length,c=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(c=(s<3?n(c):s>3?n(t,o,c):n(t,o))||c);return s>3&&c&&Object.defineProperty(t,o,c),c},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,o,i){if("a"===o&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?i:"a"===o?i.call(e):i?i.value:t.get(e)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,o,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,o):n?n.value=o:t.set(e,o),o};import{LitElement,css,html}from"lit";import{customElement,property}from"lit/decorators.js";import{msg}from"@omegagrid/localize";import{dom}from"@omegagrid/core";import{addBlockType,clearContentAndAddBlockType,clearContentAndSetBlockType,clearContentAndWrapInBlockType,clearRange}from"./utils";const createItems=()=>[{id:"sectionText",title:msg("Text")},{id:"sectionList",title:msg("List")},{id:"sectionAdvanced",title:msg("Advanced")}],createMenuItems=e=>[{key:"sectionText",value:msg("Text"),divider:!0,type:"label"},{key:"text",value:msg("Text"),icon:"text",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndSetBlockType(e.presets.commonmark.paragraphSchema.type(t))(n,i)}},...new Array(6).fill(0).map(((t,o)=>({key:`square${o+1}`,value:msg("Heading")+(o+1),icon:`square-${o+1}`,onRun:t=>{const i=t.get(e.core.editorViewCtx),{dispatch:n,state:s}=i;clearContentAndSetBlockType(e.presets.commonmark.headingSchema.type(t),{level:o+1})(s,n)}}))),{key:"quote",value:msg("Quote"),icon:"quote-right",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.blockquoteSchema.type(t))(n,i)}},{key:"divider",value:msg("Divider"),icon:"horizontal-rule",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.presets.commonmark.hrSchema.type(t))(n,i)}},{key:"sectionList",value:msg("List"),divider:!0,type:"label"},{key:"bulletList",value:msg("Bullet List"),icon:"list",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.bulletListSchema.type(t))(n,i)}},{key:"orderedList",value:msg("Ordered List"),icon:"list-ol",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.orderedListSchema.type(t))(n,i)}},{key:"todoList",value:msg("Todo List"),icon:"list-check",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.listItemSchema.type(t),{checked:!1})(n,i)}},{key:"sectionAdvanced",value:msg("Advanced"),divider:!0,type:"label"},{key:"blockImage",value:msg("Block Image"),icon:"image",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.components.imageBlock.imageBlockSchema.type(t))(n,i)}},{key:"inlineImage",value:msg("Inline Image"),icon:"image",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.presets.commonmark.imageSchema.type(t))(n,i)}},{key:"html",value:msg("Raw HTML"),icon:"code",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o,s=addBlockType(clearRange(n.tr),e.presets.commonmark.htmlSchema.type(t),null);i(s.scrollIntoView()),requestAnimationFrame((()=>{const e=o.domAtPos(s.selection.$anchor.pos)?.node;if(e){const t=e.querySelector("og-markdown-html-block");t?.startEdit()}}))}},{key:"code",value:msg("Code"),icon:"code",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.presets.commonmark.codeBlockSchema.type(t))(n,i)}},{key:"table",value:msg("Table"),icon:"table",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o,s=clearRange(n.tr),c=e.presets.gfm.createTable(t,3,3);s.replaceSelectionWith(c);const{from:a}=s.selection,r=a-c.nodeSize+2;i(s),requestAnimationFrame((()=>{const t=e.prose.state.NodeSelection.create(o.state.tr.doc,r);i(o.state.tr.setSelection(t).scrollIntoView())}))}},{key:"toc",value:msg("Table of Contents"),icon:"list-tree",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o,s=n.schema.nodes.toc;s&&clearContentAndAddBlockType(s)(n,i)}}];let BlockEditMenu=class extends LitElement{constructor(){super(...arguments),_BlockEditMenu_menu.set(this,void 0),_BlockEditMenu_menuItems.set(this,void 0),_BlockEditMenu_items.set(this,void 0),_BlockEditMenu_createComponent.set(this,(e=>{if(!__classPrivateFieldGet(this,_BlockEditMenu_menu,"f")){const e=this.menuItems;__classPrivateFieldSet(this,_BlockEditMenu_menu,dom.createElement("og-menu"),"f"),__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").dynamicWidth=!1,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").disabledFocus=!0,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.width="100%",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.height="100%",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.border="none",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").items=e,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").addEventListener("menu.select",(t=>{const o=e.find((e=>e.key===t.item.key));o?.onRun&&(o.onRun(this.ctx),this.dispatchEvent(new Event("run")))})),__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").addEventListener("mousedown",(e=>{e.stopPropagation(),e.preventDefault()}))}return __classPrivateFieldGet(this,_BlockEditMenu_menu,"f")})),_BlockEditMenu_onTabSelect.set(this,(e=>{if(__classPrivateFieldGet(this,_BlockEditMenu_menu,"f")?.list){const t=this.menuItems.findIndex((t=>t.key===e.tab.id));t>-1&&__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").list.scrollToIndex(t)}})),this.render=()=>html`
1
+ var _BlockEditMenu_menu,_BlockEditMenu_menuItems,_BlockEditMenu_items,_BlockEditMenu_createComponent,_BlockEditMenu_onTabSelect,_BlockEditMenu_emojiPicker,_BlockEditMenu_showEmojiPicker,__decorate=this&&this.__decorate||function(e,t,o,i){var n,c=arguments.length,s=c<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,i);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(c<3?n(s):c>3?n(t,o,s):n(t,o))||s);return c>3&&s&&Object.defineProperty(t,o,s),s},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,o,i){if("a"===o&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?i:"a"===o?i.call(e):i?i.value:t.get(e)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,o,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,o):n?n.value=o:t.set(e,o),o};import{LitElement,css,html}from"lit";import{customElement,property}from"lit/decorators.js";import{msg}from"@omegagrid/localize";import{dom}from"@omegagrid/core";import{addBlockType,clearContentAndAddBlockType,clearContentAndSetBlockType,clearContentAndWrapInBlockType,clearRange}from"./utils";const createItems=()=>[{id:"sectionText",title:msg("Text")},{id:"sectionList",title:msg("List")},{id:"sectionAdvanced",title:msg("Advanced")}],wrapInSchemaNode=(e,t,o)=>i=>{const n=i.get(e.core.editorViewCtx),{dispatch:c,state:s}=n,a=s.schema.nodes[t];a&&clearContentAndWrapInBlockType(a,o)(s,c)},createMenuItems=e=>[{key:"sectionText",value:msg("Text"),divider:!0,type:"label"},{key:"text",value:msg("Text"),icon:"text",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndSetBlockType(e.presets.commonmark.paragraphSchema.type(t))(n,i)}},...new Array(6).fill(0).map(((t,o)=>({key:`square${o+1}`,value:msg("Heading")+(o+1),icon:`square-${o+1}`,onRun:t=>{const i=t.get(e.core.editorViewCtx),{dispatch:n,state:c}=i;clearContentAndSetBlockType(e.presets.commonmark.headingSchema.type(t),{level:o+1})(c,n)}}))),{key:"divider",value:msg("Divider"),icon:"horizontal-rule",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.presets.commonmark.hrSchema.type(t))(n,i)}},{key:"quote",value:msg("Quote"),icon:"quote-right",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.blockquoteSchema.type(t))(n,i)}},{key:"calloutNote",value:msg("Callout"),icon:"circle-info",onRun:wrapInSchemaNode(e,"callout",{kind:"note"})},{key:"sectionList",value:msg("List"),divider:!0,type:"label"},{key:"bulletList",value:msg("Bullet List"),icon:"list",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.bulletListSchema.type(t))(n,i)}},{key:"orderedList",value:msg("Ordered List"),icon:"list-ol",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.orderedListSchema.type(t))(n,i)}},{key:"todoList",value:msg("Todo List"),icon:"list-check",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndWrapInBlockType(e.presets.commonmark.listItemSchema.type(t),{checked:!1})(n,i)}},{key:"sectionAdvanced",value:msg("Advanced"),divider:!0,type:"label"},{key:"blockImage",value:msg("Block Image"),icon:"image",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.components.imageBlock.imageBlockSchema.type(t))(n,i)}},{key:"inlineImage",value:msg("Inline Image"),icon:"image",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.presets.commonmark.imageSchema.type(t))(n,i)}},{key:"emoji",value:msg("Emoji"),icon:"face-smile",openPicker:!0},{key:"html",value:msg("Raw HTML"),icon:"code",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o,c=addBlockType(clearRange(n.tr),e.presets.commonmark.htmlSchema.type(t),null);i(c.scrollIntoView()),requestAnimationFrame((()=>{const e=o.domAtPos(c.selection.$anchor.pos)?.node;if(e){const t=e.querySelector("og-markdown-html-block");t?.startEdit()}}))}},{key:"code",value:msg("Code"),icon:"code",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o;clearContentAndAddBlockType(e.presets.commonmark.codeBlockSchema.type(t))(n,i)}},{key:"table",value:msg("Table"),icon:"table",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o,c=clearRange(n.tr),s=e.presets.gfm.createTable(t,3,3);c.replaceSelectionWith(s);const{from:a}=c.selection,l=a-s.nodeSize+2;i(c),requestAnimationFrame((()=>{const t=e.prose.state.NodeSelection.create(o.state.tr.doc,l);i(o.state.tr.setSelection(t).scrollIntoView())}))}},{key:"toc",value:msg("Table of Contents"),icon:"list-tree",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:i,state:n}=o,c=n.schema.nodes.toc;c&&clearContentAndAddBlockType(c)(n,i)}}];let BlockEditMenu=class extends LitElement{constructor(){super(...arguments),_BlockEditMenu_menu.set(this,void 0),_BlockEditMenu_menuItems.set(this,void 0),_BlockEditMenu_items.set(this,void 0),_BlockEditMenu_createComponent.set(this,(e=>{if(!__classPrivateFieldGet(this,_BlockEditMenu_menu,"f")){const e=this.menuItems;__classPrivateFieldSet(this,_BlockEditMenu_menu,dom.createElement("og-menu"),"f"),__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").dynamicWidth=!1,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").disabledFocus=!0,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.width="100%",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.height="100%",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.border="none",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").items=e,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").addEventListener("menu.select",(t=>{const o=e.find((e=>e.key===t.item.key));o?.openPicker?__classPrivateFieldGet(this,_BlockEditMenu_showEmojiPicker,"f").call(this):o?.onRun&&(o.onRun(this.ctx),this.dispatchEvent(new Event("run")))})),__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").addEventListener("mousedown",(e=>{e.stopPropagation(),e.preventDefault()}))}return __classPrivateFieldGet(this,_BlockEditMenu_menu,"f")})),_BlockEditMenu_onTabSelect.set(this,(e=>{if(__classPrivateFieldGet(this,_BlockEditMenu_menu,"f")?.list){const t=this.menuItems.findIndex((t=>t.key===e.tab.id));t>-1&&__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").list.scrollToIndex(t)}})),_BlockEditMenu_emojiPicker.set(this,void 0),_BlockEditMenu_showEmojiPicker.set(this,(()=>{const e=this.offsetTop,t=this.offsetLeft;this.dispatchEvent(new Event("run")),__classPrivateFieldGet(this,_BlockEditMenu_emojiPicker,"f")||(__classPrivateFieldSet(this,_BlockEditMenu_emojiPicker,dom.createElement("og-markdown-emoji-picker"),"f"),document.body.appendChild(__classPrivateFieldGet(this,_BlockEditMenu_emojiPicker,"f")));const o=__classPrivateFieldGet(this,_BlockEditMenu_emojiPicker,"f");o.ctx=this.ctx,o.md=this.md,dom.showElement(o),dom.setPosition(o,{t:e,l:t}),document.addEventListener("mousedown",(()=>dom.hideElement(o)),{once:!0})})),this.render=()=>html`
2
2
  <og-tabcontainer
3
3
  .createComponent="${__classPrivateFieldGet(this,_BlockEditMenu_createComponent,"f")}"
4
4
  .items="${this.items}"
5
5
  @tab.select="${__classPrivateFieldGet(this,_BlockEditMenu_onTabSelect,"f")}">
6
6
  </og-tabcontainer>
7
- `}get menuItems(){return __classPrivateFieldGet(this,_BlockEditMenu_menuItems,"f")??__classPrivateFieldSet(this,_BlockEditMenu_menuItems,createMenuItems(this.md),"f")}get items(){return __classPrivateFieldGet(this,_BlockEditMenu_items,"f")??__classPrivateFieldSet(this,_BlockEditMenu_items,createItems(),"f")}};_BlockEditMenu_menu=new WeakMap,_BlockEditMenu_menuItems=new WeakMap,_BlockEditMenu_items=new WeakMap,_BlockEditMenu_createComponent=new WeakMap,_BlockEditMenu_onTabSelect=new WeakMap,BlockEditMenu.styles=css`
7
+ `}get menuItems(){return __classPrivateFieldGet(this,_BlockEditMenu_menuItems,"f")??__classPrivateFieldSet(this,_BlockEditMenu_menuItems,createMenuItems(this.md),"f")}get items(){return __classPrivateFieldGet(this,_BlockEditMenu_items,"f")??__classPrivateFieldSet(this,_BlockEditMenu_items,createItems(),"f")}};_BlockEditMenu_menu=new WeakMap,_BlockEditMenu_menuItems=new WeakMap,_BlockEditMenu_items=new WeakMap,_BlockEditMenu_createComponent=new WeakMap,_BlockEditMenu_onTabSelect=new WeakMap,_BlockEditMenu_emojiPicker=new WeakMap,_BlockEditMenu_showEmojiPicker=new WeakMap,BlockEditMenu.styles=css`
8
8
  * {
9
9
  box-sizing: border-box;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"blockEditMenu.js","sourceRoot":"","sources":["../../../src/components/features/blockEditMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { TabItem, TabEvent } from \"@omegagrid/tabs\";\nimport { msg } from \"@omegagrid/localize\";\nimport { ComponentFactory, ComponentId, Menu, MenuEvent, MenuItem, dom } from \"@omegagrid/core\";\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { addBlockType, clearContentAndAddBlockType, clearContentAndSetBlockType, clearContentAndWrapInBlockType, clearRange } from \"./utils\";\nimport { HtmlBlockComponent } from \"./htmlBlock\";\n\n\nconst createItems = (): TabItem[] => [\n\t{id: 'sectionText', title: msg('Text')},\n\t{id: 'sectionList', title: msg('List')},\n\t{id: 'sectionAdvanced', title: msg('Advanced')},\n];\n\ntype BlockMenuItem = MenuItem & {onRun?: (ctx: milkdown.ctx.Ctx) => void};\n\nconst createMenuItems = (md: typeof milkdown): BlockMenuItem[] => [\n\t{key: 'sectionText', value: msg('Text'), divider: true, type: 'label'},\n\t{\n\t\tkey: 'text', \n\t\tvalue: msg('Text'), \n\t\ticon: 'text', onRun: \n\t\tctx => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndSetBlockType(md.presets.commonmark.paragraphSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, ...(new Array(6).fill(0).map((_, i) => ({\n\t\tkey: `square${i + 1}`,\n\t\tvalue: msg('Heading') + (i + 1),\n\t\ticon: `square-${i + 1}`,\n\t\tonRun: (ctx: milkdown.ctx.Ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndSetBlockType(md.presets.commonmark.headingSchema.type(ctx), {level: i + 1});\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}))), {\n\t\tkey: 'quote', \n\t\tvalue: msg('Quote'), \n\t\ticon: 'quote-right', \n\t\tonRun: ctx => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.blockquoteSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'divider', \n\t\tvalue: msg('Divider'), \n\t\ticon: 'horizontal-rule',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.hrSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'sectionList', \n\t\tvalue: msg('List'), \n\t\tdivider: true, \n\t\ttype: 'label'\n\t}, {\n\t\tkey: 'bulletList', \n\t\tvalue: msg('Bullet List'), \n\t\ticon: 'list',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.bulletListSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'orderedList', \n\t\tvalue: msg('Ordered List'), \n\t\ticon: 'list-ol',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.orderedListSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'todoList', \n\t\tvalue: msg('Todo List'), \n\t\ticon: 'list-check',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.listItemSchema.type(ctx), {checked: false});\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'sectionAdvanced', \n\t\tvalue: msg('Advanced'), \n\t\tdivider: true, \n\t\ttype: 'label'\n\t}, {\n\t\tkey: 'blockImage',\n\t\tvalue: msg('Block Image'),\n\t\ticon: 'image',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.components.imageBlock.imageBlockSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'inlineImage',\n\t\tvalue: msg('Inline Image'),\n\t\ticon: 'image',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.imageSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'html',\n\t\tvalue: msg('Raw HTML'), \n\t\ticon: 'code',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tr = addBlockType(clearRange(state.tr), md.presets.commonmark.htmlSchema.type(ctx), null);\n\t\t\tdispatch(tr.scrollIntoView());\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst node = view.domAtPos(tr.selection.$anchor.pos)?.node as HTMLElement;\n\t\t\t\tif (node) {\n\t\t\t\t\tconst block = node.querySelector('og-markdown-html-block') as HtmlBlockComponent;\n\t\t\t\t\tblock?.startEdit();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'code', \n\t\tvalue: msg('Code'), \n\t\ticon: 'code',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.codeBlockSchema.type(ctx))\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'table',\n\t\tvalue: msg('Table'),\n\t\ticon: 'table',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tr = clearRange(state.tr);\n\t\t\tconst table = md.presets.gfm.createTable(ctx, 3, 3);\n\t\t\ttr.replaceSelectionWith(table);\n\t\t\tconst { from } = tr.selection;\n\t\t\tconst pos = from - table.nodeSize + 2;\n\t\t\tdispatch(tr);\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst selection = md.prose.state.NodeSelection.create(view.state.tr.doc, pos);\n\t\t\t\tdispatch(view.state.tr.setSelection(selection).scrollIntoView());\n\t\t\t})\n\t\t}\n\t}, {\n\t\tkey: 'toc',\n\t\tvalue: msg('Table of Contents'),\n\t\ticon: 'list-tree',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tocType = state.schema.nodes.toc;\n\t\t\tif (!tocType) return;\n\t\t\tconst command = clearContentAndAddBlockType(tocType);\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}\n];\n\n@customElement('og-markdown-block-edit-menu')\nexport class BlockEditMenu extends LitElement {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\twidth: 170px;\n\t\t\theight: 230px;\n\t\t\tuser-select: none;\n\t\t\tborder: 1px solid var(--og-accent-color);\n\t\t\tposition: absolute;\n\t\t}\n\n\t\tog-tabcontainer {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t#menu: Menu;\n\n\t@property({type: Object})\n\tctx: milkdown.ctx.Ctx;\n\n\t@property({type: Object})\n\tmd: typeof milkdown;\n\n\t#menuItems: BlockMenuItem[];\n\tget menuItems() { return this.#menuItems ?? (this.#menuItems = createMenuItems(this.md)) }\n\n\t#items: TabItem[];\n\tget items() { return this.#items ?? (this.#items = createItems()) }\n\n\t#createComponent: ComponentFactory = (_id: ComponentId) => {\n\t\tif (!this.#menu) {\n\t\t\tconst menuItems = this.menuItems;\n\t\t\tthis.#menu = dom.createElement<Menu>('og-menu');\n\t\t\tthis.#menu.dynamicWidth = false;\n\t\t\tthis.#menu.disabledFocus = true;\n\t\t\tthis.#menu.style.width = '100%';\n\t\t\tthis.#menu.style.height = '100%';\n\t\t\tthis.#menu.style.border = 'none';\n\t\t\tthis.#menu.items = menuItems;\n\t\t\tthis.#menu.addEventListener('menu.select', (e: MenuEvent) => {\n\t\t\t\tconst item = menuItems.find(item => item.key === e.item.key);\n\t\t\t\tif (item?.onRun) {\n\t\t\t\t\titem.onRun(this.ctx);\n\t\t\t\t\tthis.dispatchEvent(new Event('run'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.#menu.addEventListener('mousedown', (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t});\n\t\t}\n\t\treturn this.#menu;\n\t}\n\n\t#onTabSelect = (e: TabEvent) => {\n\t\tif (this.#menu?.list) {\n\t\t\tconst index = this.menuItems.findIndex(item => item.key === e.tab.id);\n\t\t\tif (index > -1) this.#menu.list.scrollToIndex(index);\t\n\t\t}\n\t}\n\n\trender = () => html`\n\t\t<og-tabcontainer\n\t\t\t.createComponent=\"${this.#createComponent}\"\n\t\t\t.items=\"${this.items}\"\n\t\t\t@tab.select=\"${this.#onTabSelect}\">\n\t\t</og-tabcontainer>\n\t`;\n}\n"]}
1
+ {"version":3,"file":"blockEditMenu.js","sourceRoot":"","sources":["../../../src/components/features/blockEditMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { TabItem, TabEvent } from \"@omegagrid/tabs\";\nimport { msg } from \"@omegagrid/localize\";\nimport { ComponentFactory, ComponentId, Menu, MenuEvent, MenuItem, dom } from \"@omegagrid/core\";\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { addBlockType, clearContentAndAddBlockType, clearContentAndSetBlockType, clearContentAndWrapInBlockType, clearRange } from \"./utils\";\nimport { HtmlBlockComponent } from \"./htmlBlock\";\nimport { EmojiPicker } from \"./emojiPicker\";\n\n\nconst createItems = (): TabItem[] => [\n\t{id: 'sectionText', title: msg('Text')},\n\t{id: 'sectionList', title: msg('List')},\n\t{id: 'sectionAdvanced', title: msg('Advanced')},\n];\n\ntype BlockMenuItem = MenuItem & {onRun?: (ctx: milkdown.ctx.Ctx) => void, openPicker?: boolean};\n\nconst wrapInSchemaNode = (md: typeof milkdown, name: string, attrs: Record<string, unknown>) =>\n\t(ctx: milkdown.ctx.Ctx) => {\n\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\tconst { dispatch, state } = view;\n\t\tconst type = state.schema.nodes[name];\n\t\tif (!type) return;\n\t\tconst command = clearContentAndWrapInBlockType(type, attrs);\n\t\tcommand(state, dispatch);\n\t};\n\nconst createMenuItems = (md: typeof milkdown): BlockMenuItem[] => [\n\t{key: 'sectionText', value: msg('Text'), divider: true, type: 'label'},\n\t{\n\t\tkey: 'text', \n\t\tvalue: msg('Text'), \n\t\ticon: 'text', onRun: \n\t\tctx => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndSetBlockType(md.presets.commonmark.paragraphSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, ...(new Array(6).fill(0).map((_, i) => ({\n\t\tkey: `square${i + 1}`,\n\t\tvalue: msg('Heading') + (i + 1),\n\t\ticon: `square-${i + 1}`,\n\t\tonRun: (ctx: milkdown.ctx.Ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndSetBlockType(md.presets.commonmark.headingSchema.type(ctx), {level: i + 1});\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}))), {\n\t\tkey: 'divider',\n\t\tvalue: msg('Divider'),\n\t\ticon: 'horizontal-rule',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.hrSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'quote', \n\t\tvalue: msg('Quote'), \n\t\ticon: 'quote-right', \n\t\tonRun: ctx => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.blockquoteSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'calloutNote',\n\t\tvalue: msg('Callout'),\n\t\ticon: 'circle-info',\n\t\tonRun: wrapInSchemaNode(md, 'callout', {kind: 'note'})\n\t}, {\n\t\tkey: 'sectionList',\n\t\tvalue: msg('List'), \n\t\tdivider: true, \n\t\ttype: 'label'\n\t}, {\n\t\tkey: 'bulletList', \n\t\tvalue: msg('Bullet List'), \n\t\ticon: 'list',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.bulletListSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'orderedList', \n\t\tvalue: msg('Ordered List'), \n\t\ticon: 'list-ol',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.orderedListSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'todoList', \n\t\tvalue: msg('Todo List'), \n\t\ticon: 'list-check',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.listItemSchema.type(ctx), {checked: false});\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'sectionAdvanced', \n\t\tvalue: msg('Advanced'), \n\t\tdivider: true, \n\t\ttype: 'label'\n\t}, {\n\t\tkey: 'blockImage',\n\t\tvalue: msg('Block Image'),\n\t\ticon: 'image',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.components.imageBlock.imageBlockSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'inlineImage',\n\t\tvalue: msg('Inline Image'),\n\t\ticon: 'image',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.imageSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'emoji',\n\t\tvalue: msg('Emoji'),\n\t\ticon: 'face-smile',\n\t\topenPicker: true\n\t}, {\n\t\tkey: 'html',\n\t\tvalue: msg('Raw HTML'), \n\t\ticon: 'code',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tr = addBlockType(clearRange(state.tr), md.presets.commonmark.htmlSchema.type(ctx), null);\n\t\t\tdispatch(tr.scrollIntoView());\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst node = view.domAtPos(tr.selection.$anchor.pos)?.node as HTMLElement;\n\t\t\t\tif (node) {\n\t\t\t\t\tconst block = node.querySelector('og-markdown-html-block') as HtmlBlockComponent;\n\t\t\t\t\tblock?.startEdit();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'code', \n\t\tvalue: msg('Code'), \n\t\ticon: 'code',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.codeBlockSchema.type(ctx))\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'table',\n\t\tvalue: msg('Table'),\n\t\ticon: 'table',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tr = clearRange(state.tr);\n\t\t\tconst table = md.presets.gfm.createTable(ctx, 3, 3);\n\t\t\ttr.replaceSelectionWith(table);\n\t\t\tconst { from } = tr.selection;\n\t\t\tconst pos = from - table.nodeSize + 2;\n\t\t\tdispatch(tr);\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst selection = md.prose.state.NodeSelection.create(view.state.tr.doc, pos);\n\t\t\t\tdispatch(view.state.tr.setSelection(selection).scrollIntoView());\n\t\t\t})\n\t\t}\n\t}, {\n\t\tkey: 'toc',\n\t\tvalue: msg('Table of Contents'),\n\t\ticon: 'list-tree',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tocType = state.schema.nodes.toc;\n\t\t\tif (!tocType) return;\n\t\t\tconst command = clearContentAndAddBlockType(tocType);\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}\n];\n\n@customElement('og-markdown-block-edit-menu')\nexport class BlockEditMenu extends LitElement {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\twidth: 170px;\n\t\t\theight: 230px;\n\t\t\tuser-select: none;\n\t\t\tborder: 1px solid var(--og-accent-color);\n\t\t\tposition: absolute;\n\t\t}\n\n\t\tog-tabcontainer {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t#menu: Menu;\n\n\t@property({type: Object})\n\tctx: milkdown.ctx.Ctx;\n\n\t@property({type: Object})\n\tmd: typeof milkdown;\n\n\t#menuItems: BlockMenuItem[];\n\tget menuItems() { return this.#menuItems ?? (this.#menuItems = createMenuItems(this.md)) }\n\n\t#items: TabItem[];\n\tget items() { return this.#items ?? (this.#items = createItems()) }\n\n\t#createComponent: ComponentFactory = (_id: ComponentId) => {\n\t\tif (!this.#menu) {\n\t\t\tconst menuItems = this.menuItems;\n\t\t\tthis.#menu = dom.createElement<Menu>('og-menu');\n\t\t\tthis.#menu.dynamicWidth = false;\n\t\t\tthis.#menu.disabledFocus = true;\n\t\t\tthis.#menu.style.width = '100%';\n\t\t\tthis.#menu.style.height = '100%';\n\t\t\tthis.#menu.style.border = 'none';\n\t\t\tthis.#menu.items = menuItems;\n\t\t\tthis.#menu.addEventListener('menu.select', (e: MenuEvent) => {\n\t\t\t\tconst item = menuItems.find(item => item.key === e.item.key);\n\t\t\t\tif (item?.openPicker) {\n\t\t\t\t\tthis.#showEmojiPicker();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (item?.onRun) {\n\t\t\t\t\titem.onRun(this.ctx);\n\t\t\t\t\tthis.dispatchEvent(new Event('run'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.#menu.addEventListener('mousedown', (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t});\n\t\t}\n\t\treturn this.#menu;\n\t}\n\n\t#onTabSelect = (e: TabEvent) => {\n\t\tif (this.#menu?.list) {\n\t\t\tconst index = this.menuItems.findIndex(item => item.key === e.tab.id);\n\t\t\tif (index > -1) this.#menu.list.scrollToIndex(index);\n\t\t}\n\t}\n\n\t#emojiPicker: EmojiPicker;\n\n\t#showEmojiPicker = () => {\n\t\t// Capture the menu position before dispatching 'run' hides it (a hidden\n\t\t// element reports offsetTop/offsetLeft of 0).\n\t\tconst top = this.offsetTop;\n\t\tconst left = this.offsetLeft;\n\t\tthis.dispatchEvent(new Event('run'));\n\t\tif (!this.#emojiPicker) {\n\t\t\tthis.#emojiPicker = dom.createElement<EmojiPicker>('og-markdown-emoji-picker');\n\t\t\tdocument.body.appendChild(this.#emojiPicker);\n\t\t}\n\t\tconst picker = this.#emojiPicker;\n\t\tpicker.ctx = this.ctx;\n\t\tpicker.md = this.md;\n\t\tdom.showElement(picker);\n\t\tdom.setPosition(picker, {t: top, l: left});\n\t\tdocument.addEventListener('mousedown', () => dom.hideElement(picker), {once: true});\n\t}\n\n\trender = () => html`\n\t\t<og-tabcontainer\n\t\t\t.createComponent=\"${this.#createComponent}\"\n\t\t\t.items=\"${this.items}\"\n\t\t\t@tab.select=\"${this.#onTabSelect}\">\n\t\t</og-tabcontainer>\n\t`;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type * as milkdown from '@omegagrid/milkdown-kit';
2
+ export declare const CALLOUT_KINDS: readonly ["note", "tip", "important", "warning", "caution"];
3
+ export type CalloutKind = (typeof CALLOUT_KINDS)[number];
4
+ export declare const CALLOUT_META: Record<CalloutKind, {
5
+ icon: string;
6
+ label: () => string;
7
+ }>;
8
+ export declare function createCalloutBlock(md: typeof milkdown): {
9
+ plugins: milkdown.ctx.MilkdownPlugin[];
10
+ };
11
+ //# sourceMappingURL=calloutBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutBlock.d.ts","sourceRoot":"","sources":["../../../src/components/features/calloutBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAMzD,eAAO,MAAM,aAAa,6DAA8D,CAAC;AACzF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,MAAM,CAAA;CAAE,CAMnF,CAAC;AA4FF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,QAAQ;;EAiFrD"}
@@ -0,0 +1 @@
1
+ var _CalloutBlockView_icon,_CalloutBlockView_select,_CalloutBlockView_label,__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,l,i,o){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?o.call(e,l):o?o.value=l:t.set(e,l),l},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,l,i){if("a"===l&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===l?i:"a"===l?i.call(e):i?i.value:t.get(e)};import{msg}from"@omegagrid/localize";import{iconSvg}from"./utils";export const CALLOUT_KINDS=["note","tip","important","warning","caution"];export const CALLOUT_META={note:{icon:"circle-info",label:()=>msg("Note")},tip:{icon:"circle-check",label:()=>msg("Tip")},important:{icon:"comment",label:()=>msg("Important")},warning:{icon:"circle-exclamation",label:()=>msg("Warning")},caution:{icon:"circle-xmark",label:()=>msg("Caution")}};const KIND_SET=new Set(CALLOUT_KINDS),normalizeKind=e=>"string"==typeof e&&KIND_SET.has(e.toLowerCase())?e.toLowerCase():"note";function walkTree(e,t){if(e.children)for(let l=e.children.length-1;l>=0;l--)t(e.children[l],l,e),walkTree(e.children[l],t)}class CalloutBlockView{constructor(e,t,l,i){this.md=e,this.node=t,this.view=l,this.getPos=i,_CalloutBlockView_icon.set(this,void 0),_CalloutBlockView_select.set(this,void 0),_CalloutBlockView_label.set(this,void 0);const o=normalizeKind(t.attrs.kind);this.dom=document.createElement("div"),this.dom.className="og-callout",this.dom.setAttribute("data-kind",o);const a=document.createElement("div");if(a.className="og-callout-header",a.contentEditable="false",__classPrivateFieldSet(this,_CalloutBlockView_icon,document.createElement("span"),"f"),__classPrivateFieldGet(this,_CalloutBlockView_icon,"f").className="og-callout-icon",__classPrivateFieldGet(this,_CalloutBlockView_icon,"f").innerHTML=iconSvg(CALLOUT_META[o].icon),l.editable){const e=document.createElement("select");e.className="og-callout-select";for(const t of CALLOUT_KINDS){const l=document.createElement("option");l.value=t,l.textContent=CALLOUT_META[t].label(),t===o&&(l.selected=!0),e.appendChild(l)}e.addEventListener("change",(()=>{this.view.dispatch(this.view.state.tr.setNodeAttribute(this.getPos()??0,"kind",e.value))})),__classPrivateFieldSet(this,_CalloutBlockView_select,e,"f"),a.append(__classPrivateFieldGet(this,_CalloutBlockView_icon,"f"),e)}else __classPrivateFieldSet(this,_CalloutBlockView_label,document.createElement("span"),"f"),__classPrivateFieldGet(this,_CalloutBlockView_label,"f").className="og-callout-label",__classPrivateFieldGet(this,_CalloutBlockView_label,"f").textContent=CALLOUT_META[o].label(),a.append(__classPrivateFieldGet(this,_CalloutBlockView_icon,"f"),__classPrivateFieldGet(this,_CalloutBlockView_label,"f"));this.contentDOM=document.createElement("div"),this.contentDOM.className="og-callout-body",this.dom.append(a,this.contentDOM)}update(e){if(e.type!==this.node.type)return!1;this.node=e;const t=normalizeKind(e.attrs.kind);return this.dom.setAttribute("data-kind",t),__classPrivateFieldGet(this,_CalloutBlockView_icon,"f").innerHTML=iconSvg(CALLOUT_META[t].icon),__classPrivateFieldGet(this,_CalloutBlockView_select,"f")&&__classPrivateFieldGet(this,_CalloutBlockView_select,"f").value!==t&&(__classPrivateFieldGet(this,_CalloutBlockView_select,"f").value=t),__classPrivateFieldGet(this,_CalloutBlockView_label,"f")&&(__classPrivateFieldGet(this,_CalloutBlockView_label,"f").textContent=CALLOUT_META[t].label()),!0}stopEvent(e){return!this.contentDOM.contains(e.target)}ignoreMutation(e){return"selection"!==e.type&&!this.contentDOM.contains(e.target)}}_CalloutBlockView_icon=new WeakMap,_CalloutBlockView_select=new WeakMap,_CalloutBlockView_label=new WeakMap;export function createCalloutBlock(e){const t=e.utils.$remark("remarkCalloutPlugin",(()=>()=>e=>{walkTree(e,((e,t,l)=>{if("blockquote"!==e.type||!e.children?.length)return;const i=e.children[0];if("paragraph"!==i.type||!i.children?.length)return;const o=i.children[0];if("text"!==o.type||"string"!=typeof o.value)return;const a=o.value.match(/^\[!(note|tip|important|warning|caution)\][^\S\n]*/i);if(!a)return;const n=a[1].toLowerCase(),c=i.children.slice(),s=o.value.slice(a[0].length).replace(/^\n/,"");s.length?c[0]={...o,value:s}:(c.shift(),"break"===c[0]?.type&&c.shift());const r=[];c.length&&r.push({...i,children:c}),r.push(...e.children.slice(1)),r.length||r.push({type:"paragraph",children:[]}),l.children[t]={type:"callout",kind:n,children:r}}))})),l=e.utils.$nodeSchema("callout",(()=>({content:"block+",group:"block",defining:!0,attrs:{kind:{default:"note"}},parseDOM:[{tag:"div[data-callout]",contentElement:".og-callout-body",getAttrs:e=>({kind:normalizeKind(e.getAttribute("data-callout"))})}],toDOM:e=>{const t=normalizeKind(e.attrs.kind);return["div",{"data-callout":t,class:`og-callout og-callout-${t}`},["div",{class:"og-callout-header",contenteditable:"false"},CALLOUT_META[t].label()],["div",{class:"og-callout-body"},0]]},parseMarkdown:{match:e=>"callout"===e.type,runner:(e,t,l)=>{e.openNode(l,{kind:normalizeKind(t.kind)}).next(t.children).closeNode()}},toMarkdown:{match:e=>"callout"===e.type.name,runner:(e,t)=>{const l=normalizeKind(t.attrs.kind).toUpperCase();e.openNode("blockquote"),e.openNode("paragraph"),e.addNode("text",void 0,`[!${l}]`),e.closeNode(),e.next(t.content),e.closeNode()}}}))),i=e.utils.$view(l.node,(()=>(t,l,i)=>new CalloutBlockView(e,t,l,i)));return{plugins:[...t,...l,i].flat()}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutBlock.js","sourceRoot":"","sources":["../../../src/components/features/calloutBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as milkdown from '@omegagrid/milkdown-kit';\nimport type { NodeView, EditorView } from '@omegagrid/milkdown-kit/dist/prose/view';\nimport type { Node } from '@omegagrid/milkdown-kit/dist/prose/model';\nimport { msg } from '@omegagrid/localize';\nimport { iconSvg } from './utils';\n\nexport const CALLOUT_KINDS = ['note', 'tip', 'important', 'warning', 'caution'] as const;\nexport type CalloutKind = (typeof CALLOUT_KINDS)[number];\n\nexport const CALLOUT_META: Record<CalloutKind, { icon: string; label: () => string }> = {\n\tnote: { icon: 'circle-info', label: () => msg('Note') },\n\ttip: { icon: 'circle-check', label: () => msg('Tip') },\n\timportant: { icon: 'comment', label: () => msg('Important') },\n\twarning: { icon: 'circle-exclamation', label: () => msg('Warning') },\n\tcaution: { icon: 'circle-xmark', label: () => msg('Caution') },\n};\n\nconst KIND_SET = new Set<string>(CALLOUT_KINDS);\nconst normalizeKind = (value: unknown): CalloutKind =>\n\ttypeof value === 'string' && KIND_SET.has(value.toLowerCase()) ? (value.toLowerCase() as CalloutKind) : 'note';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction walkTree(tree: any, callback: (node: any, index: number, parent: any) => void) {\n\tif (tree.children) {\n\t\tfor (let i = tree.children.length - 1; i >= 0; i--) {\n\t\t\tcallback(tree.children[i], i, tree);\n\t\t\twalkTree(tree.children[i], callback);\n\t\t}\n\t}\n}\n\nclass CalloutBlockView implements NodeView {\n\tdom: HTMLElement;\n\tcontentDOM: HTMLElement;\n\t#icon: HTMLElement;\n\t#select?: HTMLSelectElement;\n\t#label?: HTMLElement;\n\n\tconstructor(\n\t\tpublic md: typeof milkdown,\n\t\tpublic node: Node,\n\t\tpublic view: EditorView,\n\t\tpublic getPos: () => number | undefined\n\t) {\n\t\tconst kind = normalizeKind(node.attrs.kind);\n\n\t\tthis.dom = document.createElement('div');\n\t\tthis.dom.className = 'og-callout';\n\t\tthis.dom.setAttribute('data-kind', kind);\n\n\t\tconst header = document.createElement('div');\n\t\theader.className = 'og-callout-header';\n\t\theader.contentEditable = 'false';\n\n\t\tthis.#icon = document.createElement('span');\n\t\tthis.#icon.className = 'og-callout-icon';\n\t\tthis.#icon.innerHTML = iconSvg(CALLOUT_META[kind].icon);\n\n\t\tif (view.editable) {\n\t\t\tconst select = document.createElement('select');\n\t\t\tselect.className = 'og-callout-select';\n\t\t\tfor (const k of CALLOUT_KINDS) {\n\t\t\t\tconst opt = document.createElement('option');\n\t\t\t\topt.value = k;\n\t\t\t\topt.textContent = CALLOUT_META[k].label();\n\t\t\t\tif (k === kind) opt.selected = true;\n\t\t\t\tselect.appendChild(opt);\n\t\t\t}\n\t\t\tselect.addEventListener('change', () => {\n\t\t\t\tthis.view.dispatch(this.view.state.tr.setNodeAttribute(this.getPos() ?? 0, 'kind', select.value));\n\t\t\t});\n\t\t\tthis.#select = select;\n\t\t\theader.append(this.#icon, select);\n\t\t} else {\n\t\t\tthis.#label = document.createElement('span');\n\t\t\tthis.#label.className = 'og-callout-label';\n\t\t\tthis.#label.textContent = CALLOUT_META[kind].label();\n\t\t\theader.append(this.#icon, this.#label);\n\t\t}\n\n\t\tthis.contentDOM = document.createElement('div');\n\t\tthis.contentDOM.className = 'og-callout-body';\n\n\t\tthis.dom.append(header, this.contentDOM);\n\t}\n\n\tupdate(node: Node) {\n\t\tif (node.type !== this.node.type) return false;\n\t\tthis.node = node;\n\t\tconst kind = normalizeKind(node.attrs.kind);\n\t\tthis.dom.setAttribute('data-kind', kind);\n\t\tthis.#icon.innerHTML = iconSvg(CALLOUT_META[kind].icon);\n\t\tif (this.#select && this.#select.value !== kind) this.#select.value = kind;\n\t\tif (this.#label) this.#label.textContent = CALLOUT_META[kind].label();\n\t\treturn true;\n\t}\n\n\tstopEvent(e: Event) {\n\t\treturn !this.contentDOM.contains(e.target as HTMLElement);\n\t}\n\n\tignoreMutation(m: Parameters<NonNullable<NodeView['ignoreMutation']>>[0]) {\n\t\tif (m.type === 'selection') return false;\n\t\treturn !this.contentDOM.contains(m.target);\n\t}\n}\n\nexport function createCalloutBlock(md: typeof milkdown) {\n\tconst remarkPlugin = md.utils.$remark('remarkCalloutPlugin', () => () => (tree: unknown) => {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\twalkTree(tree, (node: any, index: number, parent: any) => {\n\t\t\tif (node.type !== 'blockquote' || !node.children?.length) return;\n\t\t\tconst first = node.children[0];\n\t\t\tif (first.type !== 'paragraph' || !first.children?.length) return;\n\t\t\tconst firstText = first.children[0];\n\t\t\tif (firstText.type !== 'text' || typeof firstText.value !== 'string') return;\n\n\t\t\tconst match = firstText.value.match(/^\\[!(note|tip|important|warning|caution)\\][^\\S\\n]*/i);\n\t\t\tif (!match) return;\n\t\t\tconst kind = match[1].toLowerCase();\n\n\t\t\t// Strip the \"[!KIND]\" marker from the first paragraph.\n\t\t\tconst paraChildren = first.children.slice();\n\t\t\tconst rest = firstText.value.slice(match[0].length).replace(/^\\n/, '');\n\t\t\tif (rest.length) {\n\t\t\t\tparaChildren[0] = { ...firstText, value: rest };\n\t\t\t} else {\n\t\t\t\tparaChildren.shift();\n\t\t\t\tif (paraChildren[0]?.type === 'break') paraChildren.shift();\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tconst calloutChildren: any[] = [];\n\t\t\tif (paraChildren.length) calloutChildren.push({ ...first, children: paraChildren });\n\t\t\tcalloutChildren.push(...node.children.slice(1));\n\t\t\tif (!calloutChildren.length) calloutChildren.push({ type: 'paragraph', children: [] });\n\n\t\t\tparent.children[index] = { type: 'callout', kind, children: calloutChildren };\n\t\t});\n\t});\n\n\tconst nodeSchema = md.utils.$nodeSchema('callout', () => ({\n\t\tcontent: 'block+',\n\t\tgroup: 'block',\n\t\tdefining: true,\n\t\tattrs: { kind: { default: 'note' } },\n\t\tparseDOM: [{\n\t\t\ttag: 'div[data-callout]',\n\t\t\tcontentElement: '.og-callout-body',\n\t\t\tgetAttrs: (dom: HTMLElement) => ({ kind: normalizeKind(dom.getAttribute('data-callout')) }),\n\t\t}],\n\t\ttoDOM: (node: Node) => {\n\t\t\tconst kind = normalizeKind(node.attrs.kind);\n\t\t\treturn ['div', { 'data-callout': kind, class: `og-callout og-callout-${kind}` },\n\t\t\t\t['div', { class: 'og-callout-header', contenteditable: 'false' }, CALLOUT_META[kind].label()],\n\t\t\t\t['div', { class: 'og-callout-body' }, 0],\n\t\t\t] as const;\n\t\t},\n\t\tparseMarkdown: {\n\t\t\tmatch: (mdNode: { type: string }) => mdNode.type === 'callout',\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\trunner: (state: any, node: any, type: any) => {\n\t\t\t\tstate.openNode(type, { kind: normalizeKind(node.kind) }).next(node.children).closeNode();\n\t\t\t},\n\t\t},\n\t\ttoMarkdown: {\n\t\t\tmatch: (node: Node) => node.type.name === 'callout',\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\trunner: (state: any, node: Node) => {\n\t\t\t\tconst kind = normalizeKind(node.attrs.kind).toUpperCase();\n\t\t\t\tstate.openNode('blockquote');\n\t\t\t\tstate.openNode('paragraph');\n\t\t\t\tstate.addNode('text', undefined, `[!${kind}]`);\n\t\t\t\tstate.closeNode();\n\t\t\t\tstate.next(node.content);\n\t\t\t\tstate.closeNode();\n\t\t\t},\n\t\t},\n\t}));\n\n\tconst nodeView = md.utils.$view(nodeSchema.node, () => {\n\t\treturn (node: Node, view: EditorView, getPos: () => number | undefined) =>\n\t\t\tnew CalloutBlockView(md, node, view, getPos);\n\t});\n\n\tconst plugins = [...remarkPlugin, ...nodeSchema, nodeView].flat();\n\n\treturn { plugins };\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ import type * as milkdown from '@omegagrid/milkdown-kit';
3
+ export declare class EmojiPicker extends LitElement {
4
+ #private;
5
+ static styles: import("lit").CSSResult;
6
+ ctx: milkdown.ctx.Ctx;
7
+ md: typeof milkdown;
8
+ private query;
9
+ private renderGrid;
10
+ render(): import("lit").TemplateResult<1>;
11
+ }
12
+ //# sourceMappingURL=emojiPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emojiPicker.d.ts","sourceRoot":"","sources":["../../../src/components/features/emojiPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AA8DzD,qBACa,WAAY,SAAQ,UAAU;;IAE1C,MAAM,CAAC,MAAM,0BAqEX;IAGF,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IAGtB,EAAE,EAAE,OAAO,QAAQ,CAAC;IAGpB,OAAO,CAAC,KAAK,CAAM;IAYnB,OAAO,CAAC,UAAU;IAWlB,MAAM;CAuBN"}
@@ -0,0 +1,92 @@
1
+ var _EmojiPicker_instances,_EmojiPicker_insert,_EmojiPicker_onSearch,__decorate=this&&this.__decorate||function(e,t,o,r){var i,a=arguments.length,s=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(a<3?i(s):a>3?i(t,o,s):i(t,o))||s);return a>3&&s&&Object.defineProperty(t,o,s),s},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,o,r){if("a"===o&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?r:"a"===o?r.call(e):r?r.value:t.get(e)};import{LitElement,css,html}from"lit";import{customElement,property,state}from"lit/decorators.js";import{msg}from"@omegagrid/localize";const CATEGORIES=[{label:()=>msg("Smileys"),items:[{e:"😀",k:"grin smile happy"},{e:"😃",k:"smile happy"},{e:"😄",k:"smile laugh happy"},{e:"😁",k:"grin"},{e:"😆",k:"laugh"},{e:"😅",k:"sweat laugh"},{e:"🤣",k:"rofl laugh"},{e:"😂",k:"joy tears laugh"},{e:"🙂",k:"slight smile"},{e:"😉",k:"wink"},{e:"😊",k:"blush happy"},{e:"😍",k:"love heart eyes"},{e:"😘",k:"kiss"},{e:"😎",k:"cool sunglasses"},{e:"🤔",k:"thinking"},{e:"😐",k:"neutral"},{e:"😴",k:"sleep"},{e:"😢",k:"cry sad"},{e:"😭",k:"sob cry"},{e:"😅",k:"nervous"},{e:"😳",k:"flushed shock"},{e:"🥳",k:"party celebrate"},{e:"😇",k:"angel"},{e:"🤯",k:"mind blown"}]},{label:()=>msg("Gestures"),items:[{e:"👍",k:"thumbs up like ok"},{e:"👎",k:"thumbs down dislike"},{e:"👌",k:"ok"},{e:"👏",k:"clap applause"},{e:"🙏",k:"pray thanks please"},{e:"🙌",k:"raise hands"},{e:"💪",k:"muscle strong"},{e:"✌️",k:"peace victory"},{e:"🤝",k:"handshake deal"},{e:"👋",k:"wave hi hello bye"},{e:"☝️",k:"point up"},{e:"👆",k:"point up"},{e:"👇",k:"point down"},{e:"👉",k:"point right"},{e:"👈",k:"point left"},{e:"🤞",k:"fingers crossed luck"}]},{label:()=>msg("Hearts & Symbols"),items:[{e:"❤️",k:"heart love red"},{e:"🧡",k:"heart orange"},{e:"💛",k:"heart yellow"},{e:"💚",k:"heart green"},{e:"💙",k:"heart blue"},{e:"💜",k:"heart purple"},{e:"🖤",k:"heart black"},{e:"💔",k:"broken heart"},{e:"⭐",k:"star"},{e:"🌟",k:"star glow"},{e:"✨",k:"sparkles"},{e:"🔥",k:"fire hot lit"},{e:"💯",k:"hundred perfect"},{e:"✅",k:"check done ok"},{e:"❌",k:"cross wrong no"},{e:"⚠️",k:"warning caution"},{e:"❓",k:"question"},{e:"❗",k:"exclamation important"},{e:"💡",k:"idea bulb tip"},{e:"📌",k:"pin"},{e:"📎",k:"clip attach"},{e:"🔗",k:"link"},{e:"🎯",k:"target goal"}]},{label:()=>msg("Objects"),items:[{e:"📝",k:"note memo write"},{e:"📄",k:"document page"},{e:"📚",k:"books docs"},{e:"📁",k:"folder"},{e:"📅",k:"calendar date"},{e:"⏰",k:"alarm time clock"},{e:"💻",k:"laptop computer"},{e:"🖥️",k:"desktop pc"},{e:"📱",k:"phone mobile"},{e:"⚙️",k:"gear settings config"},{e:"🔒",k:"lock secure"},{e:"🔑",k:"key"},{e:"🚀",k:"rocket launch ship"},{e:"🐛",k:"bug"},{e:"💰",k:"money cash"},{e:"📊",k:"chart graph"},{e:"📈",k:"chart up growth"},{e:"📉",k:"chart down"},{e:"🏆",k:"trophy win"},{e:"🎉",k:"party tada celebrate"}]},{label:()=>msg("Nature & Food"),items:[{e:"🌍",k:"earth world globe"},{e:"☀️",k:"sun sunny"},{e:"🌙",k:"moon night"},{e:"☁️",k:"cloud"},{e:"⚡",k:"lightning bolt"},{e:"🌈",k:"rainbow"},{e:"🌸",k:"blossom flower"},{e:"🌿",k:"leaf plant herb"},{e:"🌳",k:"tree"},{e:"🍀",k:"clover luck"},{e:"☕",k:"coffee tea"},{e:"🍕",k:"pizza food"},{e:"🍎",k:"apple fruit"},{e:"🎂",k:"cake birthday"},{e:"🍺",k:"beer drink"},{e:"🐱",k:"cat"},{e:"🐶",k:"dog"}]}];let EmojiPicker=class extends LitElement{constructor(){super(...arguments),_EmojiPicker_instances.add(this),this.query="",_EmojiPicker_onSearch.set(this,(e=>{this.query=e.target.value.trim().toLowerCase()}))}renderGrid(e){return html`<div class="grid">${e.map((e=>html`
2
+ <button
3
+ class="emoji"
4
+ title="${e.k.split(" ")[0]}"
5
+ @mousedown="${t=>{t.preventDefault(),t.stopPropagation(),__classPrivateFieldGet(this,_EmojiPicker_instances,"m",_EmojiPicker_insert).call(this,e.e)}}">
6
+ ${e.e}
7
+ </button>
8
+ `))}</div>`}render(){const e=this.query,t=e?CATEGORIES.map((t=>({label:t.label,items:t.items.filter((t=>t.k.includes(e)))}))).filter((e=>e.items.length)):CATEGORIES;return html`
9
+ <div class="search">
10
+ <input
11
+ type="text"
12
+ placeholder="${msg("Search emoji")}"
13
+ .value="${this.query}"
14
+ @input="${__classPrivateFieldGet(this,_EmojiPicker_onSearch,"f")}"
15
+ @mousedown="${e=>e.stopPropagation()}">
16
+ </div>
17
+ <div class="body">
18
+ ${t.length?t.map((e=>html`
19
+ <div class="category-title">${e.label()}</div>
20
+ ${this.renderGrid(e.items)}
21
+ `)):html`<div class="empty">${msg("No emoji found")}</div>`}
22
+ </div>
23
+ `}};_EmojiPicker_onSearch=new WeakMap,_EmojiPicker_instances=new WeakSet,_EmojiPicker_insert=function(e){const t=this.ctx.get(this.md.core.editorViewCtx);t.focus(),t.dispatch(t.state.tr.insertText(e).scrollIntoView())},EmojiPicker.styles=css`
24
+ * { box-sizing: border-box; }
25
+
26
+ :host {
27
+ display: flex;
28
+ flex-direction: column;
29
+ position: absolute;
30
+ width: 260px;
31
+ height: 300px;
32
+ background-color: var(--og-background-color);
33
+ border: 1px solid var(--og-accent-color);
34
+ user-select: none;
35
+ z-index: 1000;
36
+ font-size: var(--og-font-size);
37
+ }
38
+
39
+ .search {
40
+ padding: 6px;
41
+ border-bottom: 1px solid var(--og-border-color);
42
+ }
43
+
44
+ input {
45
+ width: 100%;
46
+ padding: 4px 6px;
47
+ border: 1px solid var(--og-border-color);
48
+ background-color: var(--og-background-color);
49
+ color: var(--og-text-color, inherit);
50
+ outline: none;
51
+ }
52
+
53
+ input:focus { border-color: var(--og-accent-color); }
54
+
55
+ .body {
56
+ flex: 1;
57
+ overflow-y: auto;
58
+ padding: 4px;
59
+ }
60
+
61
+ .category-title {
62
+ font-size: 0.75em;
63
+ color: var(--og-text-secondary-color, #999);
64
+ padding: 4px 2px 2px;
65
+ text-transform: uppercase;
66
+ }
67
+
68
+ .grid {
69
+ display: grid;
70
+ grid-template-columns: repeat(8, 1fr);
71
+ gap: 1px;
72
+ }
73
+
74
+ button.emoji {
75
+ border: none;
76
+ background: transparent;
77
+ cursor: pointer;
78
+ font-size: 18px;
79
+ line-height: 1;
80
+ padding: 3px 0;
81
+ border-radius: 3px;
82
+ }
83
+
84
+ button.emoji:hover { background-color: var(--og-hover-color, rgba(127,127,127,.2)); }
85
+
86
+ .empty {
87
+ color: var(--og-text-secondary-color, #999);
88
+ font-style: italic;
89
+ padding: 8px;
90
+ text-align: center;
91
+ }
92
+ `,__decorate([property({type:Object})],EmojiPicker.prototype,"ctx",void 0),__decorate([property({type:Object})],EmojiPicker.prototype,"md",void 0),__decorate([state()],EmojiPicker.prototype,"query",void 0),EmojiPicker=__decorate([customElement("og-markdown-emoji-picker")],EmojiPicker);export{EmojiPicker};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emojiPicker.js","sourceRoot":"","sources":["../../../src/components/features/emojiPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { msg } from '@omegagrid/localize';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\n\ntype EmojiEntry = { e: string; k: string };\ntype EmojiCategory = { label: () => string; items: EmojiEntry[] };\n\nconst CATEGORIES: EmojiCategory[] = [\n\t{\n\t\tlabel: () => msg('Smileys'),\n\t\titems: [\n\t\t\t{ e: '😀', k: 'grin smile happy' }, { e: '😃', k: 'smile happy' }, { e: '😄', k: 'smile laugh happy' },\n\t\t\t{ e: '😁', k: 'grin' }, { e: '😆', k: 'laugh' }, { e: '😅', k: 'sweat laugh' }, { e: '🤣', k: 'rofl laugh' },\n\t\t\t{ e: '😂', k: 'joy tears laugh' }, { e: '🙂', k: 'slight smile' }, { e: '😉', k: 'wink' }, { e: '😊', k: 'blush happy' },\n\t\t\t{ e: '😍', k: 'love heart eyes' }, { e: '😘', k: 'kiss' }, { e: '😎', k: 'cool sunglasses' }, { e: '🤔', k: 'thinking' },\n\t\t\t{ e: '😐', k: 'neutral' }, { e: '😴', k: 'sleep' }, { e: '😢', k: 'cry sad' }, { e: '😭', k: 'sob cry' }, { e: '😅', k: 'nervous' },\n\t\t\t{ e: '😳', k: 'flushed shock' }, { e: '🥳', k: 'party celebrate' }, { e: '😇', k: 'angel' }, { e: '🤯', k: 'mind blown' },\n\t\t],\n\t},\n\t{\n\t\tlabel: () => msg('Gestures'),\n\t\titems: [\n\t\t\t{ e: '👍', k: 'thumbs up like ok' }, { e: '👎', k: 'thumbs down dislike' }, { e: '👌', k: 'ok' },\n\t\t\t{ e: '👏', k: 'clap applause' }, { e: '🙏', k: 'pray thanks please' }, { e: '🙌', k: 'raise hands' },\n\t\t\t{ e: '💪', k: 'muscle strong' }, { e: '✌️', k: 'peace victory' }, { e: '🤝', k: 'handshake deal' },\n\t\t\t{ e: '👋', k: 'wave hi hello bye' }, { e: '☝️', k: 'point up' }, { e: '👆', k: 'point up' }, { e: '👇', k: 'point down' },\n\t\t\t{ e: '👉', k: 'point right' }, { e: '👈', k: 'point left' }, { e: '🤞', k: 'fingers crossed luck' },\n\t\t],\n\t},\n\t{\n\t\tlabel: () => msg('Hearts & Symbols'),\n\t\titems: [\n\t\t\t{ e: '❤️', k: 'heart love red' }, { e: '🧡', k: 'heart orange' }, { e: '💛', k: 'heart yellow' },\n\t\t\t{ e: '💚', k: 'heart green' }, { e: '💙', k: 'heart blue' }, { e: '💜', k: 'heart purple' },\n\t\t\t{ e: '🖤', k: 'heart black' }, { e: '💔', k: 'broken heart' }, { e: '⭐', k: 'star' }, { e: '🌟', k: 'star glow' },\n\t\t\t{ e: '✨', k: 'sparkles' }, { e: '🔥', k: 'fire hot lit' }, { e: '💯', k: 'hundred perfect' },\n\t\t\t{ e: '✅', k: 'check done ok' }, { e: '❌', k: 'cross wrong no' }, { e: '⚠️', k: 'warning caution' },\n\t\t\t{ e: '❓', k: 'question' }, { e: '❗', k: 'exclamation important' }, { e: '💡', k: 'idea bulb tip' },\n\t\t\t{ e: '📌', k: 'pin' }, { e: '📎', k: 'clip attach' }, { e: '🔗', k: 'link' }, { e: '🎯', k: 'target goal' },\n\t\t],\n\t},\n\t{\n\t\tlabel: () => msg('Objects'),\n\t\titems: [\n\t\t\t{ e: '📝', k: 'note memo write' }, { e: '📄', k: 'document page' }, { e: '📚', k: 'books docs' },\n\t\t\t{ e: '📁', k: 'folder' }, { e: '📅', k: 'calendar date' }, { e: '⏰', k: 'alarm time clock' },\n\t\t\t{ e: '💻', k: 'laptop computer' }, { e: '🖥️', k: 'desktop pc' }, { e: '📱', k: 'phone mobile' },\n\t\t\t{ e: '⚙️', k: 'gear settings config' }, { e: '🔒', k: 'lock secure' }, { e: '🔑', k: 'key' },\n\t\t\t{ e: '🚀', k: 'rocket launch ship' }, { e: '🐛', k: 'bug' }, { e: '💰', k: 'money cash' }, { e: '📊', k: 'chart graph' },\n\t\t\t{ e: '📈', k: 'chart up growth' }, { e: '📉', k: 'chart down' }, { e: '🏆', k: 'trophy win' }, { e: '🎉', k: 'party tada celebrate' },\n\t\t],\n\t},\n\t{\n\t\tlabel: () => msg('Nature & Food'),\n\t\titems: [\n\t\t\t{ e: '🌍', k: 'earth world globe' }, { e: '☀️', k: 'sun sunny' }, { e: '🌙', k: 'moon night' },\n\t\t\t{ e: '☁️', k: 'cloud' }, { e: '⚡', k: 'lightning bolt' }, { e: '🌈', k: 'rainbow' },\n\t\t\t{ e: '🌸', k: 'blossom flower' }, { e: '🌿', k: 'leaf plant herb' }, { e: '🌳', k: 'tree' }, { e: '🍀', k: 'clover luck' },\n\t\t\t{ e: '☕', k: 'coffee tea' }, { e: '🍕', k: 'pizza food' }, { e: '🍎', k: 'apple fruit' }, { e: '🎂', k: 'cake birthday' },\n\t\t\t{ e: '🍺', k: 'beer drink' }, { e: '🐱', k: 'cat' }, { e: '🐶', k: 'dog' },\n\t\t],\n\t},\n];\n\n@customElement('og-markdown-emoji-picker')\nexport class EmojiPicker extends LitElement {\n\n\tstatic styles = css`\n\t\t* { box-sizing: border-box; }\n\n\t\t:host {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tposition: absolute;\n\t\t\twidth: 260px;\n\t\t\theight: 300px;\n\t\t\tbackground-color: var(--og-background-color);\n\t\t\tborder: 1px solid var(--og-accent-color);\n\t\t\tuser-select: none;\n\t\t\tz-index: 1000;\n\t\t\tfont-size: var(--og-font-size);\n\t\t}\n\n\t\t.search {\n\t\t\tpadding: 6px;\n\t\t\tborder-bottom: 1px solid var(--og-border-color);\n\t\t}\n\n\t\tinput {\n\t\t\twidth: 100%;\n\t\t\tpadding: 4px 6px;\n\t\t\tborder: 1px solid var(--og-border-color);\n\t\t\tbackground-color: var(--og-background-color);\n\t\t\tcolor: var(--og-text-color, inherit);\n\t\t\toutline: none;\n\t\t}\n\n\t\tinput:focus { border-color: var(--og-accent-color); }\n\n\t\t.body {\n\t\t\tflex: 1;\n\t\t\toverflow-y: auto;\n\t\t\tpadding: 4px;\n\t\t}\n\n\t\t.category-title {\n\t\t\tfont-size: 0.75em;\n\t\t\tcolor: var(--og-text-secondary-color, #999);\n\t\t\tpadding: 4px 2px 2px;\n\t\t\ttext-transform: uppercase;\n\t\t}\n\n\t\t.grid {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(8, 1fr);\n\t\t\tgap: 1px;\n\t\t}\n\n\t\tbutton.emoji {\n\t\t\tborder: none;\n\t\t\tbackground: transparent;\n\t\t\tcursor: pointer;\n\t\t\tfont-size: 18px;\n\t\t\tline-height: 1;\n\t\t\tpadding: 3px 0;\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\t\tbutton.emoji:hover { background-color: var(--og-hover-color, rgba(127,127,127,.2)); }\n\n\t\t.empty {\n\t\t\tcolor: var(--og-text-secondary-color, #999);\n\t\t\tfont-style: italic;\n\t\t\tpadding: 8px;\n\t\t\ttext-align: center;\n\t\t}\n\t`;\n\n\t@property({ type: Object })\n\tctx: milkdown.ctx.Ctx;\n\n\t@property({ type: Object })\n\tmd: typeof milkdown;\n\n\t@state()\n\tprivate query = '';\n\n\t#insert(emoji: string) {\n\t\tconst view = this.ctx.get(this.md.core.editorViewCtx);\n\t\tview.focus();\n\t\tview.dispatch(view.state.tr.insertText(emoji).scrollIntoView());\n\t}\n\n\t#onSearch = (e: Event) => {\n\t\tthis.query = (e.target as HTMLInputElement).value.trim().toLowerCase();\n\t};\n\n\tprivate renderGrid(items: EmojiEntry[]) {\n\t\treturn html`<div class=\"grid\">${items.map(item => html`\n\t\t\t<button\n\t\t\t\tclass=\"emoji\"\n\t\t\t\ttitle=\"${item.k.split(' ')[0]}\"\n\t\t\t\t@mousedown=\"${(e: MouseEvent) => { e.preventDefault(); e.stopPropagation(); this.#insert(item.e); }}\">\n\t\t\t\t${item.e}\n\t\t\t</button>\n\t\t`)}</div>`;\n\t}\n\n\trender() {\n\t\tconst q = this.query;\n\t\tconst filtered = q\n\t\t\t? CATEGORIES.map(c => ({ label: c.label, items: c.items.filter(i => i.k.includes(q)) })).filter(c => c.items.length)\n\t\t\t: CATEGORIES;\n\n\t\treturn html`\n\t\t\t<div class=\"search\">\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"${msg('Search emoji')}\"\n\t\t\t\t\t.value=\"${this.query}\"\n\t\t\t\t\t@input=\"${this.#onSearch}\"\n\t\t\t\t\t@mousedown=\"${(e: MouseEvent) => e.stopPropagation()}\">\n\t\t\t</div>\n\t\t\t<div class=\"body\">\n\t\t\t\t${filtered.length ? filtered.map(c => html`\n\t\t\t\t\t<div class=\"category-title\">${c.label()}</div>\n\t\t\t\t\t${this.renderGrid(c.items)}\n\t\t\t\t`) : html`<div class=\"empty\">${msg('No emoji found')}</div>`}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import type * as milkdown from '@omegagrid/milkdown-kit';
2
2
  export * from './blockEditMenu';
3
3
  export * from './htmlBlock';
4
+ export * from './calloutBlock';
5
+ export * from './emojiPicker';
4
6
  export * from './linkEdit';
5
7
  export type DefineFeature<TConfig = unknown> = (editor: milkdown.core.Editor, config?: TConfig) => void | Promise<void>;
6
8
  export declare function configureFeatures(features: EditorFeature[], md: typeof milkdown): (ctx: milkdown.ctx.Ctx) => void;
@@ -15,7 +17,8 @@ export declare enum EditorFeature {
15
17
  Table = "table",
16
18
  Html = "html",
17
19
  Emoji = "emoji",
18
- Toc = "toc"
20
+ Toc = "toc",
21
+ Callout = "callout"
19
22
  }
20
23
  export type FeatureDefinition = {
21
24
  default: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAoBzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,OAAO,IAAI,CAC9C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,MAAM,CAAC,EAAE,OAAO,KACZ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,OAAO,QAAQ,IACvE,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,UAG7B;AAGD,oBAAY,aAAa;IACxB,SAAS,eAAe;IACxB,MAAM,WAAW;IACjB,UAAU,gBAAgB;IAE1B,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;CACX;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAA;CAChB,CAAC;AASF,wBAAgB,WAAW,CAC1B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,EAAE,EAAE,OAAO,QAAQ,EACnB,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAC,MAAM,CAAC;CAC1D,yCAyJD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAWzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,OAAO,IAAI,CAC9C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,MAAM,CAAC,EAAE,OAAO,KACZ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,OAAO,QAAQ,IACvE,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,UAG7B;AAGD,oBAAY,aAAa;IACxB,SAAS,eAAe;IACxB,MAAM,WAAW;IACjB,UAAU,gBAAgB;IAE1B,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,OAAO,YAAY;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAA;CAChB,CAAC;AASF,wBAAgB,WAAW,CAC1B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,EAAE,EAAE,OAAO,QAAQ,EACnB,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAC,MAAM,CAAC;CAC1D,yCA8JD"}
@@ -1 +1 @@
1
- import{config,icon}from"@fortawesome/fontawesome-svg-core";import{BlockHandleView}from"./blockEdit";import{msg}from"@omegagrid/localize";import{ToolbarView}from"./toolbar";import{createPlaceHolder}from"./placeholder";import{createCodeBlockConfig,createCodeBlockView}from"./codeBlock";import{createHtmlBlockConfig,createHtmlBlockView}from"./htmlBlock";import{createTocBlock}from"./tocBlock";import linkEdit from"./linkEdit";function iconSvg(e,o="1em"){const t=icon({prefix:config.styleDefault,iconName:e})?.html?.[0];if(!t)return"";const i=`box-sizing:content-box;display:inline-block;overflow:visible;vertical-align:-0.125em;width:${o};height:${o}`;return t.replace(/<svg\b/,`<svg style="${i}"`)}export*from"./blockEditMenu";export*from"./htmlBlock";export*from"./linkEdit";export function configureFeatures(e,o){return t=>{t.inject(o.ctx.createSlice([],"FeaturesCtx"),e)}}export var EditorFeature;!function(e){e.BlockEdit="block-edit",e.Cursor="cursor",e.CodeEditor="code-editor",e.LinkTooltip="link-tooltip",e.ImageBlock="image-block",e.Toolbar="toolbar",e.Placeholder="placeholder",e.Table="table",e.Html="html",e.Emoji="emoji",e.Toc="toc"}(EditorFeature||(EditorFeature={}));const createModifyImageUrl=e=>o=>o?e(o):o;export function getFeatures(e,o,t){const i=t.modifyImageUrl?createModifyImageUrl(t.modifyImageUrl):null;return new Map([[EditorFeature.BlockEdit,{default:!0,init:()=>{e.config((e=>{e.set(o.plugins.block.blockConfig.key,{filterNodes:e=>!o.prose.findParent((e=>["table","blockquote"].includes(e.type.name)))(e)}),e.set(o.plugins.block.block.key,{view:()=>new BlockHandleView(e,o)})})).use(o.plugins.block.block)}}],[EditorFeature.Cursor,{default:!0,init:()=>{e.config((e=>{e.update(o.plugins.cursor.dropCursorConfig.key,(()=>({class:"md-editor-drop-cursor",width:4})))})).use(o.plugins.cursor.cursor)}}],[EditorFeature.ImageBlock,{default:!0,init:()=>{e.config((e=>{e.update(o.components.imageInline.inlineImageConfig.key,(e=>({uploadButton:iconSvg("upload","1em"),uploadPlaceholderText:msg("or paste link"),imageIcon:iconSvg("image","20px"),confirmButton:msg("Confirm"),onUpload:t.onUpload,proxyDomURL:i}))),e.update(o.components.imageBlock.imageBlockConfig.key,(e=>({uploadButton:iconSvg("upload","1em"),uploadPlaceholderText:msg("or paste link"),imageIcon:iconSvg("image","20px"),confirmButton:msg("Confirm"),captionIcon:iconSvg("comment","24px"),captionPlaceholderText:msg("Write Image Caption"),onUpload:t.onUpload,proxyDomURL:i})))})).use(o.components.imageBlock.imageBlockComponent).use(o.components.imageInline.imageInlineComponent)}}],[EditorFeature.LinkTooltip,{default:!0,init:()=>{const o=linkEdit.getPlugin();e.config(linkEdit.configure).use(o)}}],[EditorFeature.Toolbar,{default:!0,init:()=>{const t=o.plugins.tooltip.tooltipFactory("MARKDOWN_TOOLBAR");e.config((e=>{e.set(t.key,{view:t=>new ToolbarView(e,t,o)})})).use(t)}}],[EditorFeature.Placeholder,{default:!0,init:()=>{const{config:t,plugin:i}=createPlaceHolder(o);e.config((e=>{e.update(t.key,(e=>({...e})))})).use(i).use(t)}}],[EditorFeature.Table,{default:!0,init:()=>{e.config((e=>{e.update(o.components.tableBlock.tableBlockConfig.key,(e=>({renderButton:e=>{switch(e){case"add_row":case"add_col":return iconSvg("plus","16px");case"delete_row":case"delete_col":return iconSvg("trash","16px");case"align_col_left":return iconSvg("align-left","16px");case"align_col_center":return iconSvg("align-center","16px");case"align_col_right":return iconSvg("align-right","16px");case"col_drag_handle":return iconSvg("grip-lines-vertical","16px");case"row_drag_handle":return iconSvg("grip-lines","16px")}}})))})).use(o.components.tableBlock.tableBlock)}}],[EditorFeature.CodeEditor,{default:!0,init:()=>{const t=createCodeBlockConfig(o),i=createCodeBlockView(o);e.config((e=>{e.update(t.key,(e=>({})))})).use([i,t])}}],[EditorFeature.Html,{default:!0,init:()=>{const t=createHtmlBlockConfig(o),i=createHtmlBlockView(o);e.config((e=>{e.update(t.key,(e=>({})))})).use([i,t])}}],[EditorFeature.Emoji,{default:!0,init:()=>{o.plugins.emoji&&e.use(o.plugins.emoji.emoji)}}],[EditorFeature.Toc,{default:!0,init:()=>{const t=createTocBlock(o);e.config((e=>{e.update(t.tocConfig.key,(e=>({})))})).use(t.plugins)}}]])}
1
+ import{BlockHandleView}from"./blockEdit";import{msg}from"@omegagrid/localize";import{ToolbarView}from"./toolbar";import{createPlaceHolder}from"./placeholder";import{createCodeBlockConfig,createCodeBlockView}from"./codeBlock";import{createHtmlBlockConfig,createHtmlBlockView}from"./htmlBlock";import{createTocBlock}from"./tocBlock";import{createCalloutBlock}from"./calloutBlock";import{iconSvg}from"./utils";import linkEdit from"./linkEdit";export*from"./blockEditMenu";export*from"./htmlBlock";export*from"./calloutBlock";export*from"./emojiPicker";export*from"./linkEdit";export function configureFeatures(o,e){return t=>{t.inject(e.ctx.createSlice([],"FeaturesCtx"),o)}}export var EditorFeature;!function(o){o.BlockEdit="block-edit",o.Cursor="cursor",o.CodeEditor="code-editor",o.LinkTooltip="link-tooltip",o.ImageBlock="image-block",o.Toolbar="toolbar",o.Placeholder="placeholder",o.Table="table",o.Html="html",o.Emoji="emoji",o.Toc="toc",o.Callout="callout"}(EditorFeature||(EditorFeature={}));const createModifyImageUrl=o=>e=>e?o(e):e;export function getFeatures(o,e,t){const i=t.modifyImageUrl?createModifyImageUrl(t.modifyImageUrl):null;return new Map([[EditorFeature.BlockEdit,{default:!0,init:()=>{o.config((o=>{o.set(e.plugins.block.blockConfig.key,{filterNodes:o=>!e.prose.findParent((o=>["table","blockquote"].includes(o.type.name)))(o)}),o.set(e.plugins.block.block.key,{view:()=>new BlockHandleView(o,e)})})).use(e.plugins.block.block)}}],[EditorFeature.Cursor,{default:!0,init:()=>{o.config((o=>{o.update(e.plugins.cursor.dropCursorConfig.key,(()=>({class:"md-editor-drop-cursor",width:4})))})).use(e.plugins.cursor.cursor)}}],[EditorFeature.ImageBlock,{default:!0,init:()=>{o.config((o=>{o.update(e.components.imageInline.inlineImageConfig.key,(o=>({uploadButton:iconSvg("upload","1em"),uploadPlaceholderText:msg("or paste link"),imageIcon:iconSvg("image","20px"),confirmButton:msg("Confirm"),onUpload:t.onUpload,proxyDomURL:i}))),o.update(e.components.imageBlock.imageBlockConfig.key,(o=>({uploadButton:iconSvg("upload","1em"),uploadPlaceholderText:msg("or paste link"),imageIcon:iconSvg("image","20px"),confirmButton:msg("Confirm"),captionIcon:iconSvg("comment","24px"),captionPlaceholderText:msg("Write Image Caption"),onUpload:t.onUpload,proxyDomURL:i})))})).use(e.components.imageBlock.imageBlockComponent).use(e.components.imageInline.imageInlineComponent)}}],[EditorFeature.LinkTooltip,{default:!0,init:()=>{const e=linkEdit.getPlugin();o.config(linkEdit.configure).use(e)}}],[EditorFeature.Toolbar,{default:!0,init:()=>{const t=e.plugins.tooltip.tooltipFactory("MARKDOWN_TOOLBAR");o.config((o=>{o.set(t.key,{view:t=>new ToolbarView(o,t,e)})})).use(t)}}],[EditorFeature.Placeholder,{default:!0,init:()=>{const{config:t,plugin:i}=createPlaceHolder(e);o.config((o=>{o.update(t.key,(o=>({...o})))})).use(i).use(t)}}],[EditorFeature.Table,{default:!0,init:()=>{o.config((o=>{o.update(e.components.tableBlock.tableBlockConfig.key,(o=>({renderButton:o=>{switch(o){case"add_row":case"add_col":return iconSvg("plus","16px");case"delete_row":case"delete_col":return iconSvg("trash","16px");case"align_col_left":return iconSvg("align-left","16px");case"align_col_center":return iconSvg("align-center","16px");case"align_col_right":return iconSvg("align-right","16px");case"col_drag_handle":return iconSvg("grip-lines-vertical","16px");case"row_drag_handle":return iconSvg("grip-lines","16px")}}})))})).use(e.components.tableBlock.tableBlock)}}],[EditorFeature.CodeEditor,{default:!0,init:()=>{const t=createCodeBlockConfig(e),i=createCodeBlockView(e);o.config((o=>{o.update(t.key,(o=>({})))})).use([i,t])}}],[EditorFeature.Html,{default:!0,init:()=>{const t=createHtmlBlockConfig(e),i=createHtmlBlockView(e);o.config((o=>{o.update(t.key,(o=>({})))})).use([i,t])}}],[EditorFeature.Emoji,{default:!0,init:()=>{e.plugins.emoji&&o.use(e.plugins.emoji.emoji)}}],[EditorFeature.Toc,{default:!0,init:()=>{const t=createTocBlock(e);o.config((o=>{o.update(t.tocConfig.key,(o=>({})))})).use(t.plugins)}}],[EditorFeature.Callout,{default:!0,init:()=>{o.use(createCalloutBlock(e).plugins)}}]])}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n// import { Editor } from '@milkdown/kit/core';\n// import { createSlice } from '@milkdown/kit/ctx';\n// import { BlockProvider, block, blockConfig } from '@milkdown/kit/plugin/block'\nimport { config, icon, IconName, IconPrefix } from '@fortawesome/fontawesome-svg-core';\nimport { BlockHandleView } from './blockEdit';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { msg } from '@omegagrid/localize';\nimport { ToolbarView } from './toolbar';\nimport { createPlaceHolder } from './placeholder';\nimport { createCodeBlockConfig, createCodeBlockView } from './codeBlock';\nimport { createHtmlBlockConfig, createHtmlBlockView } from './htmlBlock';\nimport { createTocBlock } from './tocBlock';\nimport linkEdit from './linkEdit';\n\n// Milkdown's <Icon> component runs config-supplied icon HTML through DOMPurify,\n// which strips unknown custom elements like <og-icon>. Render the SVG directly instead.\nfunction iconSvg(name: string, size: string = '1em'): string {\n\tconst html = icon(\n\t\t{ prefix: config.styleDefault as IconPrefix, iconName: name as IconName },\n\t)?.html?.[0];\n\tif (!html) return '';\n\tconst style = `box-sizing:content-box;display:inline-block;overflow:visible;vertical-align:-0.125em;width:${size};height:${size}`;\n\treturn html.replace(/<svg\\b/, `<svg style=\"${style}\"`);\n}\n\nexport * from './blockEditMenu';\nexport * from './htmlBlock';\nexport * from './linkEdit';\n\nexport type DefineFeature<TConfig = unknown> = (\n\teditor: milkdown.core.Editor,\n\tconfig?: TConfig\n) => void | Promise<void>\n\nexport function configureFeatures(features: EditorFeature[], md: typeof milkdown) {\n\treturn (ctx: milkdown.ctx.Ctx) => {\n\t\tctx.inject(md.ctx.createSlice([] as EditorFeature[], 'FeaturesCtx'), features)\n\t}\n}\n\n\nexport enum EditorFeature {\n\tBlockEdit = 'block-edit',\n\tCursor = 'cursor',\n\tCodeEditor = 'code-editor',\n\t// ListItem = 'list-item',\n\tLinkTooltip = 'link-tooltip',\n\tImageBlock = 'image-block',\n\tToolbar = 'toolbar',\n\tPlaceholder = 'placeholder',\n\tTable = 'table',\n\tHtml = 'html',\n\tEmoji = 'emoji',\n\tToc = 'toc'\n}\n\nexport type FeatureDefinition = {\n\tdefault: boolean,\n\tinit: () => void\n};\n\nconst createModifyImageUrl = (fn: (url: string) => Promise<string>|string) => {\n\treturn (url: string): Promise<string> | string => {\n\t\tif (!url) return url;\n\t\treturn fn(url);\n\t};\n};\n\nexport function getFeatures(\n\teditor: milkdown.core.Editor,\n\tmd: typeof milkdown,\n\toptions: {\n\t\tonUpload?: (file: File) => Promise<string>,\n\t\tmodifyImageUrl?: (file: string) => Promise<string>|string,\n\t}\n) {\n\tconst modifyImageUrl = options.modifyImageUrl ? createModifyImageUrl(options.modifyImageUrl) : null;\n\treturn new Map<EditorFeature, FeatureDefinition>([\n\t\t[EditorFeature.BlockEdit, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(md.plugins.block.blockConfig.key, {\n\t\t\t\t\t\tfilterNodes: (pos) => {\n\t\t\t\t\t\tconst filter = md.prose.findParent((node) =>\n\t\t\t\t\t\t\t['table', 'blockquote'].includes(node.type.name)\n\t\t\t\t\t\t)(pos)\n\t\t\t\t\t\tif (filter) return false\n\t\t\t\t\t\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tctx.set(md.plugins.block.block.key, {\n\t\t\t\t\t\tview: () => new BlockHandleView(ctx, md),\n\t\t\t\t\t})\n\t\t\t\t}).use(md.plugins.block.block);\n\t\t\t\t// .config((ctx) => configureMenu(ctx, config))\n\t\t\t\t// .use(menuAPI)\n\t\t\t\t// .use(menu)\n\t\t\t}\n\t\t}], [EditorFeature.Cursor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.plugins.cursor.dropCursorConfig.key, () => ({\n\t\t\t\t\t\tclass: 'md-editor-drop-cursor',\n\t\t\t\t\t\twidth: 4,\n\t\t\t\t\t\t// color: '#ff0000',\n\t\t\t\t\t}))\n\t\t\t\t}).use(md.plugins.cursor.cursor)\n\t\t\t}\n\t\t}], [EditorFeature.ImageBlock, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.imageInline.inlineImageConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: iconSvg('upload', '1em'),\n\t\t\t\t\t\tuploadPlaceholderText: msg('or paste link'),\n\t\t\t\t\t\timageIcon: iconSvg('image', '20px'),\n\t\t\t\t\t\tconfirmButton: msg('Confirm'),\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t\tctx.update(md.components.imageBlock.imageBlockConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: iconSvg('upload', '1em'),\n\t\t\t\t\t\tuploadPlaceholderText: msg('or paste link'),\n\t\t\t\t\t\timageIcon: iconSvg('image', '20px'),\n\t\t\t\t\t\tconfirmButton: msg('Confirm'),\n\t\t\t\t\t\tcaptionIcon: iconSvg('comment', '24px'),\n\t\t\t\t\t\tcaptionPlaceholderText: msg('Write Image Caption'),\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t})\n\t\t\t\t.use(md.components.imageBlock.imageBlockComponent)\n\t\t\t\t.use(md.components.imageInline.imageInlineComponent)\n\t\t\t}\n\t\t}], [EditorFeature.LinkTooltip, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\t// const toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_LINK_EDIT_TOOLBAR');\n\t\t\t\tconst plugin = linkEdit.getPlugin();\n\t\t\t\teditor.config(linkEdit.configure)\n\t\t\t\t/*.config((ctx) => {\n\t\t\t\t\tctx.update(linkEdit.getState().key, (prev) => ({...prev}));\n\t\t\t\t})*/\n\t\t\t\t.use(plugin);\n\t\t\t}\n\t\t}], [EditorFeature.Toolbar, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_TOOLBAR');\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(toolbar.key, {\n\t\t\t\t\t\tview: (view) => new ToolbarView(ctx, view, md),\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.use(toolbar)\n\t\t\t}\n\t\t}], [EditorFeature.Placeholder, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst { config, plugin } = createPlaceHolder(md);\n\t\t\t\t\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(config.key, (prev) => {\n\t\t\t\t\t\treturn {...prev};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.use(plugin)\n\t\t\t\t.use(config)\n\t\t\t}\n\t\t}], [EditorFeature.Table, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.tableBlock.tableBlockConfig.key, (_prev) => ({\n\t\t\t\t\t\trenderButton: (renderType) => {\n\t\t\t\t\t\t\tswitch (renderType) {\n\t\t\t\t\t\t\t\tcase 'add_row': return iconSvg('plus', '16px');\n\t\t\t\t\t\t\t\tcase 'add_col': return iconSvg('plus', '16px');\n\t\t\t\t\t\t\t\tcase 'delete_row': return iconSvg('trash', '16px');\n\t\t\t\t\t\t\t\tcase 'delete_col': return iconSvg('trash', '16px');\n\t\t\t\t\t\t\t\tcase 'align_col_left': return iconSvg('align-left', '16px');\n\t\t\t\t\t\t\t\tcase 'align_col_center': return iconSvg('align-center', '16px');\n\t\t\t\t\t\t\t\tcase 'align_col_right': return iconSvg('align-right', '16px');\n\t\t\t\t\t\t\t\tcase 'col_drag_handle': return iconSvg('grip-lines-vertical', '16px');\n\t\t\t\t\t\t\t\tcase 'row_drag_handle': return iconSvg('grip-lines', '16px');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t})\n\t\t\t\t.use(md.components.tableBlock.tableBlock)\n\t\t\t}\n\t\t}], [EditorFeature.CodeEditor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst codeBlockConfig = createCodeBlockConfig(md);\n\t\t\t\tconst codeBlockView = createCodeBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(codeBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([codeBlockView, codeBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Html, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst htmlBlockConfig = createHtmlBlockConfig(md);\n\t\t\t\tconst htmlBlockView = createHtmlBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(htmlBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([htmlBlockView, htmlBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Emoji, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tif (md.plugins.emoji) editor.use(md.plugins.emoji.emoji);\n\t\t\t}\n\t\t}], [EditorFeature.Toc, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toc = createTocBlock(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(toc.tocConfig.key, (_d) => ({}));\n\t\t\t\t}).use(toc.plugins);\n\t\t\t}\n\t\t}]\n\t]);\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n// import { Editor } from '@milkdown/kit/core';\n// import { createSlice } from '@milkdown/kit/ctx';\n// import { BlockProvider, block, blockConfig } from '@milkdown/kit/plugin/block'\nimport { BlockHandleView } from './blockEdit';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { msg } from '@omegagrid/localize';\nimport { ToolbarView } from './toolbar';\nimport { createPlaceHolder } from './placeholder';\nimport { createCodeBlockConfig, createCodeBlockView } from './codeBlock';\nimport { createHtmlBlockConfig, createHtmlBlockView } from './htmlBlock';\nimport { createTocBlock } from './tocBlock';\nimport { createCalloutBlock } from './calloutBlock';\nimport { iconSvg } from './utils';\nimport linkEdit from './linkEdit';\n\nexport * from './blockEditMenu';\nexport * from './htmlBlock';\nexport * from './calloutBlock';\nexport * from './emojiPicker';\nexport * from './linkEdit';\n\nexport type DefineFeature<TConfig = unknown> = (\n\teditor: milkdown.core.Editor,\n\tconfig?: TConfig\n) => void | Promise<void>\n\nexport function configureFeatures(features: EditorFeature[], md: typeof milkdown) {\n\treturn (ctx: milkdown.ctx.Ctx) => {\n\t\tctx.inject(md.ctx.createSlice([] as EditorFeature[], 'FeaturesCtx'), features)\n\t}\n}\n\n\nexport enum EditorFeature {\n\tBlockEdit = 'block-edit',\n\tCursor = 'cursor',\n\tCodeEditor = 'code-editor',\n\t// ListItem = 'list-item',\n\tLinkTooltip = 'link-tooltip',\n\tImageBlock = 'image-block',\n\tToolbar = 'toolbar',\n\tPlaceholder = 'placeholder',\n\tTable = 'table',\n\tHtml = 'html',\n\tEmoji = 'emoji',\n\tToc = 'toc',\n\tCallout = 'callout'\n}\n\nexport type FeatureDefinition = {\n\tdefault: boolean,\n\tinit: () => void\n};\n\nconst createModifyImageUrl = (fn: (url: string) => Promise<string>|string) => {\n\treturn (url: string): Promise<string> | string => {\n\t\tif (!url) return url;\n\t\treturn fn(url);\n\t};\n};\n\nexport function getFeatures(\n\teditor: milkdown.core.Editor,\n\tmd: typeof milkdown,\n\toptions: {\n\t\tonUpload?: (file: File) => Promise<string>,\n\t\tmodifyImageUrl?: (file: string) => Promise<string>|string,\n\t}\n) {\n\tconst modifyImageUrl = options.modifyImageUrl ? createModifyImageUrl(options.modifyImageUrl) : null;\n\treturn new Map<EditorFeature, FeatureDefinition>([\n\t\t[EditorFeature.BlockEdit, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(md.plugins.block.blockConfig.key, {\n\t\t\t\t\t\tfilterNodes: (pos) => {\n\t\t\t\t\t\tconst filter = md.prose.findParent((node) =>\n\t\t\t\t\t\t\t['table', 'blockquote'].includes(node.type.name)\n\t\t\t\t\t\t)(pos)\n\t\t\t\t\t\tif (filter) return false\n\t\t\t\t\t\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tctx.set(md.plugins.block.block.key, {\n\t\t\t\t\t\tview: () => new BlockHandleView(ctx, md),\n\t\t\t\t\t})\n\t\t\t\t}).use(md.plugins.block.block);\n\t\t\t\t// .config((ctx) => configureMenu(ctx, config))\n\t\t\t\t// .use(menuAPI)\n\t\t\t\t// .use(menu)\n\t\t\t}\n\t\t}], [EditorFeature.Cursor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.plugins.cursor.dropCursorConfig.key, () => ({\n\t\t\t\t\t\tclass: 'md-editor-drop-cursor',\n\t\t\t\t\t\twidth: 4,\n\t\t\t\t\t\t// color: '#ff0000',\n\t\t\t\t\t}))\n\t\t\t\t}).use(md.plugins.cursor.cursor)\n\t\t\t}\n\t\t}], [EditorFeature.ImageBlock, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.imageInline.inlineImageConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: iconSvg('upload', '1em'),\n\t\t\t\t\t\tuploadPlaceholderText: msg('or paste link'),\n\t\t\t\t\t\timageIcon: iconSvg('image', '20px'),\n\t\t\t\t\t\tconfirmButton: msg('Confirm'),\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t\tctx.update(md.components.imageBlock.imageBlockConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: iconSvg('upload', '1em'),\n\t\t\t\t\t\tuploadPlaceholderText: msg('or paste link'),\n\t\t\t\t\t\timageIcon: iconSvg('image', '20px'),\n\t\t\t\t\t\tconfirmButton: msg('Confirm'),\n\t\t\t\t\t\tcaptionIcon: iconSvg('comment', '24px'),\n\t\t\t\t\t\tcaptionPlaceholderText: msg('Write Image Caption'),\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t})\n\t\t\t\t.use(md.components.imageBlock.imageBlockComponent)\n\t\t\t\t.use(md.components.imageInline.imageInlineComponent)\n\t\t\t}\n\t\t}], [EditorFeature.LinkTooltip, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\t// const toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_LINK_EDIT_TOOLBAR');\n\t\t\t\tconst plugin = linkEdit.getPlugin();\n\t\t\t\teditor.config(linkEdit.configure)\n\t\t\t\t/*.config((ctx) => {\n\t\t\t\t\tctx.update(linkEdit.getState().key, (prev) => ({...prev}));\n\t\t\t\t})*/\n\t\t\t\t.use(plugin);\n\t\t\t}\n\t\t}], [EditorFeature.Toolbar, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_TOOLBAR');\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(toolbar.key, {\n\t\t\t\t\t\tview: (view) => new ToolbarView(ctx, view, md),\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.use(toolbar)\n\t\t\t}\n\t\t}], [EditorFeature.Placeholder, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst { config, plugin } = createPlaceHolder(md);\n\t\t\t\t\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(config.key, (prev) => {\n\t\t\t\t\t\treturn {...prev};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.use(plugin)\n\t\t\t\t.use(config)\n\t\t\t}\n\t\t}], [EditorFeature.Table, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.tableBlock.tableBlockConfig.key, (_prev) => ({\n\t\t\t\t\t\trenderButton: (renderType) => {\n\t\t\t\t\t\t\tswitch (renderType) {\n\t\t\t\t\t\t\t\tcase 'add_row': return iconSvg('plus', '16px');\n\t\t\t\t\t\t\t\tcase 'add_col': return iconSvg('plus', '16px');\n\t\t\t\t\t\t\t\tcase 'delete_row': return iconSvg('trash', '16px');\n\t\t\t\t\t\t\t\tcase 'delete_col': return iconSvg('trash', '16px');\n\t\t\t\t\t\t\t\tcase 'align_col_left': return iconSvg('align-left', '16px');\n\t\t\t\t\t\t\t\tcase 'align_col_center': return iconSvg('align-center', '16px');\n\t\t\t\t\t\t\t\tcase 'align_col_right': return iconSvg('align-right', '16px');\n\t\t\t\t\t\t\t\tcase 'col_drag_handle': return iconSvg('grip-lines-vertical', '16px');\n\t\t\t\t\t\t\t\tcase 'row_drag_handle': return iconSvg('grip-lines', '16px');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t})\n\t\t\t\t.use(md.components.tableBlock.tableBlock)\n\t\t\t}\n\t\t}], [EditorFeature.CodeEditor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst codeBlockConfig = createCodeBlockConfig(md);\n\t\t\t\tconst codeBlockView = createCodeBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(codeBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([codeBlockView, codeBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Html, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst htmlBlockConfig = createHtmlBlockConfig(md);\n\t\t\t\tconst htmlBlockView = createHtmlBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(htmlBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([htmlBlockView, htmlBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Emoji, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tif (md.plugins.emoji) editor.use(md.plugins.emoji.emoji);\n\t\t\t}\n\t\t}], [EditorFeature.Toc, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toc = createTocBlock(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(toc.tocConfig.key, (_d) => ({}));\n\t\t\t\t}).use(toc.plugins);\n\t\t\t}\n\t\t}], [EditorFeature.Callout, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.use(createCalloutBlock(md).plugins);\n\t\t\t}\n\t\t}]\n\t]);\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { Attrs, NodeType } from '@omegagrid/milkdown-kit/dist/prose/model';
2
2
  import type { Command, Transaction, Selection } from "@omegagrid/milkdown-kit/dist/prose/state";
3
+ export declare function iconSvg(name: string, size?: string): string;
3
4
  export declare function clearRange(tr: Transaction): Transaction;
4
5
  export declare function setBlockType(tr: Transaction, nodeType: NodeType, attrs?: Attrs | null): Transaction;
5
6
  export declare function wrapInBlockType(tr: Transaction, nodeType: NodeType, attrs?: Attrs | null): Transaction;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/features/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAGhG,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,eAKzC;AAED,wBAAgB,YAAY,CAC3B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAI1B;AAED,wBAAgB,eAAe,CAC9B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAO1B;AAED,wBAAgB,YAAY,CAC3B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAK1B;AAED,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACxB,OAAO,CAQT;AAED,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACxB,OAAO,CAOT;AAGD,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACxB,OAAO,CAOT;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,WAGjD;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,WAG5C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/features/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAMhG,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc,GAAG,MAAM,CAOlE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,eAKzC;AAED,wBAAgB,YAAY,CAC3B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAI1B;AAED,wBAAgB,eAAe,CAC9B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAO1B;AAED,wBAAgB,YAAY,CAC3B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,eAK1B;AAED,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACxB,OAAO,CAQT;AAED,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACxB,OAAO,CAOT;AAGD,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,KAAK,GAAG,IAAW,GACxB,OAAO,CAOT;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,WAGjD;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,WAG5C"}
@@ -1 +1 @@
1
- import{MilkdownLoader}from"../../loader";export function clearRange(e){const{$from:n,$to:o}=e.selection,t=n.pos-n.node().content.size;return t>=0&&(e=e.deleteRange(t,o.pos)),e}export function setBlockType(e,n,o=null){const{from:t,to:r}=e.selection;return e.setBlockType(t,r,n,o)}export function wrapInBlockType(e,n,o=null){const{$from:t,$to:r}=e.selection,l=t.blockRange(r),c=l&&MilkdownLoader.getSync().prose.transform.findWrapping(l,n,o);return c?e.wrap(l,c):null}export function addBlockType(e,n,o=null){const t=n.createAndFill(o);return t?e.replaceSelectionWith(t):null}export function clearContentAndSetBlockType(e,n=null){return(o,t)=>(t&&t(setBlockType(clearRange(o.tr),e,n).scrollIntoView()),!0)}export function clearContentAndWrapInBlockType(e,n=null){return(o,t)=>{const r=wrapInBlockType(clearRange(o.tr),e,n);return!!r&&(t&&t(r.scrollIntoView()),!0)}}export function clearContentAndAddBlockType(e,n=null){return(o,t)=>{const r=addBlockType(clearRange(o.tr),e,n);return!!r&&(t&&t(r.scrollIntoView()),!0)}}export function isInCodeBlock(e){return"code_block"===e.$from.parent.type.name}export function isInList(e){const n=e.$from.node(e.$from.depth-1)?.type;return"list_item"===n?.name}
1
+ import{config,icon}from"@fortawesome/fontawesome-svg-core";import{MilkdownLoader}from"../../loader";export function iconSvg(e,n="1em"){const o=icon({prefix:config.styleDefault,iconName:e})?.html?.[0];if(!o)return"";const t=`box-sizing:content-box;display:inline-block;overflow:visible;vertical-align:-0.125em;width:${n};height:${n}`;return o.replace(/<svg\b/,`<svg style="${t}"`)}export function clearRange(e){const{$from:n,$to:o}=e.selection,t=n.pos-n.node().content.size;return t>=0&&(e=e.deleteRange(t,o.pos)),e}export function setBlockType(e,n,o=null){const{from:t,to:r}=e.selection;return e.setBlockType(t,r,n,o)}export function wrapInBlockType(e,n,o=null){const{$from:t,$to:r}=e.selection,l=t.blockRange(r),c=l&&MilkdownLoader.getSync().prose.transform.findWrapping(l,n,o);return c?e.wrap(l,c):null}export function addBlockType(e,n,o=null){const t=n.createAndFill(o);return t?e.replaceSelectionWith(t):null}export function clearContentAndSetBlockType(e,n=null){return(o,t)=>(t&&t(setBlockType(clearRange(o.tr),e,n).scrollIntoView()),!0)}export function clearContentAndWrapInBlockType(e,n=null){return(o,t)=>{const r=wrapInBlockType(clearRange(o.tr),e,n);return!!r&&(t&&t(r.scrollIntoView()),!0)}}export function clearContentAndAddBlockType(e,n=null){return(o,t)=>{const r=addBlockType(clearRange(o.tr),e,n);return!!r&&(t&&t(r.scrollIntoView()),!0)}}export function isInCodeBlock(e){return"code_block"===e.$from.parent.type.name}export function isInList(e){const n=e.$from.node(e.$from.depth-1)?.type;return"list_item"===n?.name}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/features/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Attrs, NodeType } from '@omegagrid/milkdown-kit/dist/prose/model'\nimport type { Command, Transaction, Selection } from \"@omegagrid/milkdown-kit/dist/prose/state\";\nimport { MilkdownLoader } from \"../../loader\";\n\nexport function clearRange(tr: Transaction) {\n\tconst { $from, $to } = tr.selection;\n\tconst from = $from.pos - $from.node().content.size;\n\tif (from >= 0) tr = tr.deleteRange(from, $to.pos);\n\treturn tr\n}\n\nexport function setBlockType(\n\ttr: Transaction,\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n) {\n\tconst { from, to } = tr.selection\n\treturn tr.setBlockType(from, to, nodeType, attrs)\n}\n\nexport function wrapInBlockType(\n\ttr: Transaction,\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n) {\n\tconst { $from, $to } = tr.selection;\n\tconst range = $from.blockRange($to)\n\tconst wrapping = range && (MilkdownLoader.getSync()).prose.transform.findWrapping(range, nodeType, attrs)\n\tif (!wrapping) return null\n\treturn tr.wrap(range, wrapping)\n}\n\nexport function addBlockType(\n\ttr: Transaction,\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n) {\n\tconst node = nodeType.createAndFill(attrs)\n\tif (!node) return null\n\treturn tr.replaceSelectionWith(node)\n}\n\nexport function clearContentAndSetBlockType(\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n): Command {\n\treturn (state, dispatch) => {\n\t\tif (dispatch) {\n\t\t\tconst tr = setBlockType(clearRange(state.tr), nodeType, attrs)\n\t\t\tdispatch(tr.scrollIntoView())\n\t\t}\n\t\treturn true\n\t}\n}\n\nexport function clearContentAndWrapInBlockType(\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n): Command {\n\treturn (state, dispatch) => {\n\t\tconst tr = wrapInBlockType(clearRange(state.tr), nodeType, attrs)\n\t\tif (!tr) return false\n\t\tif (dispatch) dispatch(tr.scrollIntoView())\n\t\treturn true\n\t}\n}\n\n\nexport function clearContentAndAddBlockType(\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n): Command {\n\treturn (state, dispatch) => {\n\t\tconst tr = addBlockType(clearRange(state.tr), nodeType, attrs)\n\t\tif (!tr) return false;\n\t\tif (dispatch) dispatch(tr.scrollIntoView())\n\t\treturn true\n\t}\n}\n\nexport function isInCodeBlock(selection: Selection) {\n\tconst type = selection.$from.parent.type;\n\treturn type.name === 'code_block';\n}\n\nexport function isInList(selection: Selection) {\n\tconst type = selection.$from.node(selection.$from.depth - 1)?.type;\n\treturn type?.name === 'list_item';\n}"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/features/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Attrs, NodeType } from '@omegagrid/milkdown-kit/dist/prose/model'\nimport type { Command, Transaction, Selection } from \"@omegagrid/milkdown-kit/dist/prose/state\";\nimport { config, icon, IconName, IconPrefix } from \"@fortawesome/fontawesome-svg-core\";\nimport { MilkdownLoader } from \"../../loader\";\n\n// Milkdown's <Icon> component runs config-supplied icon HTML through DOMPurify,\n// which strips unknown custom elements like <og-icon>. Render the SVG directly instead.\nexport function iconSvg(name: string, size: string = '1em'): string {\n\tconst html = icon(\n\t\t{ prefix: config.styleDefault as IconPrefix, iconName: name as IconName },\n\t)?.html?.[0];\n\tif (!html) return '';\n\tconst style = `box-sizing:content-box;display:inline-block;overflow:visible;vertical-align:-0.125em;width:${size};height:${size}`;\n\treturn html.replace(/<svg\\b/, `<svg style=\"${style}\"`);\n}\n\nexport function clearRange(tr: Transaction) {\n\tconst { $from, $to } = tr.selection;\n\tconst from = $from.pos - $from.node().content.size;\n\tif (from >= 0) tr = tr.deleteRange(from, $to.pos);\n\treturn tr\n}\n\nexport function setBlockType(\n\ttr: Transaction,\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n) {\n\tconst { from, to } = tr.selection\n\treturn tr.setBlockType(from, to, nodeType, attrs)\n}\n\nexport function wrapInBlockType(\n\ttr: Transaction,\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n) {\n\tconst { $from, $to } = tr.selection;\n\tconst range = $from.blockRange($to)\n\tconst wrapping = range && (MilkdownLoader.getSync()).prose.transform.findWrapping(range, nodeType, attrs)\n\tif (!wrapping) return null\n\treturn tr.wrap(range, wrapping)\n}\n\nexport function addBlockType(\n\ttr: Transaction,\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n) {\n\tconst node = nodeType.createAndFill(attrs)\n\tif (!node) return null\n\treturn tr.replaceSelectionWith(node)\n}\n\nexport function clearContentAndSetBlockType(\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n): Command {\n\treturn (state, dispatch) => {\n\t\tif (dispatch) {\n\t\t\tconst tr = setBlockType(clearRange(state.tr), nodeType, attrs)\n\t\t\tdispatch(tr.scrollIntoView())\n\t\t}\n\t\treturn true\n\t}\n}\n\nexport function clearContentAndWrapInBlockType(\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n): Command {\n\treturn (state, dispatch) => {\n\t\tconst tr = wrapInBlockType(clearRange(state.tr), nodeType, attrs)\n\t\tif (!tr) return false\n\t\tif (dispatch) dispatch(tr.scrollIntoView())\n\t\treturn true\n\t}\n}\n\n\nexport function clearContentAndAddBlockType(\n\tnodeType: NodeType,\n\tattrs: Attrs | null = null\n): Command {\n\treturn (state, dispatch) => {\n\t\tconst tr = addBlockType(clearRange(state.tr), nodeType, attrs)\n\t\tif (!tr) return false;\n\t\tif (dispatch) dispatch(tr.scrollIntoView())\n\t\treturn true\n\t}\n}\n\nexport function isInCodeBlock(selection: Selection) {\n\tconst type = selection.$from.parent.type;\n\treturn type.name === 'code_block';\n}\n\nexport function isInList(selection: Selection) {\n\tconst type = selection.$from.node(selection.$from.depth - 1)?.type;\n\treturn type?.name === 'list_item';\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"markdownEditor.style.d.ts","sourceRoot":"","sources":["../../src/components/markdownEditor.style.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,KAAK,yBAqOjB,CAAC"}
1
+ {"version":3,"file":"markdownEditor.style.d.ts","sourceRoot":"","sources":["../../src/components/markdownEditor.style.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,KAAK,yBA6OjB,CAAC"}
@@ -136,18 +136,26 @@ import{css}from"lit";export const style=css`
136
136
  }
137
137
 
138
138
  h1 {
139
- font-size: 1.5em;
139
+ font-size: 2em;
140
140
  }
141
141
 
142
142
  h2 {
143
- font-size: 1.3em;
143
+ font-size: 1.7em;
144
144
  }
145
145
 
146
146
  h3 {
147
- font-size: 1.1em;
147
+ font-size: 1.4em;
148
148
  }
149
149
 
150
150
  h4 {
151
+ font-size: 1.2em;
152
+ }
153
+
154
+ h5 {
155
+ font-size: 1.1em;
156
+ }
157
+
158
+ h6 {
151
159
  font-size: 1em;
152
160
  }
153
161
 
@@ -1 +1 @@
1
- {"version":3,"file":"markdownEditor.style.js","sourceRoot":"","sources":["../../src/components/markdownEditor.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,0BAA0B;AAC1B,iCAAiC;AACjC,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,wBAAwB;AACxB,+BAA+B;AAC/B,+BAA+B;AAC/B,uBAAuB;AACvB,yBAAyB;AACzB,sBAAsB;AACtB,8BAA8B;AAC9B,2BAA2B;AAC3B,2BAA2B;AAC3B,8BAA8B;AAC9B,2BAA2B;AAC3B,gCAAgC;AAChC,6BAA6B;AAG7B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqOvB,CAAC","sourcesContent":["import { css } from \"lit\";\n\n// --markdown-font-default\n// --markdown-color-on-background\n// --markdown-color-background\n// --markdown-color-selected\n// --markdown-color-primary\n// --markdown-font-title\n// --markdown-color-inline-code\n// --markdown-color-inline-area\n// --markdown-font-code\n// --markdown-color-hover\n// --markdown-shadow-1\n// --markdown-color-on-surface\n// --markdown-color-surface\n// --markdown-color-outline\n// --markdown-color-on-inverse\n// --markdown-color-inverse\n// --markdown-color-on-secondary\n// --markdown-color-secondary\n\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\t\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tcolor: var(--og-text-color);\n\t\tfont-size: var(--og-font-size);\n\t\tuser-select: text;\n\t\tbackground-color: var(--og-background-color);\n\n\t\t--markdown-color-selected: var(--og-accent-color);\n\t\t--markdown-color-outline: var(--og-accent-color);\n\t\t--markdown-color-surface: var(--og-background-color);\n\t}\n\n\t:host([readonly]) og-markdown-block-edit, \n\t:host([readonly]) .operation-item \n\t:host([readonly]) .image-resize-handle {\n\t\tdisplay: none !important;\n\t}\n\n\tog-code-block, og-code-view {\n\t\tborder: 1px solid var(--og-accent-color);\n\t\twhite-space: normal;\n\t}\n\n\t.md-editor-drop-cursor {\n\t\tbackground-color: var(--og-accent-color) !important;\n\t}\n\n\t#container {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t}\n\n\t.milkdown {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tflex-direction: row;\n\t}\n\n\tog-markdown-html-block {\n\t\tborder-width: 0;\n\t}\n\n\tdiv[contenteditable=\"true\"] og-markdown-html-block {\n\t\tborder-width: 1px;\n\t}\n\n\t:host([contentAlignment='center']) .ProseMirror {\n\t\tmargin: 0 auto;\n\t}\n\n\t:host([contentAlignment='left']) .ProseMirror {\n\t\tmargin: 0 auto 0 0;\n\t}\n\n\t:host([contentAlignment='right']) .ProseMirror {\n\t\tmargin: 0 0 0 auto;\n\t}\n\n\tbutton, input {\n\t\tborder: none;\n\t\tbackground: none;\n\t\tbox-shadow: none;\n\t}\n\t\n\tbutton:focus, input:focus {\n\t\toutline: none;\n\t}\n\t\t\n\t:focus-visible {\n\t\toutline: none;\n\t}\n\t\t\t\n\t.ProseMirror-focused {\n\t\toutline: none;\n\t}\n\t\t\n\t.ProseMirror {\n\t\tpadding: 0px 60px 60px;\n\t}\n\t\t\n\t.ProseMirror *::selection {\n\t\tbackground: var(--markdown-color-selected);\n\t\tcolor: var(--og-text-color-2);\n\t}\n\t\t\n\tli.ProseMirror-selectednode {\n\t\tbackground: var(--markdown-color-selected);\n\t\toutline: none;\n\t}\n\t\n\tli.ProseMirror-selectednode::selection {\n\t\tbackground: transparent;\n\t}\n\t\n\tli.ProseMirror-selectednode:after {\n\t\tall: unset;\n\t}\n\t\t\n\t.ProseMirror-selectednode {\n\t\tbackground: var(--markdown-color-selected);\n\t\toutline: none;\n\t\tbackground: color-mix(in srgb, var(--markdown-color-selected), transparent 60%);\n\t}\n\t\n\t.ProseMirror-selectednode::selection {\n\t\tbackground: transparent;\n\t}\n\t\t\n\t.ProseMirror[data-dragging='true'] .ProseMirror-selectednode,\n\t.ProseMirror[data-dragging='true']::selection,\n\t.ProseMirror[data-dragging='true'] *::selection {\n\t\tbackground: transparent;\n\t}\n\t\t\n\t.ProseMirror[data-dragging='true'] input::selection {\n\t\tbackground: var(--markdown-color-selected);\n\t}\n\t\t\n\timg {\n\t\tvertical-align: bottom;\n\t\tmax-width: 100%;\n\t}\n\t\t\n\timg.ProseMirror-selectednode {\n\t\tbackground: none;\n\t\toutline: 2px solid var(--markdown-color-primary);\n\t}\n\t\t\n\th1 {\n\t\tfont-size: 1.5em;\n\t}\n\n\th2 {\n\t\tfont-size: 1.3em;\n\t}\n\n\th3 {\n\t\tfont-size: 1.1em;\n\t}\n\n\th4 {\n\t\tfont-size: 1em;\n\t}\n\n\ta {\n\t\tcolor: #688DC8;\n\t\ttext-decoration: underline;\n\t}\n\t\t\n\tp {\n\t\tfont-size: var(--og-font-size);\n\t\tmargin-block-start: 0.2em;\n\t\tmargin-block-end: 0.2em;\n\t\tpadding: 0px 0;\n\t}\n\n\tcode {\n\t\tpadding: 2px 4px;\n\t\tfont-size: 90%;\n\t\tcolor: #c7254e;\n\t\tbackground-color: var(--og-background-color-3);\n\t\tborder-radius: 0;\n\t}\n\t\t\n\tpre {\n\t\tbackground: color-mix(in srgb, var(--markdown-color-inline-area), transparent 40%);\n\t\tpadding: 10px;\n\t\tborder-radius: 4px;\n\t}\n\t\n\tpre code {\n\t\tpadding: 0;\n\t\tbackground: transparent;\n\t}\n\t\t\n\tblockquote {\n\t\tposition: relative;\n\t\tpadding-left: 40px;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tbox-sizing: content-box;\n\t\tmargin: 4px 0;\n\t}\n\t\n\tblockquote::before {\n\t\tcontent: '';\n\t\twidth: 4px;\n\t\tleft: 0;\n\t\ttop: 4px;\n\t\tbottom: 4px;\n\t\tposition: absolute;\n\t\tbackground: var(--markdown-color-selected);\n\t\tborder-radius: 100px;\n\t}\n\t\t\n\thr {\n\t\tborder: none;\n\t\tbackground-color: color-mix(in srgb, var(--markdown-color-outline), transparent 80%);\n\t\tbackground-clip: content-box;\n\t\tpadding: 6px 0;\n\t\theight: 13px;\n\t\tposition: relative;\n\t}\n\t\n\thr.ProseMirror-selectednode {\n\t\toutline: none;\n\t\tbackground-color: color-mix(in srgb, var(--markdown-color-outline), transparent 20%);\n\t\tbackground-clip: content-box;\n\t}\n\t\n\thr.ProseMirror-selectednode::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\tbackground-color: color-mix(in srgb, var(--markdown-color-outline), transparent 80%);\n\t\tpointer-events: none;\n\t}\n`;\n"]}
1
+ {"version":3,"file":"markdownEditor.style.js","sourceRoot":"","sources":["../../src/components/markdownEditor.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,0BAA0B;AAC1B,iCAAiC;AACjC,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,wBAAwB;AACxB,+BAA+B;AAC/B,+BAA+B;AAC/B,uBAAuB;AACvB,yBAAyB;AACzB,sBAAsB;AACtB,8BAA8B;AAC9B,2BAA2B;AAC3B,2BAA2B;AAC3B,8BAA8B;AAC9B,2BAA2B;AAC3B,gCAAgC;AAChC,6BAA6B;AAG7B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6OvB,CAAC","sourcesContent":["import { css } from \"lit\";\n\n// --markdown-font-default\n// --markdown-color-on-background\n// --markdown-color-background\n// --markdown-color-selected\n// --markdown-color-primary\n// --markdown-font-title\n// --markdown-color-inline-code\n// --markdown-color-inline-area\n// --markdown-font-code\n// --markdown-color-hover\n// --markdown-shadow-1\n// --markdown-color-on-surface\n// --markdown-color-surface\n// --markdown-color-outline\n// --markdown-color-on-inverse\n// --markdown-color-inverse\n// --markdown-color-on-secondary\n// --markdown-color-secondary\n\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\t\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tcolor: var(--og-text-color);\n\t\tfont-size: var(--og-font-size);\n\t\tuser-select: text;\n\t\tbackground-color: var(--og-background-color);\n\n\t\t--markdown-color-selected: var(--og-accent-color);\n\t\t--markdown-color-outline: var(--og-accent-color);\n\t\t--markdown-color-surface: var(--og-background-color);\n\t}\n\n\t:host([readonly]) og-markdown-block-edit, \n\t:host([readonly]) .operation-item \n\t:host([readonly]) .image-resize-handle {\n\t\tdisplay: none !important;\n\t}\n\n\tog-code-block, og-code-view {\n\t\tborder: 1px solid var(--og-accent-color);\n\t\twhite-space: normal;\n\t}\n\n\t.md-editor-drop-cursor {\n\t\tbackground-color: var(--og-accent-color) !important;\n\t}\n\n\t#container {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t}\n\n\t.milkdown {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tflex-direction: row;\n\t}\n\n\tog-markdown-html-block {\n\t\tborder-width: 0;\n\t}\n\n\tdiv[contenteditable=\"true\"] og-markdown-html-block {\n\t\tborder-width: 1px;\n\t}\n\n\t:host([contentAlignment='center']) .ProseMirror {\n\t\tmargin: 0 auto;\n\t}\n\n\t:host([contentAlignment='left']) .ProseMirror {\n\t\tmargin: 0 auto 0 0;\n\t}\n\n\t:host([contentAlignment='right']) .ProseMirror {\n\t\tmargin: 0 0 0 auto;\n\t}\n\n\tbutton, input {\n\t\tborder: none;\n\t\tbackground: none;\n\t\tbox-shadow: none;\n\t}\n\t\n\tbutton:focus, input:focus {\n\t\toutline: none;\n\t}\n\t\t\n\t:focus-visible {\n\t\toutline: none;\n\t}\n\t\t\t\n\t.ProseMirror-focused {\n\t\toutline: none;\n\t}\n\t\t\n\t.ProseMirror {\n\t\tpadding: 0px 60px 60px;\n\t}\n\t\t\n\t.ProseMirror *::selection {\n\t\tbackground: var(--markdown-color-selected);\n\t\tcolor: var(--og-text-color-2);\n\t}\n\t\t\n\tli.ProseMirror-selectednode {\n\t\tbackground: var(--markdown-color-selected);\n\t\toutline: none;\n\t}\n\t\n\tli.ProseMirror-selectednode::selection {\n\t\tbackground: transparent;\n\t}\n\t\n\tli.ProseMirror-selectednode:after {\n\t\tall: unset;\n\t}\n\t\t\n\t.ProseMirror-selectednode {\n\t\tbackground: var(--markdown-color-selected);\n\t\toutline: none;\n\t\tbackground: color-mix(in srgb, var(--markdown-color-selected), transparent 60%);\n\t}\n\t\n\t.ProseMirror-selectednode::selection {\n\t\tbackground: transparent;\n\t}\n\t\t\n\t.ProseMirror[data-dragging='true'] .ProseMirror-selectednode,\n\t.ProseMirror[data-dragging='true']::selection,\n\t.ProseMirror[data-dragging='true'] *::selection {\n\t\tbackground: transparent;\n\t}\n\t\t\n\t.ProseMirror[data-dragging='true'] input::selection {\n\t\tbackground: var(--markdown-color-selected);\n\t}\n\t\t\n\timg {\n\t\tvertical-align: bottom;\n\t\tmax-width: 100%;\n\t}\n\t\t\n\timg.ProseMirror-selectednode {\n\t\tbackground: none;\n\t\toutline: 2px solid var(--markdown-color-primary);\n\t}\n\t\t\n\th1 {\n\t\tfont-size: 2em;\n\t}\n\n\th2 {\n\t\tfont-size: 1.7em;\n\t}\n\n\th3 {\n\t\tfont-size: 1.4em;\n\t}\n\n\th4 {\n\t\tfont-size: 1.2em;\n\t}\n\n\th5 {\n\t\tfont-size: 1.1em;\n\t}\n\n\th6 {\n\t\tfont-size: 1em;\n\t}\n\n\ta {\n\t\tcolor: #688DC8;\n\t\ttext-decoration: underline;\n\t}\n\t\t\n\tp {\n\t\tfont-size: var(--og-font-size);\n\t\tmargin-block-start: 0.2em;\n\t\tmargin-block-end: 0.2em;\n\t\tpadding: 0px 0;\n\t}\n\n\tcode {\n\t\tpadding: 2px 4px;\n\t\tfont-size: 90%;\n\t\tcolor: #c7254e;\n\t\tbackground-color: var(--og-background-color-3);\n\t\tborder-radius: 0;\n\t}\n\t\t\n\tpre {\n\t\tbackground: color-mix(in srgb, var(--markdown-color-inline-area), transparent 40%);\n\t\tpadding: 10px;\n\t\tborder-radius: 4px;\n\t}\n\t\n\tpre code {\n\t\tpadding: 0;\n\t\tbackground: transparent;\n\t}\n\t\t\n\tblockquote {\n\t\tposition: relative;\n\t\tpadding-left: 40px;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tbox-sizing: content-box;\n\t\tmargin: 4px 0;\n\t}\n\t\n\tblockquote::before {\n\t\tcontent: '';\n\t\twidth: 4px;\n\t\tleft: 0;\n\t\ttop: 4px;\n\t\tbottom: 4px;\n\t\tposition: absolute;\n\t\tbackground: var(--markdown-color-selected);\n\t\tborder-radius: 100px;\n\t}\n\t\t\n\thr {\n\t\tborder: none;\n\t\tbackground-color: color-mix(in srgb, var(--markdown-color-outline), transparent 80%);\n\t\tbackground-clip: content-box;\n\t\tpadding: 6px 0;\n\t\theight: 13px;\n\t\tposition: relative;\n\t}\n\t\n\thr.ProseMirror-selectednode {\n\t\toutline: none;\n\t\tbackground-color: color-mix(in srgb, var(--markdown-color-outline), transparent 20%);\n\t\tbackground-clip: content-box;\n\t}\n\t\n\thr.ProseMirror-selectednode::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\tbackground-color: color-mix(in srgb, var(--markdown-color-outline), transparent 80%);\n\t\tpointer-events: none;\n\t}\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"markdownView.style.d.ts","sourceRoot":"","sources":["../../src/components/markdownView.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBA2CjB,CAAC"}
1
+ {"version":3,"file":"markdownView.style.d.ts","sourceRoot":"","sources":["../../src/components/markdownView.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBAmDjB,CAAC"}
@@ -16,18 +16,26 @@ import{css}from"lit";export const style=css`
16
16
  }
17
17
 
18
18
  h1 {
19
- font-size: 1.5em;
19
+ font-size: 2em;
20
20
  }
21
21
 
22
22
  h2 {
23
- font-size: 1.3em;
23
+ font-size: 1.7em;
24
24
  }
25
25
 
26
26
  h3 {
27
- font-size: 1.1em;
27
+ font-size: 1.4em;
28
28
  }
29
29
 
30
30
  h4 {
31
+ font-size: 1.2em;
32
+ }
33
+
34
+ h5 {
35
+ font-size: 1.1em;
36
+ }
37
+
38
+ h6 {
31
39
  font-size: 1em;
32
40
  }
33
41
 
@@ -1 +1 @@
1
- {"version":3,"file":"markdownView.style.js","sourceRoot":"","sources":["../../src/components/markdownView.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CvB,CAAC","sourcesContent":["import { css } from \"lit\";\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\t\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\tuser-select: text;\n\t\tcolor: var(--og-text-color);\n\t\tfont-size: var(--og-font-size);\n\t}\n\n\tog-container {\n\t\theight: 100%;\n\t}\n\n\th1 {\n\t\tfont-size: 1.5em;\n\t}\n\n\th2 {\n\t\tfont-size: 1.3em;\n\t}\n\n\th3 {\n\t\tfont-size: 1.1em;\n\t}\n\n\th4 {\n\t\tfont-size: 1em;\n\t}\n\n\ta {\n\t\tcolor: #688DC8;\n\t}\n\n\tog-highlighter {\n\t\tborder: 1px solid var(--og-border-color);\n\t}\n\n\n\n`;"]}
1
+ {"version":3,"file":"markdownView.style.js","sourceRoot":"","sources":["../../src/components/markdownView.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDvB,CAAC","sourcesContent":["import { css } from \"lit\";\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\t\n\t:host {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\tuser-select: text;\n\t\tcolor: var(--og-text-color);\n\t\tfont-size: var(--og-font-size);\n\t}\n\n\tog-container {\n\t\theight: 100%;\n\t}\n\n\th1 {\n\t\tfont-size: 2em;\n\t}\n\n\th2 {\n\t\tfont-size: 1.7em;\n\t}\n\n\th3 {\n\t\tfont-size: 1.4em;\n\t}\n\n\th4 {\n\t\tfont-size: 1.2em;\n\t}\n\n\th5 {\n\t\tfont-size: 1.1em;\n\t}\n\n\th6 {\n\t\tfont-size: 1em;\n\t}\n\n\ta {\n\t\tcolor: #688DC8;\n\t}\n\n\tog-highlighter {\n\t\tborder: 1px solid var(--og-border-color);\n\t}\n\n\n\n`;"]}
@@ -0,0 +1,2 @@
1
+ export declare const style: import("lit").CSSResult;
2
+ //# sourceMappingURL=callout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.d.ts","sourceRoot":"","sources":["../../../src/components/styles/callout.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBAuDjB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import{css}from"lit";export const style=css`
2
+ .og-callout {
3
+ border-left: 4px solid var(--og-callout-color, #4a9eff);
4
+ background-color: var(--og-callout-bg, rgba(74, 158, 255, 0.08));
5
+ padding: 8px 12px;
6
+ margin: 8px 0;
7
+ border-radius: 0 4px 4px 0;
8
+ }
9
+
10
+ .og-callout-header {
11
+ display: flex;
12
+ align-items: center;
13
+ gap: 6px;
14
+ font-weight: 600;
15
+ color: var(--og-callout-color, #4a9eff);
16
+ margin-bottom: 4px;
17
+ user-select: none;
18
+ }
19
+
20
+ .og-callout-icon {
21
+ display: inline-flex;
22
+ align-items: center;
23
+ }
24
+
25
+ .og-callout-icon svg {
26
+ width: 1em;
27
+ height: 1em;
28
+ fill: currentColor;
29
+ }
30
+
31
+ .og-callout-select {
32
+ border: none;
33
+ background: transparent;
34
+ color: inherit;
35
+ font-weight: 600;
36
+ font-size: 0.9em;
37
+ cursor: pointer;
38
+ outline: none;
39
+ padding: 0 2px;
40
+ }
41
+
42
+ .og-callout-select option {
43
+ color: var(--og-text-color, inherit);
44
+ background-color: var(--og-background-color);
45
+ font-weight: normal;
46
+ }
47
+
48
+ .og-callout-body > :first-child { margin-top: 0; }
49
+ .og-callout-body > :last-child { margin-bottom: 0; }
50
+
51
+ .og-callout[data-kind="note"] { --og-callout-color: #4a9eff; --og-callout-bg: rgba(74, 158, 255, 0.08); }
52
+ .og-callout[data-kind="tip"] { --og-callout-color: #3fb950; --og-callout-bg: rgba(63, 185, 80, 0.08); }
53
+ .og-callout[data-kind="important"] { --og-callout-color: #a371f7; --og-callout-bg: rgba(163, 113, 247, 0.08); }
54
+ .og-callout[data-kind="warning"] { --og-callout-color: #d29922; --og-callout-bg: rgba(210, 153, 34, 0.10); }
55
+ .og-callout[data-kind="caution"] { --og-callout-color: #f85149; --og-callout-bg: rgba(248, 81, 73, 0.08); }
56
+ `;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.js","sourceRoot":"","sources":["../../../src/components/styles/callout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDvB,CAAC","sourcesContent":["import { css } from \"lit\";\n\nexport const style = css`\n\t.og-callout {\n\t\tborder-left: 4px solid var(--og-callout-color, #4a9eff);\n\t\tbackground-color: var(--og-callout-bg, rgba(74, 158, 255, 0.08));\n\t\tpadding: 8px 12px;\n\t\tmargin: 8px 0;\n\t\tborder-radius: 0 4px 4px 0;\n\t}\n\n\t.og-callout-header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t\tfont-weight: 600;\n\t\tcolor: var(--og-callout-color, #4a9eff);\n\t\tmargin-bottom: 4px;\n\t\tuser-select: none;\n\t}\n\n\t.og-callout-icon {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t.og-callout-icon svg {\n\t\twidth: 1em;\n\t\theight: 1em;\n\t\tfill: currentColor;\n\t}\n\n\t.og-callout-select {\n\t\tborder: none;\n\t\tbackground: transparent;\n\t\tcolor: inherit;\n\t\tfont-weight: 600;\n\t\tfont-size: 0.9em;\n\t\tcursor: pointer;\n\t\toutline: none;\n\t\tpadding: 0 2px;\n\t}\n\n\t.og-callout-select option {\n\t\tcolor: var(--og-text-color, inherit);\n\t\tbackground-color: var(--og-background-color);\n\t\tfont-weight: normal;\n\t}\n\n\t.og-callout-body > :first-child { margin-top: 0; }\n\t.og-callout-body > :last-child { margin-bottom: 0; }\n\n\t.og-callout[data-kind=\"note\"] { --og-callout-color: #4a9eff; --og-callout-bg: rgba(74, 158, 255, 0.08); }\n\t.og-callout[data-kind=\"tip\"] { --og-callout-color: #3fb950; --og-callout-bg: rgba(63, 185, 80, 0.08); }\n\t.og-callout[data-kind=\"important\"] { --og-callout-color: #a371f7; --og-callout-bg: rgba(163, 113, 247, 0.08); }\n\t.og-callout[data-kind=\"warning\"] { --og-callout-color: #d29922; --og-callout-bg: rgba(210, 153, 34, 0.10); }\n\t.og-callout[data-kind=\"caution\"] { --og-callout-color: #f85149; --og-callout-bg: rgba(248, 81, 73, 0.08); }\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/styles/index.ts"],"names":[],"mappings":";AAUA,wBAUE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/styles/index.ts"],"names":[],"mappings":";AAWA,wBAWE"}
@@ -1 +1 @@
1
- import{style as blockEditStyle}from"./block-edit";import{style as cursorStyle}from"./cursor";import{style as imageStyle}from"./image-block";import{style as linkTooltipStyle}from"./link-tooltip";import{style as listItemStyle}from"./list-item";import{style as placeholderStyle}from"./placeholder";import{style as prosemirrorStyle}from"./prosemirror";import{style as tableStyle}from"./table";import{style as emojiStyle}from"./emoji";export default[blockEditStyle,cursorStyle,imageStyle,linkTooltipStyle,listItemStyle,placeholderStyle,prosemirrorStyle,tableStyle,emojiStyle];
1
+ import{style as blockEditStyle}from"./block-edit";import{style as cursorStyle}from"./cursor";import{style as imageStyle}from"./image-block";import{style as linkTooltipStyle}from"./link-tooltip";import{style as listItemStyle}from"./list-item";import{style as placeholderStyle}from"./placeholder";import{style as prosemirrorStyle}from"./prosemirror";import{style as tableStyle}from"./table";import{style as emojiStyle}from"./emoji";import{style as calloutStyle}from"./callout";export default[blockEditStyle,cursorStyle,imageStyle,linkTooltipStyle,listItemStyle,placeholderStyle,prosemirrorStyle,tableStyle,emojiStyle,calloutStyle];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAe;IACd,cAAc;IACd,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,UAAU;CACV,CAAC","sourcesContent":["import { style as blockEditStyle } from './block-edit';\nimport { style as cursorStyle } from './cursor';\nimport { style as imageStyle } from './image-block';\nimport { style as linkTooltipStyle } from './link-tooltip';\nimport { style as listItemStyle } from './list-item';\nimport { style as placeholderStyle } from './placeholder';\nimport { style as prosemirrorStyle } from './prosemirror';\nimport { style as tableStyle } from './table';\nimport { style as emojiStyle } from './emoji';\n\nexport default [\n\tblockEditStyle,\n\tcursorStyle,\n\timageStyle,\n\tlinkTooltipStyle,\n\tlistItemStyle,\n\tplaceholderStyle,\n\tprosemirrorStyle,\n\ttableStyle,\n\temojiStyle\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AAElD,eAAe;IACd,cAAc;IACd,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,UAAU;IACV,YAAY;CACZ,CAAC","sourcesContent":["import { style as blockEditStyle } from './block-edit';\nimport { style as cursorStyle } from './cursor';\nimport { style as imageStyle } from './image-block';\nimport { style as linkTooltipStyle } from './link-tooltip';\nimport { style as listItemStyle } from './list-item';\nimport { style as placeholderStyle } from './placeholder';\nimport { style as prosemirrorStyle } from './prosemirror';\nimport { style as tableStyle } from './table';\nimport { style as emojiStyle } from './emoji';\nimport { style as calloutStyle } from './callout';\n\nexport default [\n\tblockEditStyle,\n\tcursorStyle,\n\timageStyle,\n\tlinkTooltipStyle,\n\tlistItemStyle,\n\tplaceholderStyle,\n\tprosemirrorStyle,\n\ttableStyle,\n\temojiStyle,\n\tcalloutStyle\n];\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/markdown",
3
- "version": "0.10.59",
3
+ "version": "0.10.61",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Markdown view webcomponent",
6
6
  "main": "./dist/index.js",
@@ -28,11 +28,11 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@fortawesome/fontawesome-svg-core": "^7.0.1",
31
- "@omegagrid/code": "^0.10.59",
32
- "@omegagrid/core": "^0.10.59",
33
- "@omegagrid/localize": "^0.10.59",
34
- "@omegagrid/milkdown-kit": "^0.10.59",
35
- "@omegagrid/tabs": "^0.10.59",
31
+ "@omegagrid/code": "^0.10.61",
32
+ "@omegagrid/core": "^0.10.61",
33
+ "@omegagrid/localize": "^0.10.61",
34
+ "@omegagrid/milkdown-kit": "^0.10.61",
35
+ "@omegagrid/tabs": "^0.10.61",
36
36
  "lit": "^3.1.1",
37
37
  "markdown-it": "^14.1.0",
38
38
  "ts-debounce": "^4.0.0"