@atlaskit/editor-common 106.6.1 → 106.7.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 (61) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/element-browser/components/ElementList/ElementList.js +3 -0
  3. package/dist/cjs/i18n/en_ZZ.js +4 -0
  4. package/dist/cjs/i18n/hr.js +2 -0
  5. package/dist/cjs/i18n/sl.js +878 -1
  6. package/dist/cjs/i18n/sr_RS.js +894 -0
  7. package/dist/cjs/monitoring/error.js +1 -1
  8. package/dist/cjs/provider-factory/with-providers.js +2 -1
  9. package/dist/cjs/ui/DropList/index.js +1 -1
  10. package/dist/cjs/user-preferences/hooks.js +6 -5
  11. package/dist/cjs/user-preferences/user-preferences-provider.js +26 -29
  12. package/dist/cjs/user-preferences/user-preferences.js +6 -1
  13. package/dist/cjs/user-preferences/utils.js +42 -0
  14. package/dist/cjs/utils/processRawValue.js +9 -14
  15. package/dist/es2019/element-browser/components/ElementList/ElementList.js +3 -0
  16. package/dist/es2019/i18n/en_ZZ.js +4 -0
  17. package/dist/es2019/i18n/hr.js +2 -0
  18. package/dist/es2019/i18n/sl.js +878 -1
  19. package/dist/es2019/i18n/sr_RS.js +888 -0
  20. package/dist/es2019/monitoring/error.js +1 -1
  21. package/dist/es2019/provider-factory/with-providers.js +2 -1
  22. package/dist/es2019/ui/DropList/index.js +1 -1
  23. package/dist/es2019/user-preferences/hooks.js +6 -5
  24. package/dist/es2019/user-preferences/user-preferences-provider.js +26 -21
  25. package/dist/es2019/user-preferences/user-preferences.js +6 -1
  26. package/dist/es2019/user-preferences/utils.js +27 -0
  27. package/dist/es2019/utils/processRawValue.js +11 -16
  28. package/dist/esm/element-browser/components/ElementList/ElementList.js +3 -0
  29. package/dist/esm/i18n/en_ZZ.js +4 -0
  30. package/dist/esm/i18n/hr.js +2 -0
  31. package/dist/esm/i18n/sl.js +878 -1
  32. package/dist/esm/i18n/sr_RS.js +888 -0
  33. package/dist/esm/monitoring/error.js +1 -1
  34. package/dist/esm/provider-factory/with-providers.js +2 -1
  35. package/dist/esm/ui/DropList/index.js +1 -1
  36. package/dist/esm/user-preferences/hooks.js +6 -5
  37. package/dist/esm/user-preferences/user-preferences-provider.js +26 -29
  38. package/dist/esm/user-preferences/user-preferences.js +6 -1
  39. package/dist/esm/user-preferences/utils.js +35 -0
  40. package/dist/esm/utils/processRawValue.js +9 -14
  41. package/dist/types/i18n/en_ZZ.d.ts +4 -0
  42. package/dist/types/i18n/hr.d.ts +2 -0
  43. package/dist/types/i18n/sl.d.ts +877 -0
  44. package/dist/types/i18n/sr_RS.d.ts +887 -0
  45. package/dist/types/provider-factory/with-providers.d.ts +1 -1
  46. package/dist/types/user-preferences/hooks.d.ts +8 -6
  47. package/dist/types/user-preferences/persistence-api.d.ts +1 -1
  48. package/dist/types/user-preferences/user-preferences-provider.d.ts +19 -11
  49. package/dist/types/user-preferences/user-preferences.d.ts +6 -4
  50. package/dist/types/user-preferences/utils.d.ts +17 -0
  51. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +4 -0
  52. package/dist/types-ts4.5/i18n/hr.d.ts +2 -0
  53. package/dist/types-ts4.5/i18n/sl.d.ts +877 -0
  54. package/dist/types-ts4.5/i18n/sr_RS.d.ts +887 -0
  55. package/dist/types-ts4.5/provider-factory/with-providers.d.ts +1 -1
  56. package/dist/types-ts4.5/user-preferences/hooks.d.ts +8 -6
  57. package/dist/types-ts4.5/user-preferences/persistence-api.d.ts +1 -1
  58. package/dist/types-ts4.5/user-preferences/user-preferences-provider.d.ts +19 -11
  59. package/dist/types-ts4.5/user-preferences/user-preferences.d.ts +6 -4
  60. package/dist/types-ts4.5/user-preferences/utils.d.ts +17 -0
  61. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
1
  import { PureComponent } from 'react';
2
2
  import type ProviderFactory from './provider-factory';
