@prismicio/editor-ui 0.4.59 → 0.4.60

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.
@@ -0,0 +1,14 @@
1
+ import type { SX } from "../../theme";
2
+ import { type IconName } from "../Icon";
3
+ export interface BackgroundIconProps {
4
+ name: IconName;
5
+ color?: Color;
6
+ size?: "extraSmall" | "small" | "medium" | "large";
7
+ iconSize?: "small" | "medium" | "large";
8
+ radius?: "circle" | 6;
9
+ variant?: "soft" | "solid";
10
+ sx?: SX;
11
+ }
12
+ export declare function BackgroundIcon(props: BackgroundIconProps): JSX.Element;
13
+ type Color = "amber" | "grey" | "purple" | "tomato" | "green" | "indigo";
14
+ export {};
@@ -0,0 +1,39 @@
1
+ import { BackgroundIcon } from "./BackgroundIcon";
2
+ declare const meta: {
3
+ title: string;
4
+ component: typeof BackgroundIcon;
5
+ argTypes: {
6
+ color: {
7
+ control: string;
8
+ options: string[];
9
+ };
10
+ name: {
11
+ control: string;
12
+ options: readonly ["add", "alert", "arrowBack", "arrowDownward", "arrowDropDown", "arrowDropDownCircle", "arrowForward", "arrowUpward", "attachFile", "autoFixHigh", "autorenew", "biToggle", "block", "calendarToday", "centerFocusWeak", "check", "checkBox", "checkBoxOutlinedBlank", "chevronLeft", "chevronRight", "close", "cloud", "cloudUpload", "code", "colorLens", "contentCopy", "contentPaste", "createNewFolder", "creditCard", "crop", "cropLandscape", "cropPortrait", "dataObject", "dataUsage", "database", "dateRange", "delete", "description", "desktopWindows", "dragIndicator", "driveFileMove", "edit", "event", "expandLess", "expandMore", "firstPage", "folder", "folderManaged", "formatBold", "formatClear", "formatItalic", "formatListBulleted", "formatListNumbered", "formatTextDirectionRToL", "groupWork", "hideImage", "image", "imageSearch", "insertDriveFile", "inventory", "invite", "javascript", "json", "keyboardArrowDown", "keyboardArrowUp", "label", "language", "link", "linkOff", "lock", "looks1", "looks2", "looks3", "looks4", "looks5", "looks6", "menuBook", "migrationRelease", "moreVert", "multipleStop", "musicNote", "notStarted", "notes", "openInFull", "openInNew", "outbound", "people", "phoneIphone", "photo", "pin", "place", "playCircle", "preview", "prismic", "public", "receiptLong", "refresh", "save", "schedule", "search", "security", "sentimentSatisfied", "settings", "settingsEthernet", "smartDisplay", "svelte", "tabletMac", "tag", "terminal", "textFields", "title", "toggleOff", "translate", "tune", "typescript", "unfoldMore", "unsplash", "upload", "videocam", "viewDay", "visibility", "vue", "warning", "zoomOutMap"];
13
+ };
14
+ size: import("@storybook/types").InputType | undefined;
15
+ variant: {
16
+ control: string;
17
+ options: string[];
18
+ };
19
+ };
20
+ };
21
+ export default meta;
22
+ export declare const Default: {
23
+ name: string;
24
+ render: (args: {
25
+ name: "translate" | "visibility" | "search" | "link" | "description" | "code" | "add" | "alert" | "arrowBack" | "arrowDownward" | "arrowDropDown" | "arrowDropDownCircle" | "arrowForward" | "arrowUpward" | "attachFile" | "autoFixHigh" | "autorenew" | "biToggle" | "block" | "calendarToday" | "centerFocusWeak" | "check" | "checkBox" | "checkBoxOutlinedBlank" | "chevronLeft" | "chevronRight" | "close" | "cloud" | "cloudUpload" | "colorLens" | "contentCopy" | "contentPaste" | "createNewFolder" | "creditCard" | "crop" | "cropLandscape" | "cropPortrait" | "dataObject" | "dataUsage" | "database" | "dateRange" | "delete" | "desktopWindows" | "dragIndicator" | "driveFileMove" | "edit" | "event" | "expandLess" | "expandMore" | "firstPage" | "folder" | "folderManaged" | "formatBold" | "formatClear" | "formatItalic" | "formatListBulleted" | "formatListNumbered" | "formatTextDirectionRToL" | "groupWork" | "hideImage" | "image" | "imageSearch" | "insertDriveFile" | "inventory" | "invite" | "javascript" | "json" | "keyboardArrowDown" | "keyboardArrowUp" | "label" | "language" | "linkOff" | "lock" | "looks1" | "looks2" | "looks3" | "looks4" | "looks5" | "looks6" | "menuBook" | "migrationRelease" | "moreVert" | "multipleStop" | "musicNote" | "notStarted" | "notes" | "openInFull" | "openInNew" | "outbound" | "people" | "phoneIphone" | "photo" | "pin" | "place" | "playCircle" | "preview" | "prismic" | "public" | "receiptLong" | "refresh" | "save" | "schedule" | "security" | "sentimentSatisfied" | "settings" | "settingsEthernet" | "smartDisplay" | "svelte" | "tabletMac" | "tag" | "terminal" | "textFields" | "title" | "toggleOff" | "tune" | "typescript" | "unfoldMore" | "unsplash" | "upload" | "videocam" | "viewDay" | "vue" | "warning" | "zoomOutMap";
26
+ color?: ("green" | "grey" | "indigo" | "purple" | "tomato" | "amber") | undefined;
27
+ size?: "small" | "medium" | "large" | "extraSmall" | undefined;
28
+ iconSize?: "small" | "medium" | "large" | undefined;
29
+ radius?: 6 | "circle" | undefined;
30
+ variant?: "solid" | "soft" | undefined;
31
+ sx?: import("../../theme").SX | undefined;
32
+ }) => JSX.Element;
33
+ args: {
34
+ color: "grey";
35
+ name: "add";
36
+ size: "small";
37
+ variant: "soft";
38
+ };
39
+ };
@@ -0,0 +1 @@
1
+ export { BackgroundIcon, type BackgroundIconProps } from "./BackgroundIcon";
@@ -1,7 +1,7 @@
1
1
  import { type CSSProperties, type ReactNode } from "react";
