@trycourier/react-designer 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +114 -2
  2. package/dist/cjs/index.js +61 -57
  3. package/dist/cjs/index.js.map +4 -4
  4. package/dist/cjs/styles.css +454 -145
  5. package/dist/components/BrandEditor/Editor/Editor.d.ts +16 -1
  6. package/dist/components/Providers/useTemplateActions.d.ts +2 -2
  7. package/dist/components/TemplateEditor/Channels/Email/Email.d.ts +1 -1
  8. package/dist/components/TemplateEditor/Channels/Email/EmailEditor.d.ts +2 -1
  9. package/dist/components/TemplateEditor/Channels/Email/EmailLayout.d.ts +1 -1
  10. package/dist/components/TemplateEditor/Channels/Email/SideBar/SideBarItemDetails/SideBarItemDetails.d.ts +2 -1
  11. package/dist/components/TemplateEditor/Channels/Inbox/Inbox.d.ts +1 -1
  12. package/dist/components/TemplateEditor/Channels/Inbox/InboxLayout.d.ts +1 -1
  13. package/dist/components/TemplateEditor/Channels/MSTeams/MSTeams.d.ts +1 -1
  14. package/dist/components/TemplateEditor/Channels/MSTeams/MSTeamsLayout.d.ts +1 -1
  15. package/dist/components/TemplateEditor/Channels/Push/Push.d.ts +1 -1
  16. package/dist/components/TemplateEditor/Channels/Push/PushLayout.d.ts +1 -1
  17. package/dist/components/TemplateEditor/Channels/SMS/SMS.d.ts +1 -1
  18. package/dist/components/TemplateEditor/Channels/SMS/SMSLayout.d.ts +1 -1
  19. package/dist/components/TemplateEditor/Channels/Slack/Slack.d.ts +1 -1
  20. package/dist/components/TemplateEditor/Channels/Slack/SlackLayout.d.ts +1 -1
  21. package/dist/components/TemplateEditor/Channels/useChannels.d.ts +8 -0
  22. package/dist/components/TemplateEditor/TemplateEditor.d.ts +16 -1
  23. package/dist/components/TemplateEditor/index.d.ts +2 -14
  24. package/dist/components/TemplateEditor/store.d.ts +10 -0
  25. package/dist/components/extensions/Blockquote/BlockquoteForm.d.ts +2 -1
  26. package/dist/components/extensions/Button/ButtonForm.d.ts +2 -1
  27. package/dist/components/extensions/Column/ColumnForm.d.ts +2 -1
  28. package/dist/components/extensions/CustomCode/CustomCodeForm.d.ts +2 -1
  29. package/dist/components/extensions/Divider/DividerForm.d.ts +2 -1
  30. package/dist/components/extensions/ImageBlock/components/ImageBlockForm.d.ts +2 -1
  31. package/dist/components/extensions/List/List.d.ts +15 -0
  32. package/dist/components/extensions/List/List.types.d.ts +38 -0
  33. package/dist/components/extensions/List/ListComponent.d.ts +12 -0
  34. package/dist/components/extensions/List/ListForm.d.ts +9 -0
  35. package/dist/components/extensions/List/index.d.ts +4 -0
  36. package/dist/components/extensions/ListItem/ListItem.d.ts +34 -0
  37. package/dist/components/extensions/ListItem/ListItem.types.d.ts +7 -0
  38. package/dist/components/extensions/ListItem/ListItemComponent.d.ts +7 -0
  39. package/dist/components/extensions/ListItem/index.d.ts +2 -0
  40. package/dist/components/extensions/TextBlock/TextBlockForm.d.ts +2 -1
  41. package/dist/components/extensions/Variable/Variable.d.ts +8 -4
  42. package/dist/components/extensions/Variable/Variable.types.d.ts +3 -14
  43. package/dist/components/extensions/Variable/VariableSuggestions.d.ts +7 -0
  44. package/dist/components/extensions/Variable/index.d.ts +1 -0
  45. package/dist/components/extensions/Variable/suggestion.d.ts +2 -0
  46. package/dist/components/extensions/extension-kit.d.ts +7 -2
  47. package/dist/components/extensions/index.d.ts +2 -0
  48. package/dist/components/ui/Blocks/ListBlock/ListBlock.d.ts +2 -0
  49. package/dist/components/ui/Blocks/ListBlock/index.d.ts +1 -0
  50. package/dist/components/ui/Blocks/index.d.ts +1 -0
  51. package/dist/components/ui/FormHeader/FormHeader.d.ts +3 -2
  52. package/dist/components/ui/SortableItemWrapper/SortableItemWrapper.d.ts +3 -1
  53. package/dist/components/ui/TextMenu/config.d.ts +2 -0
  54. package/dist/components/ui/TextMenu/hooks/useTextmenuCommands.d.ts +4 -0
  55. package/dist/components/ui/TextMenu/hooks/useTextmenuStates.d.ts +2 -0
  56. package/dist/components/ui/VariableEditor/VariableAutocomplete.d.ts +16 -0
  57. package/dist/components/ui/VariableEditor/VariableChipBase.d.ts +2 -0
  58. package/dist/components/ui-kit/Icon/UnorderedListIcon.d.ts +3 -0
  59. package/dist/components/ui-kit/Icon/index.d.ts +1 -1
  60. package/dist/esm/index.js +61 -57
  61. package/dist/esm/index.js.map +4 -4
  62. package/dist/esm/styles.css +454 -145
  63. package/dist/index.d.ts +14 -0
  64. package/dist/lib/utils/index.d.ts +1 -0
  65. package/dist/styles.css +454 -145
  66. package/dist/types/elemental.types.d.ts +6 -0
  67. package/dist/types/index.d.ts +1 -0
  68. package/dist/types/validation.types.d.ts +53 -0
  69. package/package.json +1 -1
  70. package/dist/components/ui-kit/Icon/BulletListIcon.d.ts +0 -3
