@dxtmisha/wiki 0.57.1 → 0.57.4

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 (151) hide show
  1. package/dist/{defineProperty-3CuEayIP.js → defineProperty-Dcl1xgfx.js} +4 -4
  2. package/dist/library.js +2 -1
  3. package/dist/storybook.js +1 -1
  4. package/package.json +1 -1
  5. package/src/media/functional/figma/classes/FigmaPostAbstract/FigmaPostAbstract.en.mdx +46 -0
  6. package/src/media/functional/figma/classes/FigmaPostAbstract/FigmaPostAbstract.ru.mdx +46 -0
  7. package/src/media/functional/figma/classes/FigmaPostAbstract/FigmaPostAbstract.vi.mdx +46 -0
  8. package/src/media/functional/figma/classes/FigmaPostCode/FigmaPostCode.en.mdx +3 -23
  9. package/src/media/functional/figma/classes/FigmaPostCode/FigmaPostCode.ru.mdx +3 -23
  10. package/src/media/functional/figma/classes/FigmaPostCode/FigmaPostCode.vi.mdx +3 -23
  11. package/src/media/functional/figma/functions/fetchClientStorage/fetchClientStorage.en.mdx +46 -0
  12. package/src/media/functional/figma/functions/fetchClientStorage/fetchClientStorage.ru.mdx +46 -0
  13. package/src/media/functional/figma/functions/fetchClientStorage/fetchClientStorage.vi.mdx +46 -0
  14. package/src/media/functional/figma/functions/fetchFrameSelection/fetchFrameSelection.en.mdx +34 -0
  15. package/src/media/functional/figma/functions/fetchFrameSelection/fetchFrameSelection.ru.mdx +34 -0
  16. package/src/media/functional/figma/functions/fetchFrameSelection/fetchFrameSelection.vi.mdx +34 -0
  17. package/src/media/functional/figma/functions/fetchFrameStyles/fetchFrameStyles.en.mdx +49 -0
  18. package/src/media/functional/figma/functions/fetchFrameStyles/fetchFrameStyles.ru.mdx +49 -0
  19. package/src/media/functional/figma/functions/fetchFrameStyles/fetchFrameStyles.vi.mdx +49 -0
  20. package/src/media/functional/figma/functions/fetchFramesSelected/fetchFramesSelected.en.mdx +19 -8
  21. package/src/media/functional/figma/functions/fetchFramesSelected/fetchFramesSelected.ru.mdx +18 -7
  22. package/src/media/functional/figma/functions/fetchFramesSelected/fetchFramesSelected.vi.mdx +19 -8
  23. package/src/media/functional/figma/functions/fetchStorage/fetchStorage.en.mdx +42 -0
  24. package/src/media/functional/figma/functions/fetchStorage/fetchStorage.ru.mdx +42 -0
  25. package/src/media/functional/figma/functions/fetchStorage/fetchStorage.vi.mdx +42 -0
  26. package/src/media/functional/figma/functions/fetchTopLevelFrames/fetchTopLevelFrames.en.mdx +29 -7
  27. package/src/media/functional/figma/functions/fetchTopLevelFrames/fetchTopLevelFrames.ru.mdx +28 -6
  28. package/src/media/functional/figma/functions/fetchTopLevelFrames/fetchTopLevelFrames.vi.mdx +29 -7
  29. package/src/media/functional/figma/functions/sendClientStorage/sendClientStorage.en.mdx +29 -0
  30. package/src/media/functional/figma/functions/sendClientStorage/sendClientStorage.ru.mdx +29 -0
  31. package/src/media/functional/figma/functions/sendClientStorage/sendClientStorage.vi.mdx +29 -0
  32. package/src/media/functional/figma/functions/sendFrameSelection/sendFrameSelection.en.mdx +28 -0
  33. package/src/media/functional/figma/functions/sendFrameSelection/sendFrameSelection.ru.mdx +28 -0
  34. package/src/media/functional/figma/functions/sendFrameSelection/sendFrameSelection.vi.mdx +28 -0
  35. package/src/media/functional/figma/functions/sendFrameStyles/sendFrameStyles.en.mdx +40 -0
  36. package/src/media/functional/figma/functions/sendFrameStyles/sendFrameStyles.ru.mdx +40 -0
  37. package/src/media/functional/figma/functions/sendFrameStyles/sendFrameStyles.vi.mdx +40 -0
  38. package/src/media/functional/figma/functions/sendFramesSelected/sendFramesSelected.en.mdx +29 -0
  39. package/src/media/functional/figma/functions/sendFramesSelected/sendFramesSelected.ru.mdx +29 -0
  40. package/src/media/functional/figma/functions/sendFramesSelected/sendFramesSelected.vi.mdx +29 -0
  41. package/src/media/functional/figma/functions/sendStorage/sendStorage.en.mdx +30 -0
  42. package/src/media/functional/figma/functions/sendStorage/sendStorage.ru.mdx +30 -0
  43. package/src/media/functional/figma/functions/sendStorage/sendStorage.vi.mdx +30 -0
  44. package/src/media/functional/figma-code/classes/FigmaClientStorage/FigmaClientStorage.en.mdx +64 -0
  45. package/src/media/functional/figma-code/classes/FigmaClientStorage/FigmaClientStorage.ru.mdx +64 -0
  46. package/src/media/functional/figma-code/classes/FigmaClientStorage/FigmaClientStorage.vi.mdx +64 -0
  47. package/src/media/functional/figma-code/classes/FigmaFrame/FigmaFrame.en.mdx +168 -35
  48. package/src/media/functional/figma-code/classes/FigmaFrame/FigmaFrame.ru.mdx +168 -35
  49. package/src/media/functional/figma-code/classes/FigmaFrame/FigmaFrame.vi.mdx +168 -35
  50. package/src/media/functional/figma-code/classes/FigmaFramesSelected/FigmaFramesSelected.en.mdx +23 -69
  51. package/src/media/functional/figma-code/classes/FigmaFramesSelected/FigmaFramesSelected.ru.mdx +22 -68
  52. package/src/media/functional/figma-code/classes/FigmaFramesSelected/FigmaFramesSelected.vi.mdx +23 -69
  53. package/src/media/functional/figma-code/classes/FigmaItem/FigmaItem.en.mdx +79 -56
  54. package/src/media/functional/figma-code/classes/FigmaItem/FigmaItem.ru.mdx +79 -56
  55. package/src/media/functional/figma-code/classes/FigmaItem/FigmaItem.vi.mdx +79 -56
  56. package/src/media/functional/figma-code/classes/FigmaPluginMessenger/FigmaPluginMessenger.en.mdx +18 -48
  57. package/src/media/functional/figma-code/classes/FigmaPluginMessenger/FigmaPluginMessenger.ru.mdx +18 -48
  58. package/src/media/functional/figma-code/classes/FigmaPluginMessenger/FigmaPluginMessenger.vi.mdx +18 -48
  59. package/src/media/functional/figma-code/classes/FigmaStorage/FigmaStorage.en.mdx +22 -67
  60. package/src/media/functional/figma-code/classes/FigmaStorage/FigmaStorage.ru.mdx +22 -67
  61. package/src/media/functional/figma-code/classes/FigmaStorage/FigmaStorage.vi.mdx +22 -67
  62. package/src/media/functional/figma-code/classes/FigmaStorageData/FigmaStorageData.en.mdx +57 -0
  63. package/src/media/functional/figma-code/classes/FigmaStorageData/FigmaStorageData.ru.mdx +57 -0
  64. package/src/media/functional/figma-code/classes/FigmaStorageData/FigmaStorageData.vi.mdx +57 -0
  65. package/src/media/functional/figma-code/classes/FigmaTopLevelFrames/FigmaTopLevelFrames.en.mdx +24 -27
  66. package/src/media/functional/figma-code/classes/FigmaTopLevelFrames/FigmaTopLevelFrames.ru.mdx +23 -26
  67. package/src/media/functional/figma-code/classes/FigmaTopLevelFrames/FigmaTopLevelFrames.vi.mdx +24 -27
  68. package/src/media/functional/figma-code/functions/getFigmaFrameById/getFigmaFrameById.en.mdx +28 -0
  69. package/src/media/functional/figma-code/functions/getFigmaFrameById/getFigmaFrameById.ru.mdx +28 -0
  70. package/src/media/functional/figma-code/functions/getFigmaFrameById/getFigmaFrameById.vi.mdx +28 -0
  71. package/src/media/functional/figma-code/functions/getFigmaItemById/getFigmaItemById.en.mdx +43 -0
  72. package/src/media/functional/figma-code/functions/getFigmaItemById/getFigmaItemById.ru.mdx +43 -0
  73. package/src/media/functional/figma-code/functions/getFigmaItemById/getFigmaItemById.vi.mdx +43 -0
  74. package/src/media/functional/figma-code/functions/getFigmaItemByIdOrRoot/getFigmaItemByIdOrRoot.en.mdx +30 -0
  75. package/src/media/functional/figma-code/functions/getFigmaItemByIdOrRoot/getFigmaItemByIdOrRoot.ru.mdx +30 -0
  76. package/src/media/functional/figma-code/functions/getFigmaItemByIdOrRoot/getFigmaItemByIdOrRoot.vi.mdx +30 -0
  77. package/src/media/functional/figma-code/functions/makeFigmaFrameSelection/makeFigmaFrameSelection.en.mdx +21 -0
  78. package/src/media/functional/figma-code/functions/makeFigmaFrameSelection/makeFigmaFrameSelection.ru.mdx +21 -0
  79. package/src/media/functional/figma-code/functions/makeFigmaFrameSelection/makeFigmaFrameSelection.vi.mdx +21 -0
  80. package/src/media/functional/figma-code/functions/makeFigmaTexts/makeFigmaTexts.en.mdx +28 -0
  81. package/src/media/functional/figma-code/functions/makeFigmaTexts/makeFigmaTexts.ru.mdx +28 -0
  82. package/src/media/functional/figma-code/functions/makeFigmaTexts/makeFigmaTexts.vi.mdx +28 -0
  83. package/src/media/functional/figma-code/functions/setupClientStorage/setupClientStorage.en.mdx +28 -0
  84. package/src/media/functional/figma-code/functions/setupClientStorage/setupClientStorage.ru.mdx +28 -0
  85. package/src/media/functional/figma-code/functions/setupClientStorage/setupClientStorage.vi.mdx +28 -0
  86. package/src/media/functional/figma-code/functions/setupFrameSelection/setupFrameSelection.en.mdx +22 -0
  87. package/src/media/functional/figma-code/functions/setupFrameSelection/setupFrameSelection.ru.mdx +22 -0
  88. package/src/media/functional/figma-code/functions/setupFrameSelection/setupFrameSelection.vi.mdx +22 -0
  89. package/src/media/functional/figma-code/functions/setupFrameStyles/setupFrameStyles.en.mdx +19 -0
  90. package/src/media/functional/figma-code/functions/setupFrameStyles/setupFrameStyles.ru.mdx +19 -0
  91. package/src/media/functional/figma-code/functions/setupFrameStyles/setupFrameStyles.vi.mdx +19 -0
  92. package/src/media/functional/figma-code/functions/setupStorage/setupStorage.en.mdx +28 -0
  93. package/src/media/functional/figma-code/functions/setupStorage/setupStorage.ru.mdx +28 -0
  94. package/src/media/functional/figma-code/functions/setupStorage/setupStorage.vi.mdx +28 -0
  95. package/src/media/functional/figma-code/functions/toFrameSelection/toFrameSelection.en.mdx +27 -0
  96. package/src/media/functional/figma-code/functions/toFrameSelection/toFrameSelection.ru.mdx +27 -0
  97. package/src/media/functional/figma-code/functions/toFrameSelection/toFrameSelection.vi.mdx +27 -0
  98. package/src/media/functional/figma-ref/composables/useFigmaClientStorage/useFigmaClientStorage.en.mdx +26 -0
  99. package/src/media/functional/figma-ref/composables/useFigmaClientStorage/useFigmaClientStorage.ru.mdx +26 -0
  100. package/src/media/functional/figma-ref/composables/useFigmaClientStorage/useFigmaClientStorage.vi.mdx +26 -0
  101. package/src/media/functional/figma-ref/composables/useFigmaFrameSelection/useFigmaFrameSelection.en.mdx +35 -0
  102. package/src/media/functional/figma-ref/composables/useFigmaFrameSelection/useFigmaFrameSelection.ru.mdx +35 -0
  103. package/src/media/functional/figma-ref/composables/useFigmaFrameSelection/useFigmaFrameSelection.vi.mdx +35 -0
  104. package/src/media/functional/figma-ref/composables/useFigmaFrameStyles/useFigmaFrameStyles.en.mdx +33 -0
  105. package/src/media/functional/figma-ref/composables/useFigmaFrameStyles/useFigmaFrameStyles.ru.mdx +33 -0
  106. package/src/media/functional/figma-ref/composables/useFigmaFrameStyles/useFigmaFrameStyles.vi.mdx +33 -0
  107. package/src/media/functional/figma-ref/composables/useFigmaStorage/useFigmaStorage.en.mdx +28 -0
  108. package/src/media/functional/figma-ref/composables/useFigmaStorage/useFigmaStorage.ru.mdx +28 -0
  109. package/src/media/functional/figma-ref/composables/useFigmaStorage/useFigmaStorage.vi.mdx +28 -0
  110. package/src/media/functional/figma-ref/composables/useFigmaUiFrames/useFigmaUiFrames.en.mdx +7 -12
  111. package/src/media/functional/figma-ref/composables/useFigmaUiFrames/useFigmaUiFrames.ru.mdx +7 -12
  112. package/src/media/functional/figma-ref/composables/useFigmaUiFrames/useFigmaUiFrames.vi.mdx +8 -13
  113. package/src/media/functional/figma-ref/composables/useFigmaUiSelected/useFigmaUiSelected.en.mdx +12 -17
  114. package/src/media/functional/figma-ref/composables/useFigmaUiSelected/useFigmaUiSelected.ru.mdx +13 -18
  115. package/src/media/functional/figma-ref/composables/useFigmaUiSelected/useFigmaUiSelected.vi.mdx +14 -19
  116. package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.en.mdx +2 -3
  117. package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.ru.mdx +2 -3
  118. package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.vi.mdx +2 -3
  119. package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementAsyncRef.en.mdx +41 -0
  120. package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementAsyncRef.ru.mdx +41 -0
  121. package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementAsyncRef.vi.mdx +41 -0
  122. package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.en.mdx +12 -0
  123. package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.ru.mdx +12 -0
  124. package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.vi.mdx +6 -0
  125. package/src/media/functional/functional/composables/useApiRef/useApiRef.en.mdx +12 -9
  126. package/src/media/functional/functional/composables/useApiRef/useApiRef.ru.mdx +12 -9
  127. package/src/media/functional/functional/composables/useApiRef/useApiRef.vi.mdx +11 -9
  128. package/src/media/functional/nitro-basic/functions/getInject.en.mdx +27 -0
  129. package/src/media/functional/nitro-basic/functions/getInject.ru.mdx +27 -0
  130. package/src/media/functional/nitro-basic/functions/getInject.vi.mdx +20 -0
  131. package/src/media/functional/ui-figma/about/about.en.mdx +52 -0
  132. package/src/media/functional/ui-figma/about/about.ru.mdx +52 -0
  133. package/src/media/functional/ui-figma/about/about.vi.mdx +52 -0
  134. package/src/media/functional/ui-figma/frames/frames.en.mdx +58 -0
  135. package/src/media/functional/ui-figma/frames/frames.ru.mdx +58 -0
  136. package/src/media/functional/ui-figma/frames/frames.vi.mdx +58 -0
  137. package/src/media/functional/ui-figma/messenger/messenger.en.mdx +67 -0
  138. package/src/media/functional/ui-figma/messenger/messenger.ru.mdx +67 -0
  139. package/src/media/functional/ui-figma/messenger/messenger.vi.mdx +67 -0
  140. package/src/media/functional/ui-figma/selection/selection.en.mdx +65 -0
  141. package/src/media/functional/ui-figma/selection/selection.ru.mdx +65 -0
  142. package/src/media/functional/ui-figma/selection/selection.vi.mdx +65 -0
  143. package/src/media/functional/ui-figma/storage/storage.en.mdx +53 -0
  144. package/src/media/functional/ui-figma/storage/storage.ru.mdx +53 -0
  145. package/src/media/functional/ui-figma/storage/storage.vi.mdx +53 -0
  146. package/src/media/functional/ui-figma/styles/styles.en.mdx +57 -0
  147. package/src/media/functional/ui-figma/styles/styles.ru.mdx +57 -0
  148. package/src/media/functional/ui-figma/styles/styles.vi.mdx +57 -0
  149. /package/src/media/functional/ui/{wiki-data.en.mdx → wiki/wiki-data.en.mdx} +0 -0
  150. /package/src/media/functional/ui/{wiki-data.ru.mdx → wiki/wiki-data.ru.mdx} +0 -0
  151. /package/src/media/functional/ui/{wiki-data.vi.mdx → wiki/wiki-data.vi.mdx} +0 -0
