lucid-extension-sdk 0.0.446 → 0.0.448

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/commandtypes.d.ts +8 -1
  2. package/commandtypes.js +2 -2
  3. package/core/assertnever.js +1 -2
  4. package/core/base64.js +2 -3
  5. package/core/cardintegration/cardfielddisplaysettings.d.ts +2 -2
  6. package/core/cardintegration/cardfielddisplaysettings.js +2 -2
  7. package/core/cardintegration/cardintegrationautosyncconfig.d.ts +1 -1
  8. package/core/cardintegration/cardintegrationconfig.d.ts +23 -0
  9. package/core/cardintegration/cardintegrationconfig.js +10 -0
  10. package/core/cardintegration/cardpaneltabs/tab.js +3 -3
  11. package/core/cardintegration/cardpaneltabs/tabs/listtab.js +3 -3
  12. package/core/cardintegration/cardpaneltabs/tabs.js +5 -5
  13. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitem.js +4 -4
  14. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitemtag.js +4 -5
  15. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitemtexttag.js +3 -3
  16. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitemusertag.js +3 -3
  17. package/core/cardintegration/lucidcardintegration.d.ts +14 -3
  18. package/core/cardintegration/lucidcardintegration.js +2 -0
  19. package/core/cardintegration/lucidcardintegrationregistry.js +5 -1
  20. package/core/cardintegration/useritemeditpermissions.js +4 -4
  21. package/core/checks.js +29 -30
  22. package/core/data/datasource/datasourcetype.d.ts +3 -3
  23. package/core/data/datasource/datasourceutils.js +7 -7
  24. package/core/data/datasource/metadatatypes.d.ts +1 -1
  25. package/core/data/datasource/previewdatatypes.js +1 -2
  26. package/core/data/datasource/semanticcollection.d.ts +1 -1
  27. package/core/data/datasource/semanticrelationships.d.ts +1 -1
  28. package/core/data/datasource/semanticrelationships.js +2 -2
  29. package/core/data/datasource/serializeddatasourceproperties.d.ts +2 -2
  30. package/core/data/datasource/serializedimporteddatasource.d.ts +4 -4
  31. package/core/data/datasource/serializedupstreamconfig.d.ts +2 -2
  32. package/core/data/datasource/sourceforeignkeys.js +2 -3
  33. package/core/data/datasource/updatecreationpermission.d.ts +1 -1
  34. package/core/data/datasource/updatecreationpermission.js +2 -2
  35. package/core/data/datasource/upstreamconfig.js +3 -4
  36. package/core/data/datasource/upstreampatchtype.d.ts +2 -2
  37. package/core/data/fieldspecification.d.ts +8 -6
  38. package/core/data/fieldspecification.js +4 -3
  39. package/core/data/fieldtypedefinition/basefieldtypedefinition.js +4 -5
  40. package/core/data/fieldtypedefinition/collectionenumfieldtype.d.ts +1 -1
  41. package/core/data/fieldtypedefinition/collectionenumfieldtype.js +3 -3
  42. package/core/data/fieldtypedefinition/deserializedmapenumfieldtype.js +6 -6
  43. package/core/data/fieldtypedefinition/fieldtypearray.js +3 -3
  44. package/core/data/fieldtypedefinition/fieldtypedefinition.js +4 -5
  45. package/core/data/fieldtypedefinition/literalfieldtype.js +4 -4
  46. package/core/data/fieldtypedefinition/lucidfields.d.ts +1 -1
  47. package/core/data/fieldtypedefinition/ndimensionalfieldtypearray.js +5 -5
  48. package/core/data/fieldtypedefinition/scalarfieldtype.d.ts +1 -1
  49. package/core/data/fieldtypedefinition/semanticfields.d.ts +1 -1
  50. package/core/data/fieldtypedefinition/semantickind.d.ts +1 -1
  51. package/core/data/fieldtypedefinition/semantickind.js +3 -3
  52. package/core/data/fieldtypedefinition/utils.js +2 -3
  53. package/core/data/formulastring.js +1 -2
  54. package/core/data/lucidicon.js +1 -2
  55. package/core/data/luciduseravatar.js +1 -2
  56. package/core/data/referencekeys/serializedreferencekey.js +4 -4
  57. package/core/data/serializedfield/lucidfielddefaults.js +3 -3
  58. package/core/data/serializedfield/serializeddisplayoption.d.ts +5 -4
  59. package/core/data/serializedfield/serializeddisplayoption.js +1 -0
  60. package/core/data/serializedfield/serializedfielddefinition.d.ts +8 -8
  61. package/core/data/serializedfield/serializedfields.js +4 -4
  62. package/core/data/serializedfield/serializedschema.js +1 -2
  63. package/core/data/utils/getcollectionenumfieldcollection.js +1 -2
  64. package/core/data/utils/getcollectionenumfielditems.js +1 -2
  65. package/core/data/utils/getmaximalorderedsubset.js +1 -2
  66. package/core/defer.js +2 -3
  67. package/core/enum.js +5 -6
  68. package/core/format/arrayformat.js +3 -4
  69. package/core/format/enumformat.js +3 -4
  70. package/core/format/format.js +5 -5
  71. package/core/format/mapformat.js +1 -2
  72. package/core/format/maybestringifiedjsvalue.js +1 -2
  73. package/core/format/objectformat.d.ts +5 -1
  74. package/core/format/objectformat.js +8 -5
  75. package/core/format/opaqueformat.js +1 -2
  76. package/core/format/primitiveformat.js +4 -4
  77. package/core/format/recordformat.js +1 -2
  78. package/core/format/simpleformat.js +3 -3
  79. package/core/format/urlformat.d.ts +2 -0
  80. package/core/format/urlformat.js +19 -0
  81. package/core/identity.d.ts +1 -1
  82. package/core/iframe/iframeutils.js +4 -4
  83. package/core/importcardfromdetails/importcardfromdetails.js +3 -3
  84. package/core/iterable.js +3 -4
  85. package/core/jsonserializable.js +3 -4
  86. package/core/map.js +3 -3
  87. package/core/object.js +2 -3
  88. package/core/offsettype.js +2 -2
  89. package/core/opaque.js +2 -3
  90. package/core/primitivedata.d.ts +2 -0
  91. package/core/primitivedata.js +22 -16
  92. package/core/properties/datagraphic/badgeposition.d.ts +1 -1
  93. package/core/properties/datagraphic/badgeposition.js +16 -16
  94. package/core/properties/datagraphic/datagraphicindexes.js +3 -3
  95. package/core/properties/datagraphic/staticdatagraphicsettings.js +3 -4
  96. package/core/properties/fillcolor.js +2 -2
  97. package/core/properties/shadow.js +2 -3
  98. package/core/properties/strokestyle.js +3 -3
  99. package/core/pruners/pruners.js +5 -6
  100. package/core/result.js +4 -5
  101. package/core/rules/conditions.d.ts +6 -2
  102. package/core/rules/conditions.js +6 -1
  103. package/core/rules/conditiontype.d.ts +2 -1
  104. package/core/rules/conditiontype.js +1 -0
  105. package/core/serializeddataerror.js +1 -2
  106. package/core/sharedcardintegration/cardintegrationdefinitions.d.ts +23 -15
  107. package/core/sharedcardintegration/cardintegrationdefinitions.js +15 -15
  108. package/core/spreadsheetintegration/lucidspreadsheetintegration.d.ts +9 -1
  109. package/core/spreadsheetintegration/lucidspreadsheetintegrationregistry.d.ts +6 -0
  110. package/core/spreadsheetintegration/lucidspreadsheetintegrationregistry.js +20 -4
  111. package/core/unfurl/unfurldetails.js +3 -3
  112. package/core/unfurl/unfurliframe.js +6 -6
  113. package/core/unfurl/unfurlrefresherrortype.d.ts +1 -1
  114. package/core/unfurl/unfurlthumbnail.js +3 -3
  115. package/core/validators/compactvalidatorsandpruners.d.ts +41 -0
  116. package/core/validators/compactvalidatorsandpruners.js +67 -7
  117. package/core/validators/validators.js +38 -38
  118. package/data/branchedcollectionid.js +2 -3
  119. package/data/collectiondefinition.js +3 -3
  120. package/data/displayoptiondefinition.d.ts +7 -7
  121. package/data/displayoptiondefinition.js +21 -6
  122. package/data/fieldconstraintdefinition.d.ts +3 -5
  123. package/data/fieldconstraintdefinition.js +4 -4
  124. package/data/referencekeydefinition.js +3 -4
  125. package/data/schemadefinition.d.ts +2 -1
  126. package/data/schemadefinition.js +14 -6
  127. package/dataconnector/actions/getmergedpatches.js +1 -2
  128. package/dataconnector/actions/managewebhookresponsebody.js +1 -2
  129. package/dataconnector/actions/patch.js +3 -3
  130. package/dataconnector/actions/patch.test.js +5 -6
  131. package/dataconnector/actions/patchresponsebody.d.ts +2 -2
  132. package/dataconnector/actions/patchresponsebody.js +3 -3
  133. package/dataconnector/actions/serializedactions.js +2 -2
  134. package/dataconnector/datasourceupdatetypes.js +8 -7
  135. package/dataconnector/debugserver.js +2 -3
  136. package/dataconnector/throwunsuccessful.js +1 -2
  137. package/document/blockclasses/blockproxyregistry.js +1 -2
  138. package/document/documentelement/ruleproxy.js +1 -1
  139. package/document/imagedefinition.js +1 -2
  140. package/document/linedefinition.js +3 -4
  141. package/document/linetextareapositioning.js +3 -4
  142. package/document/ruledefinition.js +3 -4
  143. package/document/text/textstyle.js +2 -2
  144. package/editorclient.js +2 -2
  145. package/index.d.ts +0 -1
  146. package/index.js +0 -1
  147. package/interop.d.ts +4 -1
  148. package/math.js +13 -13
  149. package/message/importcardfrompastedlinkeventmessage.js +2 -3
  150. package/message/unfurleventmessage.js +2 -3
  151. package/package.json +1 -1
