@carto/meridian-ds 2.0.1 → 2.0.2-alpha-external-link.10

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 (32) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{Alert-BzEgeyQJ.cjs → Alert-CVOuW60y.cjs} +111 -1
  3. package/dist/{Alert-CnaTtNJd.js → Alert-DlpSBkrh.js} +113 -3
  4. package/dist/{MenuItem-C1DvWMry.js → MenuItem-C8x-GasJ.js} +1 -1
  5. package/dist/{MenuItem-C4bG5WHw.cjs → MenuItem-CyIdh2wX.cjs} +1 -1
  6. package/dist/{TablePaginationActions-Cz5Hbi6N.js → TablePaginationActions-BWer8cmX.js} +6 -3
  7. package/dist/{TablePaginationActions-mbbjzV6Y.cjs → TablePaginationActions-MwqZJoRm.cjs} +6 -3
  8. package/dist/components/index.cjs +31 -6
  9. package/dist/components/index.js +33 -7
  10. package/dist/theme/index.cjs +2 -2
  11. package/dist/theme/index.js +3 -3
  12. package/dist/types/components/atoms/Button.d.ts +11 -0
  13. package/dist/types/components/atoms/Button.d.ts.map +1 -1
  14. package/dist/types/components/atoms/Link.d.ts +39 -0
  15. package/dist/types/components/atoms/Link.d.ts.map +1 -0
  16. package/dist/types/components/atoms/ScreenReaderOnly.d.ts +3 -0
  17. package/dist/types/components/atoms/ScreenReaderOnly.d.ts.map +1 -0
  18. package/dist/types/components/atoms/index.d.ts +3 -0
  19. package/dist/types/components/atoms/index.d.ts.map +1 -1
  20. package/dist/types/localization/en.d.ts +1 -0
  21. package/dist/types/localization/en.d.ts.map +1 -1
  22. package/dist/types/localization/es.d.ts +1 -0
  23. package/dist/types/localization/es.d.ts.map +1 -1
  24. package/dist/types/localization/id.d.ts +1 -0
  25. package/dist/types/localization/id.d.ts.map +1 -1
  26. package/dist/types/localization/index.d.ts +3 -0
  27. package/dist/types/localization/index.d.ts.map +1 -1
  28. package/dist/types/widgets/ChartLegend.d.ts.map +1 -1
  29. package/dist/types/widgets/comparative/ComparativeCategoryWidgetUI/ComparativeCategoryWidgetUI.d.ts.map +1 -1
  30. package/dist/widgets/index.cjs +14 -12
  31. package/dist/widgets/index.js +14 -12
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,8 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - New Link components and Button with externalLink behavior [#202](https://github.com/CartoDB/meridian-ds/pull/202)
6
+
5
7
  ## 2.0
6
8
 
9
+ ### 2.0.2
10
+
11
+ - fix(TimeSeriesWidgetUI): Fix TimeSeriesWidgetUI overflowing available height [#226](https://github.com/CartoDB/meridian-ds/pull/226)
12
+
7
13
  ### 2.0.1
8
14
 
9
15
  - Autocomplete: fix flooding issue with console message [#225](https://github.com/CartoDB/meridian-ds/pull/225)
@@ -2,7 +2,21 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const React = require("react");
4
4
  const material = require("@mui/material");
5
- const TablePaginationActions = require("./TablePaginationActions-mbbjzV6Y.cjs");
5
+ const reactIntl = require("react-intl");
6
+ const iconsMaterial = require("@mui/icons-material");
7
+ const TablePaginationActions = require("./TablePaginationActions-MwqZJoRm.cjs");
8
+ require("cartocolor");
9
+ const ScreenReaderOnly = material.styled("span")(() => ({
10
+ position: "absolute",
11
+ width: 1,
12
+ height: 1,
13
+ padding: 0,
14
+ margin: -1,
15
+ overflow: "hidden",
16
+ clip: "rect(0, 0, 0, 0)",
17
+ whiteSpace: "nowrap",
18
+ border: 0
19
+ }));
6
20
  const Option = material.styled("div")(({ theme }) => ({
7
21
  position: "relative",
8
22
  display: "inline-flex",
@@ -61,6 +75,100 @@ function _IconButton({
61
75
  ) });
62
76
  }
63
77
  const IconButton = React.forwardRef(_IconButton);
78
+ const StyledLink = material.styled(material.Link)(() => ({
79
+ display: "inline"
80
+ }));
81
+ const Icon = material.styled("span", {
82
+ shouldForwardProp: (prop) => prop !== "variant" && prop !== "iconPosition"
83
+ })(
84
+ ({ variant, iconPosition }) => ({
85
+ display: "inline-flex",
86
+ position: "relative",
87
+ top: "calc(1em * 5/32)",
88
+ // heuristic to align icon with true perceived baseline (25% offset ratio)
89
+ ...iconPosition === "right" && {
90
+ marginLeft: "0.25em"
91
+ },
92
+ ...iconPosition === "left" && {
93
+ marginRight: "0.25em"
94
+ },
95
+ svg: {
96
+ // Size adapts to the text size, but make sure the icon size is at least 12px
97
+ fontSize: `max(1em, ${TablePaginationActions.ICON_SIZE_SMALL})`,
98
+ color: "inherit !important",
99
+ "> path": {
100
+ color: "inherit !important"
101
+ }
102
+ },
103
+ // Caption and undefined variants use smaller offset and smaller icon
104
+ ...variant === "caption" && {
105
+ top: "calc(1em * 1/5)",
106
+ // 20% offset ratio
107
+ svg: {
108
+ fontSize: TablePaginationActions.ICON_SIZE_SMALL
109
+ }
110
+ },
111
+ // Button and body2 variants use medium-sized icons
112
+ ...(variant === "button" || variant === "body2") && {
113
+ top: "calc(1em * 1/4)",
114
+ // 25% offset ratio
115
+ svg: {
116
+ fontSize: TablePaginationActions.ICON_SIZE_MEDIUM
117
+ }
118
+ },
119
+ // Body1 variant uses large icons
120
+ ...variant === "body1" && {
121
+ top: "calc(1em * 1/3)",
122
+ // 33% offset ratio
123
+ svg: {
124
+ fontSize: TablePaginationActions.ICON_SIZE_LARGE
125
+ }
126
+ }
127
+ })
128
+ );
129
+ function _Link({
130
+ children,
131
+ variant,
132
+ startIcon,
133
+ endIcon,
134
+ color,
135
+ external,
136
+ showExternalIcon = true,
137
+ fontWeight = 500,
138
+ target,
139
+ rel,
140
+ "aria-describedby": ariaDescribedby,
141
+ ...otherProps
142
+ }, ref) {
143
+ const intl = reactIntl.useIntl();
144
+ const intlConfig = TablePaginationActions.useImperativeIntl(intl);
145
+ const isButtonLink = otherProps.component === "button";
146
+ return /* @__PURE__ */ jsxRuntime.jsxs(
147
+ StyledLink,
148
+ {
149
+ ...otherProps,
150
+ variant,
151
+ fontWeight,
152
+ "data-color": color,
153
+ "data-name": isButtonLink ? "button-link" : "link",
154
+ role: isButtonLink ? "button" : "link",
155
+ color,
156
+ ref,
157
+ target: external ? "_blank" : target,
158
+ rel: external ? "noopener noreferrer" : rel,
159
+ "aria-describedby": external ? "external-hint" : ariaDescribedby,
160
+ children: [
161
+ startIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { variant, iconPosition: "left", children: startIcon }),
162
+ children,
163
+ (endIcon || external && showExternalIcon) && /* @__PURE__ */ jsxRuntime.jsx(Icon, { variant, iconPosition: "right", children: endIcon || /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.OpenInNewOutlined, {}) }),
164
+ external && /* @__PURE__ */ jsxRuntime.jsx(ScreenReaderOnly, { id: "external-hint", children: ` (${intlConfig.formatMessage({
165
+ id: "c4r.button.opensInNewTab"
166
+ })})` })
167
+ ]
168
+ }
169
+ );
170
+ }
171
+ const Link = React.forwardRef(_Link);
64
172
  const StyledAlert = material.styled(material.Alert, {
65
173
  shouldForwardProp: (prop) => ![
66
174
  "isNeutral",
@@ -190,3 +298,5 @@ function _Alert({
190
298
  const Alert = React.forwardRef(_Alert);
191
299
  exports.Alert = Alert;
192
300
  exports.IconButton = IconButton;
301
+ exports.Link = Link;
302
+ exports.ScreenReaderOnly = ScreenReaderOnly;
@@ -1,7 +1,21 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef, useState } from "react";
3
- import { styled, IconButton as IconButton$1, Tooltip, CircularProgress, Alert as Alert$1, Fade, AlertTitle } from "@mui/material";
4
- import { b as ICON_SIZE_MEDIUM, T as Typography } from "./TablePaginationActions-Cz5Hbi6N.js";
3
+ import { styled, IconButton as IconButton$1, Tooltip, CircularProgress, Link as Link$1, Alert as Alert$1, Fade, AlertTitle } from "@mui/material";
4
+ import { useIntl } from "react-intl";
5
+ import { OpenInNewOutlined } from "@mui/icons-material";
6
+ import { c as ICON_SIZE_SMALL, b as ICON_SIZE_MEDIUM, I as ICON_SIZE_LARGE, u as useImperativeIntl, T as Typography } from "./TablePaginationActions-BWer8cmX.js";
7
+ import "cartocolor";
8
+ const ScreenReaderOnly = styled("span")(() => ({
9
+ position: "absolute",
10
+ width: 1,
11
+ height: 1,
12
+ padding: 0,
13
+ margin: -1,
14
+ overflow: "hidden",
15
+ clip: "rect(0, 0, 0, 0)",
16
+ whiteSpace: "nowrap",
17
+ border: 0
18
+ }));
5
19
  const Option = styled("div")(({ theme }) => ({
6
20
  position: "relative",
7
21
  display: "inline-flex",
@@ -60,6 +74,100 @@ function _IconButton({
60
74
  ) });
61
75
  }
62
76
  const IconButton = forwardRef(_IconButton);
77
+ const StyledLink = styled(Link$1)(() => ({
78
+ display: "inline"
79
+ }));
80
+ const Icon = styled("span", {
81
+ shouldForwardProp: (prop) => prop !== "variant" && prop !== "iconPosition"
82
+ })(
83
+ ({ variant, iconPosition }) => ({
84
+ display: "inline-flex",
85
+ position: "relative",
86
+ top: "calc(1em * 5/32)",
87
+ // heuristic to align icon with true perceived baseline (25% offset ratio)
88
+ ...iconPosition === "right" && {
89
+ marginLeft: "0.25em"
90
+ },
91
+ ...iconPosition === "left" && {
92
+ marginRight: "0.25em"
93
+ },
94
+ svg: {
95
+ // Size adapts to the text size, but make sure the icon size is at least 12px
96
+ fontSize: `max(1em, ${ICON_SIZE_SMALL})`,
97
+ color: "inherit !important",
98
+ "> path": {
99
+ color: "inherit !important"
100
+ }
101
+ },
102
+ // Caption and undefined variants use smaller offset and smaller icon
103
+ ...variant === "caption" && {
104
+ top: "calc(1em * 1/5)",
105
+ // 20% offset ratio
106
+ svg: {
107
+ fontSize: ICON_SIZE_SMALL
108
+ }
109
+ },
110
+ // Button and body2 variants use medium-sized icons
111
+ ...(variant === "button" || variant === "body2") && {
112
+ top: "calc(1em * 1/4)",
113
+ // 25% offset ratio
114
+ svg: {
115
+ fontSize: ICON_SIZE_MEDIUM
116
+ }
117
+ },
118
+ // Body1 variant uses large icons
119
+ ...variant === "body1" && {
120
+ top: "calc(1em * 1/3)",
121
+ // 33% offset ratio
122
+ svg: {
123
+ fontSize: ICON_SIZE_LARGE
124
+ }
125
+ }
126
+ })
127
+ );
128
+ function _Link({
129
+ children,
130
+ variant,
131
+ startIcon,
132
+ endIcon,
133
+ color,
134
+ external,
135
+ showExternalIcon = true,
136
+ fontWeight = 500,
137
+ target,
138
+ rel,
139
+ "aria-describedby": ariaDescribedby,
140
+ ...otherProps
141
+ }, ref) {
142
+ const intl = useIntl();
143
+ const intlConfig = useImperativeIntl(intl);
144
+ const isButtonLink = otherProps.component === "button";
145
+ return /* @__PURE__ */ jsxs(
146
+ StyledLink,
147
+ {
148
+ ...otherProps,
149
+ variant,
150
+ fontWeight,
151
+ "data-color": color,
152
+ "data-name": isButtonLink ? "button-link" : "link",
153
+ role: isButtonLink ? "button" : "link",
154
+ color,
155
+ ref,
156
+ target: external ? "_blank" : target,
157
+ rel: external ? "noopener noreferrer" : rel,
158
+ "aria-describedby": external ? "external-hint" : ariaDescribedby,
159
+ children: [
160
+ startIcon && /* @__PURE__ */ jsx(Icon, { variant, iconPosition: "left", children: startIcon }),
161
+ children,
162
+ (endIcon || external && showExternalIcon) && /* @__PURE__ */ jsx(Icon, { variant, iconPosition: "right", children: endIcon || /* @__PURE__ */ jsx(OpenInNewOutlined, {}) }),
163
+ external && /* @__PURE__ */ jsx(ScreenReaderOnly, { id: "external-hint", children: ` (${intlConfig.formatMessage({
164
+ id: "c4r.button.opensInNewTab"
165
+ })})` })
166
+ ]
167
+ }
168
+ );
169
+ }
170
+ const Link = forwardRef(_Link);
63
171
  const StyledAlert = styled(Alert$1, {
64
172
  shouldForwardProp: (prop) => ![
65
173
  "isNeutral",
@@ -189,5 +297,7 @@ function _Alert({
189
297
  const Alert = forwardRef(_Alert);
190
298
  export {
191
299
  Alert as A,
192
- IconButton as I
300
+ IconButton as I,
301
+ Link as L,
302
+ ScreenReaderOnly as S
193
303
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { styled, MenuItem as MenuItem$1 } from "@mui/material";
4
- import { e as MENU_ITEM_SIZE_DENSE, f as MENU_ITEM_SIZE_EXTENDED } from "./TablePaginationActions-Cz5Hbi6N.js";
4
+ import { e as MENU_ITEM_SIZE_DENSE, f as MENU_ITEM_SIZE_EXTENDED } from "./TablePaginationActions-BWer8cmX.js";
5
5
  const StyledMenuItem = styled(MenuItem$1, {
6
6
  shouldForwardProp: (prop) => !["subtitle", "destructive", "extended", "fixed", "iconColor"].includes(
7
7
  prop
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const React = require("react");
4
4
  const material = require("@mui/material");
5
- const TablePaginationActions = require("./TablePaginationActions-mbbjzV6Y.cjs");
5
+ const TablePaginationActions = require("./TablePaginationActions-MwqZJoRm.cjs");
6
6
  const StyledMenuItem = material.styled(material.MenuItem, {
7
7
  shouldForwardProp: (prop) => !["subtitle", "destructive", "extended", "fixed", "iconColor"].includes(
8
8
  prop
@@ -817,7 +817,8 @@ const en = {
817
817
  copy: "Copy",
818
818
  save: "Save",
819
819
  add: "Add",
820
- showOptions: "Show options"
820
+ showOptions: "Show options",
821
+ opensInNewTab: "Opens in new tab"
821
822
  },
822
823
  form: {
823
824
  selectAll: "Select all",
@@ -965,7 +966,8 @@ const es = {
965
966
  copy: "Copiar",
966
967
  save: "Guardar",
967
968
  add: "Añadir",
968
- showOptions: "Mostrar opciones"
969
+ showOptions: "Mostrar opciones",
970
+ opensInNewTab: "Abre en una nueva pestaña"
969
971
  },
970
972
  form: {
971
973
  selectAll: "Seleccionar todos",
@@ -1111,7 +1113,8 @@ const id = {
1111
1113
  copy: "Salin",
1112
1114
  save: "Simpan",
1113
1115
  add: "Tambah",
1114
- showOptions: "Tampilkan opsi"
1116
+ showOptions: "Tampilkan opsi",
1117
+ opensInNewTab: "Buka di tab baru"
1115
1118
  },
1116
1119
  form: {
1117
1120
  selectAll: "Select all",
@@ -818,7 +818,8 @@ const en = {
818
818
  copy: "Copy",
819
819
  save: "Save",
820
820
  add: "Add",
821
- showOptions: "Show options"
821
+ showOptions: "Show options",
822
+ opensInNewTab: "Opens in new tab"
822
823
  },
823
824
  form: {
824
825
  selectAll: "Select all",
@@ -966,7 +967,8 @@ const es = {
966
967
  copy: "Copiar",
967
968
  save: "Guardar",
968
969
  add: "Añadir",
969
- showOptions: "Mostrar opciones"
970
+ showOptions: "Mostrar opciones",
971
+ opensInNewTab: "Abre en una nueva pestaña"
970
972
  },
971
973
  form: {
972
974
  selectAll: "Seleccionar todos",
@@ -1112,7 +1114,8 @@ const id = {
1112
1114
  copy: "Salin",
1113
1115
  save: "Simpan",
1114
1116
  add: "Tambah",
1115
- showOptions: "Tampilkan opsi"
1117
+ showOptions: "Tampilkan opsi",
1118
+ opensInNewTab: "Buka di tab baru"
1116
1119
  },
1117
1120
  form: {
1118
1121
  selectAll: "Select all",
@@ -2,15 +2,15 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
+ const reactIntl = require("react-intl");
5
6
  const material = require("@mui/material");
6
- const TablePaginationActions = require("../TablePaginationActions-mbbjzV6Y.cjs");
7
+ const iconsMaterial = require("@mui/icons-material");
8
+ const TablePaginationActions = require("../TablePaginationActions-MwqZJoRm.cjs");
9
+ const Alert$1 = require("../Alert-CVOuW60y.cjs");
7
10
  const ArrowDown = require("../ArrowDown-DJ0vhbsw.cjs");
8
11
  const OpenDiagonallyRight = require("../OpenDiagonallyRight-CpL4ROwg.cjs");
9
- const reactIntl = require("react-intl");
10
- const iconsMaterial = require("@mui/icons-material");
11
- const Alert$1 = require("../Alert-BzEgeyQJ.cjs");
12
12
  require("cartocolor");
13
- const MenuItem = require("../MenuItem-C4bG5WHw.cjs");
13
+ const MenuItem = require("../MenuItem-CyIdh2wX.cjs");
14
14
  const reactWindow = require("react-window");
15
15
  const DatePicker$1 = require("@mui/x-date-pickers/DatePicker");
16
16
  const xDatePickers = require("@mui/x-date-pickers");
@@ -62,10 +62,16 @@ function _Button({
62
62
  startIcon,
63
63
  endIcon,
64
64
  loadingPosition,
65
+ external,
66
+ showExternalIcon = true,
67
+ "aria-describedby": ariaDescribedby,
65
68
  ...otherProps
66
69
  }, ref) {
70
+ const intl = reactIntl.useIntl();
71
+ const intlConfig = TablePaginationActions.useImperativeIntl(intl);
67
72
  const defaultIconLoader = /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: 18, color: "inherit" });
68
73
  const isDefaultLoading = loading && loadingPosition === void 0;
74
+ const isExternalLink = otherProps.href && external;
69
75
  const renderContent = () => {
70
76
  if (isDefaultLoading) {
71
77
  return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { position: "relative" }, children: [
@@ -73,6 +79,14 @@ function _Button({
73
79
  /* @__PURE__ */ jsxRuntime.jsx(HiddenText, { children })
74
80
  ] });
75
81
  }
82
+ if (isExternalLink) {
83
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
84
+ children,
85
+ /* @__PURE__ */ jsxRuntime.jsx(Alert$1.ScreenReaderOnly, { id: "external-hint", children: `(${intlConfig.formatMessage({
86
+ id: "c4r.button.opensInNewTab"
87
+ })})` })
88
+ ] });
89
+ }
76
90
  return children;
77
91
  };
78
92
  const getIconForPosition = (position) => {
@@ -85,7 +99,11 @@ function _Button({
85
99
  }
86
100
  return void 0;
87
101
  }
88
- return position === "start" ? startIcon : endIcon;
102
+ if (position === "start") {
103
+ return startIcon;
104
+ } else {
105
+ return endIcon || (isExternalLink && showExternalIcon ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.OpenInNewOutlined, {}) : void 0);
106
+ }
89
107
  };
90
108
  return /* @__PURE__ */ jsxRuntime.jsx(
91
109
  material.Button,
@@ -95,7 +113,12 @@ function _Button({
95
113
  endIcon: getIconForPosition("end"),
96
114
  ...otherProps,
97
115
  role: otherProps.href ? "link" : "button",
116
+ ...isExternalLink && {
117
+ target: "_blank",
118
+ rel: "noopener noreferrer"
119
+ },
98
120
  ref,
121
+ "aria-describedby": isExternalLink ? "external-hint" : ariaDescribedby,
99
122
  children: /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { variant: "inherit", color: "inherit", noWrap: true, component: "span", children: renderContent() })
100
123
  }
101
124
  );
@@ -5059,6 +5082,8 @@ exports.TablePaginationActions = TablePaginationActions.TablePaginationActions;
5059
5082
  exports.Typography = TablePaginationActions.Typography;
5060
5083
  exports.Alert = Alert$1.Alert;
5061
5084
  exports.IconButton = Alert$1.IconButton;
5085
+ exports.Link = Alert$1.Link;
5086
+ exports.ScreenReaderOnly = Alert$1.ScreenReaderOnly;
5062
5087
  exports.MenuItem = MenuItem.MenuItem;
5063
5088
  exports.AUTOCOMPLETE_GROUP_HEADER_PROPERTY = AUTOCOMPLETE_GROUP_HEADER_PROPERTY;
5064
5089
  exports.AccordionGroup = AccordionGroup;
@@ -1,15 +1,16 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import React, { forwardRef, useState, useRef, useEffect, useMemo, createElement, Fragment as Fragment$1, useCallback, useImperativeHandle } from "react";
3
+ import { useIntl } from "react-intl";
3
4
  import { styled, Box, Button as Button$1, CircularProgress, Popper, Grow, Paper, ClickAwayListener, MenuList as MenuList$1, MenuItem, ButtonGroup as ButtonGroup$1, TextField, InputAdornment, IconButton, Tooltip, Select, FormControl, InputLabel, FormHelperText, ToggleButtonGroup as ToggleButtonGroup$1, Menu as Menu$2, Link, Checkbox, ListItemText, Autocomplete as Autocomplete$1, Divider, ListItemIcon, createFilterOptions, Accordion, AccordionSummary, AccordionDetails, Avatar as Avatar$1, Snackbar as Snackbar$1, Portal, Fade, Slide, alpha, useTheme, Toolbar, AppBar as AppBar$1, Dialog as Dialog$1, DialogTitle as DialogTitle$1, Chip, DialogContent as DialogContent$1, DialogActions as DialogActions$1 } from "@mui/material";
4
- import { T as Typography, c as ICON_SIZE_SMALL, u as useImperativeIntl, f as MENU_ITEM_SIZE_EXTENDED, e as MENU_ITEM_SIZE_DENSE, d as MENU_LIST_MAX_SIZE, M as MENU_ITEM_SIZE_DEFAULT, N as NOTIFICATION_DURATION_IN_MS, A as APPBAR_SIZE } from "../TablePaginationActions-Cz5Hbi6N.js";
5
- import { a } from "../TablePaginationActions-Cz5Hbi6N.js";
5
+ import { OpenInNewOutlined, VisibilityOffOutlined, VisibilityOutlined, Cancel, AddCircleOutlineOutlined, ContentCopyOutlined, CloseOutlined, MenuOutlined, HelpOutline, TodayOutlined, MoreVertOutlined, ErrorOutline, Check } from "@mui/icons-material";
6
+ import { u as useImperativeIntl, T as Typography, c as ICON_SIZE_SMALL, f as MENU_ITEM_SIZE_EXTENDED, e as MENU_ITEM_SIZE_DENSE, d as MENU_LIST_MAX_SIZE, M as MENU_ITEM_SIZE_DEFAULT, N as NOTIFICATION_DURATION_IN_MS, A as APPBAR_SIZE } from "../TablePaginationActions-BWer8cmX.js";
7
+ import { a } from "../TablePaginationActions-BWer8cmX.js";
8
+ import { S as ScreenReaderOnly, I as IconButton$1, A as Alert$1 } from "../Alert-DlpSBkrh.js";
9
+ import { L } from "../Alert-DlpSBkrh.js";
6
10
  import { A as ArrowDown } from "../ArrowDown-d6bxUL0F.js";
7
11
  import { A as ArrowUp, O as OpenDiagonallyRight, C as CloseDiagonallyRight } from "../OpenDiagonallyRight-CGdCEXlF.js";
8
- import { useIntl } from "react-intl";
9
- import { VisibilityOffOutlined, VisibilityOutlined, Cancel, AddCircleOutlineOutlined, ContentCopyOutlined, CloseOutlined, MenuOutlined, HelpOutline, TodayOutlined, MoreVertOutlined, ErrorOutline, Check } from "@mui/icons-material";
10
- import { I as IconButton$1, A as Alert$1 } from "../Alert-CnaTtNJd.js";
11
12
  import "cartocolor";
12
- import { M as MenuItem$1 } from "../MenuItem-C1DvWMry.js";
13
+ import { M as MenuItem$1 } from "../MenuItem-C8x-GasJ.js";
13
14
  import { FixedSizeList } from "react-window";
14
15
  import { DatePicker as DatePicker$1 } from "@mui/x-date-pickers/DatePicker";
15
16
  import { PickersDay as PickersDay$1 } from "@mui/x-date-pickers";
@@ -61,10 +62,16 @@ function _Button({
61
62
  startIcon,
62
63
  endIcon,
63
64
  loadingPosition,
65
+ external,
66
+ showExternalIcon = true,
67
+ "aria-describedby": ariaDescribedby,
64
68
  ...otherProps
65
69
  }, ref) {
70
+ const intl = useIntl();
71
+ const intlConfig = useImperativeIntl(intl);
66
72
  const defaultIconLoader = /* @__PURE__ */ jsx(CircularProgress, { size: 18, color: "inherit" });
67
73
  const isDefaultLoading = loading && loadingPosition === void 0;
74
+ const isExternalLink = otherProps.href && external;
68
75
  const renderContent = () => {
69
76
  if (isDefaultLoading) {
70
77
  return /* @__PURE__ */ jsxs(Box, { sx: { position: "relative" }, children: [
@@ -72,6 +79,14 @@ function _Button({
72
79
  /* @__PURE__ */ jsx(HiddenText, { children })
73
80
  ] });
74
81
  }
82
+ if (isExternalLink) {
83
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
84
+ children,
85
+ /* @__PURE__ */ jsx(ScreenReaderOnly, { id: "external-hint", children: `(${intlConfig.formatMessage({
86
+ id: "c4r.button.opensInNewTab"
87
+ })})` })
88
+ ] });
89
+ }
75
90
  return children;
76
91
  };
77
92
  const getIconForPosition = (position) => {
@@ -84,7 +99,11 @@ function _Button({
84
99
  }
85
100
  return void 0;
86
101
  }
87
- return position === "start" ? startIcon : endIcon;
102
+ if (position === "start") {
103
+ return startIcon;
104
+ } else {
105
+ return endIcon || (isExternalLink && showExternalIcon ? /* @__PURE__ */ jsx(OpenInNewOutlined, {}) : void 0);
106
+ }
88
107
  };
89
108
  return /* @__PURE__ */ jsx(
90
109
  Button$1,
@@ -94,7 +113,12 @@ function _Button({
94
113
  endIcon: getIconForPosition("end"),
95
114
  ...otherProps,
96
115
  role: otherProps.href ? "link" : "button",
116
+ ...isExternalLink && {
117
+ target: "_blank",
118
+ rel: "noopener noreferrer"
119
+ },
97
120
  ref,
121
+ "aria-describedby": isExternalLink ? "external-hint" : ariaDescribedby,
98
122
  children: /* @__PURE__ */ jsx(Typography, { variant: "inherit", color: "inherit", noWrap: true, component: "span", children: renderContent() })
99
123
  }
100
124
  );
@@ -5089,6 +5113,7 @@ export {
5089
5113
  DialogStepper,
5090
5114
  IconButton$1 as IconButton,
5091
5115
  LabelWithIndicator,
5116
+ L as Link,
5092
5117
  Menu$1 as Menu,
5093
5118
  MenuItem$1 as MenuItem,
5094
5119
  MenuItemFilter,
@@ -5096,6 +5121,7 @@ export {
5096
5121
  MultipleAutocomplete,
5097
5122
  MultipleSelectField,
5098
5123
  PasswordField,
5124
+ ScreenReaderOnly,
5099
5125
  SelectField,
5100
5126
  Snackbar,
5101
5127
  SplitButton,
@@ -3,11 +3,11 @@ var _a, _b, _c, _d, _e, _f, _g, _h;
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const material = require("@mui/material");
5
5
  const jsxRuntime = require("react/jsx-runtime");
6
- const TablePaginationActions = require("../TablePaginationActions-mbbjzV6Y.cjs");
6
+ const TablePaginationActions = require("../TablePaginationActions-MwqZJoRm.cjs");
7
7
  const iconsMaterial = require("@mui/icons-material");
8
8
  const ArrowDown = require("../ArrowDown-DJ0vhbsw.cjs");
9
9
  const xDatePickers = require("@mui/x-date-pickers");
10
- const MenuItem = require("../MenuItem-C4bG5WHw.cjs");
10
+ const MenuItem = require("../MenuItem-CyIdh2wX.cjs");
11
11
  const paletteUtils = require("../paletteUtils-B9ybmwiI.cjs");
12
12
  const tooltipArrowSize = 1;
13
13
  const tooltipSeparation = 0.5;
@@ -1,12 +1,12 @@
1
1
  var _a, _b, _c, _d, _e, _f, _g, _h;
2
2
  import { alpha, Tooltip, responsiveFontSizes, createTheme } from "@mui/material";
3
3
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
4
- import { T as Typography, a as TablePaginationActions, I as ICON_SIZE_LARGE, b as ICON_SIZE_MEDIUM, c as ICON_SIZE_SMALL, g as getSpacing, M as MENU_ITEM_SIZE_DEFAULT, d as MENU_LIST_MAX_SIZE, e as MENU_ITEM_SIZE_DENSE, A as APPBAR_SIZE, B as BREAKPOINTS, S as SPACING } from "../TablePaginationActions-Cz5Hbi6N.js";
5
- import { f, N } from "../TablePaginationActions-Cz5Hbi6N.js";
4
+ import { T as Typography, a as TablePaginationActions, I as ICON_SIZE_LARGE, b as ICON_SIZE_MEDIUM, c as ICON_SIZE_SMALL, g as getSpacing, M as MENU_ITEM_SIZE_DEFAULT, d as MENU_LIST_MAX_SIZE, e as MENU_ITEM_SIZE_DENSE, A as APPBAR_SIZE, B as BREAKPOINTS, S as SPACING } from "../TablePaginationActions-BWer8cmX.js";
5
+ import { f, N } from "../TablePaginationActions-BWer8cmX.js";
6
6
  import { Cancel, EventOutlined, ChevronRightOutlined, ChevronLeftOutlined, ExpandMoreOutlined, CheckCircleOutlined } from "@mui/icons-material";
7
7
  import { A as ArrowDown } from "../ArrowDown-d6bxUL0F.js";
8
8
  import { renderDigitalClockTimeView } from "@mui/x-date-pickers";
9
- import { M as MenuItem } from "../MenuItem-C1DvWMry.js";
9
+ import { M as MenuItem } from "../MenuItem-C8x-GasJ.js";
10
10
  import { c as commonPalette } from "../paletteUtils-BHqJlHm9.js";
11
11
  import { g } from "../paletteUtils-BHqJlHm9.js";
12
12
  const tooltipArrowSize = 1;
@@ -9,6 +9,17 @@ export type ButtonProps = MUIButtonProps<React.ElementType, {
9
9
  * - 'end': Shows spinner at the end position, replacing the endIcon
10
10
  */
11
11
  loadingPosition?: 'start' | 'end';
12
+ /**
13
+ * Whether the button is external. If true, the button will open in a new tab.
14
+ * Needs to have a href prop to be considered external.
15
+ */
16
+ external?: boolean;
17
+ /**
18
+ * Whether to show the external icon when external is true. Defaults to true.
19
+ * Needs to have a href prop to be considered external.
20
+ */
21
+ showExternalIcon?: boolean;
22
+ 'aria-describedby'?: string;
12
23
  }>;
13
24
  declare const Button: import('react').ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
14
25
  export default Button;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,IAAI,cAAc,EAK9B,MAAM,eAAe,CAAA;AAmBtB,MAAM,MAAM,WAAW,GAAG,cAAc,CACtC,KAAK,CAAC,WAAW,EACjB;IACE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAClC,CACF,CAAA;AAoED,QAAA,MAAM,MAAM,wHAAsB,CAAA;AAClC,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,IAAI,cAAc,EAK9B,MAAM,eAAe,CAAA;AAuBtB,MAAM,MAAM,WAAW,GAAG,cAAc,CACtC,KAAK,CAAC,WAAW,EACjB;IACE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CACF,CAAA;AAoGD,QAAA,MAAM,MAAM,wHAAsB,CAAA;AAClC,eAAe,MAAM,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { LinkProps as MUILinkProps } from '@mui/material';
2
+ export type LinkProps = MUILinkProps<React.ElementType, {
3
+ endIcon?: React.ReactNode;
4
+ startIcon?: React.ReactNode;
5
+ /**
6
+ * Whether the link is external. If true, the link will open in a new tab.
7
+ */
8
+ external?: boolean;
9
+ /**
10
+ * Whether to show the external icon when external is true. Defaults to true.
11
+ */
12
+ showExternalIcon?: boolean;
13
+ /**
14
+ * For target="_blank", use the `external` prop instead for better consistency and accessibility.
15
+ *
16
+ * Instead of: `<Link target="_blank" rel="noopener noreferrer" href="...">Link text</Link>`
17
+ *
18
+ * Use: `<Link external href="...">Link text</Link>`
19
+ *
20
+ * The `external` prop automatically handles target="_blank", rel="noopener noreferrer",
21
+ * and adds proper accessibility attributes and visual indicators.
22
+ */
23
+ target?: string;
24
+ /**
25
+ * For rel="noopener noreferrer", use the `external` prop instead for better consistency and accessibility.
26
+ *
27
+ * Instead of: `<Link target="_blank" rel="noopener noreferrer" href="...">Link text</Link>`
28
+ *
29
+ * Use: `<Link external href="...">Link text</Link>`
30
+ *
31
+ * The `external` prop automatically handles target="_blank", rel="noopener noreferrer",
32
+ * and adds proper accessibility attributes and visual indicators.
33
+ */
34
+ rel?: string;
35
+ 'aria-describedby'?: string;
36
+ }>;
37
+ declare const Link: import('react').ForwardRefExoticComponent<Omit<LinkProps, "ref"> & import('react').RefAttributes<HTMLAnchorElement>>;
38
+ export default Link;
39
+ //# sourceMappingURL=Link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Link.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,IAAI,YAAY,EAG1B,MAAM,eAAe,CAAA;AAkEtB,MAAM,MAAM,SAAS,GAAG,YAAY,CAClC,KAAK,CAAC,WAAW,EACjB;IACE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;;;;OASG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CACF,CAAA;AA6DD,QAAA,MAAM,IAAI,sHAAoB,CAAA;AAC9B,eAAe,IAAI,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const ScreenReaderOnly: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
2
+ export default ScreenReaderOnly;
3
+ //# sourceMappingURL=ScreenReaderOnly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenReaderOnly.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/ScreenReaderOnly.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,gBAAgB,+NAUnB,CAAA;AAEH,eAAe,gBAAgB,CAAA"}
@@ -6,6 +6,8 @@ export { default as SelectField } from './SelectField';
6
6
  export { default as ToggleButtonGroup } from './ToggleButtonGroup';
7
7
  export { default as Typography } from './Typography';
8
8
  export { default as IconButton } from './IconButton';
9
+ export { default as Link } from './Link';
10
+ export { default as ScreenReaderOnly } from './ScreenReaderOnly';
9
11
  export type * from './Button';
10
12
  export type * from './SplitButton';
11
13
  export type * from './LabelWithIndicator';
@@ -14,4 +16,5 @@ export type * from './SelectField';
14
16
  export type * from './ToggleButtonGroup';
15
17
  export type * from './Typography';
16
18
  export type * from './IconButton';
19
+ export type * from './Link';
17
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AAEpD,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,iBAAiB,CAAA;AACpC,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,cAAc,CAAA;AACjC,mBAAmB,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,iBAAiB,CAAA;AACpC,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,cAAc,CAAA;AACjC,mBAAmB,cAAc,CAAA;AACjC,mBAAmB,QAAQ,CAAA"}
@@ -10,6 +10,7 @@ declare const _default: {
10
10
  save: string;
11
11
  add: string;
12
12
  showOptions: string;
13
+ opensInNewTab: string;
13
14
  };
14
15
  form: {
15
16
  selectAll: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/localization/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAsJ0B"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/localization/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAuJ0B"}
@@ -10,6 +10,7 @@ declare const _default: {
10
10
  save: string;
11
11
  add: string;
12
12
  showOptions: string;
13
+ opensInNewTab: string;
13
14
  };
14
15
  form: {
15
16
  selectAll: string;
@@ -1 +1 @@
1
- {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/localization/es.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAwJ0B"}
1
+ {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/localization/es.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAyJ0B"}
@@ -10,6 +10,7 @@ declare const _default: {
10
10
  save: string;
11
11
  add: string;
12
12
  showOptions: string;
13
+ opensInNewTab: string;
13
14
  };
14
15
  form: {
15
16
  selectAll: string;
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/localization/id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAsJ0B"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/localization/id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAuJ0B"}
@@ -11,6 +11,7 @@ export declare const messages: {
11
11
  save: string;
12
12
  add: string;
13
13
  showOptions: string;
14
+ opensInNewTab: string;
14
15
  };
15
16
  form: {
16
17
  selectAll: string;
@@ -159,6 +160,7 @@ export declare const messages: {
159
160
  save: string;
160
161
  add: string;
161
162
  showOptions: string;
163
+ opensInNewTab: string;
162
164
  };
163
165
  form: {
164
166
  selectAll: string;
@@ -305,6 +307,7 @@ export declare const messages: {
305
307
  save: string;
306
308
  add: string;
307
309
  showOptions: string;
310
+ opensInNewTab: string;
308
311
  };
309
312
  form: {
310
313
  selectAll: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/localization/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/localization/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartLegend.d.ts","sourceRoot":"","sources":["../../../src/widgets/ChartLegend.tsx"],"names":[],"mappings":"AAoEA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,kBAAkB,EAClB,MAAkB,EAClB,eAAe,GAChB,EAAE;IACD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzD,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD,2CAkJA"}
1
+ {"version":3,"file":"ChartLegend.d.ts","sourceRoot":"","sources":["../../../src/widgets/ChartLegend.tsx"],"names":[],"mappings":"AAmEA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,kBAAkB,EAClB,MAAkB,EAClB,eAAe,GAChB,EAAE;IACD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzD,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD,2CAsJA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComparativeCategoryWidgetUI.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/comparative/ComparativeCategoryWidgetUI/ComparativeCategoryWidgetUI.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAA;AAU1E,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,EAAE,YAAY,EAAE,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IACrD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,KAA+B,EAC/B,IAAsC,EACtC,MAAgC,EAChC,MAAgC,EAChC,QAAY,EACZ,KAAwB,EACxB,SAAgB,EAChB,gBAAgB,EAChB,UAAiB,EACjB,UAAiB,EACjB,kBAA4C,EAC5C,0BAAqC,EACrC,SAAyD,EACzD,gBAAgE,EAChE,OAAc,EACd,SAAiB,GAClB,EAAE,gCAAgC,2CAwSlC"}
1
+ {"version":3,"file":"ComparativeCategoryWidgetUI.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/comparative/ComparativeCategoryWidgetUI/ComparativeCategoryWidgetUI.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAA;AAW1E,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,EAAE,YAAY,EAAE,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IACrD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,KAA+B,EAC/B,IAAsC,EACtC,MAAgC,EAChC,MAAgC,EAChC,QAAY,EACZ,KAAwB,EACxB,SAAgB,EAChB,gBAAgB,EAChB,UAAiB,EACjB,UAAiB,EACjB,kBAA4C,EAC5C,0BAAqC,EACrC,SAAyD,EACzD,gBAAgE,EAChE,OAAc,EACd,SAAiB,GAClB,EAAE,gCAAgC,2CAwSlC"}
@@ -4,12 +4,12 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const material = require("@mui/material");
6
6
  const reactIntl = require("react-intl");
7
- const TablePaginationActions = require("../TablePaginationActions-mbbjzV6Y.cjs");
7
+ const TablePaginationActions = require("../TablePaginationActions-MwqZJoRm.cjs");
8
8
  const _ReactEcharts = require("echarts-for-react");
9
9
  const reactWindow = require("react-window");
10
10
  const SwatchSquare = require("../SwatchSquare-B8PIY3Rd.cjs");
11
11
  const iconsMaterial = require("@mui/icons-material");
12
- const Alert = require("../Alert-BzEgeyQJ.cjs");
12
+ const Alert = require("../Alert-CVOuW60y.cjs");
13
13
  const paletteUtils = require("../paletteUtils-B9ybmwiI.cjs");
14
14
  function detectTouchscreen() {
15
15
  let result = false;
@@ -2016,7 +2016,7 @@ function PieSkeleton({ height }) {
2016
2016
  }
2017
2017
  const Legend$1 = material.styled(material.Box)(({ theme }) => ({
2018
2018
  position: "relative",
2019
- padding: theme.spacing(1.25, 1, 0, 1),
2019
+ padding: theme.spacing(0.75, 0.75, 0, 0.75),
2020
2020
  width: "100%"
2021
2021
  }));
2022
2022
  const ItemsContainer = material.styled(material.Box)(({ theme }) => ({
@@ -2025,9 +2025,8 @@ const ItemsContainer = material.styled(material.Box)(({ theme }) => ({
2025
2025
  flexDirection: "row",
2026
2026
  overflowX: "hidden",
2027
2027
  gap: theme.spacing(2),
2028
- // Accessibility tweak to display focus indicator properly
2029
- padding: theme.spacing(0.5),
2030
- margin: theme.spacing(-0.5)
2028
+ // a11y: padding prevents clipping focus outline
2029
+ padding: theme.spacing(0.25)
2031
2030
  }));
2032
2031
  const Item = material.styled(material.Box)(({ theme }) => ({
2033
2032
  display: "flex",
@@ -2081,6 +2080,9 @@ function ChartLegend({
2081
2080
  const legendRef = React.useRef(null);
2082
2081
  const containerRef = React.useRef(null);
2083
2082
  const showMoreButtonsRef = React.useRef(null);
2083
+ if (series.length === 0) {
2084
+ series = [{ name: "", color: theme.palette.text.disabled }];
2085
+ }
2084
2086
  const intl = reactIntl.useIntl();
2085
2087
  const intlConfig = TablePaginationActions.useImperativeIntl(intl);
2086
2088
  function handleClickRight() {
@@ -2141,7 +2143,7 @@ function ChartLegend({
2141
2143
  return /* @__PURE__ */ jsxRuntime.jsxs(
2142
2144
  Item,
2143
2145
  {
2144
- tabIndex: 0,
2146
+ tabIndex: onCategoryClick ? 0 : void 0,
2145
2147
  onClick: onCategoryClick ? () => onCategoryClick(category.name) : void 0,
2146
2148
  onKeyDown: onCategoryClick ? (e) => onCategoryPress(e, category.name) : void 0,
2147
2149
  style: {
@@ -2159,7 +2161,7 @@ function ChartLegend({
2159
2161
  {
2160
2162
  variant: "overline",
2161
2163
  color: selected ? void 0 : "text.disabled",
2162
- children: label
2164
+ children: label || /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: " " })
2163
2165
  }
2164
2166
  )
2165
2167
  ]
@@ -4764,7 +4766,7 @@ function TimeSeriesWidgetUIContent({
4764
4766
  );
4765
4767
  const isLegendVisible = Boolean(showLegend ?? series.length > 1);
4766
4768
  const header = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4767
- /* @__PURE__ */ jsxRuntime.jsx(material.Box, { children: /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { color: "textSecondary", variant: "caption", children: currentDate ?? "-" }) }),
4769
+ /* @__PURE__ */ jsxRuntime.jsx(material.Box, { children: /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { color: "textSecondary", variant: "caption", children: currentDate || "-" }) }),
4768
4770
  filterable && showClearButton && /* @__PURE__ */ jsxRuntime.jsx(
4769
4771
  material.Link,
4770
4772
  {
@@ -5269,7 +5271,7 @@ function ComparativeCategoryWidgetUI({
5269
5271
  { id: "c4r.widgets.category.selectedItems" },
5270
5272
  { items: selectedCategories.length }
5271
5273
  ) : intlConfig.formatMessage({ id: "c4r.widgets.category.all" }) }),
5272
- /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { variant: "caption", component: "div", children: searchActive ? /* @__PURE__ */ jsxRuntime.jsx(material.Link, { onClick: applyTempSelection, children: intlConfig.formatMessage({ id: "c4r.widgets.category.apply" }) }) : blockingActive ? /* @__PURE__ */ jsxRuntime.jsx(material.Link, { onClick: disableBlocking, children: intlConfig.formatMessage({
5274
+ /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { variant: "caption", component: "div", children: searchActive ? /* @__PURE__ */ jsxRuntime.jsx(Alert.Link, { onClick: applyTempSelection, children: intlConfig.formatMessage({ id: "c4r.widgets.category.apply" }) }) : blockingActive ? /* @__PURE__ */ jsxRuntime.jsx(Alert.Link, { onClick: disableBlocking, children: intlConfig.formatMessage({
5273
5275
  id: "c4r.widgets.category.unlock"
5274
5276
  }) }) : selectedCategories.length ? /* @__PURE__ */ jsxRuntime.jsxs(
5275
5277
  material.Box,
@@ -5280,11 +5282,11 @@ function ComparativeCategoryWidgetUI({
5280
5282
  gap: theme.spacing(1)
5281
5283
  },
5282
5284
  children: [
5283
- /* @__PURE__ */ jsxRuntime.jsx(material.Link, { onClick: enableBlocking, children: intlConfig.formatMessage({
5285
+ /* @__PURE__ */ jsxRuntime.jsx(Alert.Link, { onClick: enableBlocking, children: intlConfig.formatMessage({
5284
5286
  id: "c4r.widgets.category.lock"
5285
5287
  }) }),
5286
5288
  /* @__PURE__ */ jsxRuntime.jsx(material.Divider, { orientation: "vertical", flexItem: true }),
5287
- /* @__PURE__ */ jsxRuntime.jsx(material.Link, { onClick: clearSelection, children: intlConfig.formatMessage({
5289
+ /* @__PURE__ */ jsxRuntime.jsx(Alert.Link, { onClick: clearSelection, children: intlConfig.formatMessage({
5288
5290
  id: "c4r.widgets.category.clear"
5289
5291
  }) })
5290
5292
  ]
@@ -2,12 +2,12 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import React, { useMemo, useState, useEffect, useCallback, useRef, createContext, useContext, useLayoutEffect, createRef } from "react";
3
3
  import { useTheme, styled, Box, Skeleton, Grid, Link, darken, Button, Divider, TextField, InputAdornment, Checkbox, Tooltip, debounce, Slider, TableCell, Table, TableHead, TableRow, TableBody, TableContainer, TableSortLabel, TablePagination, IconButton as IconButton$1, Menu, MenuItem, SvgIcon, lighten, Typography as Typography$1, ClickAwayListener, ToggleButton, capitalize, ListItem, Chip, List, Paper, Popover, Select, ListItemText, Collapse, Drawer, Icon, LinearProgress } from "@mui/material";
4
4
  import { useIntl } from "react-intl";
5
- import { h as getDefaultExportFromCjs, u as useImperativeIntl, T as Typography, S as SPACING, B as BREAKPOINTS, a as TablePaginationActions, b as ICON_SIZE_MEDIUM } from "../TablePaginationActions-Cz5Hbi6N.js";
5
+ import { h as getDefaultExportFromCjs, u as useImperativeIntl, T as Typography, S as SPACING, B as BREAKPOINTS, a as TablePaginationActions, b as ICON_SIZE_MEDIUM } from "../TablePaginationActions-BWer8cmX.js";
6
6
  import _ReactEcharts from "echarts-for-react";
7
7
  import { FixedSizeList } from "react-window";
8
8
  import { S as Search, a as SwatchSquare } from "../SwatchSquare-CaaLsjAC.js";
9
9
  import { ChevronLeft, ChevronRight, KeyboardArrowDown, ErrorOutline, Cancel, VisibilityOutlined, VisibilityOffOutlined, ExpandLess, ExpandMore, Close, LayersOutlined, MoreVert } from "@mui/icons-material";
10
- import { I as IconButton, A as Alert } from "../Alert-CnaTtNJd.js";
10
+ import { I as IconButton, L as Link$1, A as Alert } from "../Alert-DlpSBkrh.js";
11
11
  import { a as getColorByCategory, c as commonPalette, b as getPalette } from "../paletteUtils-BHqJlHm9.js";
12
12
  function detectTouchscreen() {
13
13
  let result = false;
@@ -2014,7 +2014,7 @@ function PieSkeleton({ height }) {
2014
2014
  }
2015
2015
  const Legend$1 = styled(Box)(({ theme }) => ({
2016
2016
  position: "relative",
2017
- padding: theme.spacing(1.25, 1, 0, 1),
2017
+ padding: theme.spacing(0.75, 0.75, 0, 0.75),
2018
2018
  width: "100%"
2019
2019
  }));
2020
2020
  const ItemsContainer = styled(Box)(({ theme }) => ({
@@ -2023,9 +2023,8 @@ const ItemsContainer = styled(Box)(({ theme }) => ({
2023
2023
  flexDirection: "row",
2024
2024
  overflowX: "hidden",
2025
2025
  gap: theme.spacing(2),
2026
- // Accessibility tweak to display focus indicator properly
2027
- padding: theme.spacing(0.5),
2028
- margin: theme.spacing(-0.5)
2026
+ // a11y: padding prevents clipping focus outline
2027
+ padding: theme.spacing(0.25)
2029
2028
  }));
2030
2029
  const Item = styled(Box)(({ theme }) => ({
2031
2030
  display: "flex",
@@ -2079,6 +2078,9 @@ function ChartLegend({
2079
2078
  const legendRef = useRef(null);
2080
2079
  const containerRef = useRef(null);
2081
2080
  const showMoreButtonsRef = useRef(null);
2081
+ if (series.length === 0) {
2082
+ series = [{ name: "", color: theme.palette.text.disabled }];
2083
+ }
2082
2084
  const intl = useIntl();
2083
2085
  const intlConfig = useImperativeIntl(intl);
2084
2086
  function handleClickRight() {
@@ -2139,7 +2141,7 @@ function ChartLegend({
2139
2141
  return /* @__PURE__ */ jsxs(
2140
2142
  Item,
2141
2143
  {
2142
- tabIndex: 0,
2144
+ tabIndex: onCategoryClick ? 0 : void 0,
2143
2145
  onClick: onCategoryClick ? () => onCategoryClick(category.name) : void 0,
2144
2146
  onKeyDown: onCategoryClick ? (e) => onCategoryPress(e, category.name) : void 0,
2145
2147
  style: {
@@ -2157,7 +2159,7 @@ function ChartLegend({
2157
2159
  {
2158
2160
  variant: "overline",
2159
2161
  color: selected ? void 0 : "text.disabled",
2160
- children: label
2162
+ children: label || /* @__PURE__ */ jsx(Fragment, { children: " " })
2161
2163
  }
2162
2164
  )
2163
2165
  ]
@@ -4762,7 +4764,7 @@ function TimeSeriesWidgetUIContent({
4762
4764
  );
4763
4765
  const isLegendVisible = Boolean(showLegend ?? series.length > 1);
4764
4766
  const header = /* @__PURE__ */ jsxs(Fragment, { children: [
4765
- /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Typography, { color: "textSecondary", variant: "caption", children: currentDate ?? "-" }) }),
4767
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Typography, { color: "textSecondary", variant: "caption", children: currentDate || "-" }) }),
4766
4768
  filterable && showClearButton && /* @__PURE__ */ jsx(
4767
4769
  Link,
4768
4770
  {
@@ -5267,7 +5269,7 @@ function ComparativeCategoryWidgetUI({
5267
5269
  { id: "c4r.widgets.category.selectedItems" },
5268
5270
  { items: selectedCategories.length }
5269
5271
  ) : intlConfig.formatMessage({ id: "c4r.widgets.category.all" }) }),
5270
- /* @__PURE__ */ jsx(Typography, { variant: "caption", component: "div", children: searchActive ? /* @__PURE__ */ jsx(Link, { onClick: applyTempSelection, children: intlConfig.formatMessage({ id: "c4r.widgets.category.apply" }) }) : blockingActive ? /* @__PURE__ */ jsx(Link, { onClick: disableBlocking, children: intlConfig.formatMessage({
5272
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", component: "div", children: searchActive ? /* @__PURE__ */ jsx(Link$1, { onClick: applyTempSelection, children: intlConfig.formatMessage({ id: "c4r.widgets.category.apply" }) }) : blockingActive ? /* @__PURE__ */ jsx(Link$1, { onClick: disableBlocking, children: intlConfig.formatMessage({
5271
5273
  id: "c4r.widgets.category.unlock"
5272
5274
  }) }) : selectedCategories.length ? /* @__PURE__ */ jsxs(
5273
5275
  Box,
@@ -5278,11 +5280,11 @@ function ComparativeCategoryWidgetUI({
5278
5280
  gap: theme.spacing(1)
5279
5281
  },
5280
5282
  children: [
5281
- /* @__PURE__ */ jsx(Link, { onClick: enableBlocking, children: intlConfig.formatMessage({
5283
+ /* @__PURE__ */ jsx(Link$1, { onClick: enableBlocking, children: intlConfig.formatMessage({
5282
5284
  id: "c4r.widgets.category.lock"
5283
5285
  }) }),
5284
5286
  /* @__PURE__ */ jsx(Divider, { orientation: "vertical", flexItem: true }),
5285
- /* @__PURE__ */ jsx(Link, { onClick: clearSelection, children: intlConfig.formatMessage({
5287
+ /* @__PURE__ */ jsx(Link$1, { onClick: clearSelection, children: intlConfig.formatMessage({
5286
5288
  id: "c4r.widgets.category.clear"
5287
5289
  }) })
5288
5290
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carto/meridian-ds",
3
- "version": "2.0.1",
3
+ "version": "2.0.2-alpha-external-link.10",
4
4
  "description": "CARTO Meridian Design System",
5
5
  "type": "module",
6
6
  "scripts": {