@@ -1,63 +1,33 @@
1
- import {Meta} from '@storybook/addon-docs/blocks'
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/ru/figma-code/Classes/FigmaPluginMessenger - Мессенджер плагина'/>
3
+ <Meta title='@dxtmisha/ru/figma-code/Classes/FigmaPluginMessenger - Мессенджер плагина (Backend)'/>
4
4
 
5
- # Класс FigmaPluginMessenger
5
+ # Класс `FigmaPluginMessenger`
6
6
 
7
- Мессенджер для стороны плагина Figma (backend). Обрабатывает отправку сообщений в UI Figma и прослушивание сообщений из UI, используя внутренний API Figma `figma.ui`.
7
+ Специализированный мессенджер для фоновой части (backend) плагина Figma. Он расширяет `FigmaPostAbstract`, обеспечивая надежный уровень связи между основной логикой плагина (сторона кода) и его пользовательским интерфейсом (UI).
8
+
9
+ ## Ключевые особенности
10
+
11
+ - **Архитектура Синглтон** — Используйте `getInstance()`, чтобы гарантировать, что все части плагина используют один и тот же центр связи.
12
+ - **Упрощенный API** — Оборачивает стандартные методы `figma.ui.postMessage` и `figma.ui.onmessage` в более удобный интерфейс.
13
+ - **Типобезопасность** — Поддерживает генерики для сообщений, обеспечивая согласованность данных.
8
14
 