2
2
  import { type ThemeKeys } from "../../theme";
3
3
  export type BoxProps = {
4
- as?: "div" | "nav" | "ul" | "ol" | "article" | "header" | "form" | "span";
4
+ as?: "div" | "nav" | "article" | "header" | "span";
5
5
  children?: ReactNode;
6
6
  position?: "absolute" | "relative" | "sticky" | "fixed";
7
7
  top?: number | string;
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type MouseEvent, type ReactNode } from "react";
1
+ import { type MouseEvent, type ReactNode } from "react";
2
2
  import { type Keys } from "react-hotkeys-hook";
3
3
  import type { SX } from "../../theme";
4
4
  import { type IconName } from "../Icon";
@@ -42,11 +42,18 @@ export interface ButtonProps {
42
42
  /** Underlines the text content of the button. Only applies to invisible buttons */
43
43
  underline?: boolean | "hover";
44
44
  hiddenLabel?: string;
45
+ /**
46
+ * The type of HTML button to render. Defaults to "button".
47
+ * You may want to use "submit" for your primary form button.
48
+ */
49
+ type?: "button" | "submit" | "reset";
50
+ /**
51
+ * The form ID this button is associated with.
52
+ */
53
+ form?: string;
45
54
  onClick?: (event: MouseEvent | KeyboardEvent) => void;
46
55
  onMouseDown?: (event: MouseEvent) => void;
47
56
  onMouseUp?: (event: MouseEvent) => void;
48
- type?: ButtonHTMLAttributes<HTMLButtonElement>["type"];
49
- form?: ButtonHTMLAttributes<HTMLButtonElement>["form"];
50
57
  }
