@react-email/editor 0.0.0-experimental.37 → 0.0.0-experimental.39

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 (41) hide show
  1. package/dist/{extension-XZBBjuHO.mjs → extension-CnC8y63H.mjs} +3 -7
  2. package/dist/extension-CnC8y63H.mjs.map +1 -0
  3. package/dist/{extension-B8yvCdun.cjs → extension-dGpPpEvD.cjs} +2 -6
  4. package/dist/index-C4KcMQ0R.d.cts.map +1 -1
  5. package/dist/index-CxX7W63O.d.mts.map +1 -1
  6. package/dist/index.cjs +7 -7
  7. package/dist/index.css +27 -54
  8. package/dist/index.css.map +1 -1
  9. package/dist/index.d.cts +4 -4
  10. package/dist/index.d.cts.map +1 -1
  11. package/dist/index.d.mts +2 -2
  12. package/dist/index.d.mts.map +1 -1
  13. package/dist/index.mjs +7 -7
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/plugins/index.cjs +1 -1
  16. package/dist/plugins/index.d.cts.map +1 -1
  17. package/dist/plugins/index.d.mts.map +1 -1
  18. package/dist/plugins/index.mjs +1 -1
  19. package/dist/{root-BMxsq1NF.mjs → root-CkYaJZpj.mjs} +645 -730
  20. package/dist/root-CkYaJZpj.mjs.map +1 -0
  21. package/dist/{root-CNVO39XG.cjs → root-Gu08xybW.cjs} +723 -832
  22. package/dist/{set-text-alignment-GMXOPMlJ.mjs → set-text-alignment-OA8IMWmO.mjs} +1 -1
  23. package/dist/{set-text-alignment-GMXOPMlJ.mjs.map → set-text-alignment-OA8IMWmO.mjs.map} +1 -1
  24. package/dist/ui/bubble-menu/bubble-menu.css +139 -0
  25. package/dist/ui/index.cjs +32 -57
  26. package/dist/ui/index.d.cts +280 -364
  27. package/dist/ui/index.d.cts.map +1 -1
  28. package/dist/ui/index.d.mts +280 -364
  29. package/dist/ui/index.d.mts.map +1 -1
  30. package/dist/ui/index.mjs +17 -35
  31. package/dist/ui/index.mjs.map +1 -1
  32. package/dist/ui/themes/default.css +27 -54
  33. package/dist/utils/index.cjs +1 -1
  34. package/dist/utils/index.mjs +1 -1
  35. package/package.json +1 -1
  36. package/dist/extension-XZBBjuHO.mjs.map +0 -1
  37. package/dist/root-BMxsq1NF.mjs.map +0 -1
  38. package/dist/ui/button-bubble-menu/button-bubble-menu.css +0 -63
  39. package/dist/ui/image-bubble-menu/image-bubble-menu.css +0 -29
  40. package/dist/ui/link-bubble-menu/link-bubble-menu.css +0 -68
  41. /package/dist/{set-text-alignment-aNb7Ml9N.cjs → set-text-alignment-Cv72txmv.cjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/ui/bubble-menu/create-mark-bubble-item.tsx","../../src/ui/bubble-menu/align-center.tsx","../../src/ui/bubble-menu/align-left.tsx","../../src/ui/bubble-menu/align-right.tsx","../../src/ui/bubble-menu/default.tsx","../../src/ui/bubble-menu/group.tsx","../../src/ui/bubble-menu/item.tsx","../../src/ui/bubble-menu/link-selector.tsx","../../src/ui/bubble-menu/node-selector.tsx","../../src/ui/bubble-menu/root.tsx","../../src/ui/bubble-menu/separator.tsx","../../src/ui/bubble-menu/bold.tsx","../../src/ui/bubble-menu/code.tsx","../../src/ui/bubble-menu/italic.tsx","../../src/ui/bubble-menu/strike.tsx","../../src/ui/bubble-menu/underline.tsx","../../src/ui/bubble-menu/uppercase.tsx","../../src/ui/bubble-menu/index.ts","../../src/ui/button-bubble-menu/default.tsx","../../src/ui/button-bubble-menu/edit-link.tsx","../../src/ui/button-bubble-menu/form.tsx","../../src/ui/button-bubble-menu/root.tsx","../../src/ui/button-bubble-menu/toolbar.tsx","../../src/ui/button-bubble-menu/unlink.tsx","../../src/ui/button-bubble-menu/context.tsx","../../src/ui/button-bubble-menu/index.ts","../../src/ui/icons/align-center.tsx","../../src/ui/icons/align-left.tsx","../../src/ui/icons/align-right.tsx","../../src/ui/icons/bold.tsx","../../src/ui/icons/case-upper.tsx","../../src/ui/icons/check.tsx","../../src/ui/icons/chevron-down.tsx","../../src/ui/icons/code.tsx","../../src/ui/icons/columns-2.tsx","../../src/ui/icons/columns-3.tsx","../../src/ui/icons/columns-4.tsx","../../src/ui/icons/external-link.tsx","../../src/ui/icons/heading-1.tsx","../../src/ui/icons/heading-2.tsx","../../src/ui/icons/heading-3.tsx","../../src/ui/icons/italic.tsx","../../src/ui/icons/link.tsx","../../src/ui/icons/list.tsx","../../src/ui/icons/list-ordered.tsx","../../src/ui/icons/mouse-pointer.tsx","../../src/ui/icons/pencil.tsx","../../src/ui/icons/rows-2.tsx","../../src/ui/icons/split-square-vertical.tsx","../../src/ui/icons/square-code.tsx","../../src/ui/icons/strikethrough.tsx","../../src/ui/icons/text.tsx","../../src/ui/icons/text-quote.tsx","../../src/ui/icons/underline.tsx","../../src/ui/icons/unlink.tsx","../../src/ui/image-bubble-menu/default.tsx","../../src/ui/image-bubble-menu/edit-link.tsx","../../src/ui/image-bubble-menu/root.tsx","../../src/ui/image-bubble-menu/toolbar.tsx","../../src/ui/image-bubble-menu/context.tsx","../../src/ui/image-bubble-menu/index.ts","../../src/ui/link-bubble-menu/default.tsx","../../src/ui/link-bubble-menu/edit-link.tsx","../../src/ui/link-bubble-menu/form.tsx","../../src/ui/link-bubble-menu/open-link.tsx","../../src/ui/link-bubble-menu/root.tsx","../../src/ui/link-bubble-menu/toolbar.tsx","../../src/ui/link-bubble-menu/unlink.tsx","../../src/ui/link-bubble-menu/context.tsx","../../src/ui/link-bubble-menu/index.ts","../../src/ui/slash-command/types.ts","../../src/ui/slash-command/command-list.tsx","../../src/ui/slash-command/root.tsx","../../src/ui/slash-command/commands.tsx","../../src/ui/slash-command/search.ts","../../src/ui/slash-command/utils.ts","../../src/ui/slash-command/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/ui/bubble-menu/create-mark-bubble-item.tsx","../../src/ui/bubble-menu/align-center.tsx","../../src/ui/bubble-menu/align-left.tsx","../../src/ui/bubble-menu/align-right.tsx","../../src/ui/bubble-menu/button-default.tsx","../../src/ui/bubble-menu/button-edit-link.tsx","../../src/ui/bubble-menu/button-form.tsx","../../src/ui/bubble-menu/button-toolbar.tsx","../../src/ui/bubble-menu/button-unlink.tsx","../../src/ui/bubble-menu/default.tsx","../../src/ui/bubble-menu/group.tsx","../../src/ui/bubble-menu/image-default.tsx","../../src/ui/bubble-menu/image-edit-link.tsx","../../src/ui/bubble-menu/image-toolbar.tsx","../../src/ui/bubble-menu/item.tsx","../../src/ui/bubble-menu/link-default.tsx","../../src/ui/bubble-menu/link-edit-link.tsx","../../src/ui/bubble-menu/link-form.tsx","../../src/ui/bubble-menu/link-open-link.tsx","../../src/ui/bubble-menu/link-selector.tsx","../../src/ui/bubble-menu/link-toolbar.tsx","../../src/ui/bubble-menu/link-unlink.tsx","../../src/ui/bubble-menu/node-selector.tsx","../../src/ui/bubble-menu/triggers.ts","../../src/ui/bubble-menu/root.tsx","../../src/ui/bubble-menu/separator.tsx","../../src/ui/bubble-menu/bold.tsx","../../src/ui/bubble-menu/code.tsx","../../src/ui/bubble-menu/context.tsx","../../src/ui/bubble-menu/italic.tsx","../../src/ui/bubble-menu/strike.tsx","../../src/ui/bubble-menu/underline.tsx","../../src/ui/bubble-menu/uppercase.tsx","../../src/ui/bubble-menu/index.ts","../../src/ui/icons/align-center.tsx","../../src/ui/icons/align-left.tsx","../../src/ui/icons/align-right.tsx","../../src/ui/icons/bold.tsx","../../src/ui/icons/case-upper.tsx","../../src/ui/icons/check.tsx","../../src/ui/icons/chevron-down.tsx","../../src/ui/icons/code.tsx","../../src/ui/icons/columns-2.tsx","../../src/ui/icons/columns-3.tsx","../../src/ui/icons/columns-4.tsx","../../src/ui/icons/external-link.tsx","../../src/ui/icons/heading-1.tsx","../../src/ui/icons/heading-2.tsx","../../src/ui/icons/heading-3.tsx","../../src/ui/icons/italic.tsx","../../src/ui/icons/link.tsx","../../src/ui/icons/list.tsx","../../src/ui/icons/list-ordered.tsx","../../src/ui/icons/mouse-pointer.tsx","../../src/ui/icons/pencil.tsx","../../src/ui/icons/rows-2.tsx","../../src/ui/icons/split-square-vertical.tsx","../../src/ui/icons/square-code.tsx","../../src/ui/icons/strikethrough.tsx","../../src/ui/icons/text.tsx","../../src/ui/icons/text-quote.tsx","../../src/ui/icons/underline.tsx","../../src/ui/icons/unlink.tsx","../../src/ui/slash-command/types.ts","../../src/ui/slash-command/command-list.tsx","../../src/ui/slash-command/root.tsx","../../src/ui/slash-command/commands.tsx","../../src/ui/slash-command/search.ts","../../src/ui/slash-command/utils.ts","../../src/ui/slash-command/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/ui/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as BubbleMenuItemGroup, A as ImageBubbleMenuDefault, At as ChevronDown, B as ButtonBubbleMenuEditLink, C as LinkBubbleMenuUnlink, Ct as Heading1, D as LinkBubbleMenuForm, Dt as Columns2, E as LinkBubbleMenuOpenLink, Et as Columns3, F as ButtonBubbleMenuDefault, Ft as AlignLeftIcon, G as BubbleMenuStrike, H as BubbleMenuDefault, I as ButtonBubbleMenuUnlink, It as AlignCenterIcon, J as NodeSelectorContent, K as BubbleMenuRoot, L as ButtonBubbleMenuToolbar, M as ImageBubbleMenuRoot, Mt as CaseUpperIcon, N as ImageBubbleMenuEditLink, Nt as BoldIcon, O as LinkBubbleMenuEditLink, Ot as Code, P as useImageBubbleMenuContext, Pt as AlignRightIcon, Q as BubbleMenuItalic, R as ButtonBubbleMenuRoot, S as LinkBubbleMenuDefault, St as Heading2, T as LinkBubbleMenuRoot, Tt as Columns4, U as BubbleMenuUppercase, V as useButtonBubbleMenuContext, W as BubbleMenuUnderline, X as NodeSelectorTrigger, Y as NodeSelectorRoot, Z as BubbleMenuLinkSelector, _ as TWO_COLUMNS, _t as ListOrdered, a as BUTTON, at as BubbleMenuItem, b as isAtMaxColumnsDepth, bt as ItalicIcon, c as FOUR_COLUMNS, ct as TextQuote, d as H3, dt as StrikethroughIcon, et as BubbleMenuCode, f as NUMBERED_LIST, ft as SquareCode, g as THREE_COLUMNS, gt as MousePointer, h as TEXT, ht as PencilIcon, i as BULLET_LIST, it as BubbleMenuAlignCenter, j as ImageBubbleMenuToolbar, jt as Check, k as useLinkBubbleMenuContext, kt as CodeIcon, l as H1, lt as Text, m as SECTION, mt as Rows2, n as filterAndRankItems, nt as BubbleMenuAlignRight, o as CODE, ot as UnlinkIcon, p as QUOTE, pt as SplitSquareVertical, q as BubbleMenuNodeSelector, r as scoreItem, rt as BubbleMenuAlignLeft, s as DIVIDER, st as UnderlineIcon, t as SlashCommandRoot, tt as BubbleMenuBold, u as H2, ut as TextIcon, v as defaultSlashCommands, vt as List, w as LinkBubbleMenuToolbar, wt as ExternalLinkIcon, x as isInsideNode, xt as Heading3, y as CommandList, yt as LinkIcon, z as ButtonBubbleMenuForm } from "../root-BMxsq1NF.mjs";