9
15
  ## Инициализация
10
16
 
11
- Наследует `FigmaPostAbstract`.
17
+ Доступ к единственному экземпляру осуществляется через статический метод `getInstance()`.
12
18
 
13
19
  ```typescript
14
20
  import { FigmaPluginMessenger } from '@dxtmisha/figma-code'
15
21
 
16
- const messenger = new FigmaPluginMessenger()
17
- .make()
18
- .add('hello-ui', (msg) => console.log('UI:', msg))
19
- ```
20
-
21
- ## Публичные методы
22
-
23
- ### `make`
24
-
25
- Инициализирует слушатель сообщений, используя API `figma.ui.onmessage`. Должен быть вызван один раз для начала приема сообщений из UI.
26
-
27
- **Возвращает:** `this`
28
-
29
- ```javascript
30
- messenger.make()
22
+ const messenger = FigmaPluginMessenger.getInstance()
31
23
  ```
32
24
 
33
- ### `add`
25
+ ## Методы
34
26
 
35
- Регистрирует слушатель для определенного типа сообщения, поступающего из UI.
27
+ ### Связь
36
28
 
37
- **Параметры:**
38
- - `type: string` — Уникальный идентификатор типа сообщения для прослушивания.
39
- - `callback: (message: Message) => void` — функция, которую необходимо выполнить при получении соответствующего сообщения.
29
+ Методы для отправки и получения сообщений.
40
30
 
