@carto/meridian-ds 1.4.7-alpha-stack-error.1 → 1.4.8-alpha-external-link.5

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 (49) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/dist/{Alert-CywtIMOj.js → Alert-2L0Hy8lT.js} +74 -3
  3. package/dist/{Alert-BiOR9aar.cjs → Alert-CmDToT57.cjs} +72 -1
  4. package/dist/{OpenDiagonallyRight-BrRyCV4Q.cjs → OpenDiagonallyRight-CM1tojUq.cjs} +27 -0
  5. package/dist/{OpenDiagonallyRight-5HZXh46V.js → OpenDiagonallyRight-CSm5GYYJ.js} +27 -0
  6. package/dist/{TablePaginationActions-CFGXm44W.cjs → TablePaginationActions-CAmwcyTy.cjs} +6 -3
  7. package/dist/{TablePaginationActions-KpTvhN4Y.js → TablePaginationActions-b5wP_uRE.js} +6 -3
  8. package/dist/components/index.cjs +239 -21
  9. package/dist/components/index.js +246 -27
  10. package/dist/custom-icons/index.cjs +29 -55
  11. package/dist/custom-icons/index.js +29 -55
  12. package/dist/theme/index.cjs +1 -1
  13. package/dist/theme/index.js +2 -2
  14. package/dist/types/components/atoms/Button.d.ts +11 -0
  15. package/dist/types/components/atoms/Button.d.ts.map +1 -1
  16. package/dist/types/components/atoms/Link.d.ts +14 -0
  17. package/dist/types/components/atoms/Link.d.ts.map +1 -0
  18. package/dist/types/components/atoms/SplitButton.d.ts +17 -0
  19. package/dist/types/components/atoms/SplitButton.d.ts.map +1 -0
  20. package/dist/types/components/atoms/index.d.ts +4 -0
  21. package/dist/types/components/atoms/index.d.ts.map +1 -1
  22. package/dist/types/components/organisms/CodeArea/CodeAreaInput.d.ts.map +1 -1
  23. package/dist/types/components/organisms/CodeArea/CodeAreaTheme.d.ts.map +1 -1
  24. package/dist/types/components/organisms/CodeArea/index.d.ts +1 -0
  25. package/dist/types/components/organisms/CodeArea/index.d.ts.map +1 -1
  26. package/dist/types/components/organisms/CodeArea/types.d.ts +4 -0
  27. package/dist/types/components/organisms/CodeArea/types.d.ts.map +1 -1
  28. package/dist/types/components/organisms/CodeArea/utils.d.ts +34 -0
  29. package/dist/types/components/organisms/CodeArea/utils.d.ts.map +1 -1
  30. package/dist/types/localization/en.d.ts +1 -0
  31. package/dist/types/localization/en.d.ts.map +1 -1
  32. package/dist/types/localization/es.d.ts +1 -0
  33. package/dist/types/localization/es.d.ts.map +1 -1
  34. package/dist/types/localization/id.d.ts +1 -0
  35. package/dist/types/localization/id.d.ts.map +1 -1
  36. package/dist/types/localization/index.d.ts +3 -0
  37. package/dist/types/localization/index.d.ts.map +1 -1
  38. package/dist/types/theme/types.d.ts +6 -0
  39. package/dist/types/theme/types.d.ts.map +1 -1
  40. package/dist/types/widgets/CategoryWidgetUI/CategoryWidgetUI.d.ts.map +1 -1
  41. package/dist/types/widgets/CategoryWidgetUI/CategoryWidgetUI.styled.d.ts +1 -1
  42. package/dist/types/widgets/CategoryWidgetUI/CategoryWidgetUI.styled.d.ts.map +1 -1
  43. package/dist/types/widgets/ChartLegend.d.ts +2 -1
  44. package/dist/types/widgets/ChartLegend.d.ts.map +1 -1
  45. package/dist/types/widgets/PieWidgetUI/PieWidgetUI.d.ts.map +1 -1
  46. package/dist/types/widgets/comparative/ComparativeCategoryWidgetUI/ComparativeCategoryWidgetUI.d.ts.map +1 -1
  47. package/dist/widgets/index.cjs +14 -13
  48. package/dist/widgets/index.js +15 -14
  49. package/package.json +2 -3
