@availity/mui-breadcrumbs 0.1.9 → 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,12 +2,28 @@
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
+
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)
14
+
15
+
16
+ ### Features
17
+
18
+ * add form story ([11d1f6c](https://github.com/Availity/element/commit/11d1f6c6191540bf02ff42d4056ac553eecc8c73))
19
+
5
20
  ## [0.1.9](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.1.8...@availity/mui-breadcrumbs@0.1.9) (2023-11-16)
6
21
 
7
22
  ### Dependency Updates
8
23
 
9
- * `mui-icon` updated to version `0.7.3`
10
- * `mui-link` updated to version `0.2.4`
24
+ - `mui-icon` updated to version `0.7.3`
25
+ - `mui-link` updated to version `0.2.4`
26
+
11
27
  ## [0.1.8](https://github.com/Availity/element/compare/@availity/mui-breadcrumbs@0.1.7...@availity/mui-breadcrumbs@0.1.8) (2023-11-08)
12
28
 
13
29
  ### Dependency Updates
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,6 +29,19 @@ 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, target = "_top" }) => {
33
+ const props = {
34
+ "aria-label": name,
35
+ children: name
36
+ };
37
+ return url ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_link.Link, {
38
+ ...props,
39
+ href: url,
40
+ target
41
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
42
+ ...props
43
+ });
44
+ };
32
45
  var Breadcrumbs = ({
33
46
  active,
34
47
  children,
@@ -37,18 +50,6 @@ var Breadcrumbs = ({
37
50
  homeUrl = "/public/apps/dashboard",
38
51
  ...rest
39
52
  }) => {
40
- const renderBreadCrumb = ({ name = emptyState, url }) => {
41
- const props = {
42
- "aria-label": name,
43
- children: name
44
- };
45
- return url ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_link.Link, {
46
- ...props,
47
- href: url
48
- }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
49
- ...props
50
- });
51
- };
52
53
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.Breadcrumbs, {
53
54
  ...rest,
54
55
  separator: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_mui_icon.NavigateNextIcon, {
@@ -63,7 +64,11 @@ var Breadcrumbs = ({
63
64
  loadApp: false,
64
65
  children: "Home"
65
66
  }),
66
- crumbs && crumbs.length > 0 && crumbs.map((crumb) => renderBreadCrumb(crumb)),
67
+ crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url, target }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Breadcrumb, {
68
+ name,
69
+ url,
70
+ target
71
+ }, name)),
67
72
  children,
68
73
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.Typography, {
69
74
  children: active || emptyState
package/dist/index.mjs CHANGED
@@ -3,6 +3,19 @@ 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, target = "_top" }) => {
7
+ const props = {
8
+ "aria-label": name,
9
+ children: name
10
+ };
11
+ return url ? /* @__PURE__ */ jsx(Link, {
12
+ ...props,
13
+ href: url,
14
+ target
15
+ }) : /* @__PURE__ */ jsx(Typography, {
16
+ ...props
17
+ });
18
+ };
6
19
  var Breadcrumbs = ({
7
20
  active,
8
21
  children,
@@ -11,18 +24,6 @@ var Breadcrumbs = ({
11
24
  homeUrl = "/public/apps/dashboard",
12
25
  ...rest
13
26
  }) => {
14
- const renderBreadCrumb = ({ name = emptyState, url }) => {
15
- const props = {
16
- "aria-label": name,
17
- children: name
18
- };
19
- return url ? /* @__PURE__ */ jsx(Link, {
20
- ...props,
21
- href: url
22
- }) : /* @__PURE__ */ jsx(Typography, {
23
- ...props
24
- });
25
- };
26
27
  return /* @__PURE__ */ jsxs(MuiBreadcrumbs, {
27
28
  ...rest,
28
29
  separator: /* @__PURE__ */ jsx(NavigateNextIcon, {
@@ -37,7 +38,11 @@ var Breadcrumbs = ({
37
38
  loadApp: false,
38
39
  children: "Home"
39
40
  }),
40
- crumbs && crumbs.length > 0 && crumbs.map((crumb) => renderBreadCrumb(crumb)),
41
+ crumbs && crumbs.length > 0 && crumbs.map(({ name = emptyState, url, target }) => /* @__PURE__ */ jsx(Breadcrumb, {
42
+ name,
43
+ url,
44
+ target
45
+ }, name)),
41
46
  children,
42
47
  /* @__PURE__ */ jsx(Typography, {
43
48
  children: active || emptyState
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@availity/mui-breadcrumbs",
3
- "version": "0.1.9",
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,6 +30,15 @@ export interface BreadcrumbsProps extends Omit<MuiBreadcrumbsProps, 'separator'
26
30
  homeUrl?: string;
27
31
  }
28
32
 
33
+ const Breadcrumb = ({ name, url, target = '_top' }: Crumb) => {
34
+ const props = {
35
+ 'aria-label': name,
36
+ children: name,
37
+ };
38
+
39
+ return url ? <Link {...props} href={url} target={target} /> : <Typography {...props} />;
40
+ };
41
+
29
42
  export const Breadcrumbs = ({
30
43
  active,
31
44
  children,
@@ -34,15 +47,6 @@ export const Breadcrumbs = ({
34
47
  homeUrl = '/public/apps/dashboard',
35
48
  ...rest
36
49
  }: BreadcrumbsProps): JSX.Element => {
37
- const renderBreadCrumb = ({ name = emptyState, url }: Crumb) => {
38
- const props = {
39
- 'aria-label': name,
40
- children: name,
41
- };
42
-
43
- return url ? <Link {...props} href={url} /> : <Typography {...props} />;
44
- };
45
-
46
50
  return (
47
51
  <MuiBreadcrumbs
48
52
  {...rest}
@@ -53,9 +57,13 @@ export const Breadcrumbs = ({
53
57
  <Link aria-label="Home" href={homeUrl} loadApp={false}>
54
58
  Home
55
59
  </Link>
56
- {crumbs && crumbs.length > 0 && crumbs.map((crumb) => renderBreadCrumb(crumb))}
60
+ {crumbs &&
61
+ crumbs.length > 0 &&
62
+ crumbs.map(({ name = emptyState, url, target }) => (
63
+ <Breadcrumb name={name} url={url} target={target} key={name} />
64
+ ))}
57
65
  {children}
58
- {<Typography>{active || emptyState}</Typography>}
66
+ <Typography>{active || emptyState}</Typography>
59
67
  </MuiBreadcrumbs>
60
68
  );
61
69
  };