@microsoft/sp-module-interfaces 1.22.1 → 1.23.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/index-internal-beta.d.ts +20 -2
  2. package/dist/index-internal-public.d.ts +20 -2
  3. package/dist/index-internal.d.ts +728 -16
  4. package/lib-commonjs/manifestSchemaValidator.js +125 -25
  5. package/lib-commonjs/manifestSchemas/examples/commandSet_2.manifest.js +59 -0
  6. package/lib-commonjs/manifestSchemas/examples/commandSet_3.manifest.js +66 -0
  7. package/lib-commonjs/manifestSchemas/examples/commandSet_4.manifest.js +73 -0
  8. package/lib-commonjs/manifestSchemas/examples/commandSet_5.manifest.js +51 -0
  9. package/lib-commonjs/manifestSchemas/jsonSchemas/adaptive-card-extension-manifest.schema.json +1 -1
  10. package/lib-commonjs/manifestSchemas/jsonSchemas/any-value.schema.json +1 -1
  11. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-application-manifest.schema.json +1 -1
  12. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-assembly-manifest.schema.json +1 -1
  13. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-component-loader-configuration.schema.json +1 -2
  14. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-component-manifest.schema.json +1 -1
  15. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-extension-manifest.schema.json +1 -1
  16. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-library-manifest.schema.json +1 -1
  17. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-manifest-base.schema.json +1 -1
  18. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-multi-version-manifest.schema.json +1 -1
  19. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-web-part-manifest.schema.json +1 -1
  20. package/lib-commonjs/manifestSchemas/jsonSchemas/command-set-extension-manifest.schema.json +9 -3
  21. package/lib-commonjs/manifestSchemas/jsonSchemas/component-fallback-version.schema.json +1 -1
  22. package/lib-commonjs/manifestSchemas/jsonSchemas/guid.schema.json +1 -1
  23. package/lib-commonjs/manifestSchemas/jsonSchemas/localized-string.schema.json +1 -1
  24. package/lib-commonjs/manifestSchemas/jsonSchemas/prefab-app-manifest.schema.json +2 -2
  25. package/lib-commonjs/manifestSchemas/jsonSchemas/semver.schema.json +1 -1
  26. package/lib-commonjs/manifestSchemas/remote/site-design-script-actions.schema.json +4 -6
  27. package/lib-dts/manifestSchemaValidator.d.ts +16 -4
  28. package/lib-dts/manifestSchemas/ICommandSetExtensionManifest.d.ts +20 -2
  29. package/lib-dts/manifestSchemas/examples/commandSet_2.manifest.d.ts +8 -0
  30. package/lib-dts/manifestSchemas/examples/commandSet_3.manifest.d.ts +8 -0
  31. package/lib-dts/manifestSchemas/examples/commandSet_4.manifest.d.ts +8 -0
  32. package/lib-dts/manifestSchemas/examples/commandSet_5.manifest.d.ts +8 -0
  33. package/lib-dts/tsdoc-metadata.json +1 -1
  34. package/lib-esm/manifestSchemaValidator.js +126 -27
  35. package/lib-esm/manifestSchemas/examples/commandSet_2.manifest.js +49 -0
  36. package/lib-esm/manifestSchemas/examples/commandSet_3.manifest.js +56 -0
  37. package/lib-esm/manifestSchemas/examples/commandSet_4.manifest.js +63 -0
  38. package/lib-esm/manifestSchemas/examples/commandSet_5.manifest.js +41 -0
  39. package/lib-esm/manifestSchemas/jsonSchemas/adaptive-card-extension-manifest.schema.json +1 -1
  40. package/lib-esm/manifestSchemas/jsonSchemas/any-value.schema.json +1 -1
  41. package/lib-esm/manifestSchemas/jsonSchemas/client-side-application-manifest.schema.json +1 -1
  42. package/lib-esm/manifestSchemas/jsonSchemas/client-side-assembly-manifest.schema.json +1 -1
  43. package/lib-esm/manifestSchemas/jsonSchemas/client-side-component-loader-configuration.schema.json +1 -2
  44. package/lib-esm/manifestSchemas/jsonSchemas/client-side-component-manifest.schema.json +1 -1
  45. package/lib-esm/manifestSchemas/jsonSchemas/client-side-extension-manifest.schema.json +1 -1
  46. package/lib-esm/manifestSchemas/jsonSchemas/client-side-library-manifest.schema.json +1 -1
  47. package/lib-esm/manifestSchemas/jsonSchemas/client-side-manifest-base.schema.json +1 -1
  48. package/lib-esm/manifestSchemas/jsonSchemas/client-side-multi-version-manifest.schema.json +1 -1
  49. package/lib-esm/manifestSchemas/jsonSchemas/client-side-web-part-manifest.schema.json +1 -1
  50. package/lib-esm/manifestSchemas/jsonSchemas/command-set-extension-manifest.schema.json +9 -3
  51. package/lib-esm/manifestSchemas/jsonSchemas/component-fallback-version.schema.json +1 -1
  52. package/lib-esm/manifestSchemas/jsonSchemas/guid.schema.json +1 -1
  53. package/lib-esm/manifestSchemas/jsonSchemas/localized-string.schema.json +1 -1
  54. package/lib-esm/manifestSchemas/jsonSchemas/prefab-app-manifest.schema.json +2 -2
  55. package/lib-esm/manifestSchemas/jsonSchemas/semver.schema.json +1 -1
  56. package/lib-esm/manifestSchemas/remote/site-design-script-actions.schema.json +4 -6
  57. package/package.json +12 -14
  58. package/lib-commonjs/manifestSchemas/remote/draft-04.schema.json +0 -137
  59. package/lib-esm/manifestSchemas/remote/draft-04.schema.json +0 -137
