@availity/mui-breadcrumbs 0.2.0 → 0.2.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.2.1](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.2.0...@availity/mui-breadcrumbs@0.2.1) (2024-01-03)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **mui-breadcrumbs:** change how target is passed ([ac9b41c](https://github.com/Availity/element/commit/ac9b41c74a31aeb3a08cae67751d34c6fb98f9df))
11
+ * **mui-breadcrumbs:** set default target on link to _top ([087d5d1](https://github.com/Availity/element/commit/087d5d15a05c59d15fc68284d7b362b14276a4cf))
12
+
5
13
  ## [0.2.0](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.1.9...@availity/mui-breadcrumbs@0.2.0) (2023-12-14)
6
14
 
7
15
 
package/dist/index.d.ts CHANGED
@@ -5,6 +5,10 @@ interface Crumb {
5
5
  name: string;
6
6
  /** The url for navigating to the ancestor page. */
7
7
  url: string;
8
+ /** The target on the Link component
9
+ * @default _top
10
+ */
11
+ target?: string;
8
12
  }
9
13
  interface BreadcrumbsProps extends Omit<BreadcrumbsProps$1, 'separator' | 'slotProps' | 'slots'> {
10
14
  /** The name of the active page (the page the user is currently on). */
package/dist/index.js CHANGED
@@ -29,14 +29,15 @@ var import_material = require("@mui/material");
29
29
  var import_mui_icon = require("@availity/mui-icon");
30
30
  var import_mui_link = require("@availity/mui-link");
31
31
  var import_jsx_runtime = require("react/jsx-runtime");
32
- var Breadcrumb = ({ name, url }) => {
32
+ var Breadcrumb = ({ name, url, target = "_top" }) => {
33
33
  const props = {
34
34
  "aria-label": name,
35
35
  children: name
36
36
  };
37
37
  return url ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_link.Link, {
38
38
  ...props,
39
- href: url
39
+ href: url,
40
+ target
40
41
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
41
42
  ...props
42
43
  });
@@ -63,9 +64,10 @@ var Breadcrumbs = ({
63
64
  loadApp: false,
64
65
  children: "Home"
65
66
  }),
66
- crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Breadcrumb, {
67
+ crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url, target }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Breadcrumb, {
67
68
  name,
68
- url
69
+ url,
70
+ target
69
71
  }, name)),
70
72
  children,
71
73
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
package/dist/index.mjs CHANGED
@@ -3,14 +3,15 @@ import { Breadcrumbs as MuiBreadcrumbs, Typography } from "@mui/material";
3
3
  import { NavigateNextIcon, MoreHorizontalIcon } from "@availity/mui-icon";
4
4
  import { Link } from "@availity/mui-link";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
- var Breadcrumb = ({ name, url }) => {
6
+ var Breadcrumb = ({ name, url, target = "_top" }) => {
7
7
  const props = {
8
8
  "aria-label": name,
9
9
  children: name
10
10
  };
11
11
  return url ? /* @__PURE__ */ jsx(Link, {
12
12
  ...props,
13
- href: url
13
+ href: url,
14
+ target
14
15
  }) : /* @__PURE__ */ jsx(Typography, {
15
16
  ...props
16
17
  });
@@ -37,9 +38,10 @@ var Breadcrumbs = ({
37
38
  loadApp: false,
38
39
  children: "Home"
39
40
  }),
40
- crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url }) => /* @__PURE__ */ jsx(Breadcrumb, {
41
+ crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url, target }) => /* @__PURE__ */ jsx(Breadcrumb, {
41
42
  name,
42
- url
43
+ url,
44
+ target
43
45
  }, name)),
44
46
  children,
45
47
  /* @__PURE__ */ jsx(Typography, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@availity/mui-breadcrumbs",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Availity MUI Breadcrumbs Component - part of the @availity/element design system",
5
5
  "keywords": [
6
6
  "react",
@@ -104,5 +104,39 @@ describe('Breadcrumbs', () => {
104
104
  expect(currentPageBreadcrumb).not.toHaveAttribute('href');
105
105
  expect(currentPageBreadcrumb).toHaveTextContent('...');
106
106
  });
107
+
108
+ test('crumb should have default target of _top', () => {
109
+ const { getByTestId } = render(
110
+ <Breadcrumbs
111
+ data-testid="testBreadcrumbs"
112
+ crumbs={[
113
+ { name: 'Grand Parent', url: '/grandparent' },
114
+ { name: 'Parent', url: '/grandparent/parent' },
115
+ ]}
116
+ />
117
+ );
118
+
119
+ const breadcrumbs = getByTestId('testBreadcrumbs').getElementsByClassName('MuiBreadcrumbs-li');
120
+ const grandparentBreadcrumb = breadcrumbs[1].getElementsByTagName('a')[0];
121
+
122
+ expect(grandparentBreadcrumb).toHaveAttribute('target', '_top');
123
+ });
124
+
125
+ test('crumb should set target to what is passed in config', () => {
126
+ const { getByTestId } = render(
127
+ <Breadcrumbs
128
+ data-testid="testBreadcrumbs"
129
+ crumbs={[
130
+ { name: 'Grand Parent', url: '/grandparent', target: '_self' },
131
+ { name: 'Parent', url: '/grandparent/parent' },
132
+ ]}
133
+ />
134
+ );
135
+
136
+ const breadcrumbs = getByTestId('testBreadcrumbs').getElementsByClassName('MuiBreadcrumbs-li');
137
+ const grandparentBreadcrumb = breadcrumbs[1].getElementsByTagName('a')[0];
138
+
139
+ expect(grandparentBreadcrumb).toHaveAttribute('target', '_self');
140
+ });
107
141
  });
108
142
  });
@@ -7,6 +7,10 @@ interface Crumb {
7
7
  name: string;
8
8
  /** The url for navigating to the ancestor page. */
9
9
  url: string;
10
+ /** The target on the Link component
11
+ * @default _top
12
+ */
13
+ target?: string;
10
14
  }
11
15
 
12
16
  export interface BreadcrumbsProps extends Omit<MuiBreadcrumbsProps, 'separator' | 'slotProps' | 'slots'> {
@@ -26,13 +30,13 @@ export interface BreadcrumbsProps extends Omit<MuiBreadcrumbsProps, 'separator'
26
30
  homeUrl?: string;
27
31
  }
28
32
 
29
- const Breadcrumb = ({ name, url }: Crumb) => {
33
+ const Breadcrumb = ({ name, url, target = '_top' }: Crumb) => {
30
34
  const props = {
31
35
  'aria-label': name,
32
36
  children: name,
33
37
  };
34
38
 
35
- return url ? <Link {...props} href={url} /> : <Typography {...props} />;
39
+ return url ? <Link {...props} href={url} target={target} /> : <Typography {...props} />;
36
40
  };
37
41
 
38
42
  export const Breadcrumbs = ({
@@ -55,7 +59,9 @@ export const Breadcrumbs = ({
55
59
  </Link>
56
60
  {crumbs &&
57
61
  crumbs.length > 0 &&
58
- crumbs.map(({ name = emptyState, url }) => <Breadcrumb name={name} url={url} key={name} />)}
62
+ crumbs.map(({ name = emptyState, url, target }) => (
63
+ <Breadcrumb name={name} url={url} target={target} key={name} />
64
+ ))}
59
65
  {children}
60
66
  <Typography>{active || emptyState}</Typography>
61
67
  </MuiBreadcrumbs>