The Smart Components Hub lists all Smart Components available in the environment. From here, Creators can browse components by type, view component details, open a component in the editor, and create new ones.
To open the Smart Components Hub, click Libraries in the global header, then select
Smart Components Hub. Select
Dashboard in the Explorer panel.

Public and Private
Every Smart Component is either Private or Public. This determines whether the component is reusable across modules and how the Build Agent uses it.
| State | Reusable across modules | Used by Build Agent for reuse | Can change back |
|---|---|---|---|
| Private | No (one module only) | No | N/A |
| Public | Yes | Yes, as a preferred component | No |
A new Smart Component is Private by default. A Private component can only be placed in one module, and only once in that module. Attempting to use it in a second module blocks the save; the platform prompts the Creator to create copies of the component instead. Copying a module that contains a Private component also copies its definition.
Selecting Make Public from the row actions menu makes the component available to the Build Agent and lets Creators add it to any module. This change is permanent. A Public component cannot be made Private again.
Editing a Public component propagates the change to every module that uses it immediately on publish.
Creators in Module Builder can view and configure a Public component's instance settings, but cannot edit the underlying definition. To edit the definition, open the component from the Smart Components Hub.
Making a container Public does not make its children Public. When a container Smart Component is made Public, only the container definition becomes Public. Any child components nested inside an instance remain independently Private or Public based on their own state. Parent and children are promoted separately.
Container Smart Components
Some Smart Components act as containers. They hold child components in typed slots instead of having fixed children built into their definition. Adding child components to a container instance and wiring them up requires the Build Agent. Drag-and-drop into a container Smart Component is not supported in 9.0.
Smart Components do not support composition. You cannot combine multiple existing Smart Components into a new Smart Component definition. A container can accept child components in typed slots, but those children are configured per instance and are not merged into the container's definition.
When the Build Agent updates a container definition, it analyzes whether the change is safe or potentially breaking for existing instances. Adding a new optional property is safe. Changing the type or structure of an existing property (for example, converting a text value to a child slot) might break existing instances, and the Build Agent surfaces this before proceeding.
Component List
The component list displays all Smart Components in the environment. Each row displays the following:
The Public and Private tabs display different columns.
Public tab columns:
| Column | Description |
|---|---|
| Name | The component's display name. Select a row to open the component in the editor. |
| Type | The component type: UI, Logic, Query, or Agentic. |
| Modules | The number of modules in the environment that use the component. |
| Draft owner | The Creator who holds an open draft for this component, if any. |
| Modified date | The date the component was last published. |
The Public list sorts by Modules descending by default, placing the most-used components first.
Private tab columns:
The Private tab groups components by workspace in an expandable tree. Each workspace row expands to list its Private Smart Components. An Unassigned group displays at the bottom for Private components that have not been placed in any module yet.

| Column | Description |
|---|---|
| Name | The workspace or component name. |
| Type | The component type: UI, Logic, Query, or Agentic. |
| Modified date | The date the component was last published. |
Component Detail
Select any row in the component list to open the component detail dialog. The dialog displays the component's identity (name, type, and category), a Used In section listing every workspace, application, and module that uses the component in a hierarchy, and the component's interface in Inputs and Outputs rows.
The Used In section lists only modules that use this component directly. A module that reaches it through another Smart Component or through a module it imports is not listed.