41
- **Возвращает:** `this`
42
-
43
- ```javascript
44
- messenger.add('resize-ui', (data) => {
45
- figma.ui.resize(data.width, data.height)
46
- })
47
- ```
48
-
49
- ### `post`
50
-
51
- Отправляет сообщение в UI Figma.
52
-
53
- **Параметры:**
54
- - `type: string` — Идентификатор сообщения (тип).
55
- - `message: Message` — (Опционально) Полезные данные для отправки в UI.
56
-
57
- **Возвращает:** `void`
58
-
59
- ```javascript
60
- messenger.post('selection-data', {
61
- ids: figma.currentPage.selection.map(node => node.id)
62
- })
63
- ```
31
+ - `post<Message>(type: string, message?: Message): void` — Отправляет сообщение определенного типа в UI Figma.
32
+ - `add(type: string, callback: (data: any) => void): this` — (Наследуется) Регистрирует слушателя для сообщений из UI.
33
+ - `remove(type: string): this` — (Наследуется) Удаляет слушателя.
@@ -1,63 +1,33 @@
1
- import {Meta} from '@storybook/addon-docs/blocks'
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/vi/figma-code/Classes/FigmaPluginMessenger - Trình nhắn tin Backend'/>
3
+ <Meta title='@dxtmisha/vi/figma-code/Classes/FigmaPluginMessenger - Trình nhắn tin plugin (Backend)'/>
4
4
 
5
- # Lớp FigmaPluginMessenger
5
+ # Lớp `FigmaPluginMessenger`
6
6
 
7
- Trình nhắn tin cho phía plugin Figma (backend). Nó xử việc gửi tin nhắn đến UI Figma lắng nghe tin nhắn từ UI bằng API nội bộ của Figma `figma.ui`.
7
+ Một trình nhắn tin chuyên dụng cho phía backend của plugin Figma. Nó mở rộng `FigmaPostAbstract` để cung cấp một lớp giao tiếp mạnh mẽ giữa logic chính của plugin (phía mã) giao diện người dùng (UI).
8
+
9
+ ## Các tính năng chính
10
+
11
+ - **Kiến trúc Singleton** — Sử dụng `getInstance()` để đảm bảo tất cả các phần của plugin đều sử dụng cùng một trung tâm giao tiếp.
12
+ - **API đơn giản hóa** — Bọc các tiêu chuẩn `figma.ui.postMessage` và `figma.ui.onmessage` vào một giao diện dễ quản lý hơn.
13
+ - **An toàn kiểu dữ liệu** — Hỗ trợ các kiểu generic cho tin nhắn để đảm bảo tính nhất quán của dữ liệu.
8
14
 
9
15
  ## Khởi tạo
10
16
 
11
- Kế thừa từ `FigmaPostAbstract`.
17
+ Truy cập thực thể singleton bằng phương thức tĩnh `getInstance()`.
12
18
 
13
19
  ```typescript
14
20
  import { FigmaPluginMessenger } from '@dxtmisha/figma-code'
15
21
 
16
- const messenger = new FigmaPluginMessenger()
17
- .make()
18
- .add('hello-ui', (msg) => console.log('UI:', msg))
19
- ```
20
-
21
- ## Các phương thức công khai
22
-
23
- ### `make`
24
-
25
- Khởi tạo trình lắng nghe tin nhắn bằng API `figma.ui.onmessage`. Nên được gọi một lần để bắt đầu nhận tin nhắn từ UI.
26
-
27
- **Trả về:** `this`
28
-
29
- ```javascript
30
- messenger.make()
22
+ const messenger = FigmaPluginMessenger.getInstance()
31
23
  ```
32
24
 
33
- ### `add`
25
+ ## Các phương thức
34
26
 
35
- Đăng một trình lắng nghe cho một loại tin nhắn cụ thể đến từ UI.
27
+ ### Giao tiếp (Communication)
36
28
 
37
- **Tham số:**
38
- - `type: string` — Mã định danh duy nhất cho loại tin nhắn cần lắng nghe.
39
- - `callback: (message: Message) => void` — hàm sẽ thực thi khi có một tin nhắn phù hợp đến.
29
+ Các phương thức để gửi và nhận tin nhắn.
40
30
 
