--- title: "Copying Private Smart Components" slug: "copying-private-smart-components" tags: ["smart-components", "unqorkai"] status: "new" updated: 2026-11-13T17:07:28Z published: 2026-11-13T17:07:28Z canonical: "docs.unqork.io/copying-private-smart-components" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # Copying Private Smart Components Copying a module, a save, or a set of pasted components also copies the Private Smart Components involved. Each destination module gets its own copy, so it never depends on a component that another module owns. This page covers which actions make copies, how pasting and bundle imports behave, and how copies are named. A Private Smart Component belongs to one module. For how ownership works, see [Smart Components Hub](/unqorkai/docs/smart-components-hub#private). ## Actions That Copy Private Components The following actions give the destination module its own copy of each Private Smart Component involved: | Action | Result | | --- | --- | | **Duplicate Module** | The new module gets its own copy of each Private Smart Component the source module owns, with its tests. | | **Copy this save** | In Module History, the new library module gets its own copy of each Private Smart Component in that save, with its tests. See [Module History](/unqorkai/docs/module-history#revision-detail-actions). | | **Paste into another module** | The destination module gets its own copy of each Private Smart Component the pasted components use. See [Pasting Components](/unqorkai/docs/copying-private-smart-components#pasting-components). | | **Import a bundle into a module** | The module the import creates or the open module owns the imported components. See [Importing a Bundle](/unqorkai/docs/copying-private-smart-components#importing-a-bundle). | In every case, the source module keeps its own components unchanged. A copy is identical to the original at first and doesn't receive later changes to it. ## Pasting Components Pasting components that use a Private Smart Component has the following results: - **Into another module**: The paste copies the component into the destination module automatically, without a prompt. The copy matches the component at the time the components were copied to the clipboard. Each paste makes a new copy, even when an earlier paste of the same components already made one. - **Into the owning module**: The paste reuses the existing component instead of making a copy. A paste reuses a component whenever the open module owns it, so copying and pasting a block in the same module never makes a copy. ### When a Paste Can't Be Completed When a paste can't get every Smart Component it uses, nothing is pasted, and the **This paste can't be completed** dialog displays. The dialog lists each component that stopped the paste, with the reason. When the platform can't read a component's name, the row names the pasted component's Property ID instead. Reasons include the following: | Reason | Description | | --- | --- | | **Not available here** | The platform can't read the component. Either the component doesn't exist in this environment, or the Creator's role doesn't grant **View** on it. Promote the component to this environment or update the role, then paste again. | | **You do not have permission to create a copy.** | The Creator's role can view the component but doesn't grant **Create** on **Smart Components (Private)**, so the paste can't copy the component. | | **Only used inside an imported panel, where a copy would not last.** | The component is used only inside a Panel component that imports another module with **Import Type** set to **Reference**. The panel's next refresh from its source module would replace the copy. | Click **Close** to dismiss the dialog. ### Imported Panels A Panel component with **Import Type** set to **Copy** keeps the imported module's components in the module. When those components include a Private Smart Component that the source module owns, the next save opens the **Save with a copy?** dialog. Confirming gives the module its own copy. See [Saving with Copies](/unqorkai/docs/using-smart-components-in-a-module#saving-with-copies). After that save, the panel's components paste like any other components in the module. ## Importing a Bundle Where the imported components go depends on where the import begins and what the bundle holds. To import a bundle into a module: 1. In the Module Builder toolbar, click ![EllipsisVertical](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/api_upload_20261113_170727_10891c5512f34b029179c17aad653c6d.svg?sv=2026-02-06&spr=https&st=2026-11-14T01%3A02%3A42Z&se=2026-11-14T02%3A02%3A42Z&sr=c&sp=r&sig=2d8aY13t%2BwqWvjEjACuKW5uDujYeCPYspAc45Z5Etq0%3D) (**ellipsis**). 2. Select **Modify Module**, then select **Import…**. Import is available only in edit mode. 3. Select a `.uqbundle` file. A module bundle creates a new module in the application, and the new module owns the bundle's Private Smart Components. The platform opens the new module. A component bundle gives the open module its components, which display in the **In This Module** group of the component tray. To import components for the whole environment, open the Smart Components Hub. In the Explorer panel, click ![EllipsisVertical](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/api_upload_20261113_170727_10891c5512f34b029179c17aad653c6d.svg?sv=2026-02-06&spr=https&st=2026-11-14T01%3A02%3A42Z&se=2026-11-14T02%3A02%3A42Z&sr=c&sp=r&sig=2d8aY13t%2BwqWvjEjACuKW5uDujYeCPYspAc45Z5Etq0%3D) (**ellipsis**) on the **Components** folder, then select **Import**. This import creates Public components that aren't published yet. It accepts component bundles only. A module bundle displays this message: "This bundle contains a module. Import it from the module toolbar inside an application." When a component name in the bundle is already taken in the destination, the **Rename components to import** dialog displays before anything is imported. Each field is labeled **New name for** followed by the component's name, and opens on a suggested free name. A name can contain only letters, numbers, and underscores. Click **Import** to import with the names entered, or **Cancel** to stop the import. When the import completes, the **Bundle imported** message displays. When a component landed under a new name, the message adds **Renamed:** followed by each original name and its new name. ## Naming Copies A copy keeps the original's name and title when the destination module doesn't already use that name. When the name is taken, the copy adds a numeric suffix: `Card` becomes `Card2`, and `Card2` becomes `Card3`. The title follows the same pattern, so **Card** becomes **Card 2**. Two modules can each own a Private component with the same name. For the full naming rules, see [Smart Components Hub](/unqorkai/docs/smart-components-hub#creating-a-smart-component). --- **Changelog** | Date | Change | | --- | --- | | 2026-11-06 | Initial publication for 9.2. | A place on your operating system that stores recently copied content. The clipboard only stores one item at a time. A Property ID is the unique field ID used by Unqork to track and link components in your module. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform.