@hitachivantara/uikit-react-lab 5.36.0 → 5.36.1

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 (28) hide show
  1. package/dist/cjs/Canvas/{CanvasPanel/CanvasPanel.cjs → Panel/Panel.cjs} +5 -18
  2. package/dist/cjs/Canvas/{CanvasPanel/CanvasPanel.styles.cjs → Panel/Panel.styles.cjs} +13 -8
  3. package/dist/cjs/Canvas/{CanvasTabs/CanvasTabs.cjs → Tabs/Tabs.cjs} +4 -7
  4. package/dist/cjs/Canvas/{CanvasTabs/CanvasTabs.styles.cjs → Tabs/Tabs.styles.cjs} +4 -1
  5. package/dist/cjs/Canvas/{CanvasToolbar/CanvasToolbar.cjs → Toolbar/Toolbar.cjs} +13 -4
  6. package/dist/cjs/Canvas/{CanvasToolbar/CanvasToolbar.styles.cjs → Toolbar/Toolbar.styles.cjs} +3 -4
  7. package/dist/cjs/index.cjs +12 -12
  8. package/dist/esm/Canvas/{CanvasPanel/CanvasPanel.js → Panel/Panel.js} +4 -17
  9. package/dist/esm/Canvas/Panel/Panel.js.map +1 -0
  10. package/dist/esm/Canvas/{CanvasPanel/CanvasPanel.styles.js → Panel/Panel.styles.js} +14 -9
  11. package/dist/esm/Canvas/Panel/Panel.styles.js.map +1 -0
  12. package/dist/esm/Canvas/{CanvasTabs/CanvasTabs.js → Tabs/Tabs.js} +3 -6
  13. package/dist/esm/Canvas/Tabs/Tabs.js.map +1 -0
  14. package/dist/esm/Canvas/{CanvasTabs/CanvasTabs.styles.js → Tabs/Tabs.styles.js} +5 -2
  15. package/dist/esm/Canvas/Tabs/Tabs.styles.js.map +1 -0
  16. package/dist/esm/Canvas/{CanvasToolbar/CanvasToolbar.js → Toolbar/Toolbar.js} +12 -3
  17. package/dist/esm/Canvas/Toolbar/Toolbar.js.map +1 -0
  18. package/dist/esm/Canvas/{CanvasToolbar/CanvasToolbar.styles.js → Toolbar/Toolbar.styles.js} +3 -4
  19. package/dist/esm/Canvas/Toolbar/Toolbar.styles.js.map +1 -0
  20. package/dist/esm/index.js +6 -6
  21. package/dist/types/index.d.ts +18 -16
  22. package/package.json +7 -6
  23. package/dist/esm/Canvas/CanvasPanel/CanvasPanel.js.map +0 -1
  24. package/dist/esm/Canvas/CanvasPanel/CanvasPanel.styles.js.map +0 -1
  25. package/dist/esm/Canvas/CanvasTabs/CanvasTabs.js.map +0 -1
  26. package/dist/esm/Canvas/CanvasTabs/CanvasTabs.styles.js.map +0 -1
  27. package/dist/esm/Canvas/CanvasToolbar/CanvasToolbar.js.map +0 -1
  28. package/dist/esm/Canvas/CanvasToolbar/CanvasToolbar.styles.js.map +0 -1
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
- const React = require("react");
5
4
  const uikitReactCore = require("@hitachivantara/uikit-react-core");
6
5
  const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
7
- const CanvasPanel_styles = require("./CanvasPanel.styles.cjs");
8
- const CanvasTabs = require("../CanvasTabs/CanvasTabs.cjs");
6
+ const Panel_styles = require("./Panel.styles.cjs");
7
+ const Tabs = require("../Tabs/Tabs.cjs");
9
8
  const DEFAULT_LABELS = {
10
9
  open: "Open",
11
10
  close: "Close"
@@ -23,21 +22,9 @@ const HvCanvasPanel = (props) => {
23
22
  classes: classesProp,
24
23
  ...others
25
24
  } = uikitReactCore.useDefaultProps("HvCanvasPanel", props);
26
- const { classes, cx } = CanvasPanel_styles.useClasses(classesProp);
25
+ const { classes, cx } = Panel_styles.useClasses(classesProp);
27
26
  const labels = uikitReactCore.useLabels(DEFAULT_LABELS, labelsProp);
28
- const { rootId, activeTheme } = uikitReactCore.useTheme();
29
27
  const [open, setOpen] = uikitReactCore.useControlled(openProp, Boolean(defaultOpened));
30
- const setPanelWidth = React.useCallback(() => {
31
- if (rootId) {
32
- document.getElementById(rootId)?.style.setProperty(
33
- "--canvas-panel-width",
34
- !open ? "0px" : `${320 + (activeTheme ? parseInt(activeTheme.space.md, 10) : 24)}px`
35
- );
36
- }
37
- }, [activeTheme, open, rootId]);
38
- React.useEffect(() => {
39
- setPanelWidth();
40
- }, [open, setPanelWidth]);
41
28
  const handleTogglePanel = (event) => {
42
29
  setOpen((prev) => !prev);
43
30
  onToggle?.(event, !open);
@@ -56,7 +43,7 @@ const HvCanvasPanel = (props) => {
56
43
  ...others,
57
44
  children: [
58
45
  tabs && /* @__PURE__ */ jsxRuntime.jsx(
59
- CanvasTabs.HvCanvasTabs,
46
+ Tabs.HvCanvasTabs,
60
47
  {
61
48
  className: classes.tabs,
62
49
  tabs,
@@ -88,5 +75,5 @@ const HvCanvasPanel = (props) => {
88
75
  )
89
76
  ] });
90
77
  };
91
- exports.canvasPanelClasses = CanvasPanel_styles.staticClasses;
78
+ exports.canvasPanelClasses = Panel_styles.staticClasses;
92
79
  exports.HvCanvasPanel = HvCanvasPanel;
@@ -8,16 +8,18 @@ const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasPane
8
8
  position: "absolute",
9
9
  top: 0,
10
10
  left: 0,
11
- boxShadow: `4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)`,
11
+ boxShadow: "4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)",
12
12
  zIndex: uikitStyles.theme.zIndices.overlay,
13
13
  backgroundColor: "transparent",
14
- transition: "width 0.3s ease",
14
+ transition: "visibility 0.3s ease, width 0.3s ease",
15
15
  overflow: "hidden",
16
16
  "&$open": {
17
- width: 320
17
+ width: 320,
18
+ visibility: "visible"
18
19
  },
19
20
  "&$close": {
20
- width: 0
21
+ width: 0,
22
+ visibility: "hidden"
21
23
  }
22
24
  },
23
25
  tabs: {},
@@ -32,12 +34,12 @@ const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasPane
32
34
  display: "flex",
33
35
  justifyContent: "center",
34
36
  zIndex: uikitStyles.theme.zIndices.overlay,
35
- boxShadow: `4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)`,
37
+ boxShadow: "4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)",
36
38
  backgroundColor: uikitStyles.theme.colors.atmo1,
37
- borderRadius: `0 ${uikitStyles.theme.radii.round} ${uikitStyles.theme.radii.round} 0 `,
39
+ borderRadius: `0 ${uikitStyles.theme.radii.round} ${uikitStyles.theme.radii.round} 0`,
38
40
  position: "absolute",
39
41
  transition: "left 0.3s ease",
40
- top: `calc(50% - 86px)`,
42
+ top: "calc(50% - 86px)",
41
43
  "&$handleOpen": {
42
44
  left: 320
43
45
  },
@@ -46,10 +48,13 @@ const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasPane
46
48
  },
47
49
  "&:hover": {
48
50
  cursor: "pointer"
51
+ },
52
+ "&:focus-visible": {
53
+ ...uikitReactCore.outlineStyles
49
54
  }
50
55
  },
51
56
  handleButton: {
52
- top: `calc(50% - 16px)`,
57
+ top: "calc(50% - 16px)",
53
58
  position: "absolute"
54
59
  },
55
60
  open: {},
@@ -6,7 +6,7 @@ const Tab = require("@mui/base/Tab");
6
6
  const Tabs = require("@mui/base/Tabs");
7
7
  const TabsList = require("@mui/base/TabsList");
8
8
  const uikitReactCore = require("@hitachivantara/uikit-react-core");
9
- const CanvasTabs_styles = require("./CanvasTabs.styles.cjs");
9
+ const Tabs_styles = require("./Tabs.styles.cjs");
10
10
  const HvCanvasTabs = (props) => {
11
11
  const {
12
12
  tabs,
@@ -15,10 +15,8 @@ const HvCanvasTabs = (props) => {
15
15
  classes: classesProp,
16
16
  ...others
17
17
  } = uikitReactCore.useDefaultProps("HvCanvasTabs", props);
18
- const { classes, cx } = CanvasTabs_styles.useClasses(classesProp);
19
- const [selectedTab, setSelectedTab] = React.useState(
20
- tabs?.[0]?.id || "none"
21
- );
18
+ const { classes, cx } = Tabs_styles.useClasses(classesProp);
19
+ const [selectedTab, setSelectedTab] = React.useState(tabs?.[0]?.id || "none");
22
20
  const handleTabChange = (event, value) => {
23
21
  onChange?.(event, value);
24
22
  setSelectedTab(value);
@@ -38,7 +36,6 @@ const HvCanvasTabs = (props) => {
38
36
  className: cx(classes.tab, {
39
37
  [classes.selected]: tab.id === selectedTab
40
38
  }),
41
- onChange: handleTabChange,
42
39
  tabIndex: 0,
43
40
  children: tab.content
44
41
  },
@@ -47,5 +44,5 @@ const HvCanvasTabs = (props) => {
47
44
  }
48
45
  );
49
46
  };
50
- exports.canvasTabsClasses = CanvasTabs_styles.staticClasses;
47
+ exports.canvasTabsClasses = Tabs_styles.staticClasses;
51
48
  exports.HvCanvasTabs = HvCanvasTabs;
@@ -16,7 +16,7 @@ const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasTabs
16
16
  alignItems: "center",
17
17
  justifyContent: "center",
18
18
  flex: 1,
19
- borderRadius: `16px 16px 0 0 `,
19
+ borderRadius: "16px 16px 0 0",
20
20
  backgroundColor: uikitReactCore.theme.colors.atmo2,
21
21
  color: uikitReactCore.theme.colors.secondary_60,
22
22
  overflow: "hidden",
@@ -33,6 +33,9 @@ const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasTabs
33
33
  "&$selected": {
34
34
  backgroundColor: uikitReactCore.theme.colors.atmo1,
35
35
  ...uikitReactCore.theme.typography.label
36
+ },
37
+ "&:focus-visible": {
38
+ ...uikitReactCore.outlineStyles
36
39
  }
37
40
  },
38
41
  selected: {}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
4
  const uikitReactCore = require("@hitachivantara/uikit-react-core");
5
5
  const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
6
- const CanvasToolbar_styles = require("./CanvasToolbar.styles.cjs");
6
+ const Toolbar_styles = require("./Toolbar.styles.cjs");
7
7
  const DEFAULT_LABELS = {
8
8
  back: "Back"
9
9
  };
@@ -14,17 +14,26 @@ const HvCanvasToolbar = (props) => {
14
14
  labels: labelsProp,
15
15
  className,
16
16
  children,
17
+ backButtonProps,
17
18
  classes: classesProp,
18
19
  ...others
19
20
  } = uikitReactCore.useDefaultProps("HvCanvasToolbar", props);
20
- const { classes, cx } = CanvasToolbar_styles.useClasses(classesProp);
21
+ const { classes, cx } = Toolbar_styles.useClasses(classesProp);
21
22
  const labels = uikitReactCore.useLabels(DEFAULT_LABELS, labelsProp);
22
23
  const title = typeof titleProp === "string" ? /* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvTypography, { variant: "title4", children: titleProp }) : titleProp;
23
24
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx(classes.root, className), ...others, children: [
24
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.back, children: backButton ?? /* @__PURE__ */ jsxRuntime.jsx(uikitReactCore.HvIconButton, { title: labels.back, variant: "primaryGhost", children: /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Previous, {}) }) }),
25
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.back, children: backButton ?? /* @__PURE__ */ jsxRuntime.jsx(
26
+ uikitReactCore.HvIconButton,
27
+ {
28
+ title: labels.back,
29
+ variant: "primaryGhost",
30
+ ...backButtonProps,
31
+ children: /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Previous, {})
32
+ }
33
+ ) }),
25
34
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.title, children: title }),
26
35
  children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.actions, children })
27
36
  ] });
28
37
  };
29
- exports.canvasToolbarClasses = CanvasToolbar_styles.staticClasses;
38
+ exports.canvasToolbarClasses = Toolbar_styles.staticClasses;
30
39
  exports.HvCanvasToolbar = HvCanvasToolbar;
@@ -4,17 +4,15 @@ const uikitReactCore = require("@hitachivantara/uikit-react-core");
4
4
  const uikitStyles = require("@hitachivantara/uikit-styles");
5
5
  const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasToolbar", {
6
6
  root: {
7
- width: `calc(100% - var(--canvas-panel-width))`,
7
+ width: "100%",
8
8
  height: 54,
9
9
  display: "flex",
10
10
  alignItems: "center",
11
11
  borderRadius: uikitStyles.theme.radii.full,
12
12
  backgroundColor: uikitStyles.theme.colors.atmo1,
13
- padding: uikitStyles.theme.spacing(0, "md", 0, 0),
14
13
  position: "absolute",
15
14
  right: 0,
16
15
  top: 0,
17
- margin: `0 0 0 ${uikitStyles.theme.space.md}`,
18
16
  transition: "width 0.3s ease"
19
17
  },
20
18
  back: {
@@ -36,7 +34,8 @@ const { staticClasses, useClasses } = uikitReactCore.createClasses("HvCanvasTool
36
34
  actions: {
37
35
  display: "flex",
38
36
  flexWrap: "nowrap",
39
- overflow: "scroll"
37
+ overflow: "scroll",
38
+ paddingRight: uikitStyles.theme.space.md
40
39
  }
41
40
  });
42
41
  exports.staticClasses = staticClasses;
@@ -4,12 +4,12 @@ const Blade_styles = require("./Blade/Blade.styles.cjs");
4
4
  const Blade = require("./Blade/Blade.cjs");
5
5
  const Blades_styles = require("./Blades/Blades.styles.cjs");
6
6
  const Blades = require("./Blades/Blades.cjs");
7
- const CanvasToolbar_styles = require("./Canvas/CanvasToolbar/CanvasToolbar.styles.cjs");
8
- const CanvasToolbar = require("./Canvas/CanvasToolbar/CanvasToolbar.cjs");
9
- const CanvasPanel_styles = require("./Canvas/CanvasPanel/CanvasPanel.styles.cjs");
10
- const CanvasPanel = require("./Canvas/CanvasPanel/CanvasPanel.cjs");
11
- const CanvasTabs_styles = require("./Canvas/CanvasTabs/CanvasTabs.styles.cjs");
12
- const CanvasTabs = require("./Canvas/CanvasTabs/CanvasTabs.cjs");
7
+ const Toolbar_styles = require("./Canvas/Toolbar/Toolbar.styles.cjs");
8
+ const Toolbar = require("./Canvas/Toolbar/Toolbar.cjs");
9
+ const Panel_styles = require("./Canvas/Panel/Panel.styles.cjs");
10
+ const Panel = require("./Canvas/Panel/Panel.cjs");
11
+ const Tabs_styles = require("./Canvas/Tabs/Tabs.styles.cjs");
12
+ const Tabs = require("./Canvas/Tabs/Tabs.cjs");
13
13
  const Dashboard_styles = require("./Dashboard/Dashboard.styles.cjs");
14
14
  const Dashboard = require("./Dashboard/Dashboard.cjs");
15
15
  const Flow_styles = require("./Flow/Flow.styles.cjs");
@@ -50,12 +50,12 @@ exports.bladeClasses = Blade_styles.staticClasses;
50
50
  exports.HvBlade = Blade.HvBlade;
51
51
  exports.bladesClasses = Blades_styles.staticClasses;
52
52
  exports.HvBlades = Blades.HvBlades;
53
- exports.canvasToolbarClasses = CanvasToolbar_styles.staticClasses;
54
- exports.HvCanvasToolbar = CanvasToolbar.HvCanvasToolbar;
55
- exports.canvasPanelClasses = CanvasPanel_styles.staticClasses;
56
- exports.HvCanvasPanel = CanvasPanel.HvCanvasPanel;
57
- exports.canvasTabsClasses = CanvasTabs_styles.staticClasses;
58
- exports.HvCanvasTabs = CanvasTabs.HvCanvasTabs;
53
+ exports.canvasToolbarClasses = Toolbar_styles.staticClasses;
54
+ exports.HvCanvasToolbar = Toolbar.HvCanvasToolbar;
55
+ exports.canvasPanelClasses = Panel_styles.staticClasses;
56
+ exports.HvCanvasPanel = Panel.HvCanvasPanel;
57
+ exports.canvasTabsClasses = Tabs_styles.staticClasses;
58
+ exports.HvCanvasTabs = Tabs.HvCanvasTabs;
59
59
  exports.dashboardClasses = Dashboard_styles.staticClasses;
60
60
  exports.HvDashboard = Dashboard.HvDashboard;
61
61
  exports.flowClasses = Flow_styles.staticClasses;
@@ -1,10 +1,9 @@
1
1
  import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
2
- import { useCallback, useEffect } from "react";
3
- import { useDefaultProps, useLabels, useTheme, useControlled } from "@hitachivantara/uikit-react-core";
2
+ import { useDefaultProps, useLabels, useControlled } from "@hitachivantara/uikit-react-core";
4
3
  import { Start, End } from "@hitachivantara/uikit-react-icons";
5
- import { useClasses } from "./CanvasPanel.styles.js";
6
- import { staticClasses } from "./CanvasPanel.styles.js";
7
- import { HvCanvasTabs } from "../CanvasTabs/CanvasTabs.js";
4
+ import { useClasses } from "./Panel.styles.js";
5
+ import { staticClasses } from "./Panel.styles.js";
6
+ import { HvCanvasTabs } from "../Tabs/Tabs.js";
8
7
  const DEFAULT_LABELS = {
9
8
  open: "Open",
10
9
  close: "Close"
@@ -24,19 +23,7 @@ const HvCanvasPanel = (props) => {
24
23
  } = useDefaultProps("HvCanvasPanel", props);
25
24
  const { classes, cx } = useClasses(classesProp);
26
25
  const labels = useLabels(DEFAULT_LABELS, labelsProp);
27
- const { rootId, activeTheme } = useTheme();
28
26
  const [open, setOpen] = useControlled(openProp, Boolean(defaultOpened));
29
- const setPanelWidth = useCallback(() => {
30
- if (rootId) {
31
- document.getElementById(rootId)?.style.setProperty(
32
- "--canvas-panel-width",
33
- !open ? "0px" : `${320 + (activeTheme ? parseInt(activeTheme.space.md, 10) : 24)}px`
34
- );
35
- }
36
- }, [activeTheme, open, rootId]);
37
- useEffect(() => {
38
- setPanelWidth();
39
- }, [open, setPanelWidth]);
40
27
  const handleTogglePanel = (event) => {
41
28
  setOpen((prev) => !prev);
42
29
  onToggle?.(event, !open);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.js","sources":["../../../../src/Canvas/Panel/Panel.tsx"],"sourcesContent":["import {\n ExtractNames,\n HvBaseProps,\n useControlled,\n useDefaultProps,\n useLabels,\n} from \"@hitachivantara/uikit-react-core\";\nimport { End, Start } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvCanvasTab, HvCanvasTabs, HvCanvasTabsProps } from \"../Tabs\";\nimport { staticClasses, useClasses } from \"./Panel.styles\";\n\nexport { staticClasses as canvasPanelClasses };\n\nexport type HvCanvasPanelClasses = ExtractNames<typeof useClasses>;\n\nconst DEFAULT_LABELS = {\n open: \"Open\",\n close: \"Close\",\n};\n\nexport interface HvCanvasPanelProps extends HvBaseProps<HTMLDivElement> {\n /** Whether the panel is open or not. If this property is defined, the panel must be fully controlled. */\n open?: boolean;\n /** When uncontrolled, defines the initial state of the panel. */\n defaultOpened?: boolean;\n /** The tabs that should be visible on the canvas panel. */\n tabs?: HvCanvasTab[];\n /** The function that will be executed whenever the panel toggles. It will receive the state of the panel. */\n onToggle?: (\n event: React.MouseEvent | React.KeyboardEvent,\n open: boolean,\n ) => void;\n /** The function that will be executed when a tab changes. It will receive the id of the selected tab. */\n onTabChange?: (event: React.SyntheticEvent | null, tabId: string) => void;\n /** An object containing all the labels. */\n labels?: Partial<typeof DEFAULT_LABELS>;\n /* The content that will be rendered within the canvas panel. */\n children?: React.ReactNode;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCanvasPanelClasses;\n}\n\n/**\n * A panel component to use in a canvas context.\n */\nexport const HvCanvasPanel = (props: HvCanvasPanelProps) => {\n const {\n open: openProp,\n defaultOpened = false,\n tabs,\n onToggle,\n onTabChange,\n labels: labelsProp,\n className,\n children,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvCanvasPanel\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const [open, setOpen] = useControlled(openProp, Boolean(defaultOpened));\n\n const handleTogglePanel = (event: React.MouseEvent | React.KeyboardEvent) => {\n setOpen((prev) => !prev);\n onToggle?.(event, !open);\n };\n\n const handleTabChange: HvCanvasTabsProps[\"onChange\"] = (event, tabId) => {\n onTabChange?.(event, tabId);\n };\n\n return (\n <>\n <div\n className={cx(classes.root, className, {\n [classes.open]: open,\n [classes.close]: !open,\n })}\n {...others}\n >\n {tabs && (\n <HvCanvasTabs\n className={classes.tabs}\n tabs={tabs}\n onChange={handleTabChange}\n />\n )}\n <div className={classes.content}>{children}</div>\n </div>\n <div\n className={cx(classes.handle, {\n [classes.handleOpen]: open,\n [classes.handleClose]: !open,\n })}\n onClick={handleTogglePanel}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTogglePanel(e);\n }\n }}\n aria-label={open ? labels.close : labels.open}\n >\n <div className={classes.handleButton}>\n {open ? <Start color={[\"primary\"]} /> : <End color={[\"primary\"]} />}\n </div>\n </div>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;AAgBA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,EACN,OAAO;AACT;AA2Ba,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD,gBAAgB,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AACxC,QAAA,SAAS,UAAU,gBAAgB,UAAU;AAE7C,QAAA,CAAC,MAAM,OAAO,IAAI,cAAc,UAAU,QAAQ,aAAa,CAAC;AAEhE,QAAA,oBAAoB,CAAC,UAAkD;AACnE,YAAA,CAAC,SAAS,CAAC,IAAI;AACZ,eAAA,OAAO,CAAC,IAAI;AAAA,EAAA;AAGnB,QAAA,kBAAiD,CAAC,OAAO,UAAU;AACvE,kBAAc,OAAO,KAAK;AAAA,EAAA;AAG5B,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,GAAG,QAAQ,MAAM,WAAW;AAAA,UACrC,CAAC,QAAQ,IAAI,GAAG;AAAA,UAChB,CAAC,QAAQ,KAAK,GAAG,CAAC;AAAA,QAAA,CACnB;AAAA,QACA,GAAG;AAAA,QAEH,UAAA;AAAA,UACC,QAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,QAAQ;AAAA,cACnB;AAAA,cACA,UAAU;AAAA,YAAA;AAAA,UACZ;AAAA,UAED,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAC7C;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,GAAG,QAAQ,QAAQ;AAAA,UAC5B,CAAC,QAAQ,UAAU,GAAG;AAAA,UACtB,CAAC,QAAQ,WAAW,GAAG,CAAC;AAAA,QAAA,CACzB;AAAA,QACD,SAAS;AAAA,QACT,MAAK;AAAA,QACL,UAAU;AAAA,QACV,WAAW,CAAC,MAAM;AAChB,cAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,8BAAkB,CAAC;AAAA,UACrB;AAAA,QACF;AAAA,QACA,cAAY,OAAO,OAAO,QAAQ,OAAO;AAAA,QAEzC,8BAAC,OAAI,EAAA,WAAW,QAAQ,cACrB,UAAA,2BAAQ,OAAM,EAAA,OAAO,CAAC,SAAS,GAAG,IAAM,oBAAA,KAAA,EAAI,OAAO,CAAC,SAAS,EAAG,CAAA,GACnE;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,4 +1,4 @@
1
- import { createClasses } from "@hitachivantara/uikit-react-core";
1
+ import { createClasses, outlineStyles } from "@hitachivantara/uikit-react-core";
2
2
  import { theme } from "@hitachivantara/uikit-styles";
3
3
  const { staticClasses, useClasses } = createClasses("HvCanvasPanel", {
4
4
  root: {
@@ -6,16 +6,18 @@ const { staticClasses, useClasses } = createClasses("HvCanvasPanel", {
6
6
  position: "absolute",
7
7
  top: 0,
8
8
  left: 0,
9
- boxShadow: `4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)`,
9
+ boxShadow: "4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)",
10
10
  zIndex: theme.zIndices.overlay,
11
11
  backgroundColor: "transparent",
12
- transition: "width 0.3s ease",
12
+ transition: "visibility 0.3s ease, width 0.3s ease",
13
13
  overflow: "hidden",
14
14
  "&$open": {
15
- width: 320
15
+ width: 320,
16
+ visibility: "visible"
16
17
  },
17
18
  "&$close": {
18
- width: 0
19
+ width: 0,
20
+ visibility: "hidden"
19
21
  }
20
22
  },
21
23
  tabs: {},
@@ -30,12 +32,12 @@ const { staticClasses, useClasses } = createClasses("HvCanvasPanel", {
30
32
  display: "flex",
31
33
  justifyContent: "center",
32
34
  zIndex: theme.zIndices.overlay,
33
- boxShadow: `4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)`,
35
+ boxShadow: "4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)",
34
36
  backgroundColor: theme.colors.atmo1,
35
- borderRadius: `0 ${theme.radii.round} ${theme.radii.round} 0 `,
37
+ borderRadius: `0 ${theme.radii.round} ${theme.radii.round} 0`,
36
38
  position: "absolute",
37
39
  transition: "left 0.3s ease",
38
- top: `calc(50% - 86px)`,
40
+ top: "calc(50% - 86px)",
39
41
  "&$handleOpen": {
40
42
  left: 320
41
43
  },
@@ -44,10 +46,13 @@ const { staticClasses, useClasses } = createClasses("HvCanvasPanel", {
44
46
  },
45
47
  "&:hover": {
46
48
  cursor: "pointer"
49
+ },
50
+ "&:focus-visible": {
51
+ ...outlineStyles
47
52
  }
48
53
  },
49
54
  handleButton: {
50
- top: `calc(50% - 16px)`,
55
+ top: "calc(50% - 16px)",
51
56
  position: "absolute"
52
57
  },
53
58
  open: {},
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.styles.js","sources":["../../../../src/Canvas/Panel/Panel.styles.tsx"],"sourcesContent":["import { createClasses, outlineStyles } from \"@hitachivantara/uikit-react-core\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvCanvasPanel\", {\n root: {\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: 0,\n boxShadow: \"4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)\",\n zIndex: theme.zIndices.overlay,\n backgroundColor: \"transparent\",\n transition: \"visibility 0.3s ease, width 0.3s ease\",\n overflow: \"hidden\",\n \"&$open\": {\n width: 320,\n visibility: \"visible\",\n },\n \"&$close\": {\n width: 0,\n visibility: \"hidden\",\n },\n },\n tabs: {},\n content: {\n backgroundColor: theme.colors.atmo1,\n height: \"100%\",\n padding: theme.space.md,\n },\n handle: {\n height: 172,\n width: 35,\n display: \"flex\",\n justifyContent: \"center\",\n zIndex: theme.zIndices.overlay,\n boxShadow: \"4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)\",\n backgroundColor: theme.colors.atmo1,\n borderRadius: `0 ${theme.radii.round} ${theme.radii.round} 0`,\n position: \"absolute\",\n transition: \"left 0.3s ease\",\n top: \"calc(50% - 86px)\",\n \"&$handleOpen\": {\n left: 320,\n },\n \"&$handleClose\": {\n left: 0,\n },\n \"&:hover\": {\n cursor: \"pointer\",\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n handleButton: {\n top: \"calc(50% - 16px)\",\n position: \"absolute\",\n },\n open: {},\n close: {},\n handleOpen: {},\n handleClose: {},\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,iBAAiB;AAAA,EAC1E,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ,MAAM,SAAS;AAAA,IACvB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,MAAM,CAAC;AAAA,EACP,SAAS;AAAA,IACP,iBAAiB,MAAM,OAAO;AAAA,IAC9B,QAAQ;AAAA,IACR,SAAS,MAAM,MAAM;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,QAAQ,MAAM,SAAS;AAAA,IACvB,WAAW;AAAA,IACX,iBAAiB,MAAM,OAAO;AAAA,IAC9B,cAAc,KAAK,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK;AAAA,IACzD,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,gBAAgB;AAAA,MACd,MAAM;AAAA,IACR;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,KAAK;AAAA,IACL,UAAU;AAAA,EACZ;AAAA,EACA,MAAM,CAAC;AAAA,EACP,OAAO,CAAC;AAAA,EACR,YAAY,CAAC;AAAA,EACb,aAAa,CAAC;AAChB,CAAC;"}
@@ -4,8 +4,8 @@ import { Tab } from "@mui/base/Tab";
4
4
  import { Tabs } from "@mui/base/Tabs";
5
5
  import { TabsList } from "@mui/base/TabsList";
6
6
  import { useDefaultProps } from "@hitachivantara/uikit-react-core";
7
- import { useClasses } from "./CanvasTabs.styles.js";
8
- import { staticClasses } from "./CanvasTabs.styles.js";
7
+ import { useClasses } from "./Tabs.styles.js";
8
+ import { staticClasses } from "./Tabs.styles.js";
9
9
  const HvCanvasTabs = (props) => {
10
10
  const {
11
11
  tabs,
@@ -15,9 +15,7 @@ const HvCanvasTabs = (props) => {
15
15
  ...others
16
16
  } = useDefaultProps("HvCanvasTabs", props);
17
17
  const { classes, cx } = useClasses(classesProp);
18
- const [selectedTab, setSelectedTab] = useState(
19
- tabs?.[0]?.id || "none"
20
- );
18
+ const [selectedTab, setSelectedTab] = useState(tabs?.[0]?.id || "none");
21
19
  const handleTabChange = (event, value) => {
22
20
  onChange?.(event, value);
23
21
  setSelectedTab(value);
@@ -37,7 +35,6 @@ const HvCanvasTabs = (props) => {
37
35
  className: cx(classes.tab, {
38
36
  [classes.selected]: tab.id === selectedTab
39
37
  }),
40
- onChange: handleTabChange,
41
38
  tabIndex: 0,
42
39
  children: tab.content
43
40
  },
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/Canvas/Tabs/Tabs.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Tab } from \"@mui/base/Tab\";\nimport { Tabs, TabsProps } from \"@mui/base/Tabs\";\nimport { TabsList } from \"@mui/base/TabsList\";\nimport {\n ExtractNames,\n useDefaultProps,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { staticClasses, useClasses } from \"./Tabs.styles\";\n\nexport { staticClasses as canvasTabsClasses };\n\nexport type HvCanvasTabsClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvCanvasTab {\n id: string;\n content: React.ReactNode;\n}\n\nexport interface HvCanvasTabsProps extends Omit<TabsProps, \"onChange\"> {\n /** List of tabs. */\n tabs: HvCanvasTab[];\n /** Event handler triggered when a tab is clicked. */\n onChange?: (event: React.SyntheticEvent | null, tabId: string) => void;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCanvasTabsClasses;\n}\n\n/**\n * A tabs component to use in a canvas context.\n */\nexport const HvCanvasTabs = (props: HvCanvasTabsProps) => {\n const {\n tabs,\n onChange,\n className,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvCanvasTabs\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [selectedTab, setSelectedTab] = useState(tabs?.[0]?.id || \"none\");\n\n const handleTabChange: TabsProps[\"onChange\"] = (event, value) => {\n onChange?.(event, value as string);\n setSelectedTab(value as string);\n };\n\n return (\n <Tabs\n value={selectedTab}\n onChange={handleTabChange}\n className={cx(classes.root, className)}\n selectionFollowsFocus\n {...others}\n >\n <TabsList className={classes.list}>\n {tabs?.map((tab) => (\n <Tab\n key={tab.id}\n value={tab.id}\n className={cx(classes.tab, {\n [classes.selected]: tab.id === selectedTab,\n })}\n tabIndex={0}\n >\n {tab.content}\n </Tab>\n ))}\n </TabsList>\n </Tabs>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAgCa,MAAA,eAAe,CAAC,UAA6B;AAClD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD,gBAAgB,gBAAgB,KAAK;AAEzC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,QAAA,CAAC,aAAa,cAAc,IAAI,SAAS,OAAO,CAAC,GAAG,MAAM,MAAM;AAEhE,QAAA,kBAAyC,CAAC,OAAO,UAAU;AAC/D,eAAW,OAAO,KAAe;AACjC,mBAAe,KAAe;AAAA,EAAA;AAI9B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,MACrC,uBAAqB;AAAA,MACpB,GAAG;AAAA,MAEJ,UAAA,oBAAC,YAAS,WAAW,QAAQ,MAC1B,UAAM,MAAA,IAAI,CAAC,QACV;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAO,IAAI;AAAA,UACX,WAAW,GAAG,QAAQ,KAAK;AAAA,YACzB,CAAC,QAAQ,QAAQ,GAAG,IAAI,OAAO;AAAA,UAAA,CAChC;AAAA,UACD,UAAU;AAAA,UAET,UAAI,IAAA;AAAA,QAAA;AAAA,QAPA,IAAI;AAAA,MASZ,CAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,4 +1,4 @@
1
- import { createClasses, theme } from "@hitachivantara/uikit-react-core";
1
+ import { createClasses, theme, outlineStyles } from "@hitachivantara/uikit-react-core";
2
2
  const { staticClasses, useClasses } = createClasses("HvCanvasTabs", {
3
3
  root: {
4
4
  height: 48,
@@ -14,7 +14,7 @@ const { staticClasses, useClasses } = createClasses("HvCanvasTabs", {
14
14
  alignItems: "center",
15
15
  justifyContent: "center",
16
16
  flex: 1,
17
- borderRadius: `16px 16px 0 0 `,
17
+ borderRadius: "16px 16px 0 0",
18
18
  backgroundColor: theme.colors.atmo2,
19
19
  color: theme.colors.secondary_60,
20
20
  overflow: "hidden",
@@ -31,6 +31,9 @@ const { staticClasses, useClasses } = createClasses("HvCanvasTabs", {
31
31
  "&$selected": {
32
32
  backgroundColor: theme.colors.atmo1,
33
33
  ...theme.typography.label
34
+ },
35
+ "&:focus-visible": {
36
+ ...outlineStyles
34
37
  }
35
38
  },
36
39
  selected: {}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.styles.js","sources":["../../../../src/Canvas/Tabs/Tabs.styles.tsx"],"sourcesContent":["import {\n createClasses,\n outlineStyles,\n theme,\n} from \"@hitachivantara/uikit-react-core\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvCanvasTabs\", {\n root: {\n height: 48,\n display: \"flex\",\n },\n list: {\n display: \"flex\",\n width: \"100%\",\n },\n tab: {\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: 1,\n borderRadius: \"16px 16px 0 0\",\n backgroundColor: theme.colors.atmo2,\n color: theme.colors.secondary_60,\n overflow: \"hidden\",\n width: \"100%\",\n \"& svg .color0\": {\n fill: \"currentcolor\",\n },\n \"&:hover\": {\n cursor: \"pointer\",\n },\n \"&:focus\": {\n backgroundColor: theme.colors.atmo1,\n },\n \"&$selected\": {\n backgroundColor: theme.colors.atmo1,\n ...theme.typography.label,\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n selected: {},\n});\n"],"names":[],"mappings":";AAMO,MAAM,EAAE,eAAe,eAAe,cAAc,gBAAgB;AAAA,EACzE,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,iBAAiB,MAAM,OAAO;AAAA,IAC9B,OAAO,MAAM,OAAO;AAAA,IACpB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,WAAW;AAAA,MACT,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,IACA,cAAc;AAAA,MACZ,iBAAiB,MAAM,OAAO;AAAA,MAC9B,GAAG,MAAM,WAAW;AAAA,IACtB;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA,UAAU,CAAC;AACb,CAAC;"}
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useDefaultProps, useLabels, HvIconButton, HvTypography } from "@hitachivantara/uikit-react-core";
3
3
  import { Previous } from "@hitachivantara/uikit-react-icons";
4
- import { useClasses } from "./CanvasToolbar.styles.js";
5
- import { staticClasses } from "./CanvasToolbar.styles.js";
4
+ import { useClasses } from "./Toolbar.styles.js";
5
+ import { staticClasses } from "./Toolbar.styles.js";
6
6
  const DEFAULT_LABELS = {
7
7
  back: "Back"
8
8
  };
@@ -13,6 +13,7 @@ const HvCanvasToolbar = (props) => {
13
13
  labels: labelsProp,
14
14
  className,
15
15
  children,
16
+ backButtonProps,
16
17
  classes: classesProp,
17
18
  ...others
18
19
  } = useDefaultProps("HvCanvasToolbar", props);
@@ -20,7 +21,15 @@ const HvCanvasToolbar = (props) => {
20
21
  const labels = useLabels(DEFAULT_LABELS, labelsProp);
21
22
  const title = typeof titleProp === "string" ? /* @__PURE__ */ jsx(HvTypography, { variant: "title4", children: titleProp }) : titleProp;
22
23
  return /* @__PURE__ */ jsxs("div", { className: cx(classes.root, className), ...others, children: [
23
- /* @__PURE__ */ jsx("div", { className: classes.back, children: backButton ?? /* @__PURE__ */ jsx(HvIconButton, { title: labels.back, variant: "primaryGhost", children: /* @__PURE__ */ jsx(Previous, {}) }) }),
24
+ /* @__PURE__ */ jsx("div", { className: classes.back, children: backButton ?? /* @__PURE__ */ jsx(
25
+ HvIconButton,
26
+ {
27
+ title: labels.back,
28
+ variant: "primaryGhost",
29
+ ...backButtonProps,
30
+ children: /* @__PURE__ */ jsx(Previous, {})
31
+ }
32
+ ) }),
24
33
  /* @__PURE__ */ jsx("div", { className: classes.title, children: title }),
25
34
  children && /* @__PURE__ */ jsx("div", { className: classes.actions, children })
26
35
  ] });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.js","sources":["../../../../src/Canvas/Toolbar/Toolbar.tsx"],"sourcesContent":["import {\n ExtractNames,\n HvBaseProps,\n HvIconButton,\n HvIconButtonProps,\n HvTypography,\n useDefaultProps,\n useLabels,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Previous } from \"@hitachivantara/uikit-react-icons\";\n\nimport { staticClasses, useClasses } from \"./Toolbar.styles\";\n\nexport { staticClasses as canvasToolbarClasses };\n\nexport type HvCanvasToolbarClasses = ExtractNames<typeof useClasses>;\n\nconst DEFAULT_LABELS = {\n back: \"Back\",\n};\n\nexport interface HvCanvasToolbarProps\n extends HvBaseProps<HTMLDivElement, \"title\"> {\n /** Text to display in the component. */\n title: React.ReactNode;\n /** Fully customized button or false for when the back button should not be rendered. */\n backButton?: React.ReactNode;\n /** An object containing all the labels. */\n labels?: Partial<typeof DEFAULT_LABELS>;\n /* The content that will be rendered within the toolbar. */\n children?: React.ReactNode;\n /** Props for the default back button. */\n backButtonProps?: Partial<HvIconButtonProps>;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCanvasToolbarClasses;\n}\n\n/**\n * A toolbar component to use in a canvas context.\n */\nexport const HvCanvasToolbar = (props: HvCanvasToolbarProps) => {\n const {\n title: titleProp,\n backButton,\n labels: labelsProp,\n className,\n children,\n backButtonProps,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvCanvasToolbar\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const title =\n typeof titleProp === \"string\" ? (\n <HvTypography variant=\"title4\">{titleProp}</HvTypography>\n ) : (\n titleProp\n );\n\n return (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.back}>\n {backButton ?? (\n <HvIconButton\n title={labels.back}\n variant=\"primaryGhost\"\n {...backButtonProps}\n >\n <Previous />\n </HvIconButton>\n )}\n </div>\n <div className={classes.title}>{title}</div>\n {children && <div className={classes.actions}>{children}</div>}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;AAiBA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AACR;AAqBa,MAAA,kBAAkB,CAAC,UAAgC;AACxD,QAAA;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD,gBAAgB,mBAAmB,KAAK;AAE5C,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AACxC,QAAA,SAAS,UAAU,gBAAgB,UAAU;AAE7C,QAAA,QACJ,OAAO,cAAc,+BAClB,cAAa,EAAA,SAAQ,UAAU,UAAA,UAAU,CAAA,IAE1C;AAIF,SAAA,qBAAC,SAAI,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAI,GAAG,QAC/C,UAAA;AAAA,IAAA,oBAAC,OAAI,EAAA,WAAW,QAAQ,MACrB,UACC,cAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,OAAO;AAAA,QACd,SAAQ;AAAA,QACP,GAAG;AAAA,QAEJ,8BAAC,UAAS,EAAA;AAAA,MAAA;AAAA,IAAA,GAGhB;AAAA,IACC,oBAAA,OAAA,EAAI,WAAW,QAAQ,OAAQ,UAAM,OAAA;AAAA,IACrC,YAAa,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAS;AAAA,EAC1D,EAAA,CAAA;AAEJ;"}
@@ -2,17 +2,15 @@ import { createClasses } from "@hitachivantara/uikit-react-core";
2
2
  import { theme } from "@hitachivantara/uikit-styles";
3
3
  const { staticClasses, useClasses } = createClasses("HvCanvasToolbar", {
4
4
  root: {
5
- width: `calc(100% - var(--canvas-panel-width))`,
5
+ width: "100%",
6
6
  height: 54,
7
7
  display: "flex",
8
8
  alignItems: "center",
9
9
  borderRadius: theme.radii.full,
10
10
  backgroundColor: theme.colors.atmo1,
11
- padding: theme.spacing(0, "md", 0, 0),
12
11
  position: "absolute",
13
12
  right: 0,
14
13
  top: 0,
15
- margin: `0 0 0 ${theme.space.md}`,
16
14
  transition: "width 0.3s ease"
17
15
  },
18
16
  back: {
@@ -34,7 +32,8 @@ const { staticClasses, useClasses } = createClasses("HvCanvasToolbar", {
34
32
  actions: {
35
33
  display: "flex",
36
34
  flexWrap: "nowrap",
37
- overflow: "scroll"
35
+ overflow: "scroll",
36
+ paddingRight: theme.space.md
38
37
  }
39
38
  });
40
39
  export {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.styles.js","sources":["../../../../src/Canvas/Toolbar/Toolbar.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-core\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvCanvasToolbar\", {\n root: {\n width: \"100%\",\n height: 54,\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: theme.radii.full,\n backgroundColor: theme.colors.atmo1,\n position: \"absolute\",\n right: 0,\n top: 0,\n transition: \"width 0.3s ease\",\n },\n back: {\n borderRadius: `${theme.radii.full} 0 0 ${theme.radii.full}`,\n minWidth: 68,\n backgroundColor: theme.colors.containerBackgroundHover,\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n title: {\n display: \"flex\",\n alignItems: \"center\",\n padding: theme.spacing(0, \"md\"),\n height: \"100%\",\n flexGrow: 1,\n },\n actions: {\n display: \"flex\",\n flexWrap: \"nowrap\",\n overflow: \"scroll\",\n paddingRight: theme.space.md,\n },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,mBAAmB;AAAA,EAC5E,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc,MAAM,MAAM;AAAA,IAC1B,iBAAiB,MAAM,OAAO;AAAA,IAC9B,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,YAAY;AAAA,EACd;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,GAAG,MAAM,MAAM,IAAI,QAAQ,MAAM,MAAM,IAAI;AAAA,IACzD,UAAU;AAAA,IACV,iBAAiB,MAAM,OAAO;AAAA,IAC9B,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS,MAAM,QAAQ,GAAG,IAAI;AAAA,IAC9B,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc,MAAM,MAAM;AAAA,EAC5B;AACF,CAAC;"}
package/dist/esm/index.js CHANGED
@@ -2,12 +2,12 @@ import { staticClasses } from "./Blade/Blade.styles.js";
2
2
  import { HvBlade } from "./Blade/Blade.js";
3
3
  import { staticClasses as staticClasses2 } from "./Blades/Blades.styles.js";
4
4
  import { HvBlades } from "./Blades/Blades.js";
5
- import { staticClasses as staticClasses3 } from "./Canvas/CanvasToolbar/CanvasToolbar.styles.js";
6
- import { HvCanvasToolbar } from "./Canvas/CanvasToolbar/CanvasToolbar.js";
7
- import { staticClasses as staticClasses4 } from "./Canvas/CanvasPanel/CanvasPanel.styles.js";
8
- import { HvCanvasPanel } from "./Canvas/CanvasPanel/CanvasPanel.js";
9
- import { staticClasses as staticClasses5 } from "./Canvas/CanvasTabs/CanvasTabs.styles.js";
10
- import { HvCanvasTabs } from "./Canvas/CanvasTabs/CanvasTabs.js";
5
+ import { staticClasses as staticClasses3 } from "./Canvas/Toolbar/Toolbar.styles.js";
6
+ import { HvCanvasToolbar } from "./Canvas/Toolbar/Toolbar.js";
7
+ import { staticClasses as staticClasses4 } from "./Canvas/Panel/Panel.styles.js";
8
+ import { HvCanvasPanel } from "./Canvas/Panel/Panel.js";
9
+ import { staticClasses as staticClasses5 } from "./Canvas/Tabs/Tabs.styles.js";
10
+ import { HvCanvasTabs } from "./Canvas/Tabs/Tabs.js";
11
11
  import { staticClasses as staticClasses6 } from "./Dashboard/Dashboard.styles.js";
12
12
  import { HvDashboard } from "./Dashboard/Dashboard.js";
13
13
  import { staticClasses as staticClasses7 } from "./Flow/Flow.styles.js";
@@ -28,7 +28,7 @@ import { HvColorAny } from '@hitachivantara/uikit-styles';
28
28
  import { HvDialogProps } from '@hitachivantara/uikit-react-core';
29
29
  import { HvDrawerProps } from '@hitachivantara/uikit-react-core';
30
30
  import { HvEmptyStateProps } from '@hitachivantara/uikit-react-core';
31
- import { HvGlobalActionsProps } from '@hitachivantara/uikit-react-core';
31
+ import { HvIconButtonProps } from '@hitachivantara/uikit-react-core';
32
32
  import { HvSize } from '@hitachivantara/uikit-react-core';
33
33
  import { HvSliderProps } from '@hitachivantara/uikit-react-core';
34
34
  import { HvTypographyVariants } from '@hitachivantara/uikit-react-core';
@@ -361,16 +361,16 @@ export declare const HvCanvasPanel: (props: HvCanvasPanelProps) => JSX_2.Element
361
361
  export declare type HvCanvasPanelClasses = ExtractNames<typeof useClasses_4>;
362
362
 
363
363
  export declare interface HvCanvasPanelProps extends HvBaseProps<HTMLDivElement> {
364
- /** Whether the panel is open or not. If this property is defined the panel must be fully controlled. */
364
+ /** Whether the panel is open or not. If this property is defined, the panel must be fully controlled. */
365
365
  open?: boolean;
366
366
  /** When uncontrolled, defines the initial state of the panel. */
367
367
  defaultOpened?: boolean;
368
- /** The tabs that should be visible on the canvas panel */
368
+ /** The tabs that should be visible on the canvas panel. */
369
369
  tabs?: HvCanvasTab[];
370
- /** The function that will be executed whenever the panel toggles. It will receive the state of the accordion. */
370
+ /** The function that will be executed whenever the panel toggles. It will receive the state of the panel. */
371
371
  onToggle?: (event: React.MouseEvent | React.KeyboardEvent, open: boolean) => void;
372
- /** The function that will be executed when a tab changes.It will receive the id of the selected tab. */
373
- onTabChange?: (event: React.SyntheticEvent, tabId: string) => void;
372
+ /** The function that will be executed when a tab changes. It will receive the id of the selected tab. */
373
+ onTabChange?: (event: React.SyntheticEvent | null, tabId: string) => void;
374
374
  /** An object containing all the labels. */
375
375
  labels?: Partial<typeof DEFAULT_LABELS_3>;
376
376
  children?: React.ReactNode;
@@ -378,23 +378,23 @@ export declare interface HvCanvasPanelProps extends HvBaseProps<HTMLDivElement>
378
378
  classes?: HvCanvasPanelClasses;
379
379
  }
380
380
 
381
- export declare type HvCanvasTab = {
381
+ export declare interface HvCanvasTab {
382
382
  id: string;
383
383
  content: React.ReactNode;
384
- };
384
+ }
385
385
 
386
386
  /**
387
- *
387
+ * A tabs component to use in a canvas context.
388
388
  */
389
389
  export declare const HvCanvasTabs: (props: HvCanvasTabsProps) => JSX_2.Element;
390
390
 
391
391
  export declare type HvCanvasTabsClasses = ExtractNames<typeof useClasses_5>;
392
392
 
393
393
  export declare interface HvCanvasTabsProps extends Omit<TabsProps, "onChange"> {
394
- /** The list of tabs. */
394
+ /** List of tabs. */
395
395
  tabs: HvCanvasTab[];
396
- /** Event handler to run when a tab is clicked. */
397
- onChange?: (event: React.SyntheticEvent, tabId: string) => void;
396
+ /** Event handler triggered when a tab is clicked. */
397
+ onChange?: (event: React.SyntheticEvent | null, tabId: string) => void;
398
398
  /** A Jss Object used to override or extend the styles applied. */
399
399
  classes?: HvCanvasTabsClasses;
400
400
  }
@@ -408,12 +408,14 @@ export declare type HvCanvasToolbarClasses = ExtractNames<typeof useClasses_3>;
408
408
 
409
409
  export declare interface HvCanvasToolbarProps extends HvBaseProps<HTMLDivElement, "title"> {
410
410
  /** Text to display in the component. */
411
- title: HvGlobalActionsProps["title"];
412
- /** User can pass in a fully customized button or false for when the back button should not be rendered. */
413
- backButton?: HvGlobalActionsProps["backButton"];
411
+ title: React.ReactNode;
412
+ /** Fully customized button or false for when the back button should not be rendered. */
413
+ backButton?: React.ReactNode;
414
414
  /** An object containing all the labels. */
415
415
  labels?: Partial<typeof DEFAULT_LABELS_2>;
416
- children: React.ReactNode;
416
+ children?: React.ReactNode;
417
+ /** Props for the default back button. */
418
+ backButtonProps?: Partial<HvIconButtonProps>;
417
419
  /** A Jss Object used to override or extend the styles applied. */
418
420
  classes?: HvCanvasToolbarClasses;
419
421
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-lab",
3
- "version": "5.36.0",
3
+ "version": "5.36.1",
4
4
  "private": false,
5
5
  "author": "Hitachi Vantara UI Kit Team",
6
6
  "description": "Contributed React components for the NEXT UI Kit.",
@@ -15,7 +15,8 @@
15
15
  ],
16
16
  "repository": {
17
17
  "type": "git",
18
- "url": "https://github.com/lumada-design/hv-uikit-react.git"
18
+ "url": "https://github.com/lumada-design/hv-uikit-react.git",
19
+ "directory": "packages/lab"
19
20
  },
20
21
  "license": "Apache-2.0",
21
22
  "bugs": {
@@ -32,9 +33,9 @@
32
33
  "@dnd-kit/core": "^6.1.0",
33
34
  "@dnd-kit/modifiers": "^6.0.1",
34
35
  "@emotion/css": "^11.11.0",
35
- "@hitachivantara/uikit-react-core": "^5.66.8",
36
- "@hitachivantara/uikit-react-icons": "^5.10.1",
37
- "@hitachivantara/uikit-styles": "^5.30.2",
36
+ "@hitachivantara/uikit-react-core": "^5.66.9",
37
+ "@hitachivantara/uikit-react-icons": "^5.10.2",
38
+ "@hitachivantara/uikit-styles": "^5.30.3",
38
39
  "@mui/base": "^5.0.0-beta.40",
39
40
  "@types/react-grid-layout": "^1.3.5",
40
41
  "react-grid-layout": "^1.4.4",
@@ -50,7 +51,7 @@
50
51
  "access": "public",
51
52
  "directory": "package"
52
53
  },
53
- "gitHead": "6cfa285815d1ff1d4621790762555845129a3fd3",
54
+ "gitHead": "1c091835a6f0fda7b57464b7a9cd3f27e018101b",
54
55
  "exports": {
55
56
  ".": {
56
57
  "require": "./dist/cjs/index.cjs",
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasPanel.js","sources":["../../../../src/Canvas/CanvasPanel/CanvasPanel.tsx"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\nimport {\n ExtractNames,\n HvBaseProps,\n useControlled,\n useDefaultProps,\n useLabels,\n useTheme,\n} from \"@hitachivantara/uikit-react-core\";\nimport { End, Start } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvCanvasTab, HvCanvasTabs } from \"../CanvasTabs\";\nimport { staticClasses, useClasses } from \"./CanvasPanel.styles\";\n\nexport { staticClasses as canvasPanelClasses };\n\nexport type HvCanvasPanelClasses = ExtractNames<typeof useClasses>;\n\nconst DEFAULT_LABELS = {\n open: \"Open\",\n close: \"Close\",\n};\n\nexport interface HvCanvasPanelProps extends HvBaseProps<HTMLDivElement> {\n /** Whether the panel is open or not. If this property is defined the panel must be fully controlled. */\n open?: boolean;\n /** When uncontrolled, defines the initial state of the panel. */\n defaultOpened?: boolean;\n /** The tabs that should be visible on the canvas panel */\n tabs?: HvCanvasTab[];\n /** The function that will be executed whenever the panel toggles. It will receive the state of the accordion. */\n onToggle?: (\n event: React.MouseEvent | React.KeyboardEvent,\n open: boolean,\n ) => void;\n /** The function that will be executed when a tab changes.It will receive the id of the selected tab. */\n onTabChange?: (event: React.SyntheticEvent, tabId: string) => void;\n /** An object containing all the labels. */\n labels?: Partial<typeof DEFAULT_LABELS>;\n /* The content that will be rendered within canvas panel. */\n children?: React.ReactNode;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCanvasPanelClasses;\n}\n\n/**\n * A panel component to use in a canvas context.\n */\nexport const HvCanvasPanel = (props: HvCanvasPanelProps) => {\n const {\n open: openProp,\n defaultOpened = false,\n tabs,\n onToggle,\n onTabChange,\n labels: labelsProp,\n className,\n children,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvCanvasPanel\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const { rootId, activeTheme } = useTheme();\n\n const [open, setOpen] = useControlled(openProp, Boolean(defaultOpened));\n\n const setPanelWidth = useCallback(() => {\n if (rootId) {\n document\n .getElementById(rootId)\n ?.style.setProperty(\n \"--canvas-panel-width\",\n !open\n ? \"0px\"\n : `${320 + (activeTheme ? parseInt(activeTheme.space.md, 10) : 24)}px`,\n );\n }\n }, [activeTheme, open, rootId]);\n\n useEffect(() => {\n setPanelWidth();\n }, [open, setPanelWidth]);\n\n const handleTogglePanel = (event) => {\n setOpen((prev) => !prev);\n onToggle?.(event, !open);\n };\n\n const handleTabChange = (event, tabId) => {\n onTabChange?.(event, tabId);\n };\n\n return (\n <>\n <div\n className={cx(classes.root, className, {\n [classes.open]: open,\n [classes.close]: !open,\n })}\n {...others}\n >\n {tabs && (\n <HvCanvasTabs\n className={classes.tabs}\n tabs={tabs}\n onChange={handleTabChange}\n />\n )}\n <div className={classes.content}>{children}</div>\n </div>\n <div\n className={cx(classes.handle, {\n [classes.handleOpen]: open,\n [classes.handleClose]: !open,\n })}\n onClick={handleTogglePanel}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleTogglePanel(e);\n }\n }}\n aria-label={open ? labels.close : labels.open}\n >\n <div className={classes.handleButton}>\n {open ? <Start color={[\"primary\"]} /> : <End color={[\"primary\"]} />}\n </div>\n </div>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAkBA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,EACN,OAAO;AACT;AA2Ba,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD,gBAAgB,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AACxC,QAAA,SAAS,UAAU,gBAAgB,UAAU;AACnD,QAAM,EAAE,QAAQ,YAAY,IAAI,SAAS;AAEnC,QAAA,CAAC,MAAM,OAAO,IAAI,cAAc,UAAU,QAAQ,aAAa,CAAC;AAEhE,QAAA,gBAAgB,YAAY,MAAM;AACtC,QAAI,QAAQ;AAEP,eAAA,eAAe,MAAM,GACpB,MAAM;AAAA,QACN;AAAA,QACA,CAAC,OACG,QACA,GAAG,OAAO,cAAc,SAAS,YAAY,MAAM,IAAI,EAAE,IAAI,GAAG;AAAA,MAAA;AAAA,IAE1E;AAAA,EACC,GAAA,CAAC,aAAa,MAAM,MAAM,CAAC;AAE9B,YAAU,MAAM;AACA;EAAA,GACb,CAAC,MAAM,aAAa,CAAC;AAElB,QAAA,oBAAoB,CAAC,UAAU;AAC3B,YAAA,CAAC,SAAS,CAAC,IAAI;AACZ,eAAA,OAAO,CAAC,IAAI;AAAA,EAAA;AAGnB,QAAA,kBAAkB,CAAC,OAAO,UAAU;AACxC,kBAAc,OAAO,KAAK;AAAA,EAAA;AAG5B,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,GAAG,QAAQ,MAAM,WAAW;AAAA,UACrC,CAAC,QAAQ,IAAI,GAAG;AAAA,UAChB,CAAC,QAAQ,KAAK,GAAG,CAAC;AAAA,QAAA,CACnB;AAAA,QACA,GAAG;AAAA,QAEH,UAAA;AAAA,UACC,QAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,QAAQ;AAAA,cACnB;AAAA,cACA,UAAU;AAAA,YAAA;AAAA,UACZ;AAAA,UAED,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAC7C;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,GAAG,QAAQ,QAAQ;AAAA,UAC5B,CAAC,QAAQ,UAAU,GAAG;AAAA,UACtB,CAAC,QAAQ,WAAW,GAAG,CAAC;AAAA,QAAA,CACzB;AAAA,QACD,SAAS;AAAA,QACT,MAAK;AAAA,QACL,UAAU;AAAA,QACV,WAAW,CAAC,MAAM;AAChB,cAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,8BAAkB,CAAC;AAAA,UACrB;AAAA,QACF;AAAA,QACA,cAAY,OAAO,OAAO,QAAQ,OAAO;AAAA,QAEzC,8BAAC,OAAI,EAAA,WAAW,QAAQ,cACrB,UAAA,2BAAQ,OAAM,EAAA,OAAO,CAAC,SAAS,GAAG,IAAM,oBAAA,KAAA,EAAI,OAAO,CAAC,SAAS,EAAG,CAAA,GACnE;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasPanel.styles.js","sources":["../../../../src/Canvas/CanvasPanel/CanvasPanel.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-core\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvCanvasPanel\", {\n root: {\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: 0,\n boxShadow: `4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)`,\n zIndex: theme.zIndices.overlay,\n backgroundColor: \"transparent\",\n transition: \"width 0.3s ease\",\n overflow: \"hidden\",\n \"&$open\": {\n width: 320,\n },\n \"&$close\": {\n width: 0,\n },\n },\n tabs: {},\n content: {\n backgroundColor: theme.colors.atmo1,\n height: \"100%\",\n padding: theme.space.md,\n },\n handle: {\n height: 172,\n width: 35,\n display: \"flex\",\n justifyContent: \"center\",\n zIndex: theme.zIndices.overlay,\n boxShadow: `4px 0px 8px -4px color-mix(in srgb, #414141 12%, transparent)`,\n backgroundColor: theme.colors.atmo1,\n borderRadius: `0 ${theme.radii.round} ${theme.radii.round} 0 `,\n position: \"absolute\",\n transition: \"left 0.3s ease\",\n top: `calc(50% - 86px)`,\n \"&$handleOpen\": {\n left: 320,\n },\n \"&$handleClose\": {\n left: 0,\n },\n \"&:hover\": {\n cursor: \"pointer\",\n },\n },\n handleButton: {\n top: `calc(50% - 16px)`,\n position: \"absolute\",\n },\n open: {},\n close: {},\n handleOpen: {},\n handleClose: {},\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,iBAAiB;AAAA,EAC1E,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ,MAAM,SAAS;AAAA,IACvB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,MAAM,CAAC;AAAA,EACP,SAAS;AAAA,IACP,iBAAiB,MAAM,OAAO;AAAA,IAC9B,QAAQ;AAAA,IACR,SAAS,MAAM,MAAM;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,QAAQ,MAAM,SAAS;AAAA,IACvB,WAAW;AAAA,IACX,iBAAiB,MAAM,OAAO;AAAA,IAC9B,cAAc,KAAK,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK;AAAA,IACzD,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,gBAAgB;AAAA,MACd,MAAM;AAAA,IACR;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,KAAK;AAAA,IACL,UAAU;AAAA,EACZ;AAAA,EACA,MAAM,CAAC;AAAA,EACP,OAAO,CAAC;AAAA,EACR,YAAY,CAAC;AAAA,EACb,aAAa,CAAC;AAChB,CAAC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasTabs.js","sources":["../../../../src/Canvas/CanvasTabs/CanvasTabs.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Tab } from \"@mui/base/Tab\";\nimport { Tabs, TabsProps } from \"@mui/base/Tabs\";\nimport { TabsList } from \"@mui/base/TabsList\";\nimport {\n ExtractNames,\n useDefaultProps,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { staticClasses, useClasses } from \"./CanvasTabs.styles\";\n\nexport { staticClasses as canvasTabsClasses };\n\nexport type HvCanvasTabsClasses = ExtractNames<typeof useClasses>;\n\nexport type HvCanvasTab = {\n id: string;\n content: React.ReactNode;\n};\n\nexport interface HvCanvasTabsProps extends Omit<TabsProps, \"onChange\"> {\n /** The list of tabs. */\n tabs: HvCanvasTab[];\n /** Event handler to run when a tab is clicked. */\n onChange?: (event: React.SyntheticEvent, tabId: string) => void;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCanvasTabsClasses;\n}\n\n/**\n *\n */\nexport const HvCanvasTabs = (props: HvCanvasTabsProps) => {\n const {\n tabs,\n onChange,\n className,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvCanvasTabs\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [selectedTab, setSelectedTab] = useState<string>(\n tabs?.[0]?.id || \"none\",\n );\n\n const handleTabChange = (event, value) => {\n onChange?.(event, value);\n setSelectedTab(value);\n };\n\n return (\n <Tabs\n value={selectedTab}\n onChange={handleTabChange}\n className={cx(classes.root, className)}\n selectionFollowsFocus\n {...others}\n >\n <TabsList className={classes.list}>\n {tabs?.map((tab) => (\n <Tab\n key={tab.id}\n value={tab.id}\n className={cx(classes.tab, {\n [classes.selected]: tab.id === selectedTab,\n })}\n onChange={handleTabChange}\n tabIndex={0}\n >\n {tab.content}\n </Tab>\n ))}\n </TabsList>\n </Tabs>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAgCa,MAAA,eAAe,CAAC,UAA6B;AAClD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD,gBAAgB,gBAAgB,KAAK;AAEzC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,QAAA,CAAC,aAAa,cAAc,IAAI;AAAA,IACpC,OAAO,CAAC,GAAG,MAAM;AAAA,EAAA;AAGb,QAAA,kBAAkB,CAAC,OAAO,UAAU;AACxC,eAAW,OAAO,KAAK;AACvB,mBAAe,KAAK;AAAA,EAAA;AAIpB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,MACrC,uBAAqB;AAAA,MACpB,GAAG;AAAA,MAEJ,UAAA,oBAAC,YAAS,WAAW,QAAQ,MAC1B,UAAM,MAAA,IAAI,CAAC,QACV;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAO,IAAI;AAAA,UACX,WAAW,GAAG,QAAQ,KAAK;AAAA,YACzB,CAAC,QAAQ,QAAQ,GAAG,IAAI,OAAO;AAAA,UAAA,CAChC;AAAA,UACD,UAAU;AAAA,UACV,UAAU;AAAA,UAET,UAAI,IAAA;AAAA,QAAA;AAAA,QARA,IAAI;AAAA,MAUZ,CAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasTabs.styles.js","sources":["../../../../src/Canvas/CanvasTabs/CanvasTabs.styles.tsx"],"sourcesContent":["import { createClasses, theme } from \"@hitachivantara/uikit-react-core\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvCanvasTabs\", {\n root: {\n height: 48,\n display: \"flex\",\n },\n list: {\n display: \"flex\",\n width: \"100%\",\n },\n tab: {\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: 1,\n borderRadius: `16px 16px 0 0 `,\n backgroundColor: theme.colors.atmo2,\n color: theme.colors.secondary_60,\n overflow: \"hidden\",\n width: \"100%\",\n \"& svg .color0\": {\n fill: \"currentcolor\",\n },\n \"&:hover\": {\n cursor: \"pointer\",\n },\n \"&:focus\": {\n backgroundColor: theme.colors.atmo1,\n },\n \"&$selected\": {\n backgroundColor: theme.colors.atmo1,\n ...theme.typography.label,\n },\n },\n selected: {},\n});\n"],"names":[],"mappings":";AAEO,MAAM,EAAE,eAAe,eAAe,cAAc,gBAAgB;AAAA,EACzE,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,iBAAiB,MAAM,OAAO;AAAA,IAC9B,OAAO,MAAM,OAAO;AAAA,IACpB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,WAAW;AAAA,MACT,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,IACA,cAAc;AAAA,MACZ,iBAAiB,MAAM,OAAO;AAAA,MAC9B,GAAG,MAAM,WAAW;AAAA,IACtB;AAAA,EACF;AAAA,EACA,UAAU,CAAC;AACb,CAAC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasToolbar.js","sources":["../../../../src/Canvas/CanvasToolbar/CanvasToolbar.tsx"],"sourcesContent":["import {\n ExtractNames,\n HvBaseProps,\n HvGlobalActionsProps,\n HvIconButton,\n HvTypography,\n useDefaultProps,\n useLabels,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Previous } from \"@hitachivantara/uikit-react-icons\";\n\nimport { staticClasses, useClasses } from \"./CanvasToolbar.styles\";\n\nexport { staticClasses as canvasToolbarClasses };\n\nexport type HvCanvasToolbarClasses = ExtractNames<typeof useClasses>;\n\nconst DEFAULT_LABELS = {\n back: \"Back\",\n};\n\nexport interface HvCanvasToolbarProps\n extends HvBaseProps<HTMLDivElement, \"title\"> {\n /** Text to display in the component. */\n title: HvGlobalActionsProps[\"title\"];\n /** User can pass in a fully customized button or false for when the back button should not be rendered. */\n backButton?: HvGlobalActionsProps[\"backButton\"];\n /** An object containing all the labels. */\n labels?: Partial<typeof DEFAULT_LABELS>;\n /* The content that will be rendered within the toolbar. */\n children: React.ReactNode;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCanvasToolbarClasses;\n}\n\n/**\n * A toolbar component to use in a canvas context.\n */\nexport const HvCanvasToolbar = (props: HvCanvasToolbarProps) => {\n const {\n title: titleProp,\n backButton,\n labels: labelsProp,\n className,\n children,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvCanvasToolbar\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const title =\n typeof titleProp === \"string\" ? (\n <HvTypography variant=\"title4\">{titleProp}</HvTypography>\n ) : (\n titleProp\n );\n\n return (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.back}>\n {backButton ?? (\n <HvIconButton title={labels.back} variant=\"primaryGhost\">\n <Previous />\n </HvIconButton>\n )}\n </div>\n <div className={classes.title}>{title}</div>\n {children && <div className={classes.actions}>{children}</div>}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;AAiBA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AACR;AAmBa,MAAA,kBAAkB,CAAC,UAAgC;AACxD,QAAA;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EAAA,IACD,gBAAgB,mBAAmB,KAAK;AAE5C,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AACxC,QAAA,SAAS,UAAU,gBAAgB,UAAU;AAE7C,QAAA,QACJ,OAAO,cAAc,+BAClB,cAAa,EAAA,SAAQ,UAAU,UAAA,UAAU,CAAA,IAE1C;AAIF,SAAA,qBAAC,SAAI,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAI,GAAG,QAC/C,UAAA;AAAA,IAAA,oBAAC,OAAI,EAAA,WAAW,QAAQ,MACrB,wBACE,oBAAA,cAAA,EAAa,OAAO,OAAO,MAAM,SAAQ,gBACxC,UAAC,oBAAA,UAAA,CAAA,CAAS,EACZ,CAAA,GAEJ;AAAA,IACC,oBAAA,OAAA,EAAI,WAAW,QAAQ,OAAQ,UAAM,OAAA;AAAA,IACrC,YAAa,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAS;AAAA,EAC1D,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasToolbar.styles.js","sources":["../../../../src/Canvas/CanvasToolbar/CanvasToolbar.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-core\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvCanvasToolbar\", {\n root: {\n width: `calc(100% - var(--canvas-panel-width))`,\n height: 54,\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: theme.radii.full,\n backgroundColor: theme.colors.atmo1,\n padding: theme.spacing(0, \"md\", 0, 0),\n position: \"absolute\",\n right: 0,\n top: 0,\n margin: `0 0 0 ${theme.space.md}`,\n transition: \"width 0.3s ease\",\n },\n back: {\n borderRadius: `${theme.radii.full} 0 0 ${theme.radii.full}`,\n minWidth: 68,\n backgroundColor: theme.colors.containerBackgroundHover,\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n title: {\n display: \"flex\",\n alignItems: \"center\",\n padding: theme.spacing(0, \"md\"),\n height: \"100%\",\n flexGrow: 1,\n },\n actions: {\n display: \"flex\",\n flexWrap: \"nowrap\",\n overflow: \"scroll\",\n },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,mBAAmB;AAAA,EAC5E,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc,MAAM,MAAM;AAAA,IAC1B,iBAAiB,MAAM,OAAO;AAAA,IAC9B,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC;AAAA,IACpC,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ,SAAS,MAAM,MAAM,EAAE;AAAA,IAC/B,YAAY;AAAA,EACd;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,GAAG,MAAM,MAAM,IAAI,QAAQ,MAAM,MAAM,IAAI;AAAA,IACzD,UAAU;AAAA,IACV,iBAAiB,MAAM,OAAO;AAAA,IAC9B,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS,MAAM,QAAQ,GAAG,IAAI;AAAA,IAC9B,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,EACZ;AACF,CAAC;"}