From 0ac05925bb7df64422d742359a314fff4f10ad8d Mon Sep 17 00:00:00 2001 From: BaskarMitrah Date: Mon, 23 Feb 2026 11:11:51 +0530 Subject: [PATCH] initial commit --- .github/workflows/deploy.yml | 111 ++-- .github/workflows/lint.yml | 17 + .github/workflows/stage.yml | 23 + .github/workflows/test-pull-request.yml | 89 --- .../workflows/upload-playground-samples.yml | 65 +-- dev.mjs | 39 ++ gatsby-config.js | 390 ++++++------- package.json | 50 +- .../frameworks-libraries-bundling.md | 8 +- .../{best_practices.md => best-practices.md} | 0 ...ation_guide.md => implementation-guide.md} | 2 +- .../branding-guidelines.md} | 0 .../changelog.md | 0 .../design-principles.md} | 0 .../feedback-and-messaging.md} | 0 .../introduction.md | 12 +- .../mobile-ux.md} | 0 .../resources-and-references.md} | 2 +- .../theming.md | 0 .../visual-elements.md} | 2 +- ...rand_guidelines.md => brand-guidelines.md} | 0 .../distribute/guidelines/genai/index.md | 4 +- .../general/{edge_case.md => edge-case.md} | 0 .../distribute/guidelines/general/index.md | 2 +- .../distribute/guidelines/general/listing.md | 4 +- .../distribute/guidelines/general/planning.md | 2 +- .../{user_interface.md => user-interface.md} | 4 +- .../build/distribute/guidelines/index.md | 8 +- .../distribute/guidelines/monetization.md | 4 +- .../{listing_guide.md => listing-guide.md} | 0 .../guides/build/distribute/private-dist.md | 2 +- .../guides/build/distribute/public-dist.md | 18 +- .../guides/build/distribute/rejections.md | 6 +- .../index.md | 4 +- .../submission-checklist.md} | 4 +- .../addon-project-anatomy.md | 44 +- .../changelog.md | 362 ++++++------ .../code-playground-addon-mode.md | 6 +- .../code-playground-script-mode.md | 24 +- .../code-playground-troubleshooting.md | 14 +- .../code-playground-workflow.md | 8 +- .../code-playground.md | 14 +- .../developer-journey.md | 36 +- .../hello-world.md | 22 +- .../local-development}/browser.md | 6 +- .../local-development/dev-tooling.md} | 8 +- .../local-development}/index.md | 0 .../known-issues-limitations.md} | 2 +- .../local-development/mcp-server.md} | 0 .../local-development}/vs-code.md | 0 src/pages/guides/index.md | 12 +- .../document-sandbox-constants.md | 20 +- .../guides/learn/fundamentals/terminology.md | 34 +- .../learn/fundamentals/ui-sdk-constants.md | 12 +- .../create-renditions.md} | 2 +- .../document-metadata.md} | 0 .../drag-and-drop.md} | 0 .../element-metadata.md} | 12 +- .../group-elements.md} | 4 +- .../handle-selection.md} | 16 +- src/pages/guides/learn/how-to/index.md | 83 +++ .../local-data-management.md} | 2 +- .../manage-pages.md} | 38 +- .../modal-dialogs.md} | 0 .../guides/learn/{how_to => how-to}/oauth2.md | 0 .../page-metadata.md} | 2 +- .../position-elements.md} | 4 +- .../premium-content.md} | 4 +- .../resize-elements.md} | 8 +- .../theme-locale.md} | 0 .../tutorials/grids-addon.md | 14 +- .../{how_to => how-to}/tutorials/index.md | 2 +- .../tutorials/markdown-parser-text-api.md | 6 +- .../tutorials/spectrum-workshop/index.md | 6 +- .../tutorials/spectrum-workshop/part1.md | 4 +- .../tutorials/spectrum-workshop/part2.md | 0 .../tutorials/spectrum-workshop/part3.md | 2 +- .../tutorials/stats-addon.md | 6 +- .../tutorials/using-lit-typescript.md | 0 .../use_audio.md => how-to/use-audio.md} | 0 .../use_color.md => how-to/use-color.md} | 16 +- .../use-geometry.md} | 14 +- .../use_images.md => how-to/use-images.md} | 6 +- .../use-pdf-powerpoint.md} | 0 .../use_text.md => how-to/use-text.md} | 46 +- .../use_videos.md => how-to/use-videos.md} | 0 .../user_info.md => how-to/user-info.md} | 4 +- src/pages/guides/learn/how_to/index.md | 83 --- .../architecture.md | 12 +- .../context.md | 8 +- .../document-api.md | 14 +- src/pages/guides/learn/samples.md | 16 +- src/pages/guides/support/faq.md | 10 +- src/pages/references/addonsdk/addonsdk-app.md | 14 +- .../references/addonsdk/addonsdk-instance.md | 2 +- ...app-currentUser.md => app-current-user.md} | 0 .../{app-devFlags.md => app-dev-flags.md} | 2 +- src/pages/references/addonsdk/app-document.md | 58 +- src/pages/references/addonsdk/app-oauth.md | 4 +- src/pages/references/addonsdk/app-ui.md | 18 +- src/pages/references/addonsdk/index.md | 20 +- ...tStorage.md => instance-client-storage.md} | 4 +- .../references/addonsdk/instance-manifest.md | 2 +- .../references/addonsdk/instance-runtime.md | 8 +- .../references/addonsdk/runtime-dialog.md | 2 +- src/pages/references/changelog.md | 426 +++++++------- .../document-apis/classes/Context.md | 26 +- .../document-apis/classes/Editor.md | 82 +-- .../document-apis/classes/Fonts.md | 8 +- .../document-apis/classes/Node.md | 144 ++--- .../classes/{AddOnData.md => add-on-data.md} | 0 .../{ArtboardList.md => artboard-list.md} | 46 +- .../{ArtboardNode.md => artboard-node.md} | 106 ++-- .../{AvailableFont.md => available-font.md} | 2 +- .../classes/{BaseFont.md => base-font.md} | 4 +- .../classes/{BaseNode.md => base-node.md} | 26 +- .../{BitmapImage.md => bitmap-image.md} | 2 +- .../classes/{ColorUtils.md => color-utils.md} | 14 +- ...plexShapeNode.md => complex-shape-node.md} | 142 ++--- .../document-apis/classes/context.md | 130 +++++ .../document-apis/classes/editor.md | 350 ++++++++++++ .../{EllipseNode.md => ellipse-node.md} | 144 ++--- .../{ExpressContext.md => express-context.md} | 36 +- .../{ExpressEditor.md => express-editor.md} | 108 ++-- ...xpressRootNode.md => express-root-node.md} | 32 +- ...ExpressViewport.md => express-viewport.md} | 14 +- .../{FillableNode.md => fillable-node.md} | 152 ++--- .../document-apis/classes/fonts.md | 26 + .../{GridCellNode.md => grid-cell-node.md} | 138 ++--- ...{GridLayoutNode.md => grid-layout-node.md} | 134 ++--- .../classes/{GroupNode.md => group-node.md} | 150 ++--- ...ctangleNode.md => image-rectangle-node.md} | 138 ++--- .../classes/{ItemList.md => item-list.md} | 22 +- .../classes/{LineNode.md => line-node.md} | 154 ++--- ...ntainerNode.md => media-container-node.md} | 146 ++--- ...ctangleNode.md => media-rectangle-node.md} | 138 ++--- .../document-apis/classes/node.md | 539 ++++++++++++++++++ .../classes/{PageList.md => page-list.md} | 52 +- .../classes/{PageNode.md => page-node.md} | 62 +- .../classes/{PathNode.md => path-node.md} | 152 ++--- ...OnlyItemList.md => read-only-item-list.md} | 10 +- .../{ReadOnlyMask.md => read-only-mask.md} | 46 +- .../{RectangleNode.md => rectangle-node.md} | 146 ++--- ...tedItemList.md => restricted-item-list.md} | 20 +- ...ShapeNode.md => solid-color-shape-node.md} | 134 ++--- ...el.md => standalone-text-content-model.md} | 74 +-- ...oneTextNode.md => standalone-text-node.md} | 170 +++--- .../{StrokableNode.md => strokable-node.md} | 144 ++--- ...trokeShapeNode.md => stroke-shape-node.md} | 136 ++--- ...tContentModel.md => text-content-model.md} | 48 +- ...entModel.md => text-node-content-model.md} | 80 +-- .../classes/{TextNode.md => text-node.md} | 174 +++--- ...odel.md => threaded-text-content-model.md} | 78 +-- ...eadedTextList.md => threaded-text-list.md} | 34 +- ...eadedTextNode.md => threaded-text-node.md} | 174 +++--- ...UnavailableFont.md => unavailable-font.md} | 2 +- ...ode.md => unknown-media-rectangle-node.md} | 132 ++--- .../{UnknownNode.md => unknown-node.md} | 128 ++--- .../classes/{VisualNode.md => visual-node.md} | 78 +-- .../{ArrowHeadType.md => arrow-head-type.md} | 0 .../{BlendMode.md => blend-mode.md} | 2 +- .../{EditorEvent.md => editor-event.md} | 0 .../{FillRule.md => fill-rule.md} | 0 .../{FillType.md => fill-type.md} | 0 .../{ResizeBehavior.md => resize-behavior.md} | 2 +- .../{SceneNodeType.md => scene-node-type.md} | 0 .../{StrokePosition.md => stroke-position.md} | 0 .../{StrokeType.md => stroke-type.md} | 0 .../{TextAlignment.md => text-alignment.md} | 0 .../{TextLayout.md => text-layout.md} | 0 ...extScriptStyle.md => text-script-style.md} | 0 ...ualEffectType.md => visual-effect-type.md} | 0 .../document-sandbox/document-apis/index.md | 10 +- .../document-apis/interfaces/Fill.md | 8 +- .../document-apis/interfaces/IFillableNode.md | 12 - .../interfaces/IRectangularNode.md | 26 - .../interfaces/IStrokableNode.md | 12 - .../document-apis/interfaces/Stroke.md | 8 +- ...{AreaTextLayout.md => area-text-layout.md} | 2 +- ...xtLayout.md => auto-height-text-layout.md} | 2 +- ...extLayout.md => auto-width-text-layout.md} | 2 +- ...raphStyles.md => base-paragraph-styles.md} | 6 +- ...ylesInput.md => character-styles-input.md} | 14 +- ...put.md => character-styles-range-input.md} | 30 +- ...ylesRange.md => character-styles-range.md} | 28 +- ...CharacterStyles.md => character-styles.md} | 10 +- .../{ColorFill.md => color-fill.md} | 8 +- .../document-apis/interfaces/color.md | 37 ++ ...izeOptions.md => common-resize-options.md} | 10 +- .../{ContainerNode.md => container-node.md} | 78 +-- ...Options.md => create-rendition-options.md} | 4 +- ...onResult.md => create-rendition-result.md} | 8 +- .../document-apis/interfaces/fill.md | 19 + .../interfaces/i-fillable-node.md | 12 + ...ainerNode.md => i-media-container-node.md} | 12 +- .../{INodeBounds.md => i-node-bounds.md} | 44 +- .../interfaces/i-rectangular-node.md | 26 + .../interfaces/i-strokable-node.md | 12 + ...lNodeBounds.md => i-visual-node-bounds.md} | 24 +- .../interfaces/{ListItem.md => list-item.md} | 2 +- ...leInput.md => ordered-list-style-input.md} | 4 +- ...ylesInput.md => paragraph-styles-input.md} | 8 +- ...put.md => paragraph-styles-range-input.md} | 16 +- ...ylesRange.md => paragraph-styles-range.md} | 16 +- ...ParagraphStyles.md => paragraph-styles.md} | 12 +- .../document-apis/interfaces/point.md | 17 + .../document-apis/interfaces/rect.md | 27 + ...angleGeometry.md => rectangle-geometry.md} | 0 ...yleInput.md => remove-list-style-input.md} | 2 +- ...rescale-proportional-to-height-options.md} | 8 +- ... rescale-proportional-to-width-options.md} | 8 +- ...ions.md => resize-using-height-options.md} | 8 +- ...tions.md => resize-using-width-options.md} | 8 +- ...idColorStroke.md => solid-color-stroke.md} | 10 +- .../document-apis/interfaces/stroke.md | 17 + .../{StyleRange.md => style-range.md} | 8 +- .../{TextContent.md => text-content.md} | 6 +- ...eometry.md => text-frame-area-geometry.md} | 0 .../{TextRange.md => text-range.md} | 2 +- ...Input.md => unordered-list-style-input.md} | 2 +- ...xtLayout.md => unsupported-text-layout.md} | 2 +- ...onFormat.md => create-rendition-format.md} | 0 ...Numbering.md => ordered-list-numbering.md} | 0 ...raphListType.md => paragraph-list-type.md} | 2 +- ...extStyleSource.md => text-style-source.md} | 0 .../namespaces/Constants/overview.md | 34 +- .../document-apis/overview.md | 236 ++++---- .../document-apis/type-aliases/Font.md | 2 +- .../type-aliases/ListStyleInput.md | 5 - ...ventHandler.md => editor-event-handler.md} | 0 ...{EventHandlerId.md => event-handler-id.md} | 0 .../document-apis/type-aliases/font.md | 12 + .../type-aliases/list-style-input.md | 5 + ...eredListStyle.md => ordered-list-style.md} | 2 +- .../{ResizeOptions.md => resize-options.md} | 4 +- ... solid-color-stroke-with-optional-type.md} | 2 +- ...edListStyle.md => unordered-list-style.md} | 2 +- .../references/document-sandbox/index.md | 30 +- src/pages/references/index.md | 8 +- src/pages/references/manifest/index.md | 2 +- .../references/ui-components/color-picker.md | 2 +- 241 files changed, 4907 insertions(+), 3819 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/stage.yml delete mode 100644 .github/workflows/test-pull-request.yml create mode 100644 dev.mjs rename src/pages/guides/build/design/{best_practices.md => best-practices.md} (100%) rename src/pages/guides/build/design/{implementation_guide.md => implementation-guide.md} (99%) rename src/pages/guides/build/design/{ux_guidelines/branding_guidelines.md => ux-guidelines/branding-guidelines.md} (100%) rename src/pages/guides/build/design/{ux_guidelines => ux-guidelines}/changelog.md (100%) rename src/pages/guides/build/design/{ux_guidelines/design_principles.md => ux-guidelines/design-principles.md} (100%) rename src/pages/guides/build/design/{ux_guidelines/feedback_and_messaging.md => ux-guidelines/feedback-and-messaging.md} (100%) rename src/pages/guides/build/design/{ux_guidelines => ux-guidelines}/introduction.md (67%) rename src/pages/guides/build/design/{ux_guidelines/mobile_ux.md => ux-guidelines/mobile-ux.md} (100%) rename src/pages/guides/build/design/{ux_guidelines/resources_and_references.md => ux-guidelines/resources-and-references.md} (97%) rename src/pages/guides/build/design/{ux_guidelines => ux-guidelines}/theming.md (100%) rename src/pages/guides/build/design/{ux_guidelines/visual_elements.md => ux-guidelines/visual-elements.md} (99%) rename src/pages/guides/build/distribute/guidelines/{brand_guidelines.md => brand-guidelines.md} (100%) rename src/pages/guides/build/distribute/guidelines/general/{edge_case.md => edge-case.md} (100%) rename src/pages/guides/build/distribute/guidelines/general/{user_interface.md => user-interface.md} (97%) rename src/pages/guides/build/distribute/{listing_guide.md => listing-guide.md} (100%) rename src/pages/guides/build/distribute/{review_process => review-process}/index.md (94%) rename src/pages/guides/build/distribute/{review_process/submission_checklist.md => review-process/submission-checklist.md} (92%) rename src/pages/guides/{getting_started => getting-started}/addon-project-anatomy.md (94%) rename src/pages/guides/{getting_started => getting-started}/changelog.md (75%) rename src/pages/guides/{getting_started => getting-started}/code-playground-addon-mode.md (96%) rename src/pages/guides/{getting_started => getting-started}/code-playground-script-mode.md (81%) rename src/pages/guides/{getting_started => getting-started}/code-playground-troubleshooting.md (90%) rename src/pages/guides/{getting_started => getting-started}/code-playground-workflow.md (96%) rename src/pages/guides/{getting_started => getting-started}/code-playground.md (90%) rename src/pages/guides/{getting_started => getting-started}/developer-journey.md (84%) rename src/pages/guides/{getting_started => getting-started}/hello-world.md (89%) rename src/pages/guides/{getting_started/local_development => getting-started/local-development}/browser.md (92%) rename src/pages/guides/{getting_started/local_development/dev_tooling.md => getting-started/local-development/dev-tooling.md} (97%) rename src/pages/guides/{getting_started/local_development => getting-started/local-development}/index.md (100%) rename src/pages/guides/{getting_started/local_development/known_issues_limitations.md => getting-started/local-development/known-issues-limitations.md} (97%) rename src/pages/guides/{getting_started/local_development/mcp_server.md => getting-started/local-development/mcp-server.md} (100%) rename src/pages/guides/{getting_started/local_development => getting-started/local-development}/vs-code.md (100%) rename src/pages/guides/learn/{how_to/create_renditions.md => how-to/create-renditions.md} (99%) rename src/pages/guides/learn/{how_to/document_metadata.md => how-to/document-metadata.md} (100%) rename src/pages/guides/learn/{how_to/drag_and_drop.md => how-to/drag-and-drop.md} (100%) rename src/pages/guides/learn/{how_to/element_metadata.md => how-to/element-metadata.md} (93%) rename src/pages/guides/learn/{how_to/group_elements.md => how-to/group-elements.md} (98%) rename src/pages/guides/learn/{how_to/handle_selection.md => how-to/handle-selection.md} (98%) create mode 100644 src/pages/guides/learn/how-to/index.md rename src/pages/guides/learn/{how_to/local_data_management.md => how-to/local-data-management.md} (95%) rename src/pages/guides/learn/{how_to/manage_pages.md => how-to/manage-pages.md} (93%) rename src/pages/guides/learn/{how_to/modal_dialogs.md => how-to/modal-dialogs.md} (100%) rename src/pages/guides/learn/{how_to => how-to}/oauth2.md (100%) rename src/pages/guides/learn/{how_to/page_metadata.md => how-to/page-metadata.md} (97%) rename src/pages/guides/learn/{how_to/position_elements.md => how-to/position-elements.md} (97%) rename src/pages/guides/learn/{how_to/premium_content.md => how-to/premium-content.md} (91%) rename src/pages/guides/learn/{how_to/resize_elements.md => how-to/resize-elements.md} (98%) rename src/pages/guides/learn/{how_to/theme_locale.md => how-to/theme-locale.md} (100%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/grids-addon.md (99%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/index.md (96%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/markdown-parser-text-api.md (99%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/spectrum-workshop/index.md (95%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/spectrum-workshop/part1.md (98%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/spectrum-workshop/part2.md (100%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/spectrum-workshop/part3.md (97%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/stats-addon.md (99%) rename src/pages/guides/learn/{how_to => how-to}/tutorials/using-lit-typescript.md (100%) rename src/pages/guides/learn/{how_to/use_audio.md => how-to/use-audio.md} (100%) rename src/pages/guides/learn/{how_to/use_color.md => how-to/use-color.md} (89%) rename src/pages/guides/learn/{how_to/use_geometry.md => how-to/use-geometry.md} (87%) rename src/pages/guides/learn/{how_to/use_images.md => how-to/use-images.md} (97%) rename src/pages/guides/learn/{how_to/use_pdf_powerpoint.md => how-to/use-pdf-powerpoint.md} (100%) rename src/pages/guides/learn/{how_to/use_text.md => how-to/use-text.md} (89%) rename src/pages/guides/learn/{how_to/use_videos.md => how-to/use-videos.md} (100%) rename src/pages/guides/learn/{how_to/user_info.md => how-to/user-info.md} (95%) delete mode 100644 src/pages/guides/learn/how_to/index.md rename src/pages/guides/learn/{platform_concepts => platform-concepts}/architecture.md (98%) rename src/pages/guides/learn/{platform_concepts => platform-concepts}/context.md (98%) rename src/pages/guides/learn/{platform_concepts => platform-concepts}/document-api.md (98%) rename src/pages/references/addonsdk/{app-currentUser.md => app-current-user.md} (100%) rename src/pages/references/addonsdk/{app-devFlags.md => app-dev-flags.md} (92%) rename src/pages/references/addonsdk/{instance-clientStorage.md => instance-client-storage.md} (97%) rename src/pages/references/document-sandbox/document-apis/classes/{AddOnData.md => add-on-data.md} (100%) rename src/pages/references/document-sandbox/document-apis/classes/{ArtboardList.md => artboard-list.md} (67%) rename src/pages/references/document-sandbox/document-apis/classes/{ArtboardNode.md => artboard-node.md} (66%) rename src/pages/references/document-sandbox/document-apis/classes/{AvailableFont.md => available-font.md} (96%) rename src/pages/references/document-sandbox/document-apis/classes/{BaseFont.md => base-font.md} (90%) rename src/pages/references/document-sandbox/document-apis/classes/{BaseNode.md => base-node.md} (76%) rename src/pages/references/document-sandbox/document-apis/classes/{BitmapImage.md => bitmap-image.md} (88%) rename src/pages/references/document-sandbox/document-apis/classes/{ColorUtils.md => color-utils.md} (84%) rename src/pages/references/document-sandbox/document-apis/classes/{ComplexShapeNode.md => complex-shape-node.md} (72%) create mode 100644 src/pages/references/document-sandbox/document-apis/classes/context.md create mode 100644 src/pages/references/document-sandbox/document-apis/classes/editor.md rename src/pages/references/document-sandbox/document-apis/classes/{EllipseNode.md => ellipse-node.md} (73%) rename src/pages/references/document-sandbox/document-apis/classes/{ExpressContext.md => express-context.md} (75%) rename src/pages/references/document-sandbox/document-apis/classes/{ExpressEditor.md => express-editor.md} (74%) rename src/pages/references/document-sandbox/document-apis/classes/{ExpressRootNode.md => express-root-node.md} (70%) rename src/pages/references/document-sandbox/document-apis/classes/{ExpressViewport.md => express-viewport.md} (59%) rename src/pages/references/document-sandbox/document-apis/classes/{FillableNode.md => fillable-node.md} (71%) create mode 100644 src/pages/references/document-sandbox/document-apis/classes/fonts.md rename src/pages/references/document-sandbox/document-apis/classes/{GridCellNode.md => grid-cell-node.md} (74%) rename src/pages/references/document-sandbox/document-apis/classes/{GridLayoutNode.md => grid-layout-node.md} (75%) rename src/pages/references/document-sandbox/document-apis/classes/{GroupNode.md => group-node.md} (72%) rename src/pages/references/document-sandbox/document-apis/classes/{ImageRectangleNode.md => image-rectangle-node.md} (75%) rename src/pages/references/document-sandbox/document-apis/classes/{ItemList.md => item-list.md} (83%) rename src/pages/references/document-sandbox/document-apis/classes/{LineNode.md => line-node.md} (74%) rename src/pages/references/document-sandbox/document-apis/classes/{MediaContainerNode.md => media-container-node.md} (73%) rename src/pages/references/document-sandbox/document-apis/classes/{MediaRectangleNode.md => media-rectangle-node.md} (74%) create mode 100644 src/pages/references/document-sandbox/document-apis/classes/node.md rename src/pages/references/document-sandbox/document-apis/classes/{PageList.md => page-list.md} (63%) rename src/pages/references/document-sandbox/document-apis/classes/{PageNode.md => page-node.md} (75%) rename src/pages/references/document-sandbox/document-apis/classes/{PathNode.md => path-node.md} (72%) rename src/pages/references/document-sandbox/document-apis/classes/{ReadOnlyItemList.md => read-only-item-list.md} (84%) rename src/pages/references/document-sandbox/document-apis/classes/{ReadOnlyMask.md => read-only-mask.md} (73%) rename src/pages/references/document-sandbox/document-apis/classes/{RectangleNode.md => rectangle-node.md} (76%) rename src/pages/references/document-sandbox/document-apis/classes/{RestrictedItemList.md => restricted-item-list.md} (82%) rename src/pages/references/document-sandbox/document-apis/classes/{SolidColorShapeNode.md => solid-color-shape-node.md} (74%) rename src/pages/references/document-sandbox/document-apis/classes/{StandaloneTextContentModel.md => standalone-text-content-model.md} (71%) rename src/pages/references/document-sandbox/document-apis/classes/{StandaloneTextNode.md => standalone-text-node.md} (72%) rename src/pages/references/document-sandbox/document-apis/classes/{StrokableNode.md => strokable-node.md} (73%) rename src/pages/references/document-sandbox/document-apis/classes/{StrokeShapeNode.md => stroke-shape-node.md} (73%) rename src/pages/references/document-sandbox/document-apis/classes/{TextContentModel.md => text-content-model.md} (79%) rename src/pages/references/document-sandbox/document-apis/classes/{TextNodeContentModel.md => text-node-content-model.md} (71%) rename src/pages/references/document-sandbox/document-apis/classes/{TextNode.md => text-node.md} (71%) rename src/pages/references/document-sandbox/document-apis/classes/{ThreadedTextContentModel.md => threaded-text-content-model.md} (70%) rename src/pages/references/document-sandbox/document-apis/classes/{ThreadedTextList.md => threaded-text-list.md} (61%) rename src/pages/references/document-sandbox/document-apis/classes/{ThreadedTextNode.md => threaded-text-node.md} (72%) rename src/pages/references/document-sandbox/document-apis/classes/{UnavailableFont.md => unavailable-font.md} (95%) rename src/pages/references/document-sandbox/document-apis/classes/{UnknownMediaRectangleNode.md => unknown-media-rectangle-node.md} (74%) rename src/pages/references/document-sandbox/document-apis/classes/{UnknownNode.md => unknown-node.md} (75%) rename src/pages/references/document-sandbox/document-apis/classes/{VisualNode.md => visual-node.md} (75%) rename src/pages/references/document-sandbox/document-apis/enumerations/{ArrowHeadType.md => arrow-head-type.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{BlendMode.md => blend-mode.md} (96%) rename src/pages/references/document-sandbox/document-apis/enumerations/{EditorEvent.md => editor-event.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{FillRule.md => fill-rule.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{FillType.md => fill-type.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{ResizeBehavior.md => resize-behavior.md} (98%) rename src/pages/references/document-sandbox/document-apis/enumerations/{SceneNodeType.md => scene-node-type.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{StrokePosition.md => stroke-position.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{StrokeType.md => stroke-type.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{TextAlignment.md => text-alignment.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{TextLayout.md => text-layout.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{TextScriptStyle.md => text-script-style.md} (100%) rename src/pages/references/document-sandbox/document-apis/enumerations/{VisualEffectType.md => visual-effect-type.md} (100%) delete mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/IFillableNode.md delete mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/IRectangularNode.md delete mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/IStrokableNode.md rename src/pages/references/document-sandbox/document-apis/interfaces/{AreaTextLayout.md => area-text-layout.md} (89%) rename src/pages/references/document-sandbox/document-apis/interfaces/{AutoHeightTextLayout.md => auto-height-text-layout.md} (82%) rename src/pages/references/document-sandbox/document-apis/interfaces/{AutoWidthTextLayout.md => auto-width-text-layout.md} (82%) rename src/pages/references/document-sandbox/document-apis/interfaces/{BaseParagraphStyles.md => base-paragraph-styles.md} (84%) rename src/pages/references/document-sandbox/document-apis/interfaces/{CharacterStylesInput.md => character-styles-input.md} (74%) rename src/pages/references/document-sandbox/document-apis/interfaces/{CharacterStylesRangeInput.md => character-styles-range-input.md} (56%) rename src/pages/references/document-sandbox/document-apis/interfaces/{CharacterStylesRange.md => character-styles-range.md} (58%) rename src/pages/references/document-sandbox/document-apis/interfaces/{CharacterStyles.md => character-styles.md} (82%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ColorFill.md => color-fill.md} (63%) create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/color.md rename src/pages/references/document-sandbox/document-apis/interfaces/{CommonResizeOptions.md => common-resize-options.md} (70%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ContainerNode.md => container-node.md} (73%) rename src/pages/references/document-sandbox/document-apis/interfaces/{CreateRenditionOptions.md => create-rendition-options.md} (89%) rename src/pages/references/document-sandbox/document-apis/interfaces/{CreateRenditionResult.md => create-rendition-result.md} (75%) create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/fill.md create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/i-fillable-node.md rename src/pages/references/document-sandbox/document-apis/interfaces/{IMediaContainerNode.md => i-media-container-node.md} (73%) rename src/pages/references/document-sandbox/document-apis/interfaces/{INodeBounds.md => i-node-bounds.md} (70%) create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/i-rectangular-node.md create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/i-strokable-node.md rename src/pages/references/document-sandbox/document-apis/interfaces/{IVisualNodeBounds.md => i-visual-node-bounds.md} (72%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ListItem.md => list-item.md} (65%) rename src/pages/references/document-sandbox/document-apis/interfaces/{OrderedListStyleInput.md => ordered-list-style-input.md} (88%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ParagraphStylesInput.md => paragraph-styles-input.md} (76%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ParagraphStylesRangeInput.md => paragraph-styles-range-input.md} (66%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ParagraphStylesRange.md => paragraph-styles-range.md} (62%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ParagraphStyles.md => paragraph-styles.md} (66%) create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/point.md create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/rect.md rename src/pages/references/document-sandbox/document-apis/interfaces/{RectangleGeometry.md => rectangle-geometry.md} (100%) rename src/pages/references/document-sandbox/document-apis/interfaces/{RemoveListStyleInput.md => remove-list-style-input.md} (82%) rename src/pages/references/document-sandbox/document-apis/interfaces/{RescaleProportionalToHeightOptions.md => rescale-proportional-to-height-options.md} (77%) rename src/pages/references/document-sandbox/document-apis/interfaces/{RescaleProportionalToWidthOptions.md => rescale-proportional-to-width-options.md} (77%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ResizeUsingHeightOptions.md => resize-using-height-options.md} (74%) rename src/pages/references/document-sandbox/document-apis/interfaces/{ResizeUsingWidthOptions.md => resize-using-width-options.md} (74%) rename src/pages/references/document-sandbox/document-apis/interfaces/{SolidColorStroke.md => solid-color-stroke.md} (81%) create mode 100644 src/pages/references/document-sandbox/document-apis/interfaces/stroke.md rename src/pages/references/document-sandbox/document-apis/interfaces/{StyleRange.md => style-range.md} (67%) rename src/pages/references/document-sandbox/document-apis/interfaces/{TextContent.md => text-content.md} (80%) rename src/pages/references/document-sandbox/document-apis/interfaces/{TextFrameAreaGeometry.md => text-frame-area-geometry.md} (100%) rename src/pages/references/document-sandbox/document-apis/interfaces/{TextRange.md => text-range.md} (63%) rename src/pages/references/document-sandbox/document-apis/interfaces/{UnorderedListStyleInput.md => unordered-list-style-input.md} (90%) rename src/pages/references/document-sandbox/document-apis/interfaces/{UnsupportedTextLayout.md => unsupported-text-layout.md} (63%) rename src/pages/references/document-sandbox/document-apis/namespaces/Constants/enumerations/{CreateRenditionFormat.md => create-rendition-format.md} (100%) rename src/pages/references/document-sandbox/document-apis/namespaces/Constants/enumerations/{OrderedListNumbering.md => ordered-list-numbering.md} (100%) rename src/pages/references/document-sandbox/document-apis/namespaces/Constants/enumerations/{ParagraphListType.md => paragraph-list-type.md} (74%) rename src/pages/references/document-sandbox/document-apis/namespaces/Constants/enumerations/{TextStyleSource.md => text-style-source.md} (100%) delete mode 100644 src/pages/references/document-sandbox/document-apis/type-aliases/ListStyleInput.md rename src/pages/references/document-sandbox/document-apis/type-aliases/{EditorEventHandler.md => editor-event-handler.md} (100%) rename src/pages/references/document-sandbox/document-apis/type-aliases/{EventHandlerId.md => event-handler-id.md} (100%) create mode 100644 src/pages/references/document-sandbox/document-apis/type-aliases/font.md create mode 100644 src/pages/references/document-sandbox/document-apis/type-aliases/list-style-input.md rename src/pages/references/document-sandbox/document-apis/type-aliases/{OrderedListStyle.md => ordered-list-style.md} (83%) rename src/pages/references/document-sandbox/document-apis/type-aliases/{ResizeOptions.md => resize-options.md} (70%) rename src/pages/references/document-sandbox/document-apis/type-aliases/{SolidColorStrokeWithOptionalType.md => solid-color-stroke-with-optional-type.md} (62%) rename src/pages/references/document-sandbox/document-apis/type-aliases/{UnorderedListStyle.md => unordered-list-style.md} (81%) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8b252044b..b7799b214 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,80 +1,33 @@ --- - name: Deployment - on: - workflow_dispatch: - inputs: - env: - description: "Deploy to (dev|prod|dev prod)" - required: true - type: string - default: "dev" - clean: - description: "Clean cache" - required: true - type: boolean - default: false - cleanDiskSpace: - description: "Cleans up unncessary tools" - required: true - type: boolean - default: true - excludeSubfolder: - description: "Exclude a subfolder from deletion" - required: false - type: string - default: "" - index-mode: - description: 'Type of indexing. "index" to push to Algolia, "console" for dry run.' - required: true - default: "index" - type: choice - options: - - console - - index - jobs: - deployment: - name: Deployment - uses: AdobeDocs/adp-devsite-workflow/.github/workflows/gatsby-deploy.yml@main - secrets: inherit - with: - env: ${{ inputs.env }} - clean: ${{ inputs.clean }} - clean-disk-space: ${{ inputs.cleanDiskSpace }} - excludeSubfolder: ${{ inputs.excludeSubfolder }} - index-mode: ${{ inputs.index-mode }} - NODE_OPTIONS: "--max_old_space_size=7000" - IMS_BASE_URL_STAGE: "https://ims-na1-stg1.adobelogin.com" - FFC_BASE_URL_STAGE: "https://ffc-addon-stage.adobe.io/" - GATSBY_EXPRESS_URL_STAGE: "https://stage.projectx.corp.adobe.com/new" - IMS_BASE_URL_PROD: "https://ims-na1.adobelogin.com" - FFC_BASE_URL_PROD: "https://ffc-addon.adobe.io/" - GATSBY_EXPRESS_URL_PROD: "https://express.adobe.com/new" - - upload-playground-samples: - name: Upload Playground Samples - needs: deployment - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node v20 for Yarn v3 - uses: actions/setup-node@v3 - with: - node-version: "20.19.5" # Current LTS version - - - name: Enable Corepack for Yarn v3 - run: corepack enable - - - name: Install Dependencies - run: yarn install - - - name: Upload playground samples - run: node upload-playground-samples.mjs - env: - IMS_BASE_URL: ${{ inputs.env == 'prod' && 'https://ims-na1.adobelogin.com' || 'https://ims-na1-stg1.adobelogin.com' }} - FFC_BASE_URL: ${{ inputs.env == 'prod' && 'https://ffc-addon.adobe.io/' || 'https://ffc-addon-stage.adobe.io/' }} - PLAYGROUND_CLIENT_ID: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_CLIENT_ID || secrets.PLAYGROUND_CLIENT_ID_STAGE }} - PLAYGROUND_CLIENT_SECRET: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_CLIENT_SECRET || secrets.PLAYGROUND_CLIENT_SECRET_STAGE }} - PLAYGROUND_AUTH_CODE: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_AUTH_CODE || secrets.PLAYGROUND_AUTH_CODE_STAGE }} - PLAYGROUND_API_KEY: ${{ secrets.PLAYGROUND_API_KEY }} \ No newline at end of file +name: Deployment +on: + push: + branches: + - main + workflow_dispatch: + inputs: + env: + description: "Select environment to deploy to" + type: choice + required: true + default: "prod" + options: + - "prod" + - "stage & prod" + baseSha: + description: "Use base SHA commit to deploy from (empty string defaults to last commit before HEAD)" + type: string + required: false + default: "" + deployAll: + description: "Force deploy all files" + type: boolean + default: false +jobs: + deployment: + name: Deployment + uses: AdobeDocs/adp-devsite-workflow/.github/workflows/deploy.yml@main + with: + env: ${{ inputs.env || 'prod' }} + baseSha: ${{ inputs.baseSha || '' }} + deployAll: ${{ inputs.deployAll || true }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000..df9363442 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,17 @@ +--- +name: Lint +on: + pull_request: + branches: [main] + paths: + - 'src/pages/**' + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Lint + run: npx --yes github:AdobeDocs/adp-devsite-utils runLint -v \ No newline at end of file diff --git a/.github/workflows/stage.yml b/.github/workflows/stage.yml new file mode 100644 index 000000000..2e9f91d1b --- /dev/null +++ b/.github/workflows/stage.yml @@ -0,0 +1,23 @@ +--- +name: Staging +on: + workflow_dispatch: + inputs: + baseSha: + description: "Use base SHA commit to deploy from (empty string defaults to last commit before HEAD)" + type: string + required: false + default: "" + deployAll: + description: "Force deploy all files" + type: boolean + default: false +jobs: + deployment: + name: Deployment + uses: AdobeDocs/adp-devsite-workflow/.github/workflows/deploy.yml@main + with: + env: stage + baseSha: ${{ inputs.baseSha }} + deployAll: ${{ inputs.deployAll }} + diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml deleted file mode 100644 index 257d69f19..000000000 --- a/.github/workflows/test-pull-request.yml +++ /dev/null @@ -1,89 +0,0 @@ ---- -########################### -########################### -## Pull request testing ## -########################### -########################### -name: Latest Pull Request - -# Documentation: -# - Workflow: https://help.github.com/en/articles/workflow-syntax-for-github-actions -# - SuperLinter: https://github.com/github/super-linter -# - Markdown linter: https://github.com/DavidAnson/markdownlint -# - Link validation: https://github.com/remarkjs/remark-validate-links - -###################################################### -# Start the job on a pull request to the main branch # -###################################################### -on: - pull_request: - branches: [main] - -############### -# Set the Job # -############### -jobs: - validate: - # Set the agent to run on - runs-on: ubuntu-latest - - ################## - # Load all steps # - ################## - steps: - ########################## - # Checkout the code base # - ########################## - - name: Checkout Code - uses: actions/checkout@v3 - with: - # Full git history is needed to get a proper list of changed files - # within `super-linter` - fetch-depth: 0 - - run: cat ".github/super-linter.env" >> "$GITHUB_ENV" - - ################################ - # Run Linters against code base # - ################################ - - name: Lint Code Base - # - # Use full version number to avoid cases when a next - # released version is buggy - # About slim image: https://github.com/github/super-linter#slim-image - uses: github/super-linter/slim@v4.10.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEFAULT_BRANCH: main - VALIDATE_ALL_CODEBASE: false - VALIDATE_GITHUB_ACTIONS: true - - - name: Setup Node v20 for Yarn v3 - uses: actions/setup-node@v3 - with: - node-version: "20.19.5" # Current LTS version - - - name: Enable Corepack for Yarn v3 - run: corepack enable - - - name: Install dependencies - run: yarn install - - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - tool-cache: false - android: true - dotnet: true - haskell: true - large-packages: true - docker-images: true - swap-storage: true - - - name: Check internal links - run: yarn test:links - - - name: Build site - if: ${{ success() }} - run: yarn build - env: - NODE_OPTIONS: "--max_old_space_size=8192" diff --git a/.github/workflows/upload-playground-samples.yml b/.github/workflows/upload-playground-samples.yml index 92f913093..b2c32602a 100644 --- a/.github/workflows/upload-playground-samples.yml +++ b/.github/workflows/upload-playground-samples.yml @@ -1,42 +1,33 @@ --- -name: Manual Upload Playground Samples +name: Upload playground samples + on: + push: + branches: [main] workflow_dispatch: inputs: - env: - description: "Deploy to (dev|prod)" - required: true - type: choice - options: - - dev - - prod - default: "dev" -jobs: - upload-playground-samples: - name: Upload Playground Samples - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node v20 for Yarn v3 - uses: actions/setup-node@v3 - with: - node-version: "20.19.5" # Current LTS version - - - name: Enable Corepack for Yarn v3 - run: corepack enable - - - name: Install Dependencies - run: yarn install - - - name: Upload playground samples - run: node upload-playground-samples.mjs - env: - IMS_BASE_URL: ${{ inputs.env == 'prod' && 'https://ims-na1.adobelogin.com' || 'https://ims-na1-stg1.adobelogin.com' }} - FFC_BASE_URL: ${{ inputs.env == 'prod' && 'https://ffc-addon.adobe.io/' || 'https://ffc-addon-stage.adobe.io/' }} - PLAYGROUND_CLIENT_ID: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_CLIENT_ID || secrets.PLAYGROUND_CLIENT_ID_STAGE }} - PLAYGROUND_CLIENT_SECRET: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_CLIENT_SECRET || secrets.PLAYGROUND_CLIENT_SECRET_STAGE }} - PLAYGROUND_AUTH_CODE: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_AUTH_CODE || secrets.PLAYGROUND_AUTH_CODE_STAGE }} - PLAYGROUND_API_KEY: ${{ inputs.env == 'prod' && secrets.PLAYGROUND_API_KEY || secrets.PLAYGROUND_API_KEY_STAGE }} + target_branch: + description: "Target branch to send PR to (e.g., main, stage, etc)" + type: string + required: false + default: "main" + folder_path: + description: "Folder path to read files from (defaults to src/pages)" + type: string + required: false + default: "src/pages" +jobs: + upload-playground: + name: Upload playground samples + uses: AdobeDocs/adp-devsite-workflow/.github/workflows/upload-playground.yml@main + with: + TARGET_BRANCH: ${{ inputs.target_branch || 'main' }} + FOLDER_PATH: ${{ inputs.folder_path || 'src/pages' }} + secrets: + FFC_BASE_URL: ${{ secrets.FFC_BASE_URL }} + IMS_BASE_URL: ${{ secrets.IMS_BASE_URL }} + PLAYGROUND_API_KEY: ${{ secrets.PLAYGROUND_API_KEY }} + PLAYGROUND_AUTH_CODE: ${{ secrets.PLAYGROUND_AUTH_CODE }} + PLAYGROUND_CLIENT_ID: ${{ secrets.PLAYGROUND_CLIENT_ID }} + PLAYGROUND_CLIENT_SECRET: ${{ secrets.PLAYGROUND_CLIENT_SECRET }} \ No newline at end of file diff --git a/dev.mjs b/dev.mjs new file mode 100644 index 000000000..53090e7ec --- /dev/null +++ b/dev.mjs @@ -0,0 +1,39 @@ +// content/docs +// serve static on 3001 + +import express from 'express'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import { execSync } from 'child_process'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const PORT = process.env.DEV_PORT || 3003; + +const getCurrentBranch = () => { + try { + return execSync('git branch --show-current', { encoding: 'utf8' }).trim(); + } catch (error) { + console.warn('Could not determine git branch, defaulting to "main"'); + return 'main'; + } +}; + +const currentBranch = getCurrentBranch(); +const DOCS_DIRECTORY = process.env.DIRECTORY || './src/pages'; + +const app = express(); +console.log(path.resolve(__dirname, `./${DOCS_DIRECTORY}`)); +app.use( + express.static(path.resolve(__dirname, `./${DOCS_DIRECTORY}`), { + setHeaders: (res) => { + res.setHeader('last-modified', new Date().toGMTString()); + res.setHeader('local-branch-name', currentBranch); + }, + }), +); + +app.listen(PORT, () => { + console.debug(`Docs dev server is running on port ${PORT}`); +}); \ No newline at end of file diff --git a/gatsby-config.js b/gatsby-config.js index 9b3425237..da79053ee 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -52,11 +52,11 @@ module.exports = { pages: [ { title: "currentUser", - path: "references/addonsdk/app-currentUser.md", + path: "references/addonsdk/app-current-user.md", }, { title: "devFlags", - path: "references/addonsdk/app-devFlags.md", + path: "references/addonsdk/app-dev-flags.md", }, { title: "document", @@ -78,7 +78,7 @@ module.exports = { pages: [ { title: "clientStorage", - path: "references/addonsdk/instance-clientStorage.md", + path: "references/addonsdk/instance-client-storage.md", }, { title: "manifest", @@ -120,225 +120,225 @@ module.exports = { pages: [ { title: "Classes", - path: "references/document-sandbox/document-apis/classes/Editor.md", + path: "references/document-sandbox/document-apis/classes/editor.md", pages: [ { title: "AddOnData", - path: "references/document-sandbox/document-apis/classes/AddOnData.md", + path: "references/document-sandbox/document-apis/classes/add-on-data.md", }, { title: "ArtboardList", - path: "references/document-sandbox/document-apis/classes/ArtboardList.md", + path: "references/document-sandbox/document-apis/classes/artboard-list.md", }, { title: "ArtboardNode", - path: "references/document-sandbox/document-apis/classes/ArtboardNode.md", + path: "references/document-sandbox/document-apis/classes/artboard-node.md", }, { title: "AvailableFont", - path: "references/document-sandbox/document-apis/classes/AvailableFont.md", + path: "references/document-sandbox/document-apis/classes/available-font.md", }, { title: "BaseFont", - path: "references/document-sandbox/document-apis/classes/BaseFont.md", + path: "references/document-sandbox/document-apis/classes/base-font.md", }, { title: "BaseNode", - path: "references/document-sandbox/document-apis/classes/BaseNode.md", + path: "references/document-sandbox/document-apis/classes/base-node.md", }, { title: "BitmapImage", - path: "references/document-sandbox/document-apis/classes/BitmapImage.md", + path: "references/document-sandbox/document-apis/classes/bitmap-image.md", }, { title: "ColorUtils", - path: "references/document-sandbox/document-apis/classes/ColorUtils.md", + path: "references/document-sandbox/document-apis/classes/color-utils.md", }, { title: "ComplexShapeNode", - path: "references/document-sandbox/document-apis/classes/ComplexShapeNode.md", + path: "references/document-sandbox/document-apis/classes/complex-shape-node.md", }, { title: "Context", - path: "references/document-sandbox/document-apis/classes/Context.md", + path: "references/document-sandbox/document-apis/classes/context.md", }, { title: "Editor", - path: "references/document-sandbox/document-apis/classes/Editor.md", + path: "references/document-sandbox/document-apis/classes/editor.md", }, { title: "EllipseNode", - path: "references/document-sandbox/document-apis/classes/EllipseNode.md", + path: "references/document-sandbox/document-apis/classes/ellipse-node.md", }, { title: "ExpressContext", - path: "references/document-sandbox/document-apis/classes/ExpressContext.md", + path: "references/document-sandbox/document-apis/classes/express-context.md", }, { title: "ExpressEditor", - path: "references/document-sandbox/document-apis/classes/ExpressEditor.md", + path: "references/document-sandbox/document-apis/classes/express-editor.md", }, { title: "ExpressRootNode", - path: "references/document-sandbox/document-apis/classes/ExpressRootNode.md", + path: "references/document-sandbox/document-apis/classes/express-root-node.md", }, { title: "ExpressViewport", - path: "references/document-sandbox/document-apis/classes/ExpressViewport.md", + path: "references/document-sandbox/document-apis/classes/express-viewport.md", }, { title: "FillableNode", - path: "references/document-sandbox/document-apis/classes/FillableNode.md", + path: "references/document-sandbox/document-apis/classes/fillable-node.md", }, { title: "Fonts", - path: "references/document-sandbox/document-apis/classes/Fonts.md", + path: "references/document-sandbox/document-apis/classes/fonts.md", }, { title: "GridCellNode", - path: "references/document-sandbox/document-apis/classes/GridCellNode.md", + path: "references/document-sandbox/document-apis/classes/grid-cell-node.md", }, { title: "GridLayoutNode", - path: "references/document-sandbox/document-apis/classes/GridLayoutNode.md", + path: "references/document-sandbox/document-apis/classes/grid-layout-node.md", }, { title: "GroupNode", - path: "references/document-sandbox/document-apis/classes/GroupNode.md", + path: "references/document-sandbox/document-apis/classes/group-node.md", }, { title: "ImageRectangleNode", - path: "references/document-sandbox/document-apis/classes/ImageRectangleNode.md", + path: "references/document-sandbox/document-apis/classes/image-rectangle-node.md", }, { title: "ItemList", - path: "references/document-sandbox/document-apis/classes/ItemList.md", + path: "references/document-sandbox/document-apis/classes/item-list.md", }, { title: "LineNode", - path: "references/document-sandbox/document-apis/classes/LineNode.md", + path: "references/document-sandbox/document-apis/classes/line-node.md", }, { title: "MediaContainerNode", - path: "references/document-sandbox/document-apis/classes/MediaContainerNode.md", + path: "references/document-sandbox/document-apis/classes/media-container-node.md", }, { title: "MediaRectangleNode", - path: "references/document-sandbox/document-apis/classes/MediaRectangleNode.md", + path: "references/document-sandbox/document-apis/classes/media-rectangle-node.md", }, { title: "Node", - path: "references/document-sandbox/document-apis/classes/Node.md", + path: "references/document-sandbox/document-apis/classes/node.md", }, { title: "PageList", - path: "references/document-sandbox/document-apis/classes/PageList.md", + path: "references/document-sandbox/document-apis/classes/page-list.md", }, { title: "PageNode", - path: "references/document-sandbox/document-apis/classes/PageNode.md", + path: "references/document-sandbox/document-apis/classes/page-node.md", }, { title: "PathNode", - path: "references/document-sandbox/document-apis/classes/PathNode.md", + path: "references/document-sandbox/document-apis/classes/path-node.md", }, { title: "ReadOnlyItemList", - path: "references/document-sandbox/document-apis/classes/ReadOnlyItemList.md", + path: "references/document-sandbox/document-apis/classes/read-only-item-list.md", }, { title: "ReadOnlyMask", - path: "references/document-sandbox/document-apis/classes/ReadOnlyMask.md", + path: "references/document-sandbox/document-apis/classes/read-only-mask.md", }, { title: "RectangleNode", - path: "references/document-sandbox/document-apis/classes/RectangleNode.md", + path: "references/document-sandbox/document-apis/classes/rectangle-node.md", }, { title: "RestrictedItemList", - path: "references/document-sandbox/document-apis/classes/RestrictedItemList.md", + path: "references/document-sandbox/document-apis/classes/restricted-item-list.md", }, { title: "SolidColorShapeNode", - path: "references/document-sandbox/document-apis/classes/SolidColorShapeNode.md", + path: "references/document-sandbox/document-apis/classes/solid-color-shape-node.md", }, { title: "StandaloneTextContentModel", - path: "references/document-sandbox/document-apis/classes/StandaloneTextContentModel.md", + path: "references/document-sandbox/document-apis/classes/standalone-text-content-model.md", }, { title: "StandaloneTextNode", - path: "references/document-sandbox/document-apis/classes/StandaloneTextNode.md", + path: "references/document-sandbox/document-apis/classes/standalone-text-node.md", }, { title: "StrokableNode", - path: "references/document-sandbox/document-apis/classes/StrokableNode.md", + path: "references/document-sandbox/document-apis/classes/strokable-node.md", }, { title: "StrokeShapeNode", - path: "references/document-sandbox/document-apis/classes/StrokeShapeNode.md", + path: "references/document-sandbox/document-apis/classes/stroke-shape-node.md", }, { title: "TextContentModel", - path: "references/document-sandbox/document-apis/classes/TextContentModel.md", + path: "references/document-sandbox/document-apis/classes/text-content-model.md", }, { title: "TextNode", - path: "references/document-sandbox/document-apis/classes/TextNode.md", + path: "references/document-sandbox/document-apis/classes/text-node.md", }, { title: "TextNodeContentModel", - path: "references/document-sandbox/document-apis/classes/TextNodeContentModel.md", + path: "references/document-sandbox/document-apis/classes/text-node-content-model.md", }, { title: "ThreadedTextContentModel", - path: "references/document-sandbox/document-apis/classes/ThreadedTextContentModel.md", + path: "references/document-sandbox/document-apis/classes/threaded-text-content-model.md", }, { title: "ThreadedTextList", - path: "references/document-sandbox/document-apis/classes/ThreadedTextList.md", + path: "references/document-sandbox/document-apis/classes/threaded-text-list.md", }, { title: "ThreadedTextNode", - path: "references/document-sandbox/document-apis/classes/ThreadedTextNode.md", + path: "references/document-sandbox/document-apis/classes/threaded-text-node.md", }, { title: "UnavailableFont", - path: "references/document-sandbox/document-apis/classes/UnavailableFont.md", + path: "references/document-sandbox/document-apis/classes/unavailable-font.md", }, { title: "UnknownMediaRectangleNode", - path: "references/document-sandbox/document-apis/classes/UnknownMediaRectangleNode.md", + path: "references/document-sandbox/document-apis/classes/unknown-media-rectangle-node.md", }, { title: "UnknownNode", - path: "references/document-sandbox/document-apis/classes/UnknownNode.md", + path: "references/document-sandbox/document-apis/classes/unknown-node.md", }, { title: "VisualNode", - path: "references/document-sandbox/document-apis/classes/VisualNode.md", + path: "references/document-sandbox/document-apis/classes/visual-node.md", }, ], }, { title: "Interfaces", - path: "references/document-sandbox/document-apis/interfaces/AreaTextLayout.md", + path: "references/document-sandbox/document-apis/interfaces/area-text-layout.md", pages: [ { title: "AreaTextLayout", - path: "references/document-sandbox/document-apis/interfaces/AreaTextLayout.md", + path: "references/document-sandbox/document-apis/interfaces/area-text-layout.md", }, { title: "AutoHeightTextLayout", - path: "references/document-sandbox/document-apis/interfaces/AutoHeightTextLayout.md", + path: "references/document-sandbox/document-apis/interfaces/auto-height-text-layout.md", }, { title: "AutoWidthTextLayout", - path: "references/document-sandbox/document-apis/interfaces/AutoWidthTextLayout.md", + path: "references/document-sandbox/document-apis/interfaces/auto-width-text-layout.md", }, { title: "BaseParagraphStyles", - path: "references/document-sandbox/document-apis/interfaces/BaseParagraphStyles.md", + path: "references/document-sandbox/document-apis/interfaces/base-paragraph-styles.md", }, // { // title: "BitmapImage", @@ -346,47 +346,47 @@ module.exports = { // }, { title: "CharacterStyles", - path: "references/document-sandbox/document-apis/interfaces/CharacterStyles.md", + path: "references/document-sandbox/document-apis/interfaces/character-styles.md", }, { title: "CharacterStylesInput", - path: "references/document-sandbox/document-apis/interfaces/CharacterStylesInput.md", + path: "references/document-sandbox/document-apis/interfaces/character-styles-input.md", }, { title: "CharacterStylesRange", - path: "references/document-sandbox/document-apis/interfaces/CharacterStylesRange.md", + path: "references/document-sandbox/document-apis/interfaces/character-styles-range.md", }, { title: "CharacterStylesRangeInput", - path: "references/document-sandbox/document-apis/interfaces/CharacterStylesRangeInput.md", + path: "references/document-sandbox/document-apis/interfaces/character-styles-range-input.md", }, { title: "Color", - path: "references/document-sandbox/document-apis/interfaces/Color.md", + path: "references/document-sandbox/document-apis/interfaces/color.md", }, { title: "ColorFill", - path: "references/document-sandbox/document-apis/interfaces/ColorFill.md", + path: "references/document-sandbox/document-apis/interfaces/color-fill.md", }, { title: "CommonResizeOptions", - path: "references/document-sandbox/document-apis/interfaces/CommonResizeOptions.md", + path: "references/document-sandbox/document-apis/interfaces/common-resize-options.md", }, { title: "ContainerNode", - path: "references/document-sandbox/document-apis/interfaces/ContainerNode.md", + path: "references/document-sandbox/document-apis/interfaces/container-node.md", }, { title: "CreateRenditionOptions", - path: "references/document-sandbox/document-apis/interfaces/CreateRenditionOptions.md", + path: "references/document-sandbox/document-apis/interfaces/create-rendition-options.md", }, { title: "CreateRenditionResult", - path: "references/document-sandbox/document-apis/interfaces/CreateRenditionResult.md", + path: "references/document-sandbox/document-apis/interfaces/create-rendition-result.md", }, { title: "Fill", - path: "references/document-sandbox/document-apis/interfaces/Fill.md", + path: "references/document-sandbox/document-apis/interfaces/fill.md", }, // { // "title": "FillTypeValueExtensibleEnum", @@ -394,227 +394,227 @@ module.exports = { // }, { title: "IFillableNode", - path: "references/document-sandbox/document-apis/interfaces/IFillableNode.md", + path: "references/document-sandbox/document-apis/interfaces/i-fillable-node.md", }, { title: "IMediaContainerNode", - path: "references/document-sandbox/document-apis/interfaces/IMediaContainerNode.md", + path: "references/document-sandbox/document-apis/interfaces/i-media-container-node.md", }, { title: "INodeBounds", - path: "references/document-sandbox/document-apis/interfaces/INodeBounds.md", + path: "references/document-sandbox/document-apis/interfaces/i-node-bounds.md", }, { title: "IRectangularNode", - path: "references/document-sandbox/document-apis/interfaces/IRectangularNode.md", + path: "references/document-sandbox/document-apis/interfaces/i-rectangular-node.md", }, { title: "IStrokableNode", - path: "references/document-sandbox/document-apis/interfaces/IStrokableNode.md", + path: "references/document-sandbox/document-apis/interfaces/i-strokable-node.md", }, { title: "IVisualNodeBounds", - path: "references/document-sandbox/document-apis/interfaces/IVisualNodeBounds.md", + path: "references/document-sandbox/document-apis/interfaces/i-visual-node-bounds.md", }, { title: "ListItem", - path: "references/document-sandbox/document-apis/interfaces/ListItem.md", + path: "references/document-sandbox/document-apis/interfaces/list-item.md", }, { title: "OrderedListStyleInput", - path: "references/document-sandbox/document-apis/interfaces/OrderedListStyleInput.md", + path: "references/document-sandbox/document-apis/interfaces/ordered-list-style-input.md", }, { title: "ParagraphStyles", - path: "references/document-sandbox/document-apis/interfaces/ParagraphStyles.md", + path: "references/document-sandbox/document-apis/interfaces/paragraph-styles.md", }, { title: "ParagraphStylesInput", - path: "references/document-sandbox/document-apis/interfaces/ParagraphStylesInput.md", + path: "references/document-sandbox/document-apis/interfaces/paragraph-styles-input.md", }, { title: "ParagraphStylesRange", - path: "references/document-sandbox/document-apis/interfaces/ParagraphStylesRange.md", + path: "references/document-sandbox/document-apis/interfaces/paragraph-styles-range.md", }, { title: "ParagraphStylesRangeInput", - path: "references/document-sandbox/document-apis/interfaces/ParagraphStylesRangeInput.md", + path: "references/document-sandbox/document-apis/interfaces/paragraph-styles-range-input.md", }, { title: "Point", - path: "references/document-sandbox/document-apis/interfaces/Point.md", + path: "references/document-sandbox/document-apis/interfaces/point.md", }, { title: "Rect", - path: "references/document-sandbox/document-apis/interfaces/Rect.md", + path: "references/document-sandbox/document-apis/interfaces/rect.md", }, { title: "RectangleGeometry", - path: "references/document-sandbox/document-apis/interfaces/RectangleGeometry.md", + path: "references/document-sandbox/document-apis/interfaces/rectangle-geometry.md", }, { title: "RemoveListStyleInput", - path: "references/document-sandbox/document-apis/interfaces/RemoveListStyleInput.md", + path: "references/document-sandbox/document-apis/interfaces/remove-list-style-input.md", }, { title: "RescaleProportionalToHeightOptions", - path: "references/document-sandbox/document-apis/interfaces/RescaleProportionalToHeightOptions.md", + path: "references/document-sandbox/document-apis/interfaces/rescale-proportional-to-height-options.md", }, { title: "RescaleProportionalToWidthOptions", - path: "references/document-sandbox/document-apis/interfaces/RescaleProportionalToWidthOptions.md", + path: "references/document-sandbox/document-apis/interfaces/rescale-proportional-to-width-options.md", }, { title: "ResizeUsingHeightOptions", - path: "references/document-sandbox/document-apis/interfaces/ResizeUsingHeightOptions.md", + path: "references/document-sandbox/document-apis/interfaces/resize-using-height-options.md", }, { title: "ResizeUsingWidthOptions", - path: "references/document-sandbox/document-apis/interfaces/ResizeUsingWidthOptions.md", + path: "references/document-sandbox/document-apis/interfaces/resize-using-width-options.md", }, { title: "SolidColorStroke", - path: "references/document-sandbox/document-apis/interfaces/SolidColorStroke.md", + path: "references/document-sandbox/document-apis/interfaces/solid-color-stroke.md", }, { title: "Stroke", - path: "references/document-sandbox/document-apis/interfaces/Stroke.md", + path: "references/document-sandbox/document-apis/interfaces/stroke.md", }, { title: "StyleRange", - path: "references/document-sandbox/document-apis/interfaces/StyleRange.md", + path: "references/document-sandbox/document-apis/interfaces/style-range.md", }, { title: "TextContent", - path: "references/document-sandbox/document-apis/interfaces/TextContent.md", + path: "references/document-sandbox/document-apis/interfaces/text-content.md", }, { title: "TextFrameAreaGeometry", - path: "references/document-sandbox/document-apis/interfaces/TextFrameAreaGeometry.md", + path: "references/document-sandbox/document-apis/interfaces/text-frame-area-geometry.md", }, { title: "TextRange", - path: "references/document-sandbox/document-apis/interfaces/TextRange.md", + path: "references/document-sandbox/document-apis/interfaces/text-range.md", }, { title: "UnorderedListStyleInput", - path: "references/document-sandbox/document-apis/interfaces/UnorderedListStyleInput.md", + path: "references/document-sandbox/document-apis/interfaces/unordered-list-style-input.md", }, { title: "UnsupportedTextLayout", - path: "references/document-sandbox/document-apis/interfaces/UnsupportedTextLayout.md", + path: "references/document-sandbox/document-apis/interfaces/unsupported-text-layout.md", }, ], }, { title: "Constants", - path: "references/document-sandbox/document-apis/enumerations/ArrowHeadType.md", + path: "references/document-sandbox/document-apis/enumerations/arrow-head-type.md", pages: [ { title: "ArrowHeadType", - path: "references/document-sandbox/document-apis/enumerations/ArrowHeadType.md", + path: "references/document-sandbox/document-apis/enumerations/arrow-head-type.md", }, { title: "BlendMode", - path: "references/document-sandbox/document-apis/enumerations/BlendMode.md", + path: "references/document-sandbox/document-apis/enumerations/blend-mode.md", }, { title: "CreateRenditionFormat", - path: "references/document-sandbox/document-apis/namespaces/Constants/enumerations/CreateRenditionFormat.md", + path: "references/document-sandbox/document-apis/namespaces/constants/enumerations/create-rendition-format.md", }, { title: "EditorEvent", - path: "references/document-sandbox/document-apis/enumerations/EditorEvent.md", + path: "references/document-sandbox/document-apis/enumerations/editor-event.md", }, { title: "FillRule", - path: "references/document-sandbox/document-apis/enumerations/FillRule.md", + path: "references/document-sandbox/document-apis/enumerations/fill-rule.md", }, { title: "FillType", - path: "references/document-sandbox/document-apis/enumerations/FillType.md", + path: "references/document-sandbox/document-apis/enumerations/fill-type.md", }, { title: "ResizeBehavior", - path: "references/document-sandbox/document-apis/enumerations/ResizeBehavior.md", + path: "references/document-sandbox/document-apis/enumerations/resize-behavior.md", }, { title: "OrderedListNumbering", - path: "references/document-sandbox/document-apis/namespaces/Constants/enumerations/OrderedListNumbering.md", + path: "references/document-sandbox/document-apis/namespaces/constants/enumerations/ordered-list-numbering.md", }, { title: "ParagraphListType", - path: "references/document-sandbox/document-apis/namespaces/Constants/enumerations/ParagraphListType.md", + path: "references/document-sandbox/document-apis/namespaces/constants/enumerations/paragraph-list-type.md", }, { title: "SceneNodeType", - path: "references/document-sandbox/document-apis/enumerations/SceneNodeType.md", + path: "references/document-sandbox/document-apis/enumerations/scene-node-type.md", }, { title: "StrokePosition", - path: "references/document-sandbox/document-apis/enumerations/StrokePosition.md", + path: "references/document-sandbox/document-apis/enumerations/stroke-position.md", }, { title: "StrokeType", - path: "references/document-sandbox/document-apis/enumerations/StrokeType.md", + path: "references/document-sandbox/document-apis/enumerations/stroke-type.md", }, { title: "TextAlignment", - path: "references/document-sandbox/document-apis/enumerations/TextAlignment.md", + path: "references/document-sandbox/document-apis/enumerations/text-alignment.md", }, { title: "TextLayout", - path: "references/document-sandbox/document-apis/enumerations/TextLayout.md", + path: "references/document-sandbox/document-apis/enumerations/text-layout.md", }, { title: "TextScriptStyle", - path: "references/document-sandbox/document-apis/enumerations/TextScriptStyle.md", + path: "references/document-sandbox/document-apis/enumerations/text-script-style.md", }, { title: "TextStyleSource", - path: "references/document-sandbox/document-apis/namespaces/Constants/enumerations/TextStyleSource.md", + path: "references/document-sandbox/document-apis/namespaces/constants/enumerations/text-style-source.md", }, { title: "VisualEffectType", - path: "references/document-sandbox/document-apis/enumerations/VisualEffectType.md", + path: "references/document-sandbox/document-apis/enumerations/visual-effect-type.md", }, ], }, { title: "Types", - path: "references/document-sandbox/document-apis/type-aliases/EditorEventHandler.md", + path: "references/document-sandbox/document-apis/type-aliases/editor-event-handler.md", pages: [ { title: "EditorEventHandler", - path: "references/document-sandbox/document-apis/type-aliases/EditorEventHandler.md", + path: "references/document-sandbox/document-apis/type-aliases/editor-event-handler.md", }, { title: "EventHandlerId", - path: "references/document-sandbox/document-apis/type-aliases/EventHandlerId.md", + path: "references/document-sandbox/document-apis/type-aliases/event-handler-id.md", }, { title: "Font", - path: "references/document-sandbox/document-apis/type-aliases/Font.md", + path: "references/document-sandbox/document-apis/type-aliases/font.md", }, { title: "ListStyleInput", - path: "references/document-sandbox/document-apis/type-aliases/ListStyleInput.md", + path: "references/document-sandbox/document-apis/type-aliases/list-style-input.md", }, { title: "OrderedListStyle", - path: "references/document-sandbox/document-apis/type-aliases/OrderedListStyle.md", + path: "references/document-sandbox/document-apis/type-aliases/ordered-list-style.md", }, { title: "ResizeOptions", - path: "references/document-sandbox/document-apis/type-aliases/ResizeOptions.md", + path: "references/document-sandbox/document-apis/type-aliases/resize-options.md", }, { title: "SolidColorStrokeWithOptionalType", - path: "references/document-sandbox/document-apis/type-aliases/SolidColorStrokeWithOptionalType.md", + path: "references/document-sandbox/document-apis/type-aliases/solid-color-stroke-with-optional-type.md", }, { title: "UnorderedListStyle", - path: "references/document-sandbox/document-apis/type-aliases/UnorderedListStyle.md", + path: "references/document-sandbox/document-apis/type-aliases/unordered-list-style.md", }, ], }, @@ -653,230 +653,230 @@ module.exports = { }, { title: "Developer Journey", - path: "guides/getting_started/developer-journey.md", + path: "guides/getting-started/developer-journey.md", }, { title: "Hello, World!", - path: "guides/getting_started/hello-world.md", + path: "guides/getting-started/hello-world.md", }, { title: "Project Anatomy", - path: "guides/getting_started/addon-project-anatomy.md", + path: "guides/getting-started/addon-project-anatomy.md", }, { title: "Code Playground", - path: "guides/getting_started/code-playground.md", + path: "guides/getting-started/code-playground.md", pages: [ { title: "Overview", - path: "guides/getting_started/code-playground.md", + path: "guides/getting-started/code-playground.md", }, { title: "Script Mode", - path: "guides/getting_started/code-playground-script-mode.md", + path: "guides/getting-started/code-playground-script-mode.md", }, { title: "Add-on Mode", - path: "guides/getting_started/code-playground-addon-mode.md", + path: "guides/getting-started/code-playground-addon-mode.md", }, { title: "Workflow & Productivity", - path: "guides/getting_started/code-playground-workflow.md", + path: "guides/getting-started/code-playground-workflow.md", }, { title: "Troubleshooting", - path: "guides/getting_started/code-playground-troubleshooting.md", + path: "guides/getting-started/code-playground-troubleshooting.md", }, ], }, { title: "Dev MCP Server", - path: "guides/getting_started/local_development/mcp_server.md", + path: "guides/getting-started/local-development/mcp-server.md", }, { title: "Local Development", - path: "guides/getting_started/local_development/dev_tooling.md", + path: "guides/getting-started/local-development/dev-tooling.md", pages: [ { title: "Development tools", - path: "guides/getting_started/local_development/dev_tooling.md", + path: "guides/getting-started/local-development/dev-tooling.md", }, { title: "Browser debugging", - path: "guides/getting_started/local_development/browser.md", + path: "guides/getting-started/local-development/browser.md", }, { title: "VS Code debugging", - path: "guides/getting_started/local_development/vs-code.md", + path: "guides/getting-started/local-development/vs-code.md", }, { title: "Known Issues & Limitations", - path: "guides/getting_started/local_development/known_issues_limitations.md", + path: "guides/getting-started/local-development/known-issues-limitations.md", }, ], }, { title: "What's new", - path: "guides/getting_started/changelog.md", + path: "guides/getting-started/changelog.md", }, ], }, { title: "Learn", - path: "guides/learn/how_to/index.md", + path: "guides/learn/how-to/index.md", header: true, pages: [ { title: "How-to", - path: "guides/learn/how_to/index.md", + path: "guides/learn/how-to/index.md", pages: [ { title: "About", - path: "guides/learn/how_to/index.md", + path: "guides/learn/how-to/index.md", }, { title: "Authentication & Authorization", - path: "guides/learn/how_to/oauth2.md", + path: "guides/learn/how-to/oauth2.md", pages: [ { title: "Use OAuth 2.0", - path: "guides/learn/how_to/oauth2.md", + path: "guides/learn/how-to/oauth2.md", }, ], }, { title: "Data & Environment", - path: "guides/learn/how_to/local_data_management.md", + path: "guides/learn/how-to/local-data-management.md", pages: [ { title: "Store Data", - path: "guides/learn/how_to/local_data_management.md", + path: "guides/learn/how-to/local-data-management.md", }, { title: "Theme & Locale", - path: "guides/learn/how_to/theme_locale.md", + path: "guides/learn/how-to/theme-locale.md", }, ], }, { title: "UI & Interaction", - path: "guides/learn/how_to/drag_and_drop.md", + path: "guides/learn/how-to/drag-and-drop.md", pages: [ { title: "Use Drag & Drop", - path: "guides/learn/how_to/drag_and_drop.md", + path: "guides/learn/how-to/drag-and-drop.md", }, { title: "Use Modal Dialogs", - path: "guides/learn/how_to/modal_dialogs.md", + path: "guides/learn/how-to/modal-dialogs.md", }, ], }, { title: "Document Structure", - path: "guides/learn/how_to/manage_pages.md", + path: "guides/learn/how-to/manage-pages.md", pages: [ { title: "Manage Pages", - path: "guides/learn/how_to/manage_pages.md", + path: "guides/learn/how-to/manage-pages.md", }, ], }, { title: "Use Design Elements", - path: "guides/learn/how_to/use_text.md", // change this!! + path: "guides/learn/how-to/use-text.md", // change this!! pages: [ { title: "Use Text", - path: "guides/learn/how_to/use_text.md", + path: "guides/learn/how-to/use-text.md", }, { title: "Use Geometry", - path: "guides/learn/how_to/use_geometry.md", + path: "guides/learn/how-to/use-geometry.md", }, { title: "Use Color", - path: "guides/learn/how_to/use_color.md", + path: "guides/learn/how-to/use-color.md", }, { title: "Use Images", - path: "guides/learn/how_to/use_images.md", + path: "guides/learn/how-to/use-images.md", }, { title: "Use Videos", - path: "guides/learn/how_to/use_videos.md", + path: "guides/learn/how-to/use-videos.md", }, { title: "Use Audio", - path: "guides/learn/how_to/use_audio.md", + path: "guides/learn/how-to/use-audio.md", }, { title: "Use PDF and PowerPoint", - path: "guides/learn/how_to/use_pdf_powerpoint.md", + path: "guides/learn/how-to/use-pdf-powerpoint.md", }, { title: "Handle Element Selection", - path: "guides/learn/how_to/handle_selection.md", + path: "guides/learn/how-to/handle-selection.md", }, { title: "Group Elements", - path: "guides/learn/how_to/group_elements.md", + path: "guides/learn/how-to/group-elements.md", }, { title: "Resize Elements", - path: "guides/learn/how_to/resize_elements.md", + path: "guides/learn/how-to/resize-elements.md", }, { title: "Position Elements", - path: "guides/learn/how_to/position_elements.md", + path: "guides/learn/how-to/position-elements.md", }, ], }, { title: "Use Metadata", - path: "guides/learn/how_to/document_metadata.md", + path: "guides/learn/how-to/document-metadata.md", pages: [ { title: "Document", - path: "guides/learn/how_to/document_metadata.md", + path: "guides/learn/how-to/document-metadata.md", }, { title: "Page", - path: "guides/learn/how_to/page_metadata.md", + path: "guides/learn/how-to/page-metadata.md", }, { title: "Element", - path: "guides/learn/how_to/element_metadata.md", + path: "guides/learn/how-to/element-metadata.md", }, ], }, { title: "Exporting & Output", - path: "guides/learn/how_to/create_renditions.md", + path: "guides/learn/how-to/create-renditions.md", pages: [ { title: "Create Renditions", - path: "guides/learn/how_to/create_renditions.md", + path: "guides/learn/how-to/create-renditions.md", }, { title: "Manage Premium Content", - path: "guides/learn/how_to/premium_content.md", + path: "guides/learn/how-to/premium-content.md", }, ], }, { title: "User Info", - path: "guides/learn/how_to/user_info.md", + path: "guides/learn/how-to/user-info.md", pages: [ { title: "Identify users", - path: "guides/learn/how_to/user_info.md", + path: "guides/learn/how-to/user-info.md", }, ], }, { title: "Complete Projects", - path: "guides/learn/how_to/tutorials/index.md", + path: "guides/learn/how-to/tutorials/index.md", pages: [ { title: "Document APIs", @@ -908,7 +908,7 @@ module.exports = { }, { title: "Using Lit & TypeScript", - path: "guides/learn/how_to/tutorials/using-lit-typescript.md", + path: "guides/learn/how-to/tutorials/using-lit-typescript.md", }, ], }, @@ -916,19 +916,19 @@ module.exports = { }, { title: "Platform Concepts", - path: "guides/learn/platform_concepts/architecture.md", + path: "guides/learn/platform-concepts/architecture.md", pages: [ { title: "Add-on Architecture", - path: "guides/learn/platform_concepts/architecture.md", + path: "guides/learn/platform-concepts/architecture.md", }, { title: "iframe Runtime Context & Security", - path: "guides/learn/platform_concepts/context.md", + path: "guides/learn/platform-concepts/context.md", }, { title: "The Document API", - path: "guides/learn/platform_concepts/document-api.md", + path: "guides/learn/platform-concepts/document-api.md", }, ], }, @@ -989,53 +989,53 @@ module.exports = { }, { title: "UX Guidelines", - path: "guides/build/design/ux_guidelines/introduction.md", + path: "guides/build/design/ux-guidelines/introduction.md", pages: [ { title: "Introduction", - path: "guides/build/design/ux_guidelines/introduction.md", + path: "guides/build/design/ux-guidelines/introduction.md", }, { title: "Design Principles", - path: "guides/build/design/ux_guidelines/design_principles.md", + path: "guides/build/design/ux-guidelines/design-principles.md", }, { title: "Theming", - path: "guides/build/design/ux_guidelines/theming.md", + path: "guides/build/design/ux-guidelines/theming.md", }, { title: "Visual Elements", - path: "guides/build/design/ux_guidelines/visual_elements.md", + path: "guides/build/design/ux-guidelines/visual-elements.md", }, { title: "Feedback & Messaging", - path: "guides/build/design/ux_guidelines/feedback_and_messaging.md", + path: "guides/build/design/ux-guidelines/feedback-and-messaging.md", }, // { // title: "Mobile UX", - // path: "guides/build/design/ux_guidelines/mobile_ux.md", + // path: "guides/build/design/ux-guidelines/mobile-ux.md", // }, { title: "Branding Guidelines & Distribution", - path: "guides/build/design/ux_guidelines/branding_guidelines.md", + path: "guides/build/design/ux-guidelines/branding-guidelines.md", }, { title: "Resources & References", - path: "guides/build/design/ux_guidelines/resources_and_references.md", + path: "guides/build/design/ux-guidelines/resources-and-references.md", }, { title: "Changelog", - path: "guides/build/design/ux_guidelines/changelog.md", + path: "guides/build/design/ux-guidelines/changelog.md", }, ], }, { title: "Implementation guide", - path: "guides/build/design/implementation_guide.md", + path: "guides/build/design/implementation-guide.md", }, { title: "Best practices", - path: "guides/build/design/best_practices.md", + path: "guides/build/design/best-practices.md", }, ], }, @@ -1077,7 +1077,7 @@ module.exports = { }, { title: "User interface", - path: "guides/build/distribute/guidelines/general/user_interface.md", + path: "guides/build/distribute/guidelines/general/user-interface.md", }, { title: "Performance", @@ -1109,13 +1109,13 @@ module.exports = { }, { title: "Edge cases", - path: "guides/build/distribute/guidelines/general/edge_case.md", + path: "guides/build/distribute/guidelines/general/edge-case.md", }, ], }, { title: "Developer brand guidelines", - path: "guides/build/distribute/guidelines/brand_guidelines.md", + path: "guides/build/distribute/guidelines/brand-guidelines.md", }, { title: "Monetization guidelines", diff --git a/package.json b/package.json index b000c2d34..7b4753a4f 100644 --- a/package.json +++ b/package.json @@ -11,44 +11,24 @@ "name": "Stephan Ringel", "url": "https://github.com/icaraps" }, - "dependencies": { - "@adobe/gatsby-theme-aio": "^4.15.1", - "dotenv": "17.2.2", - "fs-extra": "11.3.2", - "gatsby": "4.22.0", - "jszip": "3.10.1", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "resolutions": { - "sharp": "0.33.0", - "gatsby-sharp": "1.12.0" - }, "scripts": { - "start": "gatsby build && gatsby serve", - "start:prefix": "gatsby build --prefix-paths && gatsby serve --prefix-paths", - "dev": "gatsby develop", - "dev:https": "gatsby develop --https --host localhost.corp.adobe.com --port 9000", - "build": "gatsby build", - "build:deploy": "gatsby build && yarn run upload:samples", - "serve": "gatsby serve", - "clean": "gatsby clean", - "test:links": "remark src/pages --quiet --frail", - "test:lint": "./node_modules/.bin/markdownlint --config .github/linters/.markdownlint.yml src", - "fix:lint": "./node_modules/.bin/markdownlint --config .github/linters/.markdownlint.yml src --fix", - "lint": "docker run --rm -e RUN_LOCAL=true --env-file '.github/super-linter.env' -v \"$PWD\":/tmp/lint github/super-linter:slim-v4.10.1", - "upload:samples": "node upload-playground-samples.mjs" - }, - "remarkConfig": { - "plugins": [ - "remark-validate-links" - ] + "dev": "node ./dev.mjs", + "buildNavigation": "npx --yes github:AdobeDocs/adp-devsite-utils buildNavigation -v", + "buildRedirections": "npx --yes github:AdobeDocs/adp-devsite-utils buildRedirections -v", + "renameFiles": "npx --yes github:AdobeDocs/adp-devsite-utils renameFiles -v", + "normalizeLinks": "npx --yes github:AdobeDocs/adp-devsite-utils normalizeLinks -v", + "buildSiteWideBanner": "npx --yes github:AdobeDocs/adp-devsite-utils buildSiteWideBanner -v", + "lint": "npx --yes github:AdobeDocs/adp-devsite-utils runLint -v", + "lint:errorOnly": "npx --yes github:AdobeDocs/adp-devsite-utils runLint", + "lint:deadlinksonly": "npx --yes github:AdobeDocs/adp-devsite-utils runLint --dead-links-only -v", + "lint:skipdeadlinks": "npx --yes github:AdobeDocs/adp-devsite-utils runLint --skip-dead-links -v", + "redirectCheck:stage": "npx --yes github:AdobeDocs/adp-devsite-utils redirectChecker stage --verbose", + "redirectCheck:prod": "npx --yes github:AdobeDocs/adp-devsite-utils redirectChecker prod --verbose" }, "packageManager": "yarn@3.2.1", "devDependencies": { - "markdownlint": "^0.35.0", - "markdownlint-cli": "^0.41.0", - "remark-cli": "^11.0.0", - "remark-validate-links": "^12.1.0" + "express": "5.1.0", + "glob": "^13.0.0", + "string.prototype.matchall": "^4.0.12" } } diff --git a/src/pages/guides/build/advanced-topics/frameworks-libraries-bundling.md b/src/pages/guides/build/advanced-topics/frameworks-libraries-bundling.md index 4c3ae327c..5eecfe797 100644 --- a/src/pages/guides/build/advanced-topics/frameworks-libraries-bundling.md +++ b/src/pages/guides/build/advanced-topics/frameworks-libraries-bundling.md @@ -45,7 +45,7 @@ An example of how this works in Visual Studio Code is shown in this short clip b -Check out the [Using Lit & Typescript Guide](../../learn/how_to/tutorials/using-lit-typescript.md) for a more detailed explanation of using TypeScript with the Add-on SDK. +Check out the [Using Lit & Typescript Guide](../../learn/how-to/tutorials/using-lit-typescript.md) for a more detailed explanation of using TypeScript with the Add-on SDK. ## Webpack & JavaScript bundler @@ -89,11 +89,11 @@ new CopyWebpackPlugin({ ## React -The CLI supports two different [react-based templates](../../getting_started/local_development/dev_tooling.md#templates), and the [code samples](../../learn/samples.md) repository contains various add-ons built with React for you to use as a reference. +The CLI supports two different [react-based templates](../../getting-started/local-development/dev-tooling.md#templates), and the [code samples](../../learn/samples.md) repository contains various add-ons built with React for you to use as a reference. ## Lit Framework -Build fast, lightweight web components using the Lit framework. Our CLI offers [starter templates](../../getting_started/local_development/dev_tooling.md#templates) to help you get started: +Build fast, lightweight web components using the Lit framework. Our CLI offers [starter templates](../../getting-started/local-development/dev-tooling.md#templates) to help you get started: - `swc-javascript`: For building with Lit and JavaScript - `swc-typescript`: For building with Lit and TypeScript @@ -102,7 +102,7 @@ Build fast, lightweight web components using the Lit framework. Our CLI offers [ All templates come pre-configured with the necessary setup and dependencies. -For detailed guidance on using Lit with TypeScript, you can check out our [Using Lit & TypeScript Guide](../../learn/how_to/tutorials/using-lit-typescript.md). +For detailed guidance on using Lit with TypeScript, you can check out our [Using Lit & TypeScript Guide](../../learn/how-to/tutorials/using-lit-typescript.md). ## Other JavaScript and CSS libraries diff --git a/src/pages/guides/build/design/best_practices.md b/src/pages/guides/build/design/best-practices.md similarity index 100% rename from src/pages/guides/build/design/best_practices.md rename to src/pages/guides/build/design/best-practices.md diff --git a/src/pages/guides/build/design/implementation_guide.md b/src/pages/guides/build/design/implementation-guide.md similarity index 99% rename from src/pages/guides/build/design/implementation_guide.md rename to src/pages/guides/build/design/implementation-guide.md index fa25ae427..cb0649f87 100644 --- a/src/pages/guides/build/design/implementation_guide.md +++ b/src/pages/guides/build/design/implementation-guide.md @@ -293,7 +293,7 @@ Use the existing Adobe Express UI as an example of the types of patterns and beh **Color Picker Component Tip:** -If you're using the native browser color picker, it looks slightly different in every browser and doesn't fit the Express theme by default. You can make this control look more like Spectrum with CSS as [illustrated in this codepen](https://codepen.io/kerrishotts/pen/QWZazJP) for reference, or borrow the code used in [this guide](../../learn/how_to/tutorials/grids-addon.md#3-coding-the-grids-add-on). +If you're using the native browser color picker, it looks slightly different in every browser and doesn't fit the Express theme by default. You can make this control look more like Spectrum with CSS as [illustrated in this codepen](https://codepen.io/kerrishotts/pen/QWZazJP) for reference, or borrow the code used in [this guide](../../learn/how-to/tutorials/grids-addon.md#3-coding-the-grids-add-on). ## Using Fonts diff --git a/src/pages/guides/build/design/ux_guidelines/branding_guidelines.md b/src/pages/guides/build/design/ux-guidelines/branding-guidelines.md similarity index 100% rename from src/pages/guides/build/design/ux_guidelines/branding_guidelines.md rename to src/pages/guides/build/design/ux-guidelines/branding-guidelines.md diff --git a/src/pages/guides/build/design/ux_guidelines/changelog.md b/src/pages/guides/build/design/ux-guidelines/changelog.md similarity index 100% rename from src/pages/guides/build/design/ux_guidelines/changelog.md rename to src/pages/guides/build/design/ux-guidelines/changelog.md diff --git a/src/pages/guides/build/design/ux_guidelines/design_principles.md b/src/pages/guides/build/design/ux-guidelines/design-principles.md similarity index 100% rename from src/pages/guides/build/design/ux_guidelines/design_principles.md rename to src/pages/guides/build/design/ux-guidelines/design-principles.md diff --git a/src/pages/guides/build/design/ux_guidelines/feedback_and_messaging.md b/src/pages/guides/build/design/ux-guidelines/feedback-and-messaging.md similarity index 100% rename from src/pages/guides/build/design/ux_guidelines/feedback_and_messaging.md rename to src/pages/guides/build/design/ux-guidelines/feedback-and-messaging.md diff --git a/src/pages/guides/build/design/ux_guidelines/introduction.md b/src/pages/guides/build/design/ux-guidelines/introduction.md similarity index 67% rename from src/pages/guides/build/design/ux_guidelines/introduction.md rename to src/pages/guides/build/design/ux-guidelines/introduction.md index a48f28ccd..a60f716f4 100644 --- a/src/pages/guides/build/design/ux_guidelines/introduction.md +++ b/src/pages/guides/build/design/ux-guidelines/introduction.md @@ -30,14 +30,14 @@ This document is intended for developers, designers, and product teams involved ## How to navigate this document -To get the most out of the UX Guidelines, start by familiarizing yourself with the [Design Principles](design_principles.md) section. They provide the foundation for all design decisions and will help you understand the core values that should drive your work. +To get the most out of the UX Guidelines, start by familiarizing yourself with the [Design Principles](design-principles.md) section. They provide the foundation for all design decisions and will help you understand the core values that should drive your work. -Next, the [Theming](theming.md) section shows you how to implement the Spectrum for Adobe Express theme, along with customization options and examples. [Visual Elements](./visual_elements.md) is a detailed list of structural and functional components that make up the Adobe Express visual language. It covers everything from typography to grids, navigation, and a variety of UI elements alongside with implementation examples. +Next, the [Theming](theming.md) section shows you how to implement the Spectrum for Adobe Express theme, along with customization options and examples. [Visual Elements](visual-elements.md) is a detailed list of structural and functional components that make up the Adobe Express visual language. It covers everything from typography to grids, navigation, and a variety of UI elements alongside with implementation examples. -[Feedback & Messaging](feedback_and_messaging.md) provides best practices for communicating feedback or alert errors to users. +[Feedback & Messaging](feedback-and-messaging.md) provides best practices for communicating feedback or alert errors to users. - + -Explore the [Branding Guidelines](branding_guidelines.md) to ensure your add-on is legally & visually aligned with Adobe Express. They cover key aspects of branding, as well as best practices for incorporating promotional images for the Adobe Express add-on Marketplace. +Explore the [Branding Guidelines](branding-guidelines.md) to ensure your add-on is legally & visually aligned with Adobe Express. They cover key aspects of branding, as well as best practices for incorporating promotional images for the Adobe Express add-on Marketplace. -Finally, look at the [Resources & References](./resources_and_references.md) for videos and further reading. Refer to the [Changelog](./changelog.md) to stay up-to-date with the latest features and improvements to these guidelines: they are a living document we encourage you to consult regularly, both as a reference and a source of inspiration. +Finally, look at the [Resources & References](resources-and-references.md) for videos and further reading. Refer to the [Changelog](changelog.md) to stay up-to-date with the latest features and improvements to these guidelines: they are a living document we encourage you to consult regularly, both as a reference and a source of inspiration. diff --git a/src/pages/guides/build/design/ux_guidelines/mobile_ux.md b/src/pages/guides/build/design/ux-guidelines/mobile-ux.md similarity index 100% rename from src/pages/guides/build/design/ux_guidelines/mobile_ux.md rename to src/pages/guides/build/design/ux-guidelines/mobile-ux.md diff --git a/src/pages/guides/build/design/ux_guidelines/resources_and_references.md b/src/pages/guides/build/design/ux-guidelines/resources-and-references.md similarity index 97% rename from src/pages/guides/build/design/ux_guidelines/resources_and_references.md rename to src/pages/guides/build/design/ux-guidelines/resources-and-references.md index d85296be2..bb8750e30 100644 --- a/src/pages/guides/build/design/ux_guidelines/resources_and_references.md +++ b/src/pages/guides/build/design/ux-guidelines/resources-and-references.md @@ -30,7 +30,7 @@ Design tips for creating Adobe Express add-ons, by Steph Corrales (Sr. Experienc
-Adobe Express add-on's with Spectrum Web Components [workshop](../../../learn/how_to/tutorials/spectrum-workshop/index.md), by Holly Schinsky (Sr. Developer Relations Engineer, Adobe Developer Experience). +Adobe Express add-on's with Spectrum Web Components [workshop](../../../learn/how-to/tutorials/spectrum-workshop/index.md), by Holly Schinsky (Sr. Developer Relations Engineer, Adobe Developer Experience).

diff --git a/src/pages/guides/build/design/ux_guidelines/theming.md b/src/pages/guides/build/design/ux-guidelines/theming.md similarity index 100% rename from src/pages/guides/build/design/ux_guidelines/theming.md rename to src/pages/guides/build/design/ux-guidelines/theming.md diff --git a/src/pages/guides/build/design/ux_guidelines/visual_elements.md b/src/pages/guides/build/design/ux-guidelines/visual-elements.md similarity index 99% rename from src/pages/guides/build/design/ux_guidelines/visual_elements.md rename to src/pages/guides/build/design/ux-guidelines/visual-elements.md index 4c3764eaa..fe8021c0e 100644 --- a/src/pages/guides/build/design/ux_guidelines/visual_elements.md +++ b/src/pages/guides/build/design/ux-guidelines/visual-elements.md @@ -217,7 +217,7 @@ Color pickers are a special type of picker that allows users to select a color. The Spectrum component used as a Color Picker is the [Swatch](https://spectrum.adobe.com/page/swatch/), which shows a small sample of a fill—such as a color, gradient, texture, or material—that is intended to be applied to an object. -The Swatch itself doesn't embed any color picker functionality, but it can be used in conjunction with a native `` hidden element to trigger the browser's color picker. You can find an example with sample code in [this tutorial](../../../learn/how_to/tutorials/grids-addon.md#3-coding-the-grids-add-on). +The Swatch itself doesn't embed any color picker functionality, but it can be used in conjunction with a native `` hidden element to trigger the browser's color picker. You can find an example with sample code in [this tutorial](../../../learn/how-to/tutorials/grids-addon.md#3-coding-the-grids-add-on). ## Navigation diff --git a/src/pages/guides/build/distribute/guidelines/brand_guidelines.md b/src/pages/guides/build/distribute/guidelines/brand-guidelines.md similarity index 100% rename from src/pages/guides/build/distribute/guidelines/brand_guidelines.md rename to src/pages/guides/build/distribute/guidelines/brand-guidelines.md diff --git a/src/pages/guides/build/distribute/guidelines/genai/index.md b/src/pages/guides/build/distribute/guidelines/genai/index.md index 1b55d0f9d..4a84e7aff 100644 --- a/src/pages/guides/build/distribute/guidelines/genai/index.md +++ b/src/pages/guides/build/distribute/guidelines/genai/index.md @@ -38,8 +38,8 @@ We created these guidelines to assist any developers who wish to take advantage We have split this section into: -- [Requirements](./requirements.md) (which must be followed) -- [Recommendations](./recommendations.md) (which are suggestions we encourage for best practice) +- [Requirements](requirements.md) (which must be followed) +- [Recommendations](recommendations.md) (which are suggestions we encourage for best practice) diff --git a/src/pages/guides/build/distribute/guidelines/general/edge_case.md b/src/pages/guides/build/distribute/guidelines/general/edge-case.md similarity index 100% rename from src/pages/guides/build/distribute/guidelines/general/edge_case.md rename to src/pages/guides/build/distribute/guidelines/general/edge-case.md diff --git a/src/pages/guides/build/distribute/guidelines/general/index.md b/src/pages/guides/build/distribute/guidelines/general/index.md index 9477c500d..c386e28de 100644 --- a/src/pages/guides/build/distribute/guidelines/general/index.md +++ b/src/pages/guides/build/distribute/guidelines/general/index.md @@ -32,7 +32,7 @@ This section provides a set of guides to help you in the distribution stage of y ## Introduction -The general guidelines that can be found in this section cover a variety of areas including [acceptable content](./content.md), [user interface guidelines](./user_interface.md), [listing metadata](./listing.md), [feature functionality](./features.md) and testing guidelines (e.g., [compatibility](./compatibility.md), [usability](./usability.md), [accessibility](./accessibility.md), [performance](./performance.md)) and more. +The general guidelines that can be found in this section cover a variety of areas including [acceptable content](content.md), [user interface guidelines](user-interface.md), [listing metadata](listing.md), [feature functionality](features.md) and testing guidelines (e.g., [compatibility](compatibility.md), [usability](usability.md), [accessibility](accessibility.md), [performance](performance.md)) and more. ## Testing diff --git a/src/pages/guides/build/distribute/guidelines/general/listing.md b/src/pages/guides/build/distribute/guidelines/general/listing.md index f065937d7..15b048f8d 100644 --- a/src/pages/guides/build/distribute/guidelines/general/listing.md +++ b/src/pages/guides/build/distribute/guidelines/general/listing.md @@ -36,7 +36,7 @@ Your listing metadata provides Adobe and users with details about your add-on. F **NOTE:** Please avoid the use of emojis in your listing metadata as the user interface does not allow them. -Refer to our [Developer Brand Guidelines](../brand_guidelines.md) for more information. +Refer to our [Developer Brand Guidelines](../brand-guidelines.md) for more information. ### Naming your add-on @@ -54,7 +54,7 @@ Think of this as your elevator pitch. Use this space to concisely describe the f If your add-on generates assets via AI or imports assets from an asset repository, you should include accurate and up-to-date information about usage rights here. -Consult our [Generative AI guidelines](../genai/) for more information. +Consult our [Generative AI guidelines](../genai/index.md) for more information. ### Your summary diff --git a/src/pages/guides/build/distribute/guidelines/general/planning.md b/src/pages/guides/build/distribute/guidelines/general/planning.md index 50f0f18e4..63cc60b8c 100644 --- a/src/pages/guides/build/distribute/guidelines/general/planning.md +++ b/src/pages/guides/build/distribute/guidelines/general/planning.md @@ -32,4 +32,4 @@ For example: ## Use of AI -Does your add-on leverage AI to generate content or automate workflows? If so, be sure to check out the [Generative AI requirements](../genai/). +Does your add-on leverage AI to generate content or automate workflows? If so, be sure to check out the [Generative AI requirements](../genai/index.md). diff --git a/src/pages/guides/build/distribute/guidelines/general/user_interface.md b/src/pages/guides/build/distribute/guidelines/general/user-interface.md similarity index 97% rename from src/pages/guides/build/distribute/guidelines/general/user_interface.md rename to src/pages/guides/build/distribute/guidelines/general/user-interface.md index 2d02cc77b..0c754f16f 100644 --- a/src/pages/guides/build/distribute/guidelines/general/user_interface.md +++ b/src/pages/guides/build/distribute/guidelines/general/user-interface.md @@ -28,7 +28,7 @@ However, remember that your users will be accessing your add-on as part of their We highly suggest leveraging the Spectrum Design System and Spectrum Express theme to create user interfaces that feel similar to the Adobe Express user interface. -We’ve included these guidelines here to help you create a great experience for users. Also refer to our [User interface design guide](../../../design/index.md), which includes a comprehensive set of [UX Guidelines](../../../design/ux_guidelines/introduction.md) to help with your add-on design. +We’ve included these guidelines here to help you create a great experience for users. Also refer to our [User interface design guide](../../../design/index.md), which includes a comprehensive set of [UX Guidelines](../../../design/ux-guidelines/introduction.md) to help with your add-on design. ## Display Items @@ -66,7 +66,7 @@ Use unique icons to represent the add-on itself, and the features within it. Con Follow these guidelines to make sure you are referring to Adobe correctly in your add-on. -For more information on using Adobe brand assets, check our [Developer Brand Guidelines](../brand_guidelines.md). +For more information on using Adobe brand assets, check our [Developer Brand Guidelines](../brand-guidelines.md). ## Referring to add-ons diff --git a/src/pages/guides/build/distribute/guidelines/index.md b/src/pages/guides/build/distribute/guidelines/index.md index 3609b0e4b..7fefb987d 100644 --- a/src/pages/guides/build/distribute/guidelines/index.md +++ b/src/pages/guides/build/distribute/guidelines/index.md @@ -24,7 +24,7 @@ Thank you for joining the community of developers worldwide that are creating ad Adobe's goal is to publish high-quality add-ons. With that goal in mind, we’ve created this set of guidelines to give you some tips on best practices, and ensure you take the right steps to get your add-on approved: -- [General guidelines](./general/) -- [Adobe Express Developer Program brand guidelines](./brand_guidelines.md) (aka: "Developer Brand Guidelines" throughout these guides) -- [Monetization guidelines](./monetization.md) -- [Generative AI guidelines](./genai/) +- [General guidelines](general/index.md) +- [Adobe Express Developer Program brand guidelines](brand-guidelines.md) (aka: "Developer Brand Guidelines" throughout these guides) +- [Monetization guidelines](monetization.md) +- [Generative AI guidelines](genai/index.md) diff --git a/src/pages/guides/build/distribute/guidelines/monetization.md b/src/pages/guides/build/distribute/guidelines/monetization.md index dfbe3fa6c..e0b3f09f5 100644 --- a/src/pages/guides/build/distribute/guidelines/monetization.md +++ b/src/pages/guides/build/distribute/guidelines/monetization.md @@ -73,7 +73,7 @@ The word "Premium" should only be used in relation to the Adobe Express Premium Adobe Express allows users that aren't subscribed to a premium version of Adobe Express to experiment with premium content in their documents. When users download or share their document, they'll be prompted to upgrade to a premium plan. -Add-ons must not allow users on a free plan to download, share, or export premium content provided by Adobe Express. When a user on a free plan tries to share or export premium content using your add-on, you must notify the user that they need to upgrade, and inform the user how they can do so. See our [documentation](../../../learn/how_to/premium_content.md) for more information on how to do this. +Add-ons must not allow users on a free plan to download, share, or export premium content provided by Adobe Express. When a user on a free plan tries to share or export premium content using your add-on, you must notify the user that they need to upgrade, and inform the user how they can do so. See our [documentation](../../../learn/how-to/premium-content.md) for more information on how to do this. ## Requirements for monetizing your add-ons @@ -129,7 +129,7 @@ The live preview in the public listing allows developers to see how their add-on - If **One-time payment** is selected, the preview will display: _"Upgrade is available through a one-time purchase."_ - A note will also indicate: _"Checkout is managed by the developer outside of Adobe Express. This add-on is sold separately and not included as part of any Adobe plan."_ -Carefully review our [monetization guidelines](./monetization.md) to ensure compliance with Adobe’s requirements and recommendations for monetizing your add-ons. +Carefully review our [monetization guidelines](monetization.md) to ensure compliance with Adobe’s requirements and recommendations for monetizing your add-ons. ## Recommendations for monetizing your add-ons diff --git a/src/pages/guides/build/distribute/listing_guide.md b/src/pages/guides/build/distribute/listing-guide.md similarity index 100% rename from src/pages/guides/build/distribute/listing_guide.md rename to src/pages/guides/build/distribute/listing-guide.md diff --git a/src/pages/guides/build/distribute/private-dist.md b/src/pages/guides/build/distribute/private-dist.md index 98387f31f..fdc346fe0 100644 --- a/src/pages/guides/build/distribute/private-dist.md +++ b/src/pages/guides/build/distribute/private-dist.md @@ -36,7 +36,7 @@ The result will be a distributable zip of your add-on package with the name `dis ## Step 1: Create a new Add-on Listing -In order to get a private distribution link, you will need to create a new add-on listing first; provided that you've enabled Add-on Development in your user's settings as described [here](../../getting_started/hello-world.md#enable-add-on-development-mode), you can do so in two ways, which will invoke the same in-app distribution experience. +In order to get a private distribution link, you will need to create a new add-on listing first; provided that you've enabled Add-on Development in your user's settings as described [here](../../getting-started/hello-world.md#enable-add-on-development-mode), you can do so in two ways, which will invoke the same in-app distribution experience. 1. From the Adobe Express home page, click the Add-ons link in the left-hand navigation. diff --git a/src/pages/guides/build/distribute/public-dist.md b/src/pages/guides/build/distribute/public-dist.md index 288b96e0d..f67488bcc 100644 --- a/src/pages/guides/build/distribute/public-dist.md +++ b/src/pages/guides/build/distribute/public-dist.md @@ -24,7 +24,7 @@ contributors: ## Overview -This guide is provided to help ensure your add-on distribution process goes as smoothly as possible. We've provided a list of all of the things you can prepare in advance, as well as the steps to follow to actually submit your add-on for public distribution. Please note that public distribution is subject to a quality review by our team according to our [Guidelines](./guidelines/index.md). +This guide is provided to help ensure your add-on distribution process goes as smoothly as possible. We've provided a list of all of the things you can prepare in advance, as well as the steps to follow to actually submit your add-on for public distribution. Please note that public distribution is subject to a quality review by our team according to our [Guidelines](guidelines/index.md). ## Preparing for Submission @@ -41,7 +41,7 @@ This section outlines everything you'll need to be prepared for submitting your | **\* Full Description** | 1000 | Full context and description of your add-on and its features | | **\* Help URL** | 1000 | URL for your users to get help (ie: https://www.example.com/) | | **\* Support email address** | 1000 | An email address that users of your add-on can contact for support | -| **\*Trader information** | NA | Provide the trader information as per the [listing guidelines](./guidelines/general/listing.md#trader-details) in the publisher profile if you want to make your addons available in the EU | +| **\*Trader information** | NA | Provide the trader information as per the [listing guidelines](guidelines/general/listing.md#trader-details) in the publisher profile if you want to make your addons available in the EU | | **Privacy Notice** | 1000 | URL of your privacy notice (ie: https://www.example.com/) | | **End User License Agreement(EULA)** | 1000 | End User License Agreement URL (ie: https://www.example.com/) | | **Keywords** | 100 | Keywords to help users find your add-on (comma-separated) | @@ -70,7 +70,7 @@ npm run package The result will be a distributable zip of your add-on package with the name `dist.zip`, and can be uploaded in step 3 below. This add-on package contains the **production-ready built content** in the _root_ of the zip file, similar to what's built into the `/dist` folder. -### 4. Carefully [review our set of guidelines](./guidelines/index.md) +### 4. Carefully [review our set of guidelines](guidelines/index.md) ## Submission Steps @@ -85,7 +85,7 @@ To distribute your add-on, you must create an add-on listing. If you have already performed the listing creation steps, e.g. to create a Private Link as outlined here, feel free to skip to [Step 3](#step-3-create-a-new-public-listing). -Provided that you've enabled Add-on Development in your user's settings as described [here](../../getting_started/hello-world.md#enable-add-on-development-mode), you can do so in two ways, which will invoke the same in-app distribution experience. +Provided that you've enabled Add-on Development in your user's settings as described [here](../../getting-started/hello-world.md#enable-add-on-development-mode), you can do so in two ways, which will invoke the same in-app distribution experience. **1.** From the Adobe Express home page, click the Add-ons link in the left-hand navigation. @@ -175,7 +175,7 @@ If the `zip` validation is successful, you will see a green checkmark next to th The rise of Generative AI offers significant benefits for add-ons and streamlines content creation and workflows. Adobe encourages user choice regarding add-ons using Generative AI, but transparency is paramount. Your AI-powered add-on must not generate illegal content, and it must be clear and transparent about how generative AI is used in your add-on. -In this section, you'll have to answer a variety of questions, depending on the type of AI-based content your add-on generates, the input it accepts, whether you test the output, etc. Carefully review our [AI usage guidelines](./guidelines/genai/index.md) to get the latest information on Adobe's requirements and recommendations to try add-ons that employ Generative AI technology. +In this section, you'll have to answer a variety of questions, depending on the type of AI-based content your add-on generates, the input it accepts, whether you test the output, etc. Carefully review our [AI usage guidelines](guidelines/genai/index.md) to get the latest information on Adobe's requirements and recommendations to try add-ons that employ Generative AI technology. ### Step 8: Enter the monetization details @@ -204,7 +204,7 @@ Once a monetization model is selected, developers can choose from the following This information will be visible in the add-on details view in the add-ons marketplace. -Use the [examples](./guidelines/monetization.md#examples-of-monetization-models) outlined in the guidelines for monetizing add-ons to help you make informed decisions about which options to choose. +Use the [examples](guidelines/monetization.md#examples-of-monetization-models) outlined in the guidelines for monetizing add-ons to help you make informed decisions about which options to choose. #### Additional Details @@ -222,7 +222,7 @@ The live preview on the right side of the page allows developers to see how thei - If **One-time payment** is selected, the preview will display: _"Upgrade is available through a one-time purchase."_ - A note will also indicate: _"Checkout is managed by the developer outside of Adobe Express. This add-on is sold separately and not included as part of any Adobe plan."_ -Carefully review our [monetization guidelines](./guidelines/monetization.md) to get the latest information on Adobe’s requirements and recommendations for monetizing your add-ons. +Carefully review our [monetization guidelines](guidelines/monetization.md) to get the latest information on Adobe’s requirements and recommendations for monetizing your add-ons. ### Step 9: Create a publisher profile @@ -231,7 +231,7 @@ You will only see this step the first time you submit an add-on and if you've ne - Fill your publisher profile details. - Upload a 250x250 logo. -- Add your trader details: In accordance with the European Union Digital Services Act trader requirements, developers who wish to distribute their listings in the EU must provide additional information in their publisher profile. [Learn more](./guidelines/general/listing.md#trader-details) about adding trader details. +- Add your trader details: In accordance with the European Union Digital Services Act trader requirements, developers who wish to distribute their listings in the EU must provide additional information in their publisher profile. [Learn more](guidelines/general/listing.md#trader-details) about adding trader details. #### Edit publisher profile @@ -317,4 +317,4 @@ Below is an example of what the insights data might look like: By leveraging these insights, you can make informed decisions to improve your add-on's performance and user experience. -Once your add-on is [reviewed](./review_process/index.md), it will be available on the [marketplace](https://express.adobe.com/add-ons). +Once your add-on is [reviewed](review-process/index.md), it will be available on the [marketplace](https://express.adobe.com/add-ons). diff --git a/src/pages/guides/build/distribute/rejections.md b/src/pages/guides/build/distribute/rejections.md index 46224eeda..79b35af76 100644 --- a/src/pages/guides/build/distribute/rejections.md +++ b/src/pages/guides/build/distribute/rejections.md @@ -21,7 +21,7 @@ contributors: ## 📋 Overview -When you submit an add-on for distribution, the review team _thoroughly_ examines it to ensure it meets the [guidelines](./guidelines/index.md) and is safe for public distribution. If something goes wrong, you will receive an email with the reasons that led to a rejection. You shouldn't be discouraged, though! Usually, the fixes are relatively straightforward, and the detailed feedback from the reviewers is an opportunity to improve and learn. +When you submit an add-on for distribution, the review team _thoroughly_ examines it to ensure it meets the [guidelines](guidelines/index.md) and is safe for public distribution. If something goes wrong, you will receive an email with the reasons that led to a rejection. You shouldn't be discouraged, though! Usually, the fixes are relatively straightforward, and the detailed feedback from the reviewers is an opportunity to improve and learn. That said, being rejected is annoying and, most importantly, time-consuming, as multiple re-submissions will impact the time it takes to get your add-on published. To help you avoid it, we've compiled a list of the most common reasons for review failures and how to address them. @@ -75,8 +75,8 @@ Due to changes in the testing and reviewing processes, some issues that used to ### Relaxed UI Requirements -Using the [Spectrum Design System](../design/implementation_guide.md#spectrum-design-system) is **no longer mandatory**, provided that the add-on's UI follows the best practices outlined in the [UX Guidelines](../design/ux_guidelines/introduction.md) and is well-crafted. Spectrum Web Components and the Spectrum Express theme are still the recommended options, as they reliably provide a native look and feel. Mind you, malfunctioning or poorly designed UIs will always be rejected regardless of the design system used. +Using the [Spectrum Design System](../design/implementation-guide.md#spectrum-design-system) is **no longer mandatory**, provided that the add-on's UI follows the best practices outlined in the [UX Guidelines](../design/ux-guidelines/introduction.md) and is well-crafted. Spectrum Web Components and the Spectrum Express theme are still the recommended options, as they reliably provide a native look and feel. Mind you, malfunctioning or poorly designed UIs will always be rejected regardless of the design system used. ### COEP issues -The reviewing team **no longer tests** for [COEP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy) (Cross-Origin Embedder Policy), which used to cause, e.g., broken images. [CORS](../../learn/platform_concepts/context.md#cors) (Cross-Origin Resource Sharing) policies are still enforced, though, so make sure your add-on doesn't break due to them. +The reviewing team **no longer tests** for [COEP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy) (Cross-Origin Embedder Policy), which used to cause, e.g., broken images. [CORS](../../learn/platform-concepts/context.md#cors) (Cross-Origin Resource Sharing) policies are still enforced, though, so make sure your add-on doesn't break due to them. diff --git a/src/pages/guides/build/distribute/review_process/index.md b/src/pages/guides/build/distribute/review-process/index.md similarity index 94% rename from src/pages/guides/build/distribute/review_process/index.md rename to src/pages/guides/build/distribute/review-process/index.md index 9b70e12e2..4c670111e 100644 --- a/src/pages/guides/build/distribute/review_process/index.md +++ b/src/pages/guides/build/distribute/review-process/index.md @@ -75,6 +75,6 @@ If you have any questions, feel free to contact us at [ccintrev@adobe.com](mailt ### 5. Ensure that you have read and followed all Adobe guidelines relating to your add-on, including: -- Our [Developer Brand Guidelines](../guidelines/brand_guidelines.md) +- Our [Developer Brand Guidelines](../guidelines/brand-guidelines.md) - Our [Monetization Guidelines](../guidelines/monetization.md) (if you are monetizing your add-on) -- Our [Generative AI Guidelines](../guidelines/genai/) (if you are using Generative AI) +- Our [Generative AI Guidelines](../guidelines/genai/index.md) (if you are using Generative AI) diff --git a/src/pages/guides/build/distribute/review_process/submission_checklist.md b/src/pages/guides/build/distribute/review-process/submission-checklist.md similarity index 92% rename from src/pages/guides/build/distribute/review_process/submission_checklist.md rename to src/pages/guides/build/distribute/review-process/submission-checklist.md index 94b29e447..4552b8d97 100644 --- a/src/pages/guides/build/distribute/review_process/submission_checklist.md +++ b/src/pages/guides/build/distribute/review-process/submission-checklist.md @@ -51,6 +51,6 @@ If you have any questions, feel free to contact us at [ccintrev@adobe.com](mailt ## Ensure that you have read and followed all Adobe guidelines relating to your add-on, including: -- [Developer Brand Guidelines](../guidelines/brand_guidelines.md) +- [Developer Brand Guidelines](../guidelines/brand-guidelines.md) - Our [Monetization Guidelines](../guidelines/monetization.md) (if you are monetizing your add-on) -- Our [Generative AI Guidelines](../guidelines/genai/) (if you are using Generative AI) +- Our [Generative AI Guidelines](../guidelines/genai/index.md) (if you are using Generative AI) diff --git a/src/pages/guides/getting_started/addon-project-anatomy.md b/src/pages/guides/getting-started/addon-project-anatomy.md similarity index 94% rename from src/pages/guides/getting_started/addon-project-anatomy.md rename to src/pages/guides/getting-started/addon-project-anatomy.md index 0a227e876..94ce944cd 100644 --- a/src/pages/guides/getting_started/addon-project-anatomy.md +++ b/src/pages/guides/getting-started/addon-project-anatomy.md @@ -104,7 +104,7 @@ A comprehensive guide to understanding Adobe Express add-on project structure, f **New to add-ons?** -Start with the [Hello, World! tutorial](./hello-world.md) to create your first add-on, then return here to understand project structure. For terminology clarification, see the [Developer Terminology Guide](../learn/fundamentals/terminology.md). +Start with the [Hello, World! tutorial](hello-world.md) to create your first add-on, then return here to understand project structure. For terminology clarification, see the [Developer Terminology Guide](../learn/fundamentals/terminology.md). ## Understanding the Basics @@ -116,11 +116,11 @@ Every Adobe Express add-on has these essential files: The complexity grows based on: -- Whether you need to create/modify document content (requires [document sandbox](../learn/platform_concepts/architecture.md#document-sandbox)) +- Whether you need to create/modify document content (requires [document sandbox](../learn/platform-concepts/architecture.md#document-sandbox)) - Whether you use a build tool (webpack) - Whether you use a UI framework (React) or TypeScript -See the [Add-on Architecture Guide](../learn/platform_concepts/architecture.md) for a deep dive into how these pieces work together. +See the [Add-on Architecture Guide](../learn/platform-concepts/architecture.md) for a deep dive into how these pieces work together. ## The Simplest Add-on @@ -161,7 +161,7 @@ my-addon/ **Related guides:** -- [Development Tools](./local_development/dev_tooling.md) - CLI commands and local development setup +- [Development Tools](local-development/dev-tooling.md) - CLI commands and local development setup - [Manifest Reference](../../references/manifest/index.md) - Complete manifest configuration guide ## Build vs. No-Build Templates @@ -302,9 +302,9 @@ runtime.exposeApi({ **Learn more about communication:** -- [Add-on Architecture Guide](../learn/platform_concepts/architecture.md#communication-flow) - Complete communication patterns +- [Add-on Architecture Guide](../learn/platform-concepts/architecture.md#communication-flow) - Complete communication patterns - [Communication APIs Reference](../../references/document-sandbox/communication/index.md) - API documentation -- [Stats Add-on Tutorial](../learn/how_to/tutorials/stats-addon.md) - Build an add-on using communication APIs +- [Stats Add-on Tutorial](../learn/how-to/tutorials/stats-addon.md) - Build an add-on using communication APIs ## Where Things Go @@ -323,7 +323,7 @@ Here's the definitive guide for organizing your add-on code: - ✅ HTML manipulation (`document.getElementById`, etc.) - ✅ CSS and styling - ✅ User input handling (forms, buttons, clicks) -- ✅ Add-on UI SDK calls ([dialogs](../learn/how_to/modal_dialogs.md), [OAuth](../learn/how_to/oauth2.md), [exports](../learn/how_to/create_renditions.md)) +- ✅ Add-on UI SDK calls ([dialogs](../learn/how-to/modal-dialogs.md), [OAuth](../learn/how-to/oauth2.md), [exports](../learn/how-to/create-renditions.md)) - ✅ Network requests (`fetch`, API calls) - ✅ Communication with document sandbox @@ -345,7 +345,7 @@ See the [Add-on UI SDK Reference](../../references/addonsdk/index.md) for comple - ❌ NO styling - ❌ NO HTML manipulation -See the [Document APIs Reference](../../references/document-sandbox/document-apis/index.md) for complete API documentation and the [Document API Concepts Guide](../learn/platform_concepts/document-api.md) for detailed explanations. +See the [Document APIs Reference](../../references/document-sandbox/document-apis/index.md) for complete API documentation and the [Document API Concepts Guide](../learn/platform-concepts/document-api.md) for detailed explanations. **Available APIs in document sandbox:** @@ -380,7 +380,7 @@ For the complete list of available Web APIs, see the [Web APIs Reference](../../ 2. **Pass data** - Send processed data between environments via API proxy 3. **Types/interfaces** - Can be shared in `src/models/` or `src/types/` (TypeScript only) -For more on why environments are isolated, see the [Iframe Runtime Context & Security Guide](../learn/platform_concepts/context.md). +For more on why environments are isolated, see the [Iframe Runtime Context & Security Guide](../learn/platform-concepts/context.md). ## Quick Reference @@ -438,7 +438,7 @@ Both template types use Spectrum Web Components by default. The key difference i -New to Lit? See the [Using Lit & TypeScript Tutorial](../learn/how_to/tutorials/using-lit-typescript.md) for a complete guide to building add-ons with SWC templates. +New to Lit? See the [Using Lit & TypeScript Tutorial](../learn/how-to/tutorials/using-lit-typescript.md) for a complete guide to building add-ons with SWC templates. ### What are React Templates? @@ -508,8 +508,8 @@ The choice is really about: **Do you prefer vanilla JavaScript/Lit or React?** **Getting started with SWC:** -- [Using Lit & TypeScript Tutorial](../learn/how_to/tutorials/using-lit-typescript.md) - Step-by-step guide to building with SWC templates -- [Using Adobe Spectrum Workshop](../learn/how_to/tutorials/spectrum-workshop/index.md) - Learn Spectrum Web Components +- [Using Lit & TypeScript Tutorial](../learn/how-to/tutorials/using-lit-typescript.md) - Step-by-step guide to building with SWC templates +- [Using Adobe Spectrum Workshop](../learn/how-to/tutorials/spectrum-workshop/index.md) - Learn Spectrum Web Components ### When to Choose React Templates @@ -567,8 +567,8 @@ As a developer, you can use other libraries than Lit. For example, if you are a **Learn more about Spectrum:** -- [Using Adobe Spectrum Tutorial](../learn/how_to/tutorials/spectrum-workshop/index.md) - Complete workshop on Spectrum Web Components -- [UX Guidelines](../build/design/ux_guidelines/introduction.md) - Design principles for Adobe Express add-ons +- [Using Adobe Spectrum Tutorial](../learn/how-to/tutorials/spectrum-workshop/index.md) - Complete workshop on Spectrum Web Components +- [UX Guidelines](../build/design/ux-guidelines/introduction.md) - Design principles for Adobe Express add-ons ## Template Selection Guide @@ -650,7 +650,7 @@ react-typescript-with-document-sandbox **Want to try SWC TypeScript templates?** -Follow the [Using Lit & TypeScript Tutorial](../learn/how_to/tutorials/using-lit-typescript.md) for a complete walkthrough of building an add-on with the `swc-typescript-with-document-sandbox` template. +Follow the [Using Lit & TypeScript Tutorial](../learn/how-to/tutorials/using-lit-typescript.md) for a complete walkthrough of building an add-on with the `swc-typescript-with-document-sandbox` template. #### 1. JavaScript (No Build, No Sandbox) @@ -731,8 +731,8 @@ To see thecomplete file structures of all 10 templates, refer to the template-sp **Hands-on tutorials:** -- [Building Your First Add-on (Grids Tutorial)](../learn/how_to/tutorials/grids-addon.md) - Build a complete add-on with Document APIs -- [Using Lit & TypeScript](../learn/how_to/tutorials/using-lit-typescript.md) - Build with SWC TypeScript template +- [Building Your First Add-on (Grids Tutorial)](../learn/how-to/tutorials/grids-addon.md) - Build a complete add-on with Document APIs +- [Using Lit & TypeScript](../learn/how-to/tutorials/using-lit-typescript.md) - Build with SWC TypeScript template ## FAQs @@ -795,15 +795,15 @@ To see thecomplete file structures of all 10 templates, refer to the template-sp ### Getting Started -- [Hello, World! Tutorial](./hello-world.md) - Create your first add-on -- [Code Playground](./code-playground.md) - Experiment with add-on APIs in your browser -- [Development Tools](./local_development/dev_tooling.md) - CLI commands and local development -- [Adobe Express Add-on MCP Server](./local_development/mcp_server.md) - AI-assisted development with LLMs +- [Hello, World! Tutorial](hello-world.md) - Create your first add-on +- [Code Playground](code-playground.md) - Experiment with add-on APIs in your browser +- [Development Tools](local-development/dev-tooling.md) - CLI commands and local development +- [Adobe Express Add-on MCP Server](local-development/mcp-server.md) - AI-assisted development with LLMs ### Core Concepts - [Developer Terminology](../learn/fundamentals/terminology.md) - Essential terminology reference -- [Add-on Architecture Guide](../learn/platform_concepts/architecture.md) - Deep dive into dual-runtime system +- [Add-on Architecture Guide](../learn/platform-concepts/architecture.md) - Deep dive into dual-runtime system ### References diff --git a/src/pages/guides/getting_started/changelog.md b/src/pages/guides/getting-started/changelog.md similarity index 75% rename from src/pages/guides/getting_started/changelog.md rename to src/pages/guides/getting-started/changelog.md index 662e5e01e..c746dd387 100644 --- a/src/pages/guides/getting_started/changelog.md +++ b/src/pages/guides/getting-started/changelog.md @@ -31,10 +31,10 @@ contributors: We have added new APIs to generate image rendition of visual nodes directly from the document sandbox. -- **Experimental** [`VisualNode.createRendition()`](../../references/document-sandbox/document-apis/classes/VisualNode.md#createrendition) asynchronous method - Generate a rendition of a visual node and its descendants. -- **Experimental** [`CreateRenditionOptions`](../../references/document-sandbox/document-apis/interfaces/CreateRenditionOptions.md) interface - define configuration options for generating renditions. -- **Experimental** [`CreateRenditionResult`](../../references/document-sandbox/document-apis/interfaces/CreateRenditionResult.md) interface - define the structure of the returned rendition data (e.g., blob, metadata). -- **Experimental** [`CreateRenditionFormat`](../../references/document-sandbox/document-apis/namespaces/Constants/enumerations/CreateRenditionFormat.md) enumeration - specify supported output formats (e.g., PNG, JPEG, PDF) in the `Constants` namespace. +- **Experimental** [`VisualNode.createRendition()`](../../references/document-sandbox/document-apis/classes/visual-node.md#createrendition) asynchronous method - Generate a rendition of a visual node and its descendants. +- **Experimental** [`CreateRenditionOptions`](../../references/document-sandbox/document-apis/interfaces/create-rendition-options.md) interface - define configuration options for generating renditions. +- **Experimental** [`CreateRenditionResult`](../../references/document-sandbox/document-apis/interfaces/create-rendition-result.md) interface - define the structure of the returned rendition data (e.g., blob, metadata). +- **Experimental** [`CreateRenditionFormat`](../../references/document-sandbox/document-apis/namespaces/constants/enumerations/create-rendition-format.md) enumeration - specify supported output formats (e.g., PNG, JPEG, PDF) in the `Constants` namespace. - **Experimental** [`addOnUISdk.app.document.isPresentation()`](../../references/addonsdk/app-document.md#ispresentation) asynchronous method - Returns `true` if the document is a presentation, `false` if not. @@ -44,27 +44,27 @@ We have added new APIs to generate image rendition of visual nodes directly from We have added new APIs for threaded text handling across multiple frames, as well as new accessors for retrieving a flattened list of all descendant nodes and text content within the page and visual node containers. -- **Experimental** [`Editor.createThreadedText()`](../../references/document-sandbox/document-apis/classes/Editor.md#createthreadedtext) method - Create a [`ThreadedTextNode`](../../references/document-sandbox/document-apis/classes/ThreadedTextNode.md) for threaded text handling across multiple frames. -- **Experimental** [`ThreadedTextList`](../../references/document-sandbox/document-apis/classes/ThreadedTextList.md) class - Represents an ordered list of [`ThreadedTextNode`](../../references/document-sandbox/document-apis/classes/ThreadedTextNode.md) objects, creating a single, continuous text story across multiple frames. -- **Experimental** [`allDescendants`](../../references/document-sandbox/document-apis/classes/PageNode.md#alldescendants) accessor on [`PageNode`](../../references/document-sandbox/document-apis/classes/PageNode.md) and [`VisualNode`](../../references/document-sandbox/document-apis/classes/VisualNode.md) - Returns a flattened, read-only list of all descendant nodes within the container. For text-based nodes, please use the new `allTextContent` accessor instead. -- **Experimental** [`allTextContent`](../../references/document-sandbox/document-apis/classes/PageNode.md#alltextcontent) accessor on [`PageNode`](../../references/document-sandbox/document-apis/classes/PageNode.md) and [`VisualNode`](../../references/document-sandbox/document-apis/classes/VisualNode.md) - Returns a flattened, read-only list of [`TextContent`](../../references/document-sandbox/document-apis/interfaces/TextContent.md) instances from all text-based nodes within the container. -- **Experimental** [`TextContent`](../../references/document-sandbox/document-apis/interfaces/TextContent.md) interface - Represents text content data extracted from text-based nodes. -- **Experimental** [`TextFrameAreaGeometry`](../../references/document-sandbox/document-apis/interfaces/TextFrameAreaGeometry.md) interface - Defines the geometry of a text frame area. +- **Experimental** [`Editor.createThreadedText()`](../../references/document-sandbox/document-apis/classes/editor.md#createthreadedtext) method - Create a [`ThreadedTextNode`](../../references/document-sandbox/document-apis/classes/threaded-text-node.md) for threaded text handling across multiple frames. +- **Experimental** [`ThreadedTextList`](../../references/document-sandbox/document-apis/classes/threaded-text-list.md) class - Represents an ordered list of [`ThreadedTextNode`](../../references/document-sandbox/document-apis/classes/threaded-text-node.md) objects, creating a single, continuous text story across multiple frames. +- **Experimental** [`allDescendants`](../../references/document-sandbox/document-apis/classes/page-node.md#alldescendants) accessor on [`PageNode`](../../references/document-sandbox/document-apis/classes/page-node.md) and [`VisualNode`](../../references/document-sandbox/document-apis/classes/visual-node.md) - Returns a flattened, read-only list of all descendant nodes within the container. For text-based nodes, please use the new `allTextContent` accessor instead. +- **Experimental** [`allTextContent`](../../references/document-sandbox/document-apis/classes/page-node.md#alltextcontent) accessor on [`PageNode`](../../references/document-sandbox/document-apis/classes/page-node.md) and [`VisualNode`](../../references/document-sandbox/document-apis/classes/visual-node.md) - Returns a flattened, read-only list of [`TextContent`](../../references/document-sandbox/document-apis/interfaces/text-content.md) instances from all text-based nodes within the container. +- **Experimental** [`TextContent`](../../references/document-sandbox/document-apis/interfaces/text-content.md) interface - Represents text content data extracted from text-based nodes. +- **Experimental** [`TextFrameAreaGeometry`](../../references/document-sandbox/document-apis/interfaces/text-frame-area-geometry.md) interface - Defines the geometry of a text frame area. ### Updated -- **Experimental** [`ThreadedTextContentModel.frames`](../../references/document-sandbox/document-apis/classes/ThreadedTextContentModel.md#frames) property - Updated to properly support the new threaded text implementation with [`ThreadedTextList`](../../references/document-sandbox/document-apis/classes/ThreadedTextList.md). +- **Experimental** [`ThreadedTextContentModel.frames`](../../references/document-sandbox/document-apis/classes/threaded-text-content-model.md#frames) property - Updated to properly support the new threaded text implementation with [`ThreadedTextList`](../../references/document-sandbox/document-apis/classes/threaded-text-list.md). ## 2026-01-13 ### Adobe Express Developer MCP Server Updates -- The Adobe Express Add-on MCP Server (Beta) has been replaced by the **[Adobe Express Developer MCP Server](./local_development/mcp_server.md)**, which is now officially supported and production ready. +- The Adobe Express Add-on MCP Server (Beta) has been replaced by the **[Adobe Express Developer MCP Server](local-development/mcp-server.md)**, which is now officially supported and production ready. - It ships under a new npm package (`@adobe/express-developer-mcp`) and supersedes the beta version (`@adobe/express-add-on-dev-mcp`) now deprecated, in all MCP configurations. Learn how to set it up and use it to enhance your development workflow in compatible editors such as Cursor. ### Added -- New [Add-on Architecture](../learn/platform_concepts/architecture.md) guide with dual-runtime system explanation, SDK imports and usage, and cross-runtime communication patterns. +- New [Add-on Architecture](../learn/platform-concepts/architecture.md) guide with dual-runtime system explanation, SDK imports and usage, and cross-runtime communication patterns. - New [Add-on Project Anatomy & CLI Templates](../getting_started/addon-project-anatomy.md) guide with add-on project structure, file organization, and template selection for efficient Adobe Express add-on development. - New [Add-on Development Terminology](../learn/fundamentals/terminology.md) guide with standardized definitions, decision matrices, and troubleshooting for Adobe Express Add-on development terminology. - New practical usage guide for [Using Add-on UI SDK Constants](../learn/fundamentals/ui-sdk-constants.md), focusing on import patterns, common pitfalls, and solutions for UI SDK constants. @@ -75,7 +75,7 @@ We have added new APIs for threaded text handling across multiple frames, as wel - **Major restructure** of the [Add-on UI SDK Constants Reference](../../references/addonsdk/addonsdk-constants.md). - Improved content and metadata for SEO and AI assistant optimization. -- **Breaking change:** Removed experimental resize/rescale methods (`rescaleProportionalToWidth()`, `rescaleProportionalToHeight()`, `resizeToFitWithin()`, `resizeToCover()`) and replaced with unified **experimental** [`resize()`](../../references/document-sandbox/document-apis/classes/Node.md#resize) method offering more flexible behavior control via [`ResizeBehavior`](../../references/document-sandbox/document-apis/enumerations/ResizeBehavior.md) options. The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is required. +- **Breaking change:** Removed experimental resize/rescale methods (`rescaleProportionalToWidth()`, `rescaleProportionalToHeight()`, `resizeToFitWithin()`, `resizeToCover()`) and replaced with unified **experimental** [`resize()`](../../references/document-sandbox/document-apis/classes/node.md#resize) method offering more flexible behavior control via [`ResizeBehavior`](../../references/document-sandbox/document-apis/enumerations/resize-behavior.md) options. The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is required. ## 2025-12-28 @@ -94,67 +94,67 @@ We have added new APIs for threaded text handling across multiple frames, as wel The Adobe Express Code Playground has received a major update with the release of a new set of features and improvements. - Open Code Playground with a single click ([https://www.adobe.com/go/addon-playground](https://www.adobe.com/go/addon-playground)) or find the **Code Playground** button in the top navigation bar of the How-to guides, Hello World!, Code Playground pages, and other sections. You can also bookmark links that point to either the [Script](https://www.adobe.com/go/addon-playground?executionMode=script) or [Add-on](https://www.adobe.com/go/addon-playground) Mode. -- The Code Playground now supports multiple sessions backed up in the cloud, allowing you to save your work and resume where you left off anywhere. Check out the **More** menu to [manage your sessions](./code-playground-workflow.md#session-management) (find, rename, or delete). -- Now you can try out the code blocks (e.g. in the [How-to guides](../learn/how_to/use_text.md)) by simply clicking on the **Try in playground** button. -- The [Code Playground](./code-playground.md) documentation has been **updated and split into multiple pages** for better organization. - - [Overview](./code-playground.md) - - [Script Mode](./code-playground-script-mode.md) - - [Add-on Mode](./code-playground-addon-mode.md) - - [Workflow & Productivity](./code-playground-workflow.md) - - [Troubleshooting](./code-playground-troubleshooting.md) +- The Code Playground now supports multiple sessions backed up in the cloud, allowing you to save your work and resume where you left off anywhere. Check out the **More** menu to [manage your sessions](code-playground-workflow.md#session-management) (find, rename, or delete). +- Now you can try out the code blocks (e.g. in the [How-to guides](../learn/how-to/use-text.md)) by simply clicking on the **Try in playground** button. +- The [Code Playground](code-playground.md) documentation has been **updated and split into multiple pages** for better organization. + - [Overview](code-playground.md) + - [Script Mode](code-playground-script-mode.md) + - [Add-on Mode](code-playground-addon-mode.md) + - [Workflow & Productivity](code-playground-workflow.md) + - [Troubleshooting](code-playground-troubleshooting.md) ### Added -- It's now easier to identify Console logs coming from the CLI or Code Playground, because they automatically include new [helpful prefixes](./code-playground-workflow.md#debugging) such as `[Playground: Add-on]`, `[Playground: Script]`, and `[Add-on: ]`. +- It's now easier to identify Console logs coming from the CLI or Code Playground, because they automatically include new [helpful prefixes](code-playground-workflow.md#debugging) such as `[Playground: Add-on]`, `[Playground: Script]`, and `[Add-on: ]`. - Open Add-on testing window with a single click. Bookmark the URL ([https://www.adobe.com/go/addon-cli](https://www.adobe.com/go/addon-cli)) to easily access it later. -- New Express-specific Document API classes: [`ExpressContext`](../../references/document-sandbox/document-apis/classes/ExpressContext.md), [`ExpressEditor`](../../references/document-sandbox/document-apis/classes/ExpressEditor.md), and [`ExpressViewport`](../../references/document-sandbox/document-apis/classes/ExpressViewport.md), which inherit from the corresponding non-specific Classes. -- New Text classes: [`StandaloneTextContentModel`](../../references/document-sandbox/document-apis/classes/StandaloneTextContentModel.md) and [`ThreadedTextContentModel`](../../references/document-sandbox/document-apis/classes/ThreadedTextContentModel.md), representing a complete piece of text content contained within a single [`StandaloneTextNode`](../../references/document-sandbox/document-apis/classes/StandaloneTextNode.md) or split across multiple [`ThreadedTextNode`](../../references/document-sandbox/document-apis/classes/ThreadedTextNode.md)s. -- **Experimental** [`ImageRectangleNode.fetchBitmapImage()`](../../references/document-sandbox/document-apis/classes/ImageRectangleNode.md#fetchbitmapimage) method - Fetch the bitmap image associated with the image rectangle node. -- **Experimental** [`BitmapImage.data()`](../../references/document-sandbox/document-apis/classes/BitmapImage.md#data) method - Fetch the bitmap image data as a Blob. +- New Express-specific Document API classes: [`ExpressContext`](../../references/document-sandbox/document-apis/classes/express-context.md), [`ExpressEditor`](../../references/document-sandbox/document-apis/classes/express-editor.md), and [`ExpressViewport`](../../references/document-sandbox/document-apis/classes/express-viewport.md), which inherit from the corresponding non-specific Classes. +- New Text classes: [`StandaloneTextContentModel`](../../references/document-sandbox/document-apis/classes/standalone-text-content-model.md) and [`ThreadedTextContentModel`](../../references/document-sandbox/document-apis/classes/threaded-text-content-model.md), representing a complete piece of text content contained within a single [`StandaloneTextNode`](../../references/document-sandbox/document-apis/classes/standalone-text-node.md) or split across multiple [`ThreadedTextNode`](../../references/document-sandbox/document-apis/classes/threaded-text-node.md)s. +- **Experimental** [`ImageRectangleNode.fetchBitmapImage()`](../../references/document-sandbox/document-apis/classes/image-rectangle-node.md#fetchbitmapimage) method - Fetch the bitmap image associated with the image rectangle node. +- **Experimental** [`BitmapImage.data()`](../../references/document-sandbox/document-apis/classes/bitmap-image.md#data) method - Fetch the bitmap image data as a Blob. ### Updated -- The `Context.currentPage()` method has moved to the new [`ExpressContext.currentPage()`](../../references/document-sandbox/document-apis/classes/ExpressContext.md#currentpage). -- The `Viewport` class has been renamed to [`ExpressViewport`](../../references/document-sandbox/document-apis/classes/ExpressViewport.md). +- The `Context.currentPage()` method has moved to the new [`ExpressContext.currentPage()`](../../references/document-sandbox/document-apis/classes/express-context.md#currentpage). +- The `Viewport` class has been renamed to [`ExpressViewport`](../../references/document-sandbox/document-apis/classes/express-viewport.md). ## 2025-11-10 ### Added -- New [Known Issues & Limitations](./local_development/known_issues_limitations.md#chrome-local-network-access-restriction) documentation for Chrome Local Network Access restriction (Chrome 142+) that affects local add-on development +- New [Known Issues & Limitations](local-development/known-issues-limitations.md#chrome-local-network-access-restriction) documentation for Chrome Local Network Access restriction (Chrome 142+) that affects local add-on development - New [FAQ entry](../support/faq.md#chrome-is-blocking-my-local-add-on-development-with-a-local-network-access-permission-prompt-what-should-i-do) with troubleshooting steps for the Chrome Local Network Access permission prompt -- Added informational alert in the [Browser debugging guide](./local_development/browser.md) to notify Chrome users about the Local Network Access permission requirement +- Added informational alert in the [Browser debugging guide](local-development/browser.md) to notify Chrome users about the Local Network Access permission requirement ## 2025-10-08 ### Added -- **Experimental** [`id`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#id) property - Unique identifier for text content models -- **Experimental** [`TextStyleSource`](../../references/document-sandbox/document-apis/namespaces/Constants/enumerations/TextStyleSource.md) enumeration - Options for text style source matching +- **Experimental** [`id`](../../references/document-sandbox/document-apis/classes/text-content-model.md#id) property - Unique identifier for text content models +- **Experimental** [`TextStyleSource`](../../references/document-sandbox/document-apis/namespaces/constants/enumerations/text-style-source.md) enumeration - Options for text style source matching ### Updated -- [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/Node.md#cloneinplace) method **promoted from experimental to stable** - Available on all node types for creating copies with subtrees -- [`paragraphStyleRanges`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#paragraphstyleranges) property **promoted from experimental to stable** - Get/set paragraph-level styles with ranges -- [`applyParagraphStyles()`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#applyparagraphstyles) method **promoted from experimental to stable** - Apply styles to specific paragraph ranges -- [`layout`](../../references/document-sandbox/document-apis/classes/StandaloneTextNode.md#layout) property **promoted from experimental to stable** - Control text layout modes for standalone text -- [`layout`](../../references/document-sandbox/document-apis/classes/ThreadedTextNode.md#layout) property **promoted from experimental to stable** - Control text layout modes for threaded text -- [`AreaTextLayout`](../../references/document-sandbox/document-apis/interfaces/AreaTextLayout.md) interface **promoted from experimental to stable** - Fixed width and height text layout configuration -- [`AutoHeightTextLayout`](../../references/document-sandbox/document-apis/interfaces/AutoHeightTextLayout.md) interface **promoted from experimental to stable** - Auto-height text layout configuration -- [`AutoWidthTextLayout`](../../references/document-sandbox/document-apis/interfaces/AutoWidthTextLayout.md) interface **promoted from experimental to stable** - Auto-width text layout configuration -- [`UnsupportedTextLayout`](../../references/document-sandbox/document-apis/interfaces/UnsupportedTextLayout.md) interface **promoted from experimental to stable** - Representation of unsupported text layouts -- [`ParagraphStyles`](../../references/document-sandbox/document-apis/interfaces/ParagraphStyles.md) interface **promoted from experimental to stable** - Complete paragraph style definitions -- [`ParagraphStylesInput`](../../references/document-sandbox/document-apis/interfaces/ParagraphStylesInput.md) interface **promoted from experimental to stable** - Input interface for paragraph styles -- [`ParagraphStylesRange`](../../references/document-sandbox/document-apis/interfaces/ParagraphStylesRange.md) interface **promoted from experimental to stable** - Paragraph styles with text ranges -- [`ParagraphStylesRangeInput`](../../references/document-sandbox/document-apis/interfaces/ParagraphStylesRangeInput.md) interface **promoted from experimental to stable** - Input interface for paragraph style ranges -- [`BaseParagraphStyles`](../../references/document-sandbox/document-apis/interfaces/BaseParagraphStyles.md) interface **promoted from experimental to stable** - Base paragraph style properties -- [`OrderedListStyleInput`](../../references/document-sandbox/document-apis/interfaces/OrderedListStyleInput.md) interface **promoted from experimental to stable** - Configuration for ordered lists -- [`UnorderedListStyleInput`](../../references/document-sandbox/document-apis/interfaces/UnorderedListStyleInput.md) interface **promoted from experimental to stable** - Configuration for unordered lists -- [`OrderedListStyle`](../../references/document-sandbox/document-apis/type-aliases/OrderedListStyle.md) type **promoted from experimental to stable** - Type definition for ordered list styles -- [`UnorderedListStyle`](../../references/document-sandbox/document-apis/type-aliases/UnorderedListStyle.md) type **promoted from experimental to stable** - Type definition for unordered list styles -- [`OrderedListNumbering`](../../references/document-sandbox/document-apis/namespaces/Constants/enumerations/OrderedListNumbering.md) enumeration **promoted from experimental to stable** - Numbering types for ordered lists -- [`ParagraphListType`](../../references/document-sandbox/document-apis/namespaces/Constants/enumerations/ParagraphListType.md) enumeration **promoted from experimental to stable** - List type enumeration with `none` value added -- Removed experimental warnings from documentation guides for all APIs promoted to stable, including the [Use Text](../learn/how_to/use_text.md) guide +- [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/node.md#cloneinplace) method **promoted from experimental to stable** - Available on all node types for creating copies with subtrees +- [`paragraphStyleRanges`](../../references/document-sandbox/document-apis/classes/text-content-model.md#paragraphstyleranges) property **promoted from experimental to stable** - Get/set paragraph-level styles with ranges +- [`applyParagraphStyles()`](../../references/document-sandbox/document-apis/classes/text-content-model.md#applyparagraphstyles) method **promoted from experimental to stable** - Apply styles to specific paragraph ranges +- [`layout`](../../references/document-sandbox/document-apis/classes/standalone-text-node.md#layout) property **promoted from experimental to stable** - Control text layout modes for standalone text +- [`layout`](../../references/document-sandbox/document-apis/classes/threaded-text-node.md#layout) property **promoted from experimental to stable** - Control text layout modes for threaded text +- [`AreaTextLayout`](../../references/document-sandbox/document-apis/interfaces/area-text-layout.md) interface **promoted from experimental to stable** - Fixed width and height text layout configuration +- [`AutoHeightTextLayout`](../../references/document-sandbox/document-apis/interfaces/auto-height-text-layout.md) interface **promoted from experimental to stable** - Auto-height text layout configuration +- [`AutoWidthTextLayout`](../../references/document-sandbox/document-apis/interfaces/auto-width-text-layout.md) interface **promoted from experimental to stable** - Auto-width text layout configuration +- [`UnsupportedTextLayout`](../../references/document-sandbox/document-apis/interfaces/unsupported-text-layout.md) interface **promoted from experimental to stable** - Representation of unsupported text layouts +- [`ParagraphStyles`](../../references/document-sandbox/document-apis/interfaces/paragraph-styles.md) interface **promoted from experimental to stable** - Complete paragraph style definitions +- [`ParagraphStylesInput`](../../references/document-sandbox/document-apis/interfaces/paragraph-styles-input.md) interface **promoted from experimental to stable** - Input interface for paragraph styles +- [`ParagraphStylesRange`](../../references/document-sandbox/document-apis/interfaces/paragraph-styles-range.md) interface **promoted from experimental to stable** - Paragraph styles with text ranges +- [`ParagraphStylesRangeInput`](../../references/document-sandbox/document-apis/interfaces/paragraph-styles-range-input.md) interface **promoted from experimental to stable** - Input interface for paragraph style ranges +- [`BaseParagraphStyles`](../../references/document-sandbox/document-apis/interfaces/base-paragraph-styles.md) interface **promoted from experimental to stable** - Base paragraph style properties +- [`OrderedListStyleInput`](../../references/document-sandbox/document-apis/interfaces/ordered-list-style-input.md) interface **promoted from experimental to stable** - Configuration for ordered lists +- [`UnorderedListStyleInput`](../../references/document-sandbox/document-apis/interfaces/unordered-list-style-input.md) interface **promoted from experimental to stable** - Configuration for unordered lists +- [`OrderedListStyle`](../../references/document-sandbox/document-apis/type-aliases/ordered-list-style.md) type **promoted from experimental to stable** - Type definition for ordered list styles +- [`UnorderedListStyle`](../../references/document-sandbox/document-apis/type-aliases/unordered-list-style.md) type **promoted from experimental to stable** - Type definition for unordered list styles +- [`OrderedListNumbering`](../../references/document-sandbox/document-apis/namespaces/constants/enumerations/ordered-list-numbering.md) enumeration **promoted from experimental to stable** - Numbering types for ordered lists +- [`ParagraphListType`](../../references/document-sandbox/document-apis/namespaces/constants/enumerations/paragraph-list-type.md) enumeration **promoted from experimental to stable** - List type enumeration with `none` value added +- Removed experimental warnings from documentation guides for all APIs promoted to stable, including the [Use Text](../learn/how-to/use-text.md) guide ## 2025-10-02 @@ -178,27 +178,27 @@ The following how-to guides have been updated with `ImportAddOnData` support for ### Added -- New Text Replacement APIs: [`appendText()`](../../references/document-sandbox/document-apis/classes/TextNodeContentModel.md#appendtext), [`deleteText()`](../../references/document-sandbox/document-apis/classes/TextNodeContentModel.md#deleteText), [`insertText()`](../../references/document-sandbox/document-apis/classes/TextNodeContentModel.md#insertText), and [`replaceText()`](../../references/document-sandbox/document-apis/classes/TextNodeContentModel.md#replaceText). +- New Text Replacement APIs: [`appendText()`](../../references/document-sandbox/document-apis/classes/text-node-content-model.md#appendtext), [`deleteText()`](../../references/document-sandbox/document-apis/classes/text-node-content-model.md#deleteText), [`insertText()`](../../references/document-sandbox/document-apis/classes/text-node-content-model.md#insertText), and [`replaceText()`](../../references/document-sandbox/document-apis/classes/text-node-content-model.md#replaceText). **IMPORTANT:** The Text Replacement APIs are currently **_experimental only_** and should not be used in any add-ons you will be distributing until they have been declared stable. To use these APIs, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../references/manifest/index.md#requirements) section of the `manifest.json`. -- New [`mediaAddOnData`](../../references/document-sandbox/document-apis/classes/ImageRectangleNode.md#mediaAddOnData) to support additional metadata on the `ImageRectangleNode`. -- New `link` property in Character Style ranges [`CharacterStylesInput`](../../references/document-sandbox/document-apis/interfaces/CharacterStylesInput.md#link) to support hyperlinks. -- The [Use Text](../learn/how_to/use_text.md) guide has been updated to include the new Text APIs. -- The [Use Images](../learn/how_to/use_images.md) guide has been updated to include a `replaceMedia()` example. +- New [`mediaAddOnData`](../../references/document-sandbox/document-apis/classes/image-rectangle-node.md#mediaAddOnData) to support additional metadata on the `ImageRectangleNode`. +- New `link` property in Character Style ranges [`CharacterStylesInput`](../../references/document-sandbox/document-apis/interfaces/character-styles-input.md#link) to support hyperlinks. +- The [Use Text](../learn/how-to/use-text.md) guide has been updated to include the new Text APIs. +- The [Use Images](../learn/how-to/use-images.md) guide has been updated to include a `replaceMedia()` example. ### Updated -- Renamed `clone()` to [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/Node.md#cloneInPlace). +- Renamed `clone()` to [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/node.md#cloneInPlace). -**IMPORTANT:** The [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/Node.md#cloneInPlace) method is currently **_experimental only_** and should not be used in any add-ons you will be distributing until it has been declared stable. To use this method, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../references/manifest/index.md#requirements) section of the `manifest.json`. +**IMPORTANT:** The [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/node.md#cloneInPlace) method is currently **_experimental only_** and should not be used in any add-ons you will be distributing until it has been declared stable. To use this method, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../references/manifest/index.md#requirements) section of the `manifest.json`. -- Updated [`maskShape`](../../references/document-sandbox/document-apis/classes/GridCellNode.md#maskShape) in `GridCellNode` to readonly. -- The [`BitmapImage`](../../references/document-sandbox/document-apis/classes/BitmapImage.md) has been converted from an interface to a class. +- Updated [`maskShape`](../../references/document-sandbox/document-apis/classes/grid-cell-node.md#maskShape) in `GridCellNode` to readonly. +- The [`BitmapImage`](../../references/document-sandbox/document-apis/classes/bitmap-image.md) has been converted from an interface to a class. ## 2025-09-01 @@ -218,22 +218,22 @@ With MCP-enabled IDEs (Cursor, Claude Desktop, VS Code etc.), developers can [co ### Updated -- [Page Metadata how-to guide](../learn/how_to/page_metadata.md) with documentation and examples for the new experimental `getSelectedPageIds()` method, including usage patterns for getting metadata of only selected pages. -- [Create Renditions how-to guide](../learn/how_to/create_renditions.md) with comprehensive PPTX export support documentation, including developer guidance about font differences and content limitations when exporting to PowerPoint format. -- [Add-on Iframe Context guide](../learn/platform_concepts/context.md) with additional permissions documentation, including details about `oauth`, `clipboard`, `microphone`, and `camera` permissions beyond the existing sandbox permissions. +- [Page Metadata how-to guide](../learn/how-to/page-metadata.md) with documentation and examples for the new experimental `getSelectedPageIds()` method, including usage patterns for getting metadata of only selected pages. +- [Create Renditions how-to guide](../learn/how-to/create-renditions.md) with comprehensive PPTX export support documentation, including developer guidance about font differences and content limitations when exporting to PowerPoint format. +- [Add-on Iframe Context guide](../learn/platform-concepts/context.md) with additional permissions documentation, including details about `oauth`, `clipboard`, `microphone`, and `camera` permissions beyond the existing sandbox permissions. - [FAQ](../support/faq.md) with a new comprehensive entry about available add-on permissions and their configuration, plus updated supported file formats for imported content organized by category (Image, Design, Video, Audio). ## 2025-08-14 ### Added -- The [Code Playground](./code-playground.md) now includes a download feature that allows developers to export their playground code as a zip file containing both the add-on folder structure and a standalone script file. This enables seamless transition from prototyping in the playground to local development using the CLI. +- The [Code Playground](code-playground.md) now includes a download feature that allows developers to export their playground code as a zip file containing both the add-on folder structure and a standalone script file. This enables seamless transition from prototyping in the playground to local development using the CLI. ## 2025-07-27 ### Added -- New [`isAnonymousUser()`](../../references/addonsdk/app-currentUser.md#isanonymoususer) method to the [`addOnUISdk.app.currentUser`](../../references/addonsdk/app-currentUser.md) API. This method returns a boolean indicating whether the current user is browsing as a guest (not logged in). +- New [`isAnonymousUser()`](../../references/addonsdk/app-current-user.md#isanonymoususer) method to the [`addOnUISdk.app.currentUser`](../../references/addonsdk/app-current-user.md) API. This method returns a boolean indicating whether the current user is browsing as a guest (not logged in). - New [`exportAllowed()`](../../references/addonsdk/app-document.md#exportallowed) method added to the [`addOnUISdk.app.document`](../../references/addonsdk/app-document.md) API. This method determines whether the current document can be exported based on its review status in collaborative review and approval workflows. - Enhanced [`importPdf()`](../../references/addonsdk/app-document.md#importpdf) method now supports a [`SourceMimeTypeInfo`](../../references/addonsdk/app-document.md#sourcemimetypeinfo) parameter. When your add-on converts Word documents (`.docx`) or Google Docs (`.gdoc`) to PDF before importing, you can now specify the original file's mime type to improve the user experience. - Enhanced drag-and-drop functionality with [`SourceMimeTypeInfo`](../../references/addonsdk/addonsdk-app.md#dragcompletiondata) support. @@ -242,33 +242,33 @@ With MCP-enabled IDEs (Cursor, Claude Desktop, VS Code etc.), developers can [co ### Updated -- [User Info guide](../learn/how_to/user_info.md) with guidance on handling logged out users (browsing as a guest), with important considerations and limitations. -- [Create Renditions guide](../learn/how_to/create_renditions.md) to include proactive export permission checking using `exportAllowed()` before creating renditions with `RenditionIntent.export` or `RenditionIntent.print`. The guide now demonstrates graceful fallback to preview renditions when export is restricted. -- [PDF and PowerPoint guide](../learn/how_to/use_pdf_powerpoint.md) with information about the `sourceMimeType` parameter for improved UX when importing converted documents. -- [Drag-and-Drop guide](../learn/how_to/drag_and_drop.md) with examples of using `sourceMimeType` when dragging converted documents. -- The [Grids add-on tutorial](../learn/how_to/tutorials/grids-addon.md) has been updated to use the Adobe Express native [Color Picker](../../references/ui-components/color-picker.md) instead of the hidden `` element workaround. +- [User Info guide](../learn/how-to/user-info.md) with guidance on handling logged out users (browsing as a guest), with important considerations and limitations. +- [Create Renditions guide](../learn/how-to/create-renditions.md) to include proactive export permission checking using `exportAllowed()` before creating renditions with `RenditionIntent.export` or `RenditionIntent.print`. The guide now demonstrates graceful fallback to preview renditions when export is restricted. +- [PDF and PowerPoint guide](../learn/how-to/use-pdf-powerpoint.md) with information about the `sourceMimeType` parameter for improved UX when importing converted documents. +- [Drag-and-Drop guide](../learn/how-to/drag-and-drop.md) with examples of using `sourceMimeType` when dragging converted documents. +- The [Grids add-on tutorial](../learn/how-to/tutorials/grids-addon.md) has been updated to use the Adobe Express native [Color Picker](../../references/ui-components/color-picker.md) instead of the hidden `` element workaround. ## 2025-07-25 ### Added -- The Text API has been updated to include Super/SubScript via the `baselineShift` property of the [CharacterStyles](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md) interface. The corresponding [TextScriptStyle](../../references/document-sandbox/document-apis/enumerations/TextScriptStyle.md) enumerable has been added. The new API has been introduced as stable. -- A new [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/Node.md#cloneInPlace) method has been added to the [Node](../../references/document-sandbox/document-apis/classes/Node.md) class and propagated to all its subclasses, which allows you to clone a node and all its children. This new API is still experimental, and requires the `experimentalApis` flag to be set to `true` in the add-on's `manifest.json`. -- New [`MediaRectangleNode`](../../references/document-sandbox/document-apis/classes/MediaRectangleNode.md), a base class for a rectangular node that represents the _uncropped_ media within a [`MediaContainerNode`](../../references/document-sandbox/document-apis/classes/MediaContainerNode.md). -- New [`UnknownMediaRectangleNode`](../../references/document-sandbox/document-apis/classes/UnknownMediaRectangleNode.md), a subclass of [`MediaRectangleNode`](../../references/document-sandbox/document-apis/classes/MediaRectangleNode.md) for cases where the media type is not yet supported by the API. +- The Text API has been updated to include Super/SubScript via the `baselineShift` property of the [CharacterStyles](../../references/document-sandbox/document-apis/interfaces/character-styles.md) interface. The corresponding [TextScriptStyle](../../references/document-sandbox/document-apis/enumerations/text-script-style.md) enumerable has been added. The new API has been introduced as stable. +- A new [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/node.md#cloneInPlace) method has been added to the [Node](../../references/document-sandbox/document-apis/classes/node.md) class and propagated to all its subclasses, which allows you to clone a node and all its children. This new API is still experimental, and requires the `experimentalApis` flag to be set to `true` in the add-on's `manifest.json`. +- New [`MediaRectangleNode`](../../references/document-sandbox/document-apis/classes/media-rectangle-node.md), a base class for a rectangular node that represents the _uncropped_ media within a [`MediaContainerNode`](../../references/document-sandbox/document-apis/classes/media-container-node.md). +- New [`UnknownMediaRectangleNode`](../../references/document-sandbox/document-apis/classes/unknown-media-rectangle-node.md), a subclass of [`MediaRectangleNode`](../../references/document-sandbox/document-apis/classes/media-rectangle-node.md) for cases where the media type is not yet supported by the API. ## 2025-07-11 ### Added -- New [Markdown Parser add-on tutorial](../learn/how_to/tutorials/markdown-parser-text-api.md) covering the Text API, while building from scratch an add-on capable of parsing Markdown files and converting them into rich text directly within an Adobe Express document. -- New [Resize and Rescale Elements](../learn/how_to/resize_elements.md) how-to guide, which covers the new Resize/Rescale APIs, and provides examples and code snippets. +- New [Markdown Parser add-on tutorial](../learn/how-to/tutorials/markdown-parser-text-api.md) covering the Text API, while building from scratch an add-on capable of parsing Markdown files and converting them into rich text directly within an Adobe Express document. +- New [Resize and Rescale Elements](../learn/how-to/resize-elements.md) how-to guide, which covers the new Resize/Rescale APIs, and provides examples and code snippets. ## 2025-06-19 ### Added -The [Page Metadata API](../../references/addonsdk/app-document.md#pagemetadata) now includes new properties to detect audio, video, and animated content on pages. You can retrieve duration information for pages with temporal content (such as timelines). We've also updated the [how-to guide](../learn/how_to/page_metadata.md) to cover these new capabilities. +The [Page Metadata API](../../references/addonsdk/app-document.md#pagemetadata) now includes new properties to detect audio, video, and animated content on pages. You can retrieve duration information for pages with temporal content (such as timelines). We've also updated the [how-to guide](../learn/how-to/page-metadata.md) to cover these new capabilities. ## 2025-06-06 @@ -280,21 +280,21 @@ The [Page Metadata API](../../references/addonsdk/app-document.md#pagemetadata) ### Added -- Four new Resize/Rescale APIs have been added to the [Node](../../references/document-sandbox/document-apis/classes/Node.md) class as experimental features: +- Four new Resize/Rescale APIs have been added to the [Node](../../references/document-sandbox/document-apis/classes/node.md) class as experimental features: - `rescaleProportionalToHeight()` - `rescaleProportionalToWidth()` - `resizeToCover()` - `resizeToFitWithin()` -- [`Editor.createText()`](../../references/document-sandbox/document-apis/classes/Editor.md#createtext) now accepts a String parameter, which sets the text content of the new node. The use without a parameter is deprecated. -- [`TextNode`](../../references/document-sandbox/document-apis/classes/TextNode.md) is now an abstract base class with two specialized subclasses: - - [StandaloneTextNode](../../references/document-sandbox/document-apis/classes/StandaloneTextNode.md): displays text in a single frame. - - [ThreadedTextNode](../../references/document-sandbox/document-apis/classes/ThreadedTextNode.md): supports text that can flow across multiple frames. +- [`Editor.createText()`](../../references/document-sandbox/document-apis/classes/editor.md#createtext) now accepts a String parameter, which sets the text content of the new node. The use without a parameter is deprecated. +- [`TextNode`](../../references/document-sandbox/document-apis/classes/text-node.md) is now an abstract base class with two specialized subclasses: + - [StandaloneTextNode](../../references/document-sandbox/document-apis/classes/standalone-text-node.md): displays text in a single frame. + - [ThreadedTextNode](../../references/document-sandbox/document-apis/classes/threaded-text-node.md): supports text that can flow across multiple frames. ## 2025-05-26 ### Added -- Added support for retrieving published (shared) document links via the new [`LinkOptions`](../../references/addonsdk/addonsdk-constants.md) enumerable in [`addOnUISdk.app.document.link()`](../../references/addonsdk/app-document.md#link), along with the `documentPublishedLinkAvailable` event, which is triggered when the published link becomes available. Both updates are reflected in the [Document Metadata How-to Guide](../learn/how_to/document_metadata.md). +- Added support for retrieving published (shared) document links via the new [`LinkOptions`](../../references/addonsdk/addonsdk-constants.md) enumerable in [`addOnUISdk.app.document.link()`](../../references/addonsdk/app-document.md#link), along with the `documentPublishedLinkAvailable` event, which is triggered when the published link becomes available. Both updates are reflected in the [Document Metadata How-to Guide](../learn/how-to/document-metadata.md). @@ -310,10 +310,10 @@ The [Page Metadata API](../../references/addonsdk/app-document.md#pagemetadata) - We’ve **completely revamped the information architecture** of the site! 🎉 The new structure is designed to make content easier to navigate, whether you’re just getting started or you’ve been building add-ons for a while. This update aims to reduce friction, surface what matters most, and help both newcomers and experienced developers find their way faster. Among the changes, we have: - Rebuilt the Guides navigation from scratch, and grouped the content in new sections (Getting Started, Learn, Build, Support). - - Introduced a new [Developer Journey](./developer-journey.md) page. - - Rewritten and improved the QuickStart guide, now [Hello, World!](./hello-world.md) - - Moved the Tutorials as [Complete Projects](../learn/how_to/tutorials/index.md) within the [How To Guides](../learn/how_to/index.md), now more visible. - - Regrouped content into the new [Platform Concepts](../learn/platform_concepts/context.md) and [Advanced Topics](../build/advanced-topics/frameworks-libraries-bundling.md) sections. + - Introduced a new [Developer Journey](developer-journey.md) page. + - Rewritten and improved the QuickStart guide, now [Hello, World!](hello-world.md) + - Moved the Tutorials as [Complete Projects](../learn/how-to/tutorials/index.md) within the [How To Guides](../learn/how-to/index.md), now more visible. + - Regrouped content into the new [Platform Concepts](../learn/platform-concepts/context.md) and [Advanced Topics](../build/advanced-topics/frameworks-libraries-bundling.md) sections. - Updated screenshots, added animations, and enhanced the overall site usability. - **Note:** with the new site structure, some of your bookmarks may be broken. We'll set redirects for the most common links, but please check and update them. - We're constantly thinking about ways to improve the developer experience; there is more to come, stay tuned and reach out if you want to share your thoughts! @@ -324,13 +324,13 @@ New OAuth2 redirect URI: As part of the sunsetting of the legacy version, Adobe Express has moved from the `new.express.adobe.com` domain to `express.adobe.com`. -While there are redirects in place, please **add** `https://express.adobe.com/static/oauth-redirect.html` **to the list of allowed redirect URIs** in your OAuth provider configuration in addition to the existing `https://new.express.adobe.com/static/oauth-redirect.html`. For more details, see the [OAuth2 guide](../learn/how_to/oauth2.md#login-and-logout-flows). +While there are redirects in place, please **add** `https://express.adobe.com/static/oauth-redirect.html` **to the list of allowed redirect URIs** in your OAuth provider configuration in addition to the existing `https://new.express.adobe.com/static/oauth-redirect.html`. For more details, see the [OAuth2 guide](../learn/how-to/oauth2.md#login-and-logout-flows). ## 2025-05-07 ### Added -- New [Using Lit & TypeScript Guide](../learn/how_to/tutorials/using-lit-typescript.md) to help developers understand and use Lit and TypeScript in their add-ons. +- New [Using Lit & TypeScript Guide](../learn/how-to/tutorials/using-lit-typescript.md) to help developers understand and use Lit and TypeScript in their add-ons. ## 2025-05-05 @@ -340,13 +340,13 @@ While there are redirects in place, please **add** `https://express.adobe.com/st - The `initialColor` parameter now accepts a string in `"#RRGGBB[AA]"` format, in addition to the previous HEX number `0xRRGGBB[AA]`—both with optional alpha channel. - We fixed the return value of the `ColorPickerEvent.colorChange` event, which now correctly handles the color with or without the alpha channel, depending on the value of the `disableAlphaChannel` parameter. - **Breaking change**: the `ColorPickerEvents` enum has been renamed to `ColorPickerEvent` (singular). -- Renamed the TextType enumerable to [`TextLayout`](../../references/document-sandbox/document-apis/enumerations/TextLayout.md) in the Text APIs. +- Renamed the TextType enumerable to [`TextLayout`](../../references/document-sandbox/document-apis/enumerations/text-layout.md) in the Text APIs. ## 2025-04-22 ### Updated -- The [Code Playground](./code-playground.md) documentation has been updated with details about the new [Script Mode](./code-playground-script-mode.md#how-to-use-script-mode) and [Local Persistence](./code-playground-workflow.md) features, as well as additional details around existing features. The updates include: +- The [Code Playground](code-playground.md) documentation has been updated with details about the new [Script Mode](code-playground-script-mode.md#how-to-use-script-mode) and [Local Persistence](code-playground-workflow.md) features, as well as additional details around existing features. The updates include: - New sections explaining Script Mode and Add-on Mode. - Detailed descriptions of the different tabs available in the Add-on mode and what type of code belongs in each. @@ -358,19 +358,19 @@ While there are redirects in place, please **add** `https://express.adobe.com/st ### Added -- New [`link()`](../../references/addonsdk/app-document.md#link) method added to the `addOnUISdk.app.document` reference and [Document Metadata How-to Guide](../learn/how_to/document_metadata.md). This method retrieves the document link and triggers a `documentLinkAvailable` event when the link is available. +- New [`link()`](../../references/addonsdk/app-document.md#link) method added to the `addOnUISdk.app.document` reference and [Document Metadata How-to Guide](../learn/how-to/document-metadata.md). This method retrieves the document link and triggers a `documentLinkAvailable` event when the link is available. - New [vue-starter](../learn/samples.md#vue-starter) sample add-on to help developers get started using Vue.js in their add-ons. -- Fixes `fromRGB()` method reference in the [Using Color How-to](../learn/how_to/use_color.md). +- Fixes `fromRGB()` method reference in the [Using Color How-to](../learn/how-to/use-color.md). ## 2025-04-03 ### Added -- A new [`hasUnavailableFonts()`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#hasunavailablefonts) method is added to [`TextContentModel`](../../references/document-sandbox/document-apis/classes/TextContentModel.md) class, which returns true if the text contains any fonts unavailable to the current user. +- A new [`hasUnavailableFonts()`](../../references/document-sandbox/document-apis/classes/text-content-model.md#hasunavailablefonts) method is added to [`TextContentModel`](../../references/document-sandbox/document-apis/classes/text-content-model.md) class, which returns true if the text contains any fonts unavailable to the current user. -**IMPORTANT:** The [`hasUnavailableFonts()`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#hasunavailablefonts) is currently **_experimental only_** and should not be used in any add-ons you will be distributing until it has been declared stable. To use this method, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../references/manifest/index.md#requirements) section of the `manifest.json`. +**IMPORTANT:** The [`hasUnavailableFonts()`](../../references/document-sandbox/document-apis/classes/text-content-model.md#hasunavailablefonts) is currently **_experimental only_** and should not be used in any add-ons you will be distributing until it has been declared stable. To use this method, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../references/manifest/index.md#requirements) section of the `manifest.json`. ### Updated @@ -419,7 +419,7 @@ For removing expired SSL certificate or certificate authority, developers can no ### Added - A native Color Picker is available to add-ons via the [`showColorPicker()`](../../references/addonsdk/addonsdk-app.md#showcolorpicker) and [`hideColorPicker()`](../../references/addonsdk/addonsdk-app.md#hidecolorpicker) methods of the `addOnUiSdk.app` object. -- We've updated the [Use Color](../learn/how_to/use_color.md) How-to guide, now including a few examples on the Color Picker. +- We've updated the [Use Color](../learn/how-to/use-color.md) How-to guide, now including a few examples on the Color Picker. - A [new section](../../references/ui-components/color-picker.md) has been added to the documentation, which provides a reference for the Adobe Express built-in UI components available to add-ons, like the Color Picker. - A new version of the `@adobe/ccweb-add-on-sdk-types` package (v1.14.0) has been released for the CLI. Run `npm update` from the root of your add-on project to update to get the latest typings. @@ -427,7 +427,7 @@ For removing expired SSL certificate or certificate authority, developers can no ### Added -- A new [How-to](../learn/how_to/index.md) section replaces the old Use Cases, expanding it to include more detailed guides on specific topics, like using Text, Color, or Geometry. Each guide includes a brief description, example code snippets, and links to relevant API references. +- A new [How-to](../learn/how-to/index.md) section replaces the old Use Cases, expanding it to include more detailed guides on specific topics, like using Text, Color, or Geometry. Each guide includes a brief description, example code snippets, and links to relevant API references. ## 2025-03-06 @@ -451,17 +451,17 @@ For removing expired SSL certificate or certificate authority, developers can no ### Changed - Stabilized the following HLAPI's: - - The [TextNode](../../references/document-sandbox/document-apis/classes/TextNode.md) API's. - - The [fromPostscriptName()](../../references/document-sandbox/document-apis/classes/Fonts.md#fromPostscriptName) API of [Fonts](../../references/document-sandbox/document-apis/classes/Fonts.md) class. - - The [TextContentModel](../../references/document-sandbox/document-apis/classes/TextContentModel.md) APIs like [`TextContentModel.characterStyleRanges`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#characterstyleranges). The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is no longer required to use these APIs. + - The [TextNode](../../references/document-sandbox/document-apis/classes/text-node.md) API's. + - The [fromPostscriptName()](../../references/document-sandbox/document-apis/classes/fonts.md#fromPostscriptName) API of [Fonts](../../references/document-sandbox/document-apis/classes/fonts.md) class. + - The [TextContentModel](../../references/document-sandbox/document-apis/classes/text-content-model.md) APIs like [`TextContentModel.characterStyleRanges`](../../references/document-sandbox/document-apis/classes/text-content-model.md#characterstyleranges). The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is no longer required to use these APIs. ## 2025-03-03 ### Changed -- The Per Element Metadata APIs have been stabilized. You can refer to the [AddOnData](../../references/document-sandbox/document-apis/classes/AddOnData.md) class for details. The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is no longer required to use these APIs. +- The Per Element Metadata APIs have been stabilized. You can refer to the [AddOnData](../../references/document-sandbox/document-apis/classes/add-on-data.md) class for details. The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is no longer required to use these APIs. -- The Selection Change Notification Events APIs have been stabilized. You can refer to the [Context](../../references/document-sandbox/document-apis/classes/Context.md) class, which provides two methods: [`on()`](../../references/document-sandbox/document-apis/classes/Context.md#on) and [`off()`](../../references/document-sandbox/document-apis/classes/Context.md#off). These methods allow you to register and un-register notifications for selection changes and selection properties changes. The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is no longer required to use these APIs. +- The Selection Change Notification Events APIs have been stabilized. You can refer to the [Context](../../references/document-sandbox/document-apis/classes/context.md) class, which provides two methods: [`on()`](../../references/document-sandbox/document-apis/classes/context.md#on) and [`off()`](../../references/document-sandbox/document-apis/classes/context.md#off). These methods allow you to register and un-register notifications for selection changes and selection properties changes. The [`experimentalApis`](../../references/manifest/index.md#requirements) flag is no longer required to use these APIs. ## 2025-02-26 @@ -477,7 +477,7 @@ For removing expired SSL certificate or certificate authority, developers can no **API `paragraphStyleRanges`** -Added new [`TextContentModel.paragraphStyleRanges`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#paragraphstyleranges),i.e. ParagraphStyles API as experimental, to apply styles to different paragraphs of text content. +Added new [`TextContentModel.paragraphStyleRanges`](../../references/document-sandbox/document-apis/classes/text-content-model.md#paragraphstyleranges),i.e. ParagraphStyles API as experimental, to apply styles to different paragraphs of text content. ### Changed @@ -507,8 +507,8 @@ Stabilized [`importPdf()`](../../references/addonsdk/app-document.md#importpdf) ### Added -- A new [`Viewport`](../../references/document-sandbox/document-apis/classes/ExpressViewport.md) class has been added to the Document APIs. `Viewport` represents the canvas area currently visible on-screen. -- A new API [`bringIntoView`](../../references/document-sandbox/document-apis/classes/ExpressViewport.md#bringIntoView) have been added which adjusts the viewport to make the node's bounds visible on-screen, assuming all bounds are within the artboard bounds. +- A new [`Viewport`](../../references/document-sandbox/document-apis/classes/express-viewport.md) class has been added to the Document APIs. `Viewport` represents the canvas area currently visible on-screen. +- A new API [`bringIntoView`](../../references/document-sandbox/document-apis/classes/express-viewport.md#bringIntoView) have been added which adjusts the viewport to make the node's bounds visible on-screen, assuming all bounds are within the artboard bounds. ## 2025-01-13 @@ -533,7 +533,7 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl ## 2024-10-08 -- Adds a brand new version of the [UX Guidelines](../build/design/ux_guidelines/introduction.md) for Adobe Express add-ons. +- Adds a brand new version of the [UX Guidelines](../build/design/ux-guidelines/introduction.md) for Adobe Express add-ons. - Removes the experimental warnings for [`addAnimatedImage()`](../../references/addonsdk/app-document.md#addanimatedimage) since it is now stable. - Adds the `author` property to [`MediaAttributes`](../../references/addonsdk/app-document.md#mediaattributes) to allow it to be used with the [`addAudio()`](../../references/addonsdk/app-document.md#addaudio) API. @@ -542,16 +542,16 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl ### New - Added many new **Text APIs** for improved text management. - - [`TextNode.fullContent`](../../references/document-sandbox/document-apis/classes/TextNode.md#fullcontent) accessor: returns the [`TextContentModel`](../../references/document-sandbox/document-apis/classes/TextContentModel.md) containing the complete text string and its styles associated to the Text Flow (Threaded Text or Overflow Text). - - [`TextNode.nextTextNode`](../../references/document-sandbox/document-apis/classes/TextNode.md#nexttextnode) accessor: gets the next node that overflowing text will spill into. - - [`TextNode.layout`](../../references/document-sandbox/document-apis/classes/TextNode.md#layout) accessor: gets and sets the [`TextType`](../../references/document-sandbox/document-apis/enumerations/TextLayout.md) of the text node frame. - - [`TextNode.visualEffects`](../../references/document-sandbox/document-apis/classes/TextNode.md#visualeffects) accessor: list of [`VisualEffectType`](../../references/document-sandbox/document-apis/enumerations/VisualEffectType.md) applied to the text node. - - [`TextContentModel.characterStyleRanges`](../../references/document-sandbox/document-apis/classes/TextContentModel.md#characterstyleranges) accessor: list of [character style](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md#color), [`font`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md#font), [`fontSize`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md#fontsize), [`letterSpacing`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md#letterSpacing) and [`underline`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/CharacterStyles.md#underline) properties. - - [AvailableFont](../../references/document-sandbox/document-apis/classes/AvailableFont.md) and [UnavailableFont](../../references/document-sandbox/document-apis/classes/UnavailableFont.md) classes. + - [`TextNode.fullContent`](../../references/document-sandbox/document-apis/classes/text-node.md#fullcontent) accessor: returns the [`TextContentModel`](../../references/document-sandbox/document-apis/classes/text-content-model.md) containing the complete text string and its styles associated to the Text Flow (Threaded Text or Overflow Text). + - [`TextNode.nextTextNode`](../../references/document-sandbox/document-apis/classes/text-node.md#nexttextnode) accessor: gets the next node that overflowing text will spill into. + - [`TextNode.layout`](../../references/document-sandbox/document-apis/classes/text-node.md#layout) accessor: gets and sets the [`TextType`](../../references/document-sandbox/document-apis/enumerations/text-layout.md) of the text node frame. + - [`TextNode.visualEffects`](../../references/document-sandbox/document-apis/classes/text-node.md#visualeffects) accessor: list of [`VisualEffectType`](../../references/document-sandbox/document-apis/enumerations/visual-effect-type.md) applied to the text node. + - [`TextContentModel.characterStyleRanges`](../../references/document-sandbox/document-apis/classes/text-content-model.md#characterstyleranges) accessor: list of [character style](../../references/document-sandbox/document-apis/interfaces/character-styles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/character-styles.md#color), [`font`](../../references/document-sandbox/document-apis/interfaces/character-styles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/character-styles.md#font), [`fontSize`](../../references/document-sandbox/document-apis/interfaces/character-styles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/character-styles.md#fontsize), [`letterSpacing`](../../references/document-sandbox/document-apis/interfaces/character-styles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/character-styles.md#letterSpacing) and [`underline`](../../references/document-sandbox/document-apis/interfaces/character-styles.md) ranges in the text content, controlling the [`color`](../../references/document-sandbox/document-apis/interfaces/character-styles.md#underline) properties. + - [AvailableFont](../../references/document-sandbox/document-apis/classes/available-font.md) and [UnavailableFont](../../references/document-sandbox/document-apis/classes/unavailable-font.md) classes. - Supporting interfaces, enumerations and type aliases. -- Added **Per Element Metadata APIs**: with this feature, add-ons can store private metadata to any node of the Express document. This metadata is accessible only to the add-on that has set it. See the [`AddOnData`](../../references/document-sandbox/document-apis/classes/AddOnData.md) class and the [`addOnData`](../../references/document-sandbox/document-apis/classes/BaseNode.md#addondata) accessor for the BaseNode class. -- Added **Selection Change Notification Events APIs**: add-on can register to be notified when selection and properties in the selection changes on the document. The [`Context`](../../references/document-sandbox/document-apis/classes/Context.md) class will expose two [`on()`](../../references/document-sandbox/document-apis/classes/Context.md#on) and [`off()`](../../references/document-sandbox/document-apis/classes/Context.md#off) methods which can be used to register and un-register selection change and selection properties change notifications. -- Added a new [`GridCellNode`](../../references/document-sandbox/document-apis/classes/GridCellNode.md) class that represents a **cell in a grid**. +- Added **Per Element Metadata APIs**: with this feature, add-ons can store private metadata to any node of the Express document. This metadata is accessible only to the add-on that has set it. See the [`AddOnData`](../../references/document-sandbox/document-apis/classes/add-on-data.md) class and the [`addOnData`](../../references/document-sandbox/document-apis/classes/base-node.md#addondata) accessor for the BaseNode class. +- Added **Selection Change Notification Events APIs**: add-on can register to be notified when selection and properties in the selection changes on the document. The [`Context`](../../references/document-sandbox/document-apis/classes/context.md) class will expose two [`on()`](../../references/document-sandbox/document-apis/classes/context.md#on) and [`off()`](../../references/document-sandbox/document-apis/classes/context.md#off) methods which can be used to register and un-register selection change and selection properties change notifications. +- Added a new [`GridCellNode`](../../references/document-sandbox/document-apis/classes/grid-cell-node.md) class that represents a **cell in a grid**. @@ -559,11 +559,11 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl ### Fixed -- [`GridLayoutNode.allChildren`](../../references/document-sandbox/document-apis/classes/GridLayoutNode.md#allchildren) does not include rectangle nodes. +- [`GridLayoutNode.allChildren`](../../references/document-sandbox/document-apis/classes/grid-layout-node.md#allchildren) does not include rectangle nodes. ### Deprecated -- [`TextNode.text`](../../references/document-sandbox/document-apis/classes/TextNode.md#text) is now deprecated; it is still working, but will be removed in a future update. Please use [`TextNode.fullContent.text`](../../references/document-sandbox/document-apis/classes/TextNode.md#fullcontent) instead. +- [`TextNode.text`](../../references/document-sandbox/document-apis/classes/text-node.md#text) is now deprecated; it is still working, but will be removed in a future update. Please use [`TextNode.fullContent.text`](../../references/document-sandbox/document-apis/classes/text-node.md#fullcontent) instead. ## 2024-09-24 @@ -571,7 +571,7 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl - Adds a new [`importPdf()`](../../references/addonsdk/app-document.md#importpdf) method which can be used to import a PDF as a new Adobe Express document. - Adds a new [`importPresentation()`](../../references/addonsdk/app-document.md#importpresentation) method which can be used to import a Powerpoint as a new Adobe Express document. - Adds notes about specific support and handling for animated GIF images when [importing](../../references/addonsdk/app-document.md#addimage) and [dragging content](../../references/addonsdk/addonsdk-app.md#enabledragtodocument). This includes a [new FAQ item](../support/faq.md#are-animated-gifs-supported-when-importing-or-dragging-content-to-the-document) summarizing the associated use cases. -- Adds all of the new methods mentioned above to the [How-to](../learn/how_to/index.md) section with example code snippets for each. +- Adds all of the new methods mentioned above to the [How-to](../learn/how-to/index.md) section with example code snippets for each. @@ -579,12 +579,12 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl ## 2024-09-10 -- Added a new [`replaceMedia()`](../../references/document-sandbox/document-apis/classes/MediaContainerNode.md#replacemedia) method to the `MediaContainerNode` class that can be used to replace existing media inline. -- Refactoring done to the [`Stroke`](../../references/document-sandbox/document-apis/interfaces/Stroke.md) APIs. +- Added a new [`replaceMedia()`](../../references/document-sandbox/document-apis/classes/media-container-node.md#replacemedia) method to the `MediaContainerNode` class that can be used to replace existing media inline. +- Refactoring done to the [`Stroke`](../../references/document-sandbox/document-apis/interfaces/stroke.md) APIs. ## 2024-07-22 -- Added a new [`format`](../../references/addonsdk/app-ui.md#format) property to the `addOnUISdk.app.ui` object that reflects the format used to display dates, times, numbers, etc. in the user's environment. It supports a [`"formatchange"`](../../references/addonsdk/app-ui.md#formatchange) event triggered when the format changes—see an example in the [Locale, Supported Locales, and Format](../learn/how_to/theme_locale.md) section. +- Added a new [`format`](../../references/addonsdk/app-ui.md#format) property to the `addOnUISdk.app.ui` object that reflects the format used to display dates, times, numbers, etc. in the user's environment. It supports a [`"formatchange"`](../../references/addonsdk/app-ui.md#formatchange) event triggered when the format changes—see an example in the [Locale, Supported Locales, and Format](../learn/how-to/theme-locale.md) section. - Removed `mobile` and `app` as [`supportedDeviceClass`](../../references/manifest/index.md#requirementsappssupporteddeviceclass) values in the Manifest's `requirements.apps` object. ## 2024-05-28 @@ -594,19 +594,19 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl ## 2024-05-21 -- The [Quickstart](./hello-world.md) and [Distribute](../build/distribute/index.md) guides have been updated to reflect major UI/UX improvements for in-app workflows, particularly around distribution and listing management. +- The [Quickstart](hello-world.md) and [Distribute](../build/distribute/index.md) guides have been updated to reflect major UI/UX improvements for in-app workflows, particularly around distribution and listing management. - The Add-ons tab is now active also in the Adobe Express home page, regardless of whether a project is open or not. - A new section on Marketplace [rejections](../build/distribute/rejections.md) has been added, highlighting the most common problems found during the add-on review process and how to avoid them. - The [Manifest Reference](../../references/manifest/index.md) has been updated with two new permission properties: `microphone` and `camera`. ## 2024-04-10 -- A new [`VisualNode`](../../references/document-sandbox/document-apis/classes/VisualNode.md) class has been added to the Document APIs, and represents any node that can be visually perceived in the content. +- A new [`VisualNode`](../../references/document-sandbox/document-apis/classes/visual-node.md) class has been added to the Document APIs, and represents any node that can be visually perceived in the content. - New Document APIs have been added: - - [`currentPage`](../../references/document-sandbox/document-apis/classes/ExpressContext.md#currentpage) Context accessor: returns the active page. - - [`visualRoot`](../../references/document-sandbox/document-apis/classes/VisualNode.md#visualroot) accessor: the highest ancestor that still has visual presence in the document—typically, an Artboard. - - [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/PageNode.md#cloneinplace) method: clones a Page, all artboards within it, and all content within those artboards. - - Support to Bounds has been added in several classes: [`boundsInParent`](../../references/document-sandbox/document-apis/classes/Node.md#boundsinparent); `boundsLocal` (for both [GroupNode](../../references/document-sandbox/document-apis/classes/GroupNode.md#boundslocal) and [VisualNode](../../references/document-sandbox/document-apis/classes/VisualNode.md#boundslocal)); [`centerPointLocal`](../../references/document-sandbox/document-apis/classes/VisualNode.md#centerpointlocal); [`topLeftLocal`](../../references/document-sandbox/document-apis/classes/VisualNode.md#topleftlocal); [`boundsInNode()`](../../references/document-sandbox/document-apis/classes/Node.md#boundsinnode); [`localPointInNode()`](../../references/document-sandbox/document-apis/classes/VisualNode.md#localpointinnode); + - [`currentPage`](../../references/document-sandbox/document-apis/classes/express-context.md#currentpage) Context accessor: returns the active page. + - [`visualRoot`](../../references/document-sandbox/document-apis/classes/visual-node.md#visualroot) accessor: the highest ancestor that still has visual presence in the document—typically, an Artboard. + - [`cloneInPlace()`](../../references/document-sandbox/document-apis/classes/page-node.md#cloneinplace) method: clones a Page, all artboards within it, and all content within those artboards. + - Support to Bounds has been added in several classes: [`boundsInParent`](../../references/document-sandbox/document-apis/classes/node.md#boundsinparent); `boundsLocal` (for both [GroupNode](../../references/document-sandbox/document-apis/classes/group-node.md#boundslocal) and [VisualNode](../../references/document-sandbox/document-apis/classes/visual-node.md#boundslocal)); [`centerPointLocal`](../../references/document-sandbox/document-apis/classes/visual-node.md#centerpointlocal); [`topLeftLocal`](../../references/document-sandbox/document-apis/classes/visual-node.md#topleftlocal); [`boundsInNode()`](../../references/document-sandbox/document-apis/classes/node.md#boundsinnode); [`localPointInNode()`](../../references/document-sandbox/document-apis/classes/visual-node.md#localpointinnode); - The CLI has been updated to release version `2.0.0`, and includes the following: - Periodic login and EULA consent are no longer required. @@ -616,7 +616,7 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl **NOTE:** The new version should be installed by default when you create a new add-on. If, for any reason, it doesn't, you can force it to install by clearing the `npx` cache first with `npx clear-npx-cache` or by specifying the version in the command, i.e.: `npx @adobe/create-ccweb-add-on@2.0.0 my-add-on`. - The [Samples](../learn/samples.md) page has been updated to document the existing add-ons in the [`express-add-on-samples`](https://github.com/AdobeDocs/express-add-on-samples) repository, including a newly added [`audio-recording-addon`](../learn/samples.md#audio-recording-addon). -- The [Common Use Cases](../learn/how_to/index.md) section has been refactored as a sub-menu, grouping similar topics into individual pages. A new [Login and Logout flows](../learn/how_to/oauth2.md#login-and-logout-flows) section has been added. Other minor fixes and improvements have been made to the documentation. +- The [Common Use Cases](../learn/how-to/index.md) section has been refactored as a sub-menu, grouping similar topics into individual pages. A new [Login and Logout flows](../learn/how-to/oauth2.md#login-and-logout-flows) section has been added. Other minor fixes and improvements have been made to the documentation. ## 2024-03-19 @@ -628,9 +628,9 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl ## 2024-03-08 -- [`getPagesMetadata()`](../../references/addonsdk/app-document.md#getpagesmetadata), [`startPremiumUpgradeIfFreeUser`](../../references/addonsdk/addonsdk-app.md#startpremiumupgradeiffreeuser) and [`isPremiumUser`](../../references/addonsdk/app-currentUser.md#ispremiumuser) have been moved to stable and no longer require the `experimentalApis` flag to be set. -- New examples have been added to the [use cases guide](../learn/how_to/premium_content.md) for handling premium content. -- A new video has been added to the [grids tutorial](../learn/how_to/tutorials/grids-addon.md) to help guide developers in building the grids add-on. +- [`getPagesMetadata()`](../../references/addonsdk/app-document.md#getpagesmetadata), [`startPremiumUpgradeIfFreeUser`](../../references/addonsdk/addonsdk-app.md#startpremiumupgradeiffreeuser) and [`isPremiumUser`](../../references/addonsdk/app-current-user.md#ispremiumuser) have been moved to stable and no longer require the `experimentalApis` flag to be set. +- New examples have been added to the [use cases guide](../learn/how-to/premium-content.md) for handling premium content. +- A new video has been added to the [grids tutorial](../learn/how-to/tutorials/grids-addon.md) to help guide developers in building the grids add-on. ## 2024-02-21 @@ -639,23 +639,23 @@ You must provide trader details by February 16, 2025, to keep your add-on visibl In addition, the [monetization guidelines](../build/distribute/guidelines/monetization.md) were updated with details to help guide you in communicating your monetization strategy, and include new branding [badges](../build/distribute/guidelines/monetization.md#branding-assets-for-monetization) you can use to visually indicate when content or features require a purchase or when they are paid and unlocked. Please ensure you review the [updated monetization guidelines](../build/distribute/guidelines/monetization.md) carefully for specific details. **NOTE:** Adobe does not currently provide a specific monetization feature, but with this update, provides a way for developers to communicate the monetization details of their add-ons. - The first phase of add-on analytics support has been released, and allows developers to [download insights data](../build/distribute/public-dist.md#post-submission-details-and-insights) for their published add-ons via the [Download insights](../build/distribute/public-dist.md#post-submission-details-and-insights) button in the in-app distribution modal. -- A new [Concepts guide](../learn/platform_concepts/document-api.md) was added to the [Document APIs](../../references/document-sandbox/document-apis/) section to provide a deep-dive into the architecture and key elements of the Adobe Express Document Object Model (DOM). +- A new [Concepts guide](../learn/platform-concepts/document-api.md) was added to the [Document APIs](../../references/document-sandbox/document-apis/index.md) section to provide a deep-dive into the architecture and key elements of the Adobe Express Document Object Model (DOM). ## 2024-02-14 -- A new `id` accessor has been added to the [`BaseNode`](../../references/document-sandbox/document-apis/classes/BaseNode.md) class in the Document APIs and is inherited by all classes that extend it. The `id` represents a unique identifier that stays the same when the file is closed and reopened, or if the node is moved to a different part of the document. +- A new `id` accessor has been added to the [`BaseNode`](../../references/document-sandbox/document-apis/classes/base-node.md) class in the Document APIs and is inherited by all classes that extend it. The `id` represents a unique identifier that stays the same when the file is closed and reopened, or if the node is moved to a different part of the document. ## 2024-02-07 -- A new [`createPath`](../../references/document-sandbox/document-apis/classes/Editor.md#createpath) method is now available for allowing you to create a path with the Document APIs. -- Updates descriptions in various methods and classes in the [Document APIs](../../references/document-sandbox/document-apis/). +- A new [`createPath`](../../references/document-sandbox/document-apis/classes/editor.md#createpath) method is now available for allowing you to create a path with the Document APIs. +- Updates descriptions in various methods and classes in the [Document APIs](../../references/document-sandbox/document-apis/index.md). - Updates to the [`createRenditions`](../../references/addonsdk/app-document.md#createrenditions) API, including a new [`print`](../../references/addonsdk/addonsdk-constants.md) option for `RenditionIntent` to be be used for generating a print optimized pdf, and an update to [`PdfRenditionOptions`](../../references/addonsdk/app-document.md#pdfrenditionoptions) which exposes the ability to customize each PDF Page Box's (`MediaBox`, `BleedBox`, `CropBox`, `TrimBox`) dimensions using a `pageBoxes` property. -- Updates to the [Using Adobe Spectrum tutorial](../learn/how_to/tutorials/spectrum-workshop/index.md) with additional details on [why you should use Spectrum CSS variables](../learn/how_to/tutorials/spectrum-workshop/part3.md#styling-with-spectrum-css) to style your add-ons, and [additional helpful guidelines for locating and using them](../learn/how_to/tutorials/spectrum-workshop/part3.md#layout-and-typography-styling). +- Updates to the [Using Adobe Spectrum tutorial](../learn/how-to/tutorials/spectrum-workshop/index.md) with additional details on [why you should use Spectrum CSS variables](../learn/how-to/tutorials/spectrum-workshop/part3.md#styling-with-spectrum-css) to style your add-ons, and [additional helpful guidelines for locating and using them](../learn/how-to/tutorials/spectrum-workshop/part3.md#layout-and-typography-styling). - The table of contents in each Document API class/interface/constant has been removed since it was a duplicate of the right side navigation menu. ## 2024-01-31 -Added a new tutorial - [Building UIs using Adobe's Spectrum Design System](../learn/how_to/tutorials/spectrum-workshop/index.md). +Added a new tutorial - [Building UIs using Adobe's Spectrum Design System](../learn/how-to/tutorials/spectrum-workshop/index.md). ## 2024-01-09 @@ -663,7 +663,7 @@ Added a new tutorial - [Building UIs using Adobe's Spectrum Design System](../le - [`startPremiumUpgradeIfFreeUser()`](../../references/addonsdk/addonsdk-app.md#startpremiumupgradeiffreeuser) experimental API has been added to the [addOnUISdk.app](../../references/addonsdk/addonsdk-app.md) object to display the in-app monetization upgrade flow and returns a value indicating whether the user upgraded to premium or not. -- [`isPremiumUser()`](../../references/addonsdk/app-currentUser.md#ispremiumuser) experimental API has been added to the [addOnUISdk.app.currentUser](../../references/addonsdk/app-currentUser.md) object to determine if the current user is a premium or free user. +- [`isPremiumUser()`](../../references/addonsdk/app-current-user.md#ispremiumuser) experimental API has been added to the [addOnUISdk.app.currentUser](../../references/addonsdk/app-current-user.md) object to determine if the current user is a premium or free user. @@ -679,13 +679,13 @@ Added a new tutorial - [Building UIs using Adobe's Spectrum Design System](../le -**BREAKING NEWS:** The [Adobe Express Document Sandbox](../../references/document-sandbox/) and all associated APIs have been deemed stable, and **no longer require the `experimentalApis` flag**. As a result, some breaking changes with these experimental APIs were introduced before deeming them stable, and they are summarized below. Please read them thoroughly and update your in-development add-ons as needed. If you run into any issues, please reach out to us on our [Adobe Express Add-on Developer’s Discord channel](http://discord.gg/nc3QDyFeb4) for help. +**BREAKING NEWS:** The [Adobe Express Document Sandbox](../../references/document-sandbox/index.md) and all associated APIs have been deemed stable, and **no longer require the `experimentalApis` flag**. As a result, some breaking changes with these experimental APIs were introduced before deeming them stable, and they are summarized below. Please read them thoroughly and update your in-development add-ons as needed. If you run into any issues, please reach out to us on our [Adobe Express Add-on Developer’s Discord channel](http://discord.gg/nc3QDyFeb4) for help. ### Breaking changes (experimental APIs) Some items in the following list of changes may have been mentioned in recent updates but are being listed in this summary again to serve as a reminder. -- The methods in the [Document API Editor class](../../references/document-sandbox/document-apis/classes/Editor.md) to create a color fill and stroke have been renamed to [`makeColorFill`](../../references/document-sandbox/document-apis/classes/Editor.md#makecolorfill) and [`makeStroke`](../../references/document-sandbox/document-apis/classes/Editor.md#makestroke) respectively. +- The methods in the [Document API Editor class](../../references/document-sandbox/document-apis/classes/editor.md) to create a color fill and stroke have been renamed to [`makeColorFill`](../../references/document-sandbox/document-apis/classes/editor.md#makecolorfill) and [`makeStroke`](../../references/document-sandbox/document-apis/classes/editor.md#makestroke) respectively. - `strokes` and `fills` have been renamed to their singular counterpart. (Express does not support multiple strokes or fills). You should use `stroke` and `fill` going forward to access them, and they will no longer be `ItemList` objects, since they represent only a single stroke or fill. ```js @@ -698,10 +698,10 @@ Some items in the following list of changes may have been mentioned in recent up ellipse.fill = ellipseFill; ``` - - `fill` and `stroke.color` are just a [color object](../../references/document-sandbox/document-apis/interfaces/Color.md) of the form `{ red, green, blue, alpha }`. + - `fill` and `stroke.color` are just a [color object](../../references/document-sandbox/document-apis/interfaces/color.md) of the form `{ red, green, blue, alpha }`. - `stroke` is an object of the form `{ color, width, dashPattern, dashOffset }` -- Color utilities have moved to [`colorUtils`](../../references/document-sandbox/document-apis/classes/ColorUtils.md) instead of `utils`. +- Color utilities have moved to [`colorUtils`](../../references/document-sandbox/document-apis/classes/color-utils.md) instead of `utils`. **Old**
@@ -764,11 +764,11 @@ Some items in the following list of changes may have been mentioned in recent up rectangle.translation = { x: 100, y: 20 }; // both x,y properties are required ``` -- A new [`BaseNode`](../../references/document-sandbox/document-apis/classes/BaseNode.md) class has been introduced, and [`ContainerNode`](../../references/document-sandbox/document-apis/interfaces/ContainerNode.md) has been moved from a class to an interface. -- The key to load APIs that use the Document APIs has changed, as well as the module names you import APIs from in the [Document Sandbox](../../references/document-sandbox/). The old ones will still work, but the CLI and templates have all been updated to use the new names. Please update your add-ons to use the new ones shown below: +- A new [`BaseNode`](../../references/document-sandbox/document-apis/classes/base-node.md) class has been introduced, and [`ContainerNode`](../../references/document-sandbox/document-apis/interfaces/container-node.md) has been moved from a class to an interface. +- The key to load APIs that use the Document APIs has changed, as well as the module names you import APIs from in the [Document Sandbox](../../references/document-sandbox/index.md). The old ones will still work, but the CLI and templates have all been updated to use the new names. Please update your add-ons to use the new ones shown below: **Adobe Express Document APIs SDK import**
- For access to the [Express document and content authoring APIs](../../references/document-sandbox/document-apis/): + For access to the [Express document and content authoring APIs](../../references/document-sandbox/document-apis/index.md): @@ -785,7 +785,7 @@ Some items in the following list of changes may have been mentioned in recent up ``` **Document Sandbox SDK import**
- For access to the [document sandbox runtime APIs](../../references/document-sandbox/): + For access to the [document sandbox runtime APIs](../../references/document-sandbox/index.md): @@ -821,14 +821,14 @@ Some items in the following list of changes may have been mentioned in recent up - The CLI has been updated to release version `1.1.1`, and includes the following: - - The document sandbox templates have been updated to reflect all of the latest changes to the [Document Sandbox APIs](../../references/document-sandbox/), and the `experimentalApis` flag has been removed. Please review the updated [references](../../references/document-sandbox/) and changelog entries thoroughly for details on all of the recent changes. You may also want to refer to the [document sandbox code samples](https://github.com/AdobeDocs/express-add-on-samples/tree/main/document-sandbox-samples) for additional help on how to use them. + - The document sandbox templates have been updated to reflect all of the latest changes to the [Document Sandbox APIs](../../references/document-sandbox/index.md), and the `experimentalApis` flag has been removed. Please review the updated [references](../../references/document-sandbox/index.md) and changelog entries thoroughly for details on all of the recent changes. You may also want to refer to the [document sandbox code samples](https://github.com/AdobeDocs/express-add-on-samples/tree/main/document-sandbox-samples) for additional help on how to use them. - Typings support has been added to the `javascript` templates to enable intellisense features. - Manifest property additions. - General improvements and bug fixes. **NOTE:** The new version should be installed by default when you create a new add-on. If, for any reason, it doesn't, you can force it to install by clearing the npx cache first with `npx clear-npx-cache` or by specifying the version in the command, i.e.: `npx @adobe/create-ccweb-add-on@1.1.1 my-add-on`. You can update any existing add-ons to use this new version by updating the version of the `ccweb-add-on-scripts` in the `package.json` to `1.1.1`. -- All [code samples](https://github.com/AdobeDocs/express-add-on-samples/tree/main/document-sandbox-samples) and the [Document API tutorial](../learn/how_to/tutorials/grids-addon.md) have also been updated to reflect all of the latest changes to the [Adobe Express Document Sandbox APIs](../../references/document-sandbox/document-apis/) listed here. +- All [code samples](https://github.com/AdobeDocs/express-add-on-samples/tree/main/document-sandbox-samples) and the [Document API tutorial](../learn/how-to/tutorials/grids-addon.md) have also been updated to reflect all of the latest changes to the [Adobe Express Document Sandbox APIs](../../references/document-sandbox/document-apis/index.md) listed here. - Removed all experimental APIs notes/warnings around the **Document Sandbox** since they **are now stable**. @@ -840,15 +840,15 @@ Some items in the following list of changes may have been mentioned in recent up - A new `getPagesMetadata()` method is now available in the [Add-on UI SDK `document`](../../references/addonsdk/app-document.md#getpagesmetadata) object and includes an example code snippet. **NOTE:** This method is still considered **experimental only** and should not be used in any add-ons you will be distributing until it has been declared stable. To use this method, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../references/manifest/index.md#requirements) section of the `manifest.json`. - The [`createRenditions()` export API](../../references/addonsdk/app-document.md#createrenditions) was updated with the following changes: - You can now choose to generate renditions of specific pages via a new [`Range.specificPages`](../../references/addonsdk/addonsdk-constants.md) constant value. - - The returned type now also includes page metadata (see [`PageMetadata`](../../references/addonsdk/app-document.md#pagemetadata)) including useful information such as the id, page size, pixels per inch, and whether the page has premium or temporal (timeline) content or not, (in addition to the existing blob and title). An example is provided in the reference as well as in [the use cases](../learn/how_to/page_metadata.md). -- A new [document metadata use case example](../learn/how_to/document_metadata.md) has been added to show how to retrieve the [document id](../../references/addonsdk/app-document.md#id) and [title (ie: name)](../../references/addonsdk/app-document.md#title), including how to listen for the [associated events](../../references/addonsdk/addonsdk-app.md#events). + - The returned type now also includes page metadata (see [`PageMetadata`](../../references/addonsdk/app-document.md#pagemetadata)) including useful information such as the id, page size, pixels per inch, and whether the page has premium or temporal (timeline) content or not, (in addition to the existing blob and title). An example is provided in the reference as well as in [the use cases](../learn/how-to/page-metadata.md). +- A new [document metadata use case example](../learn/how-to/document-metadata.md) has been added to show how to retrieve the [document id](../../references/addonsdk/app-document.md#id) and [title (ie: name)](../../references/addonsdk/app-document.md#title), including how to listen for the [associated events](../../references/addonsdk/addonsdk-app.md#events). - New tables have been added to the [Communication API reference](../../references/document-sandbox/communication/index.md) denoting the [supported](../../references/document-sandbox/communication/index.md#supported-data-types) and [unsupported data types](../../references/document-sandbox/communication/index.md#unsupported-data-types) that can be used across the [Communication API](../../references/document-sandbox/communication/index.md) layer. ## 2023-12-04 ### Updates -- The [Document API's](../../references/document-sandbox/document-apis/) were updated to add a new [`ColorUtils`](../../references/document-sandbox/document-apis/classes/ColorUtils.md) class, which replaces the previous `utils` module that was used as a color helper with a more enhanced utlility. If you've used the old `utils` module in your add-ons, it will require you to update them to use the new named import of `colorUtils` instead of `utils`. Color creation should now be done using the new [`colorUtils` module](../../references/document-sandbox/document-apis/classes/ColorUtils.md). An example of the old way and new way to create a color are shown below for reference: +- The [Document API's](../../references/document-sandbox/document-apis/index.md) were updated to add a new [`ColorUtils`](../../references/document-sandbox/document-apis/classes/color-utils.md) class, which replaces the previous `utils` module that was used as a color helper with a more enhanced utlility. If you've used the old `utils` module in your add-ons, it will require you to update them to use the new named import of `colorUtils` instead of `utils`. Color creation should now be done using the new [`colorUtils` module](../../references/document-sandbox/document-apis/classes/color-utils.md). An example of the old way and new way to create a color are shown below for reference: ```js // Before @@ -877,19 +877,19 @@ Some items in the following list of changes may have been mentioned in recent up ellipse.fill = ellipseFill; ``` -- A new release has landed for the [**In-App Developer Submission experience**](../build/distribute/) in Express. Some highlights from the release: +- A new release has landed for the [**In-App Developer Submission experience**](../build/distribute/index.md) in Express. Some highlights from the release: **Create Add-on flow:** You can now create [an add-on "container"](../build/distribute/public-dist.md#step-2-add-on-listing-settings) as your first step in building add-ons within the existing in-app distribution workflow. Creating the container gets you access to a few important settings and data (for instance your unique subdomain, see below) before you continue the development process in the CLI. All existing add-ons will automatically receive a parent container with the associated additional features today. - **Unique Subdomain retrieval:** As part of your add-on container, you will now be able to easily retrieve a unique subdomain for your add-on. Simply choose one of your add-ons in the distribution workflow and navigate to the new "Settings" tab and copy the Add-on URL. This URL is handy for addressing issues with CORS by adding the URL as an allowed origin. See [our CORS guide](../learn/platform_concepts/context.md#cors) for more details. + **Unique Subdomain retrieval:** As part of your add-on container, you will now be able to easily retrieve a unique subdomain for your add-on. Simply choose one of your add-ons in the distribution workflow and navigate to the new "Settings" tab and copy the Add-on URL. This URL is handy for addressing issues with CORS by adding the URL as an allowed origin. See [our CORS guide](../learn/platform-concepts/context.md#cors) for more details. **Delete Add-ons:** The "container" concept allowed us to offer better management and cleanup of your add-ons. You will now find the option to delete an add-on container entirely from the new "Settings" tab of a given add-on. **NOTE:** You can only delete add-ons that have not been published publicly or submitted to our Review team. Please contact us if you need to un-publish an add-on. - **Supported Languages:** The [version details step](../build/distribute/public-dist.md#step-4-enter-listing-details) for publishing add-ons publicly now includes fields to indicate which languages are supported by your add-ons (beyond the required English). You can choose from any of the languages Express supports, and your designation will be shown to users when they browse your listing details. See [our sample for detecting a user's locale to localize your add-on](../learn/how_to/theme_locale.md). + **Supported Languages:** The [version details step](../build/distribute/public-dist.md#step-4-enter-listing-details) for publishing add-ons publicly now includes fields to indicate which languages are supported by your add-ons (beyond the required English). You can choose from any of the languages Express supports, and your designation will be shown to users when they browse your listing details. See [our sample for detecting a user's locale to localize your add-on](../learn/how-to/theme-locale.md). -- Updated list of templates and details to include the [Document Sandbox template options](./local_development/dev_tooling.md#templates), and how to still scaffold from one when the [`--template` parameter is not explicitly supplied](./local_development/dev_tooling.md#no-template-parameter). +- Updated list of templates and details to include the [Document Sandbox template options](local-development/dev-tooling.md#templates), and how to still scaffold from one when the [`--template` parameter is not explicitly supplied](local-development/dev-tooling.md#no-template-parameter). - New FAQ item regarding the mime type for exported PDF files. This is due to an unexpected change made in Adobe Express core to the mime type returned when you generate a PDF using the export [`createRenditions`](../../references/addonsdk/app-document.md#createrenditions) method. In the past it would return `application/pdf`, but currently it returns `text/plain`. This is something to be aware of if you are inspecting the mime type in the response and failing if it's anything other than `application/pdf`. - Removed NPS survey. @@ -898,7 +898,7 @@ Some items in the following list of changes may have been mentioned in recent up ### Updates - Adds support to the [Add-on UI SDK](../../references/addonsdk/index.md) for retrieving the [document id](../../references/addonsdk/app-document.md#id) and [title](../../references/addonsdk/app-document.md#title), as well as the ability for the add-on to be notified of the [associated events](../../references/addonsdk/addonsdk-app.md#events). -- Updates the names of the SDK imports for the [Document Sandbox](../../references/document-sandbox/communication/index.md) and the [Document API's SDK](../../references/document-sandbox/document-apis/): +- Updates the names of the SDK imports for the [Document Sandbox](../../references/document-sandbox/communication/index.md) and the [Document API's SDK](../../references/document-sandbox/document-apis/index.md): **Document Sandbox SDK import**
@@ -951,20 +951,20 @@ Some items in the following list of changes may have been mentioned in recent up ### Updates - The [Web API's in the Document Sandbox Reference](../../references/document-sandbox/web/index.md) were updated to remove the timer methods which are no longer supported (ie: `setTimeout()`, `clearTimeout` and `setInterval()`, `clearInterval`). -- The [Document API References](../../references/document-sandbox/document-apis/) were updated with the following additions and changes: +- The [Document API References](../../references/document-sandbox/document-apis/index.md) were updated with the following additions and changes: **New Classes/Interfaces**
- - New [RestrictedItemList class](../../references/document-sandbox/document-apis/classes/RestrictedItemList.md) - - New [UnknownNode class](../../references/document-sandbox/document-apis/classes/UnknownNode.md) - - New [SolidColorShapeNode class](../../references/document-sandbox/document-apis/classes/SolidColorShapeNode.md) - - New [Point interface](../../references/document-sandbox/document-apis/interfaces/Point.md) - - New `queueAsyncEdit` method added to the [Editor](../../references/document-sandbox/document-apis/classes/Editor.md) class. + - New [RestrictedItemList class](../../references/document-sandbox/document-apis/classes/restricted-item-list.md) + - New [UnknownNode class](../../references/document-sandbox/document-apis/classes/unknown-node.md) + - New [SolidColorShapeNode class](../../references/document-sandbox/document-apis/classes/solid-color-shape-node.md) + - New [Point interface](../../references/document-sandbox/document-apis/interfaces/point.md) + - New `queueAsyncEdit` method added to the [Editor](../../references/document-sandbox/document-apis/classes/editor.md) class. - Renames the [Constants](../../references/document-sandbox/document-apis/enumerations/) to remove the `Value` suffix. **Updates to Node Classes**
-The accessors and methods below were removed or replaced with new names in the [`Node` class](../../references/document-sandbox/document-apis/classes/Node.md) and classes that extend it. Please refer to the [Document API References](../../references/document-sandbox/document-apis/) specifically to learn more about each. +The accessors and methods below were removed or replaced with new names in the [`Node` class](../../references/document-sandbox/document-apis/classes/node.md) and classes that extend it. Please refer to the [Document API References](../../references/document-sandbox/document-apis/index.md) specifically to learn more about each. - Removes `absoluteRotation` accessor - Removes `absoluteTransform` accessor @@ -981,16 +981,16 @@ The accessors and methods below were removed or replaced with new names in the [ ## 2023-11-27 -Updated [Document API references](../../references/document-sandbox/document-apis/) to include: +Updated [Document API references](../../references/document-sandbox/document-apis/index.md) to include: -- [ComplexShapeNode class](../../references/document-sandbox/document-apis/classes/ComplexShapeNode.md) -- [GridLayoutNode class](../../references/document-sandbox/document-apis/classes/GridLayoutNode.md) -- [IStrokableNode interface](../../references/document-sandbox/document-apis/interfaces/IStrokableNode.md) -- [FillRule constant](../../references/document-sandbox/document-apis/enumerations/FillRule.md) +- [ComplexShapeNode class](../../references/document-sandbox/document-apis/classes/complex-shape-node.md) +- [GridLayoutNode class](../../references/document-sandbox/document-apis/classes/grid-layout-node.md) +- [IStrokableNode interface](../../references/document-sandbox/document-apis/interfaces/i-strokable-node.md) +- [FillRule constant](../../references/document-sandbox/document-apis/enumerations/fill-rule.md) ## 2023-11-6 -- Added a [new tutorial section](../learn/how_to/tutorials/) to the Getting Started guides, including a new ["Building your first add-on with the Document API" tutorial](../learn/how_to/tutorials/grids-addon.md) by Davide Barranca. +- Added a [new tutorial section](../learn/how_to/tutorials/) to the Getting Started guides, including a new ["Building your first add-on with the Document API" tutorial](../learn/how-to/tutorials/grids-addon.md) by Davide Barranca. - Updated the naming conventions from Script Runtime to Document Sandbox and Editor APIs to Adobe Express Document APIs. The Document Sandbox now includes the Communication APIs, Web APIs and the Document APIs. - Updated sample code snippets to use the `addOnUISdk` import name (vs `AddOnUISDK`) similar to what's generated in the templates for consistency. @@ -1010,7 +1010,7 @@ Updates to the [OAuth APIs](../../references/addonsdk/app-oauth.md) to allow for ### Updates -Published new [Guidelines and requirements section](../build/distribute/guidelines/); including [General guidelines](../build/distribute/guidelines/general/), [Developer brand guidelines](../build/distribute/guidelines/), [Monetization guidelines](../build/distribute/guidelines/monetization.md) and [Generative AI guidelines](../build/distribute/guidelines/genai/). +Published new [Guidelines and requirements section](../build/distribute/guidelines/index.md); including [General guidelines](../build/distribute/guidelines/general/index.md), [Developer brand guidelines](../build/distribute/guidelines/index.md), [Monetization guidelines](../build/distribute/guidelines/monetization.md) and [Generative AI guidelines](../build/distribute/guidelines/genai/index.md). ## 2023-10-03 @@ -1075,7 +1075,7 @@ If you're using the experimental Document Sandbox APIs in any add-ons currently, ### Added -- New [iframe Sandbox Context guide](../learn/platform_concepts/context.md) with details on the new `subdomain` support and CORS handling. +- New [iframe Sandbox Context guide](../learn/platform-concepts/context.md) with details on the new `subdomain` support and CORS handling. - How-to videos embedded in various guides to help visually show how to use the information in those sections. ### Updates @@ -1153,7 +1153,7 @@ Added new code sample to demonstrate how to use SWC-React and set theme properti ## 2023-08-29 -- Added [`currentUser` API](../learn/how_to/user_info.md) details and usage example to the [SDK References](https://developer.adobe.com/express/add-ons/docs/references/addonsdk/) and [Implementing Common Use Cases Guide](../learn/how_to/index.md). +- Added [`currentUser` API](../learn/how-to/user-info.md) details and usage example to the [SDK References](https://developer.adobe.com/express/add-ons/docs/references/addonsdk/) and [Implementing Common Use Cases Guide](../learn/how-to/index.md). - Added a new [licensed-addon code sample](https://developer.adobe.com/express/add-ons/docs/samples.md#licensed-addon) to illustrate how to implement monetization by leveraging the current userid. - Added [`devFlags` API](https://developer.adobe.com/express/add-ons/docs/references/addonsdk/app-devFlags) details, which can be used to simulate certain behavior during development. @@ -1169,13 +1169,13 @@ Added new code sample to demonstrate how to use SWC-React and set theme properti ### Updates -- Premium Content handling details have been added to the [Implementing Common Use Cases Guide](../learn/how_to/premium_content.md). Note the warning for ensuring that you include the specified `permissions` in the [`manifest.json`](../../references/manifest/index.md#entrypointspermissionssandbox) to `allow-popups` and `allow-popups-to-escape-sandbox` to ensure the pricing page can be loaded when needed (and note the addition of the `renditionPreview` flag in the [`requirements`](../../references/manifest/index.md#requirements) of the manifest when you want to allow premium content to be previewed). +- Premium Content handling details have been added to the [Implementing Common Use Cases Guide](../learn/how-to/premium-content.md). Note the warning for ensuring that you include the specified `permissions` in the [`manifest.json`](../../references/manifest/index.md#entrypointspermissionssandbox) to `allow-popups` and `allow-popups-to-escape-sandbox` to ensure the pricing page can be loaded when needed (and note the addition of the `renditionPreview` flag in the [`requirements`](../../references/manifest/index.md#requirements) of the manifest when you want to allow premium content to be previewed). ## 2023-08-09 ### Added -- Added new [references section](../../references/document-sandbox/) for the document sandbox APIs. +- Added new [references section](../../references/document-sandbox/index.md) for the document sandbox APIs. ### Important notes on document sandbox APIs (aka Document Sandbox) @@ -1220,18 +1220,18 @@ Added new code sample to demonstrate how to use SWC-React and set theme properti ### Added -- Added new properties to the manifest reference for `renditionPreview` in the [`requirements`](../../references/manifest/index.md#requirements) section, and the `script` property to the [`entryPoints`](../../references/manifest/index.md#entrypoints) section to support the new experimental [document sandbox APIs](../../references/document-sandbox/). +- Added new properties to the manifest reference for `renditionPreview` in the [`requirements`](../../references/manifest/index.md#requirements) section, and the `script` property to the [`entryPoints`](../../references/manifest/index.md#entrypoints) section to support the new experimental [document sandbox APIs](../../references/document-sandbox/index.md). - Added [`DisableDragToDocument`](../../references/addonsdk/addonsdk-app.md#disabledragtodocument-type-definition) and [`dropCancelReason`](../../references/addonsdk/addonsdk-app.md#dragendeventdata) support to the [`addonsdk.app`](../../references/addonsdk/addonsdk-app.md) reference. ## 2023-07-11 ### Added -- [UX Guidelines](../build/design/ux_guidelines/introduction.md) are now available! +- [UX Guidelines](../build/design/ux-guidelines/introduction.md) are now available! - A new [`requestedSize`](../../references/addonsdk/app-document.md#jpgrenditionoptions) parameter can now be supplied as part of the JPG and PNG rendition options passed in when exporting content with the `createRenditions` method. - A new [`clipboard` permission](../../references/manifest/index.md#entrypointspermissions) can now be set with the `clipboard-write` value in the manifest to allow an add-on to write data to the clipboard. -- Information on [using fonts](../build/design/ux_guidelines/visual_elements.md#typography). -- CORS / COEP header handling added to the [CORS guide](../learn/platform_concepts/context.md#cors--coep-handling) +- Information on [using fonts](../build/design/ux-guidelines/visual-elements.md#typography). +- CORS / COEP header handling added to the [CORS guide](../learn/platform-concepts/context.md#cors--coep-handling) ## 2023-06-08 diff --git a/src/pages/guides/getting_started/code-playground-addon-mode.md b/src/pages/guides/getting-started/code-playground-addon-mode.md similarity index 96% rename from src/pages/guides/getting_started/code-playground-addon-mode.md rename to src/pages/guides/getting-started/code-playground-addon-mode.md index 2cfbaa5db..49c882127 100644 --- a/src/pages/guides/getting_started/code-playground-addon-mode.md +++ b/src/pages/guides/getting-started/code-playground-addon-mode.md @@ -211,7 +211,7 @@ If you've already developed functionality in Script Mode: ## Next Steps -- **[Workflow & Productivity](./code-playground-workflow.md)**: Learn keyboard shortcuts and session management -- **[Troubleshooting](./code-playground-troubleshooting.md)**: Get help with common issues +- **[Workflow & Productivity](code-playground-workflow.md)**: Learn keyboard shortcuts and session management +- **[Troubleshooting](code-playground-troubleshooting.md)**: Get help with common issues - **[API References](../../references/index.md)**: Learn about the Document APIs and Add-on SDK -- **[How-To Guides](../learn/how_to/index.md)**: Master specific techniques and best practices +- **[How-To Guides](../learn/how-to/index.md)**: Master specific techniques and best practices diff --git a/src/pages/guides/getting_started/code-playground-script-mode.md b/src/pages/guides/getting-started/code-playground-script-mode.md similarity index 81% rename from src/pages/guides/getting_started/code-playground-script-mode.md rename to src/pages/guides/getting-started/code-playground-script-mode.md index 8c4666900..b2f3b189e 100644 --- a/src/pages/guides/getting_started/code-playground-script-mode.md +++ b/src/pages/guides/getting-started/code-playground-script-mode.md @@ -22,7 +22,7 @@ contributors: # Code Playground - Script Mode -Script Mode in Code Playground is the quickest way to try out [Document APIs](../learn/platform_concepts/document-api.md) that interact with Express document directly without the need for a full user interface. +Script Mode in Code Playground is the quickest way to try out [Document APIs](../learn/platform-concepts/document-api.md) that interact with Express document directly without the need for a full user interface. ## What is Script Mode? @@ -33,7 +33,7 @@ Script Mode is designed for rapid prototyping and learning. It provides a simpli - Experiment with document manipulation - Debug specific pieces of functionality -Script mode is focused on **code interactions** and **does not support building a user interface**. If you want to create a UI, switch to [Add-on Mode](./code-playground-addon-mode.md). +Script mode is focused on **code interactions** and **does not support building a user interface**. If you want to create a UI, switch to [Add-on Mode](code-playground-addon-mode.md). @@ -61,7 +61,7 @@ Enter your [Document API](../../references/document-sandbox/document-apis/index. - Manipulate the document directly. - Add shapes or text. - Change styles and properties. -- Use the automatically available [`editor`](../../references/document-sandbox/document-apis/classes/Editor.md) object. +- Use the automatically available [`editor`](../../references/document-sandbox/document-apis/classes/editor.md) object. ### Step 3: Execute Your Script @@ -98,17 +98,17 @@ Script mode automatically imports all the necessary `express-document-sdk` modul You don't need to, and should not, add any `import` statements yourself in the Script Mode of the Code Playground; they are redundant and will **cause errors**. -Once you switch to the [Add-on Mode](./code-playground-addon-mode.md) or to your local add-on development environment, you will need to make sure to handle your `async` functions and add back the necessary `import` statements manually. +Once you switch to the [Add-on Mode](code-playground-addon-mode.md) or to your local add-on development environment, you will need to make sure to handle your `async` functions and add back the necessary `import` statements manually. ## Learning Resources ### How-to Guides -Head over to our [How-to guides](../learn/how_to/index.md) to see some examples of using the Document APIs with example code snippets: +Head over to our [How-to guides](../learn/how-to/index.md) to see some examples of using the Document APIs with example code snippets: -- [How to Use Geometry](../learn/how_to/use_geometry.md) -- [How to Use Color](../learn/how_to/use_color.md) -- [How to Use Text](../learn/how_to/use_text.md) +- [How to Use Geometry](../learn/how-to/use-geometry.md) +- [How to Use Color](../learn/how-to/use-color.md) +- [How to Use Text](../learn/how-to/use-text.md) ### API References @@ -117,7 +117,7 @@ Head over to our [How-to guides](../learn/how_to/index.md) to see some examples ## Transitioning to Add-on Mode -Once you've tested your code in Script mode, you can easily transition it into [Add-on Mode](./code-playground-addon-mode.md) to build a user interface around your functionality: +Once you've tested your code in Script mode, you can easily transition it into [Add-on Mode](code-playground-addon-mode.md) to build a user interface around your functionality: 1. Use the **Copy** button in the right corner to quickly copy your code to the clipboard 2. Click the **Add-on** button to enter Add-on Mode @@ -127,6 +127,6 @@ Once you've tested your code in Script mode, you can easily transition it into [ ## Next Steps -- **[Add-on Mode Guide](./code-playground-addon-mode.md)**: Learn how to build complete add-ons with UI -- **[Workflow & Productivity](./code-playground-workflow.md)**: Master keyboard shortcuts and session management -- **[Troubleshooting](./code-playground-troubleshooting.md)**: Get help with common issues +- **[Add-on Mode Guide](code-playground-addon-mode.md)**: Learn how to build complete add-ons with UI +- **[Workflow & Productivity](code-playground-workflow.md)**: Master keyboard shortcuts and session management +- **[Troubleshooting](code-playground-troubleshooting.md)**: Get help with common issues diff --git a/src/pages/guides/getting_started/code-playground-troubleshooting.md b/src/pages/guides/getting-started/code-playground-troubleshooting.md similarity index 90% rename from src/pages/guides/getting_started/code-playground-troubleshooting.md rename to src/pages/guides/getting-started/code-playground-troubleshooting.md index 759bfd006..c1afc7cb9 100644 --- a/src/pages/guides/getting_started/code-playground-troubleshooting.md +++ b/src/pages/guides/getting-started/code-playground-troubleshooting.md @@ -73,7 +73,7 @@ Check your browser's default download location, you can also review your browser 2. Ensure you're using the correct mode (Script vs Add-on) for your use case. 3. Verify that all required APIs are properly imported. 4. Check the browser console for error messages. -5. Sessions that are in the [Archived](./code-playground-workflow.md#session-limits-and-lifecycle) state cannot be run. You can download your code to continue working on it locally, or copy it to a new session. +5. Sessions that are in the [Archived](code-playground-workflow.md#session-limits-and-lifecycle) state cannot be run. You can download your code to continue working on it locally, or copy it to a new session. 6. Try running a simple test code first. ### Session Not Saving @@ -82,12 +82,12 @@ Check your browser's default download location, you can also review your browser **Solutions:** -1. **Check auto-save settings:** Code is not saved automatically. Please read the [Save Your Work](./code-playground-workflow.md#save-your-work) section for more details on how to save. +1. **Check auto-save settings:** Code is not saved automatically. Please read the [Save Your Work](code-playground-workflow.md#save-your-work) section for more details on how to save. 2. Make sure you're not in incognito/private browsing mode 3. Try saving manually using the keyboard shortcut (Ctrl + Shift + S or Cmd + Shift + S) 4. Clear browser cache and try again 5. Check if you have sufficient storage space—you might have reached the maximum number of sessions per user. Delete unused sessions to free up space. -6. Any changes to [Archived](./code-playground-workflow.md#session-limits-and-lifecycle) sessions are not saved. +6. Any changes to [Archived](code-playground-workflow.md#session-limits-and-lifecycle) sessions are not saved. ### Performance Issues @@ -184,7 +184,7 @@ Code Playground works best with the latest versions of the following browsers: ### Documentation Resources - **[API References](../../references/index.md)**: Complete reference for all available APIs. -- **[How-To Guides](../learn/how_to/index.md)**: Step-by-step tutorials for common tasks. +- **[How-To Guides](../learn/how-to/index.md)**: Step-by-step tutorials for common tasks. - **[Code Samples](../learn/samples.md)**: Example code to get you started. - **[Local Development](../getting_started/local_development/index.md)**: Set up a full development environment. @@ -231,7 +231,7 @@ When reporting issues, please include: ## Next Steps -- **[Script Mode Guide](./code-playground-script-mode.md)**: Learn how to use Script Mode effectively. -- **[Add-on Mode Guide](./code-playground-addon-mode.md)**: Build complete add-ons with UI. -- **[Workflow & Productivity](./code-playground-workflow.md)**: Master keyboard shortcuts and session management. +- **[Script Mode Guide](code-playground-script-mode.md)**: Learn how to use Script Mode effectively. +- **[Add-on Mode Guide](code-playground-addon-mode.md)**: Build complete add-ons with UI. +- **[Workflow & Productivity](code-playground-workflow.md)**: Master keyboard shortcuts and session management. - **[Local Development](../getting_started/local_development/index.md)**: Set up a full development environment. diff --git a/src/pages/guides/getting_started/code-playground-workflow.md b/src/pages/guides/getting-started/code-playground-workflow.md similarity index 96% rename from src/pages/guides/getting_started/code-playground-workflow.md rename to src/pages/guides/getting-started/code-playground-workflow.md index 771c80847..9d1596351 100644 --- a/src/pages/guides/getting_started/code-playground-workflow.md +++ b/src/pages/guides/getting-started/code-playground-workflow.md @@ -191,11 +191,11 @@ You can run your add-on folder as a local add-on project in your CLI by followin ## Troubleshooting Common Issues -See the [Troubleshooting](./code-playground-troubleshooting.md#common-issues) page for more details on common issues and solutions. +See the [Troubleshooting](code-playground-troubleshooting.md#common-issues) page for more details on common issues and solutions. ## Next Steps -- **[Script Mode Guide](./code-playground-script-mode.md)**: Learn how to use Script Mode effectively -- **[Add-on Mode Guide](./code-playground-addon-mode.md)**: Build complete add-ons with UI -- **[Troubleshooting](./code-playground-troubleshooting.md)**: Get help with common issues +- **[Script Mode Guide](code-playground-script-mode.md)**: Learn how to use Script Mode effectively +- **[Add-on Mode Guide](code-playground-addon-mode.md)**: Build complete add-ons with UI +- **[Troubleshooting](code-playground-troubleshooting.md)**: Get help with common issues - **[Local Development](../getting_started/local_development/index.md)**: Set up a full development environment diff --git a/src/pages/guides/getting_started/code-playground.md b/src/pages/guides/getting-started/code-playground.md similarity index 90% rename from src/pages/guides/getting_started/code-playground.md rename to src/pages/guides/getting-started/code-playground.md index f1aa3acaf..f46f633a4 100644 --- a/src/pages/guides/getting_started/code-playground.md +++ b/src/pages/guides/getting-started/code-playground.md @@ -92,7 +92,7 @@ The Code Playground needs the add-on Development Mode to be enabled in order to [![Playground Terms of Use](./img/playground--DTOU.png)](https://www.adobe.com/go/addon-playground) -You can also enable or disable the add-on Development Mode from the Settings panel in Adobe Express. See the [Enable Add-on Development Mode](./hello-world.md#enable-add-on-development-mode) section in the Hello, World! guide for detailed instructions. +You can also enable or disable the add-on Development Mode from the Settings panel in Adobe Express. See the [Enable Add-on Development Mode](hello-world.md#enable-add-on-development-mode) section in the Hello, World! guide for detailed instructions. ## Playground modes @@ -115,18 +115,18 @@ Use **Add-on Mode** when developing a full add-on experience, including building ## Quick Start Guides -- **[Script Mode Guide](./code-playground-script-mode.md)**: Learn how to use Script Mode for quick document manipulation -- **[Add-on Mode Guide](./code-playground-addon-mode.md)**: Build complete add-ons with UI and functionality -- **[Workflow & Productivity](./code-playground-workflow.md)**: Master keyboard shortcuts, saving, and session management -- **[Troubleshooting](./code-playground-troubleshooting.md)**: Get help with common issues and FAQs +- **[Script Mode Guide](code-playground-script-mode.md)**: Learn how to use Script Mode for quick document manipulation +- **[Add-on Mode Guide](code-playground-addon-mode.md)**: Build complete add-ons with UI and functionality +- **[Workflow & Productivity](code-playground-workflow.md)**: Master keyboard shortcuts, saving, and session management +- **[Troubleshooting](code-playground-troubleshooting.md)**: Get help with common issues and FAQs ## Next Steps Now that you understand the basics of Code Playground, explore our resources to continue building robust add-ons: - **[API References](../../references/index.md)**: Learn about the Document APIs and Add-on SDK. -- **[Tutorials](../learn/how_to/tutorials/index.md)**: Follow step-by-step guides to build complete add-ons. -- **[How-To Guides](../learn/how_to/index.md)**: Master specific techniques and best practices. +- **[Tutorials](../learn/how-to/tutorials/index.md)**: Follow step-by-step guides to build complete add-ons. +- **[How-To Guides](../learn/how-to/index.md)**: Master specific techniques and best practices. - **[Local Development](../getting_started/local_development/index.md)**: Set up a full development environment for production-ready add-ons - **Code Samples:** Get inspired by checking out [our code samples](../learn/samples.md) to see what's possible. - **Community Support:** Chat with fellow developers on [Discord](http://discord.gg/nc3QDyFeb4), in the [Forums](https://community.adobe.com/t5/adobe-express-developers/ct-p/ct-adobe-express-developers), or join us for our [Office Hours](https://developer.adobe.com/developers-live). diff --git a/src/pages/guides/getting_started/developer-journey.md b/src/pages/guides/getting-started/developer-journey.md similarity index 84% rename from src/pages/guides/getting_started/developer-journey.md rename to src/pages/guides/getting-started/developer-journey.md index 15085c22d..8c4fed622 100644 --- a/src/pages/guides/getting_started/developer-journey.md +++ b/src/pages/guides/getting-started/developer-journey.md @@ -89,37 +89,37 @@ To launch the Code Playground experience, follow [this link](https://www.adobe.c - [Launch the Code Playground](https://www.adobe.com/go/addon-playground) -Once it's open, you can play with the code directly in the editor, and see the changes you make reflected in the document. The [Script Mode](./code-playground-script-mode.md) is particularly useful for experimenting with the add-on's APIs. Please refer to the complete guide to the [Code Playground](./code-playground.md) for more details. +Once it's open, you can play with the code directly in the editor, and see the changes you make reflected in the document. The [Script Mode](code-playground-script-mode.md) is particularly useful for experimenting with the add-on's APIs. Please refer to the complete guide to the [Code Playground](code-playground.md) for more details. [![Code Playground](./img/playground.png)](./code-playground.md) ### Explore the How-to Guides -To properly experiment with the Playground, head to the [How-tos](../learn/how_to/index.md) section: you'll find a collection of short guides and accompanying snippets that you can plug and play in the Playground editor. They cover the most common use cases, and are a great way to get familiar with the add-on SDK. Try the following as a starter: +To properly experiment with the Playground, head to the [How-tos](../learn/how-to/index.md) section: you'll find a collection of short guides and accompanying snippets that you can plug and play in the Playground editor. They cover the most common use cases, and are a great way to get familiar with the add-on SDK. Try the following as a starter: -- [Creating Text](../learn/how_to/use_text.md#create-text) -- [Creating Geometry](../learn/how_to/use_geometry.md) -- [Grouping Elements](../learn/how_to/group_elements.md) +- [Creating Text](../learn/how-to/use-text.md#create-text) +- [Creating Geometry](../learn/how-to/use-geometry.md) +- [Grouping Elements](../learn/how-to/group-elements.md) When you feel more comfortable, you can tinker with these other use cases: -- [Using Colors](../learn/how_to/use_color.md) -- [Exporting Renditions](../learn/how_to/create_renditions.md) -- [Document](../learn/how_to/document_metadata.md) and [Element Metadata](../learn/how_to/document_metadata.md) +- [Using Colors](../learn/how-to/use-color.md) +- [Exporting Renditions](../learn/how-to/create-renditions.md) +- [Document](../learn/how-to/document-metadata.md) and [Element Metadata](../learn/how-to/document-metadata.md) ### Scaffold a Local Development Environment -To build a more complex add-on, you can use our free [Command Line Interface (CLI) tool](./local_development/dev_tooling.md#using-the-cli), that can set up a new local project (on your machine) with all the necessary files and dependencies to get you started. +To build a more complex add-on, you can use our free [Command Line Interface (CLI) tool](local-development/dev-tooling.md#using-the-cli), that can set up a new local project (on your machine) with all the necessary files and dependencies to get you started. ![doc sandbox prompt](./local_development/img/CLI-template-prompt.png) -The Code Playground can [export your project as a zip file](./code-playground-workflow.md#download-your-code) so that existing add-ons projects can be migrated to the CLI seamlessly. +The Code Playground can [export your project as a zip file](code-playground-workflow.md#download-your-code) so that existing add-ons projects can be migrated to the CLI seamlessly. ### Next steps -Feel free to explore the rest of the [How-to Guides](../learn/how_to/index.md) to get exposed the entire range of possibilities that the add-on SDK offers. If you're ready to get your hands dirty and start building your own add-ons, keep reading! +Feel free to explore the rest of the [How-to Guides](../learn/how-to/index.md) to get exposed the entire range of possibilities that the add-on SDK offers. If you're ready to get your hands dirty and start building your own add-ons, keep reading! ## Develop @@ -127,11 +127,11 @@ Now that you feel comfortable with the Adobe Express add-on development's basics ### Follow a Tutorial to build a complete add-on -We've created a set of tutorials that guide you through the process of building a full-featured add-on from scratch. We recommend you to start with the [Design Grid creator](../learn/how_to/tutorials/grids-addon.md), which covers the basics of the add-on SDK and how to use the Document API. +We've created a set of tutorials that guide you through the process of building a full-featured add-on from scratch. We recommend you to start with the [Design Grid creator](../learn/how-to/tutorials/grids-addon.md), which covers the basics of the add-on SDK and how to use the Document API. [![Grids Tutorial](../learn/how_to/tutorials/images/grids-addon-animation.gif)](../learn/how_to/tutorials/grids-addon.md) -Feel free to explore [the other Tutorials](../learn/how_to/tutorials/index.md), or our collection of [Code Samples](../learn/samples.md); there's no better way to learn than by doing! +Feel free to explore [the other Tutorials](../learn/how-to/tutorials/index.md), or our collection of [Code Samples](../learn/samples.md); there's no better way to learn than by doing! ### Discover our Design System @@ -143,13 +143,13 @@ Adobe Express is based on the [Adobe Spectrum design system](https://s2.spectrum
-We've created a set of [UX Guidelines](../build/design/index.md) to help you get started; they cover the [design principles](../build/design/ux_guidelines/design_principles.md), [color](../build/design/ux_guidelines/visual_elements.md#color), [typography](../build/design/ux_guidelines/visual_elements.md#typography), [layout](../build/design/ux_guidelines/visual_elements.md#layout--structure) and much more. +We've created a set of [UX Guidelines](../build/design/index.md) to help you get started; they cover the [design principles](../build/design/ux-guidelines/design-principles.md), [color](../build/design/ux-guidelines/visual-elements.md#color), [typography](../build/design/ux-guidelines/visual-elements.md#typography), [layout](../build/design/ux-guidelines/visual-elements.md#layout--structure) and much more. You should use [Spectrum Web Components](https://opensource.adobe.com/spectrum-web-components/), a library of pre-built components that you can use to create a consistent UI for your add-on. You can test them in a sandboxed environment like Codepen. [![Spectrum Web Components Codepen](../learn/how_to/tutorials/images/bingo-codepen.png)](../learn/how_to/tutorials/spectrum-workshop/index.md#quickstart-try-spectrum-web-components) -Read our [Implementation Guide](../build/design/implementation_guide.md) or follow our two-part [Bingo Card Generator add-on tutorial](../learn/how_to/tutorials/spectrum-workshop/index.md), which covers both basic JavaScript and React. +Read our [Implementation Guide](../build/design/implementation-guide.md) or follow our two-part [Bingo Card Generator add-on tutorial](../learn/how-to/tutorials/spectrum-workshop/index.md), which covers both basic JavaScript and React. [![Bingo Card Generator add-on](../learn/how_to/tutorials/images/bingo-v1-addon.png)](../learn/how_to/tutorials/spectrum-workshop/index.md) @@ -157,11 +157,11 @@ Read our [Implementation Guide](../build/design/implementation_guide.md) or foll To become an expert add-on developer, you must confidently orient yourself around the Document Sandbox API. New features are constantly being added, and it's crucial to learn how to read and decode the SDK Reference to know how to use them. -Read the [Adobe Express Document API Concepts](../learn/platform_concepts/document-api.md) guide to learn about Object Oriented Programming concepts and the various [Classes and Interfaces](../learn/platform_concepts/document-api.md#classes-and-interfaces) available to you. +Read the [Adobe Express Document API Concepts](../learn/platform-concepts/document-api.md) guide to learn about Object Oriented Programming concepts and the various [Classes and Interfaces](../learn/platform-concepts/document-api.md#classes-and-interfaces) available to you. [![Document API Concepts](../learn/platform_concepts/images/refs-addon-scenegraph.png)](../learn/platform_concepts/document-api.md) -Complete the [Dimension annotation sample add-on exercise](../learn/platform_concepts/document-api.md#from-theory-to-practice) to practice your new knowledge. +Complete the [Dimension annotation sample add-on exercise](../learn/platform-concepts/document-api.md#from-theory-to-practice) to practice your new knowledge. [![Dimension annotation sample add-on](../learn/platform_concepts/images/refs-addon-refactor.png)](../learn/platform_concepts/document-api.md#from-theory-to-practice) @@ -175,7 +175,7 @@ Add-ons can be [privately distributed](../build/distribute/private-dist.md) for [![Publish your add-on](../build/distribute/img/public-listing-submission-v2.png)](../build/distribute/public-dist.md) -Familiarize yourself with the details of our [Review Process](../build/distribute/review_process/index.md) and follow the [Submission Guidelines](../build/distribute/guidelines/index.md) to prepare your add-on for review. +Familiarize yourself with the details of our [Review Process](../build/distribute/review-process/index.md) and follow the [Submission Guidelines](../build/distribute/guidelines/index.md) to prepare your add-on for review. ### Improve your sales with the Monetization Guide diff --git a/src/pages/guides/getting_started/hello-world.md b/src/pages/guides/getting-started/hello-world.md similarity index 89% rename from src/pages/guides/getting_started/hello-world.md rename to src/pages/guides/getting-started/hello-world.md index 9887c149c..4efec024a 100644 --- a/src/pages/guides/getting_started/hello-world.md +++ b/src/pages/guides/getting-started/hello-world.md @@ -69,7 +69,7 @@ The first time you launch the [Code Playground](https://www.adobe.com/go/addon-p ## Code Playground -The [Code Playground](./code-playground.md) is a browser-based editor built right into Adobe Express. No installation required—just open it and start coding. +The [Code Playground](code-playground.md) is a browser-based editor built right into Adobe Express. No installation required—just open it and start coding. ### 1. Launch the Playground @@ -95,7 +95,7 @@ Alternatively, see the following animation or expand the details below for a ste ### 2. Run Your First Script -The Code Playground allows you to operate in [two modalities](./code-playground.md#playground-modes): +The Code Playground allows you to operate in [two modalities](code-playground.md#playground-modes): - [**Script Mode**](https://www.adobe.com/go/addon-playground?executionMode=script): Directly runs code that operates on the current document - [**Add-on Mode**](https://www.adobe.com/go/addon-playground): Creates an add-on with a custom User Interface and logic that can run code on the current document @@ -110,7 +110,7 @@ Click the **Run Code** button on the Playground's toolbar to see the rectangle a Feel free to tweak the script to change the properties in the `color` object, or the `translation` and Rectangle dimensions; click **Run Code** again to see what happens. -To get a feel of the available APIs, visit the [How-to guides](../learn/how_to/index.md) and copy and paste code snippets into the Playground. For instance, check out the [Use Text](../learn/how_to/use_text.md) page and try the following script for the original "Hello World" experience. +To get a feel of the available APIs, visit the [How-to guides](../learn/how-to/index.md) and copy and paste code snippets into the Playground. For instance, check out the [Use Text](../learn/how-to/use-text.md) page and try the following script for the original "Hello World" experience. ```js // Create a new TextNode @@ -127,11 +127,11 @@ insertionParent.children.append(textNode); console.log("Text: ", textNode.fullContent.text); ``` -You've been using the Document Sandbox APIs, a very extensive set of APIs that let you create all sorts of objects and manipulate the Adobe Express documents. They are documented in the [SDK References](../../references/document-sandbox/index.md) and explained in detail in the [Platform Concepts](../learn/platform_concepts/document-api.md) section. +You've been using the Document Sandbox APIs, a very extensive set of APIs that let you create all sorts of objects and manipulate the Adobe Express documents. They are documented in the [SDK References](../../references/document-sandbox/index.md) and explained in detail in the [Platform Concepts](../learn/platform-concepts/document-api.md) section. ### 4. Create an Add-on -Click the **Add-on** tab to switch to the [Add-on mode](./code-playground.md#playground-modes). You'll see that the Playground now shows four tabs: +Click the **Add-on** tab to switch to the [Add-on mode](code-playground.md#playground-modes). You'll see that the Playground now shows four tabs: - `HTML`: controls the add-on's User Interface. - `CSS`: adds styles. @@ -146,11 +146,11 @@ This time, clicking **Run Code** will make a new add-on appear on the right side Script mode vs. Document JS -Even if the result of both the Script and Add-on modes in the Code Playground is the same rectangle being added to the document, you'll see that the code is different. Why? The Script mode is a simplified, prototype-friendly environment that takes care of many things under the hood, while the Add-on code needs to take care of the communication between the UI and the Document Sandbox APIs. More info [here](../learn/platform_concepts/context.md). +Even if the result of both the Script and Add-on modes in the Code Playground is the same rectangle being added to the document, you'll see that the code is different. Why? The Script mode is a simplified, prototype-friendly environment that takes care of many things under the hood, while the Add-on code needs to take care of the communication between the UI and the Document Sandbox APIs. More info [here](../learn/platform-concepts/context.md). ## Command Line Interface (CLI) -The [Adobe Express add-on CLI](./local_development/dev_tooling.md#using-the-cli) allows you to create and host Adobe Express add-ons directly from your local machine. +The [Adobe Express add-on CLI](local-development/dev-tooling.md#using-the-cli) allows you to create and host Adobe Express add-ons directly from your local machine. ### 1. Scaffold a New Project @@ -167,7 +167,7 @@ This command will scaffold a new add-on based on "pure" JavaScript with Document - `hello-world` is the name of the add-on project you are creating. - The `--template` flag specifies the template to use for the add-on; in this case, `javascript-with-document-sandbox`. The parameter is optional, and when missing, the CLI will prompt you to choose one from a list. -The [Templates section](./local_development/dev_tooling.md#templates) on the **Development Tools** page provides a list of available options. For detailed guidance on choosing the right template for your project, see the [Add-on Project Anatomy & CLI Templates](./addon-project-anatomy.md) guide. +The [Templates section](local-development/dev-tooling.md#templates) on the **Development Tools** page provides a list of available options. For detailed guidance on choosing the right template for your project, see the [Add-on Project Anatomy & CLI Templates](addon-project-anatomy.md) guide. @@ -247,7 +247,7 @@ If you click the **Create Rectangle** button, you'll see the rectangle being add ### 4. Edit Your Add-on's Code -While your add-on is still loaded and running, open the `src/index.html` file and update the **"Create Rectangle"** string in the `