41
- **Trả về:** `this`
42
-
43
- ```javascript
44
- messenger.add('resize-ui', (data) => {
45
- figma.ui.resize(data.width, data.height)
46
- })
47
- ```
48
-
49
- ### `post`
50
-
51
- Gửi một tin nhắn đến phía UI Figma.
52
-
53
- **Tham số:**
54
- - `type: string` — Mã định danh của tin nhắn (loại).
55
- - `message: Message` — (Tùy chọn) Dữ liệu payload để gửi đến UI.
56
-
57
- **Trả về:** `void`
58
-
59
- ```javascript
60
- messenger.post('selection-data', {
61
- ids: figma.currentPage.selection.map(node => node.id)
62
- })
63
- ```
31
+ - `post<Message>(type: string, message?: Message): void` — Gửi tin nhắn thuộc một loại cụ thể đến UI của Figma.
32
+ - `add(type: string, callback: (data: any) => void): this` — (Kế thừa) Đăng ký một trình lắng nghe cho các tin nhắn từ UI.
33
+ - `remove(type: string): this` — (Kế thừa) Xóa một trình lắng nghe.
@@ -1,90 +1,45 @@
1
- import {Meta} from '@storybook/addon-docs/blocks'
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/en/figma-code/Classes/FigmaStorage - Storage Manager'/>
3
+ <Meta title='@dxtmisha/en/figma-code/Classes/FigmaStorage - Working with document storage'/>
4
4
 
5
- # FigmaStorage Class
5
+ # Class `FigmaStorage`
6
6
 
7
- A class for robust management of Figma's `PluginData`. It provides a high-level API for storing, retrieving, and expiring data on Figma nodes (defaulting to the root node), with support for in-memory caching and default values.
7
+ A high-level wrapper for Figma's `setPluginData` and `getPluginData` APIs. It allows for storing structured data directly within the Figma document, either globally (`figma.root`) or attached to specific nodes. These data are shared among all users collaborating on the file.
8
8
 
9
9
  ## Key Features
10
10
 
11
- - **Persistence** — Wraps `getPluginData` and `setPluginData` for seamless data storage.
12
- - **In-Memory Caching** — Stores values in the instance for fast access during the current execution context.
13
- - **Expiration Logic** — Supports age-based caching to invalidate stale data.
14
- - **Functional Values** — Supports passing functions as values or default values for dynamic data generation.
11
+ - **Node-Specific Storage** — Data can be bound to any Figma node (Frame, Group, etc.) or the document root.
12
+ - **Shared Access** — Unlike client storage, plugin data is saved inside the `.fig` file and is synchronized across all users.
13
+ - **Instance Management** — The class uses internal caching to ensure that multiple calls for the same key on the same node return the same instance.
14
+ - **Automatic Serialization** — Handles JSON conversion for complex data structures transparently.
15
15
 
16
16
  ## Initialization
17
17
 
18
- To initialize the object, call the `FigmaStorage(name, item, cache)` constructor.
19
-
20
- ### Generic Parameters
21
-
22
- The class supports a generic parameter for typed data management:
23
- - `T` — The type of the value being stored and retrieved.
24
-
25
- **Parameters:**
26
- - `name: string` — The unique key name for the storage item.
27
- - `item: PluginDataMixin = figma.root` — The Figma node where the data will be stored. Defaults to `figma.root`.
28
- - `cache: number` — (Optional) TTL in seconds for the stored data.
18
+ Access an instance using static methods. You can provide a raw node or a node ID.
29
19
 
30
20
  ```typescript
31
21
  import { FigmaStorage } from '@dxtmisha/figma-code'
32
22
 
33
- // 1. Initialize with implicit typing
34
- const settings = new FigmaStorage('plugin-settings')
23
+ // Get instance for the entire document
24
+ const globalStorage = FigmaStorage.getInstance<object>('app-settings')
35
25
 
36
- // 2. Initialize with explicit generic for strict typing
37
- interface MyData { theme: string; version: number }
38
- const typedSettings = new FigmaStorage<MyData>('app-data')
39
-
40
- // 3. Initialize with a 1-hour cache
41
- const cacheSettings = new FigmaStorage('cache', figma.root, 3600)
26
+ // Get instance for a specific node by ID
27
+ const nodeStorage = await FigmaStorage.getInstanceById<string>('element-name', '1:123')
42
28
  ```
43
29
 
44
30
  ## Methods
45
31
 
46
- ### `get`
47
-
48
- Retrieves data from storage with support for default values and cache validation.
49
-
50
- **Parameters:**
51
- - `defaultValue: T | (() => T)` — (Optional) Value returned (and saved) if storage is empty or expired.
52
-
53
- **Returns:** `T | undefined`
54
-
55
- ```javascript
56
- const val = settings.get('default_val')
57
- ```
58
-
59
- ### `set`
32
+ ### Data Access
60
33
 
61
- Updates the data in both the in-memory cache and the Figma node's `PluginData`.
34
+ Methods for managing data stored in the document.
62
35
 
63
- **Parameters:**
64
- - `value: T | (() => T)` — (Optional) New value or a function that returns the new value.
36
+ - `get(defaultValue?: T | (() => T)): T | undefined` — Retrieves data from the node. Sets a default value if the storage is empty.
37
+ - `set(value?: T | (() => T)): T | undefined` — Updates the data for the node and returns the new value.
38
+ - `remove(): this` — Clears the plugin data for the specified key on the node.
65
39
 
66
- **Returns:** `T | undefined`
40
+ ### Instance Management (Static)
67
41
 
68
- ```javascript
69
- settings.set({ theme: 'dark' })
70
- ```
71
-
72
- ### `remove`
73
-
74
- Clears the data from both the in-memory cache and the Figma node's `PluginData`.
75
-
76
- **Returns:** `this`
77
-
78
- ```javascript
79
- settings.remove()
80
- ```
81
-
82
- ### `getName`
83
-
84
- Returns the key name used for this storage instance.
42
+ Methods for retrieving class instances.
85
43
 
86
- **Returns:** `string`
87
-
88
- ```javascript
89
- console.log(settings.getName())
90
- ```
44
+ - `static getInstance<T>(name: string, item: UiFigmaNode): FigmaStorage<T>` — Returns an instance for a specific node.
45
+ - `static getInstanceById<T>(name: string, id?: string): Promise<FigmaStorage<T>>` — Asynchronously retrieves an instance using a node ID.
@@ -1,90 +1,45 @@
1
- import {Meta} from '@storybook/addon-docs/blocks'
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/ru/figma-code/Classes/FigmaStorage - Менеджер хранилища'/>
3
+ <Meta title='@dxtmisha/ru/figma-code/Classes/FigmaStorage - Работа с хранилищем документа'/>
4
4
 
5
- # Класс FigmaStorage
5
+ # Класс `FigmaStorage`
6
6
 