package/commandtypes.d.ts CHANGED
@@ -773,6 +773,8 @@ export type SerializedFieldConfiguration = {
773
773
  'osfc'?: string | undefined;
774
774
  /** Field name -> callback name tuples for searching for legal field values in an enum */
775
775
  'fvsc'?: [string, string][] | undefined;
776
+ /** Field type -> callback name tuples for searching for legal field values in an enum */
777
+ 'ftvsc'?: [string, string][] | undefined;
776
778
  /** Default search callback for searching for legal field values in an enum */
777
779
  'dsc'?: string | undefined;
778
780
  /** Custom field display settings */
@@ -926,8 +928,9 @@ export type AddCardIntegrationQuery = {
926
928
  'ilp'?: string;
927
929
  } | undefined;
928
930
  /**
929
- * If provided, this data is used to turn links pasted on the canvas that match the domain into primary keys and
931
+ * If provided, this data is used to turn links pasted on the canvas that match the domain(s) into primary keys and
930
932
  * other helpful data, which are sent back to the extension as an import action.
933
+ * The 'd' field can be a single domain string or an array of domain strings.
931
934
  */
932
935
  'icfpl'?: {
933
936
  'd': string | string[];
@@ -1042,6 +1045,10 @@ export type AddShapeDataQuery = {
1042
1045
  export type AddShapeDataResult = undefined;
1043
1046
  /** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
1044
1047
  export type AddSpreadsheetIntegrationQuery = {
1048
+ /** Item label */
1049
+ 'il'?: string;
1050
+ /** Items label */
1051
+ 'isl'?: string;
1045
1052
  /** labelDescription */
1046
1053
  'ld': string;
1047
1054
  /** labelIconUrl */
package/commandtypes.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZOrderOperation = exports.isRawSendXHRResponse = exports.MermaidDiagramType = exports.GetLLMContextType = exports.GetItemsAtSearchType = exports.GetDocumentChunksType = exports.HashAlgorithmEnum = exports.AuthorizationFlowHandlerStage = exports.commandTitles = void 0;
3
+ exports.ZOrderOperation = exports.MermaidDiagramType = exports.GetLLMContextType = exports.GetItemsAtSearchType = exports.GetDocumentChunksType = exports.HashAlgorithmEnum = exports.AuthorizationFlowHandlerStage = exports.commandTitles = void 0;
4
+ exports.isRawSendXHRResponse = isRawSendXHRResponse;
4
5
  const checks_1 = require("./core/checks");
5
6
  /** @ignore */
6
7
  exports.commandTitles = new Map([
@@ -194,7 +195,6 @@ var MermaidDiagramType;
194
195
  function isRawSendXHRResponse(val) {
195
196
  return (0, checks_1.isString)(val['url']) && (0, checks_1.isString)(val['t']) && (0, checks_1.isNumber)(val['s']) && (0, checks_1.isObject)(val['h']);
196
197
  }
197
- exports.isRawSendXHRResponse = isRawSendXHRResponse;
198
198
  var ZOrderOperation;
199
199
  (function (ZOrderOperation) {
200
200
  ZOrderOperation[ZOrderOperation["UP"] = 1] = "UP";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertNever = void 0;
3
+ exports.assertNever = assertNever;
4
4
  /**
5
5
  * Use this to assert that a type check is exhaustive at build-time. There should never be a code path that reaches this function.
6
6
  * @param x the value to assert is never reached
@@ -8,4 +8,3 @@ exports.assertNever = void 0;
8
8
  function assertNever(x) {
9
9
  throw new Error(`Assertion failed! Expected assertNever to not be called, but it was called with parameter ${JSON.stringify(x)}`);
10
10
  }
11
- exports.assertNever = assertNever;
package/core/base64.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeBase64 = exports.decodeBase64 = void 0;
3
+ exports.decodeBase64 = decodeBase64;
4
+ exports.encodeBase64 = encodeBase64;
4
5
  const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
5
6
  //This gives a ~8x speedup vs. using alphabet.indexOf() in the main decode loop.
6
7
  const charCodeToEncodedInt = [];
@@ -45,7 +46,6 @@ function decodeBase64(base64String) {
45
46
  }
46
47
  return output;
47
48
  }
48
- exports.decodeBase64 = decodeBase64;
49
49
  function encodeBase64(byteArray) {
50
50
  // 3 bytes of input become 4 chars of output
51
51
  // i.e. every 6 bits of input becomes 1 char of output
@@ -85,4 +85,3 @@ function encodeBase64(byteArray) {
85
85
  }
86
86
  return output.join('');
87
87
  }
88
- exports.encodeBase64 = encodeBase64;
@@ -65,7 +65,7 @@ export declare enum FieldDisplayType {
65
65
  */
66
66
  CustomTextField = "CustomTextField"
67
67
  }
68
- export declare const isFieldDisplayType: (x: unknown) => x is FieldDisplayType;
68
+ export declare const isFieldDisplayType: (x: unknown) => x is {} extends typeof FieldDisplayType ? never : FieldDisplayType;
69
69
  /**
70
70
  * When configuring a field on a LucidCardBlock to be displayed as a data graphic, this click handler value
71
71
  * specifies what to do when the user clicks on the data graphic produced.
@@ -98,7 +98,7 @@ export declare enum OnClickHandlerKeys {
98
98
  */
99
99
  OpenTargetTab = "OpenTargetTab"
100
100
  }
101
- export declare const isOnClickHandlerKey: (x: unknown) => x is OnClickHandlerKeys;
101
+ export declare const isOnClickHandlerKey: (x: unknown) => x is {} extends typeof OnClickHandlerKeys ? never : OnClickHandlerKeys;
102
102
  declare const TextBadgeSettingsFormatter: import("../format/format").Format<import("../format/objectformat").ObjectFormatSerializedType<{
103
103
  readonly rounding: readonly ["rounding", import("../format/format").Format<number | null | undefined, number | null | undefined>];
104
104
  readonly bold: readonly ["bold", import("../format/format").Format<boolean | null | undefined, boolean | null | undefined>];
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LucidCardFields = exports.StatusValues = exports.deserializeLucidCardFieldDisplaySettings = exports.serializeLucidCardFieldDisplaySettings = exports.copyLucidCardFieldDisplaySettings = exports.isSerializedLucidCardFieldDisplaySettings = exports.CardFieldDisplaySettingsFormatter = exports.isOnClickHandlerKey = exports.OnClickHandlerKeys = exports.isFieldDisplayType = exports.FieldDisplayType = void 0;
3
+ exports.LucidCardFields = exports.StatusValues = exports.deserializeLucidCardFieldDisplaySettings = exports.serializeLucidCardFieldDisplaySettings = exports.isSerializedLucidCardFieldDisplaySettings = exports.CardFieldDisplaySettingsFormatter = exports.isOnClickHandlerKey = exports.OnClickHandlerKeys = exports.isFieldDisplayType = exports.FieldDisplayType = void 0;
4
+ exports.copyLucidCardFieldDisplaySettings = copyLucidCardFieldDisplaySettings;
4
5
  const enumformat_1 = require("../format/enumformat");
5
6
  const format_1 = require("../format/format");
6
7
  const objectformat_1 = require("../format/objectformat");
@@ -204,7 +205,6 @@ exports.isSerializedLucidCardFieldDisplaySettings = exports.CardFieldDisplaySett
204
205
  function copyLucidCardFieldDisplaySettings(settings) {
205
206
  return (0, exports.deserializeLucidCardFieldDisplaySettings)((0, exports.serializeLucidCardFieldDisplaySettings)(settings));
206
207
  }
207
- exports.copyLucidCardFieldDisplaySettings = copyLucidCardFieldDisplaySettings;
208
208
  /** @ignore */
209
209
  exports.serializeLucidCardFieldDisplaySettings = exports.CardFieldDisplaySettingsFormatter.toJson;
210
210
  /** @ignore */
@@ -70,4 +70,4 @@ export declare enum SupportedAutoSyncGeneratorType {
70
70
  Timeline = "timeline",
71
71
  DynamicMatrix = "dynamic matrix"
72
72
  }
73
- export declare const isSupportedAutoSyncGeneratorType: (x: unknown) => x is SupportedAutoSyncGeneratorType;
73
+ export declare const isSupportedAutoSyncGeneratorType: (x: unknown) => x is {} extends typeof SupportedAutoSyncGeneratorType ? never : SupportedAutoSyncGeneratorType;
@@ -1,3 +1,4 @@
1
+ import { DisplayOptionType } from '../data/serializedfield/serializeddisplayoption';
1
2
  import { type FormatToDeserializedType, type FormatToSerializedType } from '../format/format';
2
3
  import type { DeepWritable } from '../mutable';
3
4
  declare const CardIntegrationConfigFormatter: import("../format/format").Format<import("../format/objectformat").ObjectFormatSerializedType<{
@@ -185,14 +186,32 @@ declare const CardIntegrationConfigFormatter: import("../format/format").Format<
185
186
  * If true then the visibility of this field in the details panel cannot be modified by a user.
186
187
  */
187
188
  readonly locked: readonly ["l", import("../format/format").Format<boolean | null | undefined, boolean | null | undefined>];
189
+ /**
190
+ * Optional display options for the field (e.g., helper text)
191
+ */
192
+ readonly displayOptions: readonly ["do", import("../format/format").Format<readonly import("../format/objectformat").ObjectFormatSerializedType<{
193
+ readonly type: readonly ["Type", import("../format/format").Format<DisplayOptionType, DisplayOptionType>];
194
+ readonly value: readonly ["Details", import("../format/format").Format<string | null | undefined, string | null | undefined>];
195
+ }>[] | null | undefined, readonly {
196
+ readonly type: DisplayOptionType;
197
+ readonly value?: string | null | undefined;
198
+ }[] | null | undefined>];
188
199
  }>[], readonly {
189
200
  readonly name: string;
190
201
  readonly locked?: boolean | null | undefined;
202
+ readonly displayOptions?: readonly {
203
+ readonly type: DisplayOptionType;
204
+ readonly value?: string | null | undefined;
205
+ }[] | null | undefined;
191
206
  }[]>];
192
207
  }>, {
193
208
  readonly fields: readonly {
194
209
  readonly name: string;
195
210
  readonly locked?: boolean | null | undefined;
211
+ readonly displayOptions?: readonly {
212
+ readonly type: DisplayOptionType;
213
+ readonly value?: string | null | undefined;
214
+ }[] | null | undefined;
196
215
  }[];
197
216
  }>];
198
217
  }>, {
@@ -242,6 +261,10 @@ declare const CardIntegrationConfigFormatter: import("../format/format").Format<
242
261
  readonly fields: readonly {
243
262
  readonly name: string;
244
263
  readonly locked?: boolean | null | undefined;
264
+ readonly displayOptions?: readonly {
265
+ readonly type: DisplayOptionType;
266
+ readonly value?: string | null | undefined;
267
+ }[] | null | undefined;
245
268
  }[];
246
269
  };
247
270
  }>;
@@ -2,12 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deserializeCardIntegrationConfig = exports.serializeCardIntegrationConfig = exports.isSerializedCardIntegrationConfig = void 0;
4
4
  const textstyle_1 = require("../../document/text/textstyle");
5
+ const serializeddisplayoption_1 = require("../data/serializedfield/serializeddisplayoption");
5
6
  const arrayformat_1 = require("../format/arrayformat");
7
+ const enumformat_1 = require("../format/enumformat");
6
8
  const format_1 = require("../format/format");
7
9
  const mapformat_1 = require("../format/mapformat");
8
10
  const objectformat_1 = require("../format/objectformat");
9
11
  const primitiveformat_1 = require("../format/primitiveformat");
10
12
  const cardfielddisplaysettings_1 = require("./cardfielddisplaysettings");
13
+ const DisplayOptionDefinitionFormatter = (0, objectformat_1.ObjectFormat)({
14
+ type: ['Type', (0, enumformat_1.EnumFormat)(serializeddisplayoption_1.DisplayOptionType)],
15
+ value: ['Details', (0, format_1.OptionFormat)(primitiveformat_1.StringFormat)],
16
+ });
11
17
  const CardIntegrationConfigFormatter = (0, objectformat_1.ObjectFormat)({
12
18
  cardConfig: [
13
19
  'cc',
@@ -47,6 +53,10 @@ const CardIntegrationConfigFormatter = (0, objectformat_1.ObjectFormat)({
47
53
  * If true then the visibility of this field in the details panel cannot be modified by a user.
48
54
  */
49
55
  locked: ['l', (0, format_1.OptionFormat)(primitiveformat_1.BooleanFormat)],
56
+ /**
57
+ * Optional display options for the field (e.g., helper text)
58
+ */
59
+ displayOptions: ['do', (0, format_1.OptionFormat)((0, arrayformat_1.ArrayFormat)(DisplayOptionDefinitionFormatter))],
50
60
  })),
51
61
  ],
52
62
  }),
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeLucidCardPanelTab = exports.serializeLucidCardPanelTab = exports.isValidSerializedLucidCardPanelTab = exports.isValidLucidCardPanelTab = void 0;
3
+ exports.isValidSerializedLucidCardPanelTab = exports.isValidLucidCardPanelTab = void 0;
4
+ exports.serializeLucidCardPanelTab = serializeLucidCardPanelTab;
5
+ exports.deserializeLucidCardPanelTab = deserializeLucidCardPanelTab;
4
6
  const assertnever_1 = require("../../assertnever");
