Skip to content

Releases: objectstack-ai/objectui

@object-ui/types@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Minor Changes

  • 86c69c3: ADR-0089: read the canonical visibleWhen conditional-visibility predicate in the form + page renderers.

    @objectstack/spec now unifies conditional visibility under a single canonical key, visibleWhen, and folds the deprecated visibleOn (view form) / visibility (page component) aliases into it at parse. This updates ObjectUI to read the canonical key:

    • Page renderer (SchemaRenderer) — evaluates visibleWhen first (show-when-truthy), then the deprecated visibleOn / visibility as a defensive read for raw / un-normalized metadata. visibleWhen is stripped from DOM props.
    • Spec→node bridges — the page bridge maps a component's visibleWhen ?? visibility onto the node's canonical visibleWhen; the form-view bridge maps a field's visibleWhen ?? visibleOn onto the ObjectForm view-level predicate slot.
    • Form renderers — the @object-ui/react FormRenderer prefers visibleWhen over the visibleOn alias. (ObjectForm/form.tsx already evaluated visibleWhen.)
    • Types — the component base schema (BaseSchema / base.zod) gains the canonical visibleWhen; visibleOn is marked @deprecated.

    Fully back-compat: existing visibleOn / visibility metadata keeps working through the alias reads.

  • 6a74160: Sharing-rule form: pick, don't type. Three new widget-hint field components make
    the generic object form render pickers where an admin previously had to type
    machine data (driven by the framework widget hints on sys_sharing_rule;
    generalizes the capability-multiselect pattern). All degrade to the underlying
    type renderer when a widget is unregistered.

    • object-ref — choose a registered object by name (searchable Combobox),
      backed by the new DataSource.getObjects() (ObjectStackAdapter lists code-
      and DB-defined objects via /api/v1/meta/object), falling back to a
      sys_metadata query. Stores the object's name.
    • filter-condition — a visual criteria builder (FilterBuilder) scoped to
      the fields of the object chosen in a sibling field (via getObjectSchema),
      round-tripping the stored MongoDB-style FilterCondition JSON. Criteria the
      builder can't represent (or invalid JSON) fall back to a raw-JSON editor, with
      an always-available "Edit as JSON" toggle — nothing is hidden or lost.
    • recipient-picker — a record picker whose target object follows a sibling
      recipient_type (user→sys_user, team→sys_team, business_unit/
      unit_and_subordinates→sys_business_unit, position→sys_position), storing the
      value the evaluator matches on (a record id, or the position name). Resets
      the stored id when the type changes.

    Wiring: the three keys join DATA_SOURCE_FIELD_TYPES (form.tsx) so the form
    threads dataSource + dependentValues to them, and INLINE_EXCLUDED_FIELD_TYPES
    (they're authored in the record form, not a grid cell). DataSource.getObjects()
    is optional on the interface; the ObjectStack adapter implements it.

@object-ui/tenant@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Patch Changes

  • Updated dependencies [86c69c3]
  • Updated dependencies [6a74160]
    • @object-ui/types@14.0.0

@object-ui/sdui-parser@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f
@object-ui/sdui-parser@14.0.0

@object-ui/runner@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Patch Changes

  • Updated dependencies [443360a]
  • Updated dependencies [86c69c3]
  • Updated dependencies [05e56ca]
  • Updated dependencies [a44e7b6]
  • Updated dependencies [6a74160]
    • @object-ui/core@14.0.0
    • @object-ui/react@14.0.0
    • @object-ui/types@14.0.0
    • @object-ui/components@14.0.0
    • @object-ui/plugin-charts@14.0.0
    • @object-ui/plugin-kanban@14.0.0

@object-ui/react@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Minor Changes

  • 86c69c3: ADR-0089: read the canonical visibleWhen conditional-visibility predicate in the form + page renderers.

    @objectstack/spec now unifies conditional visibility under a single canonical key, visibleWhen, and folds the deprecated visibleOn (view form) / visibility (page component) aliases into it at parse. This updates ObjectUI to read the canonical key:

    • Page renderer (SchemaRenderer) — evaluates visibleWhen first (show-when-truthy), then the deprecated visibleOn / visibility as a defensive read for raw / un-normalized metadata. visibleWhen is stripped from DOM props.
    • Spec→node bridges — the page bridge maps a component's visibleWhen ?? visibility onto the node's canonical visibleWhen; the form-view bridge maps a field's visibleWhen ?? visibleOn onto the ObjectForm view-level predicate slot.
    • Form renderers — the @object-ui/react FormRenderer prefers visibleWhen over the visibleOn alias. (ObjectForm/form.tsx already evaluated visibleWhen.)
    • Types — the component base schema (BaseSchema / base.zod) gains the canonical visibleWhen; visibleOn is marked @deprecated.

    Fully back-compat: existing visibleOn / visibility metadata keeps working through the alias reads.

Patch Changes

  • Updated dependencies [443360a]
  • Updated dependencies [c70bca7]
  • Updated dependencies [86c69c3]
  • Updated dependencies [05e56ca]
  • Updated dependencies [5971cc4]
  • Updated dependencies [6a74160]
    • @object-ui/core@14.0.0
    • @object-ui/i18n@14.0.0
    • @object-ui/types@14.0.0
    • @object-ui/data-objectstack@14.0.0

@object-ui/react-runtime@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:23
be3f55f
@object-ui/react-runtime@14.0.0

@object-ui/providers@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Patch Changes

  • Updated dependencies [86c69c3]
  • Updated dependencies [6a74160]
    • @object-ui/types@14.0.0

@object-ui/plugin-view@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Patch Changes

  • 05e56ca: 导出/导入模板的下载文件名与内容本地化。

    导出文件名:CSV/Excel/JSON 导出下载不再是 <对象名>.<扩展名>(如 contracts.csv),改为「对象显示名-视图名-时间戳.扩展名」(如 任务-In Progress-20260714-153045.xlsx);exportOptions.fileNamePrefix 配置仍优先(且作为完整前缀,不再追加视图名)。视图名与对象名重复时自动省略;@object-ui/core 新增 buildExportFileName(ext, { prefix, label, objectName, viewLabel }, now?)sanitizeFileNameBase(raw),ObjectGrid 与 ListView 的所有导出路径(服务端流式与前端兜底)统一走它。app-shell/plugin-view 的 ObjectView 现将当前视图的显示标签写进传给 ListView 的 schema(label),使导出文件名能区分同一对象的不同保存视图。

    导入模板:「下载模板」修复两处英文漏出——示例行的 select/多选取值改为优先取选项显示标签(如 准备中)而非 ASCII slug(prepare,服务端导入两者都接受);模板文件名本地化为 {{object}}-导入模板.csv(新增 i18n key grid.import.templateFileName,英文回退 {{object}}-import-template.csv)。

  • Updated dependencies [443360a]

  • Updated dependencies [c70bca7]

  • Updated dependencies [86c69c3]

  • Updated dependencies [05e56ca]

  • Updated dependencies [a44e7b6]

  • Updated dependencies [5971cc4]

  • Updated dependencies [6a74160]

    • @object-ui/core@14.0.0
    • @object-ui/i18n@14.0.0
    • @object-ui/react@14.0.0
    • @object-ui/types@14.0.0
    • @object-ui/plugin-grid@14.0.0
    • @object-ui/components@14.0.0
    • @object-ui/plugin-form@14.0.0

@object-ui/plugin-tree@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:24
be3f55f

Patch Changes

  • 5971cc4: i18n: translate the Profile page, honor inline i18n label objects under bare
    base-language codes, and localize managed-by badges / record quick actions.

    • pickLocalized now upgrades a bare base language (zh) to any
      region-qualified key sharing the base (zh-CN) — runtime language is
      normalized to the base code while metadata authors write full BCP-47 tags,
      so inline { en, 'zh-CN', ... } label objects previously fell back to
      English.
    • ProfilePage (account:profile_card / /system/profile): every hardcoded
      string — page title/subtitle, avatar Upload/Replace/Remove, Personal
      Information card, Change/Set Password card — now goes through
      useObjectTranslation() with profile.* keys (new namespace in all ten
      locale bundles); the lazy-load fallback reuses common.loading.
    • ManagedByBadge chips/tooltips (Config/System/Append-only/Identity) now
      resolve through new managedByBadge.* keys with {{provider}}
      interpolation.
    • record:quick_actions resolves action labels via the
      objects.{object}._actions.{action}.label convention plus pickLocalized,
      so object action buttons (Change Password, Enable 2FA, …) localize.
    • record:details / record:related_list / record:alert / ObjectTree
      pass inline label objects through pickLocalized.
    • Locale bundles: added managedByBadge namespace to all ten locales and
      backfilled list.inlineEditShort / inlineEditLabel /
      recordEditingTitle for ja/es/ko/de/fr/pt/ru/ar.
  • Updated dependencies [443360a]

  • Updated dependencies [86c69c3]

  • Updated dependencies [05e56ca]

  • Updated dependencies [a44e7b6]

  • Updated dependencies [6a74160]

    • @object-ui/core@14.0.0
    • @object-ui/react@14.0.0
    • @object-ui/types@14.0.0
    • @object-ui/components@14.0.0

@object-ui/plugin-timeline@14.0.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 15:23
be3f55f

Patch Changes

  • Updated dependencies [443360a]
  • Updated dependencies [86c69c3]
  • Updated dependencies [05e56ca]
  • Updated dependencies [a44e7b6]
  • Updated dependencies [6a74160]
    • @object-ui/core@14.0.0
    • @object-ui/react@14.0.0
    • @object-ui/types@14.0.0
    • @object-ui/components@14.0.0
    • @object-ui/mobile@14.0.0