@@ -2,19 +2,19 @@
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 material = require("@mui/material");
6
- const TablePaginationActions = require("../TablePaginationActions-CFGXm44W.cjs");
7
5
  const reactIntl = require("react-intl");
6
+ const material = require("@mui/material");
8
7
  const iconsMaterial = require("@mui/icons-material");
9
- const Alert$1 = require("../Alert-BiOR9aar.cjs");
8
+ const TablePaginationActions = require("../TablePaginationActions-CAmwcyTy.cjs");
9
+ const ArrowDown = require("../ArrowDown-8fLj23Ge.cjs");
10
+ const OpenDiagonallyRight = require("../OpenDiagonallyRight-CM1tojUq.cjs");
11
+ const Alert$1 = require("../Alert-CmDToT57.cjs");
10
12
  require("cartocolor");
11
13
  const MenuItem = require("../MenuItem-Br2jY2lt.cjs");
12
- const ArrowDown = require("../ArrowDown-8fLj23Ge.cjs");
13
14
  const DatePicker$1 = require("@mui/x-date-pickers/DatePicker");
14
15
  const xDatePickers = require("@mui/x-date-pickers");
15
16
  const TimePicker$1 = require("@mui/x-date-pickers/TimePicker");
16
17
  const DateTimePicker$1 = require("@mui/x-date-pickers/DateTimePicker");
17
- const OpenDiagonallyRight = require("../OpenDiagonallyRight-BrRyCV4Q.cjs");
18
18
  const reactCodemirror2 = require("react-codemirror2");
19
19
  const colors = require("@mui/material/colors");
20
20
  require("codemirror/lib/codemirror.css");
@@ -61,8 +61,13 @@ function _Button({
61
61
  startIcon,
62
62
  endIcon,
63
63
  loadingPosition,
64
+ external,
65
+ showExternalIcon = true,
66
+ "aria-label": ariaLabel,
64
67
  ...otherProps
65
68
  }, ref) {
69
+ const intl = reactIntl.useIntl();
70
+ const intlConfig = TablePaginationActions.useImperativeIntl(intl);
66
71
  const defaultIconLoader = /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: 18, color: "inherit" });
67
72
  const isDefaultLoading = loading && loadingPosition === void 0;
68
73
  const renderContent = () => {
@@ -84,7 +89,11 @@ function _Button({
84
89
  }
85
90
  return void 0;
86
91
  }
87
- return position === "start" ? startIcon : endIcon;
92
+ if (position === "start") {
93
+ return startIcon;
94
+ } else {
95
+ return endIcon || (external && showExternalIcon && otherProps.href ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.OpenInNewOutlined, {}) : void 0);
96
+ }
88
97
  };
89
98
  return /* @__PURE__ */ jsxRuntime.jsx(
90
99
  material.Button,
@@ -94,12 +103,103 @@ function _Button({
94
103
  endIcon: getIconForPosition("end"),
95
104
  ...otherProps,
96
105
  role: otherProps.href ? "link" : "button",
106
+ ...otherProps.href && external && {
107
+ target: "_blank",
108
+ rel: "noopener noreferrer"
109
+ },
110
+ "aria-label": ariaLabel || (external && otherProps.href ? `${children == null ? void 0 : children.toString()} (${intlConfig.formatMessage({
111
+ id: "c4r.button.opensInNewTab"
112
+ })})` : void 0),
97
113
  ref,
98
114
  children: /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { variant: "inherit", color: "inherit", noWrap: true, component: "span", children: renderContent() })
99
115
  }
100
116
  );