1
+ import { $ as BubbleMenuButtonForm, A as BubbleMenuImageEditLink, At as AlignRightIcon, B as BubbleMenuItalic, C as BubbleMenuLinkUnlink, Ct as Columns2, D as BubbleMenuLinkEditLink, Dt as Check, E as BubbleMenuLinkForm, Et as ChevronDown, F as BubbleMenuNodeSelector, G as BubbleMenuAlignLeft, H as BubbleMenuCode, I as NodeSelectorContent, J as BubbleMenuButtonDefault, K as BubbleMenuAlignCenter, L as NodeSelectorRoot, M as BubbleMenuUppercase, Mt as AlignCenterIcon, N as BubbleMenuUnderline, O as BubbleMenuImageDefault, Ot as CaseUpperIcon, P as BubbleMenuStrike, Q as BubbleMenuButtonToolbar, R as NodeSelectorTrigger, S as BubbleMenuLinkDefault, St as Columns3, T as BubbleMenuLinkOpenLink, Tt as CodeIcon, U as BubbleMenuBold, V as BubbleMenuItemGroup, W as BubbleMenuAlignRight, X as bubbleMenuTriggers, Y as BubbleMenuRoot, Z as BubbleMenuButtonUnlink, _ as TWO_COLUMNS, _t as Heading3, a as BUTTON, at as Text, b as isAtMaxColumnsDepth, bt as ExternalLinkIcon, c as FOUR_COLUMNS, ct as SquareCode, d as H3, dt as PencilIcon, et as BubbleMenuButtonEditLink, f as NUMBERED_LIST, ft as MousePointer, g as THREE_COLUMNS, gt as ItalicIcon, h as TEXT, ht as LinkIcon, i as BULLET_LIST, it as TextQuote, j as BubbleMenuDefault, jt as AlignLeftIcon, k as BubbleMenuImageToolbar, kt as BoldIcon, l as H1, lt as SplitSquareVertical, m as SECTION, mt as List, n as filterAndRankItems, nt as UnlinkIcon, o as CODE, ot as TextIcon, p as QUOTE, pt as ListOrdered, q as BubbleMenuItem, r as scoreItem, rt as UnderlineIcon, s as DIVIDER, st as StrikethroughIcon, t as SlashCommandRoot, tt as useBubbleMenuContext, u as H2, ut as Rows2, v as defaultSlashCommands, vt as Heading2, w as BubbleMenuLinkToolbar, wt as Code, x as isInsideNode, xt as Columns4, y as CommandList, yt as Heading1, z as BubbleMenuLinkSelector } from "../root-CkYaJZpj.mjs";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
 
4
4
  //#region src/ui/bubble-menu/separator.tsx
@@ -31,39 +31,21 @@ const BubbleMenu = {
31
31
  Content: NodeSelectorContent
32
32
  }),
33
33
  LinkSelector: BubbleMenuLinkSelector,
34
- Default: BubbleMenuDefault
35
- };
36
-
37
- //#endregion
38
- //#region src/ui/button-bubble-menu/index.ts
39
- const ButtonBubbleMenu = {
40
- Root: ButtonBubbleMenuRoot,
41
- Toolbar: ButtonBubbleMenuToolbar,
42
- EditLink: ButtonBubbleMenuEditLink,
43
- Unlink: ButtonBubbleMenuUnlink,
44
- Form: ButtonBubbleMenuForm,
45
- Default: ButtonBubbleMenuDefault
46
- };
47
-
48
- //#endregion
49
- //#region src/ui/image-bubble-menu/index.ts
50
- const ImageBubbleMenu = {
51
- Root: ImageBubbleMenuRoot,
52
- Toolbar: ImageBubbleMenuToolbar,
53
- EditLink: ImageBubbleMenuEditLink,
54
- Default: ImageBubbleMenuDefault
55
- };
56
-
57
- //#endregion
58
- //#region src/ui/link-bubble-menu/index.ts
59
- const LinkBubbleMenu = {
60
- Root: LinkBubbleMenuRoot,
61
- Toolbar: LinkBubbleMenuToolbar,
62
- Form: LinkBubbleMenuForm,
63
- EditLink: LinkBubbleMenuEditLink,
64
- Unlink: LinkBubbleMenuUnlink,
65
- OpenLink: LinkBubbleMenuOpenLink,
66
- Default: LinkBubbleMenuDefault
34
+ Default: BubbleMenuDefault,
35
+ ButtonToolbar: BubbleMenuButtonToolbar,
36
+ ButtonEditLink: BubbleMenuButtonEditLink,
37
+ ButtonUnlink: BubbleMenuButtonUnlink,
38
+ ButtonForm: BubbleMenuButtonForm,
39
+ ButtonDefault: BubbleMenuButtonDefault,
40
+ LinkToolbar: BubbleMenuLinkToolbar,
41
+ LinkEditLink: BubbleMenuLinkEditLink,
42
+ LinkUnlink: BubbleMenuLinkUnlink,
43
+ LinkOpenLink: BubbleMenuLinkOpenLink,
44
+ LinkForm: BubbleMenuLinkForm,
45
+ LinkDefault: BubbleMenuLinkDefault,
46
+ ImageToolbar: BubbleMenuImageToolbar,
47
+ ImageEditLink: BubbleMenuImageEditLink,
48
+ ImageDefault: BubbleMenuImageDefault
67
49
  };
68
50
 
69
51
  //#endregion
@@ -74,5 +56,5 @@ const SlashCommand = {
74
56
  };
75
57
 
76
58
  //#endregion
