@raytio/types 8.3.0 → 8.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -70,6 +70,7 @@ Hovering over the type in VSCode will display documentation and available proper
70
70
  - [InstanceNodeKey](#instancenodekey)
71
71
  - [InstanceWithoutData](#instancewithoutdata)
72
72
  - [KId](#kid)
73
+ - [KanbanBoard](#kanbanboard)
73
74
  - [LId](#lid)
74
75
  - [LOCId](#locid)
75
76
  - [Link](#link)
@@ -346,7 +347,7 @@ not exported. Attributes that are identical in both client schema & server schem
346
347
  | :------ | :------ | :------ |
347
348
  | `description` | `string` | - |
348
349
  | `description_decorator?` | ``"md"`` | **`Deprecated`** Markdown is now rendered by default for all descriptions. This property is no longer needed. |
349
- | `display?` | { `compact_table?`: `boolean` ; `expand?`: { `fields`: `string`[] ; `label`: `string` }[] ; `filters?`: { `name`: `string` ; `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] }[] ; `head_main?`: { `fields`: `string`[] ; `format?`: `string` } ; `head_sub?`: { `fields`: `string`[] ; `format?`: `string` } ; `kanban?`: { `card_fields?`: `string`[] ; `column_field?`: `string` ; `title_field?`: `string` } ; `tabular?`: { `fields`: `string`[] } } | - |
350
+ | `display?` | { `compact_table?`: `boolean` ; `expand?`: { `fields`: `string`[] ; `label`: `string` }[] ; `filters?`: { `name`: `string` ; `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] }[] ; `head_main?`: { `fields`: `string`[] ; `format?`: `string` } ; `head_sub?`: { `fields`: `string`[] ; `format?`: `string` } ; `kanban?`: [`KanbanBoard`](#kanbanboard) \| [`KanbanBoard`](#kanbanboard)[] ; `tabular?`: { `fields`: `string`[] } ; `views?`: { `columnPrefs?`: { `id`: `string` ; `visible`: `boolean` }[] ; `contentDensity?`: ``"comfortable"`` \| ``"compact"`` ; `filter?`: { `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] } ; `name`: `string` ; `pageSize?`: `number` ; `sorting?`: { `isDescending`: `boolean` ; `sortingColumn`: `string` } \| ``null`` ; `stickyColumns?`: { `first`: `number` ; `last`: `number` } ; `stripedRows?`: `boolean` ; `wrapLines?`: `boolean` }[] } | - |
350
351
  | `display.compact_table?` | `boolean` | determines if profile pages should display using compacted 'MiniPO' view or deafult view |
351
352
  | `display.expand?` | { `fields`: `string`[] ; `label`: `string` }[] | list of fields that should not be shown by default, unless you expand a collpase section which has a name from the label property. Array because there could be multiple expand groups |
352
353
  | `display.filters?` | { `name`: `string` ; `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] }[] | Pre-defined filter presets provided by the schema author. These appear as "Default filters" in the admin table UI and cannot be deleted by users (unlike user-saved filters). Each token's `propertyKey` must match a key in `properties`. Valid operators: `=`, `!=`, `:`, `!:`, `>`, `<`, `>=`, `<=` |
@@ -356,12 +357,10 @@ not exported. Attributes that are identical in both client schema & server schem
356
357
  | `display.head_sub?` | { `fields`: `string`[] ; `format?`: `string` } | list of fields to be considered the subheader of the PO fields joined with a space unless `format` format string is supplied |
357
358
  | `display.head_sub.fields` | `string`[] | - |
358
359
  | `display.head_sub.format?` | `string` | - |
359
- | `display.kanban?` | { `card_fields?`: `string`[] ; `column_field?`: `string` ; `title_field?`: `string` } | Kanban board configuration for admin dashboard |
360
- | `display.kanban.card_fields?` | `string`[] | Additional fields displayed on each card |
361
- | `display.kanban.column_field?` | `string` | Field that determines which column a card belongs to |
362
- | `display.kanban.title_field?` | `string` | Field displayed as the card title |
360
+ | `display.kanban?` | [`KanbanBoard`](#kanbanboard) \| [`KanbanBoard`](#kanbanboard)[] | Kanban board configuration for the admin dashboard. Either a single board (legacy form) or an array of named boards. See packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout. |
363
361
  | `display.tabular?` | { `fields`: `string`[] } | By default, the admin dashboard shows columns for all fields in listed in `head_main`. In rare cases you can use this property to specify a different set of fields to show to admins by default. |
364
362
  | `display.tabular.fields` | `string`[] | - |
363
+ | `display.views?` | { `columnPrefs?`: { `id`: `string` ; `visible`: `boolean` }[] ; `contentDensity?`: ``"comfortable"`` \| ``"compact"`` ; `filter?`: { `operation`: ``"and"`` \| ``"or"`` ; `tokens`: { `operator`: `string` ; `propertyKey`: `string` ; `value`: `string` }[] } ; `name`: `string` ; `pageSize?`: `number` ; `sorting?`: { `isDescending`: `boolean` ; `sortingColumn`: `string` } \| ``null`` ; `stickyColumns?`: { `first`: `number` ; `last`: `number` } ; `stripedRows?`: `boolean` ; `wrapLines?`: `boolean` }[] | Pre-defined view presets provided by the schema author. A view bundles filter, sorting, column visibility/order, and display settings (page size, density, etc.) into a named configuration. These appear as "Default views" in the admin table UI and cannot be deleted by users (unlike user-saved views). Every field except `name` is optional. When applied, fields the view does not specify leave the user's current preference untouched. This lets a schema author define partial views (e.g. just sorting + columns). |
365
364
  | `i18n?` | { `[locale: string]`: { `[fieldNameOrGroupName: string]`: [`ServerSchemaField`](#serverschemafield) & { `title_plural?`: `string` }; `$loading_create_sub_obj`: { `title`: `string` } ; `$loading_delete_pending_ver`: { `title`: `string` } ; `$loading_extract`: { `title`: `string` } ; `$loading_link_to_person`: { `title`: `string` } ; `$loading_long_verification_message`: { `description?`: `string` ; `title?`: `string` } ; `$loading_pending_ver_resubmit`: { `title`: `string` } ; `$loading_permission`: { `title`: `string` } ; `$loading_save`: { `title`: `string` } ; `$loading_update`: { `title`: `string` } ; `$loading_upload`: { `title`: `string` } ; `$loading_verify`: { `title`: `string` } ; `$schema`: { `description?`: `string` ; `title`: `string` ; `title_plural?`: `string` } }; } | - |
366
365
  | `onboard_properties?` | { `[namespace: string]`: { `[version: string]`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; } \| `undefined`; } \| `object` \| `string`[] \| `string` \| `undefined`; `actions?`: { `[key: string]`: `any`; `create_access_application_link?`: { `properties`: `Record`<`string`, `unknown`\> ; `store_as?`: `string` }[] ; `create_organization?`: { `properties`: `Json` ; `store_as?`: `string` }[] } ; `db?`: { `[version: string]`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; } \| `undefined`; `v1?`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; `dsm_access_applications?`: `Omit`<[`AA`](#aa), ``"org_id"`` \| ``"a_id"``\> & { `links?`: { `description`: `string` ; `wizardConfig`: `Omit`<[`WizardConfig`](#wizardconfig), ``"a_id"``\> }[] ; `org_id?`: `string` }[] ; `dsm_node_relationships?`: { `from`: `string` ; `properties?`: `Record`<`string`, `unknown`\> ; `to`: `string` ; `type`: `string` }[] ; `dsm_nodes?`: { `labels?`: `string`[] ; `properties`: `Record`<`string`, `unknown`\> ; `schema_name?`: [`SchemaName`](#schemaname) }[] ; `xrm_merchants?`: `Record`<`string`, `unknown`\>[] } ; `v2?`: { `[endpoint: string]`: `Record`<`string`, `unknown`\>[] \| `undefined`; } } ; `execution_order?`: `string`[] ; `return_to?`: `string` } | only the schema used for the onboarding wizard have this property |
367
366
  | `onboard_properties.actions?` | { `[key: string]`: `any`; `create_access_application_link?`: { `properties`: `Record`<`string`, `unknown`\> ; `store_as?`: `string` }[] ; `create_organization?`: { `properties`: `Json` ; `store_as?`: `string` }[] } | High-level actions for complex workflows. create_organization: Single object for creating one organization create_access_application_link: Array for creating multiple links |
@@ -577,6 +576,25 @@ A `k_id` (also called a `aack_id` or a `publicKeyId`) is the ID of an AA's publi
577
576
 
578
577
  ___
579
578
 
579
+ ### KanbanBoard
580
+
581
+ Ƭ **KanbanBoard**: `Object`
582
+
583
+ Configuration for a single named kanban board.
584
+
585
+ #### Type declaration
586
+
587
+ | Name | Type | Description |
588
+ | :------ | :------ | :------ |
589
+ | `card_fields?` | `string`[] | Additional fields displayed on each card. |
590
+ | `column_field?` | `string` | Field that determines which column a card belongs to. |
591
+ | `column_field_sort?` | ``"ascending"`` \| ``"descending"`` | Default ordering of the columns themselves, by their distinct `column_field` values. |
592
+ | `kanban_name?` | `string` | Human-readable board name shown in the board selector; should be unique within the schema. |
593
+ | `title_field?` | `string` | Field displayed as the card title. |
594
+ | `y_field?` | `string` | Name of a numeric record field used to order cards vertically within a column. Optional. See packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout. |
595
+
596
+ ___
597
+
580
598
  ### LId
581
599
 
582
600
  Ƭ **LId**: `StringWithIdentity`<``"LId"``\>
@@ -636,7 +654,7 @@ ___
636
654
  | `image_src?` | `string` | Icon source in format `icon:{AntDesignIconName}` (e.g., `icon:CameraOutlined`) |
637
655
  | `key` | `string` \| `number` | - |
638
656
  | `label?` | `string` \| `number` | Used in Antd Cascader |
639
- | `lookup_group?` | `string` | Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. |
657
+ | `lookup_group?` | `string` | Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. Translated client-side via the `lookup_group` entries in `fnd_i18n_entries` (see `LookupGroupLabel`). |
640
658
  | `requires_2FA?` | `boolean` | used in AkahuDynamicSection only |
641
659
  | `value` | `string` \| `number` | - |
642
660
 
@@ -993,7 +1011,7 @@ ___
993
1011
 
994
1012
  ### Schema
995
1013
 
996
- Ƭ **Schema**: [`CommonFields`](#commonfields)<`never`\> & [`CommonSchemaAttributes`](#commonschemaattributes) & { `clientLocale?`: `string` ; `conditionalTags?`: [`ConditionalTags`](#conditionaltags)[] ; `database?`: { `method?`: ``"POST"`` \| ``"PATCH"`` \| ``"DELETE"`` ; `path?`: `string` ; `primary_key`: `string` ; `query_parameters?`: `string` ; `return_to?`: [`SchemaName`](#schemaname) ; `select?`: `string` ; `table?`: `string` } ; `groupNames?`: `Record`<`string`, `string`\> ; `group_title?`: `string` ; `groups?`: { `order?`: `string`[] } ; `isProfileSchema?`: `boolean` ; `isSpSchema?`: `boolean` ; `name`: [`SchemaName`](#schemaname) ; `properties`: { `[fieldName: string]`: [`SchemaField`](#schemafield); } ; `required?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `timing?`: `Record`<``"extract"`` \| ``"live_person"`` \| ``"verify_pending_delay"``, `number`\> ; `type?`: [`DataTypes`](#datatypes) ; `verified_fields?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `version`: `string` ; `wasExpandedByClient?`: `boolean` }
1014
+ Ƭ **Schema**: [`CommonFields`](#commonfields)<`never`\> & [`CommonSchemaAttributes`](#commonschemaattributes) & { `clientLocale?`: `string` ; `conditionalTags?`: [`ConditionalTags`](#conditionaltags)[] ; `database?`: { `method?`: ``"POST"`` \| ``"PATCH"`` \| ``"DELETE"`` ; `path?`: `string` ; `primary_key`: `string` ; `query_parameters?`: `string` ; `return_to?`: [`SchemaName`](#schemaname) ; `select?`: `string` ; `table?`: `string` } ; `groupNames?`: `Record`<`string`, `string`\> ; `group_title?`: `string` ; `groups?`: { `order?`: `string`[] } ; `isProfileSchema?`: `boolean` ; `isSpSchema?`: `boolean` ; `merchant_id?`: [`MId`](#mid) ; `name`: [`SchemaName`](#schemaname) ; `properties`: { `[fieldName: string]`: [`SchemaField`](#schemafield); } ; `required?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `timing?`: `Record`<``"extract"`` \| ``"live_person"`` \| ``"verify_pending_delay"``, `number`\> ; `type?`: [`DataTypes`](#datatypes) ; `verified_fields?`: (`string` \| [`ConditionallyRequired`](#conditionallyrequired))[] ; `version`: `string` ; `wasExpandedByClient?`: `boolean` }
997
1015
 
998
1016
  Raytio's variant of JSON Schema, as used by the client. It is a modified version
999
1017
  of what the API returns.
@@ -1056,7 +1074,7 @@ ___
1056
1074
 
1057
1075
  ### SchemaFieldTag
1058
1076
 
1059
- Ƭ **SchemaFieldTag**: ``"password"`` \| \`group:${string}\` \| \`upload-group:${string}\` \| ``"display:stars"`` \| ``"display:no_autofill"`` \| ``"display:currency"`` \| ``"display:cascade"`` \| ``"display:survey"`` \| ``"display:quoting"`` \| ``"display:customModal"`` \| ``"display:mask"`` \| \`display:replace:('${string}', '${string}')\` \| ``"display:terms_conditions"`` \| \`display:main\_media:${string}\` \| ``"display:markdown"`` \| ``"display:content-block"`` \| ``"display:info"`` \| ``"display:warning"`` \| ``"display:error"`` \| ``"date_component:day"`` \| ``"date_component:month"`` \| ``"date_component:year"`` \| ``"action:allow_copy"`` \| ``"action:allow_unreplace"`` \| ``"action:allow_password_compromise_check"`` \| ``"action:client_upload"`` \| ``"action:hash"`` \| ``"action:require_webauthn"`` \| ``"action:generate_pepper:"`` \| \`action:timeout:${number}\` \| \`action:server-search:${string}\` \| ``"verify:show_if_pending"`` \| ``"special:hide_select_behind_button"`` \| ``"type:capture_geolocation"`` \| ``"type:extract_required"``
1077
+ Ƭ **SchemaFieldTag**: ``"password"`` \| \`group:${string}\` \| \`upload-group:${string}\` \| ``"display:stars"`` \| ``"display:no_autofill"`` \| ``"display:currency"`` \| \`display:currency:${string}\` \| ``"display:checkbox"`` \| ``"display:radio"`` \| ``"display:cascade"`` \| ``"display:survey"`` \| ``"display:quoting"`` \| ``"display:customModal"`` \| ``"display:mask"`` \| \`display:replace:('${string}', '${string}')\` \| ``"display:terms_conditions"`` \| \`display:main\_media:${string}\` \| ``"display:markdown"`` \| ``"display:content-block"`` \| ``"display:info"`` \| ``"display:warning"`` \| ``"display:error"`` \| ``"date_component:day"`` \| ``"date_component:month"`` \| ``"date_component:year"`` \| ``"action:allow_copy"`` \| ``"action:allow_unreplace"`` \| ``"action:allow_password_compromise_check"`` \| ``"action:client_upload"`` \| ``"action:hash"`` \| ``"action:require_webauthn"`` \| ``"action:generate_pepper:"`` \| \`action:timeout:${number}\` \| \`action:server-search:${string}\` \| ``"verify:show_if_pending"`` \| ``"special:hide_select_behind_button"`` \| ``"type:capture_geolocation"`` \| ``"type:extract_required"``
1060
1078
 
1061
1079
  ___
1062
1080
 
@@ -1350,6 +1368,7 @@ This is what's returned by the API
1350
1368
  | `end_date` | `string` | ISO Date. If this tag exists, the schema is deprecated. |
1351
1369
  | `extends_schema_name?` | [`SchemaName`](#schemaname) \| ``null`` | Base schema to extend (same tenant). NULL = not an extension. |
1352
1370
  | `extends_schema_version?` | `string` \| ``null`` | Pin to specific base schema version. NULL = use version_current. |
1371
+ | `merchant_id?` | [`MId`](#mid) | The merchant this schema belongs to. Always present for merchant-type (`ms`) schemas; absent for all other schema types. |
1353
1372
  | `resource_group?` | `string` | CommonFields row metadata — the polymorphic entity this schema maps to. |
1354
1373
  | `resource_name?` | `string` | - |
1355
1374
  | `schema` | [`CommonSchemaAttributes`](#commonschemaattributes) & { `$id?`: `string` ; `$schema?`: `string` ; `allOf?`: { `$ref?`: `string` ; `if?`: `Partial`<[`WrappedSchema`](#wrappedschema)[``"schema"``]\> ; `then?`: `Partial`<[`WrappedSchema`](#wrappedschema)[``"schema"``]\> }[] ; `definitions?`: `Record`<`string`, { `$ref`: [`Urn`](#urn) }\> ; `properties`: { `[fieldName: string]`: [`ServerSchemaField`](#serverschemafield); } ; `required?`: `string`[] ; `verified_fields?`: `string`[] } | - |
package/dist/raytio.d.ts CHANGED
@@ -161,7 +161,11 @@ export type Lookup = {
161
161
  requires_2FA?: boolean;
162
162
  /** Sort order within a lookup set. NULL = unordered. */
163
163
  display_order?: number;
164
- /** Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. */
164
+ /**
165
+ * Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped.
166
+ * Translated client-side via the `lookup_group` entries in
167
+ * `fnd_i18n_entries` (see `LookupGroupLabel`).
168
+ */
165
169
  lookup_group?: string;
166
170
  };
167
171
  export type AATag = "type:client_only" | "type:share_with_new_user" | "Merchant";
package/dist/schema.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AA, CommonFields, DataTypes, Json, SchemaName, Urn } from "./raytio";
1
+ import type { AA, CommonFields, DataTypes, Json, MId, SchemaName, Urn } from "./raytio";
2
2
  import type { WizardConfig } from "./wizard";
3
3
  /** should be renamed since this applies to ConditionallyVerifiable */
4
4
  export type ConditionallyRequired = {
@@ -14,7 +14,7 @@ export type ConditionalTags = {
14
14
  [fieldName: string]: (string | number | boolean)[];
15
15
  };
16
16
  };
17
- export type SchemaFieldTag = "password" | `group:${string}` | `upload-group:${string}` | "display:stars" | "display:no_autofill" | "display:currency" | "display:cascade" | "display:survey" | "display:quoting" | "display:customModal" | "display:mask" | `display:replace:('${string}', '${string}')` | "display:terms_conditions" | `display:main_media:${string}` | "display:markdown" | "display:content-block" | "display:info" | "display:warning" | "display:error" | "date_component:day" | "date_component:month" | "date_component:year" | "action:allow_copy" | "action:allow_unreplace" | "action:allow_password_compromise_check" | "action:client_upload" | "action:hash" | "action:require_webauthn" | `action:generate_pepper:` | `action:timeout:${number}` | `action:server-search:${string}` | "verify:show_if_pending" | "special:hide_select_behind_button" | "type:capture_geolocation" | "type:extract_required";
17
+ export type SchemaFieldTag = "password" | `group:${string}` | `upload-group:${string}` | "display:stars" | "display:no_autofill" | "display:currency" | `display:currency:${string}` | "display:checkbox" | "display:radio" | "display:cascade" | "display:survey" | "display:quoting" | "display:customModal" | "display:mask" | `display:replace:('${string}', '${string}')` | "display:terms_conditions" | `display:main_media:${string}` | "display:markdown" | "display:content-block" | "display:info" | "display:warning" | "display:error" | "date_component:day" | "date_component:month" | "date_component:year" | "action:allow_copy" | "action:allow_unreplace" | "action:allow_password_compromise_check" | "action:client_upload" | "action:hash" | "action:require_webauthn" | `action:generate_pepper:` | `action:timeout:${number}` | `action:server-search:${string}` | "verify:show_if_pending" | "special:hide_select_behind_button" | "type:capture_geolocation" | "type:extract_required";
18
18
  export type SchemaTag = "action:experimental_pass_object_store_id" | "action:verify" | `action:display_qr_code:${string}:${string}` | `action:display_global_idv_app_qr_code:${string}` | "default_camera:rear" | "default_camera:front" | `oauth2_component:name:${string}` | `oauth2_component:redirect_url:${string}` | `time:${string}:${number}` | `link_to:${string}:${string}` | "display:default_view:edit" | "support_challenge" | "type:merchant" | "type:service_offer" | "type:marketplace" | "type:client_only" | "type:globally_unique_field" | "type:application_object";
19
19
  export type SchemaField = {
20
20
  /** @deprecated don't use, it's inconsistent */
@@ -169,6 +169,25 @@ export type FndI18nEntry = CommonFields<never> & {
169
169
  };
170
170
  };
171
171
  };
172
+ /** Configuration for a single named kanban board. */
173
+ export type KanbanBoard = {
174
+ /** Human-readable board name shown in the board selector; should be unique within the schema. */
175
+ kanban_name?: string;
176
+ /** Field that determines which column a card belongs to. */
177
+ column_field?: string;
178
+ /** Default ordering of the columns themselves, by their distinct `column_field` values. */
179
+ column_field_sort?: "ascending" | "descending";
180
+ /** Field displayed as the card title. */
181
+ title_field?: string;
182
+ /**
183
+ * Name of a numeric record field used to order cards vertically within
184
+ * a column. Optional. See
185
+ * packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
186
+ */
187
+ y_field?: string;
188
+ /** Additional fields displayed on each card. */
189
+ card_fields?: string[];
190
+ };
172
191
  /** not exported. Attributes that are identical in both client schema & server schema */
173
192
  export type CommonSchemaAttributes = {
174
193
  /** these fields will always exist on schema */
@@ -319,15 +338,64 @@ export type CommonSchemaAttributes = {
319
338
  value: string;
320
339
  }[];
321
340
  }[];
322
- /** Kanban board configuration for admin dashboard */
323
- kanban?: {
324
- /** Field that determines which column a card belongs to */
325
- column_field?: string;
326
- /** Field displayed as the card title */
327
- title_field?: string;
328
- /** Additional fields displayed on each card */
329
- card_fields?: string[];
330
- };
341
+ /**
342
+ * Pre-defined view presets provided by the schema author.
343
+ * A view bundles filter, sorting, column visibility/order, and display
344
+ * settings (page size, density, etc.) into a named configuration.
345
+ * These appear as "Default views" in the admin table UI and cannot be
346
+ * deleted by users (unlike user-saved views).
347
+ *
348
+ * Every field except `name` is optional. When applied, fields the view
349
+ * does not specify leave the user's current preference untouched. This
350
+ * lets a schema author define partial views (e.g. just sorting + columns).
351
+ */
352
+ views?: {
353
+ /** Display name for the view preset */
354
+ name: string;
355
+ /** Filter to apply (PropertyFilter tokens + operation) */
356
+ filter?: {
357
+ /** How tokens are combined: "and" = all must match, "or" = any must match */
358
+ operation: "and" | "or";
359
+ /** Filter conditions */
360
+ tokens: {
361
+ /** Must match a key in schema `properties` */
362
+ propertyKey: string;
363
+ /** Comparison operator */
364
+ operator: string;
365
+ /** Value to compare against */
366
+ value: string;
367
+ }[];
368
+ };
369
+ /** Server-side sorting state, or `null` to explicitly clear sorting */
370
+ sorting?: {
371
+ sortingColumn: string;
372
+ isDescending: boolean;
373
+ } | null;
374
+ /** Column visibility + order. `id` must match a key in `properties`. */
375
+ columnPrefs?: {
376
+ id: string;
377
+ visible: boolean;
378
+ }[];
379
+ /** Page size (rows per page) */
380
+ pageSize?: number;
381
+ /** Whether to wrap cell content onto multiple lines */
382
+ wrapLines?: boolean;
383
+ /** Whether alternating rows are striped */
384
+ stripedRows?: boolean;
385
+ /** Density of the table content */
386
+ contentDensity?: "comfortable" | "compact";
387
+ /** Number of sticky columns pinned to the start/end of the table */
388
+ stickyColumns?: {
389
+ first: number;
390
+ last: number;
391
+ };
392
+ }[];
393
+ /**
394
+ * Kanban board configuration for the admin dashboard. Either a single
395
+ * board (legacy form) or an array of named boards. See
396
+ * packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
397
+ */
398
+ kanban?: KanbanBoard | KanbanBoard[];
331
399
  };
332
400
  /** only the schema used for the onboarding wizard have this property */
333
401
  onboard_properties?: {
@@ -422,6 +490,8 @@ export type CommonSchemaAttributes = {
422
490
  export type Schema = CommonFields<never> & CommonSchemaAttributes & {
423
491
  /** added by the client, copied from {@link WrappedSchema} */
424
492
  name: SchemaName;
493
+ /** added by the client, copied from {@link WrappedSchema}. Only set for `ms` schemas. */
494
+ merchant_id?: MId;
425
495
  /** added by client */
426
496
  type?: DataTypes;
427
497
  /**
@@ -514,6 +584,11 @@ export type WrappedSchema = {
514
584
  schema_name: SchemaName;
515
585
  schema_type: SchemaType;
516
586
  schema_version: string;
587
+ /**
588
+ * The merchant this schema belongs to. Always present for merchant-type
589
+ * (`ms`) schemas; absent for all other schema types.
590
+ */
591
+ merchant_id?: MId;
517
592
  /** whether the \`version\` is the latest version */
518
593
  version_current: boolean;
519
594
  /** Country codes that this schema is available for */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raytio/types",
3
- "version": "8.3.0",
3
+ "version": "8.3.2",
4
4
  "license": "MIT",
5
5
  "main": "index",
6
6
  "types": "index",
package/src/raytio.ts CHANGED
@@ -210,7 +210,11 @@ export type Lookup = {
210
210
 
211
211
  /** Sort order within a lookup set. NULL = unordered. */
212
212
  display_order?: number;
213
- /** Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. */
213
+ /**
214
+ * Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped.
215
+ * Translated client-side via the `lookup_group` entries in
216
+ * `fnd_i18n_entries` (see `LookupGroupLabel`).
217
+ */
214
218
  lookup_group?: string;
215
219
  };
216
220
 
package/src/schema.ts CHANGED
@@ -3,6 +3,7 @@ import type {
3
3
  CommonFields,
4
4
  DataTypes,
5
5
  Json,
6
+ MId,
6
7
  SchemaName,
7
8
  Urn,
8
9
  } from "./raytio";
@@ -36,6 +37,14 @@ export type SchemaFieldTag =
36
37
  | "display:stars"
37
38
  | "display:no_autofill"
38
39
  | "display:currency"
40
+ // currency with an explicit ISO 4217 code, e.g. `display:currency:usd`.
41
+ // The code is case-insensitive; a malformed code falls back to the bare behaviour.
42
+ | `display:currency:${string}`
43
+ // renders a fixed-option (enum) multi-select array as a checkbox group
44
+ | "display:checkbox"
45
+ // forces radio rendering for string + (enum|lookup) fields regardless of
46
+ // list size; the automatic ≤ 7 behaviour is handled by the rules directly
47
+ | "display:radio"
39
48
  | "display:cascade"
40
49
  | "display:survey"
41
50
  | "display:quoting"
@@ -260,6 +269,26 @@ export type FndI18nEntry = CommonFields<never> & {
260
269
  };
261
270
  };
262
271
 
272
+ /** Configuration for a single named kanban board. */
273
+ export type KanbanBoard = {
274
+ /** Human-readable board name shown in the board selector; should be unique within the schema. */
275
+ kanban_name?: string;
276
+ /** Field that determines which column a card belongs to. */
277
+ column_field?: string;
278
+ /** Default ordering of the columns themselves, by their distinct `column_field` values. */
279
+ column_field_sort?: "ascending" | "descending";
280
+ /** Field displayed as the card title. */
281
+ title_field?: string;
282
+ /**
283
+ * Name of a numeric record field used to order cards vertically within
284
+ * a column. Optional. See
285
+ * packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
286
+ */
287
+ y_field?: string;
288
+ /** Additional fields displayed on each card. */
289
+ card_fields?: string[];
290
+ };
291
+
263
292
  /** not exported. Attributes that are identical in both client schema & server schema */
264
293
  export type CommonSchemaAttributes = {
265
294
  /** these fields will always exist on schema */
@@ -399,15 +428,56 @@ export type CommonSchemaAttributes = {
399
428
  }[];
400
429
  }[];
401
430
 
402
- /** Kanban board configuration for admin dashboard */
403
- kanban?: {
404
- /** Field that determines which column a card belongs to */
405
- column_field?: string;
406
- /** Field displayed as the card title */
407
- title_field?: string;
408
- /** Additional fields displayed on each card */
409
- card_fields?: string[];
410
- };
431
+ /**
432
+ * Pre-defined view presets provided by the schema author.
433
+ * A view bundles filter, sorting, column visibility/order, and display
434
+ * settings (page size, density, etc.) into a named configuration.
435
+ * These appear as "Default views" in the admin table UI and cannot be
436
+ * deleted by users (unlike user-saved views).
437
+ *
438
+ * Every field except `name` is optional. When applied, fields the view
439
+ * does not specify leave the user's current preference untouched. This
440
+ * lets a schema author define partial views (e.g. just sorting + columns).
441
+ */
442
+ views?: {
443
+ /** Display name for the view preset */
444
+ name: string;
445
+ /** Filter to apply (PropertyFilter tokens + operation) */
446
+ filter?: {
447
+ /** How tokens are combined: "and" = all must match, "or" = any must match */
448
+ operation: "and" | "or";
449
+ /** Filter conditions */
450
+ tokens: {
451
+ /** Must match a key in schema `properties` */
452
+ propertyKey: string;
453
+ /** Comparison operator */
454
+ operator: string;
455
+ /** Value to compare against */
456
+ value: string;
457
+ }[];
458
+ };
459
+ /** Server-side sorting state, or `null` to explicitly clear sorting */
460
+ sorting?: { sortingColumn: string; isDescending: boolean } | null;
461
+ /** Column visibility + order. `id` must match a key in `properties`. */
462
+ columnPrefs?: { id: string; visible: boolean }[];
463
+ /** Page size (rows per page) */
464
+ pageSize?: number;
465
+ /** Whether to wrap cell content onto multiple lines */
466
+ wrapLines?: boolean;
467
+ /** Whether alternating rows are striped */
468
+ stripedRows?: boolean;
469
+ /** Density of the table content */
470
+ contentDensity?: "comfortable" | "compact";
471
+ /** Number of sticky columns pinned to the start/end of the table */
472
+ stickyColumns?: { first: number; last: number };
473
+ }[];
474
+
475
+ /**
476
+ * Kanban board configuration for the admin dashboard. Either a single
477
+ * board (legacy form) or an array of named boards. See
478
+ * packages/client/docs/layout-hierarchy-guide.md § Kanban Board Layout.
479
+ */
480
+ kanban?: KanbanBoard | KanbanBoard[];
411
481
  };
412
482
 
413
483
  /** only the schema used for the onboarding wizard have this property */
@@ -522,6 +592,8 @@ export type Schema = CommonFields<never> &
522
592
  CommonSchemaAttributes & {
523
593
  /** added by the client, copied from {@link WrappedSchema} */
524
594
  name: SchemaName;
595
+ /** added by the client, copied from {@link WrappedSchema}. Only set for `ms` schemas. */
596
+ merchant_id?: MId;
525
597
 
526
598
  /** added by client */
527
599
  type?: DataTypes;
@@ -633,6 +705,11 @@ export type WrappedSchema = {
633
705
  schema_name: SchemaName;
634
706
  schema_type: SchemaType;
635
707
  schema_version: string;
708
+ /**
709
+ * The merchant this schema belongs to. Always present for merchant-type
710
+ * (`ms`) schemas; absent for all other schema types.
711
+ */
712
+ merchant_id?: MId;
636
713
 
637
714
  /** whether the \`version\` is the latest version */
638
715
  version_current: boolean;