remoraid 2.19.4 → 2.20.2

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.
@@ -1001,7 +1001,7 @@ var require_lodash = __commonJS((exports2, module2) => {
1001
1001
  }
1002
1002
  SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
1003
1003
  SetCache.prototype.has = setCacheHas;
1004
- function Stack2(entries) {
1004
+ function Stack(entries) {
1005
1005
  var data = this.__data__ = new ListCache(entries);
1006
1006
  this.size = data.size;
1007
1007
  }
@@ -1035,11 +1035,11 @@ var require_lodash = __commonJS((exports2, module2) => {
1035
1035
  this.size = data.size;
1036
1036
  return this;
1037
1037
  }
1038
- Stack2.prototype.clear = stackClear;
1039
- Stack2.prototype["delete"] = stackDelete;
1040
- Stack2.prototype.get = stackGet;
1041
- Stack2.prototype.has = stackHas;
1042
- Stack2.prototype.set = stackSet;
1038
+ Stack.prototype.clear = stackClear;
1039
+ Stack.prototype["delete"] = stackDelete;
1040
+ Stack.prototype.get = stackGet;
1041
+ Stack.prototype.has = stackHas;
1042
+ Stack.prototype.set = stackSet;
1043
1043
  function arrayLikeKeys(value, inherited) {
1044
1044
  var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String) : [], length = result2.length;
1045
1045
  for (var key in value) {
@@ -1155,7 +1155,7 @@ var require_lodash = __commonJS((exports2, module2) => {
1155
1155
  result2 = initCloneByTag(value, tag, isDeep);
1156
1156
  }
1157
1157
  }
1158
- stack || (stack = new Stack2);
1158
+ stack || (stack = new Stack);
1159
1159
  var stacked = stack.get(value);
1160
1160
  if (stacked) {
1161
1161
  return stacked;
@@ -1424,21 +1424,21 @@ var require_lodash = __commonJS((exports2, module2) => {
1424
1424
  objIsObj = false;
1425
1425
  }
1426
1426
  if (isSameTag && !objIsObj) {
1427
- stack || (stack = new Stack2);
1427
+ stack || (stack = new Stack);
1428
1428
  return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
1429
1429
  }
1430
1430
  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
1431
1431
  var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
1432
1432
  if (objIsWrapped || othIsWrapped) {
1433
1433
  var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
1434
- stack || (stack = new Stack2);
1434
+ stack || (stack = new Stack);
1435
1435
  return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
1436
1436
  }
1437
1437
  }
1438
1438
  if (!isSameTag) {
1439
1439
  return false;
1440
1440
  }
1441
- stack || (stack = new Stack2);
1441
+ stack || (stack = new Stack);
1442
1442
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
1443
1443
  }
1444
1444
  function baseIsMap(value) {
@@ -1464,7 +1464,7 @@ var require_lodash = __commonJS((exports2, module2) => {
1464
1464
  return false;
1465
1465
  }
1466
1466
  } else {
1467
- var stack = new Stack2;
1467
+ var stack = new Stack;
1468
1468
  if (customizer) {
1469
1469
  var result2 = customizer(objValue, srcValue, key, object, source, stack);
1470
1470
  }
@@ -1560,7 +1560,7 @@ var require_lodash = __commonJS((exports2, module2) => {
1560
1560
  return;
1561
1561
  }
1562
1562
  baseFor(source, function(srcValue, key) {
1563
- stack || (stack = new Stack2);
1563
+ stack || (stack = new Stack);
1564
1564
  if (isObject(srcValue)) {
1565
1565
  baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
1566
1566
  } else {
@@ -5476,6 +5476,7 @@ __export(exports_core, {
5476
5476
  isValidElementOfType: () => isValidElementOfType,
5477
5477
  getElementTypeName: () => getElementTypeName,
5478
5478
  getDefaultWidgetContext: () => getDefaultWidgetContext,
5479
+ getDefaultButtonIconSize: () => getDefaultButtonIconSize,
5479
5480
  defaultUserExperienceCookieName: () => defaultUserExperienceCookieName,
5480
5481
  defaultUserExperience: () => defaultUserExperience,
5481
5482
  defaultSettingsWidgetOptions: () => defaultSettingsWidgetContext,
@@ -5515,6 +5516,7 @@ __export(exports_core, {
5515
5516
  FrameLayoutSection: () => FrameLayoutSection,
5516
5517
  FrameLayout: () => FrameLayout_default,
5517
5518
  FooterVariant: () => FooterVariant,
5519
+ EnvironmentShellVariant: () => EnvironmentShellVariant,
5518
5520
  EnvironmentShell: () => EnvironmentShell,
5519
5521
  Controls: () => Controls,
5520
5522
  ControlButton: () => ControlButton,
@@ -5529,13 +5531,10 @@ __export(exports_core, {
5529
5531
  module.exports = __toCommonJS(exports_core);
5530
5532
 
5531
5533
  // src/core/components/RemoraidProvider/WidgetsProvider/index.tsx
5534
+ var import_lodash = __toESM(require_lodash());
5532
5535
  var import_react = __toESM(require("react"));
5533
5536
  var jsx_dev_runtime = require("react/jsx-dev-runtime");
5534
- var getDefaultWidgetContext = (configuration) => ({
5535
- name: configuration.widgetId,
5536
- selected: true,
5537
- ...configuration.initialValues
5538
- });
5537
+ var getDefaultWidgetContext = (configuration) => import_lodash.merge({ name: configuration.widgetId, selected: true }, configuration.initialValues);
5539
5538
  var widgetsContext = import_react.default.createContext({
5540
5539
  widgets: {},
5541
5540
  activeWidget: null,
@@ -5692,6 +5691,7 @@ var RemoraidBreakpoint;
5692
5691
  var RemoraidIconSize;
5693
5692
  ((RemoraidIconSize2) => {
5694
5693
  RemoraidIconSize2["Tiny"] = "tiny";
5694
+ RemoraidIconSize2["Small"] = "small";
5695
5695
  RemoraidIconSize2["Medium"] = "medium";
5696
5696
  })(RemoraidIconSize ||= {});
5697
5697
  var LayoutType;
@@ -5743,6 +5743,12 @@ var asElementOrPropsOfType = (type, elementOrProps, additionalErrorMessage) => {
5743
5743
  }
5744
5744
  return elementOrProps;
5745
5745
  };
5746
+ var getDefaultButtonIconSize = (buttonSize) => {
5747
+ if (buttonSize === "xs") {
5748
+ return "small" /* Small */;
5749
+ }
5750
+ return "medium" /* Medium */;
5751
+ };
5746
5752
 
5747
5753
  // src/core/components/RemoraidProvider/ThemeProvider/index.tsx
5748
5754
  var import_core2 = require("@mantine/core");
@@ -5785,22 +5791,18 @@ function HydrationStatusProvider({
5785
5791
  }
5786
5792
 
5787
5793
  // src/core/components/RemoraidProvider/ThemeProvider/index.tsx
5794
+ var import_lodash2 = __toESM(require_lodash());
5788
5795
  var jsx_dev_runtime3 = require("react/jsx-dev-runtime");
5789
- var isMantinePrimaryShade = (primaryShade) => {
5790
- if (isNaN(Number(primaryShade))) {
5791
- return true;
5792
- }
5793
- return false;
5794
- };
5795
5796
  var createRemoraidTheme = (customTheme, dependencies) => {
5796
5797
  const { mantineTheme, colorScheme } = dependencies ?? {};
5797
- const defaultMediumIconProps = { size: "1.125em" };
5798
- let transparentBackground;
5799
- let primaryColor;
5798
+ const transitionDurations = import_lodash2.merge({
5799
+ ["short" /* Short */]: 200,
5800
+ ["medium" /* Medium */]: 350,
5801
+ ["long" /* Long */]: 500
5802
+ }, customTheme?.transitionDurations);
5803
+ const transparentBackground = customTheme?.transparentBackground ?? (mantineTheme && colorScheme ? colorScheme === "dark" ? import_core2.rgba(mantineTheme.colors.dark[8], 0.8) : import_core2.rgba(mantineTheme.white, 0.8) : undefined);
5800
5804
  let spacingPx;
5801
5805
  if (mantineTheme && colorScheme) {
5802
- transparentBackground = colorScheme === "dark" ? import_core2.rgba(mantineTheme.colors.dark[8], 0.8) : import_core2.rgba(mantineTheme.white, 0.8);
5803
- primaryColor = mantineTheme.colors[mantineTheme.primaryColor][isMantinePrimaryShade(mantineTheme.primaryShade) ? mantineTheme.primaryShade[colorScheme === "auto" ? "light" : colorScheme] : mantineTheme.primaryShade];
5804
5806
  spacingPx = {
5805
5807
  xs: Number(co((v) => !Number.isNaN(v), Number(import_core2.px(mantineTheme.spacing.xs)), 0)),
5806
5808
  sm: Number(co((v) => !Number.isNaN(v), Number(import_core2.px(mantineTheme.spacing.sm)), 0)),
@@ -5809,72 +5811,72 @@ var createRemoraidTheme = (customTheme, dependencies) => {
5809
5811
  xl: Number(co((v) => !Number.isNaN(v), Number(import_core2.px(mantineTheme.spacing.xl)), 0))
5810
5812
  };
5811
5813
  }
5812
- return {
5814
+ const defaultTheme = {
5813
5815
  containerSize: 1300,
5814
5816
  jsonStringifySpace: 2,
5815
5817
  transparentBackground,
5816
- primaryColor,
5817
5818
  spacingPx,
5818
- ...customTheme,
5819
- transitionDurations: {
5820
- ["short" /* Short */]: 200,
5821
- ["medium" /* Medium */]: 350,
5822
- ["long" /* Long */]: 500,
5823
- ...customTheme?.transitionDurations
5824
- },
5819
+ transitionDurations,
5825
5820
  breakpoints: {
5826
5821
  ["buttonCollapse" /* ButtonCollapse */]: "md",
5827
- ["badgeGroupCollapse" /* BadgeGroupCollapse */]: "md",
5828
- ...customTheme?.breakpoints
5829
- },
5830
- scrollAreaProps: {
5831
- scrollbarSize: 8,
5832
- scrollHideDelay: 20,
5833
- type: "hover",
5834
- ...customTheme?.scrollAreaProps
5822
+ ["badgeGroupCollapse" /* BadgeGroupCollapse */]: "md"
5835
5823
  },
5836
- alertProps: {
5837
- ["negative" /* Negative */]: {
5838
- icon: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(import_icons_react.IconAlertCircle, {
5839
- ...defaultMediumIconProps
5840
- }, undefined, false, undefined, this),
5841
- variant: "light",
5842
- color: "red",
5843
- title: "Attention!",
5844
- ...customTheme?.alertProps?.negative
5824
+ primaryGutter: "md",
5825
+ componentsProps: {
5826
+ alerts: {
5827
+ ["negative" /* Negative */]: {
5828
+ icon: import_icons_react.IconAlertCircle,
5829
+ color: "red",
5830
+ title: "Attention!"
5831
+ },
5832
+ ["neutral" /* Neutral */]: {
5833
+ icon: import_icons_react.IconInfoCircle,
5834
+ color: mantineTheme?.primaryColor,
5835
+ title: "Information"
5836
+ },
5837
+ ["positive" /* Positive */]: {
5838
+ icon: import_icons_react.IconCircleCheck,
5839
+ color: "green",
5840
+ title: "Success"
5841
+ }
5845
5842
  },
5846
- ["neutral" /* Neutral */]: {
5847
- icon: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(import_icons_react.IconInfoCircle, {
5848
- ...defaultMediumIconProps
5849
- }, undefined, false, undefined, this),
5850
- variant: "light",
5851
- color: mantineTheme?.primaryColor,
5852
- title: "Information",
5853
- ...customTheme?.alertProps?.neutral
5843
+ icons: {
5844
+ ["medium" /* Medium */]: {
5845
+ size: 20,
5846
+ stroke: 2
5847
+ },
5848
+ ["small" /* Small */]: {
5849
+ size: 16,
5850
+ stroke: 2.3
5851
+ },
5852
+ ["tiny" /* Tiny */]: {
5853
+ size: 12,
5854
+ stroke: 2.6
5855
+ }
5854
5856
  },
5855
- ["positive" /* Positive */]: {
5856
- icon: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(import_icons_react.IconCircleCheck, {
5857
- ...defaultMediumIconProps
5858
- }, undefined, false, undefined, this),
5859
- variant: "light",
5860
- color: "green",
5861
- title: "Success",
5862
- ...customTheme?.alertProps?.positive
5863
- }
5864
- },
5865
- iconProps: {
5866
- ["medium" /* Medium */]: {
5867
- ...defaultMediumIconProps,
5868
- ...customTheme?.iconProps?.medium
5857
+ ScrollArea: {
5858
+ scrollbarSize: 8,
5859
+ scrollHideDelay: 20,
5860
+ type: "hover"
5869
5861
  },
5870
- ["tiny" /* Tiny */]: {
5871
- size: 14,
5872
- stroke: 3,
5873
- ...customTheme?.iconProps?.tiny
5862
+ HoverCard: {
5863
+ shadow: "md",
5864
+ withArrow: true,
5865
+ transitionProps: {
5866
+ transition: "pop",
5867
+ duration: transitionDurations.short
5868
+ },
5869
+ styles: {
5870
+ dropdown: { border: "none", background: transparentBackground },
5871
+ arrow: { border: "none" }
5872
+ }
5873
+ },
5874
+ Tooltip: {
5875
+ withArrow: true
5874
5876
  }
5875
- },
5876
- primaryGutter: "md"
5877
+ }
5877
5878
  };
5879
+ return import_lodash2.merge(defaultTheme, customTheme);
5878
5880
  };
5879
5881
  var themeContext = import_react4.default.createContext(createRemoraidTheme());
5880
5882
  var useRemoraidTheme = () => {
@@ -5906,6 +5908,7 @@ var import_react_cookie2 = require("react-cookie");
5906
5908
  var import_react6 = require("react");
5907
5909
 
5908
5910
  // src/core/components/UserExperienceProviderWrapper/index.tsx
5911
+ var import_lodash3 = __toESM(require_lodash());
5909
5912
  var import_react5 = require("react");
5910
5913
  var import_react_cookie = require("react-cookie");
5911
5914
  var jsx_dev_runtime4 = require("react/jsx-dev-runtime");
@@ -5924,10 +5927,7 @@ function UserExperienceProviderWrapper({
5924
5927
  initialValue
5925
5928
  }) {
5926
5929
  const [cookies, setCookie] = import_react_cookie.useCookies();
5927
- let initialUserExperience = defaultUserExperience;
5928
- if (typeof initialValue === "object" && typeof initialUserExperience === "object") {
5929
- initialUserExperience = { ...initialUserExperience, ...initialValue };
5930
- }
5930
+ const initialUserExperience = import_lodash3.merge(defaultUserExperience, initialValue);
5931
5931
  const [userExperience, setUserExperience] = import_react5.useState(initialUserExperience);
5932
5932
  const [processedCookie, setProcessedCookie] = import_react5.useState(false);
5933
5933
  const updateUserExperience = (p) => {
@@ -6089,6 +6089,7 @@ function NavbarLink({
6089
6089
  href,
6090
6090
  indicator
6091
6091
  }) {
6092
+ const theme = useRemoraidTheme();
6092
6093
  const [isHoveringRoleIndicator, setIsHoveringRoleIndicator] = import_react9.useState(false);
6093
6094
  const iconProps = {
6094
6095
  size: iconSize,
@@ -6097,9 +6098,9 @@ function NavbarLink({
6097
6098
  const Icon2 = icon ?? import_icons_react2.IconLink;
6098
6099
  if (!href) {
6099
6100
  return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(import_core3.Tooltip, {
6101
+ ...theme.componentsProps.Tooltip,
6100
6102
  label,
6101
6103
  position: "right",
6102
- transitionProps: { duration: 0 },
6103
6104
  children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(import_core3.UnstyledButton, {
6104
6105
  onClick,
6105
6106
  className: "remoraid-navbar-minimal-link",
@@ -6125,9 +6126,9 @@ function NavbarLink({
6125
6126
  }, undefined, false, undefined, this)
6126
6127
  }, undefined, false, undefined, this);
6127
6128
  return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(import_core3.Tooltip, {
6129
+ ...theme.componentsProps.Tooltip,
6128
6130
  label,
6129
6131
  position: "right",
6130
- transitionProps: { duration: 0 },
6131
6132
  children: indicator === undefined ? button : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(import_core3.Indicator, {
6132
6133
  withBorder: true,
6133
6134
  size: 13,
@@ -6324,7 +6325,7 @@ function PageContainer({
6324
6325
  }
6325
6326
 
6326
6327
  // src/core/components/FrameLayout/Element/index.tsx
6327
- var import_lodash = __toESM(require_lodash());
6328
+ var import_lodash4 = __toESM(require_lodash());
6328
6329
  var jsx_dev_runtime12 = require("react/jsx-dev-runtime");
6329
6330
  function Element2({
6330
6331
  section,
@@ -6364,7 +6365,7 @@ function Element2({
6364
6365
  target: layout.sections[section],
6365
6366
  children: includeContainer ? /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(import_core6.Box, {
6366
6367
  "data-hidden": hidden,
6367
- ...import_lodash.merge(containerProps, componentsProps?.container),
6368
+ ...import_lodash4.merge(containerProps, componentsProps?.container),
6368
6369
  className: clsx_default("remoraid-frame-layout-element", containerProps?.className, componentsProps?.container?.className),
6369
6370
  children: element
6370
6371
  }, undefined, false, undefined, this) : element
@@ -6372,6 +6373,7 @@ function Element2({
6372
6373
  }
6373
6374
 
6374
6375
  // src/core/components/FrameLayout/index.tsx
6376
+ var import_lodash5 = __toESM(require_lodash());
6375
6377
  var jsx_dev_runtime13 = require("react/jsx-dev-runtime");
6376
6378
  var layoutContext = import_react10.createContext(null);
6377
6379
  var useFrameLayout = () => {
@@ -6486,8 +6488,7 @@ function FrameLayout({
6486
6488
  }, undefined, false, undefined, this),
6487
6489
  includeScrollArea ? /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(import_core7.ScrollArea, {
6488
6490
  flex: 1,
6489
- ...theme.scrollAreaProps,
6490
- ...componentsProps?.ScrollArea,
6491
+ ...import_lodash5.merge({}, theme.componentsProps.ScrollArea, componentsProps?.ScrollArea),
6491
6492
  children: contentSection
6492
6493
  }, undefined, false, undefined, this) : contentSection,
6493
6494
  /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(import_core7.Stack, {
@@ -6517,7 +6518,7 @@ var FrameLayout_default = Object.assign(FrameLayout, {
6517
6518
  });
6518
6519
 
6519
6520
  // src/core/components/AppShell/index.tsx
6520
- var import_lodash2 = __toESM(require_lodash());
6521
+ var import_lodash6 = __toESM(require_lodash());
6521
6522
  var jsx_dev_runtime14 = require("react/jsx-dev-runtime");
6522
6523
  var remoraidAppShellLayoutId = "remoraid-app-shell";
6523
6524
  var defaultAppShellNavbarPositions = { ["minimal" /* Minimal */]: "left" /* Left */ };
@@ -6570,13 +6571,13 @@ function AppShell({
6570
6571
  navbarPosition !== null && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(FrameLayout_default.Element, {
6571
6572
  section: navbarPosition,
6572
6573
  includeContainer: false,
6573
- ...import_lodash2.merge(navbarLayoutElementProps, componentsProps?.navbarLayoutElement),
6574
+ ...import_lodash6.merge(navbarLayoutElementProps, componentsProps?.navbarLayoutElement),
6574
6575
  children: navbar
6575
6576
  }, undefined, false, undefined, this),
6576
6577
  children,
6577
6578
  footerPosition !== null && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(FrameLayout_default.Element, {
6578
6579
  section: footerPosition,
6579
- ...import_lodash2.merge(footerLayoutElementProps, componentsProps?.footerLayoutElement),
6580
+ ...import_lodash6.merge(footerLayoutElementProps, componentsProps?.footerLayoutElement),
6580
6581
  children: footer
6581
6582
  }, undefined, false, undefined, this)
6582
6583
  ]
@@ -6637,6 +6638,7 @@ var import_icons_react4 = require("@tabler/icons-react");
6637
6638
 
6638
6639
  // src/core/components/ScrollableChipGroup/index.tsx
6639
6640
  var import_core10 = require("@mantine/core");
6641
+ var import_lodash7 = __toESM(require_lodash());
6640
6642
  var jsx_dev_runtime16 = require("react/jsx-dev-runtime");
6641
6643
  function ScrollableChipGroup({
6642
6644
  value,
@@ -6648,8 +6650,7 @@ function ScrollableChipGroup({
6648
6650
  const children = asChildrenOfType(import_core10.Chip, childrenProp, "Check children passed to 'ScrollableChipGroup' component.");
6649
6651
  const theme = useRemoraidTheme();
6650
6652
  return /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(import_core10.ScrollArea, {
6651
- ...theme.scrollAreaProps,
6652
- ...componentsProps?.scrollArea,
6653
+ ...import_lodash7.merge({}, theme.componentsProps.ScrollArea, componentsProps?.ScrollArea),
6653
6654
  children: /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(import_core10.Chip.Group, {
6654
6655
  value,
6655
6656
  onChange,
@@ -6700,7 +6701,7 @@ function WidgetSelectionHeader({
6700
6701
  onChange: (value) => {
6701
6702
  updateWidgetSelectionBulk(page.pageId, value);
6702
6703
  },
6703
- componentsProps: { scrollArea: { flex: 1 } },
6704
+ componentsProps: { ScrollArea: { flex: 1 } },
6704
6705
  children: Object.keys(widgets).map((widgetId) => {
6705
6706
  const widget = widgets[widgetId] ?? getDefaultWidgetContext({ widgetId });
6706
6707
  return /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(import_core11.Chip, {
@@ -6708,7 +6709,7 @@ function WidgetSelectionHeader({
6708
6709
  size: "sm",
6709
6710
  disabled: disabledWidgets && disabledWidgets.includes(widgetId),
6710
6711
  icon: /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(import_icons_react4.IconCheck, {
6711
- ...theme.iconProps.tiny
6712
+ ...theme.componentsProps.icons.small
6712
6713
  }, undefined, false, undefined, this),
6713
6714
  children: widget.name
6714
6715
  }, widgetId, false, undefined, this);
@@ -6723,6 +6724,7 @@ var import_react12 = __toESM(require("react"));
6723
6724
 
6724
6725
  // src/core/components/BadgeMinimal/index.tsx
6725
6726
  var import_core12 = require("@mantine/core");
6727
+ var import_lodash8 = __toESM(require_lodash());
6726
6728
  var jsx_dev_runtime18 = require("react/jsx-dev-runtime");
6727
6729
  function BadgeMinimal({
6728
6730
  label,
@@ -6738,9 +6740,7 @@ function BadgeMinimal({
6738
6740
  timingFunction: "ease",
6739
6741
  ...componentsProps?.transition,
6740
6742
  children: (transitionStyle) => /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(import_core12.Tooltip, {
6741
- disabled: !tooltip,
6742
- label: tooltip,
6743
- ...componentsProps?.tooltip,
6743
+ ...import_lodash8.merge({}, theme.componentsProps.Tooltip, { label: tooltip, disabled: !Boolean(tooltip) }, componentsProps?.tooltip),
6744
6744
  children: /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(import_core12.Badge, {
6745
6745
  variant: "default",
6746
6746
  ...componentsProps?.badge,
@@ -6756,84 +6756,112 @@ function BadgeMinimal({
6756
6756
  }
6757
6757
 
6758
6758
  // src/core/components/BadgeGroup/index.tsx
6759
+ var import_lodash9 = __toESM(require_lodash());
6759
6760
  var jsx_dev_runtime19 = require("react/jsx-dev-runtime");
6760
6761
  var react = require("react");
6761
6762
  function BadgeGroup({
6762
6763
  badges: badgesProp,
6763
- gap,
6764
- breakpoint,
6764
+ gap = "xs",
6765
+ breakpoint: breakpointProp,
6765
6766
  componentsProps
6766
6767
  }) {
6767
- const theme = useRemoraidTheme();
6768
6768
  const badges = badgesProp.map((badge) => asElementOrPropsOfType(BadgeMinimal, badge, "Check 'badges' property passed to 'BadgeGroup'."));
6769
+ const theme = useRemoraidTheme();
6770
+ const breakpoint = breakpointProp ?? theme.breakpoints.badgeGroupCollapse;
6769
6771
  const numVisibleBadges = badges.filter((badge) => isValidElementOfType(BadgeMinimal, badge) ? badge.props.mounted : badge.mounted !== false).length;
6772
+ const badgesElement = badges.map((badge, i) => {
6773
+ if (isValidElementOfType(BadgeMinimal, badge)) {
6774
+ return badge;
6775
+ }
6776
+ return /* @__PURE__ */ react.createElement(BadgeMinimal, {
6777
+ ...badge,
6778
+ key: i
6779
+ });
6780
+ });
6770
6781
  return /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(jsx_dev_runtime19.Fragment, {
6771
6782
  children: [
6772
6783
  /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.Group, {
6773
- gap: gap ?? "xs",
6784
+ gap,
6774
6785
  wrap: "nowrap",
6775
- visibleFrom: breakpoint ?? theme.breakpoints.badgeGroupCollapse,
6776
- children: badges.map((badge, i) => {
6777
- if (isValidElementOfType(BadgeMinimal, badge)) {
6778
- return badge;
6779
- } else if (import_react12.isValidElement(badge)) {
6780
- throw new TypeError(`Expected React element of type ${BadgeMinimal.name}, but received type: ${typeof badge.type === "string" ? badge.type : badge.type?.name ?? "unknown"}. Check the 'badges' property of this widget.`);
6781
- }
6782
- return /* @__PURE__ */ react.createElement(BadgeMinimal, {
6783
- ...badge,
6784
- key: i
6785
- });
6786
- })
6786
+ visibleFrom: numVisibleBadges > 1 ? breakpoint : undefined,
6787
+ ...componentsProps?.container,
6788
+ className: clsx_default("remoraid-badge-group", componentsProps?.container?.className),
6789
+ children: badgesElement
6787
6790
  }, undefined, false, undefined, this),
6788
- /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.Tooltip, {
6789
- label: `${numVisibleBadges} badge${numVisibleBadges === 1 ? "" : "s"}`,
6790
- ...componentsProps?.tooltip,
6791
- children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.Badge, {
6792
- hiddenFrom: breakpoint ?? theme.breakpoints.badgeGroupCollapse,
6793
- hidden: numVisibleBadges === 0,
6794
- variant: "light",
6795
- circle: true,
6796
- style: { cursor: "pointer" },
6797
- ...componentsProps?.cumulativeBadge,
6798
- children: numVisibleBadges
6799
- }, undefined, false, undefined, this)
6791
+ /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.Transition, {
6792
+ mounted: numVisibleBadges > 1,
6793
+ transition: "fade",
6794
+ duration: theme.transitionDurations.short,
6795
+ timingFunction: "ease",
6796
+ ...componentsProps?.cumulativeBadgeTransition,
6797
+ children: (transitionStyle) => /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.HoverCard, {
6798
+ ...import_lodash9.merge({}, theme.componentsProps.HoverCard, componentsProps?.HoverCard),
6799
+ children: [
6800
+ /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.HoverCard.Target, {
6801
+ children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.Badge, {
6802
+ hiddenFrom: breakpoint,
6803
+ variant: "dot",
6804
+ ...componentsProps?.cumulativeBadge,
6805
+ style: {
6806
+ cursor: "pointer",
6807
+ ...import_lodash9.merge(transitionStyle, componentsProps?.cumulativeBadge?.style)
6808
+ },
6809
+ children: [
6810
+ numVisibleBadges,
6811
+ " badges"
6812
+ ]
6813
+ }, undefined, true, undefined, this)
6814
+ }, undefined, false, undefined, this),
6815
+ /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.HoverCard.Dropdown, {
6816
+ p: gap,
6817
+ children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(import_core13.Stack, {
6818
+ gap,
6819
+ ...componentsProps?.hoverContainer,
6820
+ children: badgesElement
6821
+ }, undefined, false, undefined, this)
6822
+ }, undefined, false, undefined, this)
6823
+ ]
6824
+ }, undefined, true, undefined, this)
6800
6825
  }, undefined, false, undefined, this)
6801
6826
  ]
6802
6827
  }, undefined, true, undefined, this);
6803
6828
  }
6804
6829
  // src/core/components/AlertMinimal/index.tsx
6805
6830
  var import_core14 = require("@mantine/core");
6831
+ var import_lodash10 = __toESM(require_lodash());
6806
6832
  var jsx_dev_runtime20 = require("react/jsx-dev-runtime");
6807
6833
  function AlertMinimal({
6808
- title,
6809
6834
  category,
6810
- text,
6811
- onClose,
6812
- mounted = true,
6813
- mt,
6814
- mb,
6815
- componentsProps,
6816
- children
6835
+ children,
6836
+ ...props
6817
6837
  }) {
6818
6838
  const theme = useRemoraidTheme();
6839
+ const {
6840
+ title,
6841
+ text,
6842
+ color,
6843
+ onClose,
6844
+ mounted = true,
6845
+ icon: Icon2,
6846
+ iconSize = "medium" /* Medium */,
6847
+ componentsProps
6848
+ } = import_lodash10.merge({}, theme.componentsProps.alerts[category], props);
6819
6849
  return /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(import_core14.Transition, {
6820
- mounted: mounted !== false,
6850
+ mounted,
6821
6851
  transition: "fade",
6822
6852
  duration: theme.transitionDurations.short,
6823
6853
  timingFunction: "ease",
6824
6854
  ...componentsProps?.transition,
6825
6855
  children: (transitionStyle) => /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(import_core14.Alert, {
6826
- ...theme.alertProps[category],
6827
- title: title ?? theme.alertProps[category].title,
6828
- withCloseButton: onClose !== undefined,
6856
+ title,
6857
+ color,
6858
+ variant: "light",
6829
6859
  onClose,
6830
- mt,
6831
- mb,
6832
- ...componentsProps?.alert,
6833
- style: {
6834
- ...transitionStyle,
6835
- ...componentsProps?.alert?.style ?? theme.alertProps[category].style
6836
- },
6860
+ withCloseButton: onClose !== undefined,
6861
+ icon: Icon2 ? /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Icon2, {
6862
+ ...import_lodash10.merge({}, theme.componentsProps.icons[iconSize], componentsProps?.icon)
6863
+ }, undefined, false, undefined, this) : undefined,
6864
+ style: import_lodash10.merge(transitionStyle, componentsProps?.alert?.style),
6837
6865
  children: [
6838
6866
  text,
6839
6867
  children
@@ -6844,30 +6872,32 @@ function AlertMinimal({
6844
6872
  // src/core/components/RemoraidButton/index.tsx
6845
6873
  var import_core15 = require("@mantine/core");
6846
6874
  var import_icons_react5 = require("@tabler/icons-react");
6847
- var import_react13 = require("react");
6875
+ var import_lodash11 = __toESM(require_lodash());
6848
6876
  var jsx_dev_runtime21 = require("react/jsx-dev-runtime");
6849
6877
  function RemoraidButton({
6850
6878
  label,
6851
6879
  responsive: ResponsiveProp,
6852
6880
  breakpoint: breakpointProp,
6853
6881
  collapsed: collapsedProp,
6854
- size,
6882
+ size = "sm",
6855
6883
  color,
6856
6884
  onClick,
6857
6885
  loading,
6858
6886
  variant = "default",
6859
6887
  mounted = true,
6860
6888
  icon: iconProp,
6861
- iconSize = "medium" /* Medium */,
6889
+ iconSize: iconSizeProp,
6862
6890
  componentsProps
6863
6891
  }) {
6864
6892
  const responsive = ResponsiveProp ?? true;
6865
6893
  const breakpoint = breakpointProp ?? "md";
6866
6894
  const collapsed = collapsedProp ?? false;
6867
- const icon = iconProp ?? import_icons_react5.IconClick;
6895
+ const iconSize = iconSizeProp ?? getDefaultButtonIconSize(size);
6896
+ const Icon3 = iconProp ?? import_icons_react5.IconClick;
6868
6897
  const theme = useRemoraidTheme();
6869
- const iconProps = { ...theme.iconProps[iconSize], ...componentsProps?.icon };
6870
- const iconElement = import_react13.createElement(icon, iconProps);
6898
+ const iconElement = /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Icon3, {
6899
+ ...import_lodash11.merge({}, theme.componentsProps.icons[iconSize], componentsProps?.icon)
6900
+ }, undefined, false, undefined, this);
6871
6901
  return /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(import_core15.Transition, {
6872
6902
  mounted,
6873
6903
  transition: "fade",
@@ -6877,8 +6907,7 @@ function RemoraidButton({
6877
6907
  children: (transitionStyle) => /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
6878
6908
  children: [
6879
6909
  /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(import_core15.Tooltip, {
6880
- label,
6881
- ...componentsProps?.tooltip,
6910
+ ...import_lodash11.merge({}, theme.componentsProps.Tooltip, { label }, componentsProps?.tooltip),
6882
6911
  children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(import_core15.ActionIcon, {
6883
6912
  "aria-label": label,
6884
6913
  variant,
@@ -6921,6 +6950,7 @@ function RemoraidButton({
6921
6950
  // src/core/components/Controls/ControlButton/index.tsx
6922
6951
  var import_core16 = require("@mantine/core");
6923
6952
  var import_icons_react6 = require("@tabler/icons-react");
6953
+ var import_lodash12 = __toESM(require_lodash());
6924
6954
  var jsx_dev_runtime22 = require("react/jsx-dev-runtime");
6925
6955
  function ControlButton({
6926
6956
  icon: Icon4 = import_icons_react6.IconClick,
@@ -6936,14 +6966,12 @@ function ControlButton({
6936
6966
  const theme = useRemoraidTheme();
6937
6967
  return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(import_core16.Transition, {
6938
6968
  mounted,
6939
- transition: "pop-top-right",
6969
+ transition: "fade",
6940
6970
  duration: theme.transitionDurations.short,
6941
6971
  timingFunction: "ease",
6942
6972
  ...componentsProps?.transition,
6943
6973
  children: (transitionStyle) => /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(import_core16.Tooltip, {
6944
- label: tooltip,
6945
- disabled: !Boolean(tooltip),
6946
- ...componentsProps?.tooltip,
6974
+ ...import_lodash12.merge({}, theme.componentsProps.Tooltip, { label: tooltip, disabled: !Boolean(tooltip) }, componentsProps?.tooltip),
6947
6975
  children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(import_core16.ActionIcon, {
6948
6976
  "data-control-button": true,
6949
6977
  size,
@@ -6952,13 +6980,11 @@ function ControlButton({
6952
6980
  radius: "xl",
6953
6981
  ...componentsProps?.button,
6954
6982
  style: {
6955
- ...transitionStyle,
6956
6983
  order,
6957
- ...componentsProps?.button?.style
6984
+ ...import_lodash12.merge(transitionStyle, componentsProps?.button?.style)
6958
6985
  },
6959
6986
  children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Icon4, {
6960
- ...theme.iconProps[iconSize],
6961
- ...componentsProps?.icon
6987
+ ...import_lodash12.merge({}, theme.componentsProps.icons[iconSize], componentsProps?.icon)
6962
6988
  }, undefined, false, undefined, this)
6963
6989
  }, undefined, false, undefined, this)
6964
6990
  }, undefined, false, undefined, this)
@@ -6966,10 +6992,10 @@ function ControlButton({
6966
6992
  }
6967
6993
 
6968
6994
  // src/core/components/Controls/index.tsx
6969
- var import_react14 = require("react");
6995
+ var import_react13 = require("react");
6970
6996
  var import_core17 = require("@mantine/core");
6971
6997
  var import_icons_react7 = require("@tabler/icons-react");
6972
- var import_lodash3 = __toESM(require_lodash());
6998
+ var import_lodash13 = __toESM(require_lodash());
6973
6999
  var jsx_dev_runtime23 = require("react/jsx-dev-runtime");
6974
7000
  function Controls({
6975
7001
  groupRef,
@@ -6984,12 +7010,12 @@ function Controls({
6984
7010
  const additionalButtons = additionalButtonsProp?.map((additionalButton) => asElementOrPropsOfType(ControlButton, additionalButton, "Check the 'additionalButtons' property of 'Controls'."));
6985
7011
  const children = asChildrenOfType(ControlButton, childrenProp, "Check children passed to 'Controls' component.");
6986
7012
  const theme = useRemoraidTheme();
6987
- const [pos, setPos] = import_react14.useState({
7013
+ const [pos, setPos] = import_react13.useState({
6988
7014
  x: 0,
6989
7015
  y: 0
6990
7016
  });
6991
- const offsetRef = import_react14.useRef({ x: 0, y: 0 });
6992
- const containerRef = import_react14.useRef(null);
7017
+ const offsetRef = import_react13.useRef({ x: 0, y: 0 });
7018
+ const containerRef = import_react13.useRef(null);
6993
7019
  const clamp = (v, min, max) => {
6994
7020
  return Math.min(Math.max(v, min), max);
6995
7021
  };
@@ -7048,7 +7074,7 @@ function Controls({
7048
7074
  style: {
7049
7075
  right: pos.x,
7050
7076
  top: pos.y,
7051
- ...import_lodash3.merge(transitionStyle, componentsProps?.container?.style)
7077
+ ...import_lodash13.merge(transitionStyle, componentsProps?.container?.style)
7052
7078
  },
7053
7079
  className: clsx_default("remoraid-controls", componentsProps?.container?.className),
7054
7080
  children: /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(import_core17.Group, {
@@ -7059,9 +7085,7 @@ function Controls({
7059
7085
  className: clsx_default("remoraid-controls-group", componentsProps?.group?.className),
7060
7086
  children: [
7061
7087
  /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(import_icons_react7.IconGripHorizontal, {
7062
- order: -100,
7063
- color: "var(--mantine-color-default-border)",
7064
- ...import_lodash3.merge(theme.iconProps[iconSize], componentsProps?.gripIcon)
7088
+ ...import_lodash13.merge({}, theme.componentsProps.icons[iconSize], { order: -100, color: "var(--mantine-color-default-border)" }, componentsProps?.gripIcon)
7065
7089
  }, undefined, false, undefined, this),
7066
7090
  children,
7067
7091
  additionalButtons && additionalButtons.map((button, i) => {
@@ -7079,11 +7103,11 @@ function Controls({
7079
7103
  }
7080
7104
  // src/core/components/Widget/WidgetWrapper/index.tsx
7081
7105
  var import_core19 = require("@mantine/core");
7082
- var import_react16 = require("react");
7106
+ var import_react15 = require("react");
7083
7107
  var import_icons_react9 = require("@tabler/icons-react");
7084
7108
 
7085
7109
  // src/core/components/Pinnable/index.tsx
7086
- var import_react15 = require("react");
7110
+ var import_react14 = require("react");
7087
7111
  var import_icons_react8 = require("@tabler/icons-react");
7088
7112
  var import_core18 = require("@mantine/core");
7089
7113
  var jsx_dev_runtime24 = require("react/jsx-dev-runtime");
@@ -7099,13 +7123,13 @@ function Pinnable({
7099
7123
  }) {
7100
7124
  const layoutType = layoutTypeProp ?? "frame" /* Frame */;
7101
7125
  const { layouts } = useLayouts();
7102
- const [pinned, setPinned] = import_react15.useState(initialValue);
7103
- const containerRef = import_react15.useRef(null);
7126
+ const [pinned, setPinned] = import_react14.useState(initialValue);
7127
+ const containerRef = import_react14.useRef(null);
7104
7128
  const layout = layouts[layoutId ?? remoraidAppShellLayoutId];
7105
7129
  if (layout && layout.type !== layoutType) {
7106
7130
  throw new TypeError(`Prop 'layoutId' in '${Pinnable.name}' refers to a layout of type ${layout.type}, expected ${layoutType}. Leave 'layoutId' undefined, if you want to use the layout in '${AppShell_default.name}' as reference layout.`);
7107
7131
  }
7108
- const controlButton = import_react15.useMemo(() => /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(ControlButton, {
7132
+ const controlButton = import_react14.useMemo(() => /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(ControlButton, {
7109
7133
  icon: pinned ? import_icons_react8.IconPinnedOff : import_icons_react8.IconPin,
7110
7134
  tooltip: pinned ? "Unpin" : "Pin",
7111
7135
  color: "green",
@@ -7150,7 +7174,7 @@ function Pinnable({
7150
7174
  }
7151
7175
 
7152
7176
  // src/core/components/Widget/WidgetWrapper/index.tsx
7153
- var import_lodash4 = __toESM(require_lodash());
7177
+ var import_lodash14 = __toESM(require_lodash());
7154
7178
  var jsx_dev_runtime25 = require("react/jsx-dev-runtime");
7155
7179
  function WidgetWrapper({
7156
7180
  config,
@@ -7172,11 +7196,11 @@ function WidgetWrapper({
7172
7196
  const page = usePage();
7173
7197
  const theme = useRemoraidTheme();
7174
7198
  const mounted = page !== null && isWidgetSelected(page.pageId, config.widgetId);
7175
- const [controlsContainer, setControlsContainer] = import_react16.useState(null);
7176
- const [hidden, setHidden] = import_react16.useState(!mounted);
7199
+ const [controlsContainer, setControlsContainer] = import_react15.useState(null);
7200
+ const [hidden, setHidden] = import_react15.useState(!mounted);
7177
7201
  const pageRegistered = page ? isPageRegistered(page.pageId) : false;
7178
- const containerRef = import_react16.useRef(null);
7179
- const controlsContainerRef = import_react16.useCallback((n) => {
7202
+ const containerRef = import_react15.useRef(null);
7203
+ const controlsContainerRef = import_react15.useCallback((n) => {
7180
7204
  setControlsContainer(n);
7181
7205
  }, [setControlsContainer]);
7182
7206
  const handleEnter = () => {
@@ -7216,7 +7240,7 @@ function WidgetWrapper({
7216
7240
  }
7217
7241
  componentsProps?.container?.onMouseLeave?.(e);
7218
7242
  },
7219
- style: import_lodash4.merge(transitionStyle, componentsProps?.container?.style),
7243
+ style: import_lodash14.merge(transitionStyle, componentsProps?.container?.style),
7220
7244
  id: config.widgetId,
7221
7245
  children: [
7222
7246
  /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Controls, {
@@ -7280,7 +7304,7 @@ function WidgetWrapper({
7280
7304
  children: element
7281
7305
  }, undefined, false, undefined, this);
7282
7306
  }
7283
- import_react16.useEffect(() => {
7307
+ import_react15.useEffect(() => {
7284
7308
  if (!page) {
7285
7309
  return;
7286
7310
  }
@@ -7288,7 +7312,7 @@ function WidgetWrapper({
7288
7312
  registerWidget(page.pageId, config);
7289
7313
  }
7290
7314
  }, [pageRegistered]);
7291
- import_react16.useEffect(() => {
7315
+ import_react15.useEffect(() => {
7292
7316
  if (mounted) {
7293
7317
  const id = requestAnimationFrame(() => {
7294
7318
  setHidden(false);
@@ -7347,8 +7371,9 @@ function Widget({
7347
7371
  children: [
7348
7372
  /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(import_core20.Title, {
7349
7373
  order: 1,
7350
- size: "h3",
7374
+ size: "h2",
7351
7375
  lineClamp: 1,
7376
+ ...componentsProps?.title,
7352
7377
  children: title ?? id
7353
7378
  }, undefined, false, undefined, this),
7354
7379
  badges !== undefined && /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(BadgeGroup, {
@@ -7403,7 +7428,6 @@ function Widget({
7403
7428
  }, undefined, true, undefined, this);
7404
7429
  }
7405
7430
  // src/core/components/NotFoundPage/index.tsx
7406
- var import_core21 = require("@mantine/core");
7407
7431
  var import_navigation3 = require("next/navigation");
7408
7432
  var jsx_dev_runtime27 = require("react/jsx-dev-runtime");
7409
7433
  function NotFoundPage({
@@ -7412,13 +7436,12 @@ function NotFoundPage({
7412
7436
  componentsProps
7413
7437
  }) {
7414
7438
  const pathname = import_navigation3.usePathname();
7415
- const theme = useRemoraidTheme();
7416
7439
  return /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Page, {
7417
7440
  name: "Not Found",
7418
7441
  ...componentsProps?.page,
7419
7442
  children: [
7420
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(import_core21.Alert, {
7421
- ...theme.alertProps.negative,
7443
+ /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(AlertMinimal, {
7444
+ category: "negative" /* Negative */,
7422
7445
  title: "404 - Page Not Found",
7423
7446
  children: message ?? `Could not find page ${pathname}.`
7424
7447
  }, undefined, false, undefined, this),
@@ -7427,48 +7450,54 @@ function NotFoundPage({
7427
7450
  }, undefined, true, undefined, this);
7428
7451
  }
7429
7452
  // src/core/components/EnvironmentShell/index.tsx
7430
- var import_core22 = require("@mantine/core");
7431
7453
  var jsx_dev_runtime28 = require("react/jsx-dev-runtime");
7454
+ var EnvironmentShellVariant;
7455
+ ((EnvironmentShellVariant2) => {
7456
+ EnvironmentShellVariant2["Alert"] = "alert";
7457
+ EnvironmentShellVariant2["Error"] = "error";
7458
+ EnvironmentShellVariant2["Silent"] = "silent";
7459
+ })(EnvironmentShellVariant ||= {});
7432
7460
  function EnvironmentShell({
7433
- children,
7434
7461
  environment,
7462
+ variant = "alert" /* Alert */,
7435
7463
  message,
7436
- m,
7437
- mt,
7438
- withContainer,
7439
- componentsProps
7464
+ includeAlertContainer = false,
7465
+ componentsProps,
7466
+ children
7440
7467
  }) {
7441
- const theme = useRemoraidTheme();
7442
7468
  const undefinedKeys = Object.keys(environment).filter((key) => environment[key] === undefined);
7443
- const alertTitle = `Please Specify Environment Variable${undefinedKeys.length > 1 ? "s" : ""}`;
7444
- const alertMessage = `Components could not be rendered because the following environment variables are not specified: ${undefinedKeys.join(", ")}.`;
7445
- const alert = /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(import_core22.Alert, {
7446
- ...theme.alertProps.neutral,
7447
- title: alertTitle,
7448
- m,
7449
- mt,
7450
- children: message ?? alertMessage
7469
+ const defaultMessage = `Components could not be rendered because the following environment variable${undefinedKeys.length > 1 ? "s" : ""} are not specified: ${undefinedKeys.join(", ")}.`;
7470
+ const alertElement = /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(AlertMinimal, {
7471
+ mounted: undefinedKeys.length > 0,
7472
+ title: `Please specify environment variable${undefinedKeys.length > 1 ? "s" : ""}`,
7473
+ category: "negative" /* Negative */,
7474
+ text: message ?? defaultMessage,
7475
+ ...componentsProps?.alert
7451
7476
  }, undefined, false, undefined, this);
7452
7477
  if (undefinedKeys.length === 0) {
7453
- return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(jsx_dev_runtime28.Fragment, {
7454
- children
7455
- }, undefined, false, undefined, this);
7478
+ return children;
7456
7479
  }
7457
- if (withContainer) {
7458
- return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(PageContainer, {
7459
- componentsProps: { container: componentsProps?.container },
7460
- children: alert
7461
- }, undefined, false, undefined, this);
7480
+ if (variant === "alert" /* Alert */) {
7481
+ if (includeAlertContainer) {
7482
+ return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(PageContainer, {
7483
+ ...componentsProps?.alertContainer,
7484
+ children: alertElement
7485
+ }, undefined, false, undefined, this);
7486
+ }
7487
+ return alertElement;
7488
+ }
7489
+ if (variant === "error" /* Error */) {
7490
+ throw new ReferenceError(message ?? defaultMessage);
7462
7491
  }
7463
- return alert;
7492
+ return null;
7464
7493
  }
7465
7494
  // src/core/components/SettingsWidget/index.tsx
7466
- var import_react17 = require("react");
7495
+ var import_react16 = require("react");
7467
7496
  var import_icons_react11 = require("@tabler/icons-react");
7468
7497
 
7469
7498
  // src/core/components/SettingsWidget/SaveButton/index.tsx
7470
7499
  var import_icons_react10 = require("@tabler/icons-react");
7471
- var import_core23 = require("@mantine/core");
7500
+ var import_core21 = require("@mantine/core");
7472
7501
  var jsx_dev_runtime29 = require("react/jsx-dev-runtime");
7473
7502
  function SaveButton({
7474
7503
  onSaveChanges,
@@ -7491,7 +7520,7 @@ function SaveButton({
7491
7520
  }
7492
7521
  }, undefined, false, undefined, this);
7493
7522
  if (insideContainer !== false) {
7494
- return /* @__PURE__ */ jsx_dev_runtime29.jsxDEV(import_core23.Group, {
7523
+ return /* @__PURE__ */ jsx_dev_runtime29.jsxDEV(import_core21.Group, {
7495
7524
  w: "100%",
7496
7525
  justify: "flex-end",
7497
7526
  mt: "md",
@@ -7505,9 +7534,9 @@ function SaveButton({
7505
7534
  // src/core/components/SettingsWidget/index.tsx
7506
7535
  var jsx_dev_runtime30 = require("react/jsx-dev-runtime");
7507
7536
  var defaultSettingsWidgetContext = {};
7508
- var settingsWidgetContext = import_react17.createContext(defaultSettingsWidgetContext);
7537
+ var settingsWidgetContext = import_react16.createContext(defaultSettingsWidgetContext);
7509
7538
  var useSettingsWidgetContext = () => {
7510
- return import_react17.useContext(settingsWidgetContext);
7539
+ return import_react16.useContext(settingsWidgetContext);
7511
7540
  };
7512
7541
  function SettingsWidget({
7513
7542
  children,
@@ -7521,7 +7550,6 @@ function SettingsWidget({
7521
7550
  children: /* @__PURE__ */ jsx_dev_runtime30.jsxDEV(Widget, {
7522
7551
  title: "Settings",
7523
7552
  id: "settings",
7524
- mt: "md",
7525
7553
  ...widgetProps,
7526
7554
  buttons: [
7527
7555
  ...onRestoreDefaultValues ? [
@@ -7554,27 +7582,27 @@ var SettingsWidget_default = Object.assign(SettingsWidget, {
7554
7582
  SaveButton
7555
7583
  });
7556
7584
  // src/core/components/SettingsWidget/SettingsTable/index.tsx
7557
- var import_react18 = require("react");
7558
- var import_core25 = require("@mantine/core");
7585
+ var import_react17 = require("react");
7586
+ var import_core23 = require("@mantine/core");
7559
7587
 
7560
7588
  // src/core/components/SettingsWidget/SettingsTable/Row/index.tsx
7561
- var import_core24 = require("@mantine/core");
7589
+ var import_core22 = require("@mantine/core");
7562
7590
  var jsx_dev_runtime31 = require("react/jsx-dev-runtime");
7563
7591
  function Row({
7564
7592
  children,
7565
7593
  label
7566
7594
  }) {
7567
7595
  const options = useSettingsTableOptions();
7568
- return /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core24.Table.Tr, {
7596
+ return /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core22.Table.Tr, {
7569
7597
  children: [
7570
- /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core24.Table.Th, {
7598
+ /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core22.Table.Th, {
7571
7599
  w: options.leftColumnWidth,
7572
- children: /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core24.Text, {
7600
+ children: /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core22.Text, {
7573
7601
  size: "sm",
7574
7602
  children: label
7575
7603
  }, undefined, false, undefined, this)
7576
7604
  }, undefined, false, undefined, this),
7577
- /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core24.Table.Td, {
7605
+ /* @__PURE__ */ jsx_dev_runtime31.jsxDEV(import_core22.Table.Td, {
7578
7606
  py: "xs",
7579
7607
  children
7580
7608
  }, undefined, false, undefined, this)
@@ -7587,9 +7615,9 @@ var jsx_dev_runtime32 = require("react/jsx-dev-runtime");
7587
7615
  var defaultSettingsTableOptions = {
7588
7616
  leftColumnWidth: "38.2%"
7589
7617
  };
7590
- var settingsTableOptionsContext = import_react18.createContext(defaultSettingsTableOptions);
7618
+ var settingsTableOptionsContext = import_react17.createContext(defaultSettingsTableOptions);
7591
7619
  var useSettingsTableOptions = () => {
7592
- return import_react18.useContext(settingsTableOptionsContext);
7620
+ return import_react17.useContext(settingsTableOptionsContext);
7593
7621
  };
7594
7622
  function SettingsTable({
7595
7623
  leftColumnWidth,
@@ -7601,12 +7629,12 @@ function SettingsTable({
7601
7629
  value: {
7602
7630
  leftColumnWidth: leftColumnWidth ?? defaultSettingsTableOptions.leftColumnWidth
7603
7631
  },
7604
- children: /* @__PURE__ */ jsx_dev_runtime32.jsxDEV(import_core25.Table, {
7632
+ children: /* @__PURE__ */ jsx_dev_runtime32.jsxDEV(import_core23.Table, {
7605
7633
  bg: theme.transparentBackground,
7606
7634
  withTableBorder: true,
7607
7635
  variant: "vertical",
7608
7636
  layout: "fixed",
7609
- children: /* @__PURE__ */ jsx_dev_runtime32.jsxDEV(import_core25.Table.Tbody, {
7637
+ children: /* @__PURE__ */ jsx_dev_runtime32.jsxDEV(import_core23.Table.Tbody, {
7610
7638
  children
7611
7639
  }, undefined, false, undefined, this)
7612
7640
  }, undefined, false, undefined, this)
@@ -7616,8 +7644,8 @@ var SettingsTable_default = Object.assign(SettingsTable, {
7616
7644
  Row
7617
7645
  });
7618
7646
  // src/core/components/NavbarSettingsWidget/index.tsx
7619
- var import_lodash5 = __toESM(require_lodash());
7620
- var import_core26 = require("@mantine/core");
7647
+ var import_lodash15 = __toESM(require_lodash());
7648
+ var import_core24 = require("@mantine/core");
7621
7649
  var import_icons_react12 = require("@tabler/icons-react");
7622
7650
  var jsx_dev_runtime33 = require("react/jsx-dev-runtime");
7623
7651
  var defaultNavbarSettingsWidgetId = "navbar-settings";
@@ -7642,13 +7670,13 @@ function NavbarSettingsWidget({
7642
7670
  navbar: initialUserExperience.navbar
7643
7671
  }));
7644
7672
  },
7645
- custom: !import_lodash5.isEqual(userExperience.navbar, initialUserExperience.navbar),
7673
+ custom: !import_lodash15.isEqual(userExperience.navbar, initialUserExperience.navbar),
7646
7674
  children: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(SettingsTable_default, {
7647
7675
  ...componentsProps?.table,
7648
7676
  children: [
7649
7677
  /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(SettingsTable_default.Row, {
7650
7678
  label: "Select which pages you want to display or hide",
7651
- children: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(import_core26.Chip.Group, {
7679
+ children: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(import_core24.Chip.Group, {
7652
7680
  multiple: true,
7653
7681
  value: app.navigablePages.filter((p) => !userExperience.navbar.hiddenPages.includes(p.href)).map((p) => p.href),
7654
7682
  onChange: (newValue) => {
@@ -7660,18 +7688,20 @@ function NavbarSettingsWidget({
7660
7688
  }
7661
7689
  }));
7662
7690
  },
7663
- children: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(import_core26.Group, {
7691
+ children: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(import_core24.Group, {
7664
7692
  justify: "flex-start",
7665
7693
  gap: "xs",
7666
- children: app.navigablePages.map((p) => ({ ...p, icon: p.icon ?? import_icons_react12.IconLink })).map((p, i) => /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(import_core26.Chip, {
7667
- value: p.href,
7668
- icon: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(p.icon, {
7669
- ...theme.iconProps.tiny,
7670
- color: theme.primaryColor
7671
- }, undefined, false, undefined, this),
7672
- variant: "outline",
7673
- children: p.label
7674
- }, i, false, undefined, this))
7694
+ children: app.navigablePages.map(({ label, href, icon: Icon4 = import_icons_react12.IconLink }, i) => {
7695
+ return /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(import_core24.Chip, {
7696
+ value: href,
7697
+ icon: /* @__PURE__ */ jsx_dev_runtime33.jsxDEV(Icon4, {
7698
+ ...theme.componentsProps.icons.small,
7699
+ color: "var(--mantine-primary-color-filled)"
7700
+ }, undefined, false, undefined, this),
7701
+ variant: "outline",
7702
+ children: label
7703
+ }, i, false, undefined, this);
7704
+ })
7675
7705
  }, undefined, false, undefined, this)
7676
7706
  }, undefined, false, undefined, this)
7677
7707
  }, "select-hidden-pages", false, undefined, this),
@@ -7688,7 +7718,7 @@ function NavbarSettingsWidget({
7688
7718
  }, undefined, false, undefined, this);
7689
7719
  }
7690
7720
  // src/core/components/ContextClusterProvider/index.tsx
7691
- var import_react19 = __toESM(require("react"));
7721
+ var import_react18 = __toESM(require("react"));
7692
7722
  var jsx_dev_runtime34 = require("react/jsx-dev-runtime");
7693
7723
  var createContextCluster = (generalDefaultValue, staticIds) => {
7694
7724
  const isStaticId = (id) => {
@@ -7700,16 +7730,16 @@ var createContextCluster = (generalDefaultValue, staticIds) => {
7700
7730
  const contexts = {};
7701
7731
  const defaultValues = {};
7702
7732
  const createContext8 = (id, defaultValue) => {
7703
- const context = import_react19.default.createContext(defaultValue ?? generalDefaultValue);
7733
+ const context = import_react18.default.createContext(defaultValue ?? generalDefaultValue);
7704
7734
  contexts[id] = context;
7705
7735
  defaultValues[id] = defaultValue ?? generalDefaultValue;
7706
7736
  return context;
7707
7737
  };
7708
7738
  const useContext11 = (id) => {
7709
7739
  if (isStaticId(id)) {
7710
- return contexts[id] ? import_react19.default.useContext(contexts[id]) : generalDefaultValue;
7740
+ return contexts[id] ? import_react18.default.useContext(contexts[id]) : generalDefaultValue;
7711
7741
  }
7712
- return contexts[id] ? import_react19.default.useContext(contexts[id]) : null;
7742
+ return contexts[id] ? import_react18.default.useContext(contexts[id]) : null;
7713
7743
  };
7714
7744
  return {
7715
7745
  contexts,