5
7
  const validators_1 = require("../../validators/validators");
6
8
  const listtab_1 = require("./tabs/listtab");
@@ -17,7 +19,6 @@ function serializeLucidCardPanelTab(concrete) {
17
19
  (0, assertnever_1.assertNever)(concrete.type);
18
20
  }
19
21
  }
20
- exports.serializeLucidCardPanelTab = serializeLucidCardPanelTab;
21
22
  /** @ignore */
22
23
  function deserializeLucidCardPanelTab(serialized) {
23
24
  switch (serialized.type) {
@@ -27,4 +28,3 @@ function deserializeLucidCardPanelTab(serialized) {
27
28
  (0, assertnever_1.assertNever)(serialized.type);
28
29
  }
29
30
  }
30
- exports.deserializeLucidCardPanelTab = deserializeLucidCardPanelTab;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeLucidCardPanelListTab = exports.serializeLucidCardPanelListTab = exports.isValidSerializedLucidCardPanelListTab = exports.isValidLucidCardPanelListTab = void 0;
3
+ exports.isValidSerializedLucidCardPanelListTab = exports.isValidLucidCardPanelListTab = void 0;
4
+ exports.serializeLucidCardPanelListTab = serializeLucidCardPanelListTab;
5
+ exports.deserializeLucidCardPanelListTab = deserializeLucidCardPanelListTab;
4
6
  const checks_1 = require("../../../checks");
5
7
  const validators_1 = require("../../../validators/validators");
6
8
  const extensiondatapanellistitem_1 = require("../../extensiondatapanel/extensiondatapanellistitem");
@@ -24,7 +26,6 @@ function serializeLucidCardPanelListTab(concrete) {
24
26
  'i': concrete.items.map(extensiondatapanellistitem_1.serializeExtensionDataPanelListItem),
25
27
  };
26
28
  }
