@airtable/blocks 0.0.0-experimental-4f3134f8c-20251016 → 0.0.0-experimental-e7419444f-20251120

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.
@@ -1,7 +1,7 @@
1
1
  /** @module @airtable/blocks/models: Record */ /** */
2
2
 
3
- import { RecordCore, WatchableRecordKeysCore } from '../../shared/models/record_core';
4
- import { isEnumValue, isObjectEmpty } from '../../shared/private_utils';
3
+ import { RecordCore, WatchableCellValueInFieldKeyPrefix, WatchableRecordKeysCore } from '../../shared/models/record_core';
4
+ import { isEnumValue } from '../../shared/private_utils';
5
5
  import { invariant } from '../../shared/error_utils';
6
6
  import colorUtils from '../../shared/color_utils';
7
7
  import LinkedRecordsQueryResult from './linked_records_query_result';
@@ -11,11 +11,9 @@ const WatchableRecordKeys = Object.freeze({
11
11
  ...WatchableRecordKeysCore,
12
12
  commentCount: 'commentCount'
13
13
  });
14
- // TODO: load cell values in field when this is watched? This will
15
- // cause the CellRenderer component to load cell values, which seems okay,
16
- // but needs a little more thought.
17
- const WatchableCellValueInFieldKeyPrefix = 'cellValueInField:';
18
- // TODO: load view data when this is watched. see previous comment.
14
+
15
+ // TODO: Should we load view data when this is watched?
16
+ // See comment on WatchableCellValueInFieldKeyPrefix.
19
17
  const WatchableColorInViewKeyPrefix = 'colorInView:';
20
18
  /**
21
19
  * Any key within record that can be watched:
@@ -210,14 +208,8 @@ class Record extends RecordCore {
210
208
  __triggerOnChangeForDirtyPaths(dirtyPaths) {
211
209
  super.__triggerOnChangeForDirtyPaths(dirtyPaths);
212
210
  const {
213
- cellValuesByFieldId,
214
211
  commentCount
215
212
  } = dirtyPaths;
216
- if (cellValuesByFieldId && !isObjectEmpty(cellValuesByFieldId)) {
217
- for (const fieldId of Object.keys(cellValuesByFieldId)) {
218
- this._onChange(WatchableCellValueInFieldKeyPrefix + fieldId, fieldId);
219
- }
220
- }
221
213
  if (commentCount) {
222
214
  this._onChange(WatchableRecordKeys.commentCount);
223
215
  }
@@ -1,5 +1,6 @@
1
1
  import { spawnError } from '../../shared/error_utils';
2
- import { RecordCore, WatchableRecordKeysCore } from '../../shared/models/record_core';
2
+ import { RecordCore, WatchableCellValueInFieldKeyPrefix, WatchableRecordKeysCore } from '../../shared/models/record_core';
3
+ import { isEnumValue } from '../../shared/private_utils';
3
4
  import { FieldType } from '../../shared/types/field_core';
4
5
  const WatchableRecordKeys = Object.freeze({
5
6
  ...WatchableRecordKeysCore
@@ -8,6 +9,7 @@ const WatchableRecordKeys = Object.freeze({
8
9
  * Any key within record that can be watched:
9
10
  * - `'name'`
10
11
  * - `'cellValues'`
12
+ * - `'cellValueInField:' + someFieldId`
11
13
  */
12
14
 
13
15
  /**
@@ -20,6 +22,10 @@ const WatchableRecordKeys = Object.freeze({
20
22
  export class Record extends RecordCore {
21
23
  /** @internal */
22
24
  static _className = 'Record';
25
+ /** @internal */
26
+ static _isWatchableKey(key) {
27
+ return isEnumValue(WatchableRecordKeys, key) || key.startsWith(WatchableCellValueInFieldKeyPrefix);
28
+ }
23
29
 
