@superblocksteam/library 2.0.3-next.164 → 2.0.3-next.166

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.
@@ -2692,14 +2692,14 @@ function getLoaderFn$1(options) {
2692
2692
  if (!(loader === "all")) return [3, 3];
2693
2693
  return [4, import(
2694
2694
  /* webpackChunkName: "blueprint-icons-all-paths-loader" */
2695
- "./allPathsLoader-BXEYCda4.js"
2695
+ "./allPathsLoader-D6axntCf.js"
2696
2696
  )];
2697
2697
  case 2:
2698
2698
  return [2, _b2.sent().allPathsLoader];
2699
2699
  case 3:
2700
2700
  return [4, import(
2701
2701
  /* webpackChunkName: "blueprint-icons-split-paths-by-size-loader" */
2702
- "./splitPathsBySizeLoader-CMZq0zI0.js"
2702
+ "./splitPathsBySizeLoader-o49Z1Cr0.js"
2703
2703
  )];
2704
2704
  case 4:
2705
2705
  return [2, _b2.sent().splitPathsBySizeLoader];
@@ -10313,10 +10313,6 @@ const CLASS_NAMES = {
10313
10313
  CARET_ICON: "sb-caret-icon",
10314
10314
  PRIMARY_COLOR_ICON: "sb-primary-color-icon",
10315
10315
  CLOSE_ICON: "sb-close-icon",
10316
- // key-value widget
10317
- KEY_VALUE_ENTRY_ELLIPSIS: "sb-key-value-entry-ellipsis",
10318
- KEY_VALUE_ENTRY_VALUE_RIGHT_ALIGN: "sb-key-value-entry-value-right-align",
10319
- KEY_VALUE_ENTRY_VERTICAL: "sb-key-value-entry-vertical",
10320
10316
  ICON: "sb-icon",
10321
10317
  // misc
10322
10318
  PAGINATOR: "sb-rc-paginator",
@@ -41329,7 +41325,7 @@ function requireLodash() {
41329
41325
  index2 = wrapper ? index2 : length2;
41330
41326
  while (++index2 < length2) {
41331
41327
  func = funcs[index2];
41332
- var funcName = getFuncName(func), data2 = funcName == "wrapper" ? getData2(func) : undefined$1;
41328
+ var funcName = getFuncName(func), data2 = funcName == "wrapper" ? getData(func) : undefined$1;
41333
41329
  if (data2 && isLaziable(data2[0]) && data2[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data2[4].length && data2[9] == 1) {
41334
41330
  wrapper = wrapper[getFuncName(data2[0])].apply(wrapper, data2[3]);
41335
41331
  } else {
@@ -41558,7 +41554,7 @@ function requireLodash() {
41558
41554
  var partialsRight = partials, holdersRight = holders;
41559
41555
  partials = holders = undefined$1;
41560
41556
  }
41561
- var data2 = isBindKey ? undefined$1 : getData2(func);
41557
+ var data2 = isBindKey ? undefined$1 : getData(func);
41562
41558
  var newData = [
41563
41559
  func,
41564
41560
  bitmask,
@@ -41753,7 +41749,7 @@ function requireLodash() {
41753
41749
  function getAllKeysIn(object4) {
41754
41750
  return baseGetAllKeys(object4, keysIn, getSymbolsIn);
41755
41751
  }
41756
- var getData2 = !metaMap ? noop3 : function(func) {
41752
+ var getData = !metaMap ? noop3 : function(func) {
41757
41753
  return metaMap.get(func);
41758
41754
  };
41759
41755
  function getFuncName(func) {
@@ -41981,7 +41977,7 @@ function requireLodash() {
41981
41977
  if (func === other) {
41982
41978
  return true;
41983
41979
  }
41984
- var data2 = getData2(other);
41980
+ var data2 = getData(other);
41985
41981
  return !!data2 && func === data2[0];
41986
41982
  }
41987
41983
  function isMasked(func) {
@@ -46912,21 +46908,6 @@ const getDynamicBindings = (dynamicString) => {
46912
46908
  function getStableScopeId(scopeName) {
46913
46909
  return generatePredictableId(`sc-${scopeName}`);
46914
46910
  }
46915
- const createPerSideBorder = ({
46916
- color,
46917
- width
46918
- }) => {
46919
- const borderSide = {
46920
- color,
46921
- width: Dim.px(width)
46922
- };
46923
- return {
46924
- top: borderSide,
46925
- right: borderSide,
46926
- bottom: borderSide,
46927
- left: borderSide
46928
- };
46929
- };
46930
46911
  const generateBorderStyleObject = ({
46931
46912
  border: border2,
46932
46913
  fallbackBorderColor,
@@ -50609,7 +50590,7 @@ const ButtonClass = styleAsClass`
50609
50590
  border-color: transparent !important;
50610
50591
  }
50611
50592
  `;
50612
- const ButtonLikeLinkClass = styleAsClass`
50593
+ styleAsClass`
50613
50594
  cursor: default;
50614
50595
 
50615
50596
  .button-content {
@@ -50663,7 +50644,7 @@ const ButtonLoader = styleAsClass`
50663
50644
  }
50664
50645
  `;
50665
50646
  const ButtonHoverClass = styleAsClass`${getHoverCss(":disabled")}`;
50666
- const ButtonLikeLinkHoverClass = styleAsClass`${getHoverCss(
50647
+ styleAsClass`${getHoverCss(
50667
50648
  `.${CLASS_NAMES.DISABLED_MODIFIER}`
50668
50649
  )}`;
50669
50650
  const getClassNameForStyle = (style2) => {
@@ -50750,7 +50731,7 @@ const useButtonContent = (props, forceTextColorWhenDisabled) => {
50750
50731
  } else {
50751
50732
  style2.color = textColor;
50752
50733
  }
50753
- if (disabled && !forceTextColorWhenDisabled) {
50734
+ if (disabled && true) {
50754
50735
  style2.color = "";
50755
50736
  }
50756
50737
  return style2;
@@ -50933,90 +50914,6 @@ const Button$4 = (props) => {
50933
50914
  }
50934
50915
  );
50935
50916
  };
50936
- const ButtonLikeLink = (props) => {
50937
- const {
50938
- linkStyle,
50939
- border: border2,
50940
- borderRadius: borderRadius2,
50941
- backgroundColor,
50942
- textColor,
50943
- textAlignment,
50944
- isLoadingAnimated = true,
50945
- isLoading,
50946
- disabled,
50947
- theme
50948
- } = props;
50949
- const containerClassNames = [
50950
- SharedButtonClass,
50951
- ButtonLikeLinkClass,
50952
- isLoading ? "loading-button" : "",
50953
- getTextAlignmentClass(textAlignment)
50954
- ].filter(Boolean).join(" ");
50955
- const anchorClassNames = [
50956
- ButtonLikeLinkHoverClass,
50957
- getClassNameForStyle(linkStyle),
50958
- disabled ? CLASS_NAMES.DISABLED_MODIFIER : ""
50959
- ].filter(Boolean).join(" ");
50960
- const sharedStyles = useSharedStyles(props);
50961
- const buttonLikeLinkSpecificStyles = useMemo$2(() => {
50962
- const borderStyleObject = generateBorderStyleObject({
50963
- border: border2,
50964
- borderRadius: borderRadius2,
50965
- fallbackBorderColor: theme.colors.primary500
50966
- });
50967
- const hoverStyleObject = generateHoverVariableAssignmentStyleObject({
50968
- borderStyleObject,
50969
- backgroundColor,
50970
- textColor
50971
- });
50972
- const autoWidthWhenLink = linkStyle === "LINK" ? { width: "auto" } : {};
50973
- return { ...borderStyleObject, ...hoverStyleObject, ...autoWidthWhenLink };
50974
- }, [
50975
- border2,
50976
- borderRadius2,
50977
- theme.colors.primary500,
50978
- backgroundColor,
50979
- textColor,
50980
- linkStyle
50981
- ]);
50982
- const forceTextColorWhenDisabled = linkStyle === "LINK";
50983
- const buttonContent = useButtonContent(props, forceTextColorWhenDisabled);
50984
- const href2 = props.url && !disabled ? props.url : void 0;
50985
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: containerClassNames, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
50986
- "a",
50987
- {
50988
- href: href2,
50989
- className: anchorClassNames,
50990
- target: props.openInNewTab ? "_blank" : "_self",
50991
- rel: props.openInNewTab ? "noopener noreferrer" : "",
50992
- draggable: false,
50993
- onClick: (e3) => {
50994
- if (props.disabled) {
50995
- e3.preventDefault();
50996
- }
50997
- if (props.onClick) {
50998
- props.onClick(e3);
50999
- }
51000
- },
51001
- style: { ...sharedStyles, ...buttonLikeLinkSpecificStyles },
51002
- "data-test": props["data-test"],
51003
- "data-content-width": props.width,
51004
- children: [
51005
- buttonContent,
51006
- isLoadingAnimated && props.isLoading && /* @__PURE__ */ jsxRuntimeExports.jsx(
51007
- "div",
51008
- {
51009
- className: ButtonLoader,
51010
- style: {
51011
- background: theme.colors.neutral100
51012
- },
51013
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner$1, { size: 20 })
51014
- }
51015
- )
51016
- ]
51017
- }
51018
- ) });
51019
- };
51020
50917
  var contentType = {};
51021
50918
  /*!
51022
50919
  * content-type
@@ -117347,7 +117244,7 @@ const textStyle$3 = textStyleProp().default(function() {
117347
117244
  }
117348
117245
  };
117349
117246
  });
117350
- const propertiesDefinition$i = {
117247
+ const propertiesDefinition$h = {
117351
117248
  general: Section.category(PropsPanelCategory.Content).children({
117352
117249
  label: Prop.string().readAndWrite().validate(VALIDATORS.TEXT_ALLOW_UNDEFINED).propertiesPanel({
117353
117250
  label: "Label",
@@ -117471,7 +117368,7 @@ const propertiesDefinition$i = {
117471
117368
  const SbButton = registerSbComponent(
117472
117369
  "SbButton",
117473
117370
  {
117474
- propertiesDefinition: propertiesDefinition$i
117371
+ propertiesDefinition: propertiesDefinition$h
117475
117372
  },
117476
117373
  (props) => {
117477
117374
  var _a2;
@@ -117940,7 +117837,7 @@ const InternalVStack = (props) => {
117940
117837
  const InternalHStack = (props) => {
117941
117838
  return /* @__PURE__ */ jsxRuntimeExports.jsx(InternalStack, { direction: "row", ...props });
117942
117839
  };
117943
- const propertiesDefinition$h = {
117840
+ const propertiesDefinition$g = {
117944
117841
  contents: Section.category(PropsPanelCategory.Content).children({
117945
117842
  columns: Prop.array().readAndWrite().propertiesPanel({
117946
117843
  label: "Columns",
@@ -117980,7 +117877,7 @@ const SbSection = registerSbComponent(
117980
117877
  "SbSection",
117981
117878
  {
117982
117879
  container: true,
117983
- propertiesDefinition: propertiesDefinition$h
117880
+ propertiesDefinition: propertiesDefinition$g
117984
117881
  },
117985
117882
  (props) => {
117986
117883
  const { style: style2, ...passthroughProps } = usePassthroughProps(props);
@@ -118336,7 +118233,7 @@ const StaticComponent = ({
118336
118233
  }, [staticHeight]);
118337
118234
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { ...style2, width: "100%", height: "100%" }, children });
118338
118235
  };
118339
- const propertiesDefinition$g = {
118236
+ const propertiesDefinition$f = {
118340
118237
  layout: Section.category(PropsPanelCategory.Layout).add(containerLayout()).add(spacing()).add({
118341
118238
  padding: Prop.composite({
118342
118239
  top: Prop.dimension().default(function() {
@@ -118536,11 +118433,11 @@ const SbContainer = registerSbComponent(
118536
118433
  "SbContainer",
118537
118434
  {
118538
118435
  container: true,
118539
- propertiesDefinition: propertiesDefinition$g
118436
+ propertiesDefinition: propertiesDefinition$f
118540
118437
  },
118541
118438
  InternalContainer
118542
118439
  );
118543
- const propertiesDefinition$f = {
118440
+ const propertiesDefinition$e = {
118544
118441
  layout: Section.category(PropsPanelCategory.Layout).add(containerLayout()).add(spacing()).add(padding()).add(
118545
118442
  size$2({
118546
118443
  defaults: {
@@ -118569,7 +118466,7 @@ const SbColumn = registerSbComponent(
118569
118466
  "SbColumn",
118570
118467
  {
118571
118468
  container: true,
118572
- propertiesDefinition: propertiesDefinition$f
118469
+ propertiesDefinition: propertiesDefinition$e
118573
118470
  },
118574
118471
  (props) => {
118575
118472
  const { style: style2, ...passthroughProps } = usePassthroughProps(props);
@@ -125980,7 +125877,7 @@ const textStyle$2 = textStyleProp({
125980
125877
  }
125981
125878
  })
125982
125879
  );
125983
- const propertiesDefinition$e = {
125880
+ const propertiesDefinition$d = {
125984
125881
  general: Section.category(PropsPanelCategory.Content).children({
125985
125882
  label: Prop.string().readAndWrite().default("").propertiesPanel({
125986
125883
  label: "Label",
@@ -126210,7 +126107,7 @@ const propertiesDefinition$e = {
126210
126107
  const SbInput = registerSbComponent(
126211
126108
  "SbInput",
126212
126109
  {
126213
- propertiesDefinition: propertiesDefinition$e
126110
+ propertiesDefinition: propertiesDefinition$d
126214
126111
  },
126215
126112
  (props) => {
126216
126113
  var _a2, _b2, _c2;
@@ -126369,7 +126266,7 @@ const SbInput = registerSbComponent(
126369
126266
  ) });
126370
126267
  }
126371
126268
  );
126372
- const propertiesDefinition$d = {
126269
+ const propertiesDefinition$c = {
126373
126270
  layout: Section.category(PropsPanelCategory.Layout).add(
126374
126271
  size$2({
126375
126272
  defaults: {
@@ -126393,7 +126290,7 @@ const SbPage = registerSbComponent(
126393
126290
  "SbPage",
126394
126291
  {
126395
126292
  container: true,
126396
- propertiesDefinition: propertiesDefinition$d
126293
+ propertiesDefinition: propertiesDefinition$c
126397
126294
  },
126398
126295
  (props) => {
126399
126296
  const { name, isAnonymous, style: style2, onLoad, ...other } = props;
@@ -133078,7 +132975,7 @@ const textStyle$1 = textStyleProp().default(function() {
133078
132975
  textColor: Theme.typographies.label.textColor
133079
132976
  };
133080
132977
  });
133081
- const propertiesDefinition$c = {
132978
+ const propertiesDefinition$b = {
133082
132979
  general: Section.category(PropsPanelCategory.Content).children({
133083
132980
  text: Prop.string().readAndWrite().propertiesPanel({
133084
132981
  label: "Text",
@@ -133343,7 +133240,7 @@ const useIconContainerStyles = ({
133343
133240
  const SbText = registerSbComponent(
133344
133241
  "SbText",
133345
133242
  {
133346
- propertiesDefinition: propertiesDefinition$c
133243
+ propertiesDefinition: propertiesDefinition$b
133347
133244
  },
133348
133245
  (props) => {
133349
133246
  const {
@@ -133604,7 +133501,7 @@ const ModalComponent = (props) => {
133604
133501
  )
133605
133502
  ] });
133606
133503
  };
133607
- const propertiesDefinition$b = {
133504
+ const propertiesDefinition$a = {
133608
133505
  layout: Section.category(PropsPanelCategory.Layout).add(containerLayout()).add(spacing()).add(padding()),
133609
133506
  appearance: Section.category(PropsPanelCategory.Appearance).children({
133610
133507
  backgroundColor: Prop.string().readAndWrite().propertiesPanel({
@@ -133678,7 +133575,7 @@ const propertiesDefinition$b = {
133678
133575
  const SbModal = registerSbComponent(
133679
133576
  "SbModal",
133680
133577
  {
133681
- propertiesDefinition: propertiesDefinition$b,
133578
+ propertiesDefinition: propertiesDefinition$a,
133682
133579
  container: true
133683
133580
  },
133684
133581
  (props) => {
@@ -143679,14 +143576,14 @@ function getLoaderFn(options) {
143679
143576
  if (!(loader === "all")) return [3, 3];
143680
143577
  return [4, import(
143681
143578
  /* webpackChunkName: "blueprint-icons-all-paths-loader" */
143682
- "./allPathsLoader-Cjd2UGyJ.js"
143579
+ "./allPathsLoader-Brtj2ENg.js"
143683
143580
  )];
143684
143581
  case 2:
143685
143582
  return [2, _b2.sent().allPathsLoader];
143686
143583
  case 3:
143687
143584
  return [4, import(
143688
143585
  /* webpackChunkName: "blueprint-icons-split-paths-by-size-loader" */
143689
- "./splitPathsBySizeLoader-SUyShF60.js"
143586
+ "./splitPathsBySizeLoader-8QKjMEzI.js"
143690
143587
  )];
143691
143588
  case 4:
143692
143589
  return [2, _b2.sent().splitPathsBySizeLoader];
@@ -155085,7 +154982,7 @@ function getFilteredTableData(props) {
155085
154982
  finalTableData.map(({ $originalIndex }) => $originalIndex)
155086
154983
  ];
155087
154984
  }
155088
- const propertiesDefinition$a = {
154985
+ const propertiesDefinition$9 = {
155089
154986
  general: Section.category(PropsPanelCategory.Content).children({
155090
154987
  tableHeader: Prop.string().readAndWrite().default("").propertiesPanel({
155091
154988
  label: "Header",
@@ -170718,7 +170615,7 @@ const noop = () => {
170718
170615
  const SbTable = registerSbComponent(
170719
170616
  "SbTable",
170720
170617
  {
170721
- propertiesDefinition: propertiesDefinition$a
170618
+ propertiesDefinition: propertiesDefinition$9
170722
170619
  },
170723
170620
  (props) => {
170724
170621
  const { update } = useActions();
@@ -174109,7 +174006,7 @@ const textStyle = textStyleProp({
174109
174006
  }
174110
174007
  })
174111
174008
  );
174112
- const propertiesDefinition$9 = {
174009
+ const propertiesDefinition$8 = {
174113
174010
  general: Section.category(PropsPanelCategory.Content).children({
174114
174011
  label: Prop.string().readAndWrite().default("").propertiesPanel({
174115
174012
  label: "Label",
@@ -174425,7 +174322,7 @@ const SbDropdown = registerSbComponent(
174425
174322
  "SbDropdown",
174426
174323
  {
174427
174324
  container: false,
174428
- propertiesDefinition: propertiesDefinition$9
174325
+ propertiesDefinition: propertiesDefinition$8
174429
174326
  },
174430
174327
  (props) => {
174431
174328
  var _a2, _b2, _c2, _d2;
@@ -174677,1583 +174574,6 @@ const SbCustom = registerSbComponent(
174677
174574
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "block" }, ...props, children });
174678
174575
  }
174679
174576
  );
174680
- const INVALID_NUMBER_TEXT = "Invalid number";
174681
- const getStringValue = (text) => {
174682
- if (text === void 0 || text === null) {
174683
- return void 0;
174684
- }
174685
- if (typeof text === "string" || typeof text === "number") {
174686
- return text.toString();
174687
- }
174688
- return JSON.stringify(text);
174689
- };
174690
- const toNumericValue = (text) => {
174691
- const trimmed = text.trim();
174692
- if (!trimmed) return "";
174693
- const num = Number(trimmed);
174694
- return !isNaN(num) && isFinite(num) ? num : INVALID_NUMBER_TEXT;
174695
- };
174696
- const getValueByType = (property, data2) => {
174697
- var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i, _j, _k, _l2, _m2, _n2, _o2;
174698
- const text = `${property.displayedValue ?? (property.isDerived ? `${property.computedValue}` : `${data2[property.id]}`)}`;
174699
- switch (property.type) {
174700
- case KeyValuePropertyType.CURRENCY: {
174701
- const textToNumber = toNumericValue(text);
174702
- if (typeof textToNumber === "string") return textToNumber;
174703
- return formatCurrency(
174704
- textToNumber,
174705
- (_a2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _a2.currency,
174706
- (_b2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _b2.notation,
174707
- (_c2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _c2.minimumFractionDigits,
174708
- (_d2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _d2.maximumFractionDigits
174709
- );
174710
- }
174711
- case KeyValuePropertyType.NUMBER: {
174712
- const textToNumber = toNumericValue(text);
174713
- if (typeof textToNumber === "string") return textToNumber;
174714
- return formatNumber(
174715
- textToNumber,
174716
- (_e2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _e2.notation,
174717
- (_f2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _f2.minimumFractionDigits,
174718
- (_g2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _g2.maximumFractionDigits
174719
- );
174720
- }
174721
- case KeyValuePropertyType.PERCENTAGE: {
174722
- const textToNumber = toNumericValue(text);
174723
- if (typeof textToNumber === "string") return textToNumber;
174724
- return formatPercentage(
174725
- textToNumber,
174726
- (_h2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _h2.minimumFractionDigits,
174727
- (_i = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _i.maximumFractionDigits
174728
- );
174729
- }
174730
- case KeyValuePropertyType.DATE: {
174731
- return formatDate(
174732
- text,
174733
- (_j = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _j.dateInputFormat,
174734
- ((_k = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _k.dateOutputFormat) ?? DEFAULT_DATE_OUTPUT_FORMAT,
174735
- ((_l2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _l2.manageTimezone) ? (_m2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _m2.timezone : void 0,
174736
- ((_n2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _n2.manageTimezone) ? (_o2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _o2.displayTimezone : void 0
174737
- );
174738
- }
174739
- case KeyValuePropertyType.BOOLEAN: {
174740
- return !!(property && (property.isDerived ? property.computedValue : data2[property.id]));
174741
- }
174742
- default:
174743
- return getStringValue(text) ?? "";
174744
- }
174745
- };
174746
- const toReadableKey = (key2) => {
174747
- return key2.replace(/[_-]/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2").trim().toLowerCase().replace(/^\w/, (c3) => c3.toUpperCase());
174748
- };
174749
- const getProperties = (data2, currentProperties = {}, cachedProperties = {}) => {
174750
- const derivedProperties = Object.values(currentProperties).filter(
174751
- (property) => property == null ? void 0 : property.isDerived
174752
- );
174753
- const baseProperties = derivedProperties.reduce(
174754
- (acc, property) => {
174755
- acc[property.id] = property;
174756
- return acc;
174757
- },
174758
- {}
174759
- );
174760
- return Object.keys(data2).reduce((acc, key2) => {
174761
- const cachedDefinition = currentProperties[key2] ?? cachedProperties[key2] ?? {};
174762
- acc[key2] = {
174763
- ...getDefaultProperty(key2),
174764
- ...cachedDefinition
174765
- };
174766
- return acc;
174767
- }, baseProperties);
174768
- };
174769
- const getPropertiesOrder = (properties2, propertiesOrder) => {
174770
- const currentOrder = propertiesOrder.filter((key2) => properties2[key2]);
174771
- const remainingKeys = Object.keys(properties2).filter(
174772
- (key2) => !currentOrder.includes(key2)
174773
- );
174774
- return [...currentOrder, ...remainingKeys];
174775
- };
174776
- const getDefaultProperty = (key2) => {
174777
- return {
174778
- id: key2,
174779
- key: key2,
174780
- displayedKey: toReadableKey(key2),
174781
- type: KeyValuePropertyType.TEXT,
174782
- isVisible: true,
174783
- isDerived: false
174784
- };
174785
- };
174786
- const getTagsColorAssignment = (tagValues) => {
174787
- return {
174788
- uniqueTagsCount: tagValues.length,
174789
- mapping: tagValues.reduce(
174790
- (acc, tag2, index2) => {
174791
- acc[sanitizeCellValue(tag2)] = index2;
174792
- return acc;
174793
- },
174794
- {}
174795
- )
174796
- };
174797
- };
174798
- const PropertyKeyWrapperClass = styleAsClass`
174799
- display: flex;
174800
- align-items: center;
174801
- gap: 5px;
174802
- color: ${colors.GREY_500};
174803
- flex-grow: 1;
174804
- max-width: 100%;
174805
-
174806
- p {
174807
- margin-bottom: 0;
174808
- }
174809
-
174810
- &:not(${CLASS_NAMES.KEY_VALUE_ENTRY_ELLIPSIS}) > p {
174811
- word-break: break-word;
174812
- }
174813
-
174814
- &.${CLASS_NAMES.KEY_VALUE_ENTRY_ELLIPSIS} > p {
174815
- overflow: hidden;
174816
- white-space: nowrap;
174817
- text-overflow: ellipsis;
174818
- }
174819
- `;
174820
- const useKeyClassNames = (keyProps) => {
174821
- return useMemo$2(() => {
174822
- let classNames2 = PropertyKeyWrapperClass;
174823
- if (!(keyProps == null ? void 0 : keyProps.textWrap)) {
174824
- classNames2 += ` ${CLASS_NAMES.KEY_VALUE_ENTRY_ELLIPSIS}`;
174825
- }
174826
- return classNames2;
174827
- }, [keyProps == null ? void 0 : keyProps.textWrap]);
174828
- };
174829
- const KeyValuePropertyKey = ({
174830
- property,
174831
- style: style2,
174832
- keyProps,
174833
- iconSize
174834
- }) => {
174835
- var _a2, _b2, _c2;
174836
- const icon = ((_a2 = property.keyProps) == null ? void 0 : _a2.icon) ? /* @__PURE__ */ jsxRuntimeExports.jsx(
174837
- DynamicSVG,
174838
- {
174839
- iconName: (_b2 = property.keyProps) == null ? void 0 : _b2.icon,
174840
- size: iconSize ?? DEFAULT_ICON_SIZE$1
174841
- }
174842
- ) : null;
174843
- const iconPosition = ((_c2 = property.keyProps) == null ? void 0 : _c2.iconPosition) ?? "left";
174844
- const classNames2 = useKeyClassNames(keyProps);
174845
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: classNames2, style: style2, children: [
174846
- iconPosition === "left" && icon,
174847
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: getStringValue(property.displayedKey) ?? property.key }),
174848
- iconPosition === "right" && icon
174849
- ] });
174850
- };
174851
- const ValueContentWrapperClass = styleAsClass`
174852
- display: flex;
174853
- gap: 5px;
174854
- max-width: 100%;
174855
- align-items: center;
174856
- `;
174857
- const ValueWrapperClass = styleAsClass`
174858
- display: flex;
174859
- overflow: hidden;
174860
-
174861
- [data-dd-action-name="link"] {
174862
- max-width: 100%;
174863
-
174864
- a {
174865
- text-align: start;
174866
- max-width: 100%;
174867
-
174868
- span {
174869
- // The following fixes the italic text getting cut off at the right
174870
- padding-right: 2px;
174871
- }
174872
- }
174873
- }
174874
-
174875
- p {
174876
- margin-bottom: 0;
174877
- // The following fixes the italic text getting cut off at the right
174878
- padding-right: 2px;
174879
- }
174880
-
174881
- &.${CLASS_NAMES.KEY_VALUE_ENTRY_VALUE_RIGHT_ALIGN} {
174882
- justify-content: end;
174883
- text-align: end;
174884
- flex-grow: 1;
174885
-
174886
- [data-dd-action-name="link"] a {
174887
- text-align: end;
174888
- }
174889
- }
174890
-
174891
- &.${CLASS_NAMES.KEY_VALUE_ENTRY_ELLIPSIS} {
174892
- .${ValueContentWrapperClass} {
174893
- > p {
174894
- overflow: hidden;
174895
- white-space: nowrap;
174896
- text-overflow: ellipsis;
174897
- }
174898
- }
174899
- }
174900
-
174901
- &:not(.${CLASS_NAMES.KEY_VALUE_ENTRY_ELLIPSIS}) {
174902
- word-break: break-word;
174903
-
174904
- .button-text, .${ValueContentWrapperClass} p {
174905
- white-space: unset;
174906
- word-break: break-word;
174907
- }
174908
- }
174909
- `;
174910
- const ImageWrapperClass = styleAsClass`
174911
- img {
174912
- vertical-align: top;
174913
- }
174914
-
174915
- &[data-image-size="FIXED"] {
174916
- width: 32px;
174917
- height: 32px;
174918
- img {
174919
- object-fit: cover;
174920
- width: 100%;
174921
- height: 100%;
174922
- }
174923
- }
174924
-
174925
- &[data-image-size="FIT"] {
174926
- height: 32px;
174927
- width: 100%;
174928
- overflow: hidden;
174929
- img {
174930
- max-width: 100%;
174931
- max-height: 100%;
174932
- height: auto;
174933
- }
174934
- }
174935
-
174936
- &[data-image-size="COVER"] {
174937
- height: 32px;
174938
- width: 100%;
174939
- position: relative;
174940
- overflow: hidden;
174941
- img {
174942
- width: 100%;
174943
- height: 100%;
174944
- object-fit: cover;
174945
- }
174946
- }
174947
-
174948
- &[data-image-size="GROW"] {
174949
- width: 100%;
174950
- img {
174951
- width: 100%;
174952
- height: auto;
174953
- }
174954
- }
174955
- `;
174956
- const TagCellWrapperClass = styleAsClass`
174957
- max-width: 100%;
174958
-
174959
- > div {
174960
- padding: 0;
174961
- }
174962
- `;
174963
- const useValueClassNames = (valueProps) => {
174964
- return useMemo$2(() => {
174965
- let classNames2 = ValueWrapperClass;
174966
- const isValueRightAligned = (valueProps == null ? void 0 : valueProps.position) === "right";
174967
- if (isValueRightAligned) {
174968
- classNames2 += ` ${CLASS_NAMES.KEY_VALUE_ENTRY_VALUE_RIGHT_ALIGN}`;
174969
- }
174970
- if (!(valueProps == null ? void 0 : valueProps.textWrap)) {
174971
- classNames2 += ` ${CLASS_NAMES.KEY_VALUE_ENTRY_ELLIPSIS}`;
174972
- }
174973
- return classNames2;
174974
- }, [valueProps == null ? void 0 : valueProps.position, valueProps == null ? void 0 : valueProps.textWrap]);
174975
- };
174976
- const KeyValuePropertyValue = (props) => {
174977
- var _a2;
174978
- const [isLoading, setIsLoading] = useState(false);
174979
- const { property, data: data2, valueStyles, valueProps, theme } = props;
174980
- const valueClassNames = useValueClassNames(valueProps);
174981
- const onClick = (_a2 = property.typeSpecificProps) == null ? void 0 : _a2.onClick;
174982
- const handleButtonClick = useCallback(
174983
- async (e3) => {
174984
- e3.stopPropagation();
174985
- if (onClick && !isLoading) {
174986
- setIsLoading(true);
174987
- await (onClick == null ? void 0 : onClick());
174988
- setIsLoading(false);
174989
- }
174990
- },
174991
- [onClick, isLoading]
174992
- );
174993
- const content = useMemo$2(() => {
174994
- var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i, _j, _k, _l2, _m2, _n2, _o2, _p2, _q;
174995
- const icon = ((_a3 = property.valueProps) == null ? void 0 : _a3.icon) ? /* @__PURE__ */ jsxRuntimeExports.jsx(
174996
- DynamicSVG,
174997
- {
174998
- iconName: (_b2 = property.valueProps) == null ? void 0 : _b2.icon,
174999
- size: props.iconSize ?? DEFAULT_ICON_SIZE$1
175000
- }
175001
- ) : null;
175002
- const iconPosition = ((_c2 = property.valueProps) == null ? void 0 : _c2.iconPosition) ?? "left";
175003
- const value = property.isDerived ? property.computedValue : data2[property.id];
175004
- switch (property.type) {
175005
- case KeyValuePropertyType.BUTTON: {
175006
- const borderColor = (_d2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _d2.buttonBorderColor;
175007
- const backgroundColor = (_e2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _e2.buttonBackgroundColor;
175008
- const buttonStyle = (_f2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _f2.buttonStyle;
175009
- const buttonLabel = getStringValue(
175010
- (_g2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _g2.buttonLabel
175011
- );
175012
- const buttonLabelColor = (_h2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _h2.buttonLabelColor;
175013
- const isDisabled = (_i = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _i.isDisabled;
175014
- const buttonIconSize = getIconSizeBasedOnFontSize(
175015
- getFontSizeInPxFromTextStyle({
175016
- nestedProps: buttonStyle,
175017
- typographies: theme.typographies,
175018
- textStyleVariant: "buttonLabel",
175019
- defaultTextStyleVariant: "buttonLabel"
175020
- })
175021
- );
175022
- const buttonIcon = ((_j = property.valueProps) == null ? void 0 : _j.icon) ? /* @__PURE__ */ jsxRuntimeExports.jsx(
175023
- DynamicSVG,
175024
- {
175025
- iconName: (_k = property.valueProps) == null ? void 0 : _k.icon,
175026
- size: buttonIconSize ?? DEFAULT_ICON_SIZE$1
175027
- }
175028
- ) : null;
175029
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
175030
- Button$4,
175031
- {
175032
- theme,
175033
- version: "v2",
175034
- disabled: isDisabled,
175035
- buttonStyle: buttonStyle ?? "primary",
175036
- backgroundColor,
175037
- border: borderColor ? createPerSideBorder({
175038
- color: borderColor ?? "#000000",
175039
- width: 1
175040
- }) : void 0,
175041
- text: buttonLabel ?? "Click me",
175042
- icon: buttonIcon,
175043
- iconPosition,
175044
- textColor: buttonLabelColor,
175045
- isLoading,
175046
- onClick: handleButtonClick,
175047
- width: "auto",
175048
- height: "100%"
175049
- }
175050
- );
175051
- }
175052
- case KeyValuePropertyType.LINK: {
175053
- const url2 = value ? value.toString() : "";
175054
- const label = getStringValue((_l2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _l2.linkLabel);
175055
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
175056
- ButtonLikeLink,
175057
- {
175058
- url: url2,
175059
- theme,
175060
- text: label || url2,
175061
- isLoading: false,
175062
- linkStyle: "LINK",
175063
- textProps: {
175064
- textStyleVariant: ((_m2 = props.linkStyles) == null ? void 0 : _m2.textStyleVariant) ?? "link",
175065
- style: (_n2 = props.linkStyles) == null ? void 0 : _n2.style
175066
- },
175067
- textColor: theme == null ? void 0 : theme.typographies.link.textColor.default,
175068
- icon,
175069
- iconPosition,
175070
- openInNewTab: ((_o2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _o2.openInNewTab) ?? true
175071
- }
175072
- );
175073
- }
175074
- case KeyValuePropertyType.BOOLEAN: {
175075
- const ButtonIcon = getValueByType(property, data2) ? RadioButtonControlIcons["CHECK"] : RadioButtonControlIcons[((_p2 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _p2.booleanStyleFalse) || BooleanStyleFalse.EMPTY];
175076
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ButtonIcon, {});
175077
- }
175078
- case KeyValuePropertyType.IMAGE: {
175079
- const imageUrls = parseImageURLValue(value);
175080
- if (!imageUrls || imageUrls.length === 0) {
175081
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Invalid Image" });
175082
- }
175083
- return imageUrls.map((item, index2) => {
175084
- var _a4, _b3, _c3, _d3, _e3, _f3;
175085
- if (isValidUrl(item)) {
175086
- const imageStyle = {
175087
- borderRadius: typeof ((_a4 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _a4.imageBorderRadius) === "string" ? (_b3 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _b3.imageBorderRadius : ((_c3 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _c3.imageBorderRadius) ? `${property.typeSpecificProps.imageBorderRadius.value}${property.typeSpecificProps.imageBorderRadius.mode}` : "50%"
175088
- };
175089
- if ((_d3 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _d3.openImageUrl) {
175090
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
175091
- "a",
175092
- {
175093
- onClick: (e3) => e3.stopPropagation(),
175094
- target: "_blank",
175095
- rel: "noopener noreferrer",
175096
- href: item,
175097
- className: ImageWrapperClass,
175098
- "data-image-size": ((_e3 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _e3.imageSize) ?? ImageSize.Fixed,
175099
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: item, alt: "", style: imageStyle })
175100
- },
175101
- index2
175102
- );
175103
- }
175104
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
175105
- "div",
175106
- {
175107
- className: ImageWrapperClass,
175108
- "data-image-size": ((_f3 = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _f3.imageSize) ?? ImageSize.Fixed,
175109
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: item, alt: "", style: imageStyle })
175110
- },
175111
- index2
175112
- );
175113
- } else {
175114
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: ValueContentWrapperClass, children: "Invalid Image" }, index2);
175115
- }
175116
- });
175117
- }
175118
- case KeyValuePropertyType.VIDEO: {
175119
- return /* @__PURE__ */ jsxRuntimeExports.jsx(PopoverVideo, { url: value });
175120
- }
175121
- case KeyValuePropertyType.TAGS: {
175122
- let displayValue = value;
175123
- if (displayValue && typeof displayValue === "string") {
175124
- displayValue = displayValue.split(",");
175125
- } else if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
175126
- displayValue = [value];
175127
- }
175128
- if (!Array.isArray(displayValue)) {
175129
- return null;
175130
- }
175131
- const tagsColorAssignment = getTagsColorAssignment(displayValue);
175132
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: TagCellWrapperClass, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
175133
- TagsCell,
175134
- {
175135
- theme,
175136
- cellProperties: { textWrap: !!(valueProps == null ? void 0 : valueProps.textWrap) },
175137
- isHidden: false,
175138
- tagValues: displayValue,
175139
- tagsColorAssignment,
175140
- tagsCustomColorAssignment: (_q = property == null ? void 0 : property.typeSpecificProps) == null ? void 0 : _q.tagDisplayConfig,
175141
- compactMode: "SHORT"
175142
- },
175143
- `${props.width}-${props.height}`
175144
- ) });
175145
- }
175146
- case KeyValuePropertyType.EMAIL: {
175147
- const value2 = getValueByType(property, data2);
175148
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("a", { className: ValueContentWrapperClass, href: `mailto:${value2}`, children: [
175149
- iconPosition === "left" && icon,
175150
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: value2 }),
175151
- iconPosition === "right" && icon
175152
- ] });
175153
- }
175154
- default:
175155
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: ValueContentWrapperClass, children: [
175156
- iconPosition === "left" && icon,
175157
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: getValueByType(property, data2) }),
175158
- iconPosition === "right" && icon
175159
- ] });
175160
- }
175161
- }, [
175162
- property,
175163
- data2,
175164
- handleButtonClick,
175165
- isLoading,
175166
- props.iconSize,
175167
- valueProps == null ? void 0 : valueProps.textWrap,
175168
- props.width,
175169
- props.height,
175170
- theme,
175171
- props.linkStyles
175172
- ]);
175173
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
175174
- "div",
175175
- {
175176
- className: `${ValueWrapperClass} ${valueClassNames}`,
175177
- style: valueStyles == null ? void 0 : valueStyles.style,
175178
- children: content
175179
- }
175180
- );
175181
- };
175182
- const VARIABLE_PREFIX = "kv";
175183
- const VARIABLE_NAMES = {
175184
- borderTopWidth: getVariableName("border-top-width", VARIABLE_PREFIX),
175185
- borderRightWidth: getVariableName("border-right-width", VARIABLE_PREFIX),
175186
- borderBottomWidth: getVariableName("border-bottom-width", VARIABLE_PREFIX),
175187
- borderLeftWidth: getVariableName("border-left-width", VARIABLE_PREFIX),
175188
- borderColor: getVariableName("border-color", VARIABLE_PREFIX),
175189
- borderTopRightRadius: getVariableName(
175190
- "border-top-right-radius",
175191
- VARIABLE_PREFIX
175192
- ),
175193
- borderTopLeftRadius: getVariableName(
175194
- "border-top-left-radius",
175195
- VARIABLE_PREFIX
175196
- ),
175197
- borderBottomRightRadius: getVariableName(
175198
- "border-bottom-right-radius",
175199
- VARIABLE_PREFIX
175200
- ),
175201
- borderBottomLeftRadius: getVariableName(
175202
- "border-bottom-left-radius",
175203
- VARIABLE_PREFIX
175204
- ),
175205
- backgroundColor: getVariableName("background-color", VARIABLE_PREFIX),
175206
- spacing: getVariableName("spacing", VARIABLE_PREFIX),
175207
- paddingLeft: getVariableName("padding-left", VARIABLE_PREFIX),
175208
- paddingRight: getVariableName("padding-right", VARIABLE_PREFIX),
175209
- paddingTop: getVariableName("padding-top", VARIABLE_PREFIX),
175210
- paddingBottom: getVariableName("padding-bottom", VARIABLE_PREFIX),
175211
- labelWidth: getVariableName("label-width", VARIABLE_PREFIX),
175212
- dividerColor: getVariableName("divider-color", VARIABLE_PREFIX),
175213
- dividerHeight: getVariableName("divider-height", VARIABLE_PREFIX),
175214
- spacingDarkSVG: getVariableName("spacing-dark-svg", VARIABLE_PREFIX),
175215
- spacingSVG: getVariableName("spacing-svg", VARIABLE_PREFIX)
175216
- };
175217
- const DEFAULT_KEY_VALUE_WIDGET_KEY_STYLE_VARIANT = "label";
175218
- const DEFAULT_KEY_VALUE_WIDGET_VALUE_STYLE_VARIANT = "body2";
175219
- const getDimensionValue = (dimension) => `${dimension.value}${dimension.mode}`;
175220
- const createCssVariables = ({
175221
- theme,
175222
- styleProps,
175223
- keyWidth
175224
- }) => {
175225
- var _a2, _b2, _c2, _d2, _e2, _f2;
175226
- const borderColorOnHover = generateInputBorderOnHoverColor(
175227
- styleProps == null ? void 0 : styleProps.border,
175228
- theme.colors.primary500,
175229
- theme.colors
175230
- );
175231
- const borderCssVariables = createCssVariablesForBorderWidthAndColorWithHover({
175232
- border: styleProps.border,
175233
- fallbackBorderColor: theme.colors.neutral100,
175234
- borderColorOnHover,
175235
- defaultBorderWidth: theme.defaultBorder.borderWidth,
175236
- prefix: VARIABLE_PREFIX
175237
- });
175238
- const defaultBorderRadius = theme.defaultBorder.borderRadius;
175239
- const paddingVariables = generatePaddingVariableAssignmentStyleObject(
175240
- styleProps.padding ?? {
175241
- left: Dim.px(10),
175242
- right: Dim.px(10),
175243
- top: Dim.px(10),
175244
- bottom: Dim.px(10)
175245
- },
175246
- // theme.keyValue.padding,
175247
- VARIABLE_PREFIX
175248
- );
175249
- const keyVars = {
175250
- [VARIABLE_NAMES.labelWidth]: getLabelWidthCssValue(keyWidth)
175251
- };
175252
- return {
175253
- ...borderCssVariables,
175254
- ...paddingVariables,
175255
- ...keyVars,
175256
- [VARIABLE_NAMES.borderTopRightRadius]: getDimensionValue(
175257
- ((_a2 = styleProps.borderRadius) == null ? void 0 : _a2.topRight) ?? defaultBorderRadius
175258
- ),
175259
- [VARIABLE_NAMES.borderTopLeftRadius]: getDimensionValue(
175260
- ((_b2 = styleProps.borderRadius) == null ? void 0 : _b2.topLeft) ?? defaultBorderRadius
175261
- ),
175262
- [VARIABLE_NAMES.borderBottomRightRadius]: getDimensionValue(
175263
- ((_c2 = styleProps.borderRadius) == null ? void 0 : _c2.bottomRight) ?? defaultBorderRadius
175264
- ),
175265
- [VARIABLE_NAMES.borderBottomLeftRadius]: getDimensionValue(
175266
- ((_d2 = styleProps.borderRadius) == null ? void 0 : _d2.bottomLeft) ?? defaultBorderRadius
175267
- ),
175268
- [VARIABLE_NAMES.backgroundColor]: styleProps.backgroundColor ?? theme.colors.neutral,
175269
- [VARIABLE_NAMES.spacing]: getDimensionValue(
175270
- styleProps.spacing ?? Dim.px(10)
175271
- // theme.keyValue.spacing,
175272
- ),
175273
- [VARIABLE_NAMES.dividerHeight]: getDimensionValue(
175274
- ((_e2 = styleProps.divider) == null ? void 0 : _e2.size) ?? Dim.px(1)
175275
- // theme.keyValue.divider.size,
175276
- ),
175277
- [VARIABLE_NAMES.dividerColor]: ((_f2 = styleProps.divider) == null ? void 0 : _f2.color) ?? theme.colors.neutral100
175278
- // theme.keyValue.divider.color,
175279
- // [VARIABLE_NAMES.spacingDarkSVG]: `url(${spacingDarkSVG})`,
175280
- // [VARIABLE_NAMES.spacingSVG]: `url(${spacingSVG})`,
175281
- };
175282
- };
175283
- const CanvasSpacingClass = styleAsClass`
175284
- position: absolute;
175285
- top: 100%;
175286
- left: -1px;
175287
- right: -1px;
175288
- height: var(--kv-spacing);
175289
- box-sizing: border-box;
175290
- pointer-events: none;
175291
-
175292
- opacity: 0.4;
175293
- transition: opacity 0.1s;
175294
-
175295
- &[data-dark-theme="true"] {
175296
- background: var(${VARIABLE_NAMES.spacingDarkSVG});
175297
- }
175298
- &[data-dark-theme="false"] {
175299
- background: var(${VARIABLE_NAMES.spacingSVG});
175300
- }
175301
-
175302
- &[data-edit-mode="false"], &:not(.selected) {
175303
- display: none;
175304
- }
175305
-
175306
- &.hovered {
175307
- opacity: 1;
175308
- }
175309
- `;
175310
- const KeyValueComponentClass = styleAsClass`
175311
- display: flex;
175312
- flex-direction: column;
175313
- gap: var(${VARIABLE_NAMES.spacing});
175314
-
175315
- overflow: auto;
175316
-
175317
- border-style: solid;
175318
-
175319
- border-top-width: var(${VARIABLE_NAMES.borderTopWidth});
175320
- border-right-width: var(${VARIABLE_NAMES.borderRightWidth});
175321
- border-bottom-width: var(${VARIABLE_NAMES.borderBottomWidth});
175322
- border-left-width: var(${VARIABLE_NAMES.borderLeftWidth});
175323
- border-color: var(${VARIABLE_NAMES.borderColor});
175324
-
175325
- border-top-right-radius: var(${VARIABLE_NAMES.borderTopRightRadius});
175326
- border-top-left-radius: var(${VARIABLE_NAMES.borderTopLeftRadius});
175327
- border-bottom-right-radius: var(${VARIABLE_NAMES.borderBottomRightRadius});
175328
- border-bottom-left-radius: var(${VARIABLE_NAMES.borderBottomLeftRadius});
175329
-
175330
- background-color: var(${VARIABLE_NAMES.backgroundColor});
175331
-
175332
- padding-left: var(${VARIABLE_NAMES.paddingLeft});
175333
- padding-right: var(${VARIABLE_NAMES.paddingRight});
175334
- padding-top: var(${VARIABLE_NAMES.paddingTop});
175335
- padding-bottom: var(${VARIABLE_NAMES.paddingBottom});
175336
- `;
175337
- const KeyValueEntryClass = styleAsClass`
175338
- display: flex;
175339
- position: relative;
175340
-
175341
- &:not(:last-child)::after {
175342
- content: "";
175343
- position: absolute;
175344
-
175345
- // Center the divider between the two entries
175346
- bottom: calc(var(${VARIABLE_NAMES.spacing}) * -1 / 2 - var(${VARIABLE_NAMES.dividerHeight}) / 2);
175347
- left: calc(var(${VARIABLE_NAMES.paddingLeft}) * -1);
175348
- right: calc(var(${VARIABLE_NAMES.paddingRight}) * -1);
175349
-
175350
- background-color: var(${VARIABLE_NAMES.dividerColor});
175351
- height: var(${VARIABLE_NAMES.dividerHeight});
175352
- }
175353
-
175354
- &:not(.${CLASS_NAMES.KEY_VALUE_ENTRY_VERTICAL}) {
175355
- align-items: center;
175356
- gap: 10px;
175357
-
175358
- .${PropertyKeyWrapperClass} {
175359
- flex: 0 0 var(${VARIABLE_NAMES.labelWidth});
175360
- max-width: var(${VARIABLE_NAMES.labelWidth});
175361
- }
175362
- }
175363
-
175364
- &.${CLASS_NAMES.KEY_VALUE_ENTRY_VERTICAL} {
175365
- flex-direction: column;
175366
- gap: 4px;
175367
-
175368
- .${ValueWrapperClass} {
175369
- justify-content: flex-start;
175370
- }
175371
- }
175372
-
175373
- &:last-child > .${CanvasSpacingClass} {
175374
- display: none;
175375
- }
175376
- `;
175377
- const useLabelStyles = (keyProps, theme) => {
175378
- return useTypographyStyling({
175379
- theme,
175380
- textStyle: keyProps == null ? void 0 : keyProps.textStyle,
175381
- defaultTextStyleVariant: DEFAULT_KEY_VALUE_WIDGET_KEY_STYLE_VARIANT,
175382
- applyClassNameStylesToStyle: true
175383
- });
175384
- };
175385
- const useInputStyles = (valueProps, theme) => {
175386
- return useTypographyStyling({
175387
- theme,
175388
- textStyle: valueProps == null ? void 0 : valueProps.textStyle,
175389
- defaultTextStyleVariant: DEFAULT_KEY_VALUE_WIDGET_VALUE_STYLE_VARIANT,
175390
- applyClassNameStylesToStyle: true
175391
- });
175392
- };
175393
- const useLinkStyles = (valueProps, theme) => {
175394
- return useTypographyStyling({
175395
- theme,
175396
- textStyle: {
175397
- ...(valueProps == null ? void 0 : valueProps.textStyle) ?? theme.typographies.link,
175398
- variant: "link"
175399
- },
175400
- defaultTextStyleVariant: "link",
175401
- priorityStyle: {
175402
- fontWeight: theme.typographies.link.fontWeight,
175403
- color: theme.typographies.link.textColor.default
175404
- }
175405
- });
175406
- };
175407
- const useEntryClassNames = (keyProps) => {
175408
- return useMemo$2(() => {
175409
- let classNames2 = KeyValueEntryClass;
175410
- const isVertical = (keyProps == null ? void 0 : keyProps.position) === "top";
175411
- if (isVertical) {
175412
- classNames2 += ` ${CLASS_NAMES.KEY_VALUE_ENTRY_VERTICAL}`;
175413
- }
175414
- return classNames2;
175415
- }, [keyProps == null ? void 0 : keyProps.position]);
175416
- };
175417
- const KeyValueComponent = (props) => {
175418
- var _a2;
175419
- const cssVariableDeclarations = useMemo$2(
175420
- () => {
175421
- var _a3;
175422
- return createCssVariables({
175423
- theme: props.theme,
175424
- styleProps: props.styleProps,
175425
- keyWidth: (_a3 = props.keyProps) == null ? void 0 : _a3.width
175426
- });
175427
- },
175428
- [props.theme, props.styleProps, (_a2 = props.keyProps) == null ? void 0 : _a2.width]
175429
- );
175430
- const keyStyles = useLabelStyles(props.keyProps, props.theme);
175431
- const valueStyles = useInputStyles(props.valueProps, props.theme);
175432
- const entryClassNames = useEntryClassNames(props.keyProps);
175433
- const keyIconSize = getIconSizeBasedOnFontSize(
175434
- getFontSizeInPxFromTextStyle({
175435
- nestedProps: keyStyles.style,
175436
- typographies: props.theme.typographies,
175437
- textStyleVariant: keyStyles.textStyleVariant,
175438
- defaultTextStyleVariant: DEFAULT_KEY_VALUE_WIDGET_VALUE_STYLE_VARIANT
175439
- })
175440
- );
175441
- const valueIconSize = getIconSizeBasedOnFontSize(
175442
- getFontSizeInPxFromTextStyle({
175443
- nestedProps: valueStyles.style,
175444
- typographies: props.theme.typographies,
175445
- textStyleVariant: valueStyles.textStyleVariant,
175446
- defaultTextStyleVariant: DEFAULT_KEY_VALUE_WIDGET_VALUE_STYLE_VARIANT
175447
- })
175448
- );
175449
- const linkStyles = useLinkStyles(props.valueProps, props.theme);
175450
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
175451
- "div",
175452
- {
175453
- style: cssVariableDeclarations,
175454
- className: `${KeyValueComponentClass} ${props.isLoading ? SKELETON : ""}`,
175455
- children: props.propertiesOrder.map((key2) => {
175456
- const property = props.properties[key2];
175457
- if (!property) {
175458
- console.warn(
175459
- `KeyValueComponent: Property ${key2} not defined in widget properties`
175460
- );
175461
- return null;
175462
- }
175463
- if (!property.isVisible) {
175464
- return null;
175465
- }
175466
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: entryClassNames, children: [
175467
- /* @__PURE__ */ jsxRuntimeExports.jsx(
175468
- "span",
175469
- {
175470
- className: `${CanvasSpacingClass}`,
175471
- "data-dark-theme": props.theme.mode === ThemeMode$1.DARK,
175472
- "data-edit-mode": true
175473
- }
175474
- ),
175475
- /* @__PURE__ */ jsxRuntimeExports.jsx(
175476
- KeyValuePropertyKey,
175477
- {
175478
- style: keyStyles.style,
175479
- property,
175480
- keyProps: props.keyProps,
175481
- iconSize: keyIconSize
175482
- }
175483
- ),
175484
- /* @__PURE__ */ jsxRuntimeExports.jsx(
175485
- KeyValuePropertyValue,
175486
- {
175487
- theme: props.theme,
175488
- valueStyles,
175489
- property,
175490
- data: props.sourceData ?? {},
175491
- valueProps: props.valueProps,
175492
- iconSize: valueIconSize,
175493
- width: props.width,
175494
- height: props.height,
175495
- linkStyles
175496
- }
175497
- )
175498
- ] }, key2);
175499
- })
175500
- }
175501
- );
175502
- };
175503
- function getData(props) {
175504
- const properties2 = getProperties(props.sourceData ?? {}, props.properties);
175505
- return Object.values(properties2).reduce(
175506
- (accum, property) => {
175507
- let value = "computedValue" in property && property.computedValue || props.sourceData && props.sourceData[property.key];
175508
- if ((property.type === "percentage" || property.type === "number" || property.type === "currency") && typeof value === "string") {
175509
- const trimmed = value.trim();
175510
- if (!trimmed) {
175511
- value = void 0;
175512
- } else {
175513
- const num = Number(trimmed);
175514
- value = !isNaN(num) && isFinite(num) ? parseFloat(value) : NaN;
175515
- }
175516
- }
175517
- accum[property.key] = value;
175518
- return accum;
175519
- },
175520
- {}
175521
- );
175522
- }
175523
- const KEY_VALUE_WIDGET_PROPERTY_TYPES = [
175524
- {
175525
- label: "Plain text",
175526
- value: KeyValuePropertyType.TEXT
175527
- },
175528
- {
175529
- label: "Number",
175530
- value: KeyValuePropertyType.NUMBER
175531
- },
175532
- {
175533
- label: "Currency",
175534
- value: KeyValuePropertyType.CURRENCY
175535
- },
175536
- {
175537
- label: "Percentage",
175538
- value: KeyValuePropertyType.PERCENTAGE
175539
- },
175540
- {
175541
- label: "Image",
175542
- value: KeyValuePropertyType.IMAGE
175543
- },
175544
- {
175545
- label: "Video",
175546
- value: KeyValuePropertyType.VIDEO
175547
- },
175548
- {
175549
- label: "Date",
175550
- value: KeyValuePropertyType.DATE
175551
- },
175552
- {
175553
- label: "Button",
175554
- value: KeyValuePropertyType.BUTTON
175555
- },
175556
- {
175557
- label: "Link",
175558
- value: KeyValuePropertyType.LINK
175559
- },
175560
- {
175561
- label: "Boolean",
175562
- value: KeyValuePropertyType.BOOLEAN
175563
- },
175564
- {
175565
- label: "Tags",
175566
- value: KeyValuePropertyType.TAGS
175567
- },
175568
- {
175569
- label: "Email",
175570
- value: KeyValuePropertyType.EMAIL
175571
- }
175572
- ];
175573
- ({
175574
- width: Dimension.px(1)
175575
- });
175576
- const textProperties = {
175577
- general: {
175578
- displayedValue: Prop.string().readAndWrite().default("{{value}}").propertiesPanel({
175579
- label: "Displayed value",
175580
- helpText: "The value displayed for the key-value pair",
175581
- // controlType: "COMPUTE_KEY_VALUE_PROPERTY",
175582
- controlType: "INPUT_TEXT",
175583
- isTriggerProperty: false,
175584
- isRemovable: true,
175585
- visibility: "SHOW_NAME"
175586
- // TODO: Add editor arguments
175587
- })
175588
- }
175589
- };
175590
- const buttonProperties = {
175591
- general: {
175592
- "typeSpecificProps.buttonLabel": Prop.string().readAndWrite().default("Click me").propertiesPanel({
175593
- label: "Button label",
175594
- // controlType: "COMPUTE_KEY_VALUE_PROPERTY",
175595
- isTriggerProperty: false,
175596
- controlType: "INPUT_TEXT"
175597
- // TODO: Add editor arguments
175598
- }),
175599
- "typeSpecificProps.isDisabled": Prop.boolean().readAndWrite().default(false).propertiesPanel({
175600
- label: "Disabled",
175601
- controlType: "SWITCH",
175602
- helpText: "Disables user interaction with this component",
175603
- isJSConvertible: true
175604
- })
175605
- },
175606
- appearance: {
175607
- // TODO: add union for different button styles
175608
- "typeSpecificProps.buttonStyle": Prop.string().default("primary").propertiesPanel({
175609
- label: "Button style",
175610
- controlType: "DROP_DOWN",
175611
- helpText: "Changes the style of the button",
175612
- options: [
175613
- {
175614
- label: "Primary",
175615
- value: "primary"
175616
- },
175617
- {
175618
- label: "Secondary",
175619
- value: "secondary"
175620
- },
175621
- {
175622
- label: "Tertiary",
175623
- value: "tertiary"
175624
- }
175625
- ],
175626
- isJSConvertible: true,
175627
- isTriggerProperty: false
175628
- }),
175629
- "typeSpecificProps.buttonBackgroundColor": Prop.string().propertiesPanel({
175630
- label: "Background",
175631
- controlType: "COLOR_PICKER",
175632
- helpText: "Changes the color of the button",
175633
- isJSConvertible: true,
175634
- isTriggerProperty: false
175635
- // TODO: add hidden logic
175636
- }),
175637
- "typeSpecificProps.buttonLabelColor": Prop.string().propertiesPanel({
175638
- helpText: "Changes the color of the label",
175639
- label: "Label color",
175640
- controlType: "COLOR_PICKER",
175641
- isJSConvertible: true,
175642
- isTriggerProperty: false
175643
- // TODO: add hidden logic
175644
- })
175645
- },
175646
- eventHandlers: {
175647
- "typeSpecificProps.onClick": Prop.event().propertiesPanel({
175648
- label: "On click",
175649
- helpText: "Triggers an action when the button is clicked"
175650
- })
175651
- }
175652
- };
175653
- const currencyProperties = {
175654
- general: {
175655
- "typeSpecificProps.currency": Prop.string().readAndWrite().default("USD").propertiesPanel({
175656
- label: "Currency",
175657
- controlType: "DROP_DOWN",
175658
- options: CurrencyList$1.map((currency) => ({
175659
- label: currency,
175660
- value: currency
175661
- })),
175662
- helpText: "The three letter ISO 4217 currency code"
175663
- }),
175664
- "typeSpecificProps.notation": Prop.string().readAndWrite().propertiesPanel({
175665
- label: "Number format",
175666
- controlType: "DROP_DOWN",
175667
- options: NUMBER_FORMATTING_OPTIONS,
175668
- helpText: "The display format of the number"
175669
- }),
175670
- "typeSpecificProps.minimumFractionDigits": Prop.number().readAndWrite().default(1).propertiesPanel({
175671
- label: "Min decimals",
175672
- helpText: "The minimum number of digits after the decimal separator",
175673
- controlType: "INPUT_TEXT",
175674
- isTriggerProperty: false,
175675
- placeholder: "# between 0-20",
175676
- isRemovable: true,
175677
- visibility: "SHOW_NAME"
175678
- }),
175679
- "typeSpecificProps.maximumFractionDigits": Prop.number().readAndWrite().default(2).propertiesPanel({
175680
- label: "Max decimals",
175681
- helpText: "The maximum number of digits after the decimal separator",
175682
- controlType: "INPUT_TEXT",
175683
- isTriggerProperty: false,
175684
- placeholder: "# between 0-20",
175685
- isRemovable: true,
175686
- visibility: "SHOW_NAME"
175687
- })
175688
- }
175689
- };
175690
- const numberProperties = {
175691
- general: {
175692
- "typeSpecificProps.notation": Prop.string().readAndWrite().propertiesPanel({
175693
- label: "Number format",
175694
- controlType: "DROP_DOWN",
175695
- options: NUMBER_FORMATTING_OPTIONS,
175696
- helpText: "The display format of the number"
175697
- }),
175698
- "typeSpecificProps.minimumFractionDigits": Prop.number().readAndWrite().default(1).propertiesPanel({
175699
- label: "Min decimals",
175700
- helpText: "The minimum number of digits after the decimal separator",
175701
- controlType: "INPUT_TEXT",
175702
- isTriggerProperty: false,
175703
- placeholder: "# between 0-20",
175704
- isRemovable: true,
175705
- visibility: "SHOW_NAME"
175706
- }),
175707
- "typeSpecificProps.maximumFractionDigits": Prop.number().readAndWrite().default(2).propertiesPanel({
175708
- label: "Max decimals",
175709
- helpText: "The maximum number of digits after the decimal separator",
175710
- controlType: "INPUT_TEXT",
175711
- isTriggerProperty: false,
175712
- placeholder: "# between 0-20",
175713
- isRemovable: true,
175714
- visibility: "SHOW_NAME"
175715
- })
175716
- }
175717
- };
175718
- const percentageProperties = {
175719
- general: {
175720
- "typeSpecificProps.notation": Prop.string().readAndWrite().propertiesPanel({
175721
- label: "Number format",
175722
- controlType: "DROP_DOWN",
175723
- options: NUMBER_FORMATTING_OPTIONS,
175724
- helpText: "The display format of the number"
175725
- }),
175726
- "typeSpecificProps.minimumFractionDigits": Prop.number().readAndWrite().default(1).propertiesPanel({
175727
- label: "Min decimals",
175728
- helpText: "The minimum number of digits after the decimal separator",
175729
- controlType: "INPUT_TEXT",
175730
- isTriggerProperty: false,
175731
- placeholder: "# between 0-20",
175732
- isRemovable: true,
175733
- visibility: "SHOW_NAME"
175734
- }),
175735
- "typeSpecificProps.maximumFractionDigits": Prop.number().readAndWrite().default(2).propertiesPanel({
175736
- label: "Max decimals",
175737
- helpText: "The maximum number of digits after the decimal separator",
175738
- controlType: "INPUT_TEXT",
175739
- isTriggerProperty: false,
175740
- placeholder: "# between 0-20",
175741
- isRemovable: true,
175742
- visibility: "SHOW_NAME"
175743
- })
175744
- }
175745
- };
175746
- const linkProperties = {
175747
- general: {
175748
- "typeSpecificProps.linkLabel": Prop.string().readAndWrite().default("{{value}}").propertiesPanel({
175749
- label: "Link label",
175750
- // controlType: "COMPUTE_KEY_VALUE_PROPERTY",
175751
- isTriggerProperty: false,
175752
- controlType: "INPUT_TEXT",
175753
- isRemovable: true,
175754
- visibility: "SHOW_NAME"
175755
- // TODO: Add editor arguments
175756
- }),
175757
- "typeSpecificProps.openInNewTab": Prop.boolean().readAndWrite().default(true).propertiesPanel({
175758
- label: "Open in a new tab",
175759
- controlType: "SWITCH",
175760
- isTriggerProperty: false
175761
- })
175762
- }
175763
- };
175764
- const imageProperties = {
175765
- general: {
175766
- "typeSpecificProps.openImageUrl": Prop.boolean().readAndWrite().default(false).propertiesPanel({
175767
- label: "Open URL on click",
175768
- controlType: "SWITCH",
175769
- helpText: "Opens the image in a new tab when the image is clicked",
175770
- isTriggerProperty: false,
175771
- isJSConvertible: true
175772
- })
175773
- },
175774
- appearance: {
175775
- "typeSpecificProps.imageSize": Prop.string().default(ImageSize.Fixed).readAndWrite().propertiesPanel({
175776
- label: "Image sizing",
175777
- controlType: "DROP_DOWN",
175778
- helpText: "Controls the sizing behavior of the image",
175779
- options: [
175780
- {
175781
- label: "Fixed",
175782
- value: ImageSize.Fixed,
175783
- subText: "Image is cropped to a fixed size"
175784
- },
175785
- {
175786
- label: "Fit",
175787
- value: ImageSize.Fit,
175788
- subText: "Image will fill as much space as possible while maintaining the aspect ratio"
175789
- },
175790
- {
175791
- label: "Cover",
175792
- value: ImageSize.Cover,
175793
- subText: "Image covers the entire space and is clipped horizontally or vertically as needed"
175794
- },
175795
- {
175796
- label: "Grow vertically",
175797
- value: ImageSize.Grow,
175798
- subText: "Image fills the width of the property. If necessary, the row height will grow to maintain the aspect ratio"
175799
- }
175800
- ],
175801
- isJSConvertible: true,
175802
- isTriggerProperty: false
175803
- }),
175804
- "typeSpecificProps.imageBorderRadius": Prop.any().default(Dim.percent(50)).propertiesPanel({
175805
- label: "Image border radius",
175806
- controlType: "DROP_DOWN",
175807
- helpText: "Controls the border radius of the image",
175808
- options: [
175809
- {
175810
- label: "0px",
175811
- value: Dim.px(0)
175812
- },
175813
- {
175814
- label: "4px",
175815
- value: Dim.px(4)
175816
- },
175817
- {
175818
- label: "50% (circular)",
175819
- value: Dim.percent(50)
175820
- }
175821
- ],
175822
- isJSConvertible: true,
175823
- isTriggerProperty: false
175824
- // TODO: Add optionValueToKey
175825
- // optionValueToKey: (value: Dim) => {
175826
- // return `${value?.value}${value?.mode}`;
175827
- // },
175828
- })
175829
- }
175830
- };
175831
- const dateProperties = {
175832
- general: {
175833
- "typeSpecificProps.dateInputFormat": Prop.string().readAndWrite().propertiesPanel({
175834
- helpText: "Sets the format of the selected date",
175835
- label: "Value format",
175836
- controlType: "DROP_DOWN",
175837
- options: DATE_INPUT_FORMATS,
175838
- isJSConvertible: true,
175839
- isTriggerProperty: false
175840
- }),
175841
- "typeSpecificProps.dateOutputFormat": Prop.string().readAndWrite().propertiesPanel({
175842
- helpText: "Sets the format of the date displayed in the UI",
175843
- label: "Display format",
175844
- controlType: "DROP_DOWN",
175845
- isJSConvertible: true,
175846
- options: DATE_OUTPUT_FORMATS,
175847
- isTriggerProperty: false
175848
- }).default(DEFAULT_DATE_OUTPUT_FORMAT),
175849
- // todo: this should actually be a union too (nested unions ?)
175850
- "typeSpecificProps.manageTimezone": Prop.boolean().readAndWrite().propertiesPanel({
175851
- helpText: "Allows you to control the timezone of the original dates and displayed dates",
175852
- label: "Manage timezone",
175853
- controlType: "SWITCH",
175854
- isJSConvertible: false,
175855
- isTriggerProperty: false
175856
- }),
175857
- "typeSpecificProps.valueTimezone": Prop.string().readAndWrite().propertiesPanel({
175858
- helpText: "Timezone of the original date",
175859
- label: "Value timezone",
175860
- controlType: "DROP_DOWN",
175861
- isJSConvertible: false,
175862
- options: TIMEZONE_OPTIONS,
175863
- isTriggerProperty: false
175864
- // TODO: Hide when manageTimezone is false
175865
- }),
175866
- "typeSpecificProps.displayTimezone": Prop.string().readAndWrite().propertiesPanel({
175867
- helpText: "Timezone of the displayed date",
175868
- label: "Display timezone",
175869
- controlType: "DROP_DOWN",
175870
- isJSConvertible: false,
175871
- options: TIMEZONE_OPTIONS,
175872
- isTriggerProperty: false
175873
- // TODO: Hide when manageTimezone is false
175874
- })
175875
- }
175876
- };
175877
- const emailProperties = {};
175878
- const booleanProperties = {
175879
- general: {
175880
- "typeSpecificProps.booleanStyleFalse": Prop.string().readAndWrite().propertiesPanel({
175881
- label: "False display",
175882
- controlType: "RADIO_BUTTON_GROUP",
175883
- options: [
175884
- {
175885
- label: "Empty",
175886
- value: BooleanStyleFalse.EMPTY
175887
- },
175888
- {
175889
- label: "Close",
175890
- isIcon: true,
175891
- icon: "CLOSE",
175892
- value: BooleanStyleFalse.CLOSE
175893
- },
175894
- {
175895
- label: "Minus",
175896
- isIcon: true,
175897
- icon: "MINUS",
175898
- value: BooleanStyleFalse.MINUS
175899
- }
175900
- ]
175901
- })
175902
- }
175903
- };
175904
- const videoProperties = {};
175905
- const tagsProperties = {
175906
- appearance: {
175907
- "typeSpecificProps.textWrap": Prop.boolean().propertiesPanel({
175908
- label: "Wrap tags",
175909
- controlType: "SWITCH",
175910
- isJSConvertible: true,
175911
- isTriggerProperty: false,
175912
- helpText: "If enabled, the tags will wrap within the cell"
175913
- }),
175914
- "typeSpecificProps.tagDisplayConfig": Prop.any().propertiesPanel({
175915
- label: "Custom tag colors",
175916
- controlType: "CUSTOM_TAG_COLORS",
175917
- headerControlType: "ADD_TAG_COLOR",
175918
- customJSControl: "INPUT_JS_EXPR",
175919
- isJSConvertible: true,
175920
- isTriggerProperty: false
175921
- })
175922
- }
175923
- };
175924
- const variantProperties = {
175925
- [KeyValuePropertyType.TEXT]: textProperties,
175926
- [KeyValuePropertyType.NUMBER]: numberProperties,
175927
- [KeyValuePropertyType.CURRENCY]: currencyProperties,
175928
- [KeyValuePropertyType.PERCENTAGE]: percentageProperties,
175929
- [KeyValuePropertyType.IMAGE]: imageProperties,
175930
- [KeyValuePropertyType.VIDEO]: videoProperties,
175931
- [KeyValuePropertyType.DATE]: dateProperties,
175932
- [KeyValuePropertyType.BUTTON]: buttonProperties,
175933
- [KeyValuePropertyType.LINK]: linkProperties,
175934
- [KeyValuePropertyType.BOOLEAN]: booleanProperties,
175935
- [KeyValuePropertyType.TAGS]: tagsProperties,
175936
- [KeyValuePropertyType.EMAIL]: emailProperties
175937
- };
175938
- const generateVariantsBySection = (section) => {
175939
- return Object.entries(variantProperties).reduce(
175940
- (acc, [type5, properties2]) => {
175941
- if (properties2[section]) {
175942
- acc.push({
175943
- type: Prop.literal(type5),
175944
- ...properties2[section]
175945
- });
175946
- }
175947
- return acc;
175948
- },
175949
- []
175950
- );
175951
- };
175952
- const keyValuePropertiesDefinition = {
175953
- general: Section.category(PropsPanelCategory.Content).children({
175954
- id: Prop.string().default("").readable()
175955
- }).add(
175956
- Prop.union({
175957
- shared: {
175958
- isDerived: Prop.boolean().default(false).readable()
175959
- },
175960
- variants: [
175961
- {
175962
- isDerived: Prop.literal(true),
175963
- key: Prop.string().default("").readAndWrite().propertiesPanel({
175964
- label: "Key",
175965
- helpText: "The key of the key-value pair",
175966
- controlType: "INPUT_TEXT",
175967
- isTriggerProperty: false
175968
- // TODO: Hide when property is not derived
175969
- })
175970
- },
175971
- {
175972
- isDerived: Prop.literal(false),
175973
- key: Prop.string().default("").readable()
175974
- }
175975
- ]
175976
- })
175977
- ).add({
175978
- displayedKey: Prop.string().default("email").propertiesPanel({
175979
- label: "Displayed key",
175980
- helpText: "The label displayed for the key-value pair",
175981
- // controlType: "COMPUTE_KEY_VALUE_PROPERTY",
175982
- controlType: "INPUT_TEXT",
175983
- isTriggerProperty: false,
175984
- isRemovable: true,
175985
- visibility: "SHOW_NAME"
175986
- // TODO: Add editor arguments
175987
- })
175988
- }).add(
175989
- Prop.union({
175990
- shared: {
175991
- isDerived: Prop.boolean().default(false).readable()
175992
- },
175993
- variants: [
175994
- {
175995
- isDerived: Prop.literal(true),
175996
- computedValue: Prop.string().readAndWrite().default("").propertiesPanel({
175997
- label: "Computed value",
175998
- helpText: "The value of the key-value pair",
175999
- // controlType: "COMPUTE_KEY_VALUE_PROPERTY",
176000
- controlType: "INPUT_TEXT",
176001
- isTriggerProperty: false,
176002
- isRemovable: true,
176003
- visibility: "SHOW_NAME"
176004
- // TODO: Add editor arguments
176005
- })
176006
- }
176007
- ]
176008
- })
176009
- ).add(
176010
- Prop.union({
176011
- shared: {
176012
- type: Prop.string().readAndWrite().default(KeyValuePropertyType.TEXT).propertiesPanel({
176013
- label: "Type",
176014
- helpText: "The type of the key-value pair",
176015
- controlType: "DROP_DOWN",
176016
- options: KEY_VALUE_WIDGET_PROPERTY_TYPES
176017
- // TODO: Add update hook to update computedValue when type changes
176018
- })
176019
- },
176020
- variants: generateVariantsBySection("general")
176021
- })
176022
- ).add({
176023
- isVisible: Prop.boolean().readAndWrite().default(true).propertiesPanel({
176024
- label: "Visible",
176025
- helpText: "Whether the key-value pair is visible",
176026
- controlType: "SWITCH",
176027
- isTriggerProperty: false
176028
- })
176029
- }),
176030
- appearance: Section.category(PropsPanelCategory.Appearance).children({
176031
- "keyProps.icon": Prop.string().readAndWrite().default("info").propertiesPanel({
176032
- label: "Key icon",
176033
- helpText: "Select an icon to be displayed alongside the property key",
176034
- controlType: "ICON_SELECTOR",
176035
- isTriggerProperty: false,
176036
- isJSConvertible: true,
176037
- customJSControl: "CODE_EDITOR_ICON_SELECTOR",
176038
- isRemovable: true,
176039
- visibility: "SHOW_NAME",
176040
- defaultOnAdd: "info"
176041
- // TODO: Hide when icon is not set
176042
- }),
176043
- "keyProps.iconPosition": Prop.string().readAndWrite().default("left").propertiesPanel({
176044
- helpText: "The alignment of the icon",
176045
- label: "Icon position",
176046
- controlType: "RADIO_BUTTON_GROUP",
176047
- options: [
176048
- {
176049
- icon: "ICON_LEFT_ALIGN",
176050
- value: "left",
176051
- label: "Left"
176052
- },
176053
- {
176054
- icon: "ICON_RIGHT_ALIGN",
176055
- value: "right",
176056
- label: "Right"
176057
- }
176058
- ],
176059
- isTriggerProperty: false
176060
- }),
176061
- "valueProps.icon": Prop.string().readAndWrite().default("info").propertiesPanel({
176062
- label: "Value icon",
176063
- helpText: "Select an icon to be displayed alongside the property value",
176064
- controlType: "ICON_SELECTOR",
176065
- isRemovable: true,
176066
- visibility: "SHOW_NAME",
176067
- defaultOnAdd: "info"
176068
- // TODO: Hide when icon is not set
176069
- // TODO: Add update hook to update email icon when icon changes
176070
- }),
176071
- "valueProps.iconPosition": Prop.string().readAndWrite().default("left").propertiesPanel({
176072
- helpText: "The alignment of the value icon",
176073
- label: "Icon position",
176074
- controlType: "RADIO_BUTTON_GROUP",
176075
- options: [
176076
- {
176077
- icon: "ICON_LEFT_ALIGN",
176078
- value: "left",
176079
- label: "Left"
176080
- },
176081
- {
176082
- icon: "ICON_RIGHT_ALIGN",
176083
- value: "right",
176084
- label: "Right"
176085
- }
176086
- ],
176087
- isTriggerProperty: false
176088
- // TODO: Hide when icon is not set
176089
- })
176090
- }).add(
176091
- Prop.union({
176092
- shared: {
176093
- type: Prop.string()
176094
- },
176095
- variants: generateVariantsBySection("appearance")
176096
- })
176097
- ),
176098
- eventHandlers: Section.category(PropsPanelCategory.EventHandlers).add(
176099
- Prop.union({
176100
- shared: {
176101
- type: Prop.string()
176102
- },
176103
- variants: generateVariantsBySection("eventHandlers")
176104
- })
176105
- )
176106
- };
176107
- const propertiesDefinition$8 = {
176108
- general: Section.category(PropsPanelCategory.Content).children({
176109
- sourceData: Prop.any().readAndWrite().propertiesPanel({
176110
- label: "Source data",
176111
- placeholder: 'Enter { "col1": "val1" }',
176112
- controlType: "INPUT_EXPR",
176113
- helpText: "The object to be displayed",
176114
- forceVertical: true,
176115
- isTriggerProperty: false,
176116
- isJSConvertible: false
176117
- }),
176118
- properties: Prop.record(keyValuePropertiesDefinition).propertiesPanel({
176119
- label: "Key value pairs",
176120
- helpText: "Properties to display",
176121
- controlType: "KEY_VALUE_PROPERTIES",
176122
- headerControlType: "ADD_KEYVALUE_PROPERTY",
176123
- childrenDisplayMode: {
176124
- type: "popover",
176125
- title: "Edit property",
176126
- panelIdPropertyName: "id",
176127
- titlePropertyName: "key"
176128
- }
176129
- }),
176130
- propertiesOrder: Prop.any().readable().default([])
176131
- }),
176132
- appearance: Section.category(PropsPanelCategory.Appearance).children({
176133
- "keyProps.position": Prop.string().readAndWrite().default("left").propertiesPanel({
176134
- label: "Key position",
176135
- controlType: "RADIO_BUTTON_GROUP",
176136
- options: [
176137
- { label: "Left", value: "left" },
176138
- { label: "Top", value: "top" }
176139
- ]
176140
- // TODO: Add update hook to update valueProps.position when position changes
176141
- }),
176142
- "keyProps.keyStyle": Prop.any().propertiesPanel({
176143
- label: "Key style",
176144
- controlType: "TEXT_STYLE"
176145
- }),
176146
- "keyProps.textWrap": Prop.boolean().readAndWrite().default(false).propertiesPanel({
176147
- label: "Wrap key",
176148
- controlType: "SWITCH",
176149
- helpText: "If enabled, the key text will wrap",
176150
- isJSConvertible: true,
176151
- isTriggerProperty: false
176152
- }),
176153
- "valueProps.valueStyle": Prop.any().propertiesPanel({
176154
- label: "Value style",
176155
- controlType: "TEXT_STYLE"
176156
- }),
176157
- "valueProps.textWrap": Prop.boolean().readAndWrite().default(false).propertiesPanel({
176158
- label: "Wrap value",
176159
- controlType: "SWITCH",
176160
- helpText: "If enabled, the value text will wrap",
176161
- isJSConvertible: true,
176162
- isTriggerProperty: false
176163
- }),
176164
- "styleProps.backgroundColor": Prop.string().propertiesPanel({
176165
- label: "Background color",
176166
- controlType: "COLOR_PICKER"
176167
- }),
176168
- "styleProps.border": Prop.any().propertiesPanel({
176169
- label: "Border",
176170
- controlType: "BORDER_CONTROL"
176171
- }),
176172
- "styleProps.borderRadius": Prop.any().propertiesPanel({
176173
- label: "Border radius",
176174
- controlType: "BORDER_RADIUS_CONTROL"
176175
- }),
176176
- "styleProps.divider": Prop.any().default(() => ({
176177
- size: Dim.px(1),
176178
- color: Theme.colors.neutral100
176179
- })).propertiesPanel({
176180
- label: "Divider",
176181
- helpText: "Display dividers between key value pairs",
176182
- controlType: "COLORED_DIMENSION_CONTROL",
176183
- isJSConvertible: false,
176184
- isTriggerProperty: false,
176185
- isRemovable: true,
176186
- visibility: "SHOW_NAME"
176187
- })
176188
- }),
176189
- layout: Section.category(PropsPanelCategory.Layout).children({
176190
- ...size$2(),
176191
- keyProps: Prop.any().default({}),
176192
- "keyProps.width": Prop.any().readAndWrite().propertiesPanel({
176193
- options: [
176194
- {
176195
- label: "Percentage",
176196
- value: "%",
176197
- labelWhenSelected: "%",
176198
- subText: "Key takes up a % of entry's width"
176199
- },
176200
- {
176201
- label: "Pixels",
176202
- labelWhenSelected: "px",
176203
- value: "px",
176204
- subText: "Width in pixels that remains constant"
176205
- }
176206
- ],
176207
- controlType: "SIMPLE_SIZE_CONTROL",
176208
- label: "Key width"
176209
- }),
176210
- "valueProps.position": Prop.string().readAndWrite().default("left").propertiesPanel({
176211
- label: "Value alignment",
176212
- controlType: "RADIO_BUTTON_GROUP",
176213
- options: [
176214
- { label: "LEFT", value: "left" },
176215
- { label: "RIGHT", value: "right" }
176216
- ],
176217
- helpText: "Position the value to the right or left"
176218
- }),
176219
- ...visible()
176220
- }),
176221
- derived: Section.category(PropsPanelCategory.Derived).children({
176222
- data: Prop.any().readable().default(function() {
176223
- return getData(this);
176224
- })
176225
- })
176226
- };
176227
- const SbKeyValue = registerSbComponent(
176228
- "SbKeyValue",
176229
- {
176230
- propertiesDefinition: propertiesDefinition$8
176231
- },
176232
- (props) => {
176233
- const passthroughProps = usePassthroughProps(props);
176234
- const { theme } = useTheme();
176235
- const properties2 = getProperties(props.sourceData ?? {}, props.properties);
176236
- const propertiesOrder = getPropertiesOrder(
176237
- properties2 ?? {},
176238
- props.propertiesOrder ?? []
176239
- );
176240
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ...passthroughProps, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
176241
- KeyValueComponent,
176242
- {
176243
- sourceData: props.sourceData,
176244
- theme,
176245
- styleProps: props.styleProps ?? {},
176246
- keyProps: props.keyProps,
176247
- valueProps: props.valueProps,
176248
- widgetId: props.widgetId,
176249
- properties: properties2,
176250
- propertiesOrder,
176251
- width: props.width,
176252
- height: props.height
176253
- }
176254
- ) });
176255
- }
176256
- );
176257
174577
  const layoutPropDef = {
176258
174578
  layout: basicLayout()
176259
174579
  };
@@ -191649,145 +189969,144 @@ function requireClient() {
191649
189969
  }
191650
189970
  var clientExports = requireClient();
191651
189971
  export {
191652
- HashRouter as $,
189972
+ IDLE_BLOCKER as $,
191653
189973
  AppStateVarPersistence6 as A,
191654
- navigateTo as B,
191655
- setQueryParams as C,
191656
- download as D,
191657
- showAlert as E,
191658
- logoutIntegrations as F,
191659
- registerScope as G,
191660
- registerPage as H,
189974
+ setQueryParams as B,
189975
+ download as C,
189976
+ showAlert as D,
189977
+ logoutIntegrations as E,
189978
+ registerScope as F,
189979
+ registerPage as G,
189980
+ createSbScope as H,
191661
189981
  IconSize$2 as I,
191662
- createSbScope as J,
191663
- Global as K,
191664
- Embed as L,
191665
- Env as M,
191666
- SbEvent as N,
191667
- useUpdateProperties as O,
189982
+ Global as J,
189983
+ Embed as K,
189984
+ Env as L,
189985
+ SbEvent as M,
189986
+ useUpdateProperties as N,
189987
+ sbComputed as O,
191668
189988
  Prop as P,
191669
- sbComputed as Q,
191670
- Dim as R,
189989
+ Dim as Q,
189990
+ SB as R,
191671
189991
  SbButton as S,
191672
189992
  Theme as T,
191673
- SB as U,
191674
- Outlet as V,
191675
- clientExports as W,
191676
- Await as X,
191677
- BrowserRouter as Y,
191678
- Form2 as Z,
189993
+ Outlet as U,
189994
+ clientExports as V,
189995
+ Await as W,
189996
+ BrowserRouter as X,
189997
+ Form2 as Y,
189998
+ HashRouter as Z,
191679
189999
  __awaiter as _,
191680
190000
  __generator as a,
191681
- href as a$,
191682
- IDLE_BLOCKER as a0,
191683
- IDLE_FETCHER as a1,
191684
- IDLE_NAVIGATION as a2,
191685
- Link as a3,
191686
- Links as a4,
191687
- MemoryRouter as a5,
191688
- Meta as a6,
191689
- NavLink as a7,
191690
- Navigate as a8,
191691
- Action as a9,
191692
- decodeViaTurboStream as aA,
191693
- deserializeErrors2 as aB,
191694
- getPatchRoutesOnNavigationFunction as aC,
191695
- getSingleFetchDataStrategy as aD,
191696
- invariant as aE,
191697
- mapRouteProperties as aF,
191698
- shouldHydrateRouteLoader as aG,
191699
- useFogOFWarDiscovery as aH,
191700
- useScrollRestoration as aI,
191701
- createBrowserRouter as aJ,
191702
- createCookie as aK,
191703
- createCookieSessionStorage as aL,
191704
- createHashRouter as aM,
191705
- createMemoryRouter as aN,
191706
- createMemorySessionStorage as aO,
191707
- createPath as aP,
191708
- createRequestHandler as aQ,
191709
- createRoutesFromChildren as aR,
191710
- createRoutesFromElements as aS,
191711
- createRoutesStub as aT,
191712
- createSearchParams as aU,
191713
- createSession as aV,
191714
- createSessionStorage as aW,
191715
- createStaticHandler2 as aX,
191716
- createStaticRouter as aY,
191717
- data as aZ,
191718
- generatePath as a_,
191719
- PrefetchPageLinks as aa,
191720
- Route as ab,
191721
- Router as ac,
191722
- RouterProvider as ad,
191723
- Routes as ae,
191724
- Scripts as af,
191725
- ScrollRestoration as ag,
191726
- ServerRouter as ah,
191727
- StaticRouter as ai,
191728
- StaticRouterProvider as aj,
191729
- DataRouterContext as ak,
191730
- DataRouterStateContext as al,
191731
- ErrorResponseImpl as am,
191732
- FetchersContext as an,
191733
- FrameworkContext as ao,
191734
- LocationContext as ap,
191735
- NavigationContext as aq,
191736
- RemixErrorBoundary as ar,
191737
- RouteContext as as,
191738
- ServerMode as at,
191739
- SingleFetchRedirectSymbol as au,
191740
- ViewTransitionContext as av,
191741
- createBrowserHistory as aw,
191742
- createClientRoutes as ax,
191743
- createClientRoutesWithHMRRevalidationOptOut as ay,
191744
- createRouter as az,
190001
+ isCookie as a$,
190002
+ IDLE_FETCHER as a0,
190003
+ IDLE_NAVIGATION as a1,
190004
+ Link as a2,
190005
+ Links as a3,
190006
+ MemoryRouter as a4,
190007
+ Meta as a5,
190008
+ NavLink as a6,
190009
+ Navigate as a7,
190010
+ Action as a8,
190011
+ PrefetchPageLinks as a9,
190012
+ deserializeErrors2 as aA,
190013
+ getPatchRoutesOnNavigationFunction as aB,
190014
+ getSingleFetchDataStrategy as aC,
190015
+ invariant as aD,
190016
+ mapRouteProperties as aE,
190017
+ shouldHydrateRouteLoader as aF,
190018
+ useFogOFWarDiscovery as aG,
190019
+ useScrollRestoration as aH,
190020
+ createBrowserRouter as aI,
190021
+ createCookie as aJ,
190022
+ createCookieSessionStorage as aK,
190023
+ createHashRouter as aL,
190024
+ createMemoryRouter as aM,
190025
+ createMemorySessionStorage as aN,
190026
+ createPath as aO,
190027
+ createRequestHandler as aP,
190028
+ createRoutesFromChildren as aQ,
190029
+ createRoutesFromElements as aR,
190030
+ createRoutesStub as aS,
190031
+ createSearchParams as aT,
190032
+ createSession as aU,
190033
+ createSessionStorage as aV,
190034
+ createStaticHandler2 as aW,
190035
+ createStaticRouter as aX,
190036
+ data as aY,
190037
+ generatePath as aZ,
190038
+ href as a_,
190039
+ Route as aa,
190040
+ Router as ab,
190041
+ RouterProvider as ac,
190042
+ Routes as ad,
190043
+ Scripts as ae,
190044
+ ScrollRestoration as af,
190045
+ ServerRouter as ag,
190046
+ StaticRouter as ah,
190047
+ StaticRouterProvider as ai,
190048
+ DataRouterContext as aj,
190049
+ DataRouterStateContext as ak,
190050
+ ErrorResponseImpl as al,
190051
+ FetchersContext as am,
190052
+ FrameworkContext as an,
190053
+ LocationContext as ao,
190054
+ NavigationContext as ap,
190055
+ RemixErrorBoundary as aq,
190056
+ RouteContext as ar,
190057
+ ServerMode as as,
190058
+ SingleFetchRedirectSymbol as at,
190059
+ ViewTransitionContext as au,
190060
+ createBrowserHistory as av,
190061
+ createClientRoutes as aw,
190062
+ createClientRoutesWithHMRRevalidationOptOut as ax,
190063
+ createRouter as ay,
190064
+ decodeViaTurboStream as az,
191745
190065
  IconSize as b,
191746
- isCookie as b0,
191747
- isRouteErrorResponse as b1,
191748
- isSession as b2,
191749
- matchPath as b3,
191750
- matchRoutes as b4,
191751
- parsePath as b5,
191752
- redirect as b6,
191753
- redirectDocument as b7,
191754
- renderMatches as b8,
191755
- replace2 as b9,
191756
- useParams as bA,
191757
- useResolvedPath as bB,
191758
- useRevalidator as bC,
191759
- useRouteError as bD,
191760
- useRouteLoaderData as bE,
191761
- useRoutes as bF,
191762
- useSearchParams as bG,
191763
- useSubmit as bH,
191764
- useViewTransitionState as bI,
191765
- resolvePath as ba,
191766
- HistoryRouter as bb,
191767
- unstable_RouterContextProvider as bc,
191768
- unstable_createContext as bd,
191769
- setDevServerHooks as be,
191770
- usePrompt as bf,
191771
- useActionData as bg,
191772
- useAsyncError as bh,
191773
- useAsyncValue as bi,
191774
- useBeforeUnload as bj,
191775
- useBlocker as bk,
191776
- useFetcher as bl,
191777
- useFetchers as bm,
191778
- useFormAction as bn,
191779
- useHref as bo,
191780
- useInRouterContext as bp,
191781
- useLinkClickHandler as bq,
191782
- useLoaderData as br,
191783
- useLocation as bs,
191784
- useMatch as bt,
191785
- useMatches as bu,
191786
- useNavigate as bv,
191787
- useNavigation as bw,
191788
- useNavigationType as bx,
191789
- useOutlet as by,
191790
- useOutletContext as bz,
190066
+ isRouteErrorResponse as b0,
190067
+ isSession as b1,
190068
+ matchPath as b2,
190069
+ matchRoutes as b3,
190070
+ parsePath as b4,
190071
+ redirect as b5,
190072
+ redirectDocument as b6,
190073
+ renderMatches as b7,
190074
+ replace2 as b8,
190075
+ resolvePath as b9,
190076
+ useResolvedPath as bA,
190077
+ useRevalidator as bB,
190078
+ useRouteError as bC,
190079
+ useRouteLoaderData as bD,
190080
+ useRoutes as bE,
190081
+ useSearchParams as bF,
190082
+ useSubmit as bG,
190083
+ useViewTransitionState as bH,
190084
+ HistoryRouter as ba,
190085
+ unstable_RouterContextProvider as bb,
190086
+ unstable_createContext as bc,
190087
+ setDevServerHooks as bd,
190088
+ usePrompt as be,
190089
+ useActionData as bf,
190090
+ useAsyncError as bg,
190091
+ useAsyncValue as bh,
190092
+ useBeforeUnload as bi,
190093
+ useBlocker as bj,
190094
+ useFetcher as bk,
190095
+ useFetchers as bl,
190096
+ useFormAction as bm,
190097
+ useHref as bn,
190098
+ useInRouterContext as bo,
190099
+ useLinkClickHandler as bp,
190100
+ useLoaderData as bq,
190101
+ useLocation as br,
190102
+ useMatch as bs,
190103
+ useMatches as bt,
190104
+ useNavigate as bu,
190105
+ useNavigation as bv,
190106
+ useNavigationType as bw,
190107
+ useOutlet as bx,
190108
+ useOutletContext as by,
190109
+ useParams as bz,
191791
190110
  SbSection as c,
191792
190111
  SbColumn as d,
191793
190112
  SbContainer as e,
@@ -191798,19 +190117,19 @@ export {
191798
190117
  SbTable as j,
191799
190118
  SbDropdown as k,
191800
190119
  SbCustom as l,
191801
- SbKeyValue as m,
191802
- SbCheckbox as n,
191803
- SbDatePicker as o,
190120
+ SbCheckbox as m,
190121
+ SbDatePicker as n,
190122
+ SbSwitch as o,
191804
190123
  pascalCase as p,
191805
- SbSwitch as q,
190124
+ SbIcon as q,
191806
190125
  registerComponent as r,
191807
- SbIcon as s,
191808
- SbImage as t,
191809
- SbVariable as u,
191810
- SbTimer as v,
191811
- SbApi as w,
191812
- SbProvider as x,
191813
- SbEventFlow as y,
191814
- copyToClipboard as z
191815
- };
191816
- //# sourceMappingURL=index-IwE7Zb_b.js.map
190126
+ SbImage as s,
190127
+ SbVariable as t,
190128
+ SbTimer as u,
190129
+ SbApi as v,
190130
+ SbProvider as w,
190131
+ SbEventFlow as x,
190132
+ copyToClipboard as y,
190133
+ navigateTo as z
190134
+ };
190135
+ //# sourceMappingURL=index-CX74kQ18.js.map