diff --git a/17/umbraco-cms/.gitbook.yaml b/17/umbraco-cms/.gitbook.yaml new file mode 100644 index 00000000000..0683e8964e1 --- /dev/null +++ b/17/umbraco-cms/.gitbook.yaml @@ -0,0 +1,148 @@ +root: ./ + +structure: + readme: README.md + summary: SUMMARY.md + +redirects: + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/configuration: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/configuration.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/styles: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/plugins: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/extensions.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/blocks: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/blocks.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/change-rich-text-editor-ui: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/README.md + customizing/development-flow/typescript-setup: customizing/development-flow/README.md + customizing/foundation/working-with-data: customizing/foundation/README.md + customizing/foundation/working-with-data/context-api: customizing/foundation/context-api/README.md + customizing/foundation/working-with-data/repositories: customizing/foundation/repositories.md + customizing/foundation/working-with-data/states: customizing/foundation/states.md + customizing/foundation/working-with-data/store: customizing/foundation/README.md + reference/notifications/editormodel-notifications/customizing-the-links-box: reference/notifications/editormodel-notifications/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/blocks: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/README.md + tutorials/creating-a-custom-dashboard: tutorials/creating-a-custom-dashboard/README.md + extending/property-editors/declaring-your-property-editor: tutorials/creating-a-property-editor/README.md + reference/management/services/create-a-new-user: reference/management/using-services/userservice.md + reference/management/services/auditservice: reference/management/README.md + reference/management/services/contentservice: reference/management/README.md + reference/management/services/contenttypeservice: reference/management/README.md + reference/management/services/contenttypeservice/retrieving-content-type-containers: reference/management/using-services/contenttypeservice.md + reference/management/services/datatypeservice: reference/management/README.md + reference/management/services/domainservice: reference/management/README.md + reference/management/services/entityservice: reference/management/README.md + reference/management/services/externalloginservice: reference/management/README.md + reference/management/services/fileservice: reference/management/README.md + reference/management/services/localizationservice: reference/management/README.md + reference/management/services/macroservice: reference/management/README.md + reference/management/services/membergroupservice: reference/management/README.md + reference/management/services/memberservice: reference/management/README.md + reference/management/services/membertypeservice: reference/management/README.md + reference/management/services/notificationservice: reference/management/README.md + reference/management/services/packagingservice: reference/management/README.md + reference/management/services/publicaccessservice: reference/management/README.md + reference/management/services/redirecturlservice: reference/management/README.md + reference/management/services/serverregistrationservice: reference/management/README.md + reference/management/services/tagservice: reference/management/README.md + reference/management/services/textservice: reference/management/README.md + reference/management/services/userservice: reference/management/using-services/userservice.md + reference/management/models: reference/management/README.md + reference/management/models/content: reference/management/README.md + reference/management/models/contenttype: reference/management/README.md + reference/management/models/datatype: reference/management/README.md + reference/management/models/dictionaryitem: reference/management/README.md + reference/management/models/language: reference/management/README.md + reference/management/models/media: reference/management/README.md + reference/management/models/mediatype: reference/management/README.md + reference/management/models/relation: reference/management/README.md + reference/management/models/relationtype: reference/management/README.md + reference/management/models/serverregistration: reference/management/README.md + reference/management/models/template: reference/management/README.md + reference/management/services: reference/management/using-services/README.md + reference/management/services/consentservice: reference/management/using-services/consentservice.md + reference/management/services/mediaservice: reference/management/using-services/mediaservice.md + reference/management/services/relationservice: reference/management/using-services/relationservice.md + reference/management/services/contentservice/create-content-programmatically: reference/management/using-services/contentservice.md + reference/management/services/create-content-programmatically: reference/management/using-services/contentservice.md + reference/management/services/contenttypeservice/retrieving-content-types: reference/management/using-services/contenttypeservice.md + reference/management/services/retrieving-content-types: reference/management/using-services/contenttypeservice.md + reference/management/services/localizationservice/retrieving-languages: reference/management/using-services/localizationservice.md + reference/management/services/retrieving-languages: reference/management/using-services/localizationservice.md + reference/management/services/managing-users: reference/management/using-services/userservice.md + reference/management/services/userservice/create-a-new-user: reference/management/using-services/userservice.md + reference/angular: customizing/ui-library.md + reference/angular/directives: customizing/ui-library.md + reference/angular/directives/umbproperty: customizing/ui-library.md + reference/angular/directives/umbloadindicator: customizing/ui-library.md + reference/angular/directives/umblayoutselector: customizing/ui-library.md + reference/angular/services: customizing/ui-library.md + reference/angular/services/editorservice: customizing/ui-library.md + reference/angular/services/eventsservice: customizing/ui-library.md + reference/angular/services/eventsservice/changetitle: customizing/ui-library.md + extending-backoffice/content-apps: customizing/extending-overview/extension-types/workspaces/workspace-views.md + extending-backoffice/localization: customizing/extending-overview/extension-types/localization.md + extending/ui-library: customizing/ui-library.md + extending/backoffice-ui-api-documentation: customizing/ui-library.md + reference/configuration/richtexteditorsettings: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/configuration.md + extending-backoffice/section-trees/trees/tree-actions: customizing/extending-overview/extending-types/entity-actions.md + extending/macro-parameter-editors: reference/templating/macros.md + extending/health-check/guides/macroerrors: reference/templating/macros.md + fundamentals/design/partial-view-macro-files: reference/templating/macros.md + reference/templating/macros/managing-macros: reference/templating/macros.md + reference/templating/macros/partial-view-macros: reference/templating/macros.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/nested-content: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/build-your-own-editor: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/add-value-programmatically: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors/configuring-the-grid-layout-datatype: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors/settings-and-styles: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors/build-your-own-editor: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors/render-grid-in-template: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors/grid-layout-best-practices: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/grid-layout/grid-editors/what-are-grid-layouts: fundamentals/backoffice/property-editors/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/media-picker: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/media-picker-3.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/multinode-treepicker: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/content-picker.md + reference/notifications/contentypeservice-notifications: reference/notifications/README.md + reference/notifications/datatypeservice-notifications: reference/notifications/README.md + reference/notifications/fileservice-notifications: reference/notifications/README.md + reference/notifications/localizationservice-notifications: reference/notifications/README.md + reference/notifications/mediatypeservice-notifications: reference/notifications/README.md + reference/notifications/membertypeservice-notifications: reference/notifications/README.md + reference/notifications/relationservice-notifications: reference/notifications/README.md + tutorials/editors-manual/working-with-content/rich-text-editor: tutorials/editors-manual/working-with-content.md + fundamentals/backoffice/content-templates: fundamentals/backoffice/document-blueprints.md + reference/configuration/runtimeminificationsettings: reference/configuration/README.md + reference/routing/umbraco-api-controllers/authorization: reference/routing/umbraco-api-controllers/README.md + reference/routing/umbraco-api-controllers/routing: reference/routing/umbraco-api-controllers/README.md + reference/notifications/sendingallowedchildrennotifications: reference/content-type-filters.md + extending/property-editors/package-manifest: customizing/umbraco-package.md + fundamentals/backoffice/infinite-editing: fundamentals/backoffice/sidebar.md + extending/backoffice-tours: extending/build-on-umbraco-functionality.md + tutorials/creating-a-backoffice-tour: tutorials/overview.md + extending/packages/types-of-packages: extending/packages/README.md + reference/configuration/nucachesettings: reference/configuration/cache-settings.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/listview: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/collection.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/rte-styles: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/styles.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/rte-plugins: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/plugins.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/rte-blocks: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor-tinymce/blocks.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/block-editor/label-property-configuration: reference/umbraco-flavored-markdown.md + customizing/property-editors/build-a-block-editor: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/block-editor/README.md + tutorials/creating-and-distributing-a-package: extending/packages/creating-a-package.md + fundamentals/design/templates/named-sections: fundamentals/design/templates/README.md + tutorials/custom-error-pages: tutorials/custom-error-page.md + reference/events/contentservice-events: reference/notifications/contentservice-notifications.md + reference/configuration-for-umbraco-7-and-8/webconfig: reference/configuration/README.md + fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/block-editor/build-custom-view-for-blocks: tutorials/creating-custom-views-for-blocklist.md + fundamentals/backoffice/property-editors/built-in-property-editors/rich-text-editor: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/README.md + fundamentals/backoffice/property-editors/built-in-property-editors/nested-content: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/block-editor/README.md + fundamentals/backoffice/property-editors/built-in-property-editors/block-list-editor: fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/block-editor/README.md + extending/ui-documentation: customizing/README.md + extending/section-trees/sections: umbraco-cms/customizing/extending-overview/extension-types/sections/section.md + extending/property-editors: customizing/property-editors/README.md + extending/language-files/ui-localization: customizing/foundation/localization.md + extending/dashboards: customizing/extending-overview/extension-types/dashboard.md + extending/customize-the-editing-experience: customizing/README.md + extending/customize-backoffice/vite-package-setup: customizing/development-flow/vite-package-setup.md + extending/customize-backoffice: customizing/README.md + extending/content-apps: customizing/extending-overview/extension-types/workspaces/workspace-views.md + extending/backoffice-setup/extension-types: customizing/extending-overview/extension-types/README.md + customizing/extending-overview/extension-registry/extension-registry: customizing/extending-overview/extension-registry/register-extensions.md diff --git a/17/umbraco-cms/.gitbook/assets/Additional_Info (1).jpg b/17/umbraco-cms/.gitbook/assets/Additional_Info (1).jpg new file mode 100644 index 00000000000..72a2929b890 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Additional_Info (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Additional_Info (2).jpg b/17/umbraco-cms/.gitbook/assets/Additional_Info (2).jpg new file mode 100644 index 00000000000..72a2929b890 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Additional_Info (2).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Additional_Info.jpg b/17/umbraco-cms/.gitbook/assets/Additional_Info.jpg new file mode 100644 index 00000000000..72a2929b890 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Additional_Info.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Additional_Info_V16.png b/17/umbraco-cms/.gitbook/assets/Additional_Info_V16.png new file mode 100644 index 00000000000..24f1f3326c7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Additional_Info_V16.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Canvas_tab (1).png b/17/umbraco-cms/.gitbook/assets/Canvas_tab (1).png new file mode 100644 index 00000000000..1e6b0c0730a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Canvas_tab (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Canvas_tab (2).png b/17/umbraco-cms/.gitbook/assets/Canvas_tab (2).png new file mode 100644 index 00000000000..1e6b0c0730a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Canvas_tab (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Canvas_tab.png b/17/umbraco-cms/.gitbook/assets/Canvas_tab.png new file mode 100644 index 00000000000..1e6b0c0730a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Canvas_tab.png differ diff --git a/17/umbraco-cms/.gitbook/assets/ContentPicker-data-type-definition.png b/17/umbraco-cms/.gitbook/assets/ContentPicker-data-type-definition.png new file mode 100644 index 00000000000..4079d60ffc6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/ContentPicker-data-type-definition.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_LaunchJson_file.jpg b/17/umbraco-cms/.gitbook/assets/Create_LaunchJson_file.jpg new file mode 100644 index 00000000000..0ce06b712d2 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_LaunchJson_file.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality (1).png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality (1).png new file mode 100644 index 00000000000..2ffb4829d22 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality.png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality.png new file mode 100644 index 00000000000..2ffb4829d22 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_gettting_data (1).png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_gettting_data (1).png new file mode 100644 index 00000000000..ebc88d8d4fb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_gettting_data (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_gettting_data.png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_gettting_data.png new file mode 100644 index 00000000000..ebc88d8d4fb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_gettting_data.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list (1).png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list (1).png new file mode 100644 index 00000000000..2393d1f4590 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list.png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list.png new file mode 100644 index 00000000000..2393d1f4590 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled (1).png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled (1).png new file mode 100644 index 00000000000..41774b290b1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled.png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled.png new file mode 100644 index 00000000000..41774b290b1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled_table (1).png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled_table (1).png new file mode 100644 index 00000000000..71dc772189f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled_table (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled_table.png b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled_table.png new file mode 100644 index 00000000000..71dc772189f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_dashboard_functionality_users_list_ui_styled_table.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_first_extension_Typescript (1).png b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Typescript (1).png new file mode 100644 index 00000000000..298fc34e257 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Typescript (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_first_extension_Typescript.png b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Typescript.png new file mode 100644 index 00000000000..298fc34e257 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Typescript.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_first_extension_Vanilla (1).png b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Vanilla (1).png new file mode 100644 index 00000000000..d132d1b4d23 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Vanilla (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Create_first_extension_Vanilla.png b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Vanilla.png new file mode 100644 index 00000000000..d132d1b4d23 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Create_first_extension_Vanilla.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Docs_tab (1).png b/17/umbraco-cms/.gitbook/assets/Docs_tab (1).png new file mode 100644 index 00000000000..ac21325f172 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Docs_tab (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Docs_tab (2).png b/17/umbraco-cms/.gitbook/assets/Docs_tab (2).png new file mode 100644 index 00000000000..ac21325f172 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Docs_tab (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Docs_tab.png b/17/umbraco-cms/.gitbook/assets/Docs_tab.png new file mode 100644 index 00000000000..ac21325f172 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Docs_tab.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Dashboards.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Dashboards.png new file mode 100644 index 00000000000..3521daba379 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Dashboards.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Health_Checks.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Health_Checks.png new file mode 100644 index 00000000000..5524b73c767 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Health_Checks.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Packages.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Packages.png new file mode 100644 index 00000000000..126a7bb65a1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Packages.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Property_Editors.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Property_Editors.png new file mode 100644 index 00000000000..555d76dfbee Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Property_Editors.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Sections_and_Trees.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Sections_and_Trees.png new file mode 100644 index 00000000000..c313d797d13 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Extending_Sections_and_Trees.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals.png new file mode 100644 index 00000000000..b9010a07979 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (1).png new file mode 100644 index 00000000000..07e0d5c35eb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (2).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (2).png new file mode 100644 index 00000000000..07e0d5c35eb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1).png new file mode 100644 index 00000000000..07e0d5c35eb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice.png new file mode 100644 index 00000000000..07e0d5c35eb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Code.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Code.png new file mode 100644 index 00000000000..6258bb83e76 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Code.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Data.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Data.png new file mode 100644 index 00000000000..635ea063b60 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Data.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Design.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Design.png new file mode 100644 index 00000000000..b3ed5209357 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Design.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Setup (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Setup (1).png new file mode 100644 index 00000000000..7ec0cf1d7b5 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Setup (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Setup.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Setup.png new file mode 100644 index 00000000000..7ec0cf1d7b5 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Fundamentals_Setup.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Composing.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Composing.png new file mode 100644 index 00000000000..b10aa4d8651 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Composing.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Controllers.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Controllers.png new file mode 100644 index 00000000000..56e75d65963 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Controllers.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Custom_Routing.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Custom_Routing.png new file mode 100644 index 00000000000..4ac0bbf95a0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Custom_Routing.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Data_Persistence.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Data_Persistence.png new file mode 100644 index 00000000000..ac956eafbbc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Data_Persistence.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Routing.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Routing.png new file mode 100644 index 00000000000..8ea13956765 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Routing.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Services_and_Helpers.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Services_and_Helpers.png new file mode 100644 index 00000000000..724c96c54d3 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Implementation_Services_and_Helpers.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Install (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Install (1).png new file mode 100644 index 00000000000..01beb93f1e6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Install (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Install.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Install.png new file mode 100644 index 00000000000..01beb93f1e6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Install.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_API_Documentation.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_API_Documentation.png new file mode 100644 index 00000000000..7164d6542f9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_API_Documentation.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Caching.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Caching.png new file mode 100644 index 00000000000..41b02fe3c4a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Caching.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Configuration.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Configuration.png new file mode 100644 index 00000000000..35d43482ffd Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Configuration.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Notifications.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Notifications.png new file mode 100644 index 00000000000..5790d353ba3 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Notifications.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Querying_and_Models.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Querying_and_Models.png new file mode 100644 index 00000000000..61b11658050 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Querying_and_Models.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Routing_and_Controllers.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Routing_and_Controllers.png new file mode 100644 index 00000000000..8529aae789f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Routing_and_Controllers.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Searching (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Searching (1).png new file mode 100644 index 00000000000..36feaf25719 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Searching (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Searching.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Searching.png new file mode 100644 index 00000000000..36feaf25719 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Searching.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Security.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Security.png new file mode 100644 index 00000000000..a9bbebbbea0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Security.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Templating.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Templating.png new file mode 100644 index 00000000000..94df11bb19a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Reference_Templating.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials.png new file mode 100644 index 00000000000..f96fffc1c43 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Basic_Website.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Basic_Website.png new file mode 100644 index 00000000000..45f98513f48 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Basic_Website.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Dashboard.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Dashboard.png new file mode 100644 index 00000000000..49a429c95da Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Dashboard.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Error_Page.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Error_Page.png new file mode 100644 index 00000000000..f95896c57ef Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Error_Page.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Property_Editor.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Property_Editor.png new file mode 100644 index 00000000000..fb540e90782 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Property_Editor.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Views_Block_List.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Views_Block_List.png new file mode 100644 index 00000000000..8b0c842229f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Custom_Views_Block_List.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Google_Authentification.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Google_Authentification.png new file mode 100644 index 00000000000..3f678967f20 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Google_Authentification.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Member_Reg_and_login.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Member_Reg_and_login.png new file mode 100644 index 00000000000..66dc300073f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Member_Reg_and_login.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup (1).png new file mode 100644 index 00000000000..a6e56cde534 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup.png new file mode 100644 index 00000000000..a6e56cde534 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_MultiSite_Setup.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Multilingual_Website.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Multilingual_Website.png new file mode 100644 index 00000000000..92cc76d753f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Multilingual_Website.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Umbraco_Forms_and_Zapier.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Umbraco_Forms_and_Zapier.png new file mode 100644 index 00000000000..ccffbc3c872 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_Umbraco_Forms_and_Zapier.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit (1).png new file mode 100644 index 00000000000..aed96f1fd6a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit.png new file mode 100644 index 00000000000..aed96f1fd6a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Cloud_Setup.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Cloud_Setup.png new file mode 100644 index 00000000000..0dad8ed536e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Cloud_Setup.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Commerce_How_to_Guide.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Commerce_How_to_Guide.png new file mode 100644 index 00000000000..bdcd0b3f83c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Commerce_How_to_Guide.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Forms_Install (1).png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Forms_Install (1).png new file mode 100644 index 00000000000..e4aa739cb56 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Forms_Install (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Forms_Install.png b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Forms_Install.png new file mode 100644 index 00000000000..e4aa739cb56 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Documentations Icons_Umbraco_Forms_Install.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Dropdown_option.jpg b/17/umbraco-cms/.gitbook/assets/Dropdown_option.jpg new file mode 100644 index 00000000000..8c6c135c273 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Dropdown_option.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Install_Umbraco.jpg b/17/umbraco-cms/.gitbook/assets/Install_Umbraco.jpg new file mode 100644 index 00000000000..88c43ab285e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Install_Umbraco.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Latest_nightly_build_version.jpg b/17/umbraco-cms/.gitbook/assets/Latest_nightly_build_version.jpg new file mode 100644 index 00000000000..341da76534c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Latest_nightly_build_version.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Manage_NuGet_Pkgs (1).jpg b/17/umbraco-cms/.gitbook/assets/Manage_NuGet_Pkgs (1).jpg new file mode 100644 index 00000000000..68138f7e4b6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Manage_NuGet_Pkgs (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Manage_NuGet_Pkgs.jpg b/17/umbraco-cms/.gitbook/assets/Manage_NuGet_Pkgs.jpg new file mode 100644 index 00000000000..68138f7e4b6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Manage_NuGet_Pkgs.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Manage_Packages.jpg b/17/umbraco-cms/.gitbook/assets/Manage_Packages.jpg new file mode 100644 index 00000000000..9ff2c8538dc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Manage_Packages.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Marketplace.jpg b/17/umbraco-cms/.gitbook/assets/Marketplace.jpg new file mode 100644 index 00000000000..e9d31ab959e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Marketplace.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/ModelsBuilderDisabledOnProduction.png b/17/umbraco-cms/.gitbook/assets/ModelsBuilderDisabledOnProduction.png new file mode 100644 index 00000000000..14492e61ab3 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/ModelsBuilderDisabledOnProduction.png differ diff --git a/17/umbraco-cms/.gitbook/assets/NewFeed_Details.jpg b/17/umbraco-cms/.gitbook/assets/NewFeed_Details.jpg new file mode 100644 index 00000000000..5ce96af75da Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewFeed_Details.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/NewPropertyEditor (1).png b/17/umbraco-cms/.gitbook/assets/NewPropertyEditor (1).png new file mode 100644 index 00000000000..b7803bdf34b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewPropertyEditor (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/NewPropertyEditor.png b/17/umbraco-cms/.gitbook/assets/NewPropertyEditor.png new file mode 100644 index 00000000000..b7803bdf34b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewPropertyEditor.png differ diff --git a/17/umbraco-cms/.gitbook/assets/NewPropertyEditorButtons (1).png b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorButtons (1).png new file mode 100644 index 00000000000..1da56df1786 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorButtons (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/NewPropertyEditorButtons.png b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorButtons.png new file mode 100644 index 00000000000..1da56df1786 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorButtons.png differ diff --git a/17/umbraco-cms/.gitbook/assets/NewPropertyEditorSuggestions (1).png b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorSuggestions (1).png new file mode 100644 index 00000000000..fa8291c3905 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorSuggestions (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/NewPropertyEditorSuggestions.png b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorSuggestions.png new file mode 100644 index 00000000000..fa8291c3905 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NewPropertyEditorSuggestions.png differ diff --git a/17/umbraco-cms/.gitbook/assets/New_Project.jpg b/17/umbraco-cms/.gitbook/assets/New_Project.jpg new file mode 100644 index 00000000000..0666959592a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/New_Project.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/NuGet_NewFeed.jpg b/17/umbraco-cms/.gitbook/assets/NuGet_NewFeed.jpg new file mode 100644 index 00000000000..e17dee522b9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/NuGet_NewFeed.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1) (1).jpg b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1) (1).jpg new file mode 100644 index 00000000000..748293bccb7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1) (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1) (2).jpg b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1) (2).jpg new file mode 100644 index 00000000000..748293bccb7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1) (2).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1).jpg b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1).jpg new file mode 100644 index 00000000000..748293bccb7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings.jpg b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings.jpg new file mode 100644 index 00000000000..748293bccb7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Package-Manager-Settings.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Pasted image 20230525192217 (1).png b/17/umbraco-cms/.gitbook/assets/Pasted image 20230525192217 (1).png new file mode 100644 index 00000000000..9e2ea36a5f8 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Pasted image 20230525192217 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Pasted image 20230525192217.png b/17/umbraco-cms/.gitbook/assets/Pasted image 20230525192217.png new file mode 100644 index 00000000000..9e2ea36a5f8 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Pasted image 20230525192217.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Prompt_Menu.jpg b/17/umbraco-cms/.gitbook/assets/Prompt_Menu.jpg new file mode 100644 index 00000000000..e700d4609b9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Prompt_Menu.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/ReferencedDataTypes.PNG b/17/umbraco-cms/.gitbook/assets/ReferencedDataTypes.PNG new file mode 100644 index 00000000000..a0d6f1abbb9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/ReferencedDataTypes.PNG differ diff --git a/17/umbraco-cms/.gitbook/assets/Register_Nightly_Feed.jpg b/17/umbraco-cms/.gitbook/assets/Register_Nightly_Feed.jpg new file mode 100644 index 00000000000..bd549030ecc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Register_Nightly_Feed.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Rider_Nightly_Feed.jpg b/17/umbraco-cms/.gitbook/assets/Rider_Nightly_Feed.jpg new file mode 100644 index 00000000000..68701876301 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Rider_Nightly_Feed.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Rider_Nightly_Feed_version.jpg b/17/umbraco-cms/.gitbook/assets/Rider_Nightly_Feed_version.jpg new file mode 100644 index 00000000000..9b60bb59f21 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Rider_Nightly_Feed_version.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Screenshot 2025-06-04 at 12.45.05.png b/17/umbraco-cms/.gitbook/assets/Screenshot 2025-06-04 at 12.45.05.png new file mode 100644 index 00000000000..3462128b1a0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Screenshot 2025-06-04 at 12.45.05.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Solution_Explorer.png b/17/umbraco-cms/.gitbook/assets/Solution_Explorer.png new file mode 100644 index 00000000000..254eb8d89be Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Solution_Explorer.png differ diff --git a/17/umbraco-cms/.gitbook/assets/TemplatedCannotBeEditedWhenRuntimeIsProduction.png b/17/umbraco-cms/.gitbook/assets/TemplatedCannotBeEditedWhenRuntimeIsProduction.png new file mode 100644 index 00000000000..f6379dc05f6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/TemplatedCannotBeEditedWhenRuntimeIsProduction.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Top_hero_for_com_1500x500px2.png b/17/umbraco-cms/.gitbook/assets/Top_hero_for_com_1500x500px2.png new file mode 100644 index 00000000000..10ef4a25841 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Top_hero_for_com_1500x500px2.png differ diff --git a/17/umbraco-cms/.gitbook/assets/UUI.jpg b/17/umbraco-cms/.gitbook/assets/UUI.jpg new file mode 100644 index 00000000000..28a397b8e2f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/UUI.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - Hero_1665x438px.jpg b/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - Hero_1665x438px.jpg new file mode 100644 index 00000000000..00e1e766fd8 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - Hero_1665x438px.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - SoMe_1200x628px.jpg b/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - SoMe_1200x628px.jpg new file mode 100644 index 00000000000..222ddb45785 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - SoMe_1200x628px.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - Thumbnail_898x598px.jpg b/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - Thumbnail_898x598px.jpg new file mode 100644 index 00000000000..2037767fcf5 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Umbraco 15 - Release - Thumbnail_898x598px.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Umbraco 16 - Hero.jpg b/17/umbraco-cms/.gitbook/assets/Umbraco 16 - Hero.jpg new file mode 100644 index 00000000000..3cee1bf8f61 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Umbraco 16 - Hero.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/Using_Dictionary_Value.jpg b/17/umbraco-cms/.gitbook/assets/Using_Dictionary_Value.jpg new file mode 100644 index 00000000000..71aafdbe493 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Using_Dictionary_Value.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/VS-Package-Sources (1).jpg b/17/umbraco-cms/.gitbook/assets/VS-Package-Sources (1).jpg new file mode 100644 index 00000000000..d29f5cc865b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/VS-Package-Sources (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/VS-Package-Sources.jpg b/17/umbraco-cms/.gitbook/assets/VS-Package-Sources.jpg new file mode 100644 index 00000000000..d29f5cc865b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/VS-Package-Sources.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/VS_Code_Explorer.png b/17/umbraco-cms/.gitbook/assets/VS_Code_Explorer.png new file mode 100644 index 00000000000..8a2fb9da115 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/VS_Code_Explorer.png differ diff --git a/17/umbraco-cms/.gitbook/assets/Vite_Package_Setup_Dashboard (1).png b/17/umbraco-cms/.gitbook/assets/Vite_Package_Setup_Dashboard (1).png new file mode 100644 index 00000000000..1a623c467ba Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Vite_Package_Setup_Dashboard (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/Vite_Package_Setup_Dashboard.png b/17/umbraco-cms/.gitbook/assets/Vite_Package_Setup_Dashboard.png new file mode 100644 index 00000000000..1a623c467ba Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/Vite_Package_Setup_Dashboard.png differ diff --git a/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10 (1).png b/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10 (1).png new file mode 100644 index 00000000000..fa519c365bc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10 (2).png b/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10 (2).png new file mode 100644 index 00000000000..fa519c365bc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10 (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10.png b/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10.png new file mode 100644 index 00000000000..fa519c365bc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/WeKnowWhatYouEditedLastWeek-v10.png differ diff --git a/17/umbraco-cms/.gitbook/assets/add-custom-section-v8 (1).png b/17/umbraco-cms/.gitbook/assets/add-custom-section-v8 (1).png new file mode 100644 index 00000000000..d5465050e54 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/add-custom-section-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/add-custom-section-v8.png b/17/umbraco-cms/.gitbook/assets/add-custom-section-v8.png new file mode 100644 index 00000000000..d5465050e54 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/add-custom-section-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/all-users-first-look.png b/17/umbraco-cms/.gitbook/assets/all-users-first-look.png new file mode 100644 index 00000000000..c1f369af340 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/all-users-first-look.png differ diff --git a/17/umbraco-cms/.gitbook/assets/all-users-first-look2.png b/17/umbraco-cms/.gitbook/assets/all-users-first-look2.png new file mode 100644 index 00000000000..1a2a34217db Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/all-users-first-look2.png differ diff --git a/17/umbraco-cms/.gitbook/assets/api-docs-image.png b/17/umbraco-cms/.gitbook/assets/api-docs-image.png new file mode 100644 index 00000000000..215f4191aff Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/api-docs-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/app-pligins-contents.png b/17/umbraco-cms/.gitbook/assets/app-pligins-contents.png new file mode 100644 index 00000000000..c0350372ad7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/app-pligins-contents.png differ diff --git a/17/umbraco-cms/.gitbook/assets/append-step-to-query.png b/17/umbraco-cms/.gitbook/assets/append-step-to-query.png new file mode 100644 index 00000000000..e180bb29a74 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/append-step-to-query.png differ diff --git a/17/umbraco-cms/.gitbook/assets/are-you-hungry.png b/17/umbraco-cms/.gitbook/assets/are-you-hungry.png new file mode 100644 index 00000000000..d3367721f56 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/are-you-hungry.png differ diff --git a/17/umbraco-cms/.gitbook/assets/backoffice-overview-customizations.png b/17/umbraco-cms/.gitbook/assets/backoffice-overview-customizations.png new file mode 100644 index 00000000000..144ff1379a1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/backoffice-overview-customizations.png differ diff --git a/17/umbraco-cms/.gitbook/assets/backoffice-search-v8 (1).png b/17/umbraco-cms/.gitbook/assets/backoffice-search-v8 (1).png new file mode 100644 index 00000000000..1ab9820f3bc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/backoffice-search-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/backoffice-search-v8.png b/17/umbraco-cms/.gitbook/assets/backoffice-search-v8.png new file mode 100644 index 00000000000..1ab9820f3bc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/backoffice-search-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/backoffice-ui-images (1).png b/17/umbraco-cms/.gitbook/assets/backoffice-ui-images (1).png new file mode 100644 index 00000000000..52949da0a85 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/backoffice-ui-images (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/backoffice-ui-images.png b/17/umbraco-cms/.gitbook/assets/backoffice-ui-images.png new file mode 100644 index 00000000000..52949da0a85 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/backoffice-ui-images.png differ diff --git a/17/umbraco-cms/.gitbook/assets/backoffice.png b/17/umbraco-cms/.gitbook/assets/backoffice.png new file mode 100644 index 00000000000..fb407f3e003 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/backoffice.png differ diff --git a/17/umbraco-cms/.gitbook/assets/block-list-image.png b/17/umbraco-cms/.gitbook/assets/block-list-image.png new file mode 100644 index 00000000000..7e2462aff88 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/block-list-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/c-routing-image.png b/17/umbraco-cms/.gitbook/assets/c-routing-image.png new file mode 100644 index 00000000000..6ef562a2139 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/c-routing-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/caching-image.png b/17/umbraco-cms/.gitbook/assets/caching-image.png new file mode 100644 index 00000000000..16c31b7d1fd Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/caching-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/changing-languages-v10 (1).png b/17/umbraco-cms/.gitbook/assets/changing-languages-v10 (1).png new file mode 100644 index 00000000000..51b59df68af Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/changing-languages-v10 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/changing-languages-v10 (2).png b/17/umbraco-cms/.gitbook/assets/changing-languages-v10 (2).png new file mode 100644 index 00000000000..51b59df68af Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/changing-languages-v10 (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/changing-languages-v10.png b/17/umbraco-cms/.gitbook/assets/changing-languages-v10.png new file mode 100644 index 00000000000..51b59df68af Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/changing-languages-v10.png differ diff --git a/17/umbraco-cms/.gitbook/assets/code-image.png b/17/umbraco-cms/.gitbook/assets/code-image.png new file mode 100644 index 00000000000..37060e9deb1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/code-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/collection-icon.png b/17/umbraco-cms/.gitbook/assets/collection-icon.png new file mode 100644 index 00000000000..41b58466ad7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/collection-icon.png differ diff --git a/17/umbraco-cms/.gitbook/assets/collection-settings-example-15-1.png b/17/umbraco-cms/.gitbook/assets/collection-settings-example-15-1.png new file mode 100644 index 00000000000..9b989d60176 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/collection-settings-example-15-1.png differ diff --git a/17/umbraco-cms/.gitbook/assets/composing-image.png b/17/umbraco-cms/.gitbook/assets/composing-image.png new file mode 100644 index 00000000000..84114e14334 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/composing-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/consolelog.png b/17/umbraco-cms/.gitbook/assets/consolelog.png new file mode 100644 index 00000000000..ac07082a2e4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/consolelog.png differ diff --git a/17/umbraco-cms/.gitbook/assets/content-picker-query-steps.png b/17/umbraco-cms/.gitbook/assets/content-picker-query-steps.png new file mode 100644 index 00000000000..0204da0e2a6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/content-picker-query-steps.png differ diff --git a/17/umbraco-cms/.gitbook/assets/controllers-image (1).png b/17/umbraco-cms/.gitbook/assets/controllers-image (1).png new file mode 100644 index 00000000000..18d83567ff4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/controllers-image (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/controllers-image.png b/17/umbraco-cms/.gitbook/assets/controllers-image.png new file mode 100644 index 00000000000..18d83567ff4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/controllers-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/create-website-image.png b/17/umbraco-cms/.gitbook/assets/create-website-image.png new file mode 100644 index 00000000000..950d99bb992 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/create-website-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/creating-a-property-editor-trim.png b/17/umbraco-cms/.gitbook/assets/creating-a-property-editor-trim.png new file mode 100644 index 00000000000..5a964fd5215 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/creating-a-property-editor-trim.png differ diff --git a/17/umbraco-cms/.gitbook/assets/creating-package-menu-v9.png b/17/umbraco-cms/.gitbook/assets/creating-package-menu-v9.png new file mode 100644 index 00000000000..da73453c0a6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/creating-package-menu-v9.png differ diff --git a/17/umbraco-cms/.gitbook/assets/custom-section-alias-v8 (1).png b/17/umbraco-cms/.gitbook/assets/custom-section-alias-v8 (1).png new file mode 100644 index 00000000000..6a8e9633af9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/custom-section-alias-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/custom-section-alias-v8.png b/17/umbraco-cms/.gitbook/assets/custom-section-alias-v8.png new file mode 100644 index 00000000000..6a8e9633af9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/custom-section-alias-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-logviewer.png b/17/umbraco-cms/.gitbook/assets/dashboard-logviewer.png new file mode 100644 index 00000000000..47296f6475e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-logviewer.png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10 (1).png b/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10 (1).png new file mode 100644 index 00000000000..3f81a1b8dd0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10 (2).png b/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10 (2).png new file mode 100644 index 00000000000..3f81a1b8dd0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10 (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10.png b/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10.png new file mode 100644 index 00000000000..3f81a1b8dd0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-translated-v10.png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10 (1).png b/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10 (1).png new file mode 100644 index 00000000000..c5410b1f223 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10 (2).png b/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10 (2).png new file mode 100644 index 00000000000..c5410b1f223 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10 (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10.png b/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10.png new file mode 100644 index 00000000000..c5410b1f223 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboard-untranslated-v10.png differ diff --git a/17/umbraco-cms/.gitbook/assets/dashboards-image.png b/17/umbraco-cms/.gitbook/assets/dashboards-image.png new file mode 100644 index 00000000000..ae820772b31 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dashboards-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/data-flow.svg b/17/umbraco-cms/.gitbook/assets/data-flow.svg new file mode 100644 index 00000000000..e7a8481c17b --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/data-flow.svg @@ -0,0 +1,19 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/data-types-references-v10.png b/17/umbraco-cms/.gitbook/assets/data-types-references-v10.png new file mode 100644 index 00000000000..bc1cddf4a1c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/data-types-references-v10.png differ diff --git a/17/umbraco-cms/.gitbook/assets/data.png b/17/umbraco-cms/.gitbook/assets/data.png new file mode 100644 index 00000000000..00b9bd36c20 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/data.png differ diff --git a/17/umbraco-cms/.gitbook/assets/datap-image.png b/17/umbraco-cms/.gitbook/assets/datap-image.png new file mode 100644 index 00000000000..33c7e6e117c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/datap-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/delete-raindrops-on-roses-v8 (1).png b/17/umbraco-cms/.gitbook/assets/delete-raindrops-on-roses-v8 (1).png new file mode 100644 index 00000000000..ac562758a4b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/delete-raindrops-on-roses-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/delete-raindrops-on-roses-v8.png b/17/umbraco-cms/.gitbook/assets/delete-raindrops-on-roses-v8.png new file mode 100644 index 00000000000..ac562758a4b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/delete-raindrops-on-roses-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/design.png b/17/umbraco-cms/.gitbook/assets/design.png new file mode 100644 index 00000000000..f35e9ca42fd Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/design.png differ diff --git a/17/umbraco-cms/.gitbook/assets/docs-style-hero.png b/17/umbraco-cms/.gitbook/assets/docs-style-hero.png new file mode 100644 index 00000000000..a63f4894788 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/docs-style-hero.png differ diff --git a/17/umbraco-cms/.gitbook/assets/document-references-v9.png b/17/umbraco-cms/.gitbook/assets/document-references-v9.png new file mode 100644 index 00000000000..ff428234d8e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/document-references-v9.png differ diff --git a/17/umbraco-cms/.gitbook/assets/dynamic-templates.zip b/17/umbraco-cms/.gitbook/assets/dynamic-templates.zip new file mode 100644 index 00000000000..305af158943 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/dynamic-templates.zip differ diff --git a/17/umbraco-cms/.gitbook/assets/editorBar-v9.jpg b/17/umbraco-cms/.gitbook/assets/editorBar-v9.jpg new file mode 100644 index 00000000000..3b13ec937c3 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/editorBar-v9.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/embeded-resource-props.png b/17/umbraco-cms/.gitbook/assets/embeded-resource-props.png new file mode 100644 index 00000000000..ee8e0b6a49e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/embeded-resource-props.png differ diff --git a/17/umbraco-cms/.gitbook/assets/embeded-resource.png b/17/umbraco-cms/.gitbook/assets/embeded-resource.png new file mode 100644 index 00000000000..f3ac2e59a1a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/embeded-resource.png differ diff --git a/17/umbraco-cms/.gitbook/assets/embeded-zip-resource.png b/17/umbraco-cms/.gitbook/assets/embeded-zip-resource.png new file mode 100644 index 00000000000..4b85628f1a0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/embeded-zip-resource.png differ diff --git a/17/umbraco-cms/.gitbook/assets/empty-package-from-template.png b/17/umbraco-cms/.gitbook/assets/empty-package-from-template.png new file mode 100644 index 00000000000..0a692a5c54e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/empty-package-from-template.png differ diff --git a/17/umbraco-cms/.gitbook/assets/entity-action-collection-menu.svg b/17/umbraco-cms/.gitbook/assets/entity-action-collection-menu.svg new file mode 100644 index 00000000000..d9918b302aa --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/entity-action-collection-menu.svg @@ -0,0 +1,51 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/entity-action-example-content-section.png b/17/umbraco-cms/.gitbook/assets/entity-action-example-content-section.png new file mode 100644 index 00000000000..d94ccac8158 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/entity-action-example-content-section.png differ diff --git a/17/umbraco-cms/.gitbook/assets/entity-action-picker-context-menu.svg b/17/umbraco-cms/.gitbook/assets/entity-action-picker-context-menu.svg new file mode 100644 index 00000000000..6a3daa0be37 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/entity-action-picker-context-menu.svg @@ -0,0 +1,96 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/entity-action-sidebar-context.svg b/17/umbraco-cms/.gitbook/assets/entity-action-sidebar-context.svg new file mode 100644 index 00000000000..5e0e9b44c2d --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/entity-action-sidebar-context.svg @@ -0,0 +1,33 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/entity-action-workspace-menu.svg b/17/umbraco-cms/.gitbook/assets/entity-action-workspace-menu.svg new file mode 100644 index 00000000000..483aededf30 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/entity-action-workspace-menu.svg @@ -0,0 +1,44 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/entity-bulk-action-collection-menu.svg b/17/umbraco-cms/.gitbook/assets/entity-bulk-action-collection-menu.svg new file mode 100644 index 00000000000..71b4e5eb5c2 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/entity-bulk-action-collection-menu.svg @@ -0,0 +1,52 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/entity-user-permissions-ui.png b/17/umbraco-cms/.gitbook/assets/entity-user-permissions-ui.png new file mode 100644 index 00000000000..245a3d3a5b2 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/entity-user-permissions-ui.png differ diff --git a/17/umbraco-cms/.gitbook/assets/error-pages-image.png b/17/umbraco-cms/.gitbook/assets/error-pages-image.png new file mode 100644 index 00000000000..a54961025b6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/error-pages-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/example-of-property-actions (1).jpg b/17/umbraco-cms/.gitbook/assets/example-of-property-actions (1).jpg new file mode 100644 index 00000000000..2e94865f559 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/example-of-property-actions (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/example-of-property-actions.jpg b/17/umbraco-cms/.gitbook/assets/example-of-property-actions.jpg new file mode 100644 index 00000000000..2e94865f559 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/example-of-property-actions.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/extendedWithUiLibrary (1).png b/17/umbraco-cms/.gitbook/assets/extendedWithUiLibrary (1).png new file mode 100644 index 00000000000..041139ba80f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/extendedWithUiLibrary (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/extendedWithUiLibrary.png b/17/umbraco-cms/.gitbook/assets/extendedWithUiLibrary.png new file mode 100644 index 00000000000..041139ba80f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/extendedWithUiLibrary.png differ diff --git a/17/umbraco-cms/.gitbook/assets/extension-types-backoffice-browser.png b/17/umbraco-cms/.gitbook/assets/extension-types-backoffice-browser.png new file mode 100644 index 00000000000..15450daf901 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/extension-types-backoffice-browser.png differ diff --git a/17/umbraco-cms/.gitbook/assets/favourite-thing-custom-single-node-tree (1).png b/17/umbraco-cms/.gitbook/assets/favourite-thing-custom-single-node-tree (1).png new file mode 100644 index 00000000000..c40ceb25a75 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/favourite-thing-custom-single-node-tree (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/favourite-thing-custom-single-node-tree.png b/17/umbraco-cms/.gitbook/assets/favourite-thing-custom-single-node-tree.png new file mode 100644 index 00000000000..c40ceb25a75 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/favourite-thing-custom-single-node-tree.png differ diff --git a/17/umbraco-cms/.gitbook/assets/favourite-things-custom-tree-v8 (1).png b/17/umbraco-cms/.gitbook/assets/favourite-things-custom-tree-v8 (1).png new file mode 100644 index 00000000000..c6e99e95dc7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/favourite-things-custom-tree-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/favourite-things-custom-tree-v8.png b/17/umbraco-cms/.gitbook/assets/favourite-things-custom-tree-v8.png new file mode 100644 index 00000000000..c6e99e95dc7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/favourite-things-custom-tree-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/favouritethings-search-v8 (1).png b/17/umbraco-cms/.gitbook/assets/favouritethings-search-v8 (1).png new file mode 100644 index 00000000000..c1010a8dda1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/favouritethings-search-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/favouritethings-search-v8.png b/17/umbraco-cms/.gitbook/assets/favouritethings-search-v8.png new file mode 100644 index 00000000000..c1010a8dda1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/favouritethings-search-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/gitbook1.png b/17/umbraco-cms/.gitbook/assets/gitbook1.png new file mode 100644 index 00000000000..6afebb8db8d Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/gitbook1.png differ diff --git a/17/umbraco-cms/.gitbook/assets/google-auth-image.png b/17/umbraco-cms/.gitbook/assets/google-auth-image.png new file mode 100644 index 00000000000..e3aa84cc8a4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/google-auth-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/granular-user-permissions-ui.png b/17/umbraco-cms/.gitbook/assets/granular-user-permissions-ui.png new file mode 100644 index 00000000000..2b1a223e744 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/granular-user-permissions-ui.png differ diff --git a/17/umbraco-cms/.gitbook/assets/happy-anniversary.png b/17/umbraco-cms/.gitbook/assets/happy-anniversary.png new file mode 100644 index 00000000000..5fea181f52c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/happy-anniversary.png differ diff --git a/17/umbraco-cms/.gitbook/assets/header-app-example-ts (1).png b/17/umbraco-cms/.gitbook/assets/header-app-example-ts (1).png new file mode 100644 index 00000000000..8153d236233 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/header-app-example-ts (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/header-app-example-ts.png b/17/umbraco-cms/.gitbook/assets/header-app-example-ts.png new file mode 100644 index 00000000000..65d2b1a206c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/header-app-example-ts.png differ diff --git a/17/umbraco-cms/.gitbook/assets/header-app-example.png b/17/umbraco-cms/.gitbook/assets/header-app-example.png new file mode 100644 index 00000000000..1ea617940f0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/header-app-example.png differ diff --git a/17/umbraco-cms/.gitbook/assets/header-apps-custom.png b/17/umbraco-cms/.gitbook/assets/header-apps-custom.png new file mode 100644 index 00000000000..85303a20996 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/header-apps-custom.png differ diff --git a/17/umbraco-cms/.gitbook/assets/header-apps.svg b/17/umbraco-cms/.gitbook/assets/header-apps.svg new file mode 100644 index 00000000000..c9054b02e1b --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/header-apps.svg @@ -0,0 +1,14 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/healthchecks-image (1).png b/17/umbraco-cms/.gitbook/assets/healthchecks-image (1).png new file mode 100644 index 00000000000..954ba2acfb7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/healthchecks-image (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/healthchecks-image.png b/17/umbraco-cms/.gitbook/assets/healthchecks-image.png new file mode 100644 index 00000000000..954ba2acfb7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/healthchecks-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/help-menu.svg b/17/umbraco-cms/.gitbook/assets/help-menu.svg new file mode 100644 index 00000000000..d5fc6683779 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/help-menu.svg @@ -0,0 +1,24 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/html5up-story.zip b/17/umbraco-cms/.gitbook/assets/html5up-story.zip new file mode 100644 index 00000000000..7effddfb275 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/html5up-story.zip differ diff --git a/17/umbraco-cms/.gitbook/assets/image (1) (1).png b/17/umbraco-cms/.gitbook/assets/image (1) (1).png new file mode 100644 index 00000000000..f7933c19d15 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (1) (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (1).png b/17/umbraco-cms/.gitbook/assets/image (1).png new file mode 100644 index 00000000000..b65b978bf84 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (10).png b/17/umbraco-cms/.gitbook/assets/image (10).png new file mode 100644 index 00000000000..481423e8db6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (10).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (11).png b/17/umbraco-cms/.gitbook/assets/image (11).png new file mode 100644 index 00000000000..eb4330ec76a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (11).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (12).png b/17/umbraco-cms/.gitbook/assets/image (12).png new file mode 100644 index 00000000000..b8e8bf6135c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (12).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (13).png b/17/umbraco-cms/.gitbook/assets/image (13).png new file mode 100644 index 00000000000..7fec9b4d8d0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (13).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (14).png b/17/umbraco-cms/.gitbook/assets/image (14).png new file mode 100644 index 00000000000..41aa7327446 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (14).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (15).png b/17/umbraco-cms/.gitbook/assets/image (15).png new file mode 100644 index 00000000000..4c846b75695 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (15).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (16).png b/17/umbraco-cms/.gitbook/assets/image (16).png new file mode 100644 index 00000000000..78e18ac9371 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (16).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (17).png b/17/umbraco-cms/.gitbook/assets/image (17).png new file mode 100644 index 00000000000..57a6ac8ccd1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (17).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (18).png b/17/umbraco-cms/.gitbook/assets/image (18).png new file mode 100644 index 00000000000..eaec414510d Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (18).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (19).png b/17/umbraco-cms/.gitbook/assets/image (19).png new file mode 100644 index 00000000000..0c35835d207 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (19).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (2).png b/17/umbraco-cms/.gitbook/assets/image (2).png new file mode 100644 index 00000000000..1b3afc7f2cd Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (20).png b/17/umbraco-cms/.gitbook/assets/image (20).png new file mode 100644 index 00000000000..7d9e34527fc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (20).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (21).png b/17/umbraco-cms/.gitbook/assets/image (21).png new file mode 100644 index 00000000000..7d9e34527fc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (21).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (22).png b/17/umbraco-cms/.gitbook/assets/image (22).png new file mode 100644 index 00000000000..12d9deb094f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (22).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (23).png b/17/umbraco-cms/.gitbook/assets/image (23).png new file mode 100644 index 00000000000..9e9a5151407 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (23).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (24).png b/17/umbraco-cms/.gitbook/assets/image (24).png new file mode 100644 index 00000000000..3a8efa8e1ab Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (24).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (25).png b/17/umbraco-cms/.gitbook/assets/image (25).png new file mode 100644 index 00000000000..f7e83984290 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (25).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (26).png b/17/umbraco-cms/.gitbook/assets/image (26).png new file mode 100644 index 00000000000..8861f880c08 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (26).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (27).png b/17/umbraco-cms/.gitbook/assets/image (27).png new file mode 100644 index 00000000000..8861f880c08 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (27).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (28).png b/17/umbraco-cms/.gitbook/assets/image (28).png new file mode 100644 index 00000000000..da97b93df85 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (28).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (29).png b/17/umbraco-cms/.gitbook/assets/image (29).png new file mode 100644 index 00000000000..ede33c60a3f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (29).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (3).png b/17/umbraco-cms/.gitbook/assets/image (3).png new file mode 100644 index 00000000000..68d64b6ae00 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (3).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (30).png b/17/umbraco-cms/.gitbook/assets/image (30).png new file mode 100644 index 00000000000..ea822a4d4d4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (30).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (31).png b/17/umbraco-cms/.gitbook/assets/image (31).png new file mode 100644 index 00000000000..03716719629 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (31).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (32).png b/17/umbraco-cms/.gitbook/assets/image (32).png new file mode 100644 index 00000000000..03716719629 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (32).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (33).png b/17/umbraco-cms/.gitbook/assets/image (33).png new file mode 100644 index 00000000000..b9df7fb6648 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (33).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (4).png b/17/umbraco-cms/.gitbook/assets/image (4).png new file mode 100644 index 00000000000..67a9e94e1a6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (4).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (5).png b/17/umbraco-cms/.gitbook/assets/image (5).png new file mode 100644 index 00000000000..aa1a9a634cc Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (5).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (6).png b/17/umbraco-cms/.gitbook/assets/image (6).png new file mode 100644 index 00000000000..51f0f235ed6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (6).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (7).png b/17/umbraco-cms/.gitbook/assets/image (7).png new file mode 100644 index 00000000000..0ac6cdf8bc9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (7).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (8).png b/17/umbraco-cms/.gitbook/assets/image (8).png new file mode 100644 index 00000000000..eb4330ec76a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (8).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image (9).png b/17/umbraco-cms/.gitbook/assets/image (9).png new file mode 100644 index 00000000000..802e64acf80 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image (9).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image(001).png b/17/umbraco-cms/.gitbook/assets/image(001).png new file mode 100644 index 00000000000..013578fcea0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image(001).png differ diff --git a/17/umbraco-cms/.gitbook/assets/image.png b/17/umbraco-cms/.gitbook/assets/image.png new file mode 100644 index 00000000000..0b1c999d566 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/installed-package.png b/17/umbraco-cms/.gitbook/assets/installed-package.png new file mode 100644 index 00000000000..715cf1f9bcb Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/installed-package.png differ diff --git a/17/umbraco-cms/.gitbook/assets/launchJson.jpg b/17/umbraco-cms/.gitbook/assets/launchJson.jpg new file mode 100644 index 00000000000..a9a8171036e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/launchJson.jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/media-references-v9.png b/17/umbraco-cms/.gitbook/assets/media-references-v9.png new file mode 100644 index 00000000000..8cd405efa6b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/media-references-v9.png differ diff --git a/17/umbraco-cms/.gitbook/assets/member-image.png b/17/umbraco-cms/.gitbook/assets/member-image.png new file mode 100644 index 00000000000..7f90741a30b Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/member-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/menu-item.png b/17/umbraco-cms/.gitbook/assets/menu-item.png new file mode 100644 index 00000000000..f1f63f6aa15 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/menu-item.png differ diff --git a/17/umbraco-cms/.gitbook/assets/menu.png b/17/umbraco-cms/.gitbook/assets/menu.png new file mode 100644 index 00000000000..da3d9b2d237 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/menu.png differ diff --git a/17/umbraco-cms/.gitbook/assets/multilingual-site.png b/17/umbraco-cms/.gitbook/assets/multilingual-site.png new file mode 100644 index 00000000000..6a0121bf766 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/multilingual-site.png differ diff --git a/17/umbraco-cms/.gitbook/assets/multisite-image.png b/17/umbraco-cms/.gitbook/assets/multisite-image.png new file mode 100644 index 00000000000..78e415c519f Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/multisite-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/nothing-to-trim (1) (1).png b/17/umbraco-cms/.gitbook/assets/nothing-to-trim (1) (1).png new file mode 100644 index 00000000000..728e7e9d1a0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/nothing-to-trim (1) (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/nothing-to-trim (1).png b/17/umbraco-cms/.gitbook/assets/nothing-to-trim (1).png new file mode 100644 index 00000000000..728e7e9d1a0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/nothing-to-trim (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/nothing-to-trim.png b/17/umbraco-cms/.gitbook/assets/nothing-to-trim.png new file mode 100644 index 00000000000..728e7e9d1a0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/nothing-to-trim.png differ diff --git a/17/umbraco-cms/.gitbook/assets/notifications-image.png b/17/umbraco-cms/.gitbook/assets/notifications-image.png new file mode 100644 index 00000000000..136257d2190 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/notifications-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/package-properties.png b/17/umbraco-cms/.gitbook/assets/package-properties.png new file mode 100644 index 00000000000..b7fb1b0d7f5 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/package-properties.png differ diff --git a/17/umbraco-cms/.gitbook/assets/packages-image (1).png b/17/umbraco-cms/.gitbook/assets/packages-image (1).png new file mode 100644 index 00000000000..796fe6fee73 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/packages-image (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/packages-image.png b/17/umbraco-cms/.gitbook/assets/packages-image.png new file mode 100644 index 00000000000..796fe6fee73 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/packages-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/pick-origin-root-node.png b/17/umbraco-cms/.gitbook/assets/pick-origin-root-node.png new file mode 100644 index 00000000000..611bc69c1ad Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/pick-origin-root-node.png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-editor-config (1).png b/17/umbraco-cms/.gitbook/assets/property-editor-config (1).png new file mode 100644 index 00000000000..50af5d9de0c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-editor-config (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-editor-config-on (1).png b/17/umbraco-cms/.gitbook/assets/property-editor-config-on (1).png new file mode 100644 index 00000000000..ee2326d84ba Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-editor-config-on (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-editor-config-on.png b/17/umbraco-cms/.gitbook/assets/property-editor-config-on.png new file mode 100644 index 00000000000..ee2326d84ba Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-editor-config-on.png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-editor-config.png b/17/umbraco-cms/.gitbook/assets/property-editor-config.png new file mode 100644 index 00000000000..50af5d9de0c Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-editor-config.png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-editor-first-look.png b/17/umbraco-cms/.gitbook/assets/property-editor-first-look.png new file mode 100644 index 00000000000..f726712c340 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-editor-first-look.png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-editor-first-spawn.png b/17/umbraco-cms/.gitbook/assets/property-editor-first-spawn.png new file mode 100644 index 00000000000..8ced358a695 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-editor-first-spawn.png differ diff --git a/17/umbraco-cms/.gitbook/assets/property-image.png b/17/umbraco-cms/.gitbook/assets/property-image.png new file mode 100644 index 00000000000..b36657bc7db Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/property-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/public-access-icon.png b/17/umbraco-cms/.gitbook/assets/public-access-icon.png new file mode 100644 index 00000000000..de45936b8ca Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/public-access-icon.png differ diff --git a/17/umbraco-cms/.gitbook/assets/requestcollection.png b/17/umbraco-cms/.gitbook/assets/requestcollection.png new file mode 100644 index 00000000000..8edad9f9d22 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/requestcollection.png differ diff --git a/17/umbraco-cms/.gitbook/assets/reversed-heart-hero.png b/17/umbraco-cms/.gitbook/assets/reversed-heart-hero.png new file mode 100644 index 00000000000..76011a1be13 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/reversed-heart-hero.png differ diff --git a/17/umbraco-cms/.gitbook/assets/rocket-hero.png b/17/umbraco-cms/.gitbook/assets/rocket-hero.png new file mode 100644 index 00000000000..8ec6e8bfcb8 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/rocket-hero.png differ diff --git a/17/umbraco-cms/.gitbook/assets/routing-image.png b/17/umbraco-cms/.gitbook/assets/routing-image.png new file mode 100644 index 00000000000..19eda19e188 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/routing-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/searching-image.png b/17/umbraco-cms/.gitbook/assets/searching-image.png new file mode 100644 index 00000000000..e5651e643a1 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/searching-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/section-empty.png b/17/umbraco-cms/.gitbook/assets/section-empty.png new file mode 100644 index 00000000000..62299525623 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/section-empty.png differ diff --git a/17/umbraco-cms/.gitbook/assets/section-menu-sidebar-app.svg b/17/umbraco-cms/.gitbook/assets/section-menu-sidebar-app.svg new file mode 100644 index 00000000000..393ab5ec2d8 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/section-menu-sidebar-app.svg @@ -0,0 +1,19 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/section-sidebar-apps.svg b/17/umbraco-cms/.gitbook/assets/section-sidebar-apps.svg new file mode 100644 index 00000000000..e781bc99002 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/section-sidebar-apps.svg @@ -0,0 +1,28 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/section-sidebar-composed-apps.svg b/17/umbraco-cms/.gitbook/assets/section-sidebar-composed-apps.svg new file mode 100644 index 00000000000..4081881518c --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/section-sidebar-composed-apps.svg @@ -0,0 +1,40 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/section-sidebar.svg b/17/umbraco-cms/.gitbook/assets/section-sidebar.svg new file mode 100644 index 00000000000..f88666f33e9 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/section-sidebar.svg @@ -0,0 +1,20 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/section-views.svg b/17/umbraco-cms/.gitbook/assets/section-views.svg new file mode 100644 index 00000000000..45c88317b91 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/section-views.svg @@ -0,0 +1,37 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/section.svg b/17/umbraco-cms/.gitbook/assets/section.svg new file mode 100644 index 00000000000..a525f169bf7 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/section.svg @@ -0,0 +1,15 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/sections-assigning.png b/17/umbraco-cms/.gitbook/assets/sections-assigning.png new file mode 100644 index 00000000000..bad7898e2ac Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/sections-assigning.png differ diff --git a/17/umbraco-cms/.gitbook/assets/security-imag.png b/17/umbraco-cms/.gitbook/assets/security-imag.png new file mode 100644 index 00000000000..a47343805a9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/security-imag.png differ diff --git a/17/umbraco-cms/.gitbook/assets/selecting-an-icon.png b/17/umbraco-cms/.gitbook/assets/selecting-an-icon.png new file mode 100644 index 00000000000..37112c1d4d4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/selecting-an-icon.png differ diff --git a/17/umbraco-cms/.gitbook/assets/services-image.png b/17/umbraco-cms/.gitbook/assets/services-image.png new file mode 100644 index 00000000000..7a6268434f9 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/services-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/setup-image.png b/17/umbraco-cms/.gitbook/assets/setup-image.png new file mode 100644 index 00000000000..612f4b29011 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/setup-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/setup.png b/17/umbraco-cms/.gitbook/assets/setup.png new file mode 100644 index 00000000000..8b85307ba8e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/setup.png differ diff --git a/17/umbraco-cms/.gitbook/assets/spaces_G1Byxw7XfiZAj8zDMCTD_uploads_PtBQkEyVcGmoVx3ysAOJ_welcome (1).webp b/17/umbraco-cms/.gitbook/assets/spaces_G1Byxw7XfiZAj8zDMCTD_uploads_PtBQkEyVcGmoVx3ysAOJ_welcome (1).webp new file mode 100644 index 00000000000..8e14d6fe0e6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/spaces_G1Byxw7XfiZAj8zDMCTD_uploads_PtBQkEyVcGmoVx3ysAOJ_welcome (1).webp differ diff --git a/17/umbraco-cms/.gitbook/assets/spaces_G1Byxw7XfiZAj8zDMCTD_uploads_PtBQkEyVcGmoVx3ysAOJ_welcome.webp b/17/umbraco-cms/.gitbook/assets/spaces_G1Byxw7XfiZAj8zDMCTD_uploads_PtBQkEyVcGmoVx3ysAOJ_welcome.webp new file mode 100644 index 00000000000..8e14d6fe0e6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/spaces_G1Byxw7XfiZAj8zDMCTD_uploads_PtBQkEyVcGmoVx3ysAOJ_welcome.webp differ diff --git a/17/umbraco-cms/.gitbook/assets/spaces_OdQETpqkO0Kcv8KMquKL_uploads_git-blob-c7d7e59228a3b5738a1464489ef7601b7f8d350d_suggestion-property-editor (1).webp b/17/umbraco-cms/.gitbook/assets/spaces_OdQETpqkO0Kcv8KMquKL_uploads_git-blob-c7d7e59228a3b5738a1464489ef7601b7f8d350d_suggestion-property-editor (1).webp new file mode 100644 index 00000000000..a5af5f28cfa Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/spaces_OdQETpqkO0Kcv8KMquKL_uploads_git-blob-c7d7e59228a3b5738a1464489ef7601b7f8d350d_suggestion-property-editor (1).webp differ diff --git a/17/umbraco-cms/.gitbook/assets/spaces_OdQETpqkO0Kcv8KMquKL_uploads_git-blob-c7d7e59228a3b5738a1464489ef7601b7f8d350d_suggestion-property-editor.webp b/17/umbraco-cms/.gitbook/assets/spaces_OdQETpqkO0Kcv8KMquKL_uploads_git-blob-c7d7e59228a3b5738a1464489ef7601b7f8d350d_suggestion-property-editor.webp new file mode 100644 index 00000000000..a5af5f28cfa Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/spaces_OdQETpqkO0Kcv8KMquKL_uploads_git-blob-c7d7e59228a3b5738a1464489ef7601b7f8d350d_suggestion-property-editor.webp differ diff --git a/17/umbraco-cms/.gitbook/assets/specify-root-node.png b/17/umbraco-cms/.gitbook/assets/specify-root-node.png new file mode 100644 index 00000000000..6fa69a0a132 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/specify-root-node.png differ diff --git a/17/umbraco-cms/.gitbook/assets/starter-kit-image.png b/17/umbraco-cms/.gitbook/assets/starter-kit-image.png new file mode 100644 index 00000000000..150bd541804 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/starter-kit-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/static-templates.zip b/17/umbraco-cms/.gitbook/assets/static-templates.zip new file mode 100644 index 00000000000..5e0ee84185e Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/static-templates.zip differ diff --git a/17/umbraco-cms/.gitbook/assets/status.png b/17/umbraco-cms/.gitbook/assets/status.png new file mode 100644 index 00000000000..2109276c6b0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/status.png differ diff --git a/17/umbraco-cms/.gitbook/assets/suggestions-datatype.png b/17/umbraco-cms/.gitbook/assets/suggestions-datatype.png new file mode 100644 index 00000000000..89a27e7c12a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/suggestions-datatype.png differ diff --git a/17/umbraco-cms/.gitbook/assets/toolkit-image-4-3.png b/17/umbraco-cms/.gitbook/assets/toolkit-image-4-3.png new file mode 100644 index 00000000000..f1435b18627 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/toolkit-image-4-3.png differ diff --git a/17/umbraco-cms/.gitbook/assets/trees.image.png b/17/umbraco-cms/.gitbook/assets/trees.image.png new file mode 100644 index 00000000000..4579d6b0849 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/trees.image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/trim-confirm (1).png b/17/umbraco-cms/.gitbook/assets/trim-confirm (1).png new file mode 100644 index 00000000000..7c8a638ada0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/trim-confirm (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/trim-confirm.png b/17/umbraco-cms/.gitbook/assets/trim-confirm.png new file mode 100644 index 00000000000..7c8a638ada0 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/trim-confirm.png differ diff --git a/17/umbraco-cms/.gitbook/assets/uiLibraryCard (1).png b/17/umbraco-cms/.gitbook/assets/uiLibraryCard (1).png new file mode 100644 index 00000000000..21b2b6e4088 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/uiLibraryCard (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/uiLibraryCard.png b/17/umbraco-cms/.gitbook/assets/uiLibraryCard.png new file mode 100644 index 00000000000..21b2b6e4088 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/uiLibraryCard.png differ diff --git a/17/umbraco-cms/.gitbook/assets/uui-table-and-tag.png b/17/umbraco-cms/.gitbook/assets/uui-table-and-tag.png new file mode 100644 index 00000000000..950955fd251 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/uui-table-and-tag.png differ diff --git a/17/umbraco-cms/.gitbook/assets/uuiibox.png b/17/umbraco-cms/.gitbook/assets/uuiibox.png new file mode 100644 index 00000000000..f7c476f18ed Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/uuiibox.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-da (1).png b/17/umbraco-cms/.gitbook/assets/welcome-da (1).png new file mode 100644 index 00000000000..58bd8bda153 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-da (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-da.png b/17/umbraco-cms/.gitbook/assets/welcome-da.png new file mode 100644 index 00000000000..58bd8bda153 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-da.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-eng (1).png b/17/umbraco-cms/.gitbook/assets/welcome-eng (1).png new file mode 100644 index 00000000000..d1b3548aea5 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-eng (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-eng.png b/17/umbraco-cms/.gitbook/assets/welcome-eng.png new file mode 100644 index 00000000000..d1b3548aea5 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-eng.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-hq.png b/17/umbraco-cms/.gitbook/assets/welcome-hq.png new file mode 100644 index 00000000000..728eb2f509a Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-hq.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-umb-user.png b/17/umbraco-cms/.gitbook/assets/welcome-umb-user.png new file mode 100644 index 00000000000..e57be41a2f2 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-umb-user.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcome-user-uuibox.png b/17/umbraco-cms/.gitbook/assets/welcome-user-uuibox.png new file mode 100644 index 00000000000..67197643bf4 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcome-user-uuibox.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomehpver.png b/17/umbraco-cms/.gitbook/assets/welcomehpver.png new file mode 100644 index 00000000000..b6508b176f6 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomehpver.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomemessage-v8 (1).png b/17/umbraco-cms/.gitbook/assets/welcomemessage-v8 (1).png new file mode 100644 index 00000000000..d16deaf2b43 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomemessage-v8 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomemessage-v8 (2).png b/17/umbraco-cms/.gitbook/assets/welcomemessage-v8 (2).png new file mode 100644 index 00000000000..d16deaf2b43 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomemessage-v8 (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomemessage-v8.png b/17/umbraco-cms/.gitbook/assets/welcomemessage-v8.png new file mode 100644 index 00000000000..d16deaf2b43 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomemessage-v8.png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10 (1).png b/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10 (1).png new file mode 100644 index 00000000000..1664c32e550 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10 (1).png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10 (2).png b/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10 (2).png new file mode 100644 index 00000000000..1664c32e550 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10 (2).png differ diff --git a/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10.png b/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10.png new file mode 100644 index 00000000000..1664c32e550 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/welcomemessagewithstyles-v10.png differ diff --git a/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (1).jpg b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (1).jpg new file mode 100644 index 00000000000..87e55037545 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (2).jpg b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (2).jpg new file mode 100644 index 00000000000..87e55037545 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (2).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (3).jpg b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (3).jpg new file mode 100644 index 00000000000..87e55037545 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1) (3).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1).jpg b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1).jpg new file mode 100644 index 00000000000..87e55037545 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/whatisadashboard-v10 (1).jpg differ diff --git a/17/umbraco-cms/.gitbook/assets/workspace-actions.svg b/17/umbraco-cms/.gitbook/assets/workspace-actions.svg new file mode 100644 index 00000000000..7ddeb6d9f35 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/workspace-actions.svg @@ -0,0 +1,40 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/workspace-view-example.png b/17/umbraco-cms/.gitbook/assets/workspace-view-example.png new file mode 100644 index 00000000000..4190a1bc7d7 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/workspace-view-example.png differ diff --git a/17/umbraco-cms/.gitbook/assets/workspace-views.svg b/17/umbraco-cms/.gitbook/assets/workspace-views.svg new file mode 100644 index 00000000000..0c04fed189f --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/workspace-views.svg @@ -0,0 +1,52 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/workspace.svg b/17/umbraco-cms/.gitbook/assets/workspace.svg new file mode 100644 index 00000000000..a897bd62814 --- /dev/null +++ b/17/umbraco-cms/.gitbook/assets/workspace.svg @@ -0,0 +1,28 @@ + diff --git a/17/umbraco-cms/.gitbook/assets/zapier-image.png b/17/umbraco-cms/.gitbook/assets/zapier-image.png new file mode 100644 index 00000000000..0589efbfe34 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/zapier-image.png differ diff --git a/17/umbraco-cms/.gitbook/assets/zip-package-v9.png b/17/umbraco-cms/.gitbook/assets/zip-package-v9.png new file mode 100644 index 00000000000..169bbfb1591 Binary files /dev/null and b/17/umbraco-cms/.gitbook/assets/zip-package-v9.png differ diff --git a/17/umbraco-cms/.gitbook/includes/obsolete-warning-ipublishedsnapshotaccessor.md b/17/umbraco-cms/.gitbook/includes/obsolete-warning-ipublishedsnapshotaccessor.md new file mode 100644 index 00000000000..8c5aab07201 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/obsolete-warning-ipublishedsnapshotaccessor.md @@ -0,0 +1,7 @@ +--- +title: 'Obsolete Warning: IPublishedSnapshotAccessor' +--- + +{% hint style="warning" %} +The following example uses `IPublishedSnapshotAccessor`, which is obsolete in Umbraco 15 and will be removed in a future version. For more information, see the [Version specific upgrades](../../fundamentals/setup/upgrading/version-specific/#umbraco-15) article. +{% endhint %} diff --git a/17/umbraco-cms/.gitbook/includes/obsolete-warning-publishedsnapshot.md b/17/umbraco-cms/.gitbook/includes/obsolete-warning-publishedsnapshot.md new file mode 100644 index 00000000000..2597cee8417 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/obsolete-warning-publishedsnapshot.md @@ -0,0 +1,7 @@ +--- +title: 'Obsolete Warning: PublishedSnapshot' +--- + +{% hint style="warning" %} +The following example uses `PublishedSnapshot`, which is obsolete in Umbraco 15 and will be removed in a future version. For more information, see the [Version specific upgrades](../../fundamentals/setup/upgrading/version-specific/#umbraco-15) article. +{% endhint %} diff --git a/17/umbraco-cms/.gitbook/includes/obsolete-warning-snapshot-publishedcache.md b/17/umbraco-cms/.gitbook/includes/obsolete-warning-snapshot-publishedcache.md new file mode 100644 index 00000000000..92b5a44abca --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/obsolete-warning-snapshot-publishedcache.md @@ -0,0 +1,7 @@ +--- +title: 'Obsolete Warning: Snapshot and Published Cache' +--- + +{% hint style="warning" %} +The following example uses `Umbraco.Cms.Core.PublishedCache` and `IPublishedSnapshotAccessor` which are obsolete in Umbraco 15 and will be removed in a future version. For more information, see the [Version specific upgrades](../../fundamentals/setup/upgrading/version-specific/#umbraco-15) article. +{% endhint %} diff --git a/17/umbraco-cms/.gitbook/includes/obsolete-warning-snapshot.md b/17/umbraco-cms/.gitbook/includes/obsolete-warning-snapshot.md new file mode 100644 index 00000000000..0262b908421 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/obsolete-warning-snapshot.md @@ -0,0 +1,7 @@ +--- +title: 'Obsolete Warning: Snapshot' +--- + +{% hint style="warning" %} +The following example uses `Umbraco.Cms.Core.PublishedCache`, `IPublishedSnapshotAccessor`, and `PropertyCacheLevel.Snapshot`, which are obsolete in Umbraco 15 and will be removed in a future version. For more information, see the [Version specific upgrades](../../fundamentals/setup/upgrading/version-specific/#umbraco-15) article. +{% endhint %} diff --git a/17/umbraco-cms/.gitbook/includes/umbraco-extending-the-backoffice-training-course.md b/17/umbraco-cms/.gitbook/includes/umbraco-extending-the-backoffice-training-course.md new file mode 100644 index 00000000000..270412ffdb8 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/umbraco-extending-the-backoffice-training-course.md @@ -0,0 +1,7 @@ +--- +title: Umbraco Extending the Backoffice Training Course +--- + +Umbraco HQ offers a training course covering extending and customizing the Umbraco Backoffice to enhance the editing experience. The course targets frontend and backend developers familiar with Umbraco who want to extend the UI for editors. + +[Explore Extending the Backoffice Training Course](https://umbraco.com/training/course-details/extending-the-backoffice-details/) to learn more about the topics covered and how it can enhance your Umbraco development skills. diff --git a/17/umbraco-cms/.gitbook/includes/umbraco-fundamentals-training-course.md b/17/umbraco-cms/.gitbook/includes/umbraco-fundamentals-training-course.md new file mode 100644 index 00000000000..f5bab081116 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/umbraco-fundamentals-training-course.md @@ -0,0 +1,7 @@ +--- +title: Umbraco Fundamentals Training Course +--- + +Umbraco HQ offers a training course covering the basic concepts and features needed for building an Umbraco CMS website. The course targets frontend and backend developers, designers, and technical users who want to build a website from scratch in Umbraco, + +[Explore the Fundamentals Training Course](https://umbraco.com/training/course-details/fundamentals-details/) to learn more about the topics covered and how they can enhance your Umbraco development skills. diff --git a/17/umbraco-cms/.gitbook/includes/umbraco-load-balancing-training-course.md b/17/umbraco-cms/.gitbook/includes/umbraco-load-balancing-training-course.md new file mode 100644 index 00000000000..3b68d80560d --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/umbraco-load-balancing-training-course.md @@ -0,0 +1,7 @@ +--- +title: Umbraco Load Balancing Training Course +--- + +Umbraco HQ offers a training course covering the basics of working with Umbraco CMS in a load-balanced setup. The course targets backend developers and operations engineers. + +[Explore the Load Balancing Training Course](https://umbraco.com/training/course-details/load-balancing-and-azure/) to learn more about the topics covered and get more details about the course. diff --git a/17/umbraco-cms/.gitbook/includes/umbraco-mvc-training-course.md b/17/umbraco-cms/.gitbook/includes/umbraco-mvc-training-course.md new file mode 100644 index 00000000000..4c49e206302 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/umbraco-mvc-training-course.md @@ -0,0 +1,7 @@ +--- +title: Umbraco MVC Training Course +--- + +Umbraco HQ offers a training course covering everything you need to know about working with MVC in an Umbraco context. The course targets anyone who's interested in learning how to utilize Umbraco´s built-in features and basic functionality with standard MVC. + +[Explore the MVC course](https://umbraco.com/training/course-details/mvc-and-umbraco/) to learn more about the topics covered and how it can enhance your Umbraco development skills. diff --git a/17/umbraco-cms/.gitbook/includes/umbraco-searching-and-indexing-training-course.md b/17/umbraco-cms/.gitbook/includes/umbraco-searching-and-indexing-training-course.md new file mode 100644 index 00000000000..238eb1f60b3 --- /dev/null +++ b/17/umbraco-cms/.gitbook/includes/umbraco-searching-and-indexing-training-course.md @@ -0,0 +1,7 @@ +--- +title: Umbraco Searching and Indexing Training Course +--- + +Umbraco HQ offers a training course covering the inner workings of Examine and Lucene, query debugging, and knowledge of the search tool. The course targets backend ASP.NET MVC developers who need to build real-world search applications with Umbraco. + +[Explore the Searching and Indexing with Examine Training Course](https://umbraco.com/training/course-details/searching-and-indexing/) to learn more about the topics covered and how it can enhance your Umbraco development skills. diff --git a/17/umbraco-cms/README.md b/17/umbraco-cms/README.md new file mode 100644 index 00000000000..f33658787d0 --- /dev/null +++ b/17/umbraco-cms/README.md @@ -0,0 +1,35 @@ +--- +description: Your main resource when building and managing an Umbraco CMS website. +cover: .gitbook/assets/Umbraco 16 - Hero.jpg +coverY: 0 +--- + +# Umbraco CMS Documentation + +Umbraco CMS is a flexible and editor-friendly Content Management System (CMS) that allows you to create beautiful and modern websites. Use the latest version of .NET, integrate with your favorite services, and help your customers launch a website tailored to their specific needs. + +Learn more about Umbraco CMS and get an overview of the top features on [Umbraco.com](https://umbraco.com/products/umbraco-cms/). + +
Fundamentals | Learn the basics of working with Umbraco CMS. How to install and setup your first site is also included in this section. | Documentations Icons_Umbraco_CMS_Fundamentals.png | get-to-know-umbraco.md |
Install Umbraco CMS | Ready to get started with Umbraco? Head over to the Setup section to learn how to install Umbraco CMS. | Documentations Icons_Umbraco_CMS_Install.png | install |
Tutorials | Find detailed step-by-step guides on everything from building a site from scratch to implementing a custom maintenance page. | Documentations Icons_Umbraco_CMS_Tutorials.png | overview.md |
My dashboard
Backoffice extension browser
Headline: ${this.content?.headline}
+ `; + } + + static styles = [ + css` + :host { + display: block; + height: 100%; + box-sizing: border-box; + background-color: darkgreen; + color: white; + border-radius: 9px; + padding: 12px; + } + `, + ]; + +} +export default ExampleBlockCustomView; + +declare global { + interface HTMLElementTagNameMap { + 'example-block-custom-view': ExampleBlockCustomView; + } +} + +``` +{% endcode %} diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/block-editors-custom-view.md b/17/umbraco-cms/customizing/extending-overview/extension-types/block-editors-custom-view.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/bundle.md b/17/umbraco-cms/customizing/extending-overview/extension-types/bundle.md new file mode 100644 index 00000000000..9e913b6e50f --- /dev/null +++ b/17/umbraco-cms/customizing/extending-overview/extension-types/bundle.md @@ -0,0 +1,66 @@ +--- +description: Gather Extension Manifests in one file +--- + +# Bundle + +The `bundle` Extension Type points to a single JavaScript file that exports or re-exports Extension Manifests written in JavaScript. + +It can be used as the entry point for a package, or as a grouping for a set of manifests. A Bundle can reference other Bundles. + +## Use Bundle as an entry point for a package + +If you want to declare your manifests in JavaScript/TypeScript, the Bundle is a great choice. + +The following example shows an `umbraco-package.json` that refers to one bundle, which can then declare manifests. + +{% code title="umbraco-package.json" %} +```json + { + "name": "My Package Name", + "version": "1.0.0", + "extensions": [ + { + "type": "bundle", + "alias": "My.Package.Bundle", + "name": "My Package Bundle", + "js": "/App_Plugins/my-package/manifests.js" + } + ] + } +``` +{% endcode %} + +{% code title="manifests.ts" %} +```typescript +export const manifests: ArrayThe Getting Started dashboard in Umbraco
Additional metadata for the dashboard
Property | Type | Description |
---|---|---|
Label | string | The label shown to the user |
pathname | string | The routable URL pathname |
The Welcome Dashboard appears in the Content section
Sidebar Context Menu
Workspace Entity Action Menu
Collection
Pickers
Default Entity Action in the Content Section
Entity User Permissions UI
Granular User Permission UI
Entity Bulk Collection
Header Apps
The current user modal is presented from a header app
Menu
Menu Item
import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+import { MY_MODAL_TOKEN } from './my-modal.token.js';
+import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
+
+@customElement('my-element')
+class MyElement extends UmbLitElement {
+
+ override render() {
+ return html`
+ <uui-button look="primary" label="Open modal" @click=${this._openModal}></uui-button>
+ `;
+ }
+
+ private async _openModal() {
+ const returnedValue = await umbOpenModal(this, MY_MODAL_TOKEN, {
+ data: {
+ headline: "My modal headline",
+ },
+ }).catch(() => undefined);
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'my-element': MyElement;
+ }
+}
+
+
+The Promise returned by `umbOpenModal` is handled for potential rejection. This occurs when the Model is closed without submitting. Use this behavior to carry out a certain action if the modal is cancelled. In this case, `undefined` is returned when the Modal is cancelled (rejected).
+
+See the [Confirm Modal article](confirm-dialog.md) for an example.
+
+### Directly open via the Modal Manager Context
+
+For full control, open a modal via the **Modal Manager Context.** This is what the Open Modal method uses behind the scenes. Using the context directly gives you a bit more control and understanding of the system.
+
+First, consume the `UMB_MODAL_MANAGER_CONTEXT` , then use the modal manager context to open a modal. The following example shows how to consume the Modal Manager Context:
+
+```ts
+import { LitElement } from "@umbraco-cms/backoffice/external/lit";
+import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';
+import {
+ UMB_MODAL_MANAGER_CONTEXT,
+} from "@umbraco-cms/backoffice/modal";
+
+export class MyElement extends UmbElementMixin(LitElement) {
+ #modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE;
+
+ constructor() {
+ super();
+ this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => {
+ this.#modalManagerContext = instance;
+ // modalManagerContext is now ready to be used.
+ });
+ }
+}
+```
+
+In this case, the modal token from the previous example is used. It accepts a key as input data and returns the new key if the modal is submitted.
+
+```typescript
+const modalContext = this.#modalManagerContext?.open(this, MY_SOMETHING_PICKER_MODAL, {
+ value: {
+ key: this.selectedKey,
+ },
+});
+
+modalContext
+ ?.onSubmit()
+ .then((value) => {
+ this.selectedKey = value.key;
+ })
+ .catch(() => undefined);
+```
+
+[See the implementing a Confirm Dialog for an example.](confirm-dialog.md)
+
+### Modal Route Registration
+
+You can register modals with a route, making it possible to link directly to that specific modal. This also means the user can navigate back and forth in the browser history. This makes it an ideal solution for modals containing an editorial experience.
+
+For a more concrete example, check out the [Modal Route Registration article](route-registration.md).
+
+## Make a custom Modal
+
+To create your modal, read the [Implementing a Custom Modal article](custom-modals.md).
diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/modals/confirm-dialog.md b/17/umbraco-cms/customizing/extending-overview/extension-types/modals/confirm-dialog.md
new file mode 100644
index 00000000000..0ed4ec5b203
--- /dev/null
+++ b/17/umbraco-cms/customizing/extending-overview/extension-types/modals/confirm-dialog.md
@@ -0,0 +1,64 @@
+---
+description: Present a dialog to ask the user for confirmation.
+---
+
+# Confirm Dialog
+
+Confirmation dialogs are used to ask the user for confirmation to complete some action and are presented as a center-aligned modal in the backoffice.
+
+Extension authors do not need to register the dialog in their extension's manifest, instead these dialogs are opened by importing and calling the `umbOpenModal` function.
+
+Extension authors can customize the dialog with configuration options such as headline, body content, colors, and button labels.
+
+* `headline` - The headline of the modal.
+* `content` - The content of the modal, which can be a TemplateResult or a string.
+* `color` - (Optional) The color of the modal, can be `positive` or `danger`. Defaults to `positive`.
+* `confirmLabel` - (Optional) The label of the confirmation button.
+* `cancelLabel` - (Optional) The label of the cancel button.
+
+To see all properties of the `UMB_CONFIRM_MODAL` token, see the [API reference](https://apidocs.umbraco.com/v16/ui-api/interfaces/packages_core_modal.UmbConfirmModalData.html).
+
+The `onSubmit` method returns a promise that resolves when the user confirms the dialog, and rejects when the user cancels the dialog.
+
+## Basic Usage
+
+{% code title="my-element.ts" %}
+```typescript
+import {
+ html,
+ LitElement,
+ customElement,
+} from "@umbraco-cms/backoffice/external/lit";
+import { UmbElementMixin } from "@umbraco-cms/backoffice/element-api";
+import { umbOpenModal, UMB_CONFIRM_MODAL } from "@umbraco-cms/backoffice/modal";
+
+@customElement("my-confirmation-modal")
+export class MyConfirmationModal extends UmbElementMixin(LitElement) {
+ #onRequestDisable() {
+ umbOpenModal(this, UMB_CONFIRM_MODAL, {
+ data: {
+ headline: this.localize.term("actions_disable"),
+ content: this.localize.term("defaultdialogs_confirmdisable"),
+ color: "danger",
+ confirmLabel: this.localize.term("actions_disable"),
+ },
+ })
+ .then(() => {
+ console.log("User has approved");
+ })
+ .catch(() => {
+ console.log("User has rejected");
+ });
+ }
+
+ render() {
+ return html`import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+import { MY_MODAL_TOKEN } from './my-modal.token.js';
+import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
+
+@customElement('my-element')
+class MyElement extends UmbLitElement {
+
+ override render() {
+ return html`
+ <uui-button look="primary" label="Open modal" @click=${this._openModal}></uui-button>
+ `;
+ }
+
+ private async _openModal() {
+ const returnedValue = await umbOpenModal(this, MY_MODAL_TOKEN, {
+ data: {
+ headline: "My modal headline",
+ },
+ }).catch(() => undefined);
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'my-element': MyElement;
+ }
+}
+
+
+The Promise of `umbOpenModal` is caught if it gets rejected. This is because if the Model gets closed without submission, the Promise is rejected. YThis can be used to carry out a certain action if the modal is cancelled. In this case, `undefined` is returned when the Modal is cancelled (rejected).
diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/modals/route-registration.md b/17/umbraco-cms/customizing/extending-overview/extension-types/modals/route-registration.md
new file mode 100644
index 00000000000..f8a0f21f0b5
--- /dev/null
+++ b/17/umbraco-cms/customizing/extending-overview/extension-types/modals/route-registration.md
@@ -0,0 +1,127 @@
+---
+description: >-
+ You can register modals with a route, making it possible to link directly to
+ that specific modal. This also means the user can navigate back and forth in
+ the browser history
+---
+
+# Modal Route Registration
+
+A modal can be registered via the `UmbModalRouteRegistrationController`. The registration accepts a modal token (or extension alias).
+
+```ts
+this.myModalRegistration = new UmbModalRouteRegistrationController(
+ this,
+ UMB_LINK_PICKER_MODAL
+)
+ .onSubmit((submitData) => {
+ console.log("Modal submitted with data".submitData);
+ })
+ .observeRouteBuilder((routeBuilder) => {
+ this._modalRouteBuilder = routeBuilder;
+ });
+```
+
+The registration holds an instance of its `UmbModalHandler` when the modal is active. The modal registration accepts 4 different callbacks:
+
+* `onSetup` - called when the modal is opened
+* `onSubmit` - called when the modal is submitted
+* `onReject` - called when the modal is rejected
+* `observeRouteBuilder` - called when the modal route changes. Use the given route builder to build a route to open the modal
+
+**Additional features of the route Registration:**
+
+* Adds unique parts to the path.
+* A modal registered in a dashboard can be setup in few steps
+* A modal registered in a property editor needs to become specific for the property and the variant of that property.
+* Builds some data for the setup.
+* Rejects a modal by returning false in setup.
+* Uses a parameter as part of the setup to determine the data going to the modal.
+
+## Modal registration for UI as part of a Property Editor
+
+When configuring a routed modal from a Property Editor, it's important to be aware of some facts. Those facts are that the Property Editor shares the same URL path as other Property Editors. This means we need to ensure the registration is unique so it doesn't collide with other Property Editors. To do so we will make use of the Property Alias and the Variant ID.
+
+```ts
+
+
+ @property()
+ public set alias(value: string | undefined) {
+ this.myModalRegistration.setUniquePathValue('propertyAlias', value);
+ }
+
+ @property()
+ public set variantId(value: string | UmbVariantId | undefined) {
+ this.myModalRegistration.setUniquePathValue('variantId', value?.toString());
+ }
+
+ private _items = [
+ { name: 'Item 1' },
+ { name: 'Item 2' },
+ { name: 'Item 3' },
+ ]
+
+
+ constructor() {
+ super();
+
+ this.myModalRegistration = new UmbModalRouteRegistrationController(
+ this,
+ MY_MODAL_TOKEN
+ )
+ .addAdditionalPath(`:index`)
+ .addUniquePaths(['propertyAlias', 'variantId'])
+ .onSetup((params) => {
+ // Get item index:
+ const indexParam = params.index;
+ if (!indexParam) return false;
+ let index: number | null = parseInt(params.index);
+ if (Number.isNaN(index)) return false;
+
+ // Use the index to find data:
+ let data = null;
+ if (index >= 0 && index < this._items.length) {
+ data = this._items[index];
+ } else {
+ // If not then make a new pick:
+ index = null;
+ }
+
+ return {
+ index: index,
+ itemData: {
+ name: data?.name
+ },
+ };
+ })
+ .onSubmit((submitData) => {
+ if (!submitData) return;
+ this._items[submitData.index] = submitData.itemData;
+ })
+ .observeRouteBuilder((routeBuilder) => {
+ this._modalRouteBuilder = routeBuilder;
+ });
+ }
+
+ render() {
+ return html`
+ ${this._items?.map((item, index) =>
+ html`Section Sidebar
Section Sidebar Apps
Menu Sidebar App
Composed sidebar menu
Section View
Section
Enabling new Sections
Section
{
+ type: 'workspaceView',
+ name: 'Example Counter Workspace View',
+ alias: 'example.workspaceView.counter',
+ element: () => import('./example-workspace-view.js'),
+ weight: 900,
+ meta: {
+ label: 'Counter',
+ pathname: 'counter',
+ icon: 'icon-lab',
+ },
+ conditions: [
+ {
+ alias: UMB_WORKSPACE_CONDITION_ALIAS,
+ match: 'Umb.Workspace.Document',
+ },
+ ],
+}
+
diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-editor-actions.md b/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-editor-actions.md
new file mode 100644
index 00000000000..2eb896ea50a
--- /dev/null
+++ b/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-editor-actions.md
@@ -0,0 +1,55 @@
+# Workspace Actions
+
+{% hint style="warning" %}
+This page is a work in progress and may undergo further revisions, updates, or amendments. The information contained herein is subject to change without notice.
+{% endhint %}
+
+Workspace actions are a set of functionalities or operations that can be performed within a workspace. These actions involve creating documents within the workspace, organizing and categorizing documents, publishing content and so on.
+
+Workspace action relates to a workspace alias (Umb.Workspace.Document) and has Access to the workspace context.
+
+Workspace Actions
import { extensionRegistry } from '@umbraco-cms/extension-registry';
+import { MyWorkspaceAction } from './my-workspace-action';
+
+const manifest = {
+ type: 'workspaceAction',
+ alias: 'My.WorkspaceAction',
+ name: 'My Workspace Action',
+ api: MyWorkspaceAction,
+ meta: {
+ label: 'My Action',
+ },
+ conditions: [
+ {
+ alias: 'Umb.Condition.WorkspaceAlias',
+ match: 'My.Workspace',
+ },
+ ],
+};
+
+extensionRegistry.register(manifest);
+
+
+## The Workspace Action Class
+
+As part of the Extension Manifest you can attach a class that will be instantiated as part of the action. It will have access to the host element and the Workspace Context. When the action is clicked the `execute` method on the API class will be run. When the action is completed, an event on the host element will be dispatched to notify any surrounding elements.
+
+```ts
+import { UmbWorkspaceActionBase } from '@umbraco-cms/backoffice/workspace';
+
+export class MyWorkspaceAction extends UmbWorkspaceActionBase {
+ execute() {
+ this.workspaceContext.myAction(this.selection);
+ }
+}
+```
+
+**Default Element**
+
+```typescript
+interface UmbWorkspaceActionElement {}
+```
diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-footer-app.md b/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-footer-app.md
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-views.md b/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-views.md
new file mode 100644
index 00000000000..9c21aacd57c
--- /dev/null
+++ b/17/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-views.md
@@ -0,0 +1,100 @@
+---
+description: Append a view to any Workspace
+---
+
+# Workspace Views
+
+{% hint style="warning" %}
+This page is a work in progress and may undergo further revisions, updates, or amendments. The information contained herein is subject to change without notice.
+{% endhint %}
+
+{% hint style="info" %}
+Workspace Views was previously called Content Apps.
+{% endhint %}
+
+Workspace Views are customizable companion **tabs** with the ability to take place in any workspace.
+
+Workspace Views
Workspace View Example
async execute() {
+ const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT);
+ if (!notificationContext) {
+ throw new Error('Notification context not found');
+ }
+ const notification = { data: { message: `High five, you executed this method!` } };
+ notificationContext.peek('positive', notification);
+}
+
+
+## **Write your own Context Token**
+
+A Context Token is a context identifier and is generally a string matched with a type. In this way, users of the token can be sure to get the right type of context.
+
+```typescript
+import { UmbContextToken } from "@umbraco-cms/backoffice/context-api";
+
+type MyContext = {
+ foo: string;
+ bar: number;
+};
+
+const MY_CONTEXT = new UmbContextToken Data flow
> 'the initial value'
+> 'updated value'
+
+
+## State Types
+
+Umbraco provides built-in State types for common data structures:
+
+* Array State
+* Boolean State
+* Class State
+* Number State
+* Object State
+* String State
+
+Use the one fitting for your value type.
+
+## Observe
+
+### Observe a state via Umbraco Element or Umbraco Controller
+
+The Umbraco Element or Controllers come with the ability to observe an Observable.
+
+Observing all changes will result in the callback being executed.
+
+The example below creates a State and then turns the whole state into an Observable, which then can be observed.
+
+import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api';
+
+...
+
+this.#selectionState = UmbArrayState<string>(['item1', 'item2']);
+this.selection = this.#selectionState.asObservable();
+
+this.observe(
+ this.selection,
+ (selection) => {
+ // This call will be executed initially and on each change of the state
+ }
+);
+
+
+### Change the value of a state
+
+The value of a state can be changed via the `setValue` method. This replaces the current data with new data.
+
+The following example shows how to change the value of the state to hold `item2` and `item3`. As the example extends the example from above, it means that `item1` is no longer part of the value of this state.
+
+import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api';
+
+...
+
+this.#selectionState.setValue(['item2', 'item3']);
+
+
+
+**Observe part of a state**
+
+With the `asObservablePart` method, you can set up an Observable that provides a transformed outcome, based on the State.
+
+```typescript
+this.selectionLength = this.#selectionState.asObservablePart(data => data.length);
+
+this.observe(
+ this.selectionLength, (length) => {
+ // This call will be executed initially and on each change of the specific value that this observer provides.
+ // This means that this will only be executed when the length changes. Not if the value was replaced with a new value with the exact same length.
+ console.log("Length of selection is now ", length)
+ }
+);
+```
+
+In the above example, the `asObservablePart` mapping function will be executed every time there is a change to the State. If the result of the method is different than before, it will trigger an update to its observers.
+
+Let's return to the example at the start of this article, to see how an observablePart is triggered in relation to the value of the state.
+
+```
+const myState = UmbStringState('four');
+const myObservable = myState.asObservable();
+const myObservablePart = myState.asObservablePart((value) => value.length);
+
+this.observe(myObservable, (value) => {
+ console.log("value:", value);
+});
+this.observe(myObservablePart, (value) => {
+ console.log("length: ", value);
+});
+
+myState.setValue('five');
+myState.setValue('six');// notice only 3 letters
+```
+
+This example will result in the following logs:
+
+> value: 'four'
+> length: 4
+> value: 'five'
+> value: 'six'
+> length: 3
+
+
+The `length` observation only got triggered when the length actually differed.
diff --git a/17/umbraco-cms/customizing/foundation/terminology.md b/17/umbraco-cms/customizing/foundation/terminology.md
new file mode 100644
index 00000000000..fa80eaf2626
--- /dev/null
+++ b/17/umbraco-cms/customizing/foundation/terminology.md
@@ -0,0 +1,22 @@
+---
+description: A list of some of the key concepts with working the Umbraco Backoffice.
+---
+
+# Terminology
+
+Understanding certain key concepts is essential when customizing the backoffice. These terminologies can help you decode the purpose of code effectively:
+
+* **Repository:** An API that enables communication with a server.
+* **State:** A reactive container holding data, when data is changed, all its Observables will be notified. You can read more about states and observables in the [States](states.md) article.
+ * **Observable:** An observable is the hook for others to subscribe to the data of a State.
+ * **Observe:** Observe describes what we do when subscribing to an Observable.
+* **Context-API:** The name used to serve APIs (instances/classes) for a certain context in the DOM. An API that is served via the Context-API is called a Context. You can read more about this in the [Context API](context-api/) article.
+ * **Context Provider:** Enables providing a class instance as a Context API.
+ * **Context Consumer:** Enables the consumption of a Context API.
+* **Controller:** An abstract term for a thing that hooks into the lifecycle of an element. Many things in our system are Controllers.
+* **Umbraco Controller:** Enables hosting controllers. Additionally, it provides a few shortcut methods for initializing core Umbraco Controllers. You can read more about this in the [Umbraco Controllers](umbraco-controller/) article.
+ * **Controller Host:** A class that can host controllers.
+ * **Controller Host Element:** The element that can host controllers.
+* **Umbraco Element:** The `UmbLitElement` or `UmbElementMixin` enables hosting controllers. Additionally, it provides a few shortcut methods for initializing core Umbraco Controllers. You can read more about this in the [Umbraco Element](umbraco-element/) article.
+
+Read more about how to get started with extending the backoffice in the [Backoffice Setup](../extending-overview/) article.
diff --git a/17/umbraco-cms/customizing/foundation/umbraco-controller/README.md b/17/umbraco-cms/customizing/foundation/umbraco-controller/README.md
new file mode 100644
index 00000000000..9d06e2753d2
--- /dev/null
+++ b/17/umbraco-cms/customizing/foundation/umbraco-controller/README.md
@@ -0,0 +1,86 @@
+---
+description: >-
+ Contain or reuse logic across Elements. A Controller enables you to separate
+ logic while still being connected with the life cycle of an element.
+---
+
+# Umbraco Controller
+
+An Umbraco controller provides all the features of an Umbraco element within a separate class. Do this for architectural reasons or to reuse a feature across elements.
+
+## Host Element
+
+A Controller is assigned to a Host Element. This assignment may be indirect, since Controllers can host other Controllers.
+
+The host element is a web component enhanced to host controllers. All [Umbraco Elements](../umbraco-element/) are controller hosts, as are all Umbraco controllers, allowing controllers to host other controllers.
+
+To retrieve the controller’s host element, use the `getHostElement()` method.
+
+## Element Life Cycle
+
+Controllers can declare the following methods, which are triggered depending on the host element’s life cycle:
+
+* `hostConnected()` — Called when the host element connects to the DOM.
+* `hostDisconnected()` — Called when the host element disconnects from the DOM.
+* `destroy()` — Called when the controller is taken out of commission.
+
+Additionally, Umbraco Controllers implement a `getHostElement()` method, which enables any Controller to receive the Element that hosts the Controllers.
+
+## Registration
+
+A Controller should register itself with a given host. This is handled automatically when extending the `UmbControllerBase` class. The following example demonstrates a controller implementation:
+
+import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
+import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
+
+export class MyOwnControllerImplementation extends UmbControllerBase {
+
+ #secondsAlive = 0;
+
+ constructor(host: UmbControllerHost) {
+ // Parse the host to the base class, this will trigger the registration.
+ super(host);
+ }
+
+ hostConnected() {
+ // It's important to call the super method when overriding a method of the base class.
+ super.hostConnected();
+ this.#timer = setInterval(this.#onInterval, 1000)
+ }
+
+ hostDisconnected() {
+ // It's important to call the super method when overriding a method of the base class.
+ super.hostDisconnected();
+ clearInterval(this.#timer);
+ }
+
+ #onInterval = () => {
+ this.#secondsAlive++;
+ console.log(`My own controller have been connected in ${this.#secondsAlive} seconds.`);
+ }
+
+ override destroy(): void {
+ // It's important to call the super method when overriding a method of the base class.
+ super.destroy();
+ // We do not need to stop the timer in the Destroy method, because the hostDisconnected method is also called if connected and destroyed.
+ }
+}
+
+
+If you don't like to extend the `UmbControllerBase`, then you can register a class as a controller as shown in the following example. Note that manual deregistration is required in this case.
+
+```
+export class MyOwnControllerImplementation {
+
+ #host: UmbControllerHost;
+
+ constructor(host: UmbControllerHost) {
+ this.#host = host;
+ this.#host.addUmbController(this);
+ }
+
+ override destroy(): void {
+ this.#host.removeUmbController(this);
+ }
+}
+```
diff --git a/17/umbraco-cms/customizing/foundation/umbraco-element/README.md b/17/umbraco-cms/customizing/foundation/umbraco-element/README.md
new file mode 100644
index 00000000000..a685f433980
--- /dev/null
+++ b/17/umbraco-cms/customizing/foundation/umbraco-element/README.md
@@ -0,0 +1,60 @@
+---
+description: Ease the integration with Backoffice by using a Umbraco Element
+---
+
+# Umbraco Element
+
+This provides a few methods to ease the connection with Backoffice, giving you the ability to:
+
+* Consume a Context — [Learn more about Consuming Contexts](../context-api/consume-a-context.md)
+* Provide Context — [Learn more about Providing Contexts](../context-api/provide-a-context.md)
+* Observe a State — [Learn more about States](../states.md#observe-a-state-via-umbraco-element-or-umbraco-controller)
+* Use localization — [Learn more about Localization](../../../extending/language-files/)
+* Host Controllers — [Learn more about Controllers](../umbraco-controller/)
+
+## Create an Umbraco Element
+
+You can turn any Web Component into an Umbraco Element by using the Umbraco Element Mixin, as done in the following example:
+
+```ts
+import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'
+
+@customElement('my-extension-element')
+class MyExtensionElement extends UmbElementMixin(HTMLElement) {
+ ...
+}
+```
+
+This means you can use any base class, whether it’s a Web Component or a base class from your framework of choice. As long as it’s compatible with Web Components, it can be enhanced to become an Umbraco Element:
+
+import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'
+import { UUIButtonElement } from '@umbraco-cms/backoffice/external/uui'
+
+@customElement('my-extension-element')
+class MyExtensionElement extends UmbElementMixin(UUIButtonElement) {
+ ...
+}
+
+
+The Backoffice is generally built with Lit. To simplify things for those who prefer using the Lit version provided by the Backoffice, you can create your Web Components as Umbraco Elements like this:
+
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'
+
+@customElement('my-extension-element')
+export class MyExtensionElement extends UmbLitElement {
+ ...
+}
+
+
+Notice that it is identical to this:
+
+import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'
+import { LitElement } from '@umbraco-cms/backoffice/external/lit'
+
+@customElement('my-extension-element')
+class MyExtensionElement extends UmbElementMixin(LitElement) {
+ ...
+}
+
+
+Learn more about how to write Web Components with Lit in the [Lit Element article](../lit-element.md).
diff --git a/17/umbraco-cms/customizing/foundation/umbraco-element/controllers/write-your-own-controller.md b/17/umbraco-cms/customizing/foundation/umbraco-element/controllers/write-your-own-controller.md
new file mode 100644
index 00000000000..1c26304aec7
--- /dev/null
+++ b/17/umbraco-cms/customizing/foundation/umbraco-element/controllers/write-your-own-controller.md
@@ -0,0 +1,31 @@
+---
+description: Reuse functionality across components by writing it as a Controller
+---
+
+# Write your own controller
+
+{% hint style="warning" %}
+This page is a work in progress and may undergo further revisions, updates, or amendments. The information contained herein is subject to change without notice.
+{% endhint %}
+
+A Controller must follow the interface of UmbController. To ease the implementation you can base your class on the `UmbControllerBase`:
+
+```typescript
+import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
+
+class MyController extends UmbControllerBase {
+
+ hostConnected() {
+ super.hostConnected();
+ // Your code when the Host element is connected.
+ }
+ hostDisconnected() {
+ super.hostDisconnected();
+ // Your code when the Host element is disconnected.
+ }
+ destroy() {
+ super.destroy();
+ // Your code for when this controller gets destroyed.
+ }
+}
+```
diff --git a/17/umbraco-cms/customizing/overview.md b/17/umbraco-cms/customizing/overview.md
new file mode 100644
index 00000000000..73922e0442d
--- /dev/null
+++ b/17/umbraco-cms/customizing/overview.md
@@ -0,0 +1,29 @@
+---
+description: >-
+ Get an overview of the different options for UI customizing of the Umbraco CMS
+ backoffice.
+---
+
+# Overview
+
+The Backoffice is one of the core components of Umbraco CMS. It’s where content creators perform their daily work, and where projects are managed overall.
+
+{% hint style="info" %}
+Are you looking to **extend and customize the Umbraco CMS**?
+
+Resources are available in the [Extending](../extending/build-on-umbraco-functionality.md) section for when you are looking to extend Umbraco functionality beyond the backoffice.
+{% endhint %}
+
+In this section, you will find all the resources you need to customize or build an intuitive and fluid editor experience for your content editors.
+
+## General Resources
+
+Extensions Overview | Explorer the various options for bringing your own piece into the platform. | extending-overview | gitbook1.png |
Foundation | Learn about the Core features of the Backoffice, How you integrate and makes reactive UI | foundation | gitbook1.png |
Backoffice UI API See what all of the modules export, interfaces, hierarchy, code examples, and much more. | https://apidocs.umbraco.com/v15/ui-api/index.html | Documentations Icons_Umbraco_CMS_Tutorials_the_Starter_Kit.png | |
Examples & Playground | Experience fully working customizations. This is also the place for you to get hands-on experience. | examples-and-playground.md | Documentations Icons_Umbraco_CMS_Reference_Querying_and_Models.png |
Create a UI Extension | Get started via this tutorial on how to extend the backoffice via a simple customization | creating-your-first-extension.md | Documentations Icons_Umbraco_CMS_Extending_Sections_and_Trees.png |
Create a dashboard | Bring a good overview for the needs of your Content Editors | creating-a-custom-dashboard | Documentations Icons_Umbraco_CMS_Extending_Dashboards.png |
Create a Property Editor | Build a custom editor for the needs of your Content Editors | creating-a-property-editor | Documentations Icons_Umbraco_CMS_Extending_Property_Editors.png |
Backoffice UI Library | See, test, and get a feel for the familiar backoffice components built using the new UI components. | https://apidocs.umbraco.com/v15/ui/ | Documentations Icons_Umbraco_CMS_Fundamentals_Backoffice (1) (2).png |
Backoffice UI API | Find reference documentation about all types and contexts in the Backoffice. | https://apidocs.umbraco.com/v15/ui-api/ | Documentations Icons_Umbraco_CMS_Fundamentals_Code.png | +
Workspace
Backoffice Search | Learn how to customize the built-in search functionality in the backoffice. | Documentations Icons_Umbraco_CMS_Reference_Searching.png | backoffice-search.md | |
Packages | Add your custom code into packages and distribute them to the rest of the Umbraco users. | Documentations Icons_Umbraco_CMS_Extending_Packages.png | packages | |
Health Checks | Learn about the health checks that you can run on your site to verify its state. | Documentations Icons_Umbraco_CMS_Extending_Health_Checks.png | health-check |
Scale blocks in the grid by dragging from the bottom-right corner.
@variant.Value("description")
+ } +} +``` + +If using ModelsBuilder the example can be simplified: + +Example: + +```csharp +@inherits Umbraco.Web.Mvc.UmbracoViewPage +@using ContentModels = Umbraco.Web.PublishedModels; +@{ + var variants = Model.Variants.Select(x => x.Content).OfType@variant.Description
+ }
+}
+```
+
+If you know the Block List Editor only uses a single block, you can cast the collection to a specific type `T` using `.OfType The option to specify a root node also called the "origin" becomes available when Content is selected as the Node Type. The available options for setting a root node (origin) for the Content Picker. @item.Name @item.Name @typedContentPicker.Name @typedContentPicker.Name @(Model.Value @Model.Category @emailAddress @Model.Email @(Model.Value("pageLabel")) @Model.PageLabel @memberGroup @Model.MemberGroup @totalTravellers @(Model.Value @totalTravellers @value @value @Model.RichText @(Model.Value("richText")) @Html.Raw(quoteText) @Html.Raw(Model.Content.QuoteText) @value @(value.Minimum) and @(value.Maximum) @value @minValue and @maxValue @(Model.Value @Model.Description @(Model.Value("pageTitle")) @Model.PageTitle The Checkbox is not checked! The Checkbox is not checked! This is the chosen person: @username This returns the id value of chosen person: @Model.Value("userPicker") This is the chosen person: @user.Name This returns the id value of chosen person: @user.Id) Content Version Cleanup - Document Type overrides Upload Media - Create Button Upload Media - Media section Media Section - Cardview Creating groups Allow Child page Composition Member Type Scheduled publishing Scheduled publishing Created partial view Created partial view from snippet Created folder Article date:
+ @foreach (var item in Model.Value
+ }
+}
+```
+
+### With Models Builder
+
+```csharp
+@{
+ if (Model.SuperHeros.Any())
+ {
+
+ @foreach (var item in Model.SuperHeros)
+ {
+
+ }
+}
+```
+
+## Add values programmatically
+
+See the example below to see how a value can be added or changed programmatically. To update a value of a property editor you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html).
+
+{% hint style="info" %}
+The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
+{% endhint %}
+
+```csharp
+@using Umbraco.Cms.Core.Serialization
+@using Umbraco.Cms.Core.Services
+@inject IContentService ContentService
+@inject IJsonSerializer Serializer
+@{
+ // Create a variable for the GUID of the page you want to update
+ var guid = Guid.Parse("32e60db4-1283-4caa-9645-f2153f9888ef");
+
+ // Get the page using the GUID you've defined
+ var content = ContentService.GetById(guid); // ID of your page
+
+ // Set the value of the property with alias 'superHeroes'.
+ content.SetValue("superHeroes", Serializer.Serialize(new[] { "Umbraco", "CodeGarden"}));
+
+ // Save the change
+ ContentService.Save(content);
+}
+```
+
+Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
+
+```csharp
+@{
+ // Get the page using it's id
+ var content = ContentService.GetById(1234);
+}
+```
+
+If Models Builder is enabled you can get the alias of the desired property without using a magic string:
+
+```csharp
+@using Umbraco.Cms.Core.PublishedCache
+@inject IPublishedContentTypeCache PublishedContentTypeCache
+@{
+ // Set the value of the property with alias 'superHeroes'
+ content.SetValue(Home.GetModelPropertyType(PublishedContentTypeCache, x => x.SuperHeroes).Alias, Serializer.Serialize(new[] { "Umbraco", "CodeGarden"}));
+}
+```
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/collection.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/collection.md
new file mode 100644
index 00000000000..89b88a394a6
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/collection.md
@@ -0,0 +1,116 @@
+# Collection
+
+`Schema Alias: Umbraco.ListView`
+
+`UI Alias: Umb.PropertyEditorUi.Collection`
+
+`Returns: IEnumerable
+ @foreach (var category in categories)
+ {
+
+}
+```
+
+### Single item - with Models Builder
+
+```csharp
+@if (!Model.HasValue(Model.Category))
+{
+
+ @foreach (var category in Model.Categories)
+ {
+
+}
+```
+
+## Add values programmatically
+
+See the example below to see how a value can be added or changed programmatically. To update a value of a property editor you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html).
+
+{% hint style="info" %}
+The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
+{% endhint %}
+
+```csharp
+@using Umbraco.Cms.Core.Serialization
+@using Umbraco.Cms.Core.Services
+@inject IContentService ContentService
+@inject IJsonSerializer Serializer
+@{
+ // Create a variable for the GUID of the page you want to update
+ var guid = Guid.Parse("32e60db4-1283-4caa-9645-f2153f9888ef");
+
+ // Get the page using the GUID you've defined
+ var content = ContentService.GetById(guid); // ID of your page
+
+ // Set the value of the property with alias 'categories'.
+ content.SetValue("categories", Serializer.Serialize(new[] { "News" }));
+
+ // Save the change
+ ContentService.Save(content);
+}
+```
+
+Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
+
+```csharp
+@{
+ // Get the page using it's id
+ var content = ContentService.GetById(1234);
+}
+```
+
+If Models Builder is enabled you can get the alias of the desired property without using a magic string:
+
+```csharp
+@using Umbraco.Cms.Core.PublishedCache
+@inject IPublishedContentTypeCache PublishedContentTypeCache
+@{
+ // Set the value of the property with alias 'categories'
+ content.SetValue(Home.GetModelPropertyType(PublishedContentTypeCache, x => x.Categories).Alias, Serializer.Serialize(new[] { "News" }));
+}
+```
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/email-address.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/email-address.md
new file mode 100644
index 00000000000..73085cfc942
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/email-address.md
@@ -0,0 +1,79 @@
+---
+description: In this article you can learn how to use the build in email property editor
+---
+
+# Email Address
+
+`Schema Alias: Umbraco.EmailAddress`
+
+`UI Alias: Umb.PropertyEditorUi.EmailAddress`
+
+`Returns: String`
+
+Displays an email address.
+
+## Settings
+
+The Email Address Property Editor does not come with any further configuration. The property can be configured once it has been added to a Document Type.
+
+
+
+## Content Example
+
+
+
+## MVC View Example
+
+### Without Modelsbuilder
+
+```csharp
+@if (Model.HasValue("email"))
+{
+ var emailAddress = Model.Value
+```
+
+The third parameter is `HtmlEncode` and is by default set to true. This means you only need to define the parameter if you want to disable HTML encoding.
+
+### Example to output a "banner" crop from a cropper property with the property alias "customCropper"
+
+```html
+
+```
+
+Or, alternatively using the `MediaWithCrops` extension method:
+
+```html
+
+```
+
+### Example to dynamically create a crop using the focal point - in this case 300 x 400px image
+
+```csharp
+@if (Model.Photo is not null)
+{
+
+}
+```
+
+### CSS background example to output a "banner" crop
+
+Set the `htmlEncode` to false so that the URL is not HTML encoded
+
+```csharp
+@if (Model.Photo is not null)
+{
+ var cropUrl = Url.GetCropUrl(Model.Photo, "square", false);
+
+
+}
+```
+
+## Add values programmatically
+
+To update a content property value you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html).
+
+The following sample demonstrates how to add or change the value of an Image Cropper property programmatically. The sample creates an API controller with an action, which must be invoked via a POST request to the URL written above the action.
+
+```csharp
+using Microsoft.AspNetCore.Mvc;
+using Umbraco.Cms.Core.Models;
+using Umbraco.Cms.Core.PropertyEditors;
+using Umbraco.Cms.Core.PropertyEditors.ValueConverters;
+using Umbraco.Cms.Core.Serialization;
+using Umbraco.Cms.Core.Services;
+
+namespace Umbraco.Docs.Samples.Web.Property_Editors_Add_Values;
+
+[ApiController]
+[Route("/umbraco/api/createimagecroppervalues")]
+public class CreateImageCropperValuesController : Controller
+{
+ private readonly IContentService _contentService;
+ private readonly IMediaService _mediaService;
+ private readonly MediaUrlGeneratorCollection _mediaUrlGeneratorCollection;
+ private readonly IJsonSerializer serializer;
+
+ public CreateImageCropperValuesController(
+ IContentService contentService,
+ IMediaService mediaService,
+ MediaUrlGeneratorCollection mediaUrlGeneratorCollection, IJsonSerializer serializer)
+ {
+ _contentService = contentService;
+ _mediaService = mediaService;
+ _mediaUrlGeneratorCollection = mediaUrlGeneratorCollection;
+ this.serializer = serializer;
+ }
+
+ // /Umbraco/Api/CreateImageCropperValues/CreateImageCropperValues
+ [HttpPost("createimagecroppervalues")]
+ public ActionResult
+```
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Checkbox-Data-Type.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Checkbox-Data-Type.png
new file mode 100644
index 00000000000..70eab847d64
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Checkbox-Data-Type.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Color-Picker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Color-Picker-DataType.png
new file mode 100644
index 00000000000..c6ea4a2cd1f
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Color-Picker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Document-Picker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Document-Picker-DataType.png
new file mode 100644
index 00000000000..18573dd59d2
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Document-Picker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Dropdown-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Dropdown-DataType.png
new file mode 100644
index 00000000000..ea1da4a3cfc
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Dropdown-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Eye-Dropper-Color-Picker-Content.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Eye-Dropper-Color-Picker-Content.png
new file mode 100644
index 00000000000..d8ce4de3f88
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Eye-Dropper-Color-Picker-Content.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Eye-Dropper-Color-Picker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Eye-Dropper-Color-Picker-DataType.png
new file mode 100644
index 00000000000..0f1fb36893a
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Eye-Dropper-Color-Picker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Label-Setup.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Label-Setup.png
new file mode 100644
index 00000000000..11094fa224c
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Label-Setup.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Markdown-Editor-definition-example.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Markdown-Editor-definition-example.png
new file mode 100644
index 00000000000..0b4b46160d6
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Markdown-Editor-definition-example.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Media-picker-dataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Media-picker-dataType.png
new file mode 100644
index 00000000000..0521ffd75db
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Media-picker-dataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/MediaPicker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/MediaPicker-DataType.png
new file mode 100644
index 00000000000..bc6ac25056b
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/MediaPicker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Member-Picker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Member-Picker-DataType.png
new file mode 100644
index 00000000000..a0510029d2f
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Member-Picker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Member-Picker.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Member-Picker.png
new file mode 100644
index 00000000000..2f42aa8db1c
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Member-Picker.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Multi-Url-Picker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Multi-Url-Picker-DataType.png
new file mode 100644
index 00000000000..63981d74060
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Multi-Url-Picker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/RadioButton-List-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/RadioButton-List-DataType.png
new file mode 100644
index 00000000000..ec80c6b02c1
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/RadioButton-List-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Repeatable-Textstrings-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Repeatable-Textstrings-DataType.png
new file mode 100644
index 00000000000..eda135248f9
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Repeatable-Textstrings-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Slider-Data-Type-Definition.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Slider-Data-Type-Definition.png
new file mode 100644
index 00000000000..9620542ac7f
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Slider-Data-Type-Definition.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Textarea-Setup.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Textarea-Setup.png
new file mode 100644
index 00000000000..0373a9f3dec
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Textarea-Setup.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Textbox-Setup.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Textbox-Setup.png
new file mode 100644
index 00000000000..75804945088
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/Textbox-Setup.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/User-Picker-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/User-Picker-DataType.png
new file mode 100644
index 00000000000..4edc07b73e6
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/User-Picker-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/checkbox-list-setup.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/checkbox-list-setup.png
new file mode 100644
index 00000000000..798ccd419be
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/checkbox-list-setup.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-column-content-picker.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-column-content-picker.png
new file mode 100644
index 00000000000..f0e664a416b
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-column-content-picker.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-label-template.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-label-template.png
new file mode 100644
index 00000000000..30d0e0033ec
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-label-template.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-property-picker.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-property-picker.png
new file mode 100644
index 00000000000..375af70dc02
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-property-picker.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-view-cards-content-picker.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-view-cards-content-picker.png
new file mode 100644
index 00000000000..cfb2e51eb9f
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collection-view-cards-content-picker.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collections-display-email.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collections-display-email.png
new file mode 100644
index 00000000000..d54e5d4a712
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/collections-display-email.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-example.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-example.png
new file mode 100644
index 00000000000..98474c05999
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-example.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-picker-picked-value.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-picker-picked-value.png
new file mode 100644
index 00000000000..9726d5c05ea
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-picker-picked-value.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-picker-property.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-picker-property.png
new file mode 100644
index 00000000000..a20251e8876
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/content-picker-property.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/date-time.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/date-time.png
new file mode 100644
index 00000000000..260e07b5791
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/date-time.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/emailaddress-datatype.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/emailaddress-datatype.png
new file mode 100644
index 00000000000..6806c536bb2
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/emailaddress-datatype.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/enable-listview-v14.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/enable-listview-v14.png
new file mode 100644
index 00000000000..f15477d46b6
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/enable-listview-v14.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/file-upload-definition.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/file-upload-definition.png
new file mode 100644
index 00000000000..8fd78917069
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/file-upload-definition.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper-crop.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper-crop.png
new file mode 100644
index 00000000000..de2e956bea5
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper-crop.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper-focalpoint.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper-focalpoint.png
new file mode 100644
index 00000000000..8124cc53681
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper-focalpoint.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper.png
new file mode 100644
index 00000000000..786888e25e9
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/imageCropper.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/list-view-settings.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/list-view-settings.png
new file mode 100644
index 00000000000..dad410c9d85
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/list-view-settings.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/listview-v14.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/listview-v14.png
new file mode 100644
index 00000000000..63e85069886
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/listview-v14.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/numeric-datatype.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/numeric-datatype.png
new file mode 100644
index 00000000000..359e2787a82
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/numeric-datatype.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/tags-DataType.png b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/tags-DataType.png
new file mode 100644
index 00000000000..007770a99a3
Binary files /dev/null and b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/images/tags-DataType.png differ
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/label.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/label.md
new file mode 100644
index 00000000000..d8b2656e1a3
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/label.md
@@ -0,0 +1,92 @@
+# Label
+
+`Schema Alias: Umbraco.Label`
+
+`UI Alias: Umb.PropertyEditorUi.Label`
+
+`Returns: String`
+
+Label is a non-editable control and can only be used to display a pre-set value.
+
+## Data Type Definition Example
+
+
+
+### Value type
+
+If you want to set a value other than a String, you can define the data using one of the other available Data Types. These include Decimal, Date/time, Time, Integer, and Big integer.
+
+There is also a Value Type: Long string if you need to set a long string value for your Label.
+
+## Content Example
+
+
+
+## MVC View Example
+
+### Without Models Builder
+
+```csharp
+@{
+ if (Model.HasValue("pageLabel")){
+
+ }
+}
+```
+
+#### Multiple enabled without Models Builder to retrieve IEnumerable
+ }
+}
+```
+
+{% hint style="info" %}
+While `MediaWithCrops` is the default return type, `IPublishedContent` may be used in backward-compatible implementations or when working directly with core APIs.
+{% endhint %}
+
+### Multiple enabled with Models Builder
+
+```csharp
+@{
+ var typedMultiMediaPicker = Model.Medias;
+ foreach (var entry in typedMultiMediaPicker)
+ {
+
+ }
+}
+```
+
+### Multiple disabled without Models Builder
+
+```csharp
+@using Umbraco.Cms.Core.Models
+@{
+ var typedMediaPickerSingle = Model.Value
+ }
+}
+```
+
+### Multiple disabled with Models Builder
+
+```csharp
+@using Umbraco.Cms.Core.Models
+@{
+ var typedMediaPickerSingle = Model.Media;
+ if (typedMediaPickerSingle is MediaWithCrops mediaEntry)
+ {
+
+ }
+}
+```
+
+## Using crops
+
+Both local and global crops are retrieved using the method `GetCropUrl`. If crops with identical aliases are defined both locally and globally, the locally defined crops are always prioritized by `GetCropUrl`.
+
+The following is an example of how to retrieve a crop from a `MediaWithCrops` entry:
+
+```csharp
+@{
+ foreach (var entry in Model.Medias)
+ {
+
+ }
+}
+```
+
+### Explicitly retrieving global crops
+
+You can retrieve globally defined crops explicitly by using `GetCropUrl` on the `UrlHelper`:
+
+```csharp
+@{
+ foreach (var entry in Model.Medias)
+ {
+
+ }
+}
+```
+
+### Add values programmatically
+
+See the example below to see how a value can be added or changed programmatically. To update a value of a property editor you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html).
+
+The following sample will update a single image in a Media Picker.
+
+{% hint style="info" %}
+The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
+{% endhint %}
+
+```csharp
+@using Umbraco.Cms.Core
+@using Umbraco.Cms.Core.Services
+@inject IContentService ContentService
+@{
+ // Create a variable for the GUID of the page you want to update
+ var guid = Guid.Parse("32e60db4-1283-4caa-9645-f2153f9888ef");
+
+ // Get the page using the GUID you've defined
+ var content = ContentService.GetById(guid); // ID of your page
+
+ // Get the media you want to assign to the media picker
+ var media = Umbraco.Media("bca8d5fa-de0a-4f2b-9520-02118d8329a8");
+
+ // Create an Udi of the media
+ var udi = Udi.Create(Constants.UdiEntityType.Media, media.Key);
+
+ // Set the value of the property with alias 'featuredBanner'.
+ content.SetValue("featuredBanner", udi.ToString());
+
+ // Save the change
+ ContentService.Save(content);
+}
+```
+
+Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
+
+```csharp
+@{
+ // Get the page using it's id
+ var content = ContentService.GetById(1234);
+}
+```
+
+If Models Builder is enabled you can get the alias of the desired property without using a magic string:
+
+```csharp
+@using Umbraco.Cms.Core.PublishedCache
+@inject IPublishedContentTypeCache PublishedContentTypeCache
+@{
+ // Set the value of the property with alias 'featuredBanner'
+ content.SetValue(Home.GetModelPropertyType(PublishedContentTypeCache, x => x.FeaturedBanner).Alias, udi.ToString());
+}
+```
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/member-group-picker.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/member-group-picker.md
new file mode 100644
index 00000000000..234645e6e4a
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/member-group-picker.md
@@ -0,0 +1,93 @@
+# Member Group Picker
+
+`Schema Alias: Umbraco.MemberGroupPicker`
+
+`UI Alias: Umb.PropertyEditorUi.MemberGroupPicker`
+
+`Returns: string`
+
+The Member Group Picker opens a panel to pick one or more member groups from the Member section. The value saved is of type string (comma separated IDs).
+
+## Data Type Definition Example
+
+
+
+## Content Example
+
+
+
+## MVC View Example
+
+### Without Models Builder
+
+```csharp
+@if (Model.HasValue("memberGroup"))
+{
+ var memberGroup = Model.Value
+ @foreach (var link in links)
+ {
+
+ }
+}
+```
+
+If `Max number of items` is configured to `1`
+
+```csharp
+@using Umbraco.Cms.Core.Models
+@{
+ var link = Model.Value("link");
+ if (link != null)
+ {
+ @link.Name
+ }
+}
+```
+
+## Add values programmatically
+
+See the example below to see how a value can be added or changed programmatically. To update a value of a property editor you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html).
+
+{% hint style="info" %}
+The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
+{% endhint %}
+
+```csharp
+@using Umbraco.Cms.Core
+@using Umbraco.Cms.Core.Serialization
+@using Umbraco.Cms.Core.Services
+@using Umbraco.Cms.Core.Models
+@inject IContentService ContentService
+@inject IJsonSerializer Serializer
+@{
+ // Create a variable for the GUID of the page you want to update
+ var guid = Guid.Parse("32e60db4-1283-4caa-9645-f2153f9888ef");
+
+ // Get the page using the GUID you've defined
+ var content = ContentService.GetById(guid); // ID of your page
+
+ // Get the media you want to assign to the footer links property
+ var media = Umbraco.Media("bca8d5fa-de0a-4f2b-9520-02118d8329a8");
+
+ // Create an Udi of the media
+ var mediaUdi = Udi.Create(Constants.UdiEntityType.Media, media.Key);
+
+ // Get the content you want to assign to the footer links property
+ var contentPage = Umbraco.Content("665d7368-e43e-4a83-b1d4-43853860dc45");
+
+ // Create an Udi of the Content
+ var contentPageUdi = Udi.Create(Constants.UdiEntityType.Document, contentPage.Key);
+
+ // Create a list with different link types
+ var externalLinks = new List
+ {
+ // External Link
+ new Link
+ {
+ Target = "_blank",
+ Name = "Our Umbraco",
+ Url = "https://our.umbraco.com/",
+ Type = LinkType.External
+ },
+ // Media
+ new Link
+ {
+ Target = "_self",
+ Name = media.Name,
+ Url = media.MediaUrl(),
+ Type = LinkType.Media,
+ Udi = mediaUdi
+ },
+ // Content
+ new Link
+ {
+ Target = "_self",
+ Name = contentPage.Name,
+ Url = contentPage.Url(),
+ Type = LinkType.Content,
+ Udi = contentPageUdi
+ }
+ };
+
+ // Serialize the list with links to JSON
+ var links = Serializer.Serialize(externalLinks);
+
+
+ // Set the value of the property with alias 'footerLinks'.
+ content.SetValue("footerLinks", links);
+
+ // Save the change
+ ContentService.Save(content);
+}
+```
+
+Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
+
+```csharp
+@{
+ // Get the page using it's id
+ var content = ContentService.GetById(1234);
+}
+```
+
+If Models Builder is enabled you can get the alias of the desired property without using a magic string:
+
+```csharp
+@using Umbraco.Cms.Core.PublishedCache
+@inject IPublishedContentTypeCache PublishedContentTypeCache
+@{
+ // Set the value of the property with alias 'footerLinks'
+ content.SetValue(Home.GetModelPropertyType(PublishedContentTypeCache, x => x.FooterLinks).Alias, links);
+}
+```
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/multiple-textbox.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/multiple-textbox.md
new file mode 100644
index 00000000000..71db7e81462
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/multiple-textbox.md
@@ -0,0 +1,101 @@
+# Repeatable Textstrings
+
+`Schema Alias: Umbraco.MultipleTextstring`
+
+`UI Alias: Umb.PropertyEditorUi.MultipleTextString`
+
+`Returns: array of strings`
+
+The Repeatable textstrings property editor enables a content editor to make a list of text items. For best use with an unordered-list.
+
+## Data Type Definition Example
+
+
+
+## Content Example
+
+ (1).png>)
+
+## MVC View Example
+
+### Without Models Builder
+
+```csharp
+@{
+ if (Model.Value
+ @foreach (var item in Model.Value
+ }
+}
+```
+
+### With Models Builder
+
+```csharp
+@{
+ if (Model.KeyFeatureList.Any())
+ {
+
+ @foreach (var item in Model.KeyFeatureList)
+ {
+
+ }
+}
+```
+
+## Add values programmatically
+
+See the example below to see how a value can be added or changed programmatically. To update a value of a property editor you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html).
+
+{% hint style="info" %}
+The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
+{% endhint %}
+
+```csharp
+@using Umbraco.Cms.Core.Services
+@inject IContentService ContentService
+@{
+ // Create a variable for the GUID of the page you want to update
+ var guid = new Guid("32e60db4-1283-4caa-9645-f2153f9888ef");
+
+ // Get the page using the GUID you've defined
+ var content = ContentService.GetById(guid); // ID of your page
+
+ // Set the value of the property with alias 'keyFeatureList'
+ content.SetValue("keyFeatureList", "Awesome" + Environment.NewLine + "Super");
+
+ // Save the change
+ ContentService.Save(content);
+}
+```
+
+{% hint style="info" %}
+To add multiple values to the repeatable text strings property editor you have to put each value on a new line. This can be achieved using either `\r\n\` or `Environment.NewLine`.
+{% endhint %}
+
+Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
+
+```csharp
+@{
+ // Get the page using it's id
+ var content = ContentService.GetById(1234);
+}
+```
+
+If Models Builder is enabled you can get the alias of the desired property without using a magic string:
+
+```csharp
+@using Umbraco.Cms.Core.PublishedCache
+@inject IPublishedContentTypeCache PublishedContentTypeCache
+@{
+ // Set the value of the property with alias 'keyFeatureList'
+ content.SetValue(Home.GetModelPropertyType(PublishedContentTypeCache, x => x.KeyFeatureList).Alias, "Awesome" + Environment.NewLine + "Super");
+}
+```
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/numeric.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/numeric.md
new file mode 100644
index 00000000000..facbede1337
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/numeric.md
@@ -0,0 +1,118 @@
+# Numeric
+
+`Schema Alias: Umbraco.Integer`
+
+`UI Alias: Umb.PropertyEditorUi.Integer`
+
+`Returns: Integer`
+
+Numeric is an HTML input control for entering numbers. Since it's a standard HTML element the options and behaviour are all controlled by the browser and therefore is beyond the control of Umbraco.
+
+## Data Type Definition Example
+
+
+
+### Minimum
+
+This allows you to set up a minimum value. If you will always need a minimum value of 10 this is where you set it up and whenever you use the datatype the value will always start at 10. It's not possible to change the value to anything lower than 10. Only higher values will be accepted.
+
+### Step Size
+
+This allows you to control by how much value should be allowed to increase/decrease when clicking the up/down arrows. If you try to enter a value that does not match with the step setting then it will not be accepted.
+
+### Maximum
+
+This allows you to set up a maximum value. If you will always need a maximum value of 100 this is where you set it up. It's not possible to change the value to anything higher than 100. Only lower values will be accepted.
+
+## Settings
+
+## Content Example
+
+
+
+## MVC View Examples
+
+### Rendering the output casting to an int (without Models Builder)
+
+By casting the output as an int it's possible for you to do mathematical operations with the value.
+
+```csharp
+@{
+ int students = Model.HasValue("students") ? Model.Value
+ @if (!string.IsNullOrEmpty(quoteText))
+ {
+
+```
+
+### Example with Settings Model
+
+For a Call To Action block with Element Type alias `callToActionBlock` and settings model `callToActionBlockSettings`:
+
+```csharp
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+ @if (!string.IsNullOrEmpty(Model.Content.QuoteText))
+ {
+
+```
+
+## Build a Custom Backoffice View
+
+Building Custom Views for Block representations in Backoffice is the same for all Block Editors. [Read about building a Custom View for Blocks here](../../../../../tutorials/creating-custom-views-for-blocklist.md).
+
+## Best Practices
+
+### Content Design
+
+* Design blocks for reusable content patterns.
+* Keep block content focused on a single purpose.
+* Use descriptive labels that help editors understand the block's function.
+
+### Performance
+
+* Avoid creating too many Blocks - this can overwhelm content editors.
+* Use appropriate caching strategies for block rendering.
+* Consider the impact of complex blocks on editor performance.
+
+### Accessibility
+
+* Ensure block markup follows accessibility guidelines.
+* Provide meaningful labels and descriptions.
+* Test block rendering with screen readers.
+
+## Related Articles
+
+* [Element Types](../../../../data/defining-content/default-document-types.md#element-type)
+* [Rich Text Editor Configuration](configuration.md)
+* [Rich Text Editor Extensions](extensions.md)
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/configuration.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/configuration.md
new file mode 100644
index 00000000000..48405ffe71d
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/configuration.md
@@ -0,0 +1,58 @@
+# Configuration
+
+In this article you can learn about the different options you have for configuring the Rich Text Editor (RTE).
+
+## Toolbar
+
+You have full control over which options should be available on the RTE.
+
+
+
+In the example above, all 38 options have been enabled. These options include font styles like bold and italics, bullet lists, and options to embed videos and insert images.
+
+You can customize the look of the toolbar:
+
+* Enhance the capabilities of the toolbar by enabling or disabling extensions.
+* Use the Toolbar designer to group together items and add additional rows if needed.
+
+
+
+## Statusbar
+
+As well as the toolbar, you can configure extensions for the statusbar.
+
+
+
+## Stylesheets
+
+To apply custom styles to the Rich Text Editor, you can select from any existing stylesheets.
+
+Stylesheets can be created in the **Settings** section. To learn more about this feature, see the [Stylesheets in the Backoffice](../../../../design/stylesheets-javascript.md) article.
+
+## Dimensions
+
+Define `height` and `width` of the editor displayed in the content section.
+
+## Maximum size for inserted images
+
+Define the maximum size for images added through the Rich Text Editor.
+
+If inserted images are larger than the dimensions defined here, the images will be resized automatically.
+
+## Overlay Size
+
+Select the width of the link picker overlay. The overlay size comes in three sizes: Small, Medium, Large, and Full.
+
+## Available Blocks
+
+Blocks can be added as elements in the Rich Text Editor. Configuration and rendering of Blocks are described in the [Blocks in Rich Text Editor](blocks.md) article.
+
+## Image Upload Folder
+
+Images added through the RTE are by default added to the root of the Media library.
+
+Sometimes you might want to add the images to a specific folder. This folder can be configured using the "Image Upload Folder" setting.
+
+## Ignore User Start Nodes
+
+Some of the backoffice users might be restricted to a specific part of the content tree. When the "Ignore User Start Nodes" is checked, the users can pick any piece of content from the content tree, when adding internal links through the RTE.
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/css-properties.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/css-properties.md
new file mode 100644
index 00000000000..ab02849b429
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/css-properties.md
@@ -0,0 +1,35 @@
+# Custom CSS properties
+
+Customize the appearance of the Rich Text Editor with custom CSS properties.
+
+You can customize the appearance of the Rich Text Editor using CSS properties by defining them in your CSS files.
+
+For example, to set the minimum height of all Rich Text Editors throughout the backoffice. You could use the following CSS rule:
+
+```css
+:root {
+ --umb-rte-min-height: 300px;
+}
+```
+
+For general information on working with stylesheets and JavaScript in Umbraco, check [Stylesheets and JavaScript](../../../../design/stylesheets-javascript.md).
+
+If you wanted to target a specific Rich Text Editor, you can set the [stylesheet directly in the configuration](configuration.md#stylesheets).
+
+
+## Custom CSS properties reference
+
+The following CSS properties are available for customization:
+
+| CSS Property | Description | Default Value |
+| ---------------------- | ------------------------------------------ | ------------- |
+| `--umb-rte-width` | The width of the rich-text-editor | `unset` |
+| `--umb-rte-min-width` | The minimum width of the rich-text-editor | `unset` |
+| `--umb-rte-max-width` | The maximum width of the rich-text-editor | `100%` |
+| `--umb-rte-height` | The height of the rich-text-editor | `100%` |
+| `--umb-rte-min-height` | The minimum height of the rich-text-editor | `100%` |
+| `--umb-rte-max-height` | The maximum height of the rich-text-editor | `100%` |
+
+
+The CSS custom properties may change in future versions of Umbraco. You can always find the latest values in the [Rich Text Editor component base class](https://github.com/umbraco/Umbraco-CMS/blob/main/src/Umbraco.Web.UI.Client/src/packages/rte/components/rte-base.element.ts) in the Umbraco CMS GitHub repository.
+
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/extensions.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/extensions.md
new file mode 100644
index 00000000000..eb9bc6980aa
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/rich-text-editor/extensions.md
@@ -0,0 +1,98 @@
+---
+description: Information on how to work with Tiptap extensions in the rich text editor.
+---
+
+# Extensions
+
+The Rich Text Editor (RTE) in Umbraco is based on the open-source editor [Tiptap](https://tiptap.dev/).
+
+Out of the box, Tiptap has limited capabilities and everything is an extension by design. Basic text formatting features such as bold, italic, and underline are their own extensions. This offers great flexibility, making the rich text editor highly configurable. The implementation in Umbraco offers a wide range of built-in extensions to enhance the Tiptap editor capabilities.
+
+Using the same extension points, this article will show you how to add a custom extension to the rich text editor.
+
+## Native Tiptap extensions
+
+Tiptap has a library of supported native extensions. You can find a list of these extensions on the [Tiptap website](https://tiptap.dev/docs/editor/extensions/overview). While many of these are open source, there are also [pro extensions](https://tiptap.dev/docs/guides/pro-extensions) available for commercial subscriptions.
+
+### Tiptap extension types
+
+There are two types of extension: `tiptapExtension` and `tiptapToolbarExtension`.
+
+The `tiptapExtension` extension is used to register a native [Tiptap Extension](https://tiptap.dev/docs/editor/extensions/). These will enhance the capabilities of the rich text editor itself. For example, to enable text formatting, drag-and-drop functionality and spell-checking.
+
+The `tiptapToolbarExtension` extension adds a toolbar action that interacts with the Tiptap editor (and native Tiptap extensions).
+
+## Adding a native extension
+
+{% hint style="info" %}
+This example assumes that you will be creating an Umbraco package using the Vite/Lit/TypeScript setup.\
+You can learn how to do this [Vite Package Setup](../../../../../customizing/development-flow/vite-package-setup.md) article.
+{% endhint %}
+
+In this example, you will take the native Tiptap open-source extension [Highlight](https://tiptap.dev/docs/editor/extensions/marks/highlight). Then register it with the rich text editor and add a toolbar button to invoke the Task List action.
+
+1. Install the Highlight extension from the npm registry.
+
+```
+npm install @tiptap/extension-highlight
+```
+
+2. Create the code to register the native Tiptap extensions in the rich text editor.
+
+```js
+import { UmbTiptapExtensionApiBase } from '@umbraco-cms/backoffice/tiptap';
+import { Highlight } from '@tiptap/extension-highlight';
+
+export default class UmbTiptapHighlightExtensionApi extends UmbTiptapExtensionApiBase {
+ getTiptapExtensions = () => [Highlight];
+}
+```
+
+3. Create the toolbar action to invoke the Highlight extension.
+
+```js
+import { UmbTiptapToolbarElementApiBase } from '@umbraco-cms/backoffice/tiptap';
+import type { Editor } from '@umbraco-cms/backoffice/external/tiptap';
+
+export default class UmbTiptapToolbarHighlightExtensionApi extends UmbTiptapToolbarElementApiBase {
+ override execute(editor?: Editor) {
+ editor?.chain().focus().toggleHighlight().run();
+ }
+}
+```
+
+Once you have the above code in place, they can be referenced using a [bundle extension type](../../../../../customizing/extending-overview/extension-types/bundle.md).
+
+{% code title="manifests.ts" lineNumbers="true" %}
+```js
+export const manifests: Array
+ @foreach(var tag in Model.Tags){
+
+}
+```
+
+### Multiple items - without Models Builder
+
+```csharp
+@if(Model.HasValue("tags"))
+{
+ var tags = Model.Value
+ @foreach(var tag in tags)
+ {
+
+}
+```
+
+### Setting Tags Programmatically
+
+You can use the ContentService to create and update Umbraco content from c# code, when setting tags there is an extension method (SetTagsValue) on IContentBase that helps you set the value for a Tags property. Remember to add the using statement for `Umbraco.Core.Models` to take advantage of it.
+
+{% hint style="info" %}
+The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
+{% endhint %}
+
+```csharp
+@using Umbraco.Cms.Core.Serialization
+@using Umbraco.Cms.Core.Services
+@inject IContentService ContentService
+@inject IJsonSerializer Serializer
+@{
+ // Create a variable for the GUID of the page you want to update
+ var guid = Guid.Parse("9daf8585-6ab6-4ac2-98f0-28bf83aeea6e");
+
+ // Get the page using the GUID you've defined
+ var content = ContentService.GetById(guid); // ID of your page
+
+ // Set the value of the property with alias 'tags'.
+ content.SetValue("tags", Serializer.Serialize(new[] { "News", "Umbraco", "Example", "Setting Tags", "Helper" }));
+
+ // Save the change
+ ContentService.Save(content);
+}
+```
+
+Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
+
+```csharp
+@{
+ // Get the page using it's id
+ var content = ContentService.GetById(1234);
+}
+```
+
+If Models Builder is enabled, you can get the alias of the desired property without using a magic string:
+
+```csharp
+@using Umbraco.Cms.Core.PublishedCache
+@inject IPublishedContentTypeCache PublishedContentTypeCache
+@{
+ // Set the value of the property with alias 'tags'
+ content.SetValue(Home.GetModelPropertyType(PublishedContentTypeCache, x => x.Tags).Alias, Serializer.Serialize(new[] { "News", "Umbraco", "Example", "Setting Tags" }));
+}
+```
+
+### More on working with Tags
+
+More on working with Tags (query all of them) can be found at the [UmbracoHelper reference page](../../../../reference/querying/umbracohelper.md#working-with-tags)
diff --git a/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/textarea.md b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/textarea.md
new file mode 100644
index 00000000000..646f6f544e6
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/textarea.md
@@ -0,0 +1,93 @@
+# Textarea
+
+`Schema Alias: Umbraco.TextArea`
+
+`UI Alias: Umb.PropertyEditorUi.TextArea`
+
+`Returns: String`
+
+Textarea is an HTML textarea control for multiple lines of text. It can be configured to have a fixed character limit, as well as define how big the space for writing can be. By default, there is no character limit unless it's specifically set to a specific value like 200 for instance. If you don't specify the number of rows, 10 will be the amount of rows the textarea will be occupying, unless changed to a custom value.
+
+## Data Type Definition Example
+
+
+
+## Settings
+
+## Content Example
+
+### Without a character and rows limit
+
+
+
+### With a character limit and rows limit
+
+
+
+## MVC View Example
+
+### Without Models Builder
+
+```csharp
+@{
+ if (Model.HasValue("description")){
+ Nodes that are currently locked using the Public Access feature.
+*
Content nodes that contain a collection of nodes.
+
+To create content, you must define it using Document Types.
+
+For more information, see the [Defining Content](../data/defining-content/) article.
+
+## Media
+
+The Media section contains the media for the website. You can create folders and upload media files, such as images and PDFs. Additionally, you can customize the existing Media Types or define your own from the Settings section.
+
+For more information, see the [Creating Media](../data/creating-media/) article.
+
+## Settings
+
+The Settings section allows you to manage website layout files, languages, media, and content types. It also gives you access to more advanced features such as the Log Viewer and extension insights.
+
+The Settings section consists of:
+
+**Structure**
+
+* Document Types
+* Media Types
+* Member Types
+* Data Types
+* Languages
+* Document Blueprints
+
+**Templating**
+
+* Templates (`.cshtml` files)
+* Partial views (`.cshtml` files)
+* Stylesheets (`.css` files)
+* Scripts (`.js` files)
+
+**Advanced**
+
+* Relations
+* Log Viewer
+* Extension Insights
+* Webhooks
+
+The **Settings** section in the Umbraco backoffice has its own set of default dashboards.
+
+For more information, see the [Settings Dashboards](settings-dashboards.md) article.
+
+## Packages
+
+In this section, you can browse the different packages available for your Umbraco solution. You can also get an overview of all the packages you have installed or created.
+
+For more information, see the [Packages](../../extending/packages/) article.
+
+## Users
+
+The Users section allows administrators to manage user accounts, assign permissions, set user roles, and monitor user activity within the backoffice. It provides control over who can access and modify content, media, and settings in the CMS.
+
+For more information, see the [Users](../data/users/README.md) article.
+
+## Members
+
+The Members section allows to create and manage member profiles, set up member groups, and control Member's access to restricted content on the website.
+
+For more information, see the [Members](../data/members.md) article.
+
+## Dictionary
+
+The Dictionary section is where you create and manage Dictionary Items. By managing these dictionary items, you can ensure consistent and efficient content translation and maintenance across different languages.
+
+For more information, see the [Dictionary Items](../data/dictionary-items.md) article.
+
+## Add-Ons
+
+To enhance Umbraco's functionality, you can integrate plugins and extensions tailored to specific needs. These add-ons expand Umbraco's capabilities, allowing for a more customized and powerful content management experience.
+
+For example, you can start with core Umbraco features and later decide to integrate additional products. Currently, Umbraco supports add-on products like:
+
+* **Forms:** Simplifies the creation and management of Forms.
+* **Deploy:** Facilitates smooth deployment processes.
+* **Workflow:** Enhances content workflows and approval processes.
+* **Commerce:** Adds e-commerce capabilities to your site.
+* **UI Builder:** Helps in designing and customizing the user interface.
+
+When you add an add-on product to Umbraco, it appears in the Backoffice as a new section, seamlessly extending your content management capabilities.
+
+
+
+If you wish to explore the unique features and use cases of Umbraco products, see the [Exploring the Umbraco Products](https://docs.umbraco.com/welcome/getting-started/exploring-the-umbraco-products) article.
+
+For more information about extending the Umbraco platform through packages and integrations, see the [Umbraco DXP](https://docs.umbraco.com/umbraco-dxp) documentation.
+
+## Help Section
+
+The Help section in Umbraco provides documentation and resources to assist in understanding and effectively using the Umbraco CMS. It typically includes the following in the _Getting Started_ Dashboard:
+
+* **Documentation**: Comprehensive guides, tutorials, and references covering different aspects of Umbraco.
+* **Community Forums**: Access to forums where you can ask questions, share knowledge, and seek assistance from other Umbraco community members.
+* **Resources**: Stay updated with the latest news, access documentation, watch free video tutorials, and register for live demos.
+* **Training**: Learn how to effectively use Umbraco through structured courses, webinars, and hands-on tutorials designed to enhance your proficiency with the CMS.
+
+The Help section serves as a valuable resource hub in navigating and leveraging the capabilities of the Umbraco CMS effectively.
+
+## Custom Sections
+
+Along with the default sections that come with Umbraco, you can create your own [Custom Sections](../../customizing/extending-overview/extension-types/sections/section.md).
+
+## Access based on User Group
+
+A User can access a particular section based on the User Group permissions.
+
+Learn more about how to configure the permissions in the article about [backoffice users](../data/users/README.md).
diff --git a/17/umbraco-cms/fundamentals/backoffice/settings-dashboards.md b/17/umbraco-cms/fundamentals/backoffice/settings-dashboards.md
new file mode 100644
index 00000000000..edfc19505c0
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/backoffice/settings-dashboards.md
@@ -0,0 +1,112 @@
+---
+description: >-
+ A guide displaying the options available in the Settings section in Umbraco
+ CMS backoffice.
+---
+
+# Settings Dashboards
+
+The **Settings** section of the Umbraco backoffice has its own set of default dashboards. In this article, you can get an overview of each dashboard available in the **Settings** section:
+
+
Welcome
+
+The Welcome dashboard is the first dashboard in the Settings section. Like all dashboards, it has a customizable view and links to different resources for developing your Umbraco website.
+
+For more information about creating custom dashboards, see the [Dashboards](../../customizing/extending-overview/extension-types/dashboard.md) article.
+
+Examine Management
+
+The Examine Management dashboard provides an overview of the Examine functionality available directly within the Umbraco backoffice. The Umbraco backoffice allows you to view details about your Examine indexes and searchers - all in one place. You can see which fields are being indexed and rebuild the indexes if there's a problem. You can also test keywords to see what results will be returned.
+
+For more information about Examine Management, see the [Examine Management](../../reference/searching/examine/examine-management.md) article.
+
+Published Status
+
+The Published Status dashboard displays the status of your site in the Published Cache Status section alongside the Content and Media nodes value. The Caches section provides three options: Memory Cache, Database Cache, and Internals.
+
+* Memory Cache - Reloads the in-memory cache by entirely reloading it from the database cache. Use it when you think that the memory cache has not been properly refreshed.
+* Database Cache - Rebuilds the database cache that is the content of the `cmsContentNu` table. Use it when reloading the Memory Cache is not enough and you think that the database cache has not been properly generated.
+* Internals - Lets you trigger a NuCache snapshots collection.
+
+{% hint style="info"%}
+As of Umbraco 15 `IPublishedSnapshot`, `IPublishedSnapshotAccessor`, and `SnapshotCache` are all obsolete.
+{%endhint%}
+
+Models Builder
+
+Models builder is a tool that can generate a complete set of strongly-typed published content models for Umbraco. Models are available in both controllers and views. When using the Models Builder, the content cache does not return `IPublishedContent` objects anymore but returns strongly typed models implementing `IPublishedContent`.
+
+The Models Builder dashboard displays the following information:
+
+* Details on how Models Builder is configured, that is: `InMemoryAuto`, `Nothing`, `SourceCodeAuto`, and `SourceCodeManual`.
+* Provides a button to generate models (if the models mode is `SourceCodeManual` mode only).
+* Reports the last error (if any) that would have prevented models from being properly generated.
+
+For more information about Models Builder, see the [Models Builder](../../reference/templating/modelsbuilder/) article.
+
+Health Check
+
+Health Checks are used to determine the status of your Umbraco project. It is a handy list of checks to see if your Umbraco installation is configured according to best practices. It's possible to add your custom-built health checks.
+
+For more information about Health Checks, see the [Health Check](../../extending/health-check/) articles.
+
+Profiling
+
+You can use the built-in performance profiler to assess the performance when rendering pages. To activate the profiler for a specific page rendering, add `umbDebug=true` to the querystring when requesting the page.
+
+The Profiling dashboard provides a toggle option - `Activate the profiler by default` to keep the profiler active by default for all page renderings. You can use this option without having to set `umbDebug=true` on each page request. The toggle button sets a cookie named `UMB-DEBUG` in your browser, which then activates the profiler automatically.
+
+For more information about MiniProfiler, see the [MiniProfiler](../code/debugging/#miniprofiler) section in the [Debugging](../code/debugging/) article.
+
+Telemetry Data
+
+The Telemetry Data dashboard is a consent screen that is used for collecting system and usage information from your installation. Here, you can see what type of data is being collected and even adjust the level of reporting. Currently, there are three levels available: **Minimal**, **Basic**, and **Detailed**.
+
+**Detailed** is the default option where the data sent contains:
+
+* Anonymized site ID, Umbraco version, and packages installed.
+* Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use.
+* System information: Webserver, server OS, server framework, server OS language, and database provider.
+* Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode.
+
+**Basic** contains:
+
+* Anonymized site ID, Umbraco version, and packages installed.
+
+**Minimal** contains:
+
+* Anonymized site ID only
+
+You can see the specific data being sent on each of the levels directly in the **Telemetry Data** Dashboard.
+
+Additionally, Telemetry Data also sends anonymized, analytical data on package usage in Umbraco. Having solid data on package usage is important for both package developers and the Umbraco ecosystem.
+
+For more information about Package Telemetry, see the [Package Telemetry](https://umbraco.com/blog/umbraco-92-release/) section in the Umbraco 9.2 Release Blog Post.
+
+
+
+}
+```
+
+### Adding the controller
+
+Finally, we're going to add the controller. Create a new empty class in the `/Controllers` folder (if the folder doesn't already exist, create it at the root of the website). Name it `ContactFormController` and make it inherit from `SurfaceController`. Inheriting from `SurfaceController` requires that you call its base constructor. If you are using an IDE: Integrated Development Environment, this can be done automatically.
+
+```csharp
+using Microsoft.AspNetCore.Mvc;
+using MyFirstForm.Models;
+using Umbraco.Cms.Core.Cache;
+using Umbraco.Cms.Core.Logging;
+using Umbraco.Cms.Core.Routing;
+using Umbraco.Cms.Core.Services;
+using Umbraco.Cms.Core.Web;
+using Umbraco.Cms.Infrastructure.Persistence;
+using Umbraco.Cms.Web.Website.Controllers;
+
+namespace MyFirstForm.Controllers;
+
+public class ContactFormController : SurfaceController
+{
+ public ContactFormController(
+ IUmbracoContextAccessor umbracoContextAccessor,
+ IUmbracoDatabaseFactory databaseFactory,
+ ServiceContext services,
+ AppCaches appCaches,
+ IProfilingLogger profilingLogger,
+ IPublishedUrlProvider publishedUrlProvider)
+ : base(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
+ {}
+
+ [HttpPost]
+ public IActionResult Submit(ContactFormViewModel model)
+ {
+ if (!ModelState.IsValid)
+ {
+ return CurrentUmbracoPage();
+ }
+
+ // Work with form data here
+
+ return RedirectToCurrentUmbracoPage();
+ }
+}
+```
+
+If the model state is invalid, `CurrentUmbracoPage()` will send the user back to the form. If valid, you can work with the form data, for example, sending an email to site admin and then `RedirectToCurrentUmbracoPage();`.
+
+## Adding the form to a template
+
+You can add the form to a template by rendering the partial view:
+
+```csharp
+@using MyFirstForm.Models;
+
+@{
+ Html.RenderPartial("~/Views/Partials/ContactForm.cshtml", new ContactFormViewModel());
+}
+```
+
+### More information
+
+- [Surface Controllers](../../reference/routing/surface-controllers/README.md)
+- [Custom controllers](../../reference/routing/custom-controllers.md)
+- [Routing](../../reference/routing/README.md)
diff --git a/17/umbraco-cms/fundamentals/code/debugging/README.md b/17/umbraco-cms/fundamentals/code/debugging/README.md
new file mode 100644
index 00000000000..317cc2df3dd
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/code/debugging/README.md
@@ -0,0 +1,128 @@
+# Debugging
+
+During the development of your Umbraco site you can debug and profile the code you have written to analyse and discover bottlenecks in your code.
+
+To perform proper debugging on your site you need to set your application to have debug enabled. This can be done by setting `Umbraco:CMS:Hosting:Debug="true"` for example in the `appsettings.json` file:
+
+```json
+{
+ "Umbraco": {
+ "CMS": {
+ "Hosting": {
+ "Debug": true
+ }
+ }
+ }
+}
+```
+
+{% hint style="warning" %}
+Debug should always be set to false in production.
+{% endhint %}
+
+## Tracing
+
+Tracing and trace logging are two names for the same technique. You need to configure which log messages you want to log.
+
+### Enabling Trace Logging
+
+{% hint style="warning" %}
+Do not enable trace logging in your production environment! It reveals an awful lot of (sensitive) information about your production environment.
+{% endhint %}
+
+We recommend at least logging the following namespace at minimum (Verbose) level to enable valuable trace logging. Thereby you will have information about all endpoints that have been executed.
+
+```json
+{
+ "Serilog": {
+ "MinimumLevel": {
+ "Override": {
+ "Microsoft.AspNetCore.Mvc": "Verbose"
+ }
+ }
+ }
+}
+```
+
+The logged messages can as always be monitored in the log viewer in backoffice
+
+## MiniProfiler
+
+Umbraco includes the Mini Profiler project in its core (see [https://miniprofiler.com](https://miniprofiler.com) for more details). The MiniProfiler profiles your code method calls, giving you a greater insight into code duration and query time for (for example) underlying SQL queries. It's great for tracking down performance issues in your site's implementation.
+
+### Displaying the MiniProfiler
+
+To display the profiler ensure that the configuration `Umbraco:CMS:Hosting:Debug` is set to `true` in the appSettings.json file. Thereafter you can add `?umbDebug=true` to the query string of any request.
+
+Also, ensure your template calls `@Html.RenderProfiler()` as one of the last things.
+
+See the entire handler class: LogWhenPublishedHandler.cs
+
+{% code title="LogWhenPublishedHandler.cs" overflow="wrap" lineNumbers="true" %}
+
+```csharp
+using Microsoft.Extensions.Logging;
+using Umbraco.Cms.Core.Events;
+using Umbraco.Cms.Core.Notifications;
+
+namespace MyProject;
+
+public class LogWhenPublishedHandler : INotificationHandlerSecret Page - shhshshsh!
+}
+```
+
+### Access in a Custom Class via dependency injection
+
+If we wish to subscribe to notifications on one of the services, we'd create a Composer C# class, where you will add a custom `NotificationHandler`. In this custom `NotificationHandler` we would inject the service we need into the public constructor of the class and Umbraco's. The underlying dependency injection framework will do the rest.
+
+In this example we will wire up to the ContentService 'Saved' event. We will create a new folder in the Media section whenever a new LandingPage is created in the content section to store associated media. Therefore we will need the MediaService available to create the new folder.
+
+```csharp
+public class CustomComposer : IComposer
+{
+ public void Compose(IUmbracoBuilder builder)
+ {
+ builder.AddNotificationHandlerBold
+
+You can make text in the description bold by wrapping it with `**`
+
+```md
+This is **bold**
+```
+
+Italic
+
+You can make text in the description italic by wrapping it with `*`
+
+```md
+This is *italic*
+```
+
+Links
+
+You can make links by using the syntax:
+
+```md
+[This is an absolute link](https://google.com)
+[This is a relative link](/umbraco#/media)
+```
+
+**Note**: Links will always have the`target="_blank"` set. This is currently not configurable.
+
+Images
+
+You can embed images by using this syntax:
+
+```md
+
+```
+
+Collapsible description
+
+You can make the description collapsible by using this syntax:
+
+```md
+This is displayed
+ This is hidden.
+@Model.Value("pageTitle")
+@(Model.Value
+@Model.PageTitle
+
+ @foreach (var child in Model.Children())
+ {
+
+```
+
+You can use the Query Builder in the template editor to build more advanced queries. 
+
+
+
+### More information
+
+* [Razor examples](../../reference/templating/mvc/examples.md)
+* [Querying](../../reference/templating/mvc/querying.md)
diff --git a/17/umbraco-cms/fundamentals/design/rendering-media.md b/17/umbraco-cms/fundamentals/design/rendering-media.md
new file mode 100644
index 00000000000..e339f90bf25
--- /dev/null
+++ b/17/umbraco-cms/fundamentals/design/rendering-media.md
@@ -0,0 +1,147 @@
+---
+description: "Info on rendering media items and imaging cropping"
+---
+
+# Rendering media
+
+_Templates (Views) can access items in the_ [_Media library_](../data/creating-media/) _to assist in displaying rich content like galleries_.
+
+In the following examples, we will be looking at rendering an `Image`.
+
+Image is only one of the 'types' of Media in Umbraco. The same principles apply to all Media Types. The properties available to render will be different from Media Type to Media Type. For example, a `File` will not have a Width property.
+
+## Rendering a media item
+
+A media item is not only a reference to a static file. Like content, it is a collection of fields, such as width, height, and file path. This means that accessing and rendering media in a Template is similar to rendering content.
+
+### Example 1: Accessing a Media Image IPublishedContent item based on the ID
+
+An uploaded image in the Media library is based on the Media Type `Image` which has a number of standard properties:
+
+* Name
+* Width & Height
+* Size
+* Type (based on file extension)
+* UmbracoFile (the path to the file or JSON data containing crop information)
+
+These standard properties are pre-populated and set during the upload process. For example, this means that the width and height are calculated for you.
+
+If you want to add further properties to use with your Media Item, edit the Image Media Type under **Settings**. In this example, we are going to retrieve an image from the Media section. Then we will render out an `img` tag using the URL of the media item and use the Name as the value for the `alt` attribute.
+
+{% hint style="info" %}
+The Media item in the following sample will use a sample Guid (`55240594-b265-4fc2-b1c1-feffc5cf9571`). This example is **not using Models Builder**.
+{% endhint %}
+
+```csharp
+@{
+ // The Umbraco Helper has a Media method that will retrieve a Media Item by Guid in the form of IPublishedContent. In this example, the Media Item has a Guid of 55240594-b265-4fc2-b1c1-feffc5cf9571
+
+ var mediaItem = Umbraco.Media(Guid.Parse("55240594-b265-4fc2-b1c1-feffc5cf9571"));
+
+ if (mediaItem != null)
+ {
+ // To get the URL for your media item, you use the Url method:
+ var url = mediaItem.Url();
+ // to read a property by alias
+ var imageHeight = mediaItem.Value
+ }
+}
+```
+
+But wait a second, Umbraco comes with [Models Builder](../../reference/templating/modelsbuilder/). This means that you can use strongly typed models for your media items if Models Builder is enabled (which it is by default).
+
+### Example 2: Accessing a Media Image ModelsBuilder item based on the ID
+
+As with example one, we are accessing a MediaType `image` using the same Guid assumption.
+
+```csharp
+@{
+ // Since the Image Model generated by Modelsbuilder is a compatible type to IPublishedContent we can use the 'as' operator to convert it into the ModelsBuilder Umbraco.Cms.Web.Common.PublishedModels.Image class
+ var mediaItemAsImage = Umbraco.Media(Guid.Parse("55240594-b265-4fc2-b1c1-feffc5cf9571")) as Image;
+ if (mediaItemAsImage != null)
+ {
+ // you could add this as an extension method to the Umbraco.Cms.Web.Common.PublishedModels.Image class
+ var orientationCssClass = mediaItemAsImage.UmbracoWidth > mediaItemAsImage.UmbracoHeight ? "img-landscape" : "img-portrait";
+
+
+ }
+}
+```
+
+{% hint style="info" %}
+It is always worth having null-checks around your code when retrieving media in case the conversion fails or Media() returns null. This makes your code more robust.
+{% endhint %}
+
+## Working with Video files
+
+If you upload a video file (such as `.mp4`) to the Media library, Umbraco will store it as a Video Media Type by default. Unlike images, video files won’t include properties like `umbracoWidth` or `umbracoHeight`, but you can still retrieve the media item and render it using the `