24
30
  /**
25
31
  * Fetch foreign records for a field. Subsequent calls to this method will
@@ -26,7 +26,7 @@ import { spawnUnknownSwitchCaseError } from '../../shared/error_utils';
26
26
  * | {
27
27
  * type: 'field';
28
28
  * table: Table;
29
- * possibleValues?: Array<Field>; // If not provided, all visible fields in the table will be shown in the dropdown.
29
+ * shouldFieldBeAllowed?: (field: {id: FieldId; config: FieldConfig}) => boolean; // If not provided, all fields in the table will be shown in the dropdown.
30
30
  * defaultValue?: Field;
31
31
  * }
32
32
  * | {
@@ -1,4 +1,4 @@
1
- import { cloneDeep, isEnumValue, isObjectEmpty } from '../private_utils';
1
+ import { cloneDeep, isObjectEmpty } from '../private_utils';
2
2
  import { invariant } from '../error_utils';
3
3
  import { FieldType } from '../types/field_core';
4
4
  import AbstractModel from './abstract_model';
@@ -9,6 +9,10 @@ export const WatchableRecordKeysCore = Object.freeze({
9
9
  // it's just inconsistent...)
10
10
  cellValues: 'cellValues'
11
11
  });
12
+ // TODO: load cell values in field when this is watched? This will
13
+ // cause the CellRenderer component to load cell values, which seems okay,
14
+ // but needs a little more thought.
15
+ export const WatchableCellValueInFieldKeyPrefix = 'cellValueInField:';
12
16
 
13
17
  /** @hidden */
14
18
 
@@ -17,10 +21,6 @@ export class RecordCore extends AbstractModel {
17
21
  /** @internal */
18
22
  static _className = 'RecordCore';
19
23
  /** @internal */
20
- static _isWatchableKey(key) {
21
- return isEnumValue(WatchableRecordKeysCore, key);
22
- }
23
- /** @internal */
24
24
 
25
25
  /** @internal */
26
26
 
@@ -199,6 +199,9 @@ export class RecordCore extends AbstractModel {
199
199
  // that we're not subscribed to).
200
200
 
201
201
  this._onChange(WatchableRecordKeysCore.cellValues, Object.keys(cellValuesByFieldId));
202
+ for (const fieldId of Object.keys(cellValuesByFieldId)) {
203
+ this._onChange(WatchableCellValueInFieldKeyPrefix + fieldId, fieldId);
204
+ }
202
205
  if (cellValuesByFieldId[this.parentTable.primaryField.id]) {
203
206
  this._onChange(WatchableRecordKeysCore.name);
204
207
  }
@@ -24,7 +24,7 @@ export class BlockSdkCore {
24
24
  * @hidden
25
25
  */
26
26
  // @ts-ignore
27
- static VERSION = "0.0.0-experimental-4f3134f8c-20251016";
27
+ static VERSION = "0.0.0-experimental-e7419444f-20251120";
28
28
 
29
29
  /** Storage for this block installation's configuration. */
30
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/base/models/record.ts"],"names":[],"mappings":"AAAA,8CAA8C,CAAC,MAAM;AACrD,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAA0B,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAC,KAAK,MAAM,EAAE,KAAK,OAAO,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAEH,KAAK,YAAY,EAGpB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAGrE,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAA0B,EAAC,KAAK,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAEpF,QAAA,MAAM,mBAAmB;;;;EAGvB,CAAC;AAOH;;;;;;;GAOG;AACH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;;GAOG;AACH,cAAM,MAAO,SAAQ,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAoC5D;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IASjF,gBAAgB,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAC,GAAG,OAAO;IAShE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sCAAsC,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAS3F;;;;;;;OAOG;IACH,cAAc,CAAC,sBAAsB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;IAK5E;;;;;;;OAOG;IACH,iBAAiB,CAAC,sBAAsB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAOvE;;;;;;;OAOG;IACH,2BAA2B,CACvB,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACnD,IAAI,GAAE,qBAA0B,GACjC,wBAAwB;IAoB3B;;;;;;;;;OASG;IACG,gCAAgC,CAClC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACnD,IAAI,GAAE,qBAA0B,GACjC,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;;;;;;;OAQG;IACH,IAAI,GAAG,IAAI,MAAM,CAKhB;IACD;;;;;;;;;;;OAWG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CAsBJ;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/base/models/record.ts"],"names":[],"mappings":"AAAA,8CAA8C,CAAC,MAAM;AACrD,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACH,UAAU,EAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,KAAK,MAAM,EAAE,KAAK,OAAO,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAc,KAAK,YAAY,EAAqB,MAAM,4BAA4B,CAAC;AAI9F,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAGrE,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAA0B,EAAC,KAAK,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAEpF,QAAA,MAAM,mBAAmB;;;;EAGvB,CAAC;AAKH;;;;;;;GAOG;AACH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;;GAOG;AACH,cAAM,MAAO,SAAQ,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAoC5D;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IASjF,gBAAgB,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAC,GAAG,OAAO;IAShE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sCAAsC,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAS3F;;;;;;;OAOG;IACH,cAAc,CAAC,sBAAsB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;IAK5E;;;;;;;OAOG;IACH,iBAAiB,CAAC,sBAAsB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAOvE;;;;;;;OAOG;IACH,2BAA2B,CACvB,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACnD,IAAI,GAAE,qBAA0B,GACjC,wBAAwB;IAoB3B;;;;;;;;;OASG;IACG,gCAAgC,CAClC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACnD,IAAI,GAAE,qBAA0B,GACjC,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;;;;;;;OAQG;IACH,IAAI,GAAG,IAAI,MAAM,CAKhB;IACD;;;;;;;;;;;OAWG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CAiBJ;AAED,eAAe,MAAM,CAAC"}
@@ -1,13 +1,32 @@
1
1
  import * as React from 'react';
2
- import { CellRenderer as CellRendererSharedImpl } from '../../shared/ui/cell_renderer';
3
- import { type BaseSdkMode } from '../../sdk_mode';
2
+ import type Record from '../models/record';
3
+ import type Field from '../models/field';
4
4
  /**
5
5
  * Props for the {@link CellRenderer} component.
6
6
  *
7
7
  * @docsPath UI/components/CellRenderer
8
8
  * @noInheritDoc
9
9
  */
10
- type CellRendererProps = React.ComponentProps<typeof CellRendererSharedImpl<BaseSdkMode>>;
10
+ interface CellRendererProps {
11
+ /** The {@link Record} from which to render a cell. Either `record` or `cellValue` must be provided to the CellRenderer. If both are provided, `record` will be used. */
12
+ record?: Record | null | undefined;
13
+ /** The cell value to render. Either `record` or `cellValue` must be provided to the CellRenderer. If both are provided, `record` will be used. */
14
+ cellValue?: unknown;
15
+ /** The {@link Field} for a given {@link Record} being rendered as a cell. */
16
+ field: Field;
17
+ /** Whether to wrap cell contents. Defaults to true. */
18
+ shouldWrap?: boolean;
19
+ /** Additional class names to apply to the cell renderer container, separated by spaces. */
20
+ className?: string;
21
+ /** Additional styles to apply to the cell renderer container. */
22
+ style?: React.CSSProperties;
23
+ /** Additional class names to apply to the cell itself, separated by spaces. */
24
+ cellClassName?: string;
25
+ /** Additional styles to apply to the cell itself. */
26
+ cellStyle?: React.CSSProperties;
27
+ /** Render function if provided and validation fails. */
28
+ renderInvalidCellValue?: (cellValue: unknown, field: Field) => React.ReactElement;
29
+ }
11
30
  /**
12
31
  * Displays the contents of a cell given a field and record.
13
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cell_renderer.d.ts","sourceRoot":"","sources":["../../../../../src/base/ui/cell_renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,YAAY,IAAI,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEhD;;;;;GAKG;AACH,KAAK,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE1F;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAE5D"}
1
+ {"version":3,"file":"cell_renderer.d.ts","sourceRoot":"","sources":["../../../../../src/base/ui/cell_renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC;;;;;GAKG;AACH,UAAU,iBAAiB;IACvB,wKAAwK;IACxK,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,kJAAkJ;IAClJ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,KAAK,EAAE,KAAK,CAAC;IACb,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAG5B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC;CACrF;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAE5D"}
@@ -11,6 +11,7 @@ declare const WatchableRecordKeys: Readonly<{
11
11
  * Any key within record that can be watched:
12
12
  * - `'name'`
13
13
  * - `'cellValues'`
14
+ * - `'cellValueInField:' + someFieldId`
14
15
  */
15
16
  type WatchableRecordKey = ObjectValues<typeof WatchableRecordKeys> | string;
16
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/interface/models/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAC,UAAU,EAA0B,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,SAAS,CAAC;AAEnC,QAAA,MAAM,mBAAmB;;;EAEvB,CAAC;AACH;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,MAAO,SAAQ,UAAU,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IAIxE;;;;;;;;OAQG;IACH,wBAAwB,CACpB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC;QACP,OAAO,EAAE,aAAa,CAAC;YAAC,EAAE,EAAE,QAAQ,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,CAAC,CAAC;KACxD,CAAC;CAgBL"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/interface/models/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EACH,UAAU,EAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAc,KAAK,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,SAAS,CAAC;AAEnC,QAAA,MAAM,mBAAmB;;;EAEvB,CAAC;AACH;;;;;GAKG;AACH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,MAAO,SAAQ,UAAU,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IAWxE;;;;;;;;OAQG;IACH,wBAAwB,CACpB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC;QACP,OAAO,EAAE,aAAa,CAAC;YAAC,EAAE,EAAE,QAAQ,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,CAAC,CAAC;KACxD,CAAC;CAgBL"}
@@ -1,13 +1,32 @@
1
1
  import * as React from 'react';
2
- import { CellRenderer as CellRendererSharedImpl } from '../../shared/ui/cell_renderer';
3
- import { type InterfaceSdkMode } from '../../sdk_mode';
2
+ import { type Record } from '../models/record';
3
+ import { type Field } from '../models/field';
4
4
  /**
5
5
  * Props for the {@link CellRenderer} component.
6
6
  *
7
7
  * @docsPath UI/components/CellRenderer
8
8
  * @noInheritDoc
9
9
  */
10
- type CellRendererProps = React.ComponentProps<typeof CellRendererSharedImpl<InterfaceSdkMode>>;
10
+ interface CellRendererProps {
11
+ /** The {@link Record} from which to render a cell. Either `record` or `cellValue` must be provided to the CellRenderer. If both are provided, `record` will be used. */
12
+ record?: Record | null | undefined;
13
+ /** The cell value to render. Either `record` or `cellValue` must be provided to the CellRenderer. If both are provided, `record` will be used. */
14
+ cellValue?: unknown;
15
+ /** The {@link Field} for a given {@link Record} being rendered as a cell. */
16
+ field: Field;
17
+ /** Whether to wrap cell contents. Defaults to true. */
18
+ shouldWrap?: boolean;
19
+ /** Additional class names to apply to the cell renderer container, separated by spaces. */
20
+ className?: string;
21
+ /** Additional styles to apply to the cell renderer container. */
22
+ style?: React.CSSProperties;
23
+ /** Additional class names to apply to the cell itself, separated by spaces. */
24
+ cellClassName?: string;
25
+ /** Additional styles to apply to the cell itself. */
26
+ cellStyle?: React.CSSProperties;
27
+ /** Render function if provided and validation fails. */
28
+ renderInvalidCellValue?: (cellValue: unknown, field: Field) => React.ReactElement;
29
+ }
11
30
  /**
12
31
  * Displays the contents of a cell given a field and record.
13
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cell_renderer.d.ts","sourceRoot":"","sources":["../../../../../src/interface/ui/cell_renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,YAAY,IAAI,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD;;;;;GAKG;AACH,KAAK,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE/F;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAEpD"}
1
+ {"version":3,"file":"cell_renderer.d.ts","sourceRoot":"","sources":["../../../../../src/interface/ui/cell_renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,UAAU,iBAAiB;IACvB,wKAAwK;IACxK,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,kJAAkJ;IAClJ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,KAAK,EAAE,KAAK,CAAC;IACb,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAG5B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC;CACrF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAEpD"}
@@ -18,7 +18,7 @@ import { type FieldId } from '../../shared/types/hyper_ids';
18
18
  * | {
19
19
  * type: 'field';
20
20
  * table: Table;
21
- * possibleValues?: Array<Field>; // If not provided, all visible fields in the table will be shown in the dropdown.
21
+ * shouldFieldBeAllowed?: (field: {id: FieldId; config: FieldConfig}) => boolean; // If not provided, all fields in the table will be shown in the dropdown.
22
22
  * defaultValue?: Field;
23
23
  * }
24
24
  * | {
@@ -6,8 +6,9 @@ export declare const WatchableRecordKeysCore: Readonly<{
6
6
  name: "name";
7
7
  cellValues: "cellValues";
8
8
  }>;
9
+ export declare const WatchableCellValueInFieldKeyPrefix = "cellValueInField:";
9
10
  /** @hidden */
10
- type WatchableRecordKeyCore = ObjectValues<typeof WatchableRecordKeysCore>;
11
+ type WatchableRecordKeyCore = ObjectValues<typeof WatchableRecordKeysCore> | string;
11
12
  /** @hidden */
12
13
  export declare abstract class RecordCore<SdkModeT extends SdkMode, WatchableKeys extends string = WatchableRecordKeyCore> extends AbstractModel<SdkModeT, SdkModeT['RecordDataT'], WatchableRecordKeyCore | WatchableKeys> {
13
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"record_core.d.ts","sourceRoot":"","sources":["../../../../../src/shared/models/record_core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAKH,KAAK,YAAY,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,KAAK,OAAO,EAAgB,MAAM,oBAAoB,CAAC;AAE/D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAG7C,eAAO,MAAM,uBAAuB;;;EAKlC,CAAC;AAEH,cAAc;AACd,KAAK,sBAAsB,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,cAAc;AACd,8BAAsB,UAAU,CAC5B,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,MAAM,GAAG,sBAAsB,CACvD,SAAQ,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,sBAAsB,GAAG,aAAa,CAAC;IAyF9F;;;;;;;;;;OAUG;IACH,YAAY,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO;IAoCvF;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IAiB9F;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,IAAI,CAEtB;CAmBJ"}
1
+ {"version":3,"file":"record_core.d.ts","sourceRoot":"","sources":["../../../../../src/shared/models/record_core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAA+C,KAAK,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAC,KAAK,OAAO,EAAgB,MAAM,oBAAoB,CAAC;AAE/D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAG7C,eAAO,MAAM,uBAAuB;;;EAKlC,CAAC;AAIH,eAAO,MAAM,kCAAkC,sBAAsB,CAAC;AAEtE,cAAc;AACd,KAAK,sBAAsB,GACrB,YAAY,CAAC,OAAO,uBAAuB,CAAC,GAE5C,MAAM,CAAC;AAEb,cAAc;AACd,8BAAsB,UAAU,CAC5B,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,MAAM,GAAG,sBAAsB,CACvD,SAAQ,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,sBAAsB,GAAG,aAAa,CAAC;IAqF9F;;;;;;;;;;OAUG;IACH,YAAY,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO;IAoCvF;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IAiB9F;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,IAAI,CAEtB;CAuBJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airtable/blocks",
3
- "version": "0.0.0-experimental-4f3134f8c-20251016",
3
+ "version": "0.0.0-experimental-e7419444f-20251120",
4
4
  "description": "Airtable Blocks SDK",
5
5
  "type": "module",
6
6
  "repository": {