27
- exports.serializeLucidCardPanelListTab = serializeLucidCardPanelListTab;
28
29
  /** @ignore */
29
30
  function deserializeLucidCardPanelListTab(serialized) {
30
31
  return {
@@ -33,4 +34,3 @@ function deserializeLucidCardPanelListTab(serialized) {
33
34
  items: serialized['i'].map(extensiondatapanellistitem_1.deserializeExtensionDataPanelListItem),
34
35
  };
35
36
  }
36
- exports.deserializeLucidCardPanelListTab = deserializeLucidCardPanelListTab;
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeTabsCallback = exports.registerGetAdditionalPanelTabsForCardCallback = exports.deserializeLucidCardPanelTabs = exports.serializeLucidCardPanelTabs = exports.areValidSerializedLucidCardPanelTabs = exports.areValidLucidCardPanelTabs = void 0;
3
+ exports.areValidSerializedLucidCardPanelTabs = exports.areValidLucidCardPanelTabs = void 0;
4
+ exports.serializeLucidCardPanelTabs = serializeLucidCardPanelTabs;
5
+ exports.deserializeLucidCardPanelTabs = deserializeLucidCardPanelTabs;
6
+ exports.registerGetAdditionalPanelTabsForCardCallback = registerGetAdditionalPanelTabsForCardCallback;
7
+ exports.deserializeTabsCallback = deserializeTabsCallback;
4
8
  const collectionproxy_1 = require("../../../data/collectionproxy");
5
9
  const dataitemproxy_1 = require("../../../data/dataitemproxy");
6
10
  const datasourceproxy_1 = require("../../../data/datasourceproxy");
@@ -14,12 +18,10 @@ exports.areValidSerializedLucidCardPanelTabs = (0, validators_1.arrayValidator)(
14
18
  function serializeLucidCardPanelTabs(concrete) {
15
19
  return concrete.map(tab_1.serializeLucidCardPanelTab);
16
20
  }
17
- exports.serializeLucidCardPanelTabs = serializeLucidCardPanelTabs;
18
21
  /** @ignore */
19
22
  function deserializeLucidCardPanelTabs(serialized) {
20
23
  return serialized.map(tab_1.deserializeLucidCardPanelTab);
21
24
  }
22
- exports.deserializeLucidCardPanelTabs = deserializeLucidCardPanelTabs;
23
25
  /** @ignore */
24
26
  function registerGetAdditionalPanelTabsForCardCallback(client, tabsCallback, serialized, actionName) {
25
27
  serialized['gaptfc'] = actionName;
@@ -40,7 +42,6 @@ function registerGetAdditionalPanelTabsForCardCallback(client, tabsCallback, ser
40
42
  };
41
43
  client.registerAction(actionName, serializedAction);
42
44
  }
43
- exports.registerGetAdditionalPanelTabsForCardCallback = registerGetAdditionalPanelTabsForCardCallback;
44
45
  /** @ignore */
45
46
  function deserializeTabsCallback(callbackHookName, postMessage) {
46
47
  // Serializes, runs callback, and deserializes the result
@@ -59,4 +60,3 @@ function deserializeTabsCallback(callbackHookName, postMessage) {
59
60
  };
60
61
  return wrappedCallback;
61
62
  }
62
- exports.deserializeTabsCallback = deserializeTabsCallback;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerGetListItemsForFieldCallback = exports.deserializeExtensionDataPanelListItem = exports.serializeExtensionDataPanelListItem = exports.isValidSerializedExtensionDataPanelListItemArray = exports.isValidSerializedExtensionDataPanelListItem = exports.isValidExtensionDataPanelListItem = void 0;
3
+ exports.isValidSerializedExtensionDataPanelListItemArray = exports.isValidSerializedExtensionDataPanelListItem = exports.isValidExtensionDataPanelListItem = void 0;
4
+ exports.serializeExtensionDataPanelListItem = serializeExtensionDataPanelListItem;
5
+ exports.deserializeExtensionDataPanelListItem = deserializeExtensionDataPanelListItem;
6
+ exports.registerGetListItemsForFieldCallback = registerGetListItemsForFieldCallback;
4
7
  const collectionproxy_1 = require("../../../data/collectionproxy");
5
8
  const dataitemproxy_1 = require("../../../data/dataitemproxy");
6
9
  const datasourceproxy_1 = require("../../../data/datasourceproxy");
@@ -32,14 +35,12 @@ exports.isValidSerializedExtensionDataPanelListItemArray = (0, validators_1.arra
32
35
  function serializeExtensionDataPanelListItem(concrete) {
33
36
  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (concrete.title !== undefined ? { 't': concrete.title } : {})), (concrete.description !== undefined ? { 'd': concrete.description } : {})), (concrete.caption !== undefined ? { 'c': concrete.caption } : {})), (concrete.icon !== undefined ? { 'i': concrete.icon } : {})), (concrete.externalLink !== undefined ? { 'el': concrete.externalLink } : {})), (concrete.tags !== undefined ? { 'ts': concrete.tags.map(extensiondatapanellistitemtag_1.serializeExtensionDataPanelListItemTag) } : {}));