7
- Класс для управления `PluginData` в Figma. Предоставляет высокоуровневый API для сохранения, получения и контроля срока жизни данных на узлах Figma (по умолчанию корень документа), с поддержкой кэширования в памяти и значений по умолчанию.
7
+ Высокоуровневая обертка над API `setPluginData` и `getPluginData` в Figma. Позволяет сохранять структурированные данные непосредственно внутри документа Figma либо глобально (`figma.root`), либо с привязкой к конкретным узлам. Эти данные синхронизируются между всеми пользователями, работающими с файлом.
8
8
 
9
9
  ## Ключевые особенности
10
10
 
11
- - **Персистентность**Обертка над `getPluginData` и `setPluginData` для удобного хранения данных.
12
- - **Кэширование в памяти** Сохраняет значения в экземпляре для быстрого доступа во время выполнения.
13
- - **Логика истечения срока** Поддержка кэширования на основе времени для инвалидации устаревших данных.
14
- - **Функциональные значения**Поддержка передачи функций в качестве значений или значений по умолчанию для динамической генерации данных.
11
+ - **Привязка к узлам** Данные могут быть привязаны к любому узлу Figma (фрейму, группе и т.д.) или к корню документа.
12
+ - **Общий доступ**В отличие от клиентского хранилища, данные плагина сохраняются внутри файла `.fig` и доступны всем пользователям.
13
+ - **Управление экземплярами**Класс использует внутреннее кэширование, гарантируя, что повторные вызовы для одного и того же ключа на одном узле вернут один и тот же экземпляр.
14
+ - **Автоматическая сериализация**Прозрачно обрабатывает преобразование сложных структур данных в JSON и обратно.
15
15
 
16
16
  ## Инициализация
17
17
 
18
- Для инициализации объекта вызовите конструктор `FigmaStorage(name, item, cache)`.
19
-
20
- ### Параметры универсального типа (Generics)
21
-
22
- Класс поддерживает параметр универсального типа для типизированного управления данными:
23
- - `T` — Тип сохраняемого и получаемого значения.
24
-
25
- **Параметры:**
26
- - `name: string` — Уникальное имя ключа для элемента хранилища.
27
- - `item: PluginDataMixin = figma.root` — Узел Figma, в котором будут храниться данные. По умолчанию — `figma.root`.
28
- - `cache: number` — (Опционально) Время жизни (TTL) данных в секундах.
18
+ Доступ к экземпляру осуществляется через статические методы. Можно передать сам узел или его ID.
29
19
 
30
20
  ```typescript
31
21
  import { FigmaStorage } from '@dxtmisha/figma-code'
32
22
 
33
- // 1. Инициализация с неявной типизацией
34
- const settings = new FigmaStorage('plugin-settings')
23
+ // Получение экземпляра для всего документа
24
+ const globalStorage = FigmaStorage.getInstance<object>('app-settings')
35
25
 
36
- // 2. Использование дженериков для строгой типизации
37
- interface MyData { theme: string; version: number }
38
- const typedSettings = new FigmaStorage<MyData>('app-data')
39
-
40
- // 3. Инициализация с кэшированием на 1 час
41
- const cacheSettings = new FigmaStorage('cache', figma.root, 3600)
26
+ // Получение экземпляра для конкретного узла по его ID
27
+ const nodeStorage = await FigmaStorage.getInstanceById<string>('element-name', '1:123')
42
28
  ```
43
29
 
44
30
  ## Методы
45
31
 
46
- ### `get`
47
-
48
- Получает данные из хранилища с поддержкой значений по умолчанию и проверки кэша.
49
-
50
- **Параметры:**
51
- - `defaultValue: T | (() => T)` — (Опционально) Значение, которое возвращается (и сохраняется), если хранилище пустое или срок действия данных истек.
52
-
53
- **Возвращает:** `T | undefined`
54
-
55
- ```javascript
56
- const val = settings.get('default_val')
57
- ```
58
-
59
- ### `set`
32
+ ### Доступ к данным
60
33
 
61
- Обновляет данные как в кэше в памяти, так и в `PluginData` узла Figma.
34
+ Методы для управления данными, хранящимися в документе.
62
35
 
63
- **Параметры:**
64
- - `value: T | (() => T)` — (Опционально) Новое значение или функция, возвращающая новое значение.
36
+ - `get(defaultValue?: T | (() => T)): T | undefined` — Извлекает данные. Устанавливает значение по умолчанию, если хранилище пустое.
37
+ - `set(value?: T | (() => T)): T | undefined` — Обновляет данные и возвращает новое значение.
38
+ - `remove(): this` — Очищает данные плагина для указанного ключа на узле.
65
39
 
66
- **Возвращает:** `T | undefined`
40
+ ### Управление экземплярами (Статические)
67
41
 
68
- ```javascript
69
- settings.set({ theme: 'dark' })
70
- ```
71
-
72
- ### `remove`
73
-
74
- Очищает данные как из кэша в памяти, так и из `PluginData` узла Figma.
75
-
76
- **Возвращает:** `this`
77
-
78
- ```javascript
79
- settings.remove()
80
- ```
81
-
82
- ### `getName`
83
-
84
- Возвращает имя ключа, используемое этим экземпляром хранилища.
42
+ Методы для получения экземпляров класса.
85
43
 
86
- **Возвращает:** `string`
87
-
88
- ```javascript
89
- console.log(settings.getName())
90
- ```
44
+ - `static getInstance<T>(name: string, item: UiFigmaNode): FigmaStorage<T>` — Возвращает экземпляр для конкретного узла.
45
+ - `static getInstanceById<T>(name: string, id?: string): Promise<FigmaStorage<T>>` — Асинхронно получает экземпляр, используя ID узла.
@@ -1,90 +1,45 @@
1
- import {Meta} from '@storybook/addon-docs/blocks'
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/vi/figma-code/Classes/FigmaStorage - Quản Lưu trữ'/>
3
+ <Meta title='@dxtmisha/vi/figma-code/Classes/FigmaStorage - Làm việc với bộ nhớ tài liệu'/>
4
4
 
5
- # Lớp FigmaStorage
5
+ # Lớp `FigmaStorage`
6
6
 