Select View Details from the row actions menu to open the same dialog.
Component Actions
Select the ⋮ (ellipsis) on any component row, in the Hub or in the Explorer panel, to access the following actions.
Read Actions
These actions are available on every row a Creator can view.
| Action | Description |
|---|---|
| View Details | Opens the component detail dialog. Displays the component's identity, usage count, and interface. |
| Edit Component | Opens the component in the Smart Component Editor. Reads View Component for Creators whose role grants view but not edit permission on the component's Public or Private lens. |
| Add to Agent Context | Sends this component's logic and data to the Build Agent as context for the current session. Toggles to Remove from Agent Context when the component is already in context. Visible only when UnqorkAI is enabled. |
| Publish Draft | Opens the Publish dialog for the open draft. Visible only when the Creator holds a draft for this component. |
| Discard Draft | Discards the open draft and returns the component to its last published state. Visible only when the Creator holds a draft for this component. |
Write Actions
These actions require specific permissions and are hidden when the Creator does not have the necessary grants.
| Action | Description |
|---|---|
| Duplicate | Creates a copy of this component in the library. Disabled while the Creator holds an open draft on the source component. |
| Make Public | Makes the component available to the Build Agent and lets Creators add it to any module. Displays when the component is currently Private. This change is permanent. See Public and Private. |
| Promote | Opens the Promote dialog. Select a target environment and confirm to promote the component. Optionally include composed Smart Components as dependencies. |
| Export | Downloads the component definition as an exportable file. |
| Settings | Opens the component settings dialog. Rename the component, update its description, and set its category. For Query Smart Components, also configure execution behavior and role-based access controls. See Smart Component Settings. |
| Delete Component | Permanently removes the component. Blocked while any module or other component references it. |
Filtering
Select Public or Private above the list to switch between Public and Private components. Each tab shows a different layout: Public displays a flat list, Private displays a workspace tree.
Use the search box to filter by component name. Select the filter icon to the right of the search box to narrow results. The following filters are available:
| Filter | Description |
|---|---|
| Type | Narrows results to UI, Logic, Query, or Agentic components. |
| Category | Narrows results to a specific category in the environment. |
| Draft | Narrows results by draft status: owned by the current Creator, owned by another Creator, or active. |
Drafts and Publishing
Editing a Smart Component creates a draft. A draft is a private working copy of the component. Changes in the draft are not live until published. Only one Creator can own a draft at a time; the Draft owner column in the Public list shows who currently holds it.
While a draft is open, the component's row displays Publish Draft and Discard Draft in the (ellipsis) menu. Publish Draft pushes the changes live to every module using the component. Discard Draft removes the draft and restores the last published definition.
If another Creator opens the component while a draft is open, they can take over the draft. The original holder receives a notification and loses save access until the draft is returned.
When updating a Public Smart Component, prefer additive changes: add new optional properties with sensible defaults. Renaming, removing, or retyping existing properties breaks every module instance that relies on them. When a change cannot be made backward-compatible, duplicate the component and adapt the copy instead of modifying the shared definition.
For full details on the draft editing workflow, see Smart Component Editor.
Promoting Smart Components
Select Promote in the Library toolbar to open the Promote Smart Components dialog. Select a target environment, then select the components to promote individually or use Bulk Actions to select all. A confirmation step displays before the promotion runs.
If a selected component composes other Smart Components, a warning displays for any composed components not included in the selection. These warnings do not block promotion. Select the missing components to resolve them before confirming.
Promotion history is available in the dialog and displays all previous promote actions for the library.
Creating a Smart Component
Select + Create Component to create a new Smart Component. Enter a name, select a type (UI, Logic, Query, or Agentic), and confirm. The new component opens in the Smart Component Editor.
Changelog
| Date | Change |
|---|---|
| 2026-09-16 | Noted that Edit Component reads View Component without the Smart Component edit permission. |
| 2026-09-10 | Added Agentic to Type column and Type filter; updated Create Component type list. |
| 2026-09-09 | Added no-composition constraint to Container section; added backward-compatibility guidance to Drafts and Publishing. |
| 2026-09-09 | Added single-instance per module constraint to Private description; added Container Smart Components section covering Build Agent wiring requirement, no drag-and-drop in 9.0, impact analysis on updates, and parent/children public state independence. |
| 2026-09-08 | Added Module Builder editing distinction — Creators can configure a Public component's instance in Module Builder but must use Edit Component to edit its definition. |
| 2026-09-04 | Renamed Discoverable to Public throughout; renamed Make Discoverable to Make Public; renamed Duplicate Component to Duplicate; rewrote Filtering section; expanded Component List column table; confirmed nav label Smart Components Hub; added Private module-copy behavior; corrected Delete description; removed incorrect Pending badge claim from Draft column; added default sort note; corrected Component Detail to describe hierarchy tree. |
| 2026-09-03 | Capitalized Private and Discoverable throughout; fixed all internal link paths to include /public/; added Building a Smart Component to See Also; added Dashboard icon. |
| 2026-08-31 | Added Discoverability section explaining private vs discoverable states. |
| 2026-08-28 | Removed the Make Private action. Discoverability is now one-way: a discoverable component cannot be made private again. |
| 2026-08-27 | Renamed the discoverability action from Make Not Discoverable to Make Private, matching the Discoverable and Private nomenclature in the platform. |
| 2026-08-25 | Added inline icons to Component Actions tables. Added Component Actions section with full row action reference, split into Read and Write actions. Added Component Detail section. Added Draft column to Component List table. Corrected row click behavior (opens detail dialog, not editor). Removed HR dividers between sections. Updated Click to Select per style guide. |
| 2026-08-13 | Added Promoting Smart Components section. |
| 2026-08-10 | Initial publication. |