77
- export { AlignCenterIcon, AlignLeftIcon, AlignRightIcon, BULLET_LIST, BUTTON, BoldIcon, BubbleMenu, BubbleMenuAlignCenter, BubbleMenuAlignLeft, BubbleMenuAlignRight, BubbleMenuBold, BubbleMenuCode, BubbleMenuDefault, BubbleMenuItalic, BubbleMenuItem, BubbleMenuItemGroup, BubbleMenuLinkSelector, BubbleMenuNodeSelector, BubbleMenuRoot, BubbleMenuSeparator, BubbleMenuStrike, BubbleMenuUnderline, BubbleMenuUppercase, ButtonBubbleMenu, ButtonBubbleMenuDefault, ButtonBubbleMenuEditLink, ButtonBubbleMenuForm, ButtonBubbleMenuRoot, ButtonBubbleMenuToolbar, ButtonBubbleMenuUnlink, CODE, CaseUpperIcon, Check, ChevronDown, Code, CodeIcon, Columns2, Columns3, Columns4, CommandList, DIVIDER, ExternalLinkIcon, FOUR_COLUMNS, H1, H2, H3, Heading1, Heading2, Heading3, ImageBubbleMenu, ImageBubbleMenuDefault, ImageBubbleMenuEditLink, ImageBubbleMenuRoot, ImageBubbleMenuToolbar, ItalicIcon, LinkBubbleMenu, LinkBubbleMenuDefault, LinkBubbleMenuEditLink, LinkBubbleMenuForm, LinkBubbleMenuOpenLink, LinkBubbleMenuRoot, LinkBubbleMenuToolbar, LinkBubbleMenuUnlink, LinkIcon, List, ListOrdered, MousePointer, NUMBERED_LIST, NodeSelectorContent, NodeSelectorRoot, NodeSelectorTrigger, PencilIcon, QUOTE, Rows2, SECTION, SlashCommand, SplitSquareVertical, SquareCode, StrikethroughIcon, TEXT, THREE_COLUMNS, TWO_COLUMNS, Text, TextIcon, TextQuote, UnderlineIcon, UnlinkIcon, defaultSlashCommands, filterAndRankItems, isAtMaxColumnsDepth, isInsideNode, scoreItem, useButtonBubbleMenuContext, useImageBubbleMenuContext, useLinkBubbleMenuContext };
59
+ export { AlignCenterIcon, AlignLeftIcon, AlignRightIcon, BULLET_LIST, BUTTON, BoldIcon, BubbleMenu, BubbleMenuAlignCenter, BubbleMenuAlignLeft, BubbleMenuAlignRight, BubbleMenuBold, BubbleMenuButtonDefault, BubbleMenuButtonEditLink, BubbleMenuButtonForm, BubbleMenuButtonToolbar, BubbleMenuButtonUnlink, BubbleMenuCode, BubbleMenuDefault, BubbleMenuImageDefault, BubbleMenuImageEditLink, BubbleMenuImageToolbar, BubbleMenuItalic, BubbleMenuItem, BubbleMenuItemGroup, BubbleMenuLinkDefault, BubbleMenuLinkEditLink, BubbleMenuLinkForm, BubbleMenuLinkOpenLink, BubbleMenuLinkSelector, BubbleMenuLinkToolbar, BubbleMenuLinkUnlink, BubbleMenuNodeSelector, BubbleMenuRoot, BubbleMenuSeparator, BubbleMenuStrike, BubbleMenuUnderline, BubbleMenuUppercase, CODE, CaseUpperIcon, Check, ChevronDown, Code, CodeIcon, Columns2, Columns3, Columns4, CommandList, DIVIDER, ExternalLinkIcon, FOUR_COLUMNS, H1, H2, H3, Heading1, Heading2, Heading3, ItalicIcon, LinkIcon, List, ListOrdered, MousePointer, NUMBERED_LIST, NodeSelectorContent, NodeSelectorRoot, NodeSelectorTrigger, PencilIcon, QUOTE, Rows2, SECTION, SlashCommand, SplitSquareVertical, SquareCode, StrikethroughIcon, TEXT, THREE_COLUMNS, TWO_COLUMNS, Text, TextIcon, TextQuote, UnderlineIcon, UnlinkIcon, bubbleMenuTriggers, defaultSlashCommands, filterAndRankItems, isAtMaxColumnsDepth, isInsideNode, scoreItem, useBubbleMenuContext };
78
60
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/ui/bubble-menu/separator.tsx","../../src/ui/bubble-menu/index.ts","../../src/ui/button-bubble-menu/index.ts","../../src/ui/image-bubble-menu/index.ts","../../src/ui/link-bubble-menu/index.ts","../../src/ui/slash-command/index.ts"],"sourcesContent":["export interface BubbleMenuSeparatorProps {\n className?: string;\n}\n\nexport function BubbleMenuSeparator({ className }: BubbleMenuSeparatorProps) {\n return <hr className={className} data-re-bubble-menu-separator=\"\" />;\n}\n","import { BubbleMenuAlignCenter } from './align-center';\nimport { BubbleMenuAlignLeft } from './align-left';\nimport { BubbleMenuAlignRight } from './align-right';\nimport { BubbleMenuBold } from './bold';\nimport { BubbleMenuCode } from './code';\nimport { BubbleMenuDefault } from './default';\nimport { BubbleMenuItemGroup } from './group';\nimport { BubbleMenuItalic } from './italic';\nimport { BubbleMenuItem } from './item';\nimport { BubbleMenuLinkSelector } from './link-selector';\nimport {\n BubbleMenuNodeSelector,\n NodeSelectorContent,\n NodeSelectorRoot,\n NodeSelectorTrigger,\n} from './node-selector';\nimport { BubbleMenuRoot } from './root';\nimport { BubbleMenuSeparator } from './separator';\nimport { BubbleMenuStrike } from './strike';\nimport { BubbleMenuUnderline } from './underline';\nimport { BubbleMenuUppercase } from './uppercase';\n\nexport { BubbleMenuAlignCenter } from './align-center';\nexport { BubbleMenuAlignLeft } from './align-left';\nexport { BubbleMenuAlignRight } from './align-right';\nexport { BubbleMenuBold } from './bold';\nexport { BubbleMenuCode } from './code';\nexport type { PreWiredItemProps } from './create-mark-bubble-item';\nexport type { BubbleMenuDefaultProps } from './default';\nexport { BubbleMenuDefault } from './default';\nexport type { BubbleMenuItemGroupProps } from './group';\nexport { BubbleMenuItemGroup } from './group';\nexport { BubbleMenuItalic } from './italic';\nexport type { BubbleMenuItemProps } from './item';\nexport { BubbleMenuItem } from './item';\nexport type { BubbleMenuLinkSelectorProps } from './link-selector';\nexport { BubbleMenuLinkSelector } from './link-selector';\nexport type {\n BubbleMenuNodeSelectorProps,\n NodeSelectorContentProps,\n NodeSelectorItem,\n NodeSelectorRootProps,\n NodeSelectorTriggerProps,\n NodeType,\n} from './node-selector';\nexport {\n BubbleMenuNodeSelector,\n NodeSelectorContent,\n NodeSelectorRoot,\n NodeSelectorTrigger,\n} from './node-selector';\nexport type { BubbleMenuRootProps } from './root';\nexport { BubbleMenuRoot } from './root';\nexport type { BubbleMenuSeparatorProps } from './separator';\nexport { BubbleMenuSeparator } from './separator';\nexport { BubbleMenuStrike } from './strike';\nexport { BubbleMenuUnderline } from './underline';\nexport { BubbleMenuUppercase } from './uppercase';\n\n// Compound component namespace for convenient `BubbleMenu.Root` usage\nexport const BubbleMenu = {\n Root: BubbleMenuRoot,\n ItemGroup: BubbleMenuItemGroup,\n Separator: BubbleMenuSeparator,\n Item: BubbleMenuItem,\n Bold: BubbleMenuBold,\n Italic: BubbleMenuItalic,\n Underline: BubbleMenuUnderline,\n Strike: BubbleMenuStrike,\n Code: BubbleMenuCode,\n Uppercase: BubbleMenuUppercase,\n AlignLeft: BubbleMenuAlignLeft,\n AlignCenter: BubbleMenuAlignCenter,\n AlignRight: BubbleMenuAlignRight,\n NodeSelector: Object.assign(BubbleMenuNodeSelector, {\n Root: NodeSelectorRoot,\n Trigger: NodeSelectorTrigger,\n Content: NodeSelectorContent,\n }),\n LinkSelector: BubbleMenuLinkSelector,\n Default: BubbleMenuDefault,\n} as const;\n","import { ButtonBubbleMenuDefault } from './default';\nimport { ButtonBubbleMenuEditLink } from './edit-link';\nimport { ButtonBubbleMenuForm } from './form';\nimport { ButtonBubbleMenuRoot } from './root';\nimport { ButtonBubbleMenuToolbar } from './toolbar';\nimport { ButtonBubbleMenuUnlink } from './unlink';\n\nexport { useButtonBubbleMenuContext } from './context';\nexport type { ButtonBubbleMenuDefaultProps } from './default';\nexport { ButtonBubbleMenuDefault } from './default';\nexport type { ButtonBubbleMenuEditLinkProps } from './edit-link';\nexport { ButtonBubbleMenuEditLink } from './edit-link';\nexport type { ButtonBubbleMenuFormProps } from './form';\nexport { ButtonBubbleMenuForm } from './form';\nexport type { ButtonBubbleMenuRootProps } from './root';\nexport { ButtonBubbleMenuRoot } from './root';\nexport type { ButtonBubbleMenuToolbarProps } from './toolbar';\nexport { ButtonBubbleMenuToolbar } from './toolbar';\nexport type { ButtonBubbleMenuUnlinkProps } from './unlink';\nexport { ButtonBubbleMenuUnlink } from './unlink';\n\nexport const ButtonBubbleMenu = {\n Root: ButtonBubbleMenuRoot,\n Toolbar: ButtonBubbleMenuToolbar,\n EditLink: ButtonBubbleMenuEditLink,\n Unlink: ButtonBubbleMenuUnlink,\n Form: ButtonBubbleMenuForm,\n Default: ButtonBubbleMenuDefault,\n} as const;\n","import { ImageBubbleMenuDefault } from './default';\nimport { ImageBubbleMenuEditLink } from './edit-link';\nimport { ImageBubbleMenuRoot } from './root';\nimport { ImageBubbleMenuToolbar } from './toolbar';\n\nexport { useImageBubbleMenuContext } from './context';\nexport type { ImageBubbleMenuDefaultProps } from './default';\nexport { ImageBubbleMenuDefault } from './default';\nexport type { ImageBubbleMenuEditLinkProps } from './edit-link';\nexport { ImageBubbleMenuEditLink } from './edit-link';\nexport type { ImageBubbleMenuRootProps } from './root';\nexport { ImageBubbleMenuRoot } from './root';\nexport type { ImageBubbleMenuToolbarProps } from './toolbar';\nexport { ImageBubbleMenuToolbar } from './toolbar';\n\nexport const ImageBubbleMenu = {\n Root: ImageBubbleMenuRoot,\n Toolbar: ImageBubbleMenuToolbar,\n EditLink: ImageBubbleMenuEditLink,\n Default: ImageBubbleMenuDefault,\n} as const;\n","import { LinkBubbleMenuDefault } from './default';\nimport { LinkBubbleMenuEditLink } from './edit-link';\nimport { LinkBubbleMenuForm } from './form';\nimport { LinkBubbleMenuOpenLink } from './open-link';\nimport { LinkBubbleMenuRoot } from './root';\nimport { LinkBubbleMenuToolbar } from './toolbar';\nimport { LinkBubbleMenuUnlink } from './unlink';\n\nexport { useLinkBubbleMenuContext } from './context';\nexport type { LinkBubbleMenuDefaultProps } from './default';\nexport { LinkBubbleMenuDefault } from './default';\nexport type { LinkBubbleMenuEditLinkProps } from './edit-link';\nexport { LinkBubbleMenuEditLink } from './edit-link';\nexport type { LinkBubbleMenuFormProps } from './form';\nexport { LinkBubbleMenuForm } from './form';\nexport type { LinkBubbleMenuOpenLinkProps } from './open-link';\nexport { LinkBubbleMenuOpenLink } from './open-link';\nexport type { LinkBubbleMenuRootProps } from './root';\nexport { LinkBubbleMenuRoot } from './root';\nexport type { LinkBubbleMenuToolbarProps } from './toolbar';\nexport { LinkBubbleMenuToolbar } from './toolbar';\nexport type { LinkBubbleMenuUnlinkProps } from './unlink';\nexport { LinkBubbleMenuUnlink } from './unlink';\n\nexport const LinkBubbleMenu = {\n Root: LinkBubbleMenuRoot,\n Toolbar: LinkBubbleMenuToolbar,\n Form: LinkBubbleMenuForm,\n EditLink: LinkBubbleMenuEditLink,\n Unlink: LinkBubbleMenuUnlink,\n OpenLink: LinkBubbleMenuOpenLink,\n Default: LinkBubbleMenuDefault,\n} as const;\n","import { CommandList } from './command-list';\nimport { SlashCommandRoot } from './root';\n\nexport const SlashCommand = {\n Root: SlashCommandRoot,\n CommandList,\n} as const;\n\nexport { CommandList } from './command-list';\nexport {\n BULLET_LIST,\n BUTTON,\n CODE,\n DIVIDER,\n defaultSlashCommands,\n FOUR_COLUMNS,\n H1,\n H2,\n H3,\n NUMBERED_LIST,\n QUOTE,\n SECTION,\n TEXT,\n THREE_COLUMNS,\n TWO_COLUMNS,\n} from './commands';\nexport { filterAndRankItems, scoreItem } from './search';\nexport type {\n CommandListProps,\n SearchableItem,\n SlashCommandItem,\n SlashCommandProps,\n SlashCommandRenderProps,\n SlashCommandRootProps,\n} from './types';\nexport { isAtMaxColumnsDepth, isInsideNode } from './utils';\n"],"mappings":";;;;AAIA,SAAgB,oBAAoB,EAAE,aAAuC;AAC3E,QAAO,oBAAC;EAAc;EAAW,iCAA8B;GAAK;;;;;ACuDtE,MAAa,aAAa;CACxB,MAAM;CACN,WAAW;CACX,WAAW;CACX,MAAM;CACN,MAAM;CACN,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,MAAM;CACN,WAAW;CACX,WAAW;CACX,aAAa;CACb,YAAY;CACZ,cAAc,OAAO,OAAO,wBAAwB;EAClD,MAAM;EACN,SAAS;EACT,SAAS;EACV,CAAC;CACF,cAAc;CACd,SAAS;CACV;;;;AC5DD,MAAa,mBAAmB;CAC9B,MAAM;CACN,SAAS;CACT,UAAU;CACV,QAAQ;CACR,MAAM;CACN,SAAS;CACV;;;;ACbD,MAAa,kBAAkB;CAC7B,MAAM;CACN,SAAS;CACT,UAAU;CACV,SAAS;CACV;;;;ACID,MAAa,iBAAiB;CAC5B,MAAM;CACN,SAAS;CACT,MAAM;CACN,UAAU;CACV,QAAQ;CACR,UAAU;CACV,SAAS;CACV;;;;AC7BD,MAAa,eAAe;CAC1B,MAAM;CACN;CACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/ui/bubble-menu/separator.tsx","../../src/ui/bubble-menu/index.ts","../../src/ui/slash-command/index.ts"],"sourcesContent":["export interface BubbleMenuSeparatorProps {\n className?: string;\n}\n\nexport function BubbleMenuSeparator({ className }: BubbleMenuSeparatorProps) {\n return <hr className={className} data-re-bubble-menu-separator=\"\" />;\n}\n","import { BubbleMenuAlignCenter } from './align-center';\nimport { BubbleMenuAlignLeft } from './align-left';\nimport { BubbleMenuAlignRight } from './align-right';\nimport { BubbleMenuBold } from './bold';\nimport { BubbleMenuButtonDefault } from './button-default';\nimport { BubbleMenuButtonEditLink } from './button-edit-link';\nimport { BubbleMenuButtonForm } from './button-form';\nimport { BubbleMenuButtonToolbar } from './button-toolbar';\nimport { BubbleMenuButtonUnlink } from './button-unlink';\nimport { BubbleMenuCode } from './code';\nimport { BubbleMenuDefault } from './default';\nimport { BubbleMenuItemGroup } from './group';\nimport { BubbleMenuImageDefault } from './image-default';\nimport { BubbleMenuImageEditLink } from './image-edit-link';\nimport { BubbleMenuImageToolbar } from './image-toolbar';\nimport { BubbleMenuItalic } from './italic';\nimport { BubbleMenuItem } from './item';\nimport { BubbleMenuLinkDefault } from './link-default';\nimport { BubbleMenuLinkEditLink } from './link-edit-link';\nimport { BubbleMenuLinkForm } from './link-form';\nimport { BubbleMenuLinkOpenLink } from './link-open-link';\nimport { BubbleMenuLinkSelector } from './link-selector';\nimport { BubbleMenuLinkToolbar } from './link-toolbar';\nimport { BubbleMenuLinkUnlink } from './link-unlink';\nimport {\n BubbleMenuNodeSelector,\n NodeSelectorContent,\n NodeSelectorRoot,\n NodeSelectorTrigger,\n} from './node-selector';\nimport { BubbleMenuRoot } from './root';\nimport { BubbleMenuSeparator } from './separator';\nimport { BubbleMenuStrike } from './strike';\nimport { BubbleMenuUnderline } from './underline';\nimport { BubbleMenuUppercase } from './uppercase';\n\n// Named exports\nexport { BubbleMenuAlignCenter } from './align-center';\nexport { BubbleMenuAlignLeft } from './align-left';\nexport { BubbleMenuAlignRight } from './align-right';\nexport { BubbleMenuBold } from './bold';\nexport type { BubbleMenuButtonDefaultProps } from './button-default';\nexport { BubbleMenuButtonDefault } from './button-default';\nexport type { BubbleMenuButtonEditLinkProps } from './button-edit-link';\nexport { BubbleMenuButtonEditLink } from './button-edit-link';\nexport type { BubbleMenuButtonFormProps } from './button-form';\nexport { BubbleMenuButtonForm } from './button-form';\nexport type { BubbleMenuButtonToolbarProps } from './button-toolbar';\nexport { BubbleMenuButtonToolbar } from './button-toolbar';\nexport type { BubbleMenuButtonUnlinkProps } from './button-unlink';\nexport { BubbleMenuButtonUnlink } from './button-unlink';\nexport { BubbleMenuCode } from './code';\nexport type { BubbleMenuContextValue } from './context';\nexport { useBubbleMenuContext } from './context';\nexport type { PreWiredItemProps } from './create-mark-bubble-item';\nexport type { BubbleMenuDefaultProps } from './default';\nexport { BubbleMenuDefault } from './default';\nexport type { BubbleMenuItemGroupProps } from './group';\nexport { BubbleMenuItemGroup } from './group';\nexport type { BubbleMenuImageDefaultProps } from './image-default';\nexport { BubbleMenuImageDefault } from './image-default';\nexport type { BubbleMenuImageEditLinkProps } from './image-edit-link';\nexport { BubbleMenuImageEditLink } from './image-edit-link';\nexport type { BubbleMenuImageToolbarProps } from './image-toolbar';\nexport { BubbleMenuImageToolbar } from './image-toolbar';\nexport { BubbleMenuItalic } from './italic';\nexport type { BubbleMenuItemProps } from './item';\nexport { BubbleMenuItem } from './item';\nexport type { BubbleMenuLinkDefaultProps } from './link-default';\nexport { BubbleMenuLinkDefault } from './link-default';\nexport type { BubbleMenuLinkEditLinkProps } from './link-edit-link';\nexport { BubbleMenuLinkEditLink } from './link-edit-link';\nexport type { BubbleMenuLinkFormProps } from './link-form';\nexport { BubbleMenuLinkForm } from './link-form';\nexport type { BubbleMenuLinkOpenLinkProps } from './link-open-link';\nexport { BubbleMenuLinkOpenLink } from './link-open-link';\nexport type { BubbleMenuLinkSelectorProps } from './link-selector';\nexport { BubbleMenuLinkSelector } from './link-selector';\nexport type { BubbleMenuLinkToolbarProps } from './link-toolbar';\nexport { BubbleMenuLinkToolbar } from './link-toolbar';\nexport type { BubbleMenuLinkUnlinkProps } from './link-unlink';\nexport { BubbleMenuLinkUnlink } from './link-unlink';\nexport type {\n BubbleMenuNodeSelectorProps,\n NodeSelectorContentProps,\n NodeSelectorItem,\n NodeSelectorRootProps,\n NodeSelectorTriggerProps,\n NodeType,\n} from './node-selector';\nexport {\n BubbleMenuNodeSelector,\n NodeSelectorContent,\n NodeSelectorRoot,\n NodeSelectorTrigger,\n} from './node-selector';\nexport type { BubbleMenuRootProps } from './root';\nexport { BubbleMenuRoot } from './root';\nexport type { BubbleMenuSeparatorProps } from './separator';\nexport { BubbleMenuSeparator } from './separator';\nexport { BubbleMenuStrike } from './strike';\nexport type { ShouldShowFn, ShouldShowParams } from './triggers';\nexport { bubbleMenuTriggers } from './triggers';\nexport { BubbleMenuUnderline } from './underline';\nexport { BubbleMenuUppercase } from './uppercase';\n\nexport const BubbleMenu = {\n Root: BubbleMenuRoot,\n ItemGroup: BubbleMenuItemGroup,\n Separator: BubbleMenuSeparator,\n Item: BubbleMenuItem,\n Bold: BubbleMenuBold,\n Italic: BubbleMenuItalic,\n Underline: BubbleMenuUnderline,\n Strike: BubbleMenuStrike,\n Code: BubbleMenuCode,\n Uppercase: BubbleMenuUppercase,\n AlignLeft: BubbleMenuAlignLeft,\n AlignCenter: BubbleMenuAlignCenter,\n AlignRight: BubbleMenuAlignRight,\n NodeSelector: Object.assign(BubbleMenuNodeSelector, {\n Root: NodeSelectorRoot,\n Trigger: NodeSelectorTrigger,\n Content: NodeSelectorContent,\n }),\n LinkSelector: BubbleMenuLinkSelector,\n Default: BubbleMenuDefault,\n ButtonToolbar: BubbleMenuButtonToolbar,\n ButtonEditLink: BubbleMenuButtonEditLink,\n ButtonUnlink: BubbleMenuButtonUnlink,\n ButtonForm: BubbleMenuButtonForm,\n ButtonDefault: BubbleMenuButtonDefault,\n LinkToolbar: BubbleMenuLinkToolbar,\n LinkEditLink: BubbleMenuLinkEditLink,\n LinkUnlink: BubbleMenuLinkUnlink,\n LinkOpenLink: BubbleMenuLinkOpenLink,\n LinkForm: BubbleMenuLinkForm,\n LinkDefault: BubbleMenuLinkDefault,\n ImageToolbar: BubbleMenuImageToolbar,\n ImageEditLink: BubbleMenuImageEditLink,\n ImageDefault: BubbleMenuImageDefault,\n} as const;\n","import { CommandList } from './command-list';\nimport { SlashCommandRoot } from './root';\n\nexport const SlashCommand = {\n Root: SlashCommandRoot,\n CommandList,\n} as const;\n\nexport { CommandList } from './command-list';\nexport {\n BULLET_LIST,\n BUTTON,\n CODE,\n DIVIDER,\n defaultSlashCommands,\n FOUR_COLUMNS,\n H1,\n H2,\n H3,\n NUMBERED_LIST,\n QUOTE,\n SECTION,\n TEXT,\n THREE_COLUMNS,\n TWO_COLUMNS,\n} from './commands';\nexport { filterAndRankItems, scoreItem } from './search';\nexport type {\n CommandListProps,\n SearchableItem,\n SlashCommandItem,\n SlashCommandProps,\n SlashCommandRenderProps,\n SlashCommandRootProps,\n} from './types';\nexport { isAtMaxColumnsDepth, isInsideNode } from './utils';\n"],"mappings":";;;;AAIA,SAAgB,oBAAoB,EAAE,aAAuC;AAC3E,QAAO,oBAAC;EAAc;EAAW,iCAA8B;GAAK;;;;;ACqGtE,MAAa,aAAa;CACxB,MAAM;CACN,WAAW;CACX,WAAW;CACX,MAAM;CACN,MAAM;CACN,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,MAAM;CACN,WAAW;CACX,WAAW;CACX,aAAa;CACb,YAAY;CACZ,cAAc,OAAO,OAAO,wBAAwB;EAClD,MAAM;EACN,SAAS;EACT,SAAS;EACV,CAAC;CACF,cAAc;CACd,SAAS;CACT,eAAe;CACf,gBAAgB;CAChB,cAAc;CACd,YAAY;CACZ,eAAe;CACf,aAAa;CACb,cAAc;CACd,YAAY;CACZ,cAAc;CACd,UAAU;CACV,aAAa;CACb,cAAc;CACd,eAAe;CACf,cAAc;CACf;;;;AC1ID,MAAa,eAAe;CAC1B,MAAM;CACN;CACD"}
@@ -155,22 +155,14 @@
155
155
  height: 0.875rem;