7
- Một lớp để quản `PluginData` trong Figma một cách mạnh mẽ. cung cấp một API cấp cao để lưu trữ, truy xuất kiểm soát thời hạn của dữ liệu trên các node Figma (mặc định node gốc của tài liệu), hỗ trợ bộ nhớ đệm (caching) các giá trị mặc định.
7
+ Một lớp bọc cấp cao cho các API `setPluginData` `getPluginData` của Figma.cho phép lưu trữ dữ liệu cấu trúc trực tiếp trong tài liệu Figma, theo cách toàn cục (`figma.root`) hoặc đính kèm với các node cụ thể. Dữ liệu này được chia sẻ giữa tất cả người dùng cộng tác trên tệp.
8
8
 
9
9
  ## Các tính năng chính
10
10
 
11
- - **Tính kiên trì (Persistence)**Bao bọc `getPluginData` `setPluginData` để lưu trữ dữ liệu liền mạch.
12
- - **Bộ nhớ đệm (In-Memory Caching)** — Lưu trữ các giá trị trong thực thể để truy cập nhanh trong ngữ cảnh thực thi hiện tại.
13
- - **Logic hết hạn**Hỗ trợ lưu trữ dựa trên thời gian để hiệu hóa dữ liệu lỗi thời.
14
- - **Giá trị chức năng** — Hỗ trợ truyền các hàm dưới dạng giá trị hoặc giá trị mặc định để tạo dữ liệu động.
11
+ - **Lưu trữ theo node cụ thể** Dữ liệu thể được liên kết với bất kỳ node Figma nào (Frame, Group, v.v.) hoặc gốc của tài liệu.
12
+ - **Truy cập chung** — Không giống như bộ nhớ client, dữ liệu plugin được lưu bên trong tệp `.fig` được đồng bộ hóa giữa tất cả người dùng.
13
+ - **Quản thực thể** Lớp sử dụng cơ chế lưu tạm nội bộ để đảm bảo rằng các lệnh gọi lặp lại cho cùng một khóa trên cùng một node sẽ trả về cùng một thực thể.
14
+ - **Tự động tuần tự hóa** — Xử việc chuyển đổi JSON cho các cấu trúc dữ liệu phức tạp một cách minh bạch.
15
15
 
16
16
  ## Khởi tạo
17
17
 
18
- Khởi tạo đối tượng bằng cách gọi hàm dựng `FigmaStorage(name, item, cache)`.
19
-
20
- ### Tham số Generics
21
-
22
- Lớp hỗ trợ một tham số generic để quản lý dữ liệu có định kiểu:
23
- - `T` — Kiểu dữ liệu của giá trị được lưu trữ và truy xuất.
24
-
25
- **Tham số:**
26
- - `name: string` — Tên khóa duy nhất cho mục lưu trữ.
27
- - `item: PluginDataMixin = figma.root` — Node Figma nơi dữ liệu sẽ được lưu trữ. Mặc định là `figma.root`.
28
- - `cache: number` — (Tùy chọn) Thời gian sống (TTL) tính bằng giây cho dữ liệu được lưu trữ.
18
+ Truy cập một thực thể bằng cách sử dụng các phương thức tĩnh. Bạn có thể cung cấp một node gốc hoặc một ID node.
29
19
 
30
20
  ```typescript
31
21
  import { FigmaStorage } from '@dxtmisha/figma-code'
32
22
 
33
- // 1. Khởi tạo với kiểu dữ liệu ngầm định
34
- const settings = new FigmaStorage('plugin-settings')
23
+ // Lấy thực thể cho toàn bộ tài liệu
24
+ const globalStorage = FigmaStorage.getInstance<object>('app-settings')
35
25
 
36
- // 2. Sử dụng generics để định kiểu nghiêm ngặt
37
- interface MyData { theme: string; version: number }
38
- const typedSettings = new FigmaStorage<MyData>('app-data')
39
-
40
- // 3. Khởi tạo với bộ nhớ đệm 1 giờ
41
- const cacheSettings = new FigmaStorage('cache', figma.root, 3600)
26
+ // Lấy thực thể cho một node cụ thể bằng ID
27
+ const nodeStorage = await FigmaStorage.getInstanceById<string>('element-name', '1:123')
42
28
  ```
43
29
 
44
30
  ## Các phương thức
45
31
 
46
- ### `get`
47
-
48
- Truy xuất dữ liệu từ bộ lưu trữ với hỗ trợ các giá trị mặc định và xác thực bộ nhớ đệm.
49
-
50
- **Tham số:**
51
- - `defaultValue: T | (() => T)` — (Tùy chọn) Giá trị được trả về (và bộ lưu trữ) nếu bộ lưu trữ trống hoặc hết hạn.
52
-
53
- **Trả về:** `T | undefined`
54
-
55
- ```javascript
56
- const val = settings.get('default_val')
57
- ```
58
-
59
- ### `set`
32
+ ### Truy cập dữ liệu
60
33
 
61
- Cập nhật dữ liệu trong cả bộ nhớ đệm trong bộ nhớ `PluginData` của node Figma.
34
+ Các phương thức để quản dữ liệu được lưu trữ trong tài liệu.
62
35
 
63
- **Tham số:**
64
- - `value: T | (() => T)` (Tùy chọn) Giá trị mới hoặc một hàm trả về giá trị mới.
36
+ - `get(defaultValue?: T | (() => T)): T | undefined` — Truy xuất dữ liệu. Thiết lập giá trị mặc định nếu bộ nhớ đang trống.
37
+ - `set(value?: T | (() => T)): T | undefined` Cập nhật dữ liệu trả về giá trị mới.
38
+ - `remove(): this` — Xóa dữ liệu plugin cho khóa đã chỉ định trên node.
65
39
 
66
- **Trả về:** `T | undefined`
40
+ ### Quản thực thể (Tĩnh)
67
41
 
68
- ```javascript
69
- settings.set({ theme: 'dark' })
70
- ```
71
-
72
- ### `remove`
73
-
74
- Xóa dữ liệu khỏi cả bộ nhớ đệm trong bộ nhớ và `PluginData` của node Figma.
75
-
76
- **Trả về:** `this`
77
-
78
- ```javascript
79
- settings.remove()
80
- ```
81
-
82
- ### `getName`
83
-
84
- Trả về tên khóa được sử dụng cho thực thể lưu trữ này.
42
+ Các phương thức để truy xuất các thực thể của lớp.
85
43
 