3
- import { type ProviderName, type Providers } from './types';
3
+ import type { ProviderName, Providers } from './types';
4
4
  export interface Props {
5
5
  providerFactory: ProviderFactory;
6
6
  providers: ProviderName[];
@@ -1,9 +1,11 @@
1
- import { UserPreferencesProvider } from './user-preferences-provider';
1
+ import { type ResolvedUserPreferences } from './user-preferences';
2
+ import type { UserPreferencesProvider } from './user-preferences-provider';
2
3
  /**
3
- *
4
- * @param userPreferencesProvider
5
- * @example
4
+ * This hook returns the latest user preference
5
+ * @param {UserPreferencesProvider} userPreferencesProvider an instance of UserPreferencesProvider
6
+ * @example const { resolvedUserPreferences } = edUserPreferences(userPreferencesProvider)
7
+ * @returns {ResolvedUserPreferences | null} the latest user preference
6
8
  */
7
- export declare function useResolvedUserPreferences(userPreferencesProvider: UserPreferencesProvider): {
8
- resolvedUserPreferences: import("./user-preferences").ResolvedUserPreferences<import("./user-preferences").UserPreferences>;
9
+ export declare function useResolvedUserPreferences(userPreferencesProvider?: UserPreferencesProvider): {
10
+ resolvedUserPreferences: ResolvedUserPreferences | null;
9
11
  };
@@ -11,7 +11,7 @@ export type PersistenceAPI = {
11
11
  * @param value
12
12
  * @returns
13
13
  */
14
- updateUserPreference: <K extends keyof UserPreferences>(key: K, value: UserPreferences[K]) => Promise<UserPreferences>;
14
+ updateUserPreference: <K extends keyof UserPreferences>(key: K, value: UserPreferences[K]) => Promise<Pick<UserPreferences, K>>;
15
15
  /**
16
16
  * Get the initial user preferences synchronously
17
17
  * This function is called on initialization
@@ -2,31 +2,37 @@ import { type PersistenceAPI } from './persistence-api';
2
2
  import { type ResolvedUserPreferences, type UserPreferences } from './user-preferences';
3
3
  type UpdateCallback = (userPreferences: UserPreferences) => void;
4
4
  /**
5
- *
5
+ * This class is used to manage user preferences in the editor.
6
+ * It provides methods to load, update, and get user preferences,
7
+ * as well as a way to subscribe to updates.
8
+ * @example const userPreferencesProvider = new UserPreferencesProvider(persistenceAPI, defaultPreferences);
6
9
  */
7
10
  export declare class UserPreferencesProvider {
8
- private callbacks;
11
+ private updateCallbacks;
9
12
  private userPreferences;
10
13
  private defaultPreferences;
11
14
  private resolvedUserPreferences;
12
15
  private initialized;
13
16
  private persistenceAPI;
14
17
  /**
18
+ * This is the constructor for the UserPreferencesProvider class.
15
19
  * @param persistenceAPI - The persistence API to use for loading and updating user preferences
16
20
  * @param defaultPreferences - The default user preferences to use
17
21
  * @param initialUserPreferences - The initial user preferences to use (optional)
18
- * @example
22
+ * @example const userPreferencesProvider = new UserPreferencesProvider(persistenceAPI, defaultPreferences);
19
23
  */
20
24
  constructor(persistenceAPI: PersistenceAPI, defaultPreferences: ResolvedUserPreferences);
21
25
  /**
22
- *
26
+ * This method returns the initialized state of the user preferences provider
27
+ * @returns true if the user preferences provider is initialized, false otherwise
28
+ * @example userPreferencesProvider.isInitialized
23
29
  */
24
30
  get isInitialized(): boolean;
25
31
  /**
26
32
  * This method fetches the latest user preferences
27
33
  * @returns a promise that resolves with the user preferences, or rejects if error occurs
28
34
  * @throws Error if there is an error loading user preferences
29
- * @example
35
+ * @example userPreferencesProvider.loadPreferences()
30
36
  */
31
37
  loadPreferences(): Promise<void>;
32
38
  /**
@@ -35,19 +41,21 @@ export declare class UserPreferencesProvider {
35
41
  * @param value
36
42
  * @returns a promise that resolves when the user preference is updated
37
43
  * @throws Error if there is an error updating user preferences
38
- * @example
44
+ * @example userPreferencesProvider.updatePreference('toolbarDockingPosition', 'top')
39
45
  */
40
46
  updatePreference<K extends keyof UserPreferences>(key: K, value: UserPreferences[K]): Promise<void>;
41
47
  /**
42
48
  * get a user preference, Note that this function is a not async function,
43
49
  * meaning that consumers should prefetch the user preference and make it available initially
44
50
  * @param key
45
- * @example
51
+ * @returns the user preference
52
+ * @example userPreferencesProvider.getPreference('toolbarDockingPosition')
46
53
  */
47
54
  getPreference<K extends keyof ResolvedUserPreferences>(key: K): ResolvedUserPreferences[K];
48
55
  /**
49
56
  * get all user preferences
50
- * @example
57
+ * @returns the user preferences
58
+ * @example userPreferencesProvider.getPreferences()
51
59
  */
52
60
  getPreferences(): ResolvedUserPreferences;
53
61
  /**
@@ -67,8 +75,8 @@ export declare class UserPreferencesProvider {
67
75
  setDefaultPreferences(preferences: ResolvedUserPreferences): void;
68
76
  private setUserPreferences;
69
77
  /**
70
- *
71
- * @example
78
+ * This method is used to notify the user preferences updated
79
+ * @example userPreferencesProvider.notifyUserPreferencesUpdated()
72
80
  */
73
81
  notifyUserPreferencesUpdated(): void;
74
82
  /**
@@ -76,7 +84,7 @@ export declare class UserPreferencesProvider {
76
84
  * with the user preferences and filtering out any undefined or null values
77
85
  * to avoid overwriting default preferences with null values
78
86
  * @returns true if the user preferences were updated, false otherwise
79
- * @example
87
+ * @example userPreferencesProvider.resolveUserPreferences()
80
88
  */
81
89
  private resolveUserPreferences;
82
90
  }
@@ -6,8 +6,10 @@ export type ToolbarDocking = (typeof TOOLBAR_DOCKING_POSITIONS)[number];
6
6
  export type UserPreferences = {
7
7
  toolbarDockingPosition?: ToolbarDocking;
8
8
  };
9
- type Must<T> = {
10
- [P in keyof T]-?: NonNullable<T[P]>;
9
+ /**
10
+ * This type should contain all the user preferences
11
+ * And we do expect all the attributes to be defined
12
+ */
13
+ export type ResolvedUserPreferences = {
14
+ toolbarDockingPosition: ToolbarDocking;
11
15
  };
12
- export type ResolvedUserPreferences = Must<UserPreferences>;
13
- export {};
@@ -0,0 +1,17 @@
1
+ import { ResolvedUserPreferences, UserPreferences } from './user-preferences';
2
+ export declare const mergeUserPreferences: (userPreferences: UserPreferences, defaultPreferences: ResolvedUserPreferences) => ResolvedUserPreferences;
3
+ /**
4
+ * Compare two user preferences objects
5
+ * @param {ResolvedUserPreferences} left a ResolvedUserPreferences
6
+ * @param {ResolvedUserPreferences} right a ResolvedUserPreferences
7
+ * @returns true if the user preferences are the same, false otherwise
8
+ * @example
9
+ * const userPreferences1 = {
10
+ * toolbarDockingPosition: 'top',
11
+ * };
12
+ * const userPreferences2 = {
13
+ * toolbarDockingPosition: 'top',
14
+ * };
15
+ * compareUserPreferences(userPreferences1, userPreferences2); // true
16
+ */
17
+ export declare const areUserPreferencesEqual: (left: ResolvedUserPreferences, right: ResolvedUserPreferences) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "106.6.1",
3
+ "version": "106.7.0",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -147,7 +147,7 @@
147
147
  "@atlaskit/link-datasource": "^4.11.0",
148
148
  "@atlaskit/link-picker": "^3.5.0",
149
149
  "@atlaskit/media-card": "^79.3.0",
150
- "@atlaskit/media-client": "^33.3.0",
150
+ "@atlaskit/media-client": "^33.4.0",
151
151
  "@atlaskit/media-client-react": "^4.1.0",
152
152
  "@atlaskit/media-common": "^12.1.0",
153
153
  "@atlaskit/media-file-preview": "^0.11.0",
@@ -171,7 +171,7 @@
171
171
  "@atlaskit/textfield": "^8.0.0",
172
172
  "@atlaskit/theme": "^18.0.0",
173
173
  "@atlaskit/tmp-editor-statsig": "^7.0.0",
174
- "@atlaskit/tokens": "^5.1.0",
174
+ "@atlaskit/tokens": "^5.2.0",
175
175
  "@atlaskit/tooltip": "^20.3.0",
176
176
  "@atlaskit/width-detector": "^5.0.0",
177
177
  "@babel/runtime": "^7.0.0",
@@ -272,9 +272,6 @@
272
272
  "platform-visual-refresh-icons": {
273
273
  "type": "boolean"
274
274
  },
275
- "platform_editor_use_nested_table_pm_nodes": {
276
- "type": "boolean"
277
- },
278
275
  "platform_editor_extension_fix_ssr_ref": {
279
276
  "type": "boolean"
280
277
  },
@@ -397,6 +394,9 @@
397
394
  },
398
395
  "platform_editor_breakout_resizing_hello_release": {
399
396
  "type": "boolean"
397
+ },
398
+ "platform_editor_fix_unsubscribe_of_provider": {
399
+ "type": "boolean"
400
400
  }
401
401
  }
402
402
  }