34
37
  }
35
- exports.serializeExtensionDataPanelListItem = serializeExtensionDataPanelListItem;
36
38
  /** @ignore */
37
39
  function deserializeExtensionDataPanelListItem(serialized) {
38
40
  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (serialized['t'] !== undefined ? { title: serialized['t'] } : {})), (serialized['d'] !== undefined ? { description: serialized['d'] } : {})), (serialized['c'] !== undefined ? { caption: serialized['c'] } : {})), (serialized['i'] !== undefined ? { icon: serialized['i'] } : {})), (serialized['el'] !== undefined ? { externalLink: serialized['el'] } : {})), (serialized['ts'] !== undefined
39
41
  ? { tags: serialized['ts'].map(extensiondatapanellistitemtag_1.deserializeExtensionDataPanelListItemTag) }
40
42
  : {}));
41
43
  }
42
- exports.deserializeExtensionDataPanelListItem = deserializeExtensionDataPanelListItem;
43
44
  /** @ignore */
44
45
  function registerGetListItemsForFieldCallback(client, listItemsCallback, serialized, actionName) {
45
46
  serialized['fc']['gliff'] = actionName;
@@ -60,4 +61,3 @@ function registerGetListItemsForFieldCallback(client, listItemsCallback, seriali
60
61
  };
61
62
  client.registerAction(actionName, serializedAction);
62
63
  }