86
- **Trả về:** `string`
87
-
88
- ```javascript
89
- console.log(settings.getName())
90
- ```
44
+ - `static getInstance<T>(name: string, item: UiFigmaNode): FigmaStorage<T>` — Trả về một thực thể cho một node cụ thể.
45
+ - `static getInstanceById<T>(name: string, id?: string): Promise<FigmaStorage<T>>` — Lấy một thực thể một cách bất đồng bộ bằng ID node.
@@ -0,0 +1,57 @@
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title='@dxtmisha/en/figma-code/Classes/FigmaStorageData - Storage data container'/>
4
+
5
+ # Class `FigmaStorageData`
6
+
7
+ A low-level container for managing individual data entries within Figma's storage systems (Client Storage or Plugin Data). It tracks values along with their update time (age) and handles cache expiration logic.
8
+
9
+ ## Key Features
10
+
11
+ - **Cache Tracking** — Automatically determines if data is still valid based on a configurable Time-To-Live (TTL).
12
+ - **Update Monitoring** — Stores the timestamp of the last update to facilitate data freshness checks.
13
+ - **Serialization Ready** — Provides methods to convert data to and from a standard storage format (`FigmaStorageDataValue`).
14
+
15
+ ## Initialization
16
+
17
+ Initialize with a key name and an optional cache time in seconds.
18
+
19
+ ```typescript
20
+ import { FigmaStorageData } from '@dxtmisha/figma-code'
21
+
22
+ // Cache for 1 hour (3600 seconds)
23
+ const dataContainer = new FigmaStorageData<string>('user-name', 3600)
24
+ ```
25
+
26
+ ## Methods
27
+
28
+ ### State Checks
29
+
30
+ - `isNull(): boolean` — Checks if the current value is null or undefined.
31
+ - `isCache(): boolean` — Checks if the data is within its allowed cache lifetime.
32
+ - `isValue(): boolean` — Returns true if the value is defined and the cache is valid.
33
+
34
+ ### Accessors
35
+
36
+ - `get(): T | undefined` — Returns the current value.
37
+ - `getAge(): number | undefined` — Returns the timestamp of the last update.
38
+ - `getName(): string` — Returns the unique storage key name (prefixed).
39
+ - `getCache(): number | undefined` — Returns the configured cache time.
40
+
41
+ ### Modifiers
42
+
43
+ - `set(value?: T, age?: number): this` — Manually sets both value and age.
44
+ - `setByObject(value?: FigmaStorageDataValue<T>): this` — Sets data from a storage object.
45
+ - `update(value?: T): this` — Updates the value and sets the age to the current timestamp.
46
+ - `remove(): this` — Clears the value and age.
47
+
48
+ ### Conversion
49
+
50
+ - `toValue(): FigmaStorageDataValue<T>` — Converts the current state to a storage-compatible object.
51
+
52
+ ## Data Types
53
+
54
+ #### `FigmaStorageDataValue<T>`
55
+ The structure used for persistent storage.
56
+ - `value: T` — The actual data.
57
+ - `age: number` — The timestamp (ms) of when the data was saved.
@@ -0,0 +1,57 @@
1
+ import { Meta, Source } from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title='@dxtmisha/ru/figma-code/Classes/FigmaStorageData - Контейнер данных хранилища'/>
4
+
5
+ # Класс `FigmaStorageData`
6
+
7
+ Низкоуровневый контейнер для управления отдельными записями данных в системах хранения Figma (Client Storage или Plugin Data). Он отслеживает значения вместе с временем их обновления (возрастом) и обрабатывает логику истечения срока действия кэша.
8
+
9
+ ## Ключевые особенности
10
+
11
+ - **Отслеживание кэша** — Автоматически определяет, актуальны ли данные на основе настраиваемого времени жизни (TTL).
12
+ - **Мониторинг обновлений** — Сохраняет метку времени последнего обновления для облегчения проверки свежести данных.
13
+ - **Готовность к сериализации** — Предоставляет методы для преобразования данных в стандартный формат хранения (`FigmaStorageDataValue`) и обратно.
14
+
15
+ ## Инициализация
16
+
17
+ Инициализируется именем ключа и опциональным временем кэширования в секундах.
18
+
19
+ ```typescript
20
+ import { FigmaStorageData } from '@dxtmisha/figma-code'
21
+
22
+ // Кэш на 1 час (3600 секунд)
23
+ const dataContainer = new FigmaStorageData<string>('user-name', 3600)
24
+ ```
25
+
26
+ ## Методы
27
+
28
+ ### Проверка состояния
29
+
30
+ - `isNull(): boolean` — Проверяет, является ли текущее значение null или undefined.
31
+ - `isCache(): boolean` — Проверяет, находятся ли данные в пределах разрешенного времени жизни кэша.
32
+ - `isValue(): boolean` — Возвращает true, если значение определено и кэш валиден.
33
+
34
+ ### Аксессоры
35
+
36
+ - `get(): T | undefined` — Возвращает текущее значение.
37
+ - `getAge(): number | undefined` — Возвращает метку времени последнего обновления.
38
+ - `getName(): string` — Возвращает уникальное имя ключа хранилища (с префиксом).
39
+ - `getCache(): number | undefined` — Возвращает настроенное время кэширования.
40
+
41
+ ### Модификаторы
42
+
43
+ - `set(value?: T, age?: number): this` — Вручную устанавливает значение и время.
44
+ - `setByObject(value?: FigmaStorageDataValue<T>): this` — Устанавливает данные из объекта хранилища.
45
+ - `update(value?: T): this` — Обновляет значение и устанавливает текущую метку времени.
46
+ - `remove(): this` — Очищает значение и время.
47
+
48
+ ### Преобразование
49
+
50
+ - `toValue(): FigmaStorageDataValue<T>` — Преобразует текущее состояние в объект, совместимый с хранилищем.
51
+
52
+ ## Типы данных
53
+
54
+ #### `FigmaStorageDataValue<T>`
55
+ Структура, используемая для постоянного хранения.
56
+ - `value: T` — Фактические данные.
57
+ - `age: number` — Метка времени (мс) момента сохранения данных.