@@ -949,9 +949,10 @@ export declare interface ICommandDefinition {
949
949
  title: ILocalizedString;
950
950
  /**
951
951
  * Type of the item.
952
- * Currently only "command" is allowed.
952
+ * - 'command': A standard executable command
953
+ * - 'group': A group that contains child commands (renders as submenu)
953
954
  */
954
- type: 'command';
955
+ type: 'command' | 'group';
955
956
  /**
956
957
  * Custom accessibility text for the browser's "aria-label" attribute. If omitted, the title property
957
958
  * will be used by default.
@@ -968,8 +969,25 @@ export declare interface ICommandDefinition {
968
969
  * the folder containing the input manifest. The icon file will be copied to the deployment folder like an asset,
969
970
  * and the output manifest's iconImageUrl will be replaced with a URL relative to the URL used to load all other
970
971
  * assets (the loaderConfig.internalModuleBaseUrls property).
972
+ *
973
+ * For groups, this icon is displayed on the parent button.
971
974
  */
972
975
  iconImageUrl?: string;
976
+ /**
977
+ * Optional ID of the parent group this command/group belongs to.
978
+ * Used to build hierarchical command structures where commands appear in submenus.
979
+ *
980
+ * @remarks
981
+ * - Must reference a valid group item ID defined in the same manifest
982
+ * - Both commands and groups can have a group property (for nested groups)
983
+ * - Maximum nesting depth is 2 levels, where a top-level group can contain one additional nested group
984
+ * - Child commands are displayed in manifest definition order within their group
985
+ * - If the parent group ID is not found, the command appears at top level
986
+ * - Groups are automatically hidden if all their children are invisible
987
+ *
988
+ * Example: "EXPORT_GROUP" (where EXPORT_GROUP is defined as type: 'group')
989
+ */
990
+ group?: string;
973
991
  }
974
992
 
975
993
  /**
@@ -541,9 +541,10 @@ export declare interface ICommandDefinition {
541
541
  title: ILocalizedString;
542
542
  /**
543
543
  * Type of the item.
544
- * Currently only "command" is allowed.
544
+ * - 'command': A standard executable command
545
+ * - 'group': A group that contains child commands (renders as submenu)
545
546
  */
546
- type: 'command';
547
+ type: 'command' | 'group';
547
548
  /**
548
549
  * Custom accessibility text for the browser's "aria-label" attribute. If omitted, the title property
549
550
  * will be used by default.
@@ -560,8 +561,25 @@ export declare interface ICommandDefinition {
560
561
  * the folder containing the input manifest. The icon file will be copied to the deployment folder like an asset,
561
562
  * and the output manifest's iconImageUrl will be replaced with a URL relative to the URL used to load all other
562
563
  * assets (the loaderConfig.internalModuleBaseUrls property).
564
+ *
565
+ * For groups, this icon is displayed on the parent button.
563
566
  */
564
567
  iconImageUrl?: string;
568
+ /**
569
+ * Optional ID of the parent group this command/group belongs to.
570
+ * Used to build hierarchical command structures where commands appear in submenus.
571
+ *
572
+ * @remarks
573
+ * - Must reference a valid group item ID defined in the same manifest
574
+ * - Both commands and groups can have a group property (for nested groups)
575
+ * - Maximum nesting depth is 2 levels, where a top-level group can contain one additional nested group
576
+ * - Child commands are displayed in manifest definition order within their group
577
+ * - If the parent group ID is not found, the command appears at top level
578
+ * - Groups are automatically hidden if all their children are invisible
579
+ *
580
+ * Example: "EXPORT_GROUP" (where EXPORT_GROUP is defined as type: 'group')
581
+ */
582
+ group?: string;
565
583
  }
566
584
 
567
585
  /**