101
117
  }
102
118
  const Button = React.forwardRef(_Button);
119
+ const ButtonGroup = material.styled(material.ButtonGroup)(({ theme, size }) => ({
120
+ "& .MuiButton-root:last-child": {
121
+ padding: 0,
122
+ minWidth: size === "small" ? theme.spacing(3) : size === "large" ? theme.spacing(6) : theme.spacing(4)
123
+ }
124
+ }));
125
+ function SplitButton({
126
+ options,
127
+ onClick,
128
+ variant,
129
+ size,
130
+ color,
131
+ ...otherProps
132
+ }) {
133
+ var _a;
134
+ const [open, setOpen] = React.useState(false);
135
+ const anchorRef = React.useRef(null);
136
+ const [selectedIndex, setSelectedIndex] = React.useState(0);
137
+ const handleClick = () => {
138
+ onClick(options[selectedIndex]);
139
+ };
140
+ const handleMenuItemClick = (_, index) => {
141
+ setSelectedIndex(index);
142
+ setOpen(false);
143
+ };
144
+ const handleToggle = () => {
145
+ setOpen((prevOpen) => !prevOpen);
146
+ };
147
+ const handleClose = (event) => {
148
+ var _a2;
149
+ if ((_a2 = anchorRef.current) == null ? void 0 : _a2.contains(event.target)) {
150
+ return;
151
+ }
152
+ setOpen(false);
153
+ };
154
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
155
+ /* @__PURE__ */ jsxRuntime.jsxs(
156
+ ButtonGroup,
157
+ {
158
+ "data-name": "split-button",
159
+ ref: anchorRef,
160
+ variant,
161
+ size,
162
+ color,
163
+ ...otherProps,
164
+ children: [
165
+ /* @__PURE__ */ jsxRuntime.jsx(material.Button, { onClick: handleClick, children: (_a = options[selectedIndex]) == null ? void 0 : _a.label }),
166
+ /* @__PURE__ */ jsxRuntime.jsx(material.Button, { onClick: handleToggle, children: open ? /* @__PURE__ */ jsxRuntime.jsx(OpenDiagonallyRight.ArrowUp, {}) : /* @__PURE__ */ jsxRuntime.jsx(ArrowDown.ArrowDown, {}) })
167
+ ]
168
+ }
169
+ ),
170
+ /* @__PURE__ */ jsxRuntime.jsx(
171
+ material.Popper,
172
+ {
173
+ sx: { zIndex: 1 },
174
+ open,
175
+ anchorEl: anchorRef.current,
176
+ role: void 0,
177
+ transition: true,
178
+ disablePortal: true,
179
+ placement: "bottom-end",
180
+ children: ({ TransitionProps, placement }) => /* @__PURE__ */ jsxRuntime.jsx(
181
+ material.Grow,
182
+ {
183
+ ...TransitionProps,
184
+ style: {
185
+ transformOrigin: placement === "bottom" ? "center top" : "center bottom"
186
+ },
187
+ children: /* @__PURE__ */ jsxRuntime.jsx(material.Paper, { elevation: 8, children: /* @__PURE__ */ jsxRuntime.jsx(material.ClickAwayListener, { onClickAway: handleClose, children: /* @__PURE__ */ jsxRuntime.jsx(material.MenuList, { autoFocusItem: true, sx: { paddingY: 1 }, children: options.map((option, index) => /* @__PURE__ */ jsxRuntime.jsx(
188
+ material.MenuItem,
189
+ {
190
+ disabled: option.disabled,
191
+ selected: index === selectedIndex,
192
+ onClick: (event) => handleMenuItemClick(event, index),
193
+ children: option.label
194
+ },
195
+ option.label
196
+ )) }) }) })
197
+ }
198
+ )
199
+ }
200
+ )
201
+ ] });
202
+ }
103
203
  const Root$5 = material.styled(material.Box)(({ theme }) => ({
104
204
  display: "flex",
105
205
  alignItems: "center",
@@ -3114,8 +3214,9 @@ const CodeAreaTheme = material.styled(material.Box, {
3114
3214
  right: 0,
3115
3215
  zIndex: 1
3116
3216
  },
3117
- "& .pre.CodeMirror-line, .CodeMirror pre.CodeMirror-line-like, & .cm-bracket": {
3118
- color: theme.palette.text.primary
3217
+ ".CodeMirror pre.CodeMirror-line, .CodeMirror pre.CodeMirror-line-like, & .cm-bracket": {
3218
+ color: theme.palette.text.primary,
3219
+ fontVariantLigatures: "no-common-ligatures"
3119
3220
  },
3120
3221
  "& .CodeMirror pre.CodeMirror-placeholder": {
3121
3222
  color: theme.palette.text.hint
@@ -3133,7 +3234,7 @@ const CodeAreaTheme = material.styled(material.Box, {
3133
3234
  "& .cm-number, & .cm-property, & .cm-builtin": {
3134
3235
  color: colors.red[700]
3135
3236
  },
3136
- "& .cm-comment": {
3237
+ "& .cm-comment, & .cm-quote": {
3137
3238
  color: theme.palette.text.secondary
3138
3239
  },
3139
3240
  "& .cm-variable": {
@@ -3142,9 +3243,18 @@ const CodeAreaTheme = material.styled(material.Box, {
3142
3243
  "& .cm-variable-2": {
3143
3244
  color: theme.palette.text.primary
3144
3245
  },
3145
- "& .cm-punctuation, & .cm-def, ": {
3246
+ "& .cm-punctuation, & .cm-def": {
3146
3247
  color: colors.blue[800]
3147
3248
  },
3249
+ "& .cm-image-alt-text, & .cm-link": {
3250
+ color: colors.green[800],
3251
+ textDecoration: "none"
3252
+ },
3253
+ // Custom inline link styling .cm-inline-url
3254
+ "& .cm-url, & .cm-inline-url": {
3255
+ color: colors.blue[800],
3256
+ textDecoration: "none"
3257
+ },
3148
3258
  "& .cm-variable-3, & .cm-type": {
3149
3259
  color: colors.indigo[800]
3150
3260
  },
@@ -3158,20 +3268,23 @@ const CodeAreaTheme = material.styled(material.Box, {
3158
3268
  "& .CodeMirror-selected": {
3159
3269
  background: colors.blue[800]
3160
3270
  },
3161
- "& .cm-header-1": {
3162
- fontSize: theme.typography.h2.fontSize
3163
- },
3164
- "& .cm-header-2": {
3165
- fontSize: theme.typography.h3.fontSize
3271
+ "& .cm-header": {
3272
+ color: colors.red[700],
3273
+ ...theme.typography.code3,
3274
+ fontWeight: theme.typography.fontWeightBold
3166
3275
  },
3167
- "& .cm-header-3": {
3168
- fontSize: theme.typography.h4.fontSize
3276
+ "& .cm-header-4, & .cm-header-5, & .cm-header-6": {
3277
+ fontWeight: theme.typography.fontWeightRegular
3169
3278
  },
3170
- "& .cm-header-4": {
3171
- fontSize: theme.typography.h5.fontSize
3279
+ // Custom inline code styling
3280
+ "& .cm-inline-code": {
3281
+ backgroundColor: theme.palette.black[4],
3282
+ color: colors.purple[500]
3172
3283
  },
3173
- "& .cm-header-5": {
3174
- fontSize: theme.typography.h6.fontSize
3284
+ // Custom code block styling
3285
+ "& .cm-code-block": {
3286
+ backgroundColor: theme.palette.black[4],
3287
+ marginRight: theme.spacing(2)
3175
3288
  },
3176
3289
  ...size === "small" && {
3177
3290
  "& .CodeMirror": {
@@ -3207,6 +3320,100 @@ function findCodeAreaControlCodeOccurrences(content) {
3207
3320
  }
3208
3321
  return matches;
3209
3322
  }
3323
+ const editorMarkers = /* @__PURE__ */ new WeakMap();
3324
+ function clearMarkersForClass(editor, className) {
3325
+ var _a, _b;
3326
+ const markers = (_a = editorMarkers.get(editor)) == null ? void 0 : _a.get(className);
3327
+ if (!markers) return;
3328
+ markers.forEach((marker) => {
3329
+ if (marker.find()) {
3330
+ marker.clear();
3331
+ }
3332
+ });
3333
+ (_b = editorMarkers.get(editor)) == null ? void 0 : _b.delete(className);
3334
+ }
3335
+ function storeMarkersForClass(editor, className, markers) {
3336
+ if (!editorMarkers.has(editor)) {
3337
+ editorMarkers.set(editor, /* @__PURE__ */ new Map());
3338
+ }
3339
+ const editorMap = editorMarkers.get(editor);
3340
+ if (editorMap) {
3341
+ editorMap.set(className, markers);
3342
+ }
3343
+ }
3344
+ function CodeAreaMarkTextPattern(editor, pattern, options, excludePatterns) {
3345
+ const { className } = options;
3346
+ clearMarkersForClass(editor, className);
3347
+ const doc = editor.getDoc();
3348
+ const content = doc.getValue();
3349
+ const excludeRanges = (excludePatterns == null ? void 0 : excludePatterns.flatMap(
3350
+ (excludePattern) => Array.from(content.matchAll(excludePattern), (match) => ({
3351
+ start: match.index,
3352
+ end: match.index + match[0].length
3353
+ }))
3354
+ )) ?? [];
3355
+ const markers = Array.from(content.matchAll(pattern)).filter((match) => {
3356
+ if (excludeRanges.some(
3357
+ (range) => match.index >= range.start && match.index < range.end
3358
+ )) {
3359
+ return false;
3360
+ }
3361
+ return !match[1] || match[1].trim().length > 0;
3362
+ }).map((match) => {
3363
+ const startPos = doc.posFromIndex(match.index);
3364
+ const endPos = doc.posFromIndex(match.index + match[0].length);
3365
+ return editor.markText(startPos, endPos, {
3366
+ atomic: false,
3367
+ clearOnEnter: false,
3368
+ ...options
3369
+ });
3370
+ });
3371
+ if (markers.length > 0) {
3372
+ storeMarkersForClass(editor, className, markers);
3373
+ }
3374
+ }
3375
+ function markInlineCode(editor, className = "cm-inline-code") {
3376
+ const inlineCodePattern = /`([^`\n\r]+)`/g;
3377
+ const codeBlockPattern = /```[\s\S]*?```/g;
3378
+ CodeAreaMarkTextPattern(
3379
+ editor,
3380
+ inlineCodePattern,
3381
+ {
3382
+ className
3383
+ },
3384
+ [codeBlockPattern]
3385
+ );
3386
+ }
3387
+ function markInlineLinks(editor, className = "cm-inline-url") {
3388
+ const inlineLinkPattern = /<((?:https?:\/\/[^\s<>]+)|(?:[^\s<>@]+@[^\s<>@]+\.[^\s<>@]+))>/g;
3389
+ const codeBlockPattern = /```[\s\S]*?```/g;
3390
+ CodeAreaMarkTextPattern(
3391
+ editor,
3392
+ inlineLinkPattern,
3393
+ {
3394
+ className
3395
+ },
3396
+ [codeBlockPattern]
3397
+ );
3398
+ }
3399
+ function markCodeBlocks(editor, className = "cm-code-block") {
3400
+ const doc = editor.getDoc();
3401
+ const content = doc.getValue();
3402
+ const lineCount = content.split("\n").length;
3403
+ for (let i = 0; i < lineCount; i++) {
3404
+ ["background", "wrap", "text"].forEach(
3405
+ (where) => editor.removeLineClass(i, where, className)
3406
+ );
3407
+ }
3408
+ const codeBlockPattern = /```[\s\S]*?(?:```|$)/g;
3409
+ Array.from(content.matchAll(codeBlockPattern)).forEach((match) => {
3410
+ const startPos = doc.posFromIndex(match.index);
3411
+ const endPos = doc.posFromIndex(match.index + match[0].length);
3412
+ for (let lineNum = startPos.line; lineNum <= endPos.line; lineNum++) {
3413
+ editor.addLineClass(lineNum, "wrap", className);
3414
+ }
3415
+ });
3416
+ }
3210
3417
  function foldCode(editor, { from, to }) {
3211
3418
  editor.foldCode(
3212
3419
  0,
@@ -3247,6 +3454,7 @@ function CodeAreaInput({
3247
3454
  const codeMirrorOptions = {
3248
3455
  mode: "sql",
3249
3456
  theme: "light",
3457
+ addModeClass: true,
3250
3458
  lineNumbers: true,
3251
3459
  lineWrapping: true,
3252
3460
  extraKeys: { "Ctrl-Space": "autocomplete" },
@@ -3277,6 +3485,13 @@ function CodeAreaInput({
3277
3485
  }
3278
3486
  initialFoldingDoneRef.current = true;
3279
3487
  }, [value, editor, autoFoldControlBlocks]);
3488
+ React.useEffect(() => {
3489
+ const mode = typeof (options == null ? void 0 : options.mode) === "object" && options.mode !== null ? options.mode.name : options == null ? void 0 : options.mode;
3490
+ if (mode !== "markdown" || !editor || !value) return;
3491
+ markInlineCode(editor);
3492
+ markInlineLinks(editor);
3493
+ markCodeBlocks(editor);
3494
+ }, [editor, value, options == null ? void 0 : options.mode]);
3280
3495
  return /* @__PURE__ */ jsxRuntime.jsxs(
3281
3496
  CodeAreaTheme,
3282
3497
  {
@@ -4486,6 +4701,7 @@ exports.TablePaginationActions = TablePaginationActions.TablePaginationActions;
4486
4701
  exports.Typography = TablePaginationActions.Typography;
4487
4702
  exports.Alert = Alert$1.Alert;
4488
4703
  exports.IconButton = Alert$1.IconButton;
4704
+ exports.Link = Alert$1.Link;
4489
4705
  exports.MenuItem = MenuItem.MenuItem;
4490
4706
  exports.AccordionGroup = AccordionGroup;
4491
4707
  exports.AppBar = AppBar;
@@ -4500,6 +4716,7 @@ exports.CodeAreaField = CodeAreaField;
4500
4716
  exports.CodeAreaFooter = CodeAreaFooter;
4501
4717
  exports.CodeAreaHeader = CodeAreaHeader;
4502
4718
  exports.CodeAreaInput = CodeAreaInput;
4719
+ exports.CodeAreaMarkTextPattern = CodeAreaMarkTextPattern;
4503
4720
  exports.CopiableComponent = CopiableComponent;
4504
4721
  exports.CreatableAutocomplete = CreatableAutocomplete;
4505
4722
  exports.DatePicker = DatePicker;
@@ -4524,6 +4741,7 @@ exports.MultipleSelectField = MultipleSelectField;
4524
4741
  exports.PasswordField = PasswordField;
4525
4742
  exports.SelectField = SelectField;
4526
4743
  exports.Snackbar = Snackbar;
4744
+ exports.SplitButton = SplitButton;
4527
4745
  exports.Tag = Tag;
4528
4746
  exports.TimePicker = TimePicker;
4529
4747
  exports.ToggleButtonGroup = ToggleButtonGroup;