63
- exports.registerGetListItemsForFieldCallback = registerGetListItemsForFieldCallback;
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeExtensionDataPanelListItemTag = exports.serializeExtensionDataPanelListItemTag = exports.isValidSerializedExtensionDataPanelListItemTag = exports.isValidExtensionDataPanelListItemTag = void 0;
3
+ exports.isValidExtensionDataPanelListItemTag = isValidExtensionDataPanelListItemTag;
4
+ exports.isValidSerializedExtensionDataPanelListItemTag = isValidSerializedExtensionDataPanelListItemTag;
5
+ exports.serializeExtensionDataPanelListItemTag = serializeExtensionDataPanelListItemTag;
6
+ exports.deserializeExtensionDataPanelListItemTag = deserializeExtensionDataPanelListItemTag;
4
7
  const extensiondatapanellistitemtexttag_1 = require("./extensiondatapanellistitemtexttag");
5
8
  const extensiondatapanellistitemusertag_1 = require("./extensiondatapanellistitemusertag");
6
9
  /** @ignore */
7
10
  function isValidExtensionDataPanelListItemTag(value) {
8
11
  return (0, extensiondatapanellistitemtexttag_1.isValidExtensionDataPanelListItemTextTag)(value) || (0, extensiondatapanellistitemusertag_1.isValidExtensionDataPanelListItemUserTag)(value);
9
12
  }
10
- exports.isValidExtensionDataPanelListItemTag = isValidExtensionDataPanelListItemTag;
11
13
  /** @ignore */