51
58
  export declare const Button: (props: ButtonProps & import("react").RefAttributes<HTMLButtonElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
52
59
  interface ButtonChildrenProps {
@@ -35,11 +35,11 @@ export declare const Default: {
35
35
  hasPadding?: boolean | undefined;
36
36
  underline?: boolean | "hover" | undefined;
37
37
  hiddenLabel?: string | undefined;
38
+ type?: "button" | "submit" | "reset" | undefined;
39
+ form?: string | undefined;
38
40
  onClick?: ((event: import("react").MouseEvent<Element, MouseEvent> | KeyboardEvent) => void) | undefined;
39
41
  onMouseDown?: ((event: import("react").MouseEvent<Element, MouseEvent>) => void) | undefined;
40
42
  onMouseUp?: ((event: import("react").MouseEvent<Element, MouseEvent>) => void) | undefined;
41
- type?: "button" | "submit" | "reset" | undefined;
42
- form?: string | undefined;
43
43
  ref?: import("react").Ref<HTMLButtonElement> | undefined;
44
44
  key?: import("react").Key | null | undefined;
45
45
  }) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { type ThemeKeys } from "../../theme";
2
3
  import { textVariantMapping } from "../Text";
3
4
  export interface EditableTextProps {
@@ -6,8 +7,7 @@ export interface EditableTextProps {
6
7
  color?: ThemeKeys<"color">;
7
8
  variant?: keyof typeof textVariantMapping;
8
9
  disabled?: boolean;
9
- onFocus?: () => void;
10
10
  onBlur?: () => void;
11
11
  onChange?: (value: string) => void;
12
12
  }
13
- export declare function EditableText(props: EditableTextProps): JSX.Element;
13
+ export declare const EditableText: (props: EditableTextProps & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
@@ -1,7 +1,8 @@
1
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("./EditableText").EditableTextProps>;
1
+ /// <reference types="react" />
2
+ declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("./EditableText").EditableTextProps & import("react").RefAttributes<HTMLDivElement>>;
2
3
  export default _default;
3
4
  export declare const Default: {
4
- render: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("./EditableText").EditableTextProps>;
5
+ render: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("./EditableText").EditableTextProps & import("react").RefAttributes<HTMLDivElement>>;
5
6
  args: {
6
7
  "aria-label": string;
7
8
  value: string;
@@ -14,7 +14,15 @@ export interface IconButtonProps {
14
14
  sx?: SX;
15
15
  variant?: "solid" | "ghost";
16
16
  disabled?: boolean;
17
- type?: "button";
17
+ /**
18
+ * The type of HTML button to render. Defaults to "button".
19
+ * You may want to use "submit" for your primary form button.
20
+ */
21
+ type?: "button" | "submit" | "reset";
22
+ /**
23
+ * The form ID this button is associated with.
24
+ */
25
+ form?: string;
18
26
  onClick?: (event: MouseEvent | KeyboardEvent) => void;
19
27
  onMouseDown?: (event: MouseEvent) => void;
20
28
  onMouseUp?: (event: MouseEvent) => void;
@@ -61,9 +61,9 @@ declare const meta: {
61
61
  max?: number | undefined;
62
62
  getValueLabel?: ((value: number, max: number) => string) | undefined;
63
63
  displayLabel?: boolean | undefined;
64
- color?: "inherit" | "currentColor" | "transparent" | "white" | "black" | "grey1" | "grey2" | "grey3" | "grey4" | "grey5" | "grey6" | "grey7" | "grey8" | "grey9" | "grey10" | "grey11" | "grey12" | "dark12" | "indigo2" | "indigo4" | "indigo5" | "indigo7" | "indigo8" | "indigo10" | "indigo11" | "indigo12" | "green3" | "green4" | "green9" | "green10" | "green11" | "green12" | "amber3" | "amber4" | "amber9" | "amber10" | "amber11" | "amber12" | "tomato1" | "tomato2" | "tomato3" | "tomato4" | "tomato5" | "tomato6" | "tomato7" | "tomato8" | "tomato9" | "tomato10" | "tomato11" | "tomato12" | "purple1" | "purple2" | "purple3" | "purple4" | "purple5" | "purple6" | "purple7" | "purple8" | "purple9" | "purple10" | "purple11" | "purple12" | "greyAlpha1" | "logoPurple" | "logoBlue" | "logoYellow" | "logoRed" | undefined;
65
- backgroundColor?: "inherit" | "currentColor" | "transparent" | "white" | "black" | "grey1" | "grey2" | "grey3" | "grey4" | "grey5" | "grey6" | "grey7" | "grey8" | "grey9" | "grey10" | "grey11" | "grey12" | "dark12" | "indigo2" | "indigo4" | "indigo5" | "indigo7" | "indigo8" | "indigo10" | "indigo11" | "indigo12" | "green3" | "green4" | "green9" | "green10" | "green11" | "green12" | "amber3" | "amber4" | "amber9" | "amber10" | "amber11" | "amber12" | "tomato1" | "tomato2" | "tomato3" | "tomato4" | "tomato5" | "tomato6" | "tomato7" | "tomato8" | "tomato9" | "tomato10" | "tomato11" | "tomato12" | "purple1" | "purple2" | "purple3" | "purple4" | "purple5" | "purple6" | "purple7" | "purple8" | "purple9" | "purple10" | "purple11" | "purple12" | "greyAlpha1" | "logoPurple" | "logoBlue" | "logoYellow" | "logoRed" | undefined;
66
- labelColor?: "inherit" | "currentColor" | "transparent" | "white" | "black" | "grey1" | "grey2" | "grey3" | "grey4" | "grey5" | "grey6" | "grey7" | "grey8" | "grey9" | "grey10" | "grey11" | "grey12" | "dark12" | "indigo2" | "indigo4" | "indigo5" | "indigo7" | "indigo8" | "indigo10" | "indigo11" | "indigo12" | "green3" | "green4" | "green9" | "green10" | "green11" | "green12" | "amber3" | "amber4" | "amber9" | "amber10" | "amber11" | "amber12" | "tomato1" | "tomato2" | "tomato3" | "tomato4" | "tomato5" | "tomato6" | "tomato7" | "tomato8" | "tomato9" | "tomato10" | "tomato11" | "tomato12" | "purple1" | "purple2" | "purple3" | "purple4" | "purple5" | "purple6" | "purple7" | "purple8" | "purple9" | "purple10" | "purple11" | "purple12" | "greyAlpha1" | "logoPurple" | "logoBlue" | "logoYellow" | "logoRed" | undefined;
64
+ color?: "inherit" | "currentColor" | "transparent" | "white" | "black" | "grey1" | "grey2" | "grey3" | "grey4" | "grey5" | "grey6" | "grey7" | "grey8" | "grey9" | "grey10" | "grey11" | "grey12" | "dark12" | "indigo2" | "indigo3" | "indigo4" | "indigo5" | "indigo7" | "indigo8" | "indigo10" | "indigo11" | "indigo12" | "green3" | "green4" | "green8" | "green9" | "green10" | "green11" | "green12" | "amber3" | "amber4" | "amber9" | "amber10" | "amber11" | "amber12" | "tomato1" | "tomato2" | "tomato3" | "tomato4" | "tomato5" | "tomato6" | "tomato7" | "tomato8" | "tomato9" | "tomato10" | "tomato11" | "tomato12" | "purple1" | "purple2" | "purple3" | "purple4" | "purple5" | "purple6" | "purple7" | "purple8" | "purple9" | "purple10" | "purple11" | "purple12" | "greyAlpha1" | "logoPurple" | "logoBlue" | "logoYellow" | "logoRed" | undefined;
65
+ backgroundColor?: "inherit" | "currentColor" | "transparent" | "white" | "black" | "grey1" | "grey2" | "grey3" | "grey4" | "grey5" | "grey6" | "grey7" | "grey8" | "grey9" | "grey10" | "grey11" | "grey12" | "dark12" | "indigo2" | "indigo3" | "indigo4" | "indigo5" | "indigo7" | "indigo8" | "indigo10" | "indigo11" | "indigo12" | "green3" | "green4" | "green8" | "green9" | "green10" | "green11" | "green12" | "amber3" | "amber4" | "amber9" | "amber10" | "amber11" | "amber12" | "tomato1" | "tomato2" | "tomato3" | "tomato4" | "tomato5" | "tomato6" | "tomato7" | "tomato8" | "tomato9" | "tomato10" | "tomato11" | "tomato12" | "purple1" | "purple2" | "purple3" | "purple4" | "purple5" | "purple6" | "purple7" | "purple8" | "purple9" | "purple10" | "purple11" | "purple12" | "greyAlpha1" | "logoPurple" | "logoBlue" | "logoYellow" | "logoRed" | undefined;
66
+ labelColor?: "inherit" | "currentColor" | "transparent" | "white" | "black" | "grey1" | "grey2" | "grey3" | "grey4" | "grey5" | "grey6" | "grey7" | "grey8" | "grey9" | "grey10" | "grey11" | "grey12" | "dark12" | "indigo2" | "indigo3" | "indigo4" | "indigo5" | "indigo7" | "indigo8" | "indigo10" | "indigo11" | "indigo12" | "green3" | "green4" | "green8" | "green9" | "green10" | "green11" | "green12" | "amber3" | "amber4" | "amber9" | "amber10" | "amber11" | "amber12" | "tomato1" | "tomato2" | "tomato3" | "tomato4" | "tomato5" | "tomato6" | "tomato7" | "tomato8" | "tomato9" | "tomato10" | "tomato11" | "tomato12" | "purple1" | "purple2" | "purple3" | "purple4" | "purple5" | "purple6" | "purple7" | "purple8" | "purple9" | "purple10" | "purple11" | "purple12" | "greyAlpha1" | "logoPurple" | "logoBlue" | "logoYellow" | "logoRed" | undefined;
67
67
  height?: "large" | "normal" | "collapsed" | undefined;
68
68
  transition?: "slow" | "fast" | undefined;
69
69
  sx?: import("../../theme").SX | undefined;
@@ -1,5 +1,5 @@
1
1
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2
- import { type ReactNode } from "react";
2
+ import { type ReactNode, type RefObject } from "react";
3
3
  export declare const TooltipProvider: import("react").FC<TooltipPrimitive.TooltipProviderProps>;
4
4
  interface BaseTooltipProps {
5
5
  children: ReactNode;
@@ -9,12 +9,11 @@ interface BaseTooltipProps {
9
9
  delayDuration?: Parameters<typeof TooltipPrimitive.Root>[0]["delayDuration"];
10
10
  open?: boolean;
11
11
  /**
12
- * Try not to use this.
13
- * You only need this with bad components like Tiptap's BubbleMenu which renders inline instead of using a Portal.
14
- * Remove this prop once this is done: https://linear.app/prismic/issue/PBD-1067/repeatable-zone-header-covers-link-dropdown
15
- * i.e, when the Tiptap BubbleMenu has been rewritten.
12
+ * If you want to render the tooltip inside a specific container, you can pass a ref to that container.
13
+ * This is useful when you want to render the tooltip inside a container that is not the root element,
14
+ * i.e. when wanting to render the tooltip inside Tiptap's BubbleMenu.
16
15
  */
17
- zIndexHack?: boolean;
16
+ containerRef?: RefObject<HTMLDivElement>;
18
17
  visible?: boolean;
19
18
  /**
20
19
  * By enabling the stable mount a `div` will be rendered around your trigger item.
@@ -3,6 +3,6 @@ import { Tooltip } from "./Tooltip";
3
3
  declare const meta: Meta<typeof Tooltip>;
4
4
  export default meta;
5
5
  export declare const Default: {
6
- render: () => JSX.Element;
7
6
  name: string;
7
+ render: () => JSX.Element;
8
8
  };