@@ -6,5 +6,6 @@ export * from "./CustomCodeBlock";
6
6
  export * from "./DividerBlock";
7
7
  export * from "./HeadingBlock";
8
8
  export * from "./ImageBlock";
9
+ export * from "./ListBlock";
9
10
  export * from "./SpacerBlock";
10
11
  export * from "./TextBlock";
@@ -1,6 +1,7 @@
1
1
  interface FormHeaderProps {
2
- type: "text" | "image" | "spacer" | "divider" | "button" | "blockquote" | "heading" | "customCode" | "column";
2
+ type: "text" | "image" | "spacer" | "divider" | "button" | "blockquote" | "heading" | "customCode" | "column" | "list";
3
3
  label?: string;
4
+ hideCloseButton?: boolean;
4
5
  }
5
- export declare const FormHeader: ({ type }: FormHeaderProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const FormHeader: ({ type, hideCloseButton }: FormHeaderProps) => import("react/jsx-runtime").JSX.Element;
6
7
  export {};
@@ -7,8 +7,10 @@ export interface SortableItemWrapperProps extends NodeViewWrapperProps {
7
7
  className?: string;
8
8
  editor: Editor;
9
9
  getPos?: (() => number) | boolean;
10
+ /** If true, this element will not accept drops (but can still be dragged) */
11
+ disableDropTarget?: boolean;
10
12
  }
11
- export declare const SortableItemWrapper: ({ children, id, className, editor, getPos: _getPos, ...props }: SortableItemWrapperProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const SortableItemWrapper: ({ children, id, className, editor, getPos: _getPos, disableDropTarget, ...props }: SortableItemWrapperProps) => import("react/jsx-runtime").JSX.Element;
12
14
  export interface SortableItemProps {
13
15
  children: React.ReactNode;
14
16
  id?: string;
@@ -28,6 +28,8 @@ export interface TextMenuConfig {
28
28
  alignRight?: TextMenuItem;
29
29
  alignJustify?: TextMenuItem;
30
30
  quote?: TextMenuItem;
31
+ orderedList?: TextMenuItem;
32
+ unorderedList?: TextMenuItem;
31
33
  link?: TextMenuItem;
32
34
  variable?: TextMenuItem;
33
35
  conditionalRules?: ConditionalRule[];
@@ -6,6 +6,8 @@ interface TextMenuStates {
6
6
  isUnderline: boolean;
7
7
  isStrike: boolean;
8
8
  isQuote: boolean;
9
+ isOrderedList: boolean;
10
+ isUnorderedList: boolean;
9
11
  isAlignLeft: boolean;
10
12
  isAlignCenter: boolean;
11
13
  isAlignRight: boolean;
@@ -23,6 +25,8 @@ export declare const useTextmenuCommands: (editor: Editor, config?: TextMenuConf
23
25
  onAlignJustify: () => boolean;
24
26
  onLink: (url: string, inNewTab?: boolean) => boolean;
25
27
  onQuote: () => void;
28
+ onOrderedList: () => void;
29
+ onUnorderedList: () => void;
26
30
  resetButtonFormatting: () => boolean;
27
31
  };
28
32
  export {};
@@ -9,6 +9,8 @@ export declare const useTextmenuStates: (editor: Editor | null) => {
9
9
  isAlignRight: boolean;
10
10
  isAlignJustify: boolean;
11
11
  isQuote: boolean;
12
+ isOrderedList: boolean;
13
+ isUnorderedList: boolean;
12
14
  isLink: boolean;
13
15
  shouldShow: ({ editor }: {
14
16
  editor: Editor;
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ export interface VariableAutocompleteProps {
3
+ /** List of variable suggestions to show */
4
+ items: string[];
5
+ /** Called when an item is selected */
6
+ onSelect: (item: string) => void;
7
+ /** Currently selected index */
8
+ selectedIndex: number;
9
+ /** Reference element to position the dropdown near */
10
+ anchorRef: React.RefObject<HTMLElement>;
11
+ }
12
+ /**
13
+ * Autocomplete dropdown for variable suggestions.
14
+ * Shows a list of available variables that can be selected.
15
+ */
16
+ export declare const VariableAutocomplete: React.FC<VariableAutocompleteProps>;
@@ -31,5 +31,7 @@ export interface VariableChipBaseProps {
31
31
  textColorOverride?: string;
32
32
  /** Custom color getter function (kept for API compatibility, colors handled by CSS) */
33
33
  getColors?: (isInvalid: boolean, hasValue: boolean) => VariableColors;
34
+ /** Whether the chip is read-only (prevents editing) */
35
+ readOnly?: boolean;
34
36
  }
35
37
  export declare const VariableChipBase: React.FC<VariableChipBaseProps>;
@@ -0,0 +1,3 @@
1
+ import type { IconProps } from "./Icon";
2
+ export declare const UnorderedListIcon: ({ color, active, ...props }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default UnorderedListIcon;
@@ -4,7 +4,7 @@ export { BinIcon } from "./BinIcon";
4
4
  export { BoldIcon } from "./BoldIcon";
5
5
  export { BorderRadiusIcon } from "./BorderRadiusIcon";
6
6
  export { BorderWidthIcon } from "./BorderWidthIcon";
7
- export { BulletListIcon } from "./BulletListIcon";
7
+ export { UnorderedListIcon } from "./UnorderedListIcon";
8
8
  export { CenterAlignIcon } from "./CenterAlignIcon";
9
9
  export { CloseIcon } from "./CloseIcon";
10
10
  export { ColorIcon } from "./ColorIcon";