12
14
  function isValidSerializedExtensionDataPanelListItemTag(value) {
13
15
  return ((0, extensiondatapanellistitemtexttag_1.isValidSerializedExtensionDataPanelListItemTextTag)(value) ||
14
16
  (0, extensiondatapanellistitemusertag_1.isValidSerializedExtensionDataPanelListItemUserTag)(value));
15
17
  }
16
- exports.isValidSerializedExtensionDataPanelListItemTag = isValidSerializedExtensionDataPanelListItemTag;
17
18
  /** @ignore */
18
19
  function serializeExtensionDataPanelListItemTag(concrete) {
19
20
  if ('users' in concrete) {
@@ -21,7 +22,6 @@ function serializeExtensionDataPanelListItemTag(concrete) {
21
22
  }
22
23
  return (0, extensiondatapanellistitemtexttag_1.serializeExtensionDataPanelListItemTextTag)(concrete);
23
24
  }
24
- exports.serializeExtensionDataPanelListItemTag = serializeExtensionDataPanelListItemTag;
25
25
  /** @ignore */
26
26
  function deserializeExtensionDataPanelListItemTag(serialized) {
27
27
  if ('u' in serialized) {
@@ -29,4 +29,3 @@ function deserializeExtensionDataPanelListItemTag(serialized) {
29
29
  }
30
30
  return (0, extensiondatapanellistitemtexttag_1.deserializeExtensionDataPanelListItemTextTag)(serialized);
31
31
  }
32
- exports.deserializeExtensionDataPanelListItemTag = deserializeExtensionDataPanelListItemTag;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeExtensionDataPanelListItemTextTag = exports.serializeExtensionDataPanelListItemTextTag = exports.isValidSerializedExtensionDataPanelListItemTextTag = exports.isValidExtensionDataPanelListItemTextTag = void 0;
3
+ exports.isValidSerializedExtensionDataPanelListItemTextTag = exports.isValidExtensionDataPanelListItemTextTag = void 0;
4
+ exports.serializeExtensionDataPanelListItemTextTag = serializeExtensionDataPanelListItemTextTag;
5
+ exports.deserializeExtensionDataPanelListItemTextTag = deserializeExtensionDataPanelListItemTextTag;
4
6
  const checks_1 = require("../../checks");
5
7
  const validators_1 = require("../../validators/validators");
6
8
  /** @ignore */
@@ -19,9 +21,7 @@ exports.isValidSerializedExtensionDataPanelListItemTextTag = (0, validators_1.ob
19
21
  function serializeExtensionDataPanelListItemTextTag(concrete) {
20
22
  return Object.assign(Object.assign({ 't': concrete.text }, (concrete.color !== undefined ? { 'c': concrete.color } : {})), (concrete.tooltip !== undefined ? { 'tt': concrete.tooltip } : {}));
21
23
  }
22
- exports.serializeExtensionDataPanelListItemTextTag = serializeExtensionDataPanelListItemTextTag;
23
24
  /** @ignore */
24
25
  function deserializeExtensionDataPanelListItemTextTag(serialized) {
25
26
  return Object.assign(Object.assign({ text: serialized['t'] }, (serialized['c'] !== undefined ? { color: serialized['c'] } : {})), (serialized['tt'] !== undefined ? { tooltip: serialized['tt'] } : {}));
26
27
  }
27
- exports.deserializeExtensionDataPanelListItemTextTag = deserializeExtensionDataPanelListItemTextTag;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeExtensionDataPanelListItemUserTag = exports.serializeExtensionDataPanelListItemUserTag = exports.isValidSerializedExtensionDataPanelListItemUserTag = exports.isValidExtensionDataPanelListItemUserTag = void 0;
3
+ exports.isValidSerializedExtensionDataPanelListItemUserTag = exports.isValidExtensionDataPanelListItemUserTag = void 0;
4
+ exports.serializeExtensionDataPanelListItemUserTag = serializeExtensionDataPanelListItemUserTag;
5
+ exports.deserializeExtensionDataPanelListItemUserTag = deserializeExtensionDataPanelListItemUserTag;
4
6
  const cardintegrationdefinitions_1 = require("../../sharedcardintegration/cardintegrationdefinitions");
5
7
  const validators_1 = require("../../validators/validators");
6
8
  /** @ignore */
@@ -17,11 +19,9 @@ function serializeExtensionDataPanelListItemUserTag(concrete) {
17
19
  'u': concrete.users.map(cardintegrationdefinitions_1.serializeCardUserData),
18
20
  };
19
21
  }
20
- exports.serializeExtensionDataPanelListItemUserTag = serializeExtensionDataPanelListItemUserTag;
21
22
  /** @ignore */
22
23
  function deserializeExtensionDataPanelListItemUserTag(serialized) {
23
24
  return {
24
25
  users: serialized['u'].map(cardintegrationdefinitions_1.deserializeCardUserData),
25
26
  };
26
27
  }
27
- exports.deserializeExtensionDataPanelListItemUserTag = deserializeExtensionDataPanelListItemUserTag;
@@ -2,6 +2,7 @@ import { ImportCardsResult } from '../../commandtypes';
2
2
  import { CollectionProxy } from '../../data/collectionproxy';
3
3
  import { DataItemProxy } from '../../data/dataitemproxy';
4
4
  import { DataSourceProxy } from '../../data/datasourceproxy';
5
+ import { DisplayOptionDefinition } from '../../data/displayoptiondefinition';
5
6
  import type { TextStyle } from '../../document/text/textstyle';
6
7
  import { EditorClient } from '../../editorclient';
7
8
  import { isString } from '../checks';
@@ -25,11 +26,18 @@ export interface FieldDescriptor {
25
26
  * This is useful for fields that should always be shown, such as a "name" field.
26
27
  */
27
28
  locked?: boolean | undefined;
29
+ /**
30
+ * @experimental
31
+ * Optional display options for the field (e.g., helper text, multi-user select UI).
32
+ * Controls how the field is rendered in the card details panel.
33
+ */
34
+ displayOptions?: DisplayOptionDefinition[] | undefined;
28
35
  }
29
36
  export declare const isFieldDescriptor: (subject: unknown) => subject is import("../guards").DestructureGuardedTypeObj<{
30
37
  name: typeof isString;
31
38
  label: (x: unknown) => x is string | undefined;
32
39
  locked: (x: unknown) => x is boolean | undefined;
40
+ displayOptions: (x: unknown) => x is DisplayOptionDefinition[] | undefined;
33
41
  }>;
34
42
  export declare abstract class LucidCardIntegration {
35
43
  protected readonly client: EditorClient;
@@ -158,11 +166,14 @@ export declare abstract class LucidCardIntegration {
158
166
  * A definition of the details required to import a card onto the canvas from a pasted url. The callback returns
159
167
  * necessary data to import cards onto the canvas, or `undefined` if the link couldn't be interpreted.
160
168
  *
161
- * If the domain has already been registered by another card integration for importing cards from pasted links, this
162
- * callback will be prevented from being registered.
169
+ * Domain can be a single string or an array of strings. Each domain will be registered separately.
170
+ * Supports wildcard domains like '*.example.com' to match any subdomain.
171
+ *
172
+ * If any domain has already been registered by another card integration for importing cards from pasted links,
173
+ * that specific domain registration will be prevented.
163
174
  */
164
175
  importCardFromPastedLink?: {
165
- domain: string;
176
+ domain: string | string[];
166
177
  callback: ImportCardFromPastedLinkCallback;
167
178
  };
168
179
  /**
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LucidCardIntegration = exports.isFieldDescriptor = void 0;
4
+ const displayoptiondefinition_1 = require("../../data/displayoptiondefinition");
4
5
  const checks_1 = require("../checks");
5
6
  const validators_1 = require("../validators/validators");
6
7
  exports.isFieldDescriptor = (0, validators_1.objectValidator)({
7
8
  name: checks_1.isString,
8
9
  label: (0, validators_1.option)(checks_1.isString),
9
10
  locked: (0, validators_1.option)(checks_1.isBoolean),
11
+ displayOptions: (0, validators_1.option)((0, validators_1.arrayValidator)(displayoptiondefinition_1.isDisplayOptionDefinition)),
10
12
  });
11
13
  class LucidCardIntegration {
12
14
  constructor(client) {
@@ -238,8 +238,12 @@ class LucidCardIntegrationRegistry {
238
238
  }
239
239
  const importCardFromPastedLinkAction = LucidCardIntegrationRegistry.nextHookName();
240
240
  const callback = cardIntegration.importCardFromPastedLink.callback;
241
+ // Normalize domain to array for consistent handling
242
+ const domains = (0, checks_1.isArray)(cardIntegration.importCardFromPastedLink.domain)
243
+ ? cardIntegration.importCardFromPastedLink.domain
244
+ : [cardIntegration.importCardFromPastedLink.domain];
241
245
  serialized['icfpl'] = {
242
- 'd': cardIntegration.importCardFromPastedLink.domain,
246
+ 'd': domains,
243
247
  'cb': importCardFromPastedLinkAction,
244
248
  };
245
249
  client.registerAction(importCardFromPastedLinkAction, async (rawMsg) => {
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidSerializedUserItemEditPermissionsRecord = exports.deserializeUserItemEditPermissionsRecord = exports.serializeUserItemEditPermissionsMap = exports.UserCannotEditItem = exports.UserCanEditItem = void 0;
3
+ exports.UserCannotEditItem = exports.UserCanEditItem = void 0;
4
+ exports.serializeUserItemEditPermissionsMap = serializeUserItemEditPermissionsMap;
5
+ exports.deserializeUserItemEditPermissionsRecord = deserializeUserItemEditPermissionsRecord;
6
+ exports.isValidSerializedUserItemEditPermissionsRecord = isValidSerializedUserItemEditPermissionsRecord;
4
7
  const checks_1 = require("../checks");
5
8
  const serializedfielddefinition_1 = require("../data/serializedfield/serializedfielddefinition");
6
9
  const validators_1 = require("../validators/validators");
@@ -50,7 +53,6 @@ function serializeUserItemEditPermissionsMap(map) {
50
53
  }
51
54
  return serializedMap;
52
55
  }
53
- exports.serializeUserItemEditPermissionsMap = serializeUserItemEditPermissionsMap;
54
56
  function deserializeUserItemEditPermissionsRecord(serializedMap) {
55
57
  const map = new Map();
56
58
  for (const [primaryKey, serializedPermissions] of Object.entries(serializedMap)) {
@@ -58,8 +60,6 @@ function deserializeUserItemEditPermissionsRecord(serializedMap) {
58
60
  }
59
61
  return map;
60
62
  }
61
- exports.deserializeUserItemEditPermissionsRecord = deserializeUserItemEditPermissionsRecord;
62
63
  function isValidSerializedUserItemEditPermissionsRecord(value) {
63
64
  return (0, checks_1.isRecord)(isSerializedUserItemEditPermissions)(value);
64
65
  }
65
- exports.isValidSerializedUserItemEditPermissionsRecord = isValidSerializedUserItemEditPermissionsRecord;