156
156
  }
157
157
 
158
- /* Minimal functional styles for LinkBubbleMenu compound components.
159
- * Layout and positioning only - no visual design.
160
- * Import optionally: import '@react-email/editor/styles/link-bubble-menu.css';
161
- */
158
+ /* Button bubble menu */
162
159
 
163
- [data-re-link-bm] {
164
- display: flex;
165
- align-items: center;
166
- }
167
-
168
- [data-re-link-bm-toolbar] {
160
+ [data-re-btn-bm-toolbar] {
169
161
  display: flex;
170
162
  align-items: center;
171
163
  }
172
164
 
173
- [data-re-link-bm-item] {
165
+ [data-re-btn-bm-item] {
174
166
  display: inline-flex;
175
167
  align-items: center;
176
168
  justify-content: center;
@@ -180,17 +172,12 @@
180
172
  padding: 0.375rem;
181
173
  }
182
174
 
183
- [data-re-link-bm-item] svg {
175
+ [data-re-btn-bm-item] svg {
184
176
  width: 0.875rem;
185
177
  height: 0.875rem;
186
178
  }
187
179
 
188
- a[data-re-link-bm-item] {
189
- text-decoration: none;
190
- color: inherit;
191
- }
192
-
193
- [data-re-link-bm-form] {
180
+ [data-re-btn-bm-form] {
194
181
  display: flex;
195
182
  align-items: center;
196
183
  gap: 0.25rem;
@@ -198,7 +185,7 @@ a[data-re-link-bm-item] {
198
185
  padding: 0.25rem;
199
186
  }
200
187
 
201
- [data-re-link-bm-input] {
188
+ [data-re-btn-bm-input] {
202
189
  flex: 1;
203
190
  border: none;
204
191
  outline: none;
@@ -207,8 +194,8 @@ a[data-re-link-bm-item] {
207
194
  background: transparent;
208
195
  }
209
196
 
210
- [data-re-link-bm-apply],
211
- [data-re-link-bm-unlink] {
197
+ [data-re-btn-bm-apply],
198
+ [data-re-btn-bm-unlink] {
212
199
  display: inline-flex;
213
200
  align-items: center;
214
201
  justify-content: center;
@@ -218,28 +205,20 @@ a[data-re-link-bm-item] {
218
205
  padding: 0.25rem;
219
206
  }
220
207
 
221
- [data-re-link-bm-apply] svg,
222
- [data-re-link-bm-unlink] svg {
208
+ [data-re-btn-bm-apply] svg,
209
+ [data-re-btn-bm-unlink] svg {
223
210
  width: 0.875rem;
224
211
  height: 0.875rem;
225
212
  }
226
213
 
227
- /* Minimal functional styles for ButtonBubbleMenu compound components.
228
- * Layout and positioning only - no visual design.
229
- * Import optionally: import '@react-email/editor/styles/button-bubble-menu.css';
230
- */
214
+ /* Link bubble menu */
231
215
 
232
- [data-re-btn-bm] {
233
- display: flex;
234
- align-items: center;
235
- }
236
-
237
- [data-re-btn-bm-toolbar] {
216
+ [data-re-link-bm-toolbar] {
238
217
  display: flex;
239
218
  align-items: center;
240
219
  }
241
220
 
242
- [data-re-btn-bm-item] {
221
+ [data-re-link-bm-item] {
243
222
  display: inline-flex;
244
223
  align-items: center;
245
224
  justify-content: center;
@@ -249,12 +228,17 @@ a[data-re-link-bm-item] {
249
228
  padding: 0.375rem;
250
229
  }
251
230
 
252
- [data-re-btn-bm-item] svg {
231
+ [data-re-link-bm-item] svg {
253
232
  width: 0.875rem;
254
233
  height: 0.875rem;
255
234
  }
256
235
 
257
- [data-re-btn-bm-form] {
236
+ a[data-re-link-bm-item] {
237
+ text-decoration: none;
238
+ color: inherit;
239
+ }
240
+
241
+ [data-re-link-bm-form] {
258
242
  display: flex;
259
243
  align-items: center;
260
244
  gap: 0.25rem;
@@ -262,7 +246,7 @@ a[data-re-link-bm-item] {
262
246
  padding: 0.25rem;
263
247
  }
264
248
 
265
- [data-re-btn-bm-input] {
249
+ [data-re-link-bm-input] {
266
250
  flex: 1;
267
251
  border: none;
268
252
  outline: none;
@@ -271,8 +255,8 @@ a[data-re-link-bm-item] {
271
255
  background: transparent;
272
256
  }
273
257
 
274
- [data-re-btn-bm-apply],
275
- [data-re-btn-bm-unlink] {
258
+ [data-re-link-bm-apply],
259
+ [data-re-link-bm-unlink] {
276
260
  display: inline-flex;
277
261
  align-items: center;
278
262
  justify-content: center;
@@ -282,21 +266,13 @@ a[data-re-link-bm-item] {
282
266
  padding: 0.25rem;
283
267
  }
284
268
 
285
- [data-re-btn-bm-apply] svg,
286
- [data-re-btn-bm-unlink] svg {
269
+ [data-re-link-bm-apply] svg,
270
+ [data-re-link-bm-unlink] svg {
287
271
  width: 0.875rem;
288
272
  height: 0.875rem;
289
273
  }
290
274
 
291
- /* Minimal functional styles for ImageBubbleMenu compound components.
292
- * Layout and positioning only - no visual design.
293
- * Import optionally: import '@react-email/editor/styles/image-bubble-menu.css';
294
- */
295
-
296
- [data-re-img-bm] {
297
- display: flex;
298
- align-items: center;
299
- }
275
+ /* Image bubble menu */
300
276
 
301
277
  [data-re-img-bm-toolbar] {
302
278
  display: flex;
@@ -428,10 +404,7 @@ a[data-re-link-bm-item] {
428
404
  * Root containers
429
405
  * ---------------------------------------------------------------- */
430
406
 
431
- [data-re-bubble-menu],
432
- [data-re-link-bm],
433
- [data-re-btn-bm],
434
- [data-re-img-bm] {
407
+ [data-re-bubble-menu] {
435
408
  background: var(--re-bg);
436
409
  border: 1px solid var(--re-border);
437
410
  border-radius: var(--re-radius);
@@ -1,3 +1,3 @@
1
- const require_set_text_alignment = require('../set-text-alignment-aNb7Ml9N.cjs');
1
+ const require_set_text_alignment = require('../set-text-alignment-Cv72txmv.cjs');
2
2
 
3
3
  exports.setTextAlignment = require_set_text_alignment.setTextAlignment;
@@ -1,3 +1,3 @@
1
- import { t as setTextAlignment } from "../set-text-alignment-GMXOPMlJ.mjs";
1
+ import { t as setTextAlignment } from "../set-text-alignment-OA8IMWmO.mjs";
2
2
 
3
3
  export { setTextAlignment };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-email/editor",
3
- "version": "0.0.0-experimental.37",
3
+ "version": "0.0.0-experimental.39",
4
4
  "description": "",
5
5
  "sideEffects": [
6
6
  "**/*.css"
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-XZBBjuHO.mjs","names":["acc"],"sources":["../src/plugins/email-theming/css-transforms.ts","../src/plugins/email-theming/themes.ts","../src/plugins/email-theming/normalization.ts","../src/plugins/email-theming/extension.tsx"],"sourcesContent":["import { ensureBorderStyleFallback } from '../../utils/styles';\nimport type { CssJs, PanelGroup } from './types';\n\nexport function transformToCssJs(\n styleArray: PanelGroup[],\n baseFontSize: number,\n): CssJs {\n const cssJS = {} as CssJs;\n\n if (!Array.isArray(styleArray)) {\n return cssJS;\n }\n\n for (const style of styleArray) {\n for (const input of style.inputs) {\n let value = input.value;\n\n // If there's a unit property, append it to the value\n if (input.unit && typeof value === 'number') {\n // if font size prop convert px unit to em to adjust size in mobile\n if (input.prop === 'fontSize') {\n value = `${value / baseFontSize}em`;\n } else {\n value = `${value}${input.unit}`;\n }\n }\n\n if (!input.classReference) {\n continue;\n }\n\n if (!cssJS[input.classReference]) {\n cssJS[input.classReference] = {};\n }\n\n // @ts-expect-error -- backward compatibility: 'h-padding' is a legacy prop not in KnownCssProperties\n if (input.prop === 'h-padding') {\n cssJS[input.classReference].paddingLeft = value;\n cssJS[input.classReference].paddingRight = value;\n\n continue;\n }\n\n // @ts-expect-error -- input.prop is KnownCssProperties but CssJs values are React.CSSProperties; dynamic assignment is intentional\n cssJS[input.classReference][input.prop] = value;\n }\n }\n\n for (const key of Object.keys(cssJS)) {\n ensureBorderStyleFallback(\n cssJS[key as keyof CssJs] as Record<string, string | number>,\n );\n }\n\n return cssJS;\n}\n\nexport function mergeCssJs(original: CssJs, newCssJs: CssJs) {\n const merged = { ...original };\n\n for (const key in newCssJs) {\n const keyType = key as keyof CssJs;\n\n if (\n Object.hasOwn(merged, key) &&\n typeof merged[keyType] === 'object' &&\n !Array.isArray(merged[keyType])\n ) {\n merged[keyType] = {\n ...merged[keyType],\n ...newCssJs[keyType],\n };\n } else {\n merged[keyType] = newCssJs[keyType];\n }\n }\n\n return merged;\n}\n\nexport function injectThemeCss(\n styles: CssJs,\n options: { styleId?: string; scopeSelector?: string } = {},\n) {\n const container =\n options.scopeSelector ?? '.tiptap-extended .tiptap.ProseMirror';\n const prefix = '.node-';\n const styleId = options.styleId ?? 'tiptap-extended-theme-css';\n\n const css = Object.entries(styles).reduce((acc, [key, value]) => {\n const className = `${container} ${prefix}${key}`;\n\n const cssString = Object.entries(value).reduce((acc, [prop, val]) => {\n const normalizeProp = prop.replace(/([A-Z])/g, '-$1').toLowerCase();\n\n return `${acc}${normalizeProp}:${val};`;\n }, '');\n\n return `${acc}${className}{${cssString}}`;\n }, '');\n\n let styleTag = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleTag) {\n styleTag = document.createElement('style');\n styleTag.textContent = css;\n styleTag.id = styleId;\n\n document.head.appendChild(styleTag);\n\n return;\n }\n\n styleTag.textContent = css;\n}\n\nexport function injectGlobalPlainCss(\n css?: string | null,\n options: { styleId?: string; scopeSelector?: string } = {},\n) {\n if (!css) {\n return;\n }\n\n const styleId = options.styleId ?? 'global-editor-style';\n const container = options.scopeSelector ?? '.tiptap-extended .ProseMirror';\n let styleElement = document.getElementById(styleId);\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n // Remove CSS within @media (prefers-color-scheme: dark) blocks\n const cleanedCSS = css.replace(\n /@media\\s?\\(prefers-color-scheme:\\s?dark\\)\\s?{([\\s\\S]+?})\\s*}/g,\n '',\n );\n\n // TODO: Figure out a way to extract the body and apply the styles out of the nested .tiptap-extended\n styleElement.textContent = `${container} { ${cleanedCSS} }`;\n}\n","import type {\n EditorTheme,\n PanelGroup,\n PanelSectionId,\n ResetTheme,\n SupportedCssProperties,\n} from './types';\n\n/**\n * Single source of truth for panel section display titles.\n * Titles are resolved from here at render time via `getPanelTitle`,\n * so they never depend on what's persisted in the DB.\n */\nconst PANEL_SECTION_TITLES: Record<PanelSectionId, string> = {\n body: 'Background',\n container: 'Body',\n typography: 'Text',\n h1: 'Title',\n h2: 'Subtitle',\n h3: 'Heading',\n link: 'Link',\n image: 'Image',\n button: 'Button',\n 'code-block': 'Code Block',\n 'inline-code': 'Inline Code',\n};\n\n/**\n * Resolves the display title for a panel group.\n * Uses the `id` lookup when available, falls back to the\n * DB-persisted `title` for backwards compatibility.\n */\nexport function getPanelTitle(group: PanelGroup): string {\n if (group.id && group.id in PANEL_SECTION_TITLES) {\n return PANEL_SECTION_TITLES[group.id];\n }\n return group.title;\n}\n\nconst THEME_BASIC: PanelGroup[] = [\n {\n id: 'body',\n title: 'Background',\n classReference: 'body',\n inputs: [],\n },\n {\n id: 'container',\n title: 'Content',\n classReference: 'container',\n inputs: [\n {\n label: 'Align',\n type: 'select',\n value: 'left',\n options: {\n left: 'Left',\n center: 'Center',\n right: 'Right',\n },\n prop: 'align',\n classReference: 'container',\n },\n {\n label: 'Width',\n type: 'number',\n value: 600,\n unit: 'px',\n prop: 'width',\n classReference: 'container',\n },\n {\n label: 'Padding Left',\n type: 'number',\n value: 0,\n unit: 'px',\n prop: 'paddingLeft',\n classReference: 'container',\n },\n {\n label: 'Padding Right',\n type: 'number',\n value: 0,\n unit: 'px',\n prop: 'paddingRight',\n classReference: 'container',\n },\n ],\n },\n {\n id: 'typography',\n title: 'Text',\n classReference: 'body',\n inputs: [\n {\n label: 'Font size',\n type: 'number',\n value: 14,\n unit: 'px',\n prop: 'fontSize',\n classReference: 'body',\n },\n {\n label: 'Line Height',\n type: 'number',\n value: 155,\n unit: '%',\n prop: 'lineHeight',\n classReference: 'container',\n },\n ],\n },\n {\n id: 'h1',\n title: 'Title',\n category: 'Text',\n classReference: 'h1',\n inputs: [],\n },\n {\n id: 'h2',\n title: 'Subtitle',\n category: 'Text',\n classReference: 'h2',\n inputs: [],\n },\n {\n id: 'h3',\n title: 'Heading',\n category: 'Text',\n classReference: 'h3',\n inputs: [],\n },\n {\n id: 'link',\n title: 'Link',\n classReference: 'link',\n inputs: [\n {\n label: 'Color',\n type: 'color',\n value: '#0670DB',\n prop: 'color',\n classReference: 'link',\n },\n {\n label: 'Decoration',\n type: 'select',\n value: 'underline',\n prop: 'textDecoration',\n options: {\n underline: 'Underline',\n none: 'None',\n },\n classReference: 'link',\n },\n ],\n },\n {\n id: 'image',\n title: 'Image',\n classReference: 'image',\n inputs: [\n {\n label: 'Border radius',\n type: 'number',\n value: 8,\n unit: 'px',\n prop: 'borderRadius',\n classReference: 'image',\n },\n ],\n },\n {\n id: 'button',\n title: 'Button',\n classReference: 'button',\n inputs: [\n {\n label: 'Background',\n type: 'color',\n value: '#000000',\n prop: 'backgroundColor',\n classReference: 'button',\n },\n {\n label: 'Text color',\n type: 'color',\n value: '#ffffff',\n prop: 'color',\n classReference: 'button',\n },\n {\n label: 'Radius',\n type: 'number',\n value: 4,\n unit: 'px',\n prop: 'borderRadius',\n classReference: 'button',\n },\n {\n label: 'Padding Top',\n type: 'number',\n value: 7,\n unit: 'px',\n prop: 'paddingTop',\n classReference: 'button',\n },\n {\n label: 'Padding Right',\n type: 'number',\n value: 12,\n unit: 'px',\n prop: 'paddingRight',\n classReference: 'button',\n },\n {\n label: 'Padding Bottom',\n type: 'number',\n value: 7,\n unit: 'px',\n prop: 'paddingBottom',\n classReference: 'button',\n },\n {\n label: 'Padding Left',\n type: 'number',\n value: 12,\n unit: 'px',\n prop: 'paddingLeft',\n classReference: 'button',\n },\n ],\n },\n {\n id: 'code-block',\n title: 'Code Block',\n classReference: 'codeBlock',\n inputs: [\n {\n label: 'Border Radius',\n type: 'number',\n value: 4,\n unit: 'px',\n prop: 'borderRadius',\n classReference: 'codeBlock',\n },\n {\n label: 'Padding Top',\n type: 'number',\n value: 12,\n unit: 'px',\n prop: 'paddingTop',\n classReference: 'codeBlock',\n },\n {\n label: 'Padding Bottom',\n type: 'number',\n value: 12,\n unit: 'px',\n prop: 'paddingBottom',\n classReference: 'codeBlock',\n },\n {\n label: 'Padding Left',\n type: 'number',\n value: 16,\n unit: 'px',\n prop: 'paddingLeft',\n classReference: 'codeBlock',\n },\n {\n label: 'Padding Right',\n type: 'number',\n value: 16,\n unit: 'px',\n prop: 'paddingRight',\n classReference: 'codeBlock',\n },\n ],\n },\n {\n id: 'inline-code',\n title: 'Inline Code',\n classReference: 'inlineCode',\n inputs: [\n {\n label: 'Background',\n type: 'color',\n value: '#e5e7eb',\n prop: 'backgroundColor',\n classReference: 'inlineCode',\n },\n {\n label: 'Text color',\n type: 'color',\n value: '#1e293b',\n prop: 'color',\n classReference: 'inlineCode',\n },\n {\n label: 'Radius',\n type: 'number',\n value: 4,\n unit: 'px',\n prop: 'borderRadius',\n classReference: 'inlineCode',\n },\n ],\n },\n];\n\nconst THEME_MINIMAL = THEME_BASIC.map((item) => ({ ...item, inputs: [] }));\n\nconst RESET_BASIC: ResetTheme = {\n reset: {\n margin: '0',\n padding: '0',\n },\n body: {\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n fontSize: '14px',\n minHeight: '100%',\n lineHeight: '155%',\n },\n container: {},\n h1: {\n fontSize: '2.25em',\n lineHeight: '1.44em',\n paddingTop: '0.389em',\n fontWeight: 600,\n },\n h2: {\n fontSize: '1.8em',\n lineHeight: '1.44em',\n paddingTop: '0.389em',\n fontWeight: 600,\n },\n h3: {\n fontSize: '1.4em',\n lineHeight: '1.08em',\n paddingTop: '0.389em',\n fontWeight: 600,\n },\n paragraph: {\n fontSize: '1em',\n paddingTop: '0.5em',\n paddingBottom: '0.5em',\n },\n list: {\n paddingLeft: '1.1em',\n paddingBottom: '1em',\n },\n nestedList: {\n paddingLeft: '1.1em',\n paddingBottom: '0',\n },\n listItem: {\n marginLeft: '1em',\n marginBottom: '0.3em',\n marginTop: '0.3em',\n },\n listParagraph: { padding: '0', margin: '0' },\n blockquote: {\n borderLeft: '3px solid #acb3be',\n color: '#7e8a9a',\n marginLeft: 0,\n paddingLeft: '0.8em',\n fontSize: '1.1em',\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n },\n link: { textDecoration: 'underline' },\n footer: {\n fontSize: '0.8em',\n },\n hr: {\n paddingBottom: '1em',\n borderWidth: '2px',\n },\n image: {\n maxWidth: '100%',\n },\n button: {\n lineHeight: '100%',\n display: 'inline-block',\n },\n inlineCode: {\n paddingTop: '0.25em',\n paddingBottom: '0.25em',\n paddingLeft: '0.4em',\n paddingRight: '0.4em',\n background: '#e5e7eb',\n color: '#1e293b',\n borderRadius: '4px',\n },\n codeBlock: {\n fontFamily: 'monospace',\n fontWeight: '500',\n fontSize: '.92em',\n },\n codeTag: {\n lineHeight: '130%',\n fontFamily: 'monospace',\n fontSize: '.92em',\n },\n section: {\n padding: '10px 20px 10px 20px',\n boxSizing: 'border-box' as const,\n },\n};\n\nconst RESET_MINIMAL: ResetTheme = {\n ...Object.keys(RESET_BASIC).reduce<ResetTheme>((acc, key) => {\n acc[key as keyof ResetTheme] = {};\n return acc;\n }, {} as ResetTheme),\n reset: RESET_BASIC.reset,\n};\n\nexport const RESET_THEMES: Record<EditorTheme, ResetTheme> = {\n basic: RESET_BASIC,\n minimal: RESET_MINIMAL,\n};\n\nexport function resolveResetValue(\n value: string | number | undefined,\n targetUnit: 'px' | '%',\n bodyFontSizePx: number,\n): number | undefined {\n if (value === undefined) {\n return undefined;\n }\n const str = String(value);\n const num = Number.parseFloat(str);\n if (Number.isNaN(num)) {\n return undefined;\n }\n if (str.endsWith('em')) {\n return targetUnit === 'px' ? Math.floor(num * bodyFontSizePx) : num * 100;\n }\n return num;\n}\n\nexport const EDITOR_THEMES: Record<EditorTheme, PanelGroup[]> = {\n minimal: THEME_MINIMAL,\n basic: THEME_BASIC,\n};\n\nexport function getThemeBodyFontSizePx(theme: EditorTheme): number {\n for (const group of EDITOR_THEMES[theme]) {\n if (group.classReference !== 'body') {\n continue;\n }\n for (const input of group.inputs) {\n if (input.prop === 'fontSize' && typeof input.value === 'number') {\n return input.value;\n }\n }\n }\n return 14;\n}\n\n/**\n * Use to make the preview nicer once the theme might miss some\n * important properties to make layout accurate\n */\nexport const DEFAULT_INBOX_FONT_SIZE_PX = 14;\nexport const INBOX_EMAIL_DEFAULTS: Partial<ResetTheme> = {\n body: {\n color: '#000000',\n fontFamily:\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n fontSize: `${DEFAULT_INBOX_FONT_SIZE_PX}px`,\n lineHeight: '155%',\n },\n container: {\n width: 600,\n },\n};\n\nexport const SUPPORTED_CSS_PROPERTIES: SupportedCssProperties = {\n align: {\n label: 'Align',\n type: 'select',\n options: {\n left: 'Left',\n center: 'Center',\n right: 'Right',\n },\n defaultValue: 'left',\n category: 'layout',\n },\n backgroundColor: {\n label: 'Background',\n type: 'color',\n excludeNodes: ['image', 'youtube'],\n defaultValue: '#ffffff',\n category: 'appearance',\n },\n color: {\n label: 'Text color',\n type: 'color',\n excludeNodes: ['image', 'youtube'],\n defaultValue: '#000000',\n category: 'typography',\n },\n fontSize: {\n label: 'Font size',\n type: 'number',\n unit: 'px',\n excludeNodes: ['image', 'youtube'],\n defaultValue: 14,\n category: 'typography',\n },\n fontWeight: {\n label: 'Font weight',\n type: 'select',\n options: {\n 300: 'Light',\n 400: 'Normal',\n 600: 'Semi Bold',\n 700: 'Bold',\n 800: 'Extra Bold',\n },\n excludeNodes: ['image', 'youtube'],\n defaultValue: 400,\n category: 'typography',\n },\n letterSpacing: {\n label: 'Letter spacing',\n type: 'number',\n unit: 'px',\n excludeNodes: ['image', 'youtube'],\n defaultValue: 0,\n category: 'typography',\n },\n lineHeight: {\n label: 'Line height',\n type: 'number',\n unit: '%',\n defaultValue: 155,\n category: 'typography',\n },\n textDecoration: {\n label: 'Text decoration',\n type: 'select',\n options: {\n none: 'None',\n underline: 'Underline',\n 'line-through': 'Line-through',\n },\n defaultValue: 'none',\n category: 'typography',\n },\n borderRadius: {\n label: 'Border Radius',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'appearance',\n },\n borderTopLeftRadius: {\n label: 'Border Radius (Top-Left)',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'appearance',\n },\n borderTopRightRadius: {\n label: 'Border Radius (Top-Right)',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'appearance',\n },\n borderBottomLeftRadius: {\n label: 'Border Radius (Bottom-Left)',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'appearance',\n },\n borderBottomRightRadius: {\n label: 'Border Radius (Bottom-Right)',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'appearance',\n },\n borderWidth: {\n label: 'Border Width',\n type: 'number',\n unit: 'px',\n defaultValue: 1,\n category: 'appearance',\n },\n borderTopWidth: {\n label: 'Border Top Width',\n type: 'number',\n unit: 'px',\n defaultValue: 1,\n category: 'appearance',\n },\n borderRightWidth: {\n label: 'Border Right Width',\n type: 'number',\n unit: 'px',\n defaultValue: 1,\n category: 'appearance',\n },\n borderBottomWidth: {\n label: 'Border Bottom Width',\n type: 'number',\n unit: 'px',\n defaultValue: 1,\n category: 'appearance',\n },\n borderLeftWidth: {\n label: 'Border Left Width',\n type: 'number',\n unit: 'px',\n defaultValue: 1,\n category: 'appearance',\n },\n borderStyle: {\n label: 'Border Style',\n type: 'select',\n options: {\n solid: 'Solid',\n dashed: 'Dashed',\n dotted: 'Dotted',\n },\n defaultValue: 'solid',\n category: 'appearance',\n },\n borderTopStyle: {\n label: 'Border Top Style',\n type: 'select',\n options: {\n solid: 'Solid',\n dashed: 'Dashed',\n dotted: 'Dotted',\n },\n defaultValue: 'solid',\n category: 'appearance',\n },\n borderRightStyle: {\n label: 'Border Right Style',\n type: 'select',\n options: {\n solid: 'Solid',\n dashed: 'Dashed',\n dotted: 'Dotted',\n },\n defaultValue: 'solid',\n category: 'appearance',\n },\n borderBottomStyle: {\n label: 'Border Bottom Style',\n type: 'select',\n options: {\n solid: 'Solid',\n dashed: 'Dashed',\n dotted: 'Dotted',\n },\n defaultValue: 'solid',\n category: 'appearance',\n },\n borderLeftStyle: {\n label: 'Border Left Style',\n type: 'select',\n options: {\n solid: 'Solid',\n dashed: 'Dashed',\n dotted: 'Dotted',\n },\n defaultValue: 'solid',\n category: 'appearance',\n },\n borderColor: {\n label: 'Border Color',\n type: 'color',\n defaultValue: '#000000',\n category: 'appearance',\n },\n borderTopColor: {\n label: 'Border Top Color',\n type: 'color',\n defaultValue: '#000000',\n category: 'appearance',\n },\n borderRightColor: {\n label: 'Border Right Color',\n type: 'color',\n defaultValue: '#000000',\n category: 'appearance',\n },\n borderBottomColor: {\n label: 'Border Bottom Color',\n type: 'color',\n defaultValue: '#000000',\n category: 'appearance',\n },\n borderLeftColor: {\n label: 'Border Left Color',\n type: 'color',\n defaultValue: '#000000',\n category: 'appearance',\n },\n padding: {\n label: 'Padding',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'layout',\n },\n paddingTop: {\n label: 'Padding Top',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'layout',\n },\n paddingLeft: {\n label: 'Padding Left',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'layout',\n },\n paddingBottom: {\n label: 'Padding Bottom',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'layout',\n },\n paddingRight: {\n label: 'Padding Right',\n type: 'number',\n unit: 'px',\n defaultValue: 8,\n category: 'layout',\n },\n width: {\n label: 'Width',\n type: 'number',\n unit: 'px',\n defaultValue: 600,\n category: 'layout',\n },\n height: {\n label: 'Height',\n type: 'number',\n unit: 'px',\n defaultValue: 400,\n category: 'layout',\n },\n};\n","import { EDITOR_THEMES } from './themes';\nimport type {\n EditorTheme,\n KnownThemeComponents,\n PanelGroup,\n PanelSectionId,\n} from './types';\n\nconst PANEL_SECTION_IDS = new Set<PanelSectionId>([\n 'body',\n 'container',\n 'typography',\n 'link',\n 'image',\n 'button',\n 'code-block',\n 'inline-code',\n]);\n\nconst PANEL_SECTION_IDS_BY_TITLE: Record<string, PanelSectionId> = {\n background: 'body',\n body: 'body',\n content: 'container',\n container: 'container',\n typography: 'typography',\n link: 'link',\n image: 'image',\n button: 'button',\n 'code block': 'code-block',\n 'inline code': 'inline-code',\n};\n\nconst PANEL_SECTION_IDS_BY_CLASS_REFERENCE: Partial<\n Record<KnownThemeComponents, PanelSectionId>\n> = {\n container: 'container',\n link: 'link',\n image: 'image',\n button: 'button',\n codeBlock: 'code-block',\n inlineCode: 'inline-code',\n};\n\nfunction isPanelSectionId(value: unknown): value is PanelSectionId {\n return (\n typeof value === 'string' && PANEL_SECTION_IDS.has(value as PanelSectionId)\n );\n}\n\nfunction normalizeTitle(title: string | undefined): string {\n return title?.trim().toLowerCase().replace(/\\s+/g, ' ') ?? '';\n}\n\nfunction resolvePanelSectionId(group: PanelGroup): PanelSectionId | null {\n if (isPanelSectionId(group.id)) {\n return group.id;\n }\n\n const normalizedTitle = normalizeTitle(group.title);\n\n if (group.classReference === 'body') {\n if (normalizedTitle === 'typography') {\n return 'typography';\n }\n\n return 'body';\n }\n\n if (\n group.classReference &&\n PANEL_SECTION_IDS_BY_CLASS_REFERENCE[group.classReference]\n ) {\n return PANEL_SECTION_IDS_BY_CLASS_REFERENCE[group.classReference] ?? null;\n }\n\n return PANEL_SECTION_IDS_BY_TITLE[normalizedTitle] ?? null;\n}\n\nfunction normalizePanelInputs(\n inputs: PanelGroup['inputs'],\n defaultInputs: PanelGroup['inputs'],\n fallbackClassReference?: KnownThemeComponents,\n): PanelGroup['inputs'] {\n if (!Array.isArray(inputs)) {\n return [];\n }\n\n return inputs.map((input) => {\n const defaultInput = defaultInputs.find(\n (candidate) => candidate.prop === input.prop,\n );\n\n return {\n ...defaultInput,\n ...input,\n classReference:\n input.classReference ??\n defaultInput?.classReference ??\n fallbackClassReference,\n };\n });\n}\n\nexport function inferThemeFromPanelStyles(\n panelStyles: PanelGroup[] | null | undefined,\n): EditorTheme | null {\n if (!Array.isArray(panelStyles) || panelStyles.length === 0) {\n return null;\n }\n\n let finalTheme: EditorTheme | null = null;\n for (const group of panelStyles) {\n if (!Array.isArray(group?.inputs)) {\n finalTheme = null;\n break;\n }\n\n if (group.inputs.length !== 0) {\n finalTheme = 'basic';\n break;\n }\n\n finalTheme = 'minimal';\n }\n\n return finalTheme;\n}\n\nexport function normalizeThemePanelStyles(\n theme: EditorTheme,\n panelStyles: PanelGroup[] | null | undefined,\n): PanelGroup[] | null {\n if (!Array.isArray(panelStyles)) {\n return null;\n }\n\n return panelStyles.map((group) => {\n const panelId = resolvePanelSectionId(group);\n\n if (!panelId) {\n return group;\n }\n\n const defaultGroup = EDITOR_THEMES[theme].find(\n (candidate) => candidate.id === panelId,\n );\n\n if (!defaultGroup) {\n return group;\n }\n\n return {\n ...group,\n id: panelId,\n title: defaultGroup.title,\n classReference: defaultGroup.classReference,\n inputs: normalizePanelInputs(\n group.inputs,\n defaultGroup.inputs,\n defaultGroup.classReference,\n ),\n };\n });\n}\n","import { Body, Head, Html, Preview, Section } from '@react-email/components';\nimport type { Editor, JSONContent } from '@tiptap/core';\nimport { Extension } from '@tiptap/core';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { useEditorState } from '@tiptap/react';\nimport type * as React from 'react';\nimport type { SerializerPlugin } from '../../core/serializer/serializer-plugin';\nimport { getGlobalContent } from '../../extensions/global-content';\nimport {\n injectGlobalPlainCss,\n injectThemeCss,\n mergeCssJs,\n transformToCssJs,\n} from './css-transforms';\nimport {\n inferThemeFromPanelStyles,\n normalizeThemePanelStyles,\n} from './normalization';\nimport {\n DEFAULT_INBOX_FONT_SIZE_PX,\n EDITOR_THEMES,\n RESET_THEMES,\n} from './themes';\nimport type {\n CssJs,\n EditorTheme,\n KnownThemeComponents,\n PanelGroup,\n} from './types';\n\n/**\n * Maps a document node (type + attrs) to the theme component key used for style lookup.\n * Centralizes all node-type → theme-component knowledge.\n */\nexport function getThemeComponentKey(\n nodeType: string,\n depth: number,\n attrs: Record<string, unknown> = {},\n): KnownThemeComponents | null {\n switch (nodeType) {\n case 'paragraph':\n if (depth > 0) {\n return 'listParagraph';\n }\n return 'paragraph';\n case 'heading': {\n const level = attrs.level as number | undefined;\n return `h${level ?? 1}` as KnownThemeComponents;\n }\n case 'blockquote':\n return 'blockquote';\n case 'button':\n return 'button';\n case 'section':\n return 'section';\n case 'footer':\n return 'footer';\n case 'image':\n return 'image';\n case 'youtube':\n case 'twitter':\n return 'image';\n case 'orderedList':\n case 'bulletList':\n if (depth > 0) {\n return 'nestedList';\n }\n return 'list';\n case 'listItem':\n return 'listItem';\n case 'codeBlock':\n return 'codeBlock';\n case 'code':\n return 'inlineCode';\n case 'link':\n return 'link';\n case 'horizontalRule':\n return 'hr';\n default:\n return null;\n }\n}\n\n/**\n * Returns merged theme styles (reset + panel styles) for the given editor.\n * Use when you have editor access and need the full CssJs map.\n */\nexport function getMergedCssJs(\n theme: EditorTheme,\n panelStyles: PanelGroup[] | undefined,\n): CssJs {\n const panels: PanelGroup[] =\n normalizeThemePanelStyles(theme, panelStyles) ?? EDITOR_THEMES[theme];\n const parsed = transformToCssJs(panels, DEFAULT_INBOX_FONT_SIZE_PX);\n const merged = mergeCssJs(RESET_THEMES[theme], parsed);\n\n return merged;\n}\n\n/**\n * Returns resolved React.CSSProperties for a node when you already have merged CssJs\n * (e.g. in the serializer where there is no editor). Centralizes which theme keys\n * apply to which node type.\n */\nconst RESET_NODE_TYPES = new Set([\n 'body',\n 'bulletList',\n 'button',\n 'columns',\n 'div',\n 'h1',\n 'h2',\n 'h3',\n 'list',\n 'listItem',\n 'listParagraph',\n 'nestedList',\n 'orderedList',\n 'table',\n 'paragraph',\n 'tableCell',\n 'tableHeader',\n 'tableRow',\n 'youtube',\n]);\n\nexport function getResolvedNodeStyles(\n node: JSONContent,\n depth: number,\n mergedCssJs: CssJs,\n): React.CSSProperties {\n const key = getThemeComponentKey(node.type ?? '', depth, node.attrs ?? {});\n if (!key) {\n if (RESET_NODE_TYPES.has(node.type ?? '')) {\n return mergedCssJs.reset ?? {};\n }\n return {};\n }\n const component = mergedCssJs[key] ?? {};\n const shouldReset =\n RESET_NODE_TYPES.has(key) || RESET_NODE_TYPES.has(node.type ?? '');\n if (shouldReset) {\n const reset = mergedCssJs.reset ?? {};\n return { ...reset, ...component };\n }\n return { ...component };\n}\n\nexport function stylesToCss(\n styles: PanelGroup[],\n theme: EditorTheme,\n): Record<KnownThemeComponents, React.CSSProperties> {\n const parsed = transformToCssJs(\n normalizeThemePanelStyles(theme, styles) ?? EDITOR_THEMES[theme],\n DEFAULT_INBOX_FONT_SIZE_PX,\n );\n return mergeCssJs(RESET_THEMES[theme], parsed);\n}\n\nfunction getEmailTheming(editor: Editor) {\n const theme = getEmailTheme(editor);\n const normalizedStyles =\n normalizeThemePanelStyles(theme, getEmailStyles(editor)) ??\n EDITOR_THEMES[theme];\n\n return {\n styles: normalizedStyles,\n theme,\n css: getEmailCss(editor),\n };\n}\n\nexport function useEmailTheming(editor: Editor | null) {\n return useEditorState({\n editor,\n selector({ editor: ed }) {\n if (!ed) {\n return null;\n }\n return getEmailTheming(ed);\n },\n });\n}\n\nfunction getEmailStyles(editor: Editor) {\n return getGlobalContent('styles', editor) as PanelGroup[] | null;\n}\n\n/**\n * Sets the global panel styles on the editor document.\n * Persists into the `GlobalContent` node under the `'styles'` key.\n */\nexport function setGlobalStyles(editor: Editor, styles: PanelGroup[]): boolean {\n return editor.commands.setGlobalContent('styles', styles);\n}\n\n/**\n * Sets the current email theme on the editor document.\n * Persists into the `GlobalContent` node under the `'theme'` key.\n */\nexport function setCurrentTheme(editor: Editor, theme: EditorTheme): boolean {\n return editor.commands.setGlobalContent('theme', theme);\n}\n\n/**\n * Sets the global CSS string injected into the email `<head>`.\n * Persists into the `GlobalContent` node under the `'css'` key.\n */\nexport function setGlobalCssInjected(editor: Editor, css: string): boolean {\n return editor.commands.setGlobalContent('css', css);\n}\n\nfunction getEmailTheme(editor: Editor) {\n const extensionTheme = (\n editor.extensionManager.extensions.find(\n (extension) => extension.name === 'theming',\n ) as { options?: { theme?: EditorTheme } }\n )?.options?.theme;\n if (extensionTheme === 'basic' || extensionTheme === 'minimal') {\n return extensionTheme;\n }\n\n const globalTheme = getGlobalContent('theme', editor) as EditorTheme | null;\n if (globalTheme === 'basic' || globalTheme === 'minimal') {\n return globalTheme;\n }\n\n const inferredTheme = inferThemeFromPanelStyles(getEmailStyles(editor));\n if (inferredTheme) {\n return inferredTheme;\n }\n\n return 'basic';\n}\n\nfunction getEmailCss(editor: Editor) {\n return getGlobalContent('css', editor) as string | null;\n}\n\nexport const EmailTheming = Extension.create<{\n theme?: EditorTheme;\n serializerPlugin: SerializerPlugin;\n}>({\n name: 'theming',\n\n addOptions() {\n return {\n theme: undefined as EditorTheme | undefined,\n serializerPlugin: {\n getNodeStyles(\n node: JSONContent,\n depth: number,\n editor: Editor,\n ): React.CSSProperties {\n const theming = getEmailTheming(editor);\n\n return getResolvedNodeStyles(\n node,\n depth,\n getMergedCssJs(theming.theme, theming.styles),\n );\n },\n BaseTemplate({\n previewText,\n children,\n editor,\n }: {\n previewText: string | null;\n children: React.ReactNode;\n editor: Editor;\n }) {\n const { css: globalCss, styles, theme } = getEmailTheming(editor);\n const mergedStyles = getMergedCssJs(theme, styles);\n\n return (\n <Html>\n <Head>\n <meta content=\"width=device-width\" name=\"viewport\" />\n <meta content=\"IE=edge\" httpEquiv=\"X-UA-Compatible\" />\n <meta name=\"x-apple-disable-message-reformatting\" />\n <meta\n content=\"telephone=no,address=no,email=no,date=no,url=no\"\n name=\"format-detection\"\n />\n\n {globalCss && <style>{globalCss}</style>}\n </Head>\n {previewText && previewText !== '' && (\n <Preview>{previewText}</Preview>\n )}\n\n <Body>\n <Section width=\"100%\" align=\"center\" style={mergedStyles.body}>\n <Section\n align={mergedStyles.container?.align}\n style={{\n ...mergedStyles.container,\n width: '100%',\n maxWidth: mergedStyles.container?.width,\n fontFamily: mergedStyles.body?.fontFamily,\n }}\n >\n {children}\n </Section>\n </Section>\n </Body>\n </Html>\n );\n },\n } satisfies SerializerPlugin,\n };\n },\n\n addProseMirrorPlugins() {\n const { editor } = this;\n const scopeId = `tiptap-theme-${Math.random().toString(36).slice(2, 10)}`;\n const scopeAttribute = 'data-editor-theme-scope';\n const scopeSelector = `.tiptap.ProseMirror[${scopeAttribute}=\"${scopeId}\"]`;\n const themeStyleId = `${scopeId}-theme`;\n const globalStyleId = `${scopeId}-global`;\n\n return [\n new Plugin({\n key: new PluginKey('themingStyleInjector'),\n view(view) {\n let prevStyles: PanelGroup[] | null = null;\n let prevTheme: EditorTheme | null = null;\n let prevCss: string | null = null;\n\n view.dom.setAttribute(scopeAttribute, scopeId);\n\n const sync = () => {\n const theme = getEmailTheme(editor);\n const styles = getEmailStyles(editor);\n const resolvedStyles = styles ?? EDITOR_THEMES[theme];\n const css = getEmailCss(editor);\n\n if (styles !== prevStyles || theme !== prevTheme) {\n prevStyles = styles as PanelGroup[] | null;\n prevTheme = theme;\n const mergedCssJs = getMergedCssJs(theme, resolvedStyles);\n injectThemeCss(mergedCssJs, {\n scopeSelector,\n styleId: themeStyleId,\n });\n\n const bodyBg = mergedCssJs.body?.backgroundColor;\n view.dom.style.backgroundColor =\n typeof bodyBg === 'string' ? bodyBg : '';\n }\n\n if (css !== prevCss) {\n prevCss = css;\n injectGlobalPlainCss(css, {\n scopeSelector,\n styleId: globalStyleId,\n });\n }\n };\n\n sync();\n\n return {\n update: sync,\n destroy() {\n document.getElementById(themeStyleId)?.remove();\n document.getElementById(globalStyleId)?.remove();\n view.dom.style.backgroundColor = '';\n view.dom.removeAttribute(scopeAttribute);\n },\n };\n },\n }),\n ];\n },\n});\n"],"mappings":"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AAO;GACP,MAAM;GACN,OAAO;GACP,MAAM;GACN,MAAM;GACN,gBAAgB;GACjB,EACD;GACE,OAAO;GACP,MAAM;GACN,OAAO;GACP,MAAM;GACN,MAAM;GACN,gBAAgB;GACjB,CACF;EACF;CACD;EACE,IAAI;EACJ,OAAO;EACP,UAAU;EACV,gBAAgB;EAChB,QAAQ,EAAE;EACX;CACD;EACE,IAAI;EACJ,OAAO;EACP,UAAU;EACV,gBAAgB;EAChB,QAAQ,EAAE;EACX;CACD;EACE,IAAI;EACJ,OAAO;EACP,UAAU;EACV,gBAAgB;EAChB,QAAQ,EAAE;EACX;CACD;EACE,IAAI;EACJ,OAAO;EACP,gBAAgB;EAChB,QAAQ,CACN;GACE,OAAO;GACP,MAAM;GACN,OAAO;GACP,MAAM;GACN,gBAAgB;GACjB,EACD;GACE,OAAO;GACP,MAAM;GACN,OAAO;GACP,MAAM;GACN,SAAS;IACP,WAAW;IACX,MAAM;IACP;GACD,gBAAgB;GACjB,CACF;EACF;CACD;EACE,IAAI;EACJ,OAAO;EACP,gBAAgB;EAChB,QAAQ,CACN;GACE,OAAO;GACP,MAAM;GACN,OAAO;GACP,MAAM;GACN,MAAM;GACN,gBAAgB;GACjB,CACF;EACF;CACD;EACE,IAAI;EACJ,OAAO;EACP,gBAAgB;EAChB,QAAQ;GACN;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO;EACP,gBAAgB;EAChB,QAAQ;GACN;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO;EACP,gBAAgB;EAChB,QAAQ;GACN;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,gBAAgB;IACjB;GACD;IACE,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,gBAAgB;IACjB;GACF;EACF;CACF;AAED,MAAM,gBAAgB,YAAY,KAAK,UAAU;CAAE,GAAG;CAAM,QAAQ,EAAE;CAAE,EAAE;AAE1E,MAAM,cAA0B;CAC9B,OAAO;EACL,QAAQ;EACR,SAAS;EACV;CACD,MAAM;EACJ,YACE;EACF,UAAU;EACV,WAAW;EACX,YAAY;EACb;CACD,WAAW,EAAE;CACb,IAAI;EACF,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,YAAY;EACb;CACD,IAAI;EACF,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,YAAY;EACb;CACD,IAAI;EACF,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,YAAY;EACb;CACD,WAAW;EACT,UAAU;EACV,YAAY;EACZ,eAAe;EAChB;CACD,MAAM;EACJ,aAAa;EACb,eAAe;EAChB;CACD,YAAY;EACV,aAAa;EACb,eAAe;EAChB;CACD,UAAU;EACR,YAAY;EACZ,cAAc;EACd,WAAW;EACZ;CACD,eAAe;EAAE,SAAS;EAAK,QAAQ;EAAK;CAC5C,YAAY;EACV,YAAY;EACZ,OAAO;EACP,YAAY;EACZ,aAAa;EACb,UAAU;EACV,YACE;EACH;CACD,MAAM,EAAE,gBAAgB,aAAa;CACrC,QAAQ,EACN,UAAU,SACX;CACD,IAAI;EACF,eAAe;EACf,aAAa;EACd;CACD,OAAO,EACL,UAAU,QACX;CACD,QAAQ;EACN,YAAY;EACZ,SAAS;EACV;CACD,YAAY;EACV,YAAY;EACZ,eAAe;EACf,aAAa;EACb,cAAc;EACd,YAAY;EACZ,OAAO;EACP,cAAc;EACf;CACD,WAAW;EACT,YAAY;EACZ,YAAY;EACZ,UAAU;EACX;CACD,SAAS;EACP,YAAY;EACZ,YAAY;EACZ,UAAU;EACX;CACD,SAAS;EACP,SAAS;EACT,WAAW;EACZ;CACF;AAED,MAAM,gBAA4B;CAChC,GAAG,OAAO,KAAK,YAAY,CAAC,QAAoB,KAAK,QAAQ;AAC3D,MAAI,OAA2B,EAAE;AACjC,SAAO;IACN,EAAE,CAAe;CACpB,OAAO,YAAY;CACpB;AAED,MAAa,eAAgD;CAC3D,OAAO;CACP,SAAS;CACV;AAED,SAAgB,kBACd,OACA,YACA,gBACoB;AACpB,KAAI,UAAU,OACZ;CAEF,MAAM,MAAM,OAAO,MAAM;CACzB,MAAM,MAAM,OAAO,WAAW,IAAI;AAClC,KAAI,OAAO,MAAM,IAAI,CACnB;AAEF,KAAI,IAAI,SAAS,KAAK,CACpB,QAAO,eAAe,OAAO,KAAK,MAAM,MAAM,eAAe,GAAG,MAAM;AAExE,QAAO;;AAGT,MAAa,gBAAmD;CAC9D,SAAS;CACT,OAAO;CACR;AAED,SAAgB,uBAAuB,OAA4B;AACjE,MAAK,MAAM,SAAS,cAAc,QAAQ;AACxC,MAAI,MAAM,mBAAmB,OAC3B;AAEF,OAAK,MAAM,SAAS,MAAM,OACxB,KAAI,MAAM,SAAS,cAAc,OAAO,MAAM,UAAU,SACtD,QAAO,MAAM;;AAInB,QAAO;;;;;;AAOT,MAAa,6BAA6B;AAC1C,MAAa,uBAA4C;CACvD,MAAM;EACJ,OAAO;EACP,YACE;EACF,UAAU,GAAG,2BAA2B;EACxC,YAAY;EACb;CACD,WAAW,EACT,OAAO,KACR;CACF;AAED,MAAa,2BAAmD;CAC9D,OAAO;EACL,OAAO;EACP,MAAM;EACN,SAAS;GACP,MAAM;GACN,QAAQ;GACR,OAAO;GACR;EACD,cAAc;EACd,UAAU;EACX;CACD,iBAAiB;EACf,OAAO;EACP,MAAM;EACN,cAAc,CAAC,SAAS,UAAU;EAClC,cAAc;EACd,UAAU;EACX;CACD,OAAO;EACL,OAAO;EACP,MAAM;EACN,cAAc,CAAC,SAAS,UAAU;EAClC,cAAc;EACd,UAAU;EACX;CACD,UAAU;EACR,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc,CAAC,SAAS,UAAU;EAClC,cAAc;EACd,UAAU;EACX;CACD,YAAY;EACV,OAAO;EACP,MAAM;EACN,SAAS;GACP,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,cAAc,CAAC,SAAS,UAAU;EAClC,cAAc;EACd,UAAU;EACX;CACD,eAAe;EACb,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc,CAAC,SAAS,UAAU;EAClC,cAAc;EACd,UAAU;EACX;CACD,YAAY;EACV,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,gBAAgB;EACd,OAAO;EACP,MAAM;EACN,SAAS;GACP,MAAM;GACN,WAAW;GACX,gBAAgB;GACjB;EACD,cAAc;EACd,UAAU;EACX;CACD,cAAc;EACZ,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,qBAAqB;EACnB,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,sBAAsB;EACpB,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,wBAAwB;EACtB,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,yBAAyB;EACvB,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,aAAa;EACX,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,gBAAgB;EACd,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,kBAAkB;EAChB,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,mBAAmB;EACjB,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,iBAAiB;EACf,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,aAAa;EACX,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GACT;EACD,cAAc;EACd,UAAU;EACX;CACD,gBAAgB;EACd,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GACT;EACD,cAAc;EACd,UAAU;EACX;CACD,kBAAkB;EAChB,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GACT;EACD,cAAc;EACd,UAAU;EACX;CACD,mBAAmB;EACjB,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GACT;EACD,cAAc;EACd,UAAU;EACX;CACD,iBAAiB;EACf,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GACT;EACD,cAAc;EACd,UAAU;EACX;CACD,aAAa;EACX,OAAO;EACP,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,gBAAgB;EACd,OAAO;EACP,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,kBAAkB;EAChB,OAAO;EACP,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,mBAAmB;EACjB,OAAO;EACP,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,iBAAiB;EACf,OAAO;EACP,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,SAAS;EACP,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,YAAY;EACV,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,aAAa;EACX,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,eAAe;EACb,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,cAAc;EACZ,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,OAAO;EACL,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACD,QAAQ;EACN,OAAO;EACP,MAAM;EACN,MAAM;EACN,cAAc;EACd,UAAU;EACX;CACF;;;;AChvBD,MAAM,oBAAoB,IAAI,IAAoB;CAChD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAM,6BAA6D;CACjE,YAAY;CACZ,MAAM;CACN,SAAS;CACT,WAAW;CACX,YAAY;CACZ,MAAM;CACN,OAAO;CACP,QAAQ;CACR,cAAc;CACd,eAAe;CAChB;AAED,MAAM,uCAEF;CACF,WAAW;CACX,MAAM;CACN,OAAO;CACP,QAAQ;CACR,WAAW;CACX,YAAY;CACb;AAED,SAAS,iBAAiB,OAAyC;AACjE,QACE,OAAO,UAAU,YAAY,kBAAkB,IAAI,MAAwB;;AAI/E,SAAS,eAAe,OAAmC;AACzD,QAAO,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,QAAQ,IAAI,IAAI;;AAG7D,SAAS,sBAAsB,OAA0C;AACvE,KAAI,iBAAiB,MAAM,GAAG,CAC5B,QAAO,MAAM;CAGf,MAAM,kBAAkB,eAAe,MAAM,MAAM;AAEnD,KAAI,MAAM,mBAAmB,QAAQ;AACnC,MAAI,oBAAoB,aACtB,QAAO;AAGT,SAAO;;AAGT,KACE,MAAM,kBACN,qCAAqC,MAAM,gBAE3C,QAAO,qCAAqC,MAAM,mBAAmB;AAGvE,QAAO,2BAA2B,oBAAoB;;AAGxD,SAAS,qBACP,QACA,eACA,wBACsB;AACtB,KAAI,CAAC,MAAM,QAAQ,OAAO,CACxB,QAAO,EAAE;AAGX,QAAO,OAAO,KAAK,UAAU;EAC3B,MAAM,eAAe,cAAc,MAChC,cAAc,UAAU,SAAS,MAAM,KACzC;AAED,SAAO;GACL,GAAG;GACH,GAAG;GACH,gBACE,MAAM,kBACN,cAAc,kBACd;GACH;GACD;;AAGJ,SAAgB,0BACd,aACoB;AACpB,KAAI,CAAC,MAAM,QAAQ,YAAY,IAAI,YAAY,WAAW,EACxD,QAAO;CAGT,IAAI,aAAiC;AACrC,MAAK,MAAM,SAAS,aAAa;AAC/B,MAAI,CAAC,MAAM,QAAQ,OAAO,OAAO,EAAE;AACjC,gBAAa;AACb;;AAGF,MAAI,MAAM,OAAO,WAAW,GAAG;AAC7B,gBAAa;AACb;;AAGF,eAAa;;AAGf,QAAO;;AAGT,SAAgB,0BACd,OACA,aACqB;AACrB,KAAI,CAAC,MAAM,QAAQ,YAAY,CAC7B,QAAO;AAGT,QAAO,YAAY,KAAK,UAAU;EAChC,MAAM,UAAU,sBAAsB,MAAM;AAE5C,MAAI,CAAC,QACH,QAAO;EAGT,MAAM,eAAe,cAAc,OAAO,MACvC,cAAc,UAAU,OAAO,QACjC;AAED,MAAI,CAAC,aACH,QAAO;AAGT,SAAO;GACL,GAAG;GACH,IAAI;GACJ,OAAO,aAAa;GACpB,gBAAgB,aAAa;GAC7B,QAAQ,qBACN,MAAM,QACN,aAAa,QACb,aAAa,eACd;GACF;GACD;;;;;;;;;AChIJ,SAAgB,qBACd,UACA,OACA,QAAiC,EAAE,EACN;AAC7B,SAAQ,UAAR;EACE,KAAK;AACH,OAAI,QAAQ,EACV,QAAO;AAET,UAAO;EACT,KAAK,UAEH,QAAO,IADO,MAAM,SACA;EAEtB,KAAK,aACH,QAAO;EACT,KAAK,SACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,KAAK,SACH,QAAO;EACT,KAAK,QACH,QAAO;EACT,KAAK;EACL,KAAK,UACH,QAAO;EACT,KAAK;EACL,KAAK;AACH,OAAI,QAAQ,EACV,QAAO;AAET,UAAO;EACT,KAAK,WACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,KAAK,iBACH,QAAO;EACT,QACE,QAAO;;;;;;;AAQb,SAAgB,eACd,OACA,aACO;CAGP,MAAM,SAAS,iBADb,0BAA0B,OAAO,YAAY,IAAI,cAAc,QACzB,2BAA2B;AAGnE,QAFe,WAAW,aAAa,QAAQ,OAAO;;;;;;;AAUxD,MAAM,mBAAmB,IAAI,IAAI;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAgB,sBACd,MACA,OACA,aACqB;CACrB,MAAM,MAAM,qBAAqB,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;AAC1E,KAAI,CAAC,KAAK;AACR,MAAI,iBAAiB,IAAI,KAAK,QAAQ,GAAG,CACvC,QAAO,YAAY,SAAS,EAAE;AAEhC,SAAO,EAAE;;CAEX,MAAM,YAAY,YAAY,QAAQ,EAAE;AAGxC,KADE,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,IAAI,KAAK,QAAQ,GAAG,CAGlE,QAAO;EAAE,GADK,YAAY,SAAS,EAAE;EAClB,GAAG;EAAW;AAEnC,QAAO,EAAE,GAAG,WAAW;;AAGzB,SAAgB,YACd,QACA,OACmD;CACnD,MAAM,SAAS,iBACb,0BAA0B,OAAO,OAAO,IAAI,cAAc,QAC1D,2BACD;AACD,QAAO,WAAW,aAAa,QAAQ,OAAO;;AAGhD,SAAS,gBAAgB,QAAgB;CACvC,MAAM,QAAQ,cAAc,OAAO;AAKnC,QAAO;EACL,QAJA,0BAA0B,OAAO,eAAe,OAAO,CAAC,IACxD,cAAc;EAId;EACA,KAAK,YAAY,OAAO;EACzB;;AAGH,SAAgB,gBAAgB,QAAuB;AACrD,QAAO,eAAe;EACpB;EACA,SAAS,EAAE,QAAQ,MAAM;AACvB,OAAI,CAAC,GACH,QAAO;AAET,UAAO,gBAAgB,GAAG;;EAE7B,CAAC;;AAGJ,SAAS,eAAe,QAAgB;AACtC,QAAO,iBAAiB,UAAU,OAAO;;;;;;AAO3C,SAAgB,gBAAgB,QAAgB,QAA+B;AAC7E,QAAO,OAAO,SAAS,iBAAiB,UAAU,OAAO;;;;;;AAO3D,SAAgB,gBAAgB,QAAgB,OAA6B;AAC3E,QAAO,OAAO,SAAS,iBAAiB,SAAS,MAAM;;;;;;AAOzD,SAAgB,qBAAqB,QAAgB,KAAsB;AACzE,QAAO,OAAO,SAAS,iBAAiB,OAAO,IAAI;;AAGrD,SAAS,cAAc,QAAgB;CACrC,MAAM,iBACJ,OAAO,iBAAiB,WAAW,MAChC,cAAc,UAAU,SAAS,UACnC,EACA,SAAS;AACZ,KAAI,mBAAmB,WAAW,mBAAmB,UACnD,QAAO;CAGT,MAAM,cAAc,iBAAiB,SAAS,OAAO;AACrD,KAAI,gBAAgB,WAAW,gBAAgB,UAC7C,QAAO;CAGT,MAAM,gBAAgB,0BAA0B,eAAe,OAAO,CAAC;AACvE,KAAI,cACF,QAAO;AAGT,QAAO;;AAGT,SAAS,YAAY,QAAgB;AACnC,QAAO,iBAAiB,OAAO,OAAO;;AAGxC,MAAa,eAAe,UAAU,OAGnC;CACD,MAAM;CAEN,aAAa;AACX,SAAO;GACL,OAAO;GACP,kBAAkB;IAChB,cACE,MACA,OACA,QACqB;KACrB,MAAM,UAAU,gBAAgB,OAAO;AAEvC,YAAO,sBACL,MACA,OACA,eAAe,QAAQ,OAAO,QAAQ,OAAO,CAC9C;;IAEH,aAAa,EACX,aACA,UACA,UAKC;KACD,MAAM,EAAE,KAAK,WAAW,QAAQ,UAAU,gBAAgB,OAAO;KACjE,MAAM,eAAe,eAAe,OAAO,OAAO;AAElD,YACE,qBAAC;MACC,qBAAC;OACC,oBAAC;QAAK,SAAQ;QAAqB,MAAK;SAAa;OACrD,oBAAC;QAAK,SAAQ;QAAU,WAAU;SAAoB;OACtD,oBAAC,UAAK,MAAK,yCAAyC;OACpD,oBAAC;QACC,SAAQ;QACR,MAAK;SACL;OAED,aAAa,oBAAC,qBAAO,YAAkB;UACnC;MACN,eAAe,gBAAgB,MAC9B,oBAAC,qBAAS,cAAsB;MAGlC,oBAAC,kBACC,oBAAC;OAAQ,OAAM;OAAO,OAAM;OAAS,OAAO,aAAa;iBACvD,oBAAC;QACC,OAAO,aAAa,WAAW;QAC/B,OAAO;SACL,GAAG,aAAa;SAChB,OAAO;SACP,UAAU,aAAa,WAAW;SAClC,YAAY,aAAa,MAAM;SAChC;QAEA;SACO;QACF,GACL;SACF;;IAGZ;GACF;;CAGH,wBAAwB;EACtB,MAAM,EAAE,WAAW;EACnB,MAAM,UAAU,gBAAgB,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,GAAG;EACvE,MAAM,iBAAiB;EACvB,MAAM,gBAAgB,uBAAuB,eAAe,IAAI,QAAQ;EACxE,MAAM,eAAe,GAAG,QAAQ;EAChC,MAAM,gBAAgB,GAAG,QAAQ;AAEjC,SAAO,CACL,IAAI,OAAO;GACT,KAAK,IAAI,UAAU,uBAAuB;GAC1C,KAAK,MAAM;IACT,IAAI,aAAkC;IACtC,IAAI,YAAgC;IACpC,IAAI,UAAyB;AAE7B,SAAK,IAAI,aAAa,gBAAgB,QAAQ;IAE9C,MAAM,aAAa;KACjB,MAAM,QAAQ,cAAc,OAAO;KACnC,MAAM,SAAS,eAAe,OAAO;KACrC,MAAM,iBAAiB,UAAU,cAAc;KAC/C,MAAM,MAAM,YAAY,OAAO;AAE/B,SAAI,WAAW,cAAc,UAAU,WAAW;AAChD,mBAAa;AACb,kBAAY;MACZ,MAAM,cAAc,eAAe,OAAO,eAAe;AACzD,qBAAe,aAAa;OAC1B;OACA,SAAS;OACV,CAAC;MAEF,MAAM,SAAS,YAAY,MAAM;AACjC,WAAK,IAAI,MAAM,kBACb,OAAO,WAAW,WAAW,SAAS;;AAG1C,SAAI,QAAQ,SAAS;AACnB,gBAAU;AACV,2BAAqB,KAAK;OACxB;OACA,SAAS;OACV,CAAC;;;AAIN,UAAM;AAEN,WAAO;KACL,QAAQ;KACR,UAAU;AACR,eAAS,eAAe,aAAa,EAAE,QAAQ;AAC/C,eAAS,eAAe,cAAc,EAAE,QAAQ;AAChD,WAAK,IAAI,MAAM,kBAAkB;AACjC,WAAK,IAAI,gBAAgB,eAAe;;KAE3C;;GAEJ,CAAC,CACH;;CAEJ,CAAC"}