@materi.ai/frame 1.0.0-rc.1

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.

Potentially problematic release.


This version of @materi.ai/frame might be problematic. Click here for more details.

Files changed (663) hide show
  1. package/CHANGELOG.md +330 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1124 -0
  4. package/dist/api/client.d.ts +66 -0
  5. package/dist/api/client.d.ts.map +1 -0
  6. package/dist/api/client.js +112 -0
  7. package/dist/api/client.js.map +1 -0
  8. package/dist/api/endpoints/index.d.ts +186 -0
  9. package/dist/api/endpoints/index.d.ts.map +1 -0
  10. package/dist/api/endpoints/index.js +141 -0
  11. package/dist/api/endpoints/index.js.map +1 -0
  12. package/dist/api/index.d.ts +8 -0
  13. package/dist/api/index.d.ts.map +1 -0
  14. package/dist/api/index.js +7 -0
  15. package/dist/api/index.js.map +1 -0
  16. package/dist/core/auth/index.d.ts +71 -0
  17. package/dist/core/auth/index.d.ts.map +1 -0
  18. package/dist/core/auth/index.js +189 -0
  19. package/dist/core/auth/index.js.map +1 -0
  20. package/dist/core/commands/index.d.ts +115 -0
  21. package/dist/core/commands/index.d.ts.map +1 -0
  22. package/dist/core/commands/index.js +321 -0
  23. package/dist/core/commands/index.js.map +1 -0
  24. package/dist/core/editors/index.d.ts +8 -0
  25. package/dist/core/editors/index.d.ts.map +1 -0
  26. package/dist/core/editors/index.js +8 -0
  27. package/dist/core/editors/index.js.map +1 -0
  28. package/dist/core/editors/presentation.d.ts +150 -0
  29. package/dist/core/editors/presentation.d.ts.map +1 -0
  30. package/dist/core/editors/presentation.js +255 -0
  31. package/dist/core/editors/presentation.js.map +1 -0
  32. package/dist/core/editors/rich-text.d.ts +93 -0
  33. package/dist/core/editors/rich-text.d.ts.map +1 -0
  34. package/dist/core/editors/rich-text.js +222 -0
  35. package/dist/core/editors/rich-text.js.map +1 -0
  36. package/dist/core/editors/spreadsheet.d.ts +108 -0
  37. package/dist/core/editors/spreadsheet.d.ts.map +1 -0
  38. package/dist/core/editors/spreadsheet.js +251 -0
  39. package/dist/core/editors/spreadsheet.js.map +1 -0
  40. package/dist/core/formula/index.d.ts +144 -0
  41. package/dist/core/formula/index.d.ts.map +1 -0
  42. package/dist/core/formula/index.js +269 -0
  43. package/dist/core/formula/index.js.map +1 -0
  44. package/dist/core/generated/index.d.ts +35 -0
  45. package/dist/core/generated/index.d.ts.map +1 -0
  46. package/dist/core/generated/index.js +41 -0
  47. package/dist/core/generated/index.js.map +1 -0
  48. package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.d.ts +75 -0
  49. package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.d.ts.map +1 -0
  50. package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.js +304 -0
  51. package/dist/core/generated/manuscript/domains/aria/domains/aria/v1.js.map +1 -0
  52. package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.d.ts +1340 -0
  53. package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.d.ts.map +1 -0
  54. package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.js +2965 -0
  55. package/dist/core/generated/manuscript/domains/aria/google/protobuf/descriptor.js.map +1 -0
  56. package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.d.ts +131 -0
  57. package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.d.ts.map +1 -0
  58. package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.js +308 -0
  59. package/dist/core/generated/manuscript/domains/aria/google/protobuf/struct.js.map +1 -0
  60. package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.d.ts +133 -0
  61. package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.d.ts.map +1 -0
  62. package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.js +41 -0
  63. package/dist/core/generated/manuscript/domains/aria/google/protobuf/timestamp.js.map +1 -0
  64. package/dist/core/generated/manuscript/domains/aria/shared/v1.d.ts +132 -0
  65. package/dist/core/generated/manuscript/domains/aria/shared/v1.d.ts.map +1 -0
  66. package/dist/core/generated/manuscript/domains/aria/shared/v1.js +431 -0
  67. package/dist/core/generated/manuscript/domains/aria/shared/v1.js.map +1 -0
  68. package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.d.ts +56 -0
  69. package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.d.ts.map +1 -0
  70. package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.js +207 -0
  71. package/dist/core/generated/manuscript/domains/audit/domains/audit/v1.js.map +1 -0
  72. package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.d.ts +1340 -0
  73. package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.d.ts.map +1 -0
  74. package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.js +2965 -0
  75. package/dist/core/generated/manuscript/domains/audit/google/protobuf/descriptor.js.map +1 -0
  76. package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.d.ts +131 -0
  77. package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.d.ts.map +1 -0
  78. package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.js +308 -0
  79. package/dist/core/generated/manuscript/domains/audit/google/protobuf/struct.js.map +1 -0
  80. package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.d.ts +133 -0
  81. package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.d.ts.map +1 -0
  82. package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.js +41 -0
  83. package/dist/core/generated/manuscript/domains/audit/google/protobuf/timestamp.js.map +1 -0
  84. package/dist/core/generated/manuscript/domains/audit/shared/v1.d.ts +132 -0
  85. package/dist/core/generated/manuscript/domains/audit/shared/v1.d.ts.map +1 -0
  86. package/dist/core/generated/manuscript/domains/audit/shared/v1.js +431 -0
  87. package/dist/core/generated/manuscript/domains/audit/shared/v1.js.map +1 -0
  88. package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.d.ts +71 -0
  89. package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.d.ts.map +1 -0
  90. package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.js +270 -0
  91. package/dist/core/generated/manuscript/domains/collaboration/domains/collaboration/v1.js.map +1 -0
  92. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.d.ts +1340 -0
  93. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.d.ts.map +1 -0
  94. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.js +2965 -0
  95. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/descriptor.js.map +1 -0
  96. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.d.ts +131 -0
  97. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.d.ts.map +1 -0
  98. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.js +308 -0
  99. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/struct.js.map +1 -0
  100. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.d.ts +133 -0
  101. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.d.ts.map +1 -0
  102. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.js +41 -0
  103. package/dist/core/generated/manuscript/domains/collaboration/google/protobuf/timestamp.js.map +1 -0
  104. package/dist/core/generated/manuscript/domains/collaboration/shared/v1.d.ts +132 -0
  105. package/dist/core/generated/manuscript/domains/collaboration/shared/v1.d.ts.map +1 -0
  106. package/dist/core/generated/manuscript/domains/collaboration/shared/v1.js +431 -0
  107. package/dist/core/generated/manuscript/domains/collaboration/shared/v1.js.map +1 -0
  108. package/dist/core/generated/manuscript/domains/document/domains/document/v1.d.ts +61 -0
  109. package/dist/core/generated/manuscript/domains/document/domains/document/v1.d.ts.map +1 -0
  110. package/dist/core/generated/manuscript/domains/document/domains/document/v1.js +213 -0
  111. package/dist/core/generated/manuscript/domains/document/domains/document/v1.js.map +1 -0
  112. package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.d.ts +1340 -0
  113. package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.d.ts.map +1 -0
  114. package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.js +2965 -0
  115. package/dist/core/generated/manuscript/domains/document/google/protobuf/descriptor.js.map +1 -0
  116. package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.d.ts +131 -0
  117. package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.d.ts.map +1 -0
  118. package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.js +308 -0
  119. package/dist/core/generated/manuscript/domains/document/google/protobuf/struct.js.map +1 -0
  120. package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.d.ts +133 -0
  121. package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.d.ts.map +1 -0
  122. package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.js +41 -0
  123. package/dist/core/generated/manuscript/domains/document/google/protobuf/timestamp.js.map +1 -0
  124. package/dist/core/generated/manuscript/domains/document/shared/v1.d.ts +132 -0
  125. package/dist/core/generated/manuscript/domains/document/shared/v1.d.ts.map +1 -0
  126. package/dist/core/generated/manuscript/domains/document/shared/v1.js +431 -0
  127. package/dist/core/generated/manuscript/domains/document/shared/v1.js.map +1 -0
  128. package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.d.ts +202 -0
  129. package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.d.ts.map +1 -0
  130. package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.js +199 -0
  131. package/dist/core/generated/manuscript/domains/envelope/domains/envelope/v1.js.map +1 -0
  132. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.d.ts +1340 -0
  133. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.d.ts.map +1 -0
  134. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.js +2965 -0
  135. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/descriptor.js.map +1 -0
  136. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.d.ts +131 -0
  137. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.d.ts.map +1 -0
  138. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.js +308 -0
  139. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/struct.js.map +1 -0
  140. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.d.ts +133 -0
  141. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.d.ts.map +1 -0
  142. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.js +41 -0
  143. package/dist/core/generated/manuscript/domains/envelope/google/protobuf/timestamp.js.map +1 -0
  144. package/dist/core/generated/manuscript/domains/envelope/shared/v1.d.ts +132 -0
  145. package/dist/core/generated/manuscript/domains/envelope/shared/v1.d.ts.map +1 -0
  146. package/dist/core/generated/manuscript/domains/envelope/shared/v1.js +431 -0
  147. package/dist/core/generated/manuscript/domains/envelope/shared/v1.js.map +1 -0
  148. package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.d.ts +60 -0
  149. package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.d.ts.map +1 -0
  150. package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.js +224 -0
  151. package/dist/core/generated/manuscript/domains/notification/domains/notification/v1.js.map +1 -0
  152. package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.d.ts +1340 -0
  153. package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.d.ts.map +1 -0
  154. package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.js +2965 -0
  155. package/dist/core/generated/manuscript/domains/notification/google/protobuf/descriptor.js.map +1 -0
  156. package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.d.ts +131 -0
  157. package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.d.ts.map +1 -0
  158. package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.js +308 -0
  159. package/dist/core/generated/manuscript/domains/notification/google/protobuf/struct.js.map +1 -0
  160. package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.d.ts +133 -0
  161. package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.d.ts.map +1 -0
  162. package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.js +41 -0
  163. package/dist/core/generated/manuscript/domains/notification/google/protobuf/timestamp.js.map +1 -0
  164. package/dist/core/generated/manuscript/domains/notification/shared/v1.d.ts +132 -0
  165. package/dist/core/generated/manuscript/domains/notification/shared/v1.d.ts.map +1 -0
  166. package/dist/core/generated/manuscript/domains/notification/shared/v1.js +431 -0
  167. package/dist/core/generated/manuscript/domains/notification/shared/v1.js.map +1 -0
  168. package/dist/core/generated/manuscript/domains/user/domains/user/v1.d.ts +196 -0
  169. package/dist/core/generated/manuscript/domains/user/domains/user/v1.d.ts.map +1 -0
  170. package/dist/core/generated/manuscript/domains/user/domains/user/v1.js +471 -0
  171. package/dist/core/generated/manuscript/domains/user/domains/user/v1.js.map +1 -0
  172. package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.d.ts +1340 -0
  173. package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.d.ts.map +1 -0
  174. package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.js +2965 -0
  175. package/dist/core/generated/manuscript/domains/user/google/protobuf/descriptor.js.map +1 -0
  176. package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.d.ts +131 -0
  177. package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.d.ts.map +1 -0
  178. package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.js +308 -0
  179. package/dist/core/generated/manuscript/domains/user/google/protobuf/struct.js.map +1 -0
  180. package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.d.ts +133 -0
  181. package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.d.ts.map +1 -0
  182. package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.js +41 -0
  183. package/dist/core/generated/manuscript/domains/user/google/protobuf/timestamp.js.map +1 -0
  184. package/dist/core/generated/manuscript/domains/user/shared/v1.d.ts +132 -0
  185. package/dist/core/generated/manuscript/domains/user/shared/v1.d.ts.map +1 -0
  186. package/dist/core/generated/manuscript/domains/user/shared/v1.js +431 -0
  187. package/dist/core/generated/manuscript/domains/user/shared/v1.js.map +1 -0
  188. package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.d.ts +68 -0
  189. package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.d.ts.map +1 -0
  190. package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.js +241 -0
  191. package/dist/core/generated/manuscript/domains/workspace/domains/workspace/v1.js.map +1 -0
  192. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.d.ts +1340 -0
  193. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.d.ts.map +1 -0
  194. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.js +2965 -0
  195. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/descriptor.js.map +1 -0
  196. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.d.ts +131 -0
  197. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.d.ts.map +1 -0
  198. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.js +308 -0
  199. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/struct.js.map +1 -0
  200. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.d.ts +133 -0
  201. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.d.ts.map +1 -0
  202. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.js +41 -0
  203. package/dist/core/generated/manuscript/domains/workspace/google/protobuf/timestamp.js.map +1 -0
  204. package/dist/core/generated/manuscript/domains/workspace/shared/v1.d.ts +132 -0
  205. package/dist/core/generated/manuscript/domains/workspace/shared/v1.d.ts.map +1 -0
  206. package/dist/core/generated/manuscript/domains/workspace/shared/v1.js +431 -0
  207. package/dist/core/generated/manuscript/domains/workspace/shared/v1.js.map +1 -0
  208. package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.d.ts +1340 -0
  209. package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.d.ts.map +1 -0
  210. package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.js +2965 -0
  211. package/dist/core/generated/manuscript/shared/google/protobuf/descriptor.js.map +1 -0
  212. package/dist/core/generated/manuscript/shared/shared/v1.d.ts +132 -0
  213. package/dist/core/generated/manuscript/shared/shared/v1.d.ts.map +1 -0
  214. package/dist/core/generated/manuscript/shared/shared/v1.js +431 -0
  215. package/dist/core/generated/manuscript/shared/shared/v1.js.map +1 -0
  216. package/dist/core/generated/shared/base_event.d.ts +82 -0
  217. package/dist/core/generated/shared/base_event.d.ts.map +1 -0
  218. package/dist/core/generated/shared/base_event.js +261 -0
  219. package/dist/core/generated/shared/base_event.js.map +1 -0
  220. package/dist/core/generated/shared/collaboration_events.d.ts +226 -0
  221. package/dist/core/generated/shared/collaboration_events.d.ts.map +1 -0
  222. package/dist/core/generated/shared/collaboration_events.js +990 -0
  223. package/dist/core/generated/shared/collaboration_events.js.map +1 -0
  224. package/dist/core/generated/shared/document_events.d.ts +189 -0
  225. package/dist/core/generated/shared/document_events.d.ts.map +1 -0
  226. package/dist/core/generated/shared/document_events.js +808 -0
  227. package/dist/core/generated/shared/document_events.js.map +1 -0
  228. package/dist/core/generated/shared/google/protobuf/timestamp.d.ts +133 -0
  229. package/dist/core/generated/shared/google/protobuf/timestamp.d.ts.map +1 -0
  230. package/dist/core/generated/shared/google/protobuf/timestamp.js +41 -0
  231. package/dist/core/generated/shared/google/protobuf/timestamp.js.map +1 -0
  232. package/dist/core/generated/shared/user_events.d.ts +137 -0
  233. package/dist/core/generated/shared/user_events.d.ts.map +1 -0
  234. package/dist/core/generated/shared/user_events.js +55 -0
  235. package/dist/core/generated/shared/user_events.js.map +1 -0
  236. package/dist/core/generated/shared/workspace_events.d.ts +144 -0
  237. package/dist/core/generated/shared/workspace_events.d.ts.map +1 -0
  238. package/dist/core/generated/shared/workspace_events.js +61 -0
  239. package/dist/core/generated/shared/workspace_events.js.map +1 -0
  240. package/dist/core/index.d.ts +20 -0
  241. package/dist/core/index.d.ts.map +1 -0
  242. package/dist/core/index.js +45 -0
  243. package/dist/core/index.js.map +1 -0
  244. package/dist/core/ot/index.d.ts +106 -0
  245. package/dist/core/ot/index.d.ts.map +1 -0
  246. package/dist/core/ot/index.js +293 -0
  247. package/dist/core/ot/index.js.map +1 -0
  248. package/dist/core/presence/index.d.ts +195 -0
  249. package/dist/core/presence/index.d.ts.map +1 -0
  250. package/dist/core/presence/index.js +364 -0
  251. package/dist/core/presence/index.js.map +1 -0
  252. package/dist/core/search/index.d.ts +103 -0
  253. package/dist/core/search/index.d.ts.map +1 -0
  254. package/dist/core/search/index.js +268 -0
  255. package/dist/core/search/index.js.map +1 -0
  256. package/dist/core/types/index.d.ts +389 -0
  257. package/dist/core/types/index.d.ts.map +1 -0
  258. package/dist/core/types/index.js +113 -0
  259. package/dist/core/types/index.js.map +1 -0
  260. package/dist/core/undo/commands.d.ts +109 -0
  261. package/dist/core/undo/commands.d.ts.map +1 -0
  262. package/dist/core/undo/commands.js +219 -0
  263. package/dist/core/undo/commands.js.map +1 -0
  264. package/dist/core/undo/index.d.ts +6 -0
  265. package/dist/core/undo/index.d.ts.map +1 -0
  266. package/dist/core/undo/index.js +6 -0
  267. package/dist/core/undo/index.js.map +1 -0
  268. package/dist/core/undo/manager.d.ts +94 -0
  269. package/dist/core/undo/manager.d.ts.map +1 -0
  270. package/dist/core/undo/manager.js +215 -0
  271. package/dist/core/undo/manager.js.map +1 -0
  272. package/dist/core/websocket/index.d.ts +105 -0
  273. package/dist/core/websocket/index.d.ts.map +1 -0
  274. package/dist/core/websocket/index.js +268 -0
  275. package/dist/core/websocket/index.js.map +1 -0
  276. package/dist/hooks/api/index.d.ts +18 -0
  277. package/dist/hooks/api/index.d.ts.map +1 -0
  278. package/dist/hooks/api/index.js +11 -0
  279. package/dist/hooks/api/index.js.map +1 -0
  280. package/dist/hooks/api/types.d.ts +70 -0
  281. package/dist/hooks/api/types.d.ts.map +1 -0
  282. package/dist/hooks/api/types.js +6 -0
  283. package/dist/hooks/api/types.js.map +1 -0
  284. package/dist/hooks/api/useDocument.d.ts +16 -0
  285. package/dist/hooks/api/useDocument.d.ts.map +1 -0
  286. package/dist/hooks/api/useDocument.js +81 -0
  287. package/dist/hooks/api/useDocument.js.map +1 -0
  288. package/dist/hooks/api/useFetch.d.ts +20 -0
  289. package/dist/hooks/api/useFetch.d.ts.map +1 -0
  290. package/dist/hooks/api/useFetch.js +69 -0
  291. package/dist/hooks/api/useFetch.js.map +1 -0
  292. package/dist/hooks/api/useForm.d.ts +30 -0
  293. package/dist/hooks/api/useForm.d.ts.map +1 -0
  294. package/dist/hooks/api/useForm.js +86 -0
  295. package/dist/hooks/api/useForm.js.map +1 -0
  296. package/dist/hooks/api/usePagination.d.ts +19 -0
  297. package/dist/hooks/api/usePagination.d.ts.map +1 -0
  298. package/dist/hooks/api/usePagination.js +60 -0
  299. package/dist/hooks/api/usePagination.js.map +1 -0
  300. package/dist/hooks/api/useSearch.d.ts +23 -0
  301. package/dist/hooks/api/useSearch.d.ts.map +1 -0
  302. package/dist/hooks/api/useSearch.js +44 -0
  303. package/dist/hooks/api/useSearch.js.map +1 -0
  304. package/dist/hooks/api/useUser.d.ts +15 -0
  305. package/dist/hooks/api/useUser.d.ts.map +1 -0
  306. package/dist/hooks/api/useUser.js +64 -0
  307. package/dist/hooks/api/useUser.js.map +1 -0
  308. package/dist/hooks/aria/index.d.ts +14 -0
  309. package/dist/hooks/aria/index.d.ts.map +1 -0
  310. package/dist/hooks/aria/index.js +9 -0
  311. package/dist/hooks/aria/index.js.map +1 -0
  312. package/dist/hooks/aria/types.d.ts +41 -0
  313. package/dist/hooks/aria/types.d.ts.map +1 -0
  314. package/dist/hooks/aria/types.js +6 -0
  315. package/dist/hooks/aria/types.js.map +1 -0
  316. package/dist/hooks/aria/useAI.d.ts +17 -0
  317. package/dist/hooks/aria/useAI.d.ts.map +1 -0
  318. package/dist/hooks/aria/useAI.js +40 -0
  319. package/dist/hooks/aria/useAI.js.map +1 -0
  320. package/dist/hooks/aria/useAIAnalysis.d.ts +13 -0
  321. package/dist/hooks/aria/useAIAnalysis.d.ts.map +1 -0
  322. package/dist/hooks/aria/useAIAnalysis.js +43 -0
  323. package/dist/hooks/aria/useAIAnalysis.js.map +1 -0
  324. package/dist/hooks/aria/useAIGrading.d.ts +13 -0
  325. package/dist/hooks/aria/useAIGrading.d.ts.map +1 -0
  326. package/dist/hooks/aria/useAIGrading.js +43 -0
  327. package/dist/hooks/aria/useAIGrading.js.map +1 -0
  328. package/dist/hooks/aria/useAISuggestions.d.ts +13 -0
  329. package/dist/hooks/aria/useAISuggestions.d.ts.map +1 -0
  330. package/dist/hooks/aria/useAISuggestions.js +39 -0
  331. package/dist/hooks/aria/useAISuggestions.js.map +1 -0
  332. package/dist/hooks/constants.d.ts +29 -0
  333. package/dist/hooks/constants.d.ts.map +1 -0
  334. package/dist/hooks/constants.js +29 -0
  335. package/dist/hooks/constants.js.map +1 -0
  336. package/dist/hooks/context/index.d.ts +32 -0
  337. package/dist/hooks/context/index.d.ts.map +1 -0
  338. package/dist/hooks/context/index.js +87 -0
  339. package/dist/hooks/context/index.js.map +1 -0
  340. package/dist/hooks/errors.d.ts +27 -0
  341. package/dist/hooks/errors.d.ts.map +1 -0
  342. package/dist/hooks/errors.js +45 -0
  343. package/dist/hooks/errors.js.map +1 -0
  344. package/dist/hooks/folio/index.d.ts +16 -0
  345. package/dist/hooks/folio/index.d.ts.map +1 -0
  346. package/dist/hooks/folio/index.js +10 -0
  347. package/dist/hooks/folio/index.js.map +1 -0
  348. package/dist/hooks/folio/types.d.ts +67 -0
  349. package/dist/hooks/folio/types.d.ts.map +1 -0
  350. package/dist/hooks/folio/types.js +6 -0
  351. package/dist/hooks/folio/types.js.map +1 -0
  352. package/dist/hooks/folio/useAnomalyDetection.d.ts +14 -0
  353. package/dist/hooks/folio/useAnomalyDetection.d.ts.map +1 -0
  354. package/dist/hooks/folio/useAnomalyDetection.js +40 -0
  355. package/dist/hooks/folio/useAnomalyDetection.js.map +1 -0
  356. package/dist/hooks/folio/useErrorTracking.d.ts +13 -0
  357. package/dist/hooks/folio/useErrorTracking.d.ts.map +1 -0
  358. package/dist/hooks/folio/useErrorTracking.js +36 -0
  359. package/dist/hooks/folio/useErrorTracking.js.map +1 -0
  360. package/dist/hooks/folio/useHealthCheck.d.ts +13 -0
  361. package/dist/hooks/folio/useHealthCheck.d.ts.map +1 -0
  362. package/dist/hooks/folio/useHealthCheck.js +50 -0
  363. package/dist/hooks/folio/useHealthCheck.js.map +1 -0
  364. package/dist/hooks/folio/useMetrics.d.ts +14 -0
  365. package/dist/hooks/folio/useMetrics.d.ts.map +1 -0
  366. package/dist/hooks/folio/useMetrics.js +54 -0
  367. package/dist/hooks/folio/useMetrics.js.map +1 -0
  368. package/dist/hooks/folio/usePerformance.d.ts +16 -0
  369. package/dist/hooks/folio/usePerformance.d.ts.map +1 -0
  370. package/dist/hooks/folio/usePerformance.js +64 -0
  371. package/dist/hooks/folio/usePerformance.js.map +1 -0
  372. package/dist/hooks/index.d.ts +32 -0
  373. package/dist/hooks/index.d.ts.map +1 -0
  374. package/dist/hooks/index.js +50 -0
  375. package/dist/hooks/index.js.map +1 -0
  376. package/dist/hooks/relay/index.d.ts +16 -0
  377. package/dist/hooks/relay/index.d.ts.map +1 -0
  378. package/dist/hooks/relay/index.js +10 -0
  379. package/dist/hooks/relay/index.js.map +1 -0
  380. package/dist/hooks/relay/types.d.ts +77 -0
  381. package/dist/hooks/relay/types.d.ts.map +1 -0
  382. package/dist/hooks/relay/types.js +6 -0
  383. package/dist/hooks/relay/types.js.map +1 -0
  384. package/dist/hooks/relay/useCollaboration.d.ts +16 -0
  385. package/dist/hooks/relay/useCollaboration.d.ts.map +1 -0
  386. package/dist/hooks/relay/useCollaboration.js +41 -0
  387. package/dist/hooks/relay/useCollaboration.js.map +1 -0
  388. package/dist/hooks/relay/useOT.d.ts +8 -0
  389. package/dist/hooks/relay/useOT.d.ts.map +1 -0
  390. package/dist/hooks/relay/useOT.js +67 -0
  391. package/dist/hooks/relay/useOT.js.map +1 -0
  392. package/dist/hooks/relay/useOTSync.d.ts +8 -0
  393. package/dist/hooks/relay/useOTSync.d.ts.map +1 -0
  394. package/dist/hooks/relay/useOTSync.js +57 -0
  395. package/dist/hooks/relay/useOTSync.js.map +1 -0
  396. package/dist/hooks/relay/usePresence.d.ts +8 -0
  397. package/dist/hooks/relay/usePresence.d.ts.map +1 -0
  398. package/dist/hooks/relay/usePresence.js +36 -0
  399. package/dist/hooks/relay/usePresence.js.map +1 -0
  400. package/dist/hooks/relay/useWebSocket.d.ts +14 -0
  401. package/dist/hooks/relay/useWebSocket.d.ts.map +1 -0
  402. package/dist/hooks/relay/useWebSocket.js +89 -0
  403. package/dist/hooks/relay/useWebSocket.js.map +1 -0
  404. package/dist/hooks/services/ApiClient.d.ts +69 -0
  405. package/dist/hooks/services/ApiClient.d.ts.map +1 -0
  406. package/dist/hooks/services/ApiClient.js +182 -0
  407. package/dist/hooks/services/ApiClient.js.map +1 -0
  408. package/dist/hooks/services/AriaClient.d.ts +51 -0
  409. package/dist/hooks/services/AriaClient.d.ts.map +1 -0
  410. package/dist/hooks/services/AriaClient.js +172 -0
  411. package/dist/hooks/services/AriaClient.js.map +1 -0
  412. package/dist/hooks/services/FolioClient.d.ts +73 -0
  413. package/dist/hooks/services/FolioClient.d.ts.map +1 -0
  414. package/dist/hooks/services/FolioClient.js +241 -0
  415. package/dist/hooks/services/FolioClient.js.map +1 -0
  416. package/dist/hooks/services/RelayClient.d.ts +50 -0
  417. package/dist/hooks/services/RelayClient.d.ts.map +1 -0
  418. package/dist/hooks/services/RelayClient.js +241 -0
  419. package/dist/hooks/services/RelayClient.js.map +1 -0
  420. package/dist/hooks/services/ShieldClient.d.ts +76 -0
  421. package/dist/hooks/services/ShieldClient.d.ts.map +1 -0
  422. package/dist/hooks/services/ShieldClient.js +267 -0
  423. package/dist/hooks/services/ShieldClient.js.map +1 -0
  424. package/dist/hooks/services/index.d.ts +10 -0
  425. package/dist/hooks/services/index.d.ts.map +1 -0
  426. package/dist/hooks/services/index.js +10 -0
  427. package/dist/hooks/services/index.js.map +1 -0
  428. package/dist/hooks/shield/index.d.ts +16 -0
  429. package/dist/hooks/shield/index.d.ts.map +1 -0
  430. package/dist/hooks/shield/index.js +10 -0
  431. package/dist/hooks/shield/index.js.map +1 -0
  432. package/dist/hooks/shield/types.d.ts +66 -0
  433. package/dist/hooks/shield/types.d.ts.map +1 -0
  434. package/dist/hooks/shield/types.js +6 -0
  435. package/dist/hooks/shield/types.js.map +1 -0
  436. package/dist/hooks/shield/useAdmin.d.ts +16 -0
  437. package/dist/hooks/shield/useAdmin.d.ts.map +1 -0
  438. package/dist/hooks/shield/useAdmin.js +35 -0
  439. package/dist/hooks/shield/useAdmin.js.map +1 -0
  440. package/dist/hooks/shield/useAuth.d.ts +16 -0
  441. package/dist/hooks/shield/useAuth.d.ts.map +1 -0
  442. package/dist/hooks/shield/useAuth.js +64 -0
  443. package/dist/hooks/shield/useAuth.js.map +1 -0
  444. package/dist/hooks/shield/useOrganization.d.ts +15 -0
  445. package/dist/hooks/shield/useOrganization.d.ts.map +1 -0
  446. package/dist/hooks/shield/useOrganization.js +64 -0
  447. package/dist/hooks/shield/useOrganization.js.map +1 -0
  448. package/dist/hooks/shield/usePermissions.d.ts +14 -0
  449. package/dist/hooks/shield/usePermissions.d.ts.map +1 -0
  450. package/dist/hooks/shield/usePermissions.js +43 -0
  451. package/dist/hooks/shield/usePermissions.js.map +1 -0
  452. package/dist/hooks/shield/useWorkspace.d.ts +15 -0
  453. package/dist/hooks/shield/useWorkspace.d.ts.map +1 -0
  454. package/dist/hooks/shield/useWorkspace.js +64 -0
  455. package/dist/hooks/shield/useWorkspace.js.map +1 -0
  456. package/dist/hooks/types.d.ts +33 -0
  457. package/dist/hooks/types.d.ts.map +1 -0
  458. package/dist/hooks/types.js +7 -0
  459. package/dist/hooks/types.js.map +1 -0
  460. package/dist/hooks/utils/index.d.ts +20 -0
  461. package/dist/hooks/utils/index.d.ts.map +1 -0
  462. package/dist/hooks/utils/index.js +12 -0
  463. package/dist/hooks/utils/index.js.map +1 -0
  464. package/dist/hooks/utils/types.d.ts +45 -0
  465. package/dist/hooks/utils/types.d.ts.map +1 -0
  466. package/dist/hooks/utils/types.js +6 -0
  467. package/dist/hooks/utils/types.js.map +1 -0
  468. package/dist/hooks/utils/useAsync.d.ts +13 -0
  469. package/dist/hooks/utils/useAsync.d.ts.map +1 -0
  470. package/dist/hooks/utils/useAsync.js +36 -0
  471. package/dist/hooks/utils/useAsync.js.map +1 -0
  472. package/dist/hooks/utils/useCommandPalette.d.ts +8 -0
  473. package/dist/hooks/utils/useCommandPalette.d.ts.map +1 -0
  474. package/dist/hooks/utils/useCommandPalette.js +40 -0
  475. package/dist/hooks/utils/useCommandPalette.js.map +1 -0
  476. package/dist/hooks/utils/useDebounce.d.ts +8 -0
  477. package/dist/hooks/utils/useDebounce.d.ts.map +1 -0
  478. package/dist/hooks/utils/useDebounce.js +25 -0
  479. package/dist/hooks/utils/useDebounce.js.map +1 -0
  480. package/dist/hooks/utils/useLocalStorage.d.ts +12 -0
  481. package/dist/hooks/utils/useLocalStorage.d.ts.map +1 -0
  482. package/dist/hooks/utils/useLocalStorage.js +51 -0
  483. package/dist/hooks/utils/useLocalStorage.js.map +1 -0
  484. package/dist/hooks/utils/useOnClickOutside.d.ts +8 -0
  485. package/dist/hooks/utils/useOnClickOutside.d.ts.map +1 -0
  486. package/dist/hooks/utils/useOnClickOutside.js +17 -0
  487. package/dist/hooks/utils/useOnClickOutside.js.map +1 -0
  488. package/dist/hooks/utils/useThrottle.d.ts +8 -0
  489. package/dist/hooks/utils/useThrottle.d.ts.map +1 -0
  490. package/dist/hooks/utils/useThrottle.js +35 -0
  491. package/dist/hooks/utils/useThrottle.js.map +1 -0
  492. package/dist/hooks/utils/useUndoRedo.d.ts +20 -0
  493. package/dist/hooks/utils/useUndoRedo.d.ts.map +1 -0
  494. package/dist/hooks/utils/useUndoRedo.js +58 -0
  495. package/dist/hooks/utils/useUndoRedo.js.map +1 -0
  496. package/dist/hooks/utils/useWindowResize.d.ts +8 -0
  497. package/dist/hooks/utils/useWindowResize.d.ts.map +1 -0
  498. package/dist/hooks/utils/useWindowResize.js +16 -0
  499. package/dist/hooks/utils/useWindowResize.js.map +1 -0
  500. package/dist/index.d.ts +5 -0
  501. package/dist/index.js +5 -0
  502. package/dist/ui/index.d.ts +11 -0
  503. package/dist/ui/index.d.ts.map +1 -0
  504. package/dist/ui/index.js +14 -0
  505. package/dist/ui/index.js.map +1 -0
  506. package/dist/ui/primitives/accordion/Accordion.d.ts +40 -0
  507. package/dist/ui/primitives/accordion/Accordion.d.ts.map +1 -0
  508. package/dist/ui/primitives/accordion/Accordion.js +47 -0
  509. package/dist/ui/primitives/accordion/Accordion.js.map +1 -0
  510. package/dist/ui/primitives/accordion/index.d.ts +3 -0
  511. package/dist/ui/primitives/accordion/index.d.ts.map +1 -0
  512. package/dist/ui/primitives/accordion/index.js +2 -0
  513. package/dist/ui/primitives/accordion/index.js.map +1 -0
  514. package/dist/ui/primitives/alert/Alert.d.ts +37 -0
  515. package/dist/ui/primitives/alert/Alert.d.ts.map +1 -0
  516. package/dist/ui/primitives/alert/Alert.js +52 -0
  517. package/dist/ui/primitives/alert/Alert.js.map +1 -0
  518. package/dist/ui/primitives/alert/index.d.ts +3 -0
  519. package/dist/ui/primitives/alert/index.d.ts.map +1 -0
  520. package/dist/ui/primitives/alert/index.js +2 -0
  521. package/dist/ui/primitives/alert/index.js.map +1 -0
  522. package/dist/ui/primitives/badge/Badge.d.ts +29 -0
  523. package/dist/ui/primitives/badge/Badge.d.ts.map +1 -0
  524. package/dist/ui/primitives/badge/Badge.js +36 -0
  525. package/dist/ui/primitives/badge/Badge.js.map +1 -0
  526. package/dist/ui/primitives/badge/index.d.ts +3 -0
  527. package/dist/ui/primitives/badge/index.d.ts.map +1 -0
  528. package/dist/ui/primitives/badge/index.js +2 -0
  529. package/dist/ui/primitives/badge/index.js.map +1 -0
  530. package/dist/ui/primitives/button/Button.d.ts +31 -0
  531. package/dist/ui/primitives/button/Button.d.ts.map +1 -0
  532. package/dist/ui/primitives/button/Button.js +26 -0
  533. package/dist/ui/primitives/button/Button.js.map +1 -0
  534. package/dist/ui/primitives/button/index.d.ts +3 -0
  535. package/dist/ui/primitives/button/index.d.ts.map +1 -0
  536. package/dist/ui/primitives/button/index.js +2 -0
  537. package/dist/ui/primitives/button/index.js.map +1 -0
  538. package/dist/ui/primitives/card/Card.d.ts +34 -0
  539. package/dist/ui/primitives/card/Card.d.ts.map +1 -0
  540. package/dist/ui/primitives/card/Card.js +28 -0
  541. package/dist/ui/primitives/card/Card.js.map +1 -0
  542. package/dist/ui/primitives/card/index.d.ts +3 -0
  543. package/dist/ui/primitives/card/index.d.ts.map +1 -0
  544. package/dist/ui/primitives/card/index.js +2 -0
  545. package/dist/ui/primitives/card/index.js.map +1 -0
  546. package/dist/ui/primitives/checkbox/Checkbox.d.ts +26 -0
  547. package/dist/ui/primitives/checkbox/Checkbox.d.ts.map +1 -0
  548. package/dist/ui/primitives/checkbox/Checkbox.js +31 -0
  549. package/dist/ui/primitives/checkbox/Checkbox.js.map +1 -0
  550. package/dist/ui/primitives/checkbox/index.d.ts +3 -0
  551. package/dist/ui/primitives/checkbox/index.d.ts.map +1 -0
  552. package/dist/ui/primitives/checkbox/index.js +2 -0
  553. package/dist/ui/primitives/checkbox/index.js.map +1 -0
  554. package/dist/ui/primitives/dialog/Dialog.d.ts +57 -0
  555. package/dist/ui/primitives/dialog/Dialog.d.ts.map +1 -0
  556. package/dist/ui/primitives/dialog/Dialog.js +60 -0
  557. package/dist/ui/primitives/dialog/Dialog.js.map +1 -0
  558. package/dist/ui/primitives/dialog/index.d.ts +3 -0
  559. package/dist/ui/primitives/dialog/index.d.ts.map +1 -0
  560. package/dist/ui/primitives/dialog/index.js +2 -0
  561. package/dist/ui/primitives/dialog/index.js.map +1 -0
  562. package/dist/ui/primitives/dropdown/Dropdown.d.ts +43 -0
  563. package/dist/ui/primitives/dropdown/Dropdown.d.ts.map +1 -0
  564. package/dist/ui/primitives/dropdown/Dropdown.js +60 -0
  565. package/dist/ui/primitives/dropdown/Dropdown.js.map +1 -0
  566. package/dist/ui/primitives/dropdown/index.d.ts +3 -0
  567. package/dist/ui/primitives/dropdown/index.d.ts.map +1 -0
  568. package/dist/ui/primitives/dropdown/index.js +2 -0
  569. package/dist/ui/primitives/dropdown/index.js.map +1 -0
  570. package/dist/ui/primitives/index.d.ts +46 -0
  571. package/dist/ui/primitives/index.d.ts.map +1 -0
  572. package/dist/ui/primitives/index.js +34 -0
  573. package/dist/ui/primitives/index.js.map +1 -0
  574. package/dist/ui/primitives/input/Input.d.ts +47 -0
  575. package/dist/ui/primitives/input/Input.d.ts.map +1 -0
  576. package/dist/ui/primitives/input/Input.js +36 -0
  577. package/dist/ui/primitives/input/Input.js.map +1 -0
  578. package/dist/ui/primitives/input/index.d.ts +3 -0
  579. package/dist/ui/primitives/input/index.d.ts.map +1 -0
  580. package/dist/ui/primitives/input/index.js +2 -0
  581. package/dist/ui/primitives/input/index.js.map +1 -0
  582. package/dist/ui/primitives/label/Label.d.ts +22 -0
  583. package/dist/ui/primitives/label/Label.d.ts.map +1 -0
  584. package/dist/ui/primitives/label/Label.js +23 -0
  585. package/dist/ui/primitives/label/Label.js.map +1 -0
  586. package/dist/ui/primitives/label/index.d.ts +3 -0
  587. package/dist/ui/primitives/label/index.d.ts.map +1 -0
  588. package/dist/ui/primitives/label/index.js +2 -0
  589. package/dist/ui/primitives/label/index.js.map +1 -0
  590. package/dist/ui/primitives/popover/Popover.d.ts +39 -0
  591. package/dist/ui/primitives/popover/Popover.d.ts.map +1 -0
  592. package/dist/ui/primitives/popover/Popover.js +53 -0
  593. package/dist/ui/primitives/popover/Popover.js.map +1 -0
  594. package/dist/ui/primitives/popover/index.d.ts +3 -0
  595. package/dist/ui/primitives/popover/index.d.ts.map +1 -0
  596. package/dist/ui/primitives/popover/index.js +2 -0
  597. package/dist/ui/primitives/popover/index.js.map +1 -0
  598. package/dist/ui/primitives/radio/Radio.d.ts +22 -0
  599. package/dist/ui/primitives/radio/Radio.d.ts.map +1 -0
  600. package/dist/ui/primitives/radio/Radio.js +24 -0
  601. package/dist/ui/primitives/radio/Radio.js.map +1 -0
  602. package/dist/ui/primitives/radio/index.d.ts +3 -0
  603. package/dist/ui/primitives/radio/index.d.ts.map +1 -0
  604. package/dist/ui/primitives/radio/index.js +2 -0
  605. package/dist/ui/primitives/radio/index.js.map +1 -0
  606. package/dist/ui/primitives/select/Select.d.ts +41 -0
  607. package/dist/ui/primitives/select/Select.d.ts.map +1 -0
  608. package/dist/ui/primitives/select/Select.js +31 -0
  609. package/dist/ui/primitives/select/Select.js.map +1 -0
  610. package/dist/ui/primitives/select/index.d.ts +3 -0
  611. package/dist/ui/primitives/select/index.d.ts.map +1 -0
  612. package/dist/ui/primitives/select/index.js +2 -0
  613. package/dist/ui/primitives/select/index.js.map +1 -0
  614. package/dist/ui/primitives/spinner/Spinner.d.ts +26 -0
  615. package/dist/ui/primitives/spinner/Spinner.d.ts.map +1 -0
  616. package/dist/ui/primitives/spinner/Spinner.js +30 -0
  617. package/dist/ui/primitives/spinner/Spinner.js.map +1 -0
  618. package/dist/ui/primitives/spinner/index.d.ts +3 -0
  619. package/dist/ui/primitives/spinner/index.d.ts.map +1 -0
  620. package/dist/ui/primitives/spinner/index.js +2 -0
  621. package/dist/ui/primitives/spinner/index.js.map +1 -0
  622. package/dist/ui/primitives/switch/Switch.d.ts +22 -0
  623. package/dist/ui/primitives/switch/Switch.d.ts.map +1 -0
  624. package/dist/ui/primitives/switch/Switch.js +27 -0
  625. package/dist/ui/primitives/switch/Switch.js.map +1 -0
  626. package/dist/ui/primitives/switch/index.d.ts +3 -0
  627. package/dist/ui/primitives/switch/index.d.ts.map +1 -0
  628. package/dist/ui/primitives/switch/index.js +2 -0
  629. package/dist/ui/primitives/switch/index.js.map +1 -0
  630. package/dist/ui/primitives/tabs/Tabs.d.ts +37 -0
  631. package/dist/ui/primitives/tabs/Tabs.d.ts.map +1 -0
  632. package/dist/ui/primitives/tabs/Tabs.js +36 -0
  633. package/dist/ui/primitives/tabs/Tabs.js.map +1 -0
  634. package/dist/ui/primitives/tabs/index.d.ts +3 -0
  635. package/dist/ui/primitives/tabs/index.d.ts.map +1 -0
  636. package/dist/ui/primitives/tabs/index.js +2 -0
  637. package/dist/ui/primitives/tabs/index.js.map +1 -0
  638. package/dist/ui/primitives/textarea/TextArea.d.ts +40 -0
  639. package/dist/ui/primitives/textarea/TextArea.d.ts.map +1 -0
  640. package/dist/ui/primitives/textarea/TextArea.js +32 -0
  641. package/dist/ui/primitives/textarea/TextArea.js.map +1 -0
  642. package/dist/ui/primitives/textarea/index.d.ts +3 -0
  643. package/dist/ui/primitives/textarea/index.d.ts.map +1 -0
  644. package/dist/ui/primitives/textarea/index.js +2 -0
  645. package/dist/ui/primitives/textarea/index.js.map +1 -0
  646. package/dist/ui/primitives/toast/Toast.d.ts +48 -0
  647. package/dist/ui/primitives/toast/Toast.d.ts.map +1 -0
  648. package/dist/ui/primitives/toast/Toast.js +87 -0
  649. package/dist/ui/primitives/toast/Toast.js.map +1 -0
  650. package/dist/ui/primitives/toast/index.d.ts +3 -0
  651. package/dist/ui/primitives/toast/index.d.ts.map +1 -0
  652. package/dist/ui/primitives/toast/index.js +2 -0
  653. package/dist/ui/primitives/toast/index.js.map +1 -0
  654. package/dist/ui/styles/index.css +193 -0
  655. package/dist/ui/tokens/design-tokens.d.ts +509 -0
  656. package/dist/ui/tokens/design-tokens.d.ts.map +1 -0
  657. package/dist/ui/tokens/design-tokens.js +300 -0
  658. package/dist/ui/tokens/design-tokens.js.map +1 -0
  659. package/dist/ui/tokens/index.d.ts +9 -0
  660. package/dist/ui/tokens/index.d.ts.map +1 -0
  661. package/dist/ui/tokens/index.js +12 -0
  662. package/dist/ui/tokens/index.js.map +1 -0
  663. package/package.json +212 -0
package/README.md ADDED
@@ -0,0 +1,1124 @@
1
+ # `@materi.ai/frame`
2
+
3
+ **Complete collaborative document editing framework** with production-ready operational transformation, formula engine, design system, and React hooks. Embed rich document experiences into your application in minutes.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@materi.ai/frame.svg)](https://www.npmjs.com/package/@materi.ai/frame) [![TypeScript](https://img.shields.io/badge/TypeScript-5.6%2B-3178c6)](https://www.typescriptlang.org/) [![React](https://img.shields.io/badge/React-19.0%2B-61dafb)](https://reactjs.org/) [![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933)](https://nodejs.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Bundle Size](https://img.shields.io/bundlephobia/min/@materi.ai/frame.svg)](https://bundlephobia.com/package/@materi.ai/frame)
6
+
7
+ ## 🎯 Overview
8
+
9
+ `@materi.ai/frame` is a monorepo containing four specialized, composable packages designed to work together seamlessly:
10
+
11
+ - **`@materi.ai/core`** — Business logic, algorithms, and types (OT, formula engine, auth, presence, WebSocket)
12
+ - **`@materi.ai/ui`** — Production-ready design system with tokens, primitives, and components
13
+ - **`@materi.ai/hooks`** — Reusable React hooks for document, collaboration, auth, and WebSocket
14
+ - **`@materi.ai/api`** — HTTP client layer with typed endpoint definitions
15
+
16
+ All packages are fully typed, tree-shakeable, and optimized for modern bundlers. Zero runtime dependencies (except React).
17
+
18
+ ## 📖 Table of Contents
19
+
20
+ - [Installation](#-installation)
21
+ - [Quick Start](#-quick-start)
22
+ - [Documentation](#-documentation)
23
+ - [Tutorials](#-tutorials)
24
+ - [Examples](#-examples)
25
+ - [API Reference](#-api-reference)
26
+ - [Contributing](#-contributing)
27
+ - [License](#-license)
28
+
29
+ ---
30
+
31
+ ## 📦 Installation
32
+
33
+ ```bash
34
+ npm install @materi.ai/frame
35
+ # or
36
+ pnpm add @materi.ai/frame
37
+ # or
38
+ yarn add @materi.ai/frame
39
+ ```
40
+
41
+ ### Peer Dependencies
42
+
43
+ - **React**: `^19.0.0`
44
+ - **React DOM**: `^19.0.0`
45
+
46
+ Ensure you have React and React DOM installed in your project:
47
+
48
+ ```bash
49
+ npm install react react-dom
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 🚀 Quick Start
55
+
56
+ ### Basic Setup
57
+
58
+ ```tsx
59
+ import React, { useState, useEffect } from 'react';
60
+ import { useOT, useWebSocket } from '@materi.ai/frame/hooks';
61
+ import { colors, spacing } from '@materi.ai/frame/ui';
62
+
63
+ export default function DocumentEditor() {
64
+ const [document, setDocument] = useState({ content: '', version: 0 });
65
+
66
+ const { applyOperation, createOperation } = useOT({
67
+ initialDocument: document,
68
+ onUpdate: (newDoc) => setDocument(newDoc),
69
+ });
70
+
71
+ const { connect, disconnect, isConnected, send } = useWebSocket({
72
+ url: 'wss://your-server.com/collaborate',
73
+ onMessage: (message) => {
74
+ if (message.type === 'operation') {
75
+ applyOperation(message.data);
76
+ }
77
+ },
78
+ });
79
+
80
+ const handleTextChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {
81
+ const newContent = event.target.value;
82
+ const operation = createOperation(document.content, newContent);
83
+
84
+ setDocument((prev) => ({ ...prev, content: newContent, version: prev.version + 1 }));
85
+
86
+ if (isConnected) {
87
+ send({ type: 'operation', data: operation });
88
+ }
89
+ };
90
+
91
+ useEffect(() => {
92
+ connect();
93
+ return () => disconnect();
94
+ }, [connect, disconnect]);
95
+
96
+ return (
97
+ <div style={{ padding: spacing.lg }}>
98
+ <div style={{ color: isConnected ? colors.success : colors.warning }}>
99
+ {isConnected ? '🟢 Connected' : '🟡 Connecting...'}
100
+ </div>
101
+
102
+ <textarea
103
+ value={document.content}
104
+ onChange={handleTextChange}
105
+ placeholder="Start typing to collaborate..."
106
+ style={{
107
+ width: '100%',
108
+ height: '300px',
109
+ padding: spacing.md,
110
+ border: `1px solid ${colors.border}`,
111
+ borderRadius: '4px',
112
+ }}
113
+ />
114
+ </div>
115
+ );
116
+ }
117
+ ```
118
+
119
+ ---
120
+
121
+ ## 📚 Documentation
122
+
123
+ `@materi.ai/frame` includes comprehensive documentation to get you from installation to production deployment:
124
+
125
+ ### 🚀 Getting Started
126
+
127
+ - **[Quick Start Guide](./docs/GETTING_STARTED_COMPREHENSIVE.md)** — Complete 15-minute setup tutorial with working examples
128
+ - **[Installation & Setup](./docs/GETTING_STARTED_COMPREHENSIVE.md#installation)** — Package installation and bundler configuration
129
+ - **[Performance Optimization](./docs/GETTING_STARTED_COMPREHENSIVE.md#performance-optimization)** — Bundle size optimization and tree-shaking guide
130
+
131
+ ### 📖 Tutorials
132
+
133
+ **Progressive learning path from beginner to advanced:**
134
+
135
+ - **[Tutorial Index](./docs/tutorials/README.md)** — Complete tutorial series overview
136
+
137
+ #### Beginner Level (🟢)
138
+
139
+ 1. **[Building Your First Document Editor](./docs/tutorials/01-document-editor.md)** — 45-minute collaborative text editor tutorial with operational transformation
140
+ 2. **[Adding Formula Support](./docs/tutorials/02-formula-engine.md)** — Integrating spreadsheet calculations and formula evaluation
141
+ 3. **[UI Components Guide](./docs/tutorials/03-ui-components.md)** — Design system usage and theming patterns
142
+
143
+ #### Intermediate Level (🟡)
144
+
145
+ 4. **[Real-time Collaboration](./docs/tutorials/04-collaboration.md)** — Multi-user editing with presence indicators
146
+ 5. **[Authentication Flow](./docs/tutorials/05-auth-flow.md)** — User management and security integration
147
+ 6. **[API Integration](./docs/tutorials/06-api-integration.md)** — Backend connectivity and data synchronization
148
+
149
+ #### Advanced Level (🔴)
150
+
151
+ 7. **[Performance Optimization](./docs/tutorials/07-performance.md)** — Bundle optimization and production deployment
152
+ 8. **[Custom Components](./docs/tutorials/08-custom-components.md)** — Extending the design system
153
+ 9. **[Production Deployment](./docs/tutorials/09-deployment.md)** — Scalable deployment strategies and monitoring
154
+
155
+ ### 💡 Examples
156
+
157
+ **Real-world application examples with complete source code:**
158
+
159
+ - **[Examples Overview](./examples/README.md)** — Gallery of example applications
160
+ - **[Collaborative Editor](./examples/collaborative-editor/README.md)** — Complete collaborative text editor with WebSocket integration
161
+ - **[Spreadsheet Calculator](./examples/spreadsheet-calculator/README.md)** — Formula engine demonstration with live calculations
162
+ - **[Component Showcase](./examples/component-showcase/README.md)** — Interactive gallery of all UI components
163
+
164
+ ### 📋 API Reference
165
+
166
+ **Comprehensive API documentation:**
167
+
168
+ - **[TypeDoc API Reference](./docs/api/README.md)** — Auto-generated API documentation from TypeScript source
169
+ - **[Core Package API](./docs/api/modules/core.md)** — Operational transformation, formula engine, auth, WebSocket
170
+ - **[UI Package API](./docs/api/modules/ui.md)** — Design system components, tokens, and themes
171
+ - **[Hooks Package API](./docs/api/modules/hooks.md)** — React hooks for collaboration and data management
172
+ - **[API Package Reference](./docs/api/modules/api.md)** — HTTP client and endpoint definitions
173
+
174
+ ### 🛠️ Development
175
+
176
+ **Contributing and development guides:**
177
+
178
+ - **[Contributing Guidelines](./CONTRIBUTING.md)** — Complete development setup and contribution workflow
179
+ - **[Code Standards](./CONTRIBUTING.md#code-standards)** — TypeScript, React, and CSS guidelines
180
+ - **[Testing Requirements](./CONTRIBUTING.md#testing)** — Unit, integration, and E2E testing guidelines
181
+ - **[CI/CD Setup](./docs/CI-CD-SETUP.md)** — Automated testing, building, and deployment pipeline
182
+
183
+ ### 🌐 Documentation Site
184
+
185
+ **Professional documentation site with search and navigation:**
186
+
187
+ - **[Documentation Homepage](./docs/index.md)** — Complete documentation portal with organized navigation
188
+ - **[Site Setup Guide](./docs/DOCUMENTATION_SITE.md)** — Deploy your own documentation site
189
+ - **Search functionality** — Full-text search across all documentation
190
+ - **Mobile responsive** — Optimized for all devices and screen sizes
191
+
192
+ ---
193
+
194
+ ### 🧩 Individual Packages
195
+
196
+ Import specific packages directly:
197
+
198
+ ```tsx
199
+ // Core algorithms and types
200
+ import { EventPriority, BaseEvents } from '@materi.ai/frame/core';
201
+ import { applyOp, transform } from '@materi.ai/frame/core/ot';
202
+ import { evaluate } from '@materi.ai/frame/core/formula';
203
+
204
+ // Design system tokens and primitives
205
+ import { colors, spacing, typography } from '@materi.ai/frame/ui';
206
+ import { Button, Card, Dialog } from '@materi.ai/frame/ui/primitives';
207
+
208
+ // React hooks (organized by service)
209
+ import { useAuth, useWorkspace } from '@materi.ai/frame/hooks'; // Shield service
210
+ import { useDocument, useSearch } from '@materi.ai/frame/hooks'; // API service
211
+ import { useOT, useWebSocket } from '@materi.ai/frame/hooks'; // Relay service
212
+
213
+ // HTTP client and endpoints
214
+ import { createHTTPClient, apiClient } from '@materi.ai/frame/api';
215
+ import { userAPI, documentAPI } from '@materi.ai/frame/api';
216
+ ```
217
+
218
+ ---
219
+
220
+ ## 📚 Packages
221
+
222
+ ### `@materi.ai/core`
223
+
224
+ Core business logic including:
225
+
226
+ - **OT Algorithms** (`/ot`) — Operational transformation for real-time collaboration
227
+ - **Formula Engine** (`/formula`) — Parse, evaluate, and transform spreadsheet formulas
228
+ - **Type System** (`/types`) — Shared TypeScript type definitions
229
+ - **Auth** (`/auth`) — Authentication and permission models
230
+ - **WebSocket** (`/websocket`) — Real-time connection management
231
+ - **Presence** (`/presence`) — User presence and cursor tracking
232
+ - **Undo/Redo** (`/undo`) — Command-based undo/redo manager
233
+ - **Search** (`/search`) — Full-text search infrastructure
234
+
235
+ #### Usage
236
+
237
+ ```tsx
238
+ import { OTEngine, applyOp, transform } from '@materi.ai/core/ot';
239
+ import { parseFormula, evaluateFormula } from '@materi.ai/core/formula';
240
+ import { createAuthContext } from '@materi.ai/core/auth';
241
+ ```
242
+
243
+ ### `@materi.ai/ui`
244
+
245
+ Production-ready design system:
246
+
247
+ - **Tokens** — Color, typography, spacing, shadows, borders
248
+ - **Primitives** — Accessible, unstyled base components (Button, Input, Dialog, Select, etc.)
249
+ - **Components** — Materi-branded higher-level components
250
+ - **Themes** — Light/dark mode support with semantic tokens
251
+ - **Styles** — Global CSS with resets and utilities
252
+
253
+ #### Usage
254
+
255
+ ```tsx
256
+ import { Button, Input, Tabs, Dialog } from '@materi.ai/frame/ui';
257
+ import { tokens } from '@materi.ai/frame/ui/tokens';
258
+ import { useTheme } from '@materi.ai/frame/ui/themes';
259
+ import '@materi.ai/frame/ui/styles.css';
260
+
261
+ // Access tokens programmatically
262
+ const { colors, spacing, typography } = tokens;
263
+
264
+ // Use theme hook for dynamic theming
265
+ const { theme, setTheme } = useTheme();
266
+ ```
267
+
268
+ ### `@materi.ai/hooks`
269
+
270
+ Reusable React hooks for collaborative features:
271
+
272
+ - **`useOT()`** — Manage operational transformation state and operations
273
+ - **`useWebSocket()`** — Connect to WebSocket server, handle messages
274
+ - **`useAuth()`** — Authentication state and user session
275
+ - **`useFetch()`** — Type-safe HTTP requests with caching
276
+ - **`useCommandPalette()`** — Command palette UI state
277
+ - **`useUndoRedo()`** — Undo/redo command management
278
+ - **`useLocalStorage()`** — Persistent local state
279
+ - **`useForm()`** — Form state and validation
280
+ - **`usePerformance()`** — Performance monitoring and profiling
281
+
282
+ #### Usage
283
+
284
+ ```tsx
285
+ import { useOT, useWebSocket, useAuth } from '@materi.ai/frame/hooks';
286
+
287
+ export function MyComponent() {
288
+ const { state, applyOp } = useOT();
289
+ const { connect, isConnected, send } = useWebSocket();
290
+ const { user, logout } = useAuth();
291
+
292
+ // Your component logic
293
+ }
294
+ ```
295
+
296
+ ### `@materi.ai/api`
297
+
298
+ Typed HTTP client and endpoint definitions:
299
+
300
+ - **Client** — Lightweight HTTP client with interceptors
301
+ - **Endpoints** — Pre-defined API routes with TypeScript inference
302
+ - **Result** — Type-safe result handling (success/error)
303
+
304
+ #### Usage
305
+
306
+ ```tsx
307
+ import { createClient } from '@materi.ai/frame/api';
308
+ import { endpoints } from '@materi.ai/frame/api/endpoints';
309
+
310
+ const client = createClient({
311
+ baseURL: 'https://api.example.com',
312
+ headers: {
313
+ Authorization: `Bearer ${token}`,
314
+ },
315
+ });
316
+
317
+ // Type-safe calls
318
+ const result = await client.get(endpoints.documents.list());
319
+ if (result.ok) {
320
+ console.log(result.data);
321
+ } else {
322
+ console.error(result.error);
323
+ }
324
+ ```
325
+
326
+ ---
327
+
328
+ ## 🏗️ Architecture Highlights
329
+
330
+ ### Monorepo Structure
331
+
332
+ ```
333
+ frame/
334
+ ├── core/ # Business logic, algorithms, types
335
+ ├── ui/ # Design system, components
336
+ ├── hooks/ # React hooks
337
+ ├── api/ # HTTP client
338
+ ├── package.json # Root workspace config
339
+ └── turbo.json # Build orchestration
340
+ ```
341
+
342
+ ### Build Strategy
343
+
344
+ - **TypeScript Compilation** — Each package compiles to CommonJS + ESM
345
+ - **Turbo Caching** — Fast, cached builds across the monorepo
346
+ - **Zero Runtime Dependencies** — Only React as peer dependency
347
+ - **Tree Shakeable** — Unused code is eliminated by bundlers
348
+ - **Distributed Types** — Full `.d.ts` generation for IDE support
349
+
350
+ ### Publishing
351
+
352
+ - **NPM Package** — Published as `@materi.ai/frame`
353
+ - **Subpath Exports** — Import packages as `@materi.ai/frame/core`, `@materi.ai/frame/ui`, etc.
354
+ - **Source Maps** — Full source map support for debugging
355
+
356
+ ---
357
+
358
+ ## 🛠️ Development
359
+
360
+ ### Setup
361
+
362
+ ```bash
363
+ # Install dependencies
364
+ pnpm install
365
+
366
+ # Build all packages
367
+ pnpm build
368
+
369
+ # Build a specific package
370
+ pnpm build:core
371
+ pnpm build:ui
372
+ pnpm build:hooks
373
+ pnpm build:api
374
+
375
+ # Type check
376
+ pnpm type-check
377
+
378
+ # Run tests
379
+ pnpm test
380
+ pnpm test:watch
381
+ pnpm test:coverage
382
+
383
+ # Lint
384
+ pnpm lint
385
+
386
+ # Format
387
+ pnpm format
388
+
389
+ # Clean build artifacts
390
+ pnpm clean
391
+ ```
392
+
393
+ ### Development Workflow
394
+
395
+ ```bash
396
+ # Watch all packages (from frame directory)
397
+ pnpm build:watch
398
+
399
+ # Run tests in watch mode
400
+ pnpm test:watch
401
+
402
+ # Type check continuously
403
+ pnpm type-check
404
+ ```
405
+
406
+ ### Testing
407
+
408
+ Each package includes a `__tests__/` directory with Vitest specs:
409
+
410
+ ```bash
411
+ # Run all tests
412
+ pnpm test
413
+
414
+ # Run tests for a specific package
415
+ pnpm -F @materi.ai/core test
416
+
417
+ # Generate coverage report
418
+ pnpm test:coverage
419
+ ```
420
+
421
+ ---
422
+
423
+ ## 📖 API Documentation
424
+
425
+ ### Core Types
426
+
427
+ All packages export comprehensive TypeScript types. For IDE autocomplete, ensure your `tsconfig.json` includes:
428
+
429
+ ```json
430
+ {
431
+ "compilerOptions": {
432
+ "strict": true,
433
+ "skipLibCheck": true,
434
+ "declaration": true
435
+ }
436
+ }
437
+ ```
438
+
439
+ ### Package Exports
440
+
441
+ #### `@materi.ai/frame` (Main Entry)
442
+
443
+ ```tsx
444
+ import {} from /* all named exports from all subpackages */ '@materi.ai/frame';
445
+ ```
446
+
447
+ #### `@materi.ai/frame/core`
448
+
449
+ ```tsx
450
+ import {
451
+ OTEngine,
452
+ FormulaEngine,
453
+ createAuthContext,
454
+ WebSocketManager,
455
+ // ... and more
456
+ } from '@materi.ai/frame/core';
457
+
458
+ // Subpackage imports
459
+ import { applyOp, transform } from '@materi.ai/frame/core/ot';
460
+ import { parseFormula, evaluateFormula } from '@materi.ai/frame/core/formula';
461
+ import { types, interfaces } from '@materi.ai/frame/core/types';
462
+ ```
463
+
464
+ #### `@materi.ai/frame/ui`
465
+
466
+ ```tsx
467
+ import {
468
+ Button,
469
+ Input,
470
+ Dialog,
471
+ Tabs,
472
+ // ... primitives and components
473
+ } from '@materi.ai/frame/ui';
474
+
475
+ import { tokens } from '@materi.ai/frame/ui/tokens';
476
+ import { useTheme } from '@materi.ai/frame/ui/themes';
477
+ import '@materi.ai/frame/ui/styles.css';
478
+ ```
479
+
480
+ #### `@materi.ai/frame/hooks`
481
+
482
+ ```tsx
483
+ import {
484
+ useOT,
485
+ useWebSocket,
486
+ useAuth,
487
+ useFetch,
488
+ useCommandPalette,
489
+ useUndoRedo,
490
+ // ... and more
491
+ } from '@materi.ai/frame/hooks';
492
+ ```
493
+
494
+ #### `@materi.ai/frame/api`
495
+
496
+ ```tsx
497
+ import { createClient } from '@materi.ai/frame/api';
498
+ import { endpoints } from '@materi.ai/frame/api/endpoints';
499
+ ```
500
+
501
+ ---
502
+
503
+ ## 🎨 Design System Features
504
+
505
+ ### Tokens
506
+
507
+ Comprehensive design tokens for:
508
+
509
+ - **Colors** — Semantic and raw color palette
510
+ - **Typography** — Font families, sizes, weights, line heights
511
+ - **Spacing** — Consistent spacing scale
512
+ - **Shadows** — Elevation system
513
+ - **Borders** — Radius and border styles
514
+ - **Transitions** — Animation timing functions
515
+
516
+ ### Components
517
+
518
+ All components are:
519
+
520
+ - ✅ **Accessible** — ARIA attributes, keyboard navigation
521
+ - ✅ **Unstyled** — Compose with Tailwind, CSS-in-JS, or vanilla CSS
522
+ - ✅ **Controlled & Uncontrolled** — Both patterns supported
523
+ - ✅ **Tested** — Comprehensive test coverage
524
+ - ✅ **Type Safe** — Full TypeScript support
525
+
526
+ ---
527
+
528
+ ## 🔐 Security Considerations
529
+
530
+ - All packages are built with strict TypeScript (`strict: true`)
531
+ - No eval() or dynamic code execution
532
+ - Sanitized formula parsing (no injection vectors)
533
+ - CSRF protection in API client
534
+ - WebSocket message validation
535
+
536
+ ---
537
+
538
+ ## 📊 Performance
539
+
540
+ - **Zero Runtime Dependencies** — Minimal bundle size
541
+ - **Tree Shakeable** — Only bundle what you use
542
+ - **Code Splitting** — Subpath exports enable granular loading
543
+ - **Lazy Loading** — Component and hook patterns support code splitting
544
+ - **Caching** — Built-in HTTP caching strategies
545
+
546
+ ### Bundle Size Estimates
547
+
548
+ | Package | Gzipped |
549
+ | --------------- | ----------- |
550
+ | `@materi.ai/core` | ~45 KB |
551
+ | `@materi.ai/ui` | ~35 KB |
552
+ | `@materi.ai/hooks` | ~12 KB |
553
+ | `@materi.ai/api` | ~8 KB |
554
+ | **Total** | **~100 KB** |
555
+
556
+ ---
557
+
558
+ ## 📋 API Reference
559
+
560
+ **Complete TypeDoc API Documentation:**
561
+
562
+ - **[TypeDoc API Reference](./docs/api/)** — Auto-generated API documentation with search and cross-references
563
+ - **[Getting Started](./docs/GETTING_STARTED_COMPREHENSIVE.md)** — Complete setup guide with examples
564
+ - **[Tutorials](./docs/tutorials/README.md)** — Step-by-step learning path from beginner to advanced
565
+ - **[Examples](./examples/README.md)** — Working example applications with full source code
566
+
567
+ ### Package-Specific Documentation
568
+
569
+ - **[Core Package](./docs/api/modules/core.md)** — Operational transformation, formula engine, auth, WebSocket management
570
+ - **[UI Package](./docs/api/modules/ui.md)** — Design system components, tokens, themes, and styling
571
+ - **[Hooks Package](./docs/api/modules/hooks.md)** — React hooks for collaboration, authentication, and data management
572
+ - **[API Package](./docs/api/modules/api.md)** — HTTP client, endpoint definitions, and request management
573
+
574
+ ### Quick Reference
575
+
576
+ ```typescript
577
+ // Core types and algorithms
578
+ import { BaseEvents, EventPriority } from '@materi.ai/frame/core';
579
+ import { applyOp, transform } from '@materi.ai/frame/core/ot';
580
+ import { evaluate } from '@materi.ai/frame/core/formula';
581
+
582
+ // UI components and tokens
583
+ import { colors, spacing } from '@materi.ai/frame/ui';
584
+ import { Button, Card } from '@materi.ai/frame/ui/primitives';
585
+
586
+ // React hooks by service
587
+ import { useAuth, useWorkspace } from '@materi.ai/frame/hooks'; // Shield
588
+ import { useDocument, useSearch } from '@materi.ai/frame/hooks'; // API
589
+ import { useOT, useWebSocket } from '@materi.ai/frame/hooks'; // Relay
590
+
591
+ // HTTP client
592
+ import { createHTTPClient, userAPI } from '@materi.ai/frame/api';
593
+ ```
594
+
595
+ ---
596
+
597
+ ## � Examples
598
+
599
+ `@materi.ai/frame` includes comprehensive example applications and tutorials for every skill level:
600
+
601
+ ### 🚀 Complete Example Applications
602
+
603
+ **Real-world applications with full source code:**
604
+
605
+ - **[Collaborative Editor](./examples/collaborative-editor/README.md)** — Complete multi-user text editor
606
+ - Real-time operational transformation
607
+ - WebSocket integration with presence indicators
608
+ - Undo/redo with conflict resolution
609
+ - Production-ready server-side OT logic
610
+
611
+ - **[Spreadsheet Calculator](./examples/spreadsheet-calculator/README.md)** — Interactive spreadsheet
612
+ - Formula engine with 50+ functions
613
+ - Cell dependencies and live recalculation
614
+ - Import/export with Excel compatibility
615
+ - Performance optimization for large datasets
616
+
617
+ - **[Component Showcase](./examples/component-showcase/README.md)** — Interactive UI gallery
618
+ - All design system components
619
+ - Live playground and customization
620
+ - Theme switching and dark mode
621
+ - Accessibility testing tools
622
+
623
+ ### 📚 Step-by-Step Tutorials
624
+
625
+ **Progressive learning path with difficulty levels:**
626
+
627
+ #### Beginner (🟢) — 30-45 minutes each
628
+
629
+ - **[Document Editor Tutorial](./docs/tutorials/01-document-editor.md)** — Build your first collaborative editor
630
+ - **[Formula Engine Guide](./docs/tutorials/02-formula-engine.md)** — Add calculation capabilities
631
+ - **[UI Components](./docs/tutorials/03-ui-components.md)** — Master the design system
632
+
633
+ #### Intermediate (🟡) — 45-60 minutes each
634
+
635
+ - **[Real-time Collaboration](./docs/tutorials/04-collaboration.md)** — Multi-user editing with presence
636
+ - **[Authentication Integration](./docs/tutorials/05-auth-flow.md)** — User management and security
637
+ - **[Backend API Integration](./docs/tutorials/06-api-integration.md)** — Connect to your services
638
+
639
+ #### Advanced (🔴) — 60-90 minutes each
640
+
641
+ - **[Performance Optimization](./docs/tutorials/07-performance.md)** — Bundle size and runtime optimization
642
+ - **[Custom Components](./docs/tutorials/08-custom-components.md)** — Extend the design system
643
+ - **[Production Deployment](./docs/tutorials/09-deployment.md)** — Scalable deployment strategies
644
+
645
+ ### 🏃‍♂️ Quick Code Examples
646
+
647
+ #### Operational Transformation
648
+
649
+ ```typescript
650
+ import { applyOp, transform } from '@materi.ai/frame/core/ot';
651
+
652
+ // Apply operation to document content
653
+ const content = 'Hello world';
654
+ const operation = { type: 'insert', position: 5, text: ' beautiful' };
655
+ const result = applyOp(content, operation);
656
+ console.log(result); // "Hello beautiful world"
657
+ ```
658
+
659
+ #### Formula Engine
660
+
661
+ ```typescript
662
+ import { evaluate } from '@materi.ai/frame/core/formula';
663
+
664
+ // Spreadsheet-style calculations
665
+ const result = evaluate('SUM(A1:A10) + AVERAGE(B1:B5)', {
666
+ A1: 10,
667
+ A2: 20,
668
+ A3: 30 /* ... more cells */,
669
+ B1: 5,
670
+ B2: 15,
671
+ B3: 25,
672
+ B4: 35,
673
+ B5: 45,
674
+ });
675
+ ```
676
+
677
+ #### React Hooks Integration
678
+
679
+ ```typescript
680
+ import { useOT, useWebSocket } from '@materi.ai/frame/hooks';
681
+
682
+ function CollaborativeEditor() {
683
+ const { document, applyOperation } = useOT({
684
+ initialDocument: { content: '', version: 0 },
685
+ });
686
+
687
+ const { send, isConnected } = useWebSocket({
688
+ url: 'wss://your-server.com/collaborate',
689
+ onMessage: (msg) => {
690
+ if (msg.type === 'operation') {
691
+ applyOperation(msg.data);
692
+ }
693
+ },
694
+ });
695
+
696
+ // Real-time collaboration ready!
697
+ }
698
+ ```
699
+
700
+ #### Design System Usage
701
+
702
+ ```typescript
703
+ import { Button, Card, Dialog } from '@materi.ai/frame/ui';
704
+ import { colors, spacing } from '@materi.ai/frame/ui/tokens';
705
+
706
+ function UserInterface() {
707
+ return (
708
+ <Card padding="lg" style={{ margin: spacing.md }}>
709
+ <Button
710
+ variant="primary"
711
+ onClick={() => console.log('Interactive!')}
712
+ >
713
+ Click me
714
+ </Button>
715
+ </Card>
716
+ );
717
+ }
718
+ ```
719
+
720
+ ### 📱 Live Demos
721
+
722
+ **Try the examples online:**
723
+
724
+ - **[Collaborative Editor Demo](https://materi-frame-editor.vercel.app)** — Multi-user editing in your browser
725
+ - **[Component Playground](https://materi-frame-components.vercel.app)** — Interactive design system showcase
726
+ - **[Formula Calculator](https://materi-frame-formulas.vercel.app)** — Spreadsheet engine demonstration
727
+
728
+ **Getting Started:**
729
+
730
+ 1. Choose an example that matches your needs
731
+ 2. Follow the step-by-step README instructions
732
+ 3. Copy and adapt the code for your project
733
+ 4. Check the tutorials for deeper understanding
734
+
735
+ ---
736
+
737
+ ---
738
+
739
+ ## 📚 Tutorials
740
+
741
+ **Step-by-step learning path from beginner to production deployment:**
742
+
743
+ ### 🎯 Tutorial Series Overview
744
+
745
+ Our comprehensive tutorial series takes you from basic setup to advanced production patterns. Each tutorial builds on previous knowledge and includes:
746
+
747
+ - **Complete working code** — Copy-paste ready examples
748
+ - **Step-by-step explanations** — Understand every line
749
+ - **Best practices** — Production-ready patterns
750
+ - **Troubleshooting guides** — Common issues and solutions
751
+
752
+ **Time Investment:** 6-8 hours total (can be completed over several sessions)
753
+ **Prerequisites:** Basic React and TypeScript knowledge
754
+
755
+ ### 🟢 Beginner Level (Start Here)
756
+
757
+ #### [Tutorial 1: Building Your First Document Editor](./docs/tutorials/01-document-editor.md)
758
+
759
+ **Duration:** 45 minutes | **Difficulty:** Easy
760
+
761
+ Build a complete collaborative text editor with operational transformation:
762
+
763
+ ```typescript
764
+ // What you'll build
765
+ function DocumentEditor() {
766
+ const { content, applyOperation, undo, redo } = useDocument();
767
+ const { send, isConnected } = useWebSocket('ws://localhost:8080');
768
+
769
+ return (
770
+ <div>
771
+ <Toolbar onUndo={undo} onRedo={redo} connected={isConnected} />
772
+ <Editor content={content} onChange={applyOperation} />
773
+ </div>
774
+ );
775
+ }
776
+ ```
777
+
778
+ **You'll learn:** OT basics, hooks usage, real-time updates, undo/redo
779
+
780
+ #### [Tutorial 2: Adding Formula Support](./docs/tutorials/02-formula-engine.md)
781
+
782
+ **Duration:** 35 minutes | **Difficulty:** Easy-Medium
783
+
784
+ Integrate spreadsheet-style calculations into your editor:
785
+
786
+ ```typescript
787
+ // Add formula evaluation to cells
788
+ const cellValue = evaluate('=SUM(A1:A10) + AVERAGE(B1:B5)', cellData);
789
+ const dependencies = getDependencies('=A1*B1+C1'); // ['A1', 'B1', 'C1']
790
+ ```
791
+
792
+ **You'll learn:** Formula parsing, dependency tracking, live recalculation
793
+
794
+ #### [Tutorial 3: UI Components & Theming](./docs/tutorials/03-ui-components.md)
795
+
796
+ **Duration:** 30 minutes | **Difficulty:** Easy
797
+
798
+ Master the design system and create beautiful interfaces:
799
+
800
+ ```typescript
801
+ // Professional UI in minutes
802
+ <Card padding="lg" shadow="md">
803
+ <Button variant="primary" size="md" onClick={handleSave}>
804
+ Save Document
805
+ </Button>
806
+ <Button variant="secondary" size="md" onClick={handleCancel}>
807
+ Cancel
808
+ </Button>
809
+ </Card>
810
+ ```
811
+
812
+ **You'll learn:** Design tokens, component composition, theming, accessibility
813
+
814
+ ### 🟡 Intermediate Level
815
+
816
+ #### [Tutorial 4: Real-time Collaboration](./docs/tutorials/04-collaboration.md)
817
+
818
+ **Duration:** 60 minutes | **Difficulty:** Medium
819
+
820
+ Add multi-user editing with presence indicators:
821
+
822
+ ```typescript
823
+ // Multi-user collaboration
824
+ const { users, cursors } = usePresence();
825
+ const { document, applyRemoteOp } = useOT({
826
+ onRemoteOperation: (op) => broadcastToUsers(op),
827
+ onConflict: (local, remote) => transform(local, remote),
828
+ });
829
+ ```
830
+
831
+ **You'll learn:** Presence tracking, conflict resolution, cursor synchronization
832
+
833
+ #### [Tutorial 5: Authentication & Security](./docs/tutorials/05-auth-flow.md)
834
+
835
+ **Duration:** 45 minutes | **Difficulty:** Medium
836
+
837
+ Secure your application with authentication:
838
+
839
+ ```typescript
840
+ // Complete auth flow
841
+ const { user, login, logout, permissions } = useAuth();
842
+ const { documents } = useWorkspace(user.workspaceId);
843
+
844
+ // Permission-based UI
845
+ {permissions.canEdit && <EditButton />}
846
+ ```
847
+
848
+ **You'll learn:** JWT tokens, permission systems, secure WebSocket connections
849
+
850
+ #### [Tutorial 6: Backend Integration](./docs/tutorials/06-api-integration.md)
851
+
852
+ **Duration:** 50 minutes | **Difficulty:** Medium
853
+
854
+ Connect to your backend services:
855
+
856
+ ```typescript
857
+ // Typed API integration
858
+ const { data, loading, error } = useFetch('/api/documents', {
859
+ params: { userId: user.id },
860
+ cache: '5m',
861
+ });
862
+
863
+ const { mutate } = useAPI(documentAPI.updateDocument);
864
+ ```
865
+
866
+ **You'll learn:** HTTP client usage, caching strategies, error handling
867
+
868
+ ### 🔴 Advanced Level
869
+
870
+ #### [Tutorial 7: Performance Optimization](./docs/tutorials/07-performance.md)
871
+
872
+ **Duration:** 75 minutes | **Difficulty:** Hard
873
+
874
+ Optimize for production performance:
875
+
876
+ ```typescript
877
+ // Bundle size optimization
878
+ import { applyOp } from '@materi.ai/frame/core/ot'; // ✅ 2KB
879
+ import { Button } from '@materi.ai/frame/ui/primitives'; // ✅ 5KB
880
+
881
+ // Runtime optimization
882
+ const MemoizedEditor = memo(Editor);
883
+ const { content, loading } = useSuspenseDocument(documentId);
884
+ ```
885
+
886
+ **You'll learn:** Tree-shaking, code splitting, runtime optimization, monitoring
887
+
888
+ #### [Tutorial 8: Custom Components](./docs/tutorials/08-custom-components.md)
889
+
890
+ **Duration:** 60 minutes | **Difficulty:** Hard
891
+
892
+ Extend the design system with custom components:
893
+
894
+ ```typescript
895
+ // Create custom components that integrate seamlessly
896
+ const CustomToolbar = forwardRef<HTMLDivElement, ToolbarProps>(
897
+ ({ variant, children, ...props }, ref) => {
898
+ const { colors, spacing } = useTokens();
899
+ return (
900
+ <div ref={ref} className="custom-toolbar" {...props}>
901
+ {children}
902
+ </div>
903
+ );
904
+ }
905
+ );
906
+ ```
907
+
908
+ **You'll learn:** Design system extension, accessibility patterns, TypeScript integration
909
+
910
+ #### [Tutorial 9: Production Deployment](./docs/tutorials/09-deployment.md)
911
+
912
+ **Duration:** 90 minutes | **Difficulty:** Hard
913
+
914
+ Deploy scalable, production-ready applications:
915
+
916
+ ```bash
917
+ # Production deployment pipeline
918
+ pnpm build # Optimized build
919
+ pnpm test:e2e # End-to-end tests
920
+ docker build -t app . # Container packaging
921
+ kubectl apply -f k8s/ # Kubernetes deployment
922
+ ```
923
+
924
+ **You'll learn:** CI/CD pipelines, monitoring, scaling, error tracking
925
+
926
+ ### 🎓 Tutorial Completion
927
+
928
+ **After completing all tutorials, you'll be able to:**
929
+
930
+ - ✅ Build production-ready collaborative applications
931
+ - ✅ Implement real-time editing with operational transformation
932
+ - ✅ Create beautiful, accessible user interfaces
933
+ - ✅ Integrate authentication and authorization
934
+ - ✅ Optimize performance and bundle sizes
935
+ - ✅ Deploy scalable applications to production
936
+ - ✅ Extend and customize the framework
937
+
938
+ **Next Steps:**
939
+
940
+ - Browse [Example Applications](./examples/README.md) for advanced patterns
941
+ - Check [API Reference](./docs/api/README.md) for detailed documentation
942
+ - Join our community and contribute back!
943
+
944
+ ---
945
+
946
+ ## 🔧 Troubleshooting
947
+
948
+ ### Installation Issues
949
+
950
+ **"Cannot find module '@materi.ai/frame'"**
951
+
952
+ ```bash
953
+ # Ensure package is installed
954
+ npm install @materi.ai/frame
955
+
956
+ # Clear cache if needed
957
+ npm cache clean --force
958
+ rm -rf node_modules package-lock.json
959
+ npm install
960
+ ```
961
+
962
+ **TypeScript import errors**
963
+
964
+ Ensure `moduleResolution` is set correctly:
965
+
966
+ ```json
967
+ {
968
+ "compilerOptions": {
969
+ "moduleResolution": "bundler", // or "node16"
970
+ "allowSyntheticDefaultImports": true,
971
+ "esModuleInterop": true
972
+ }
973
+ }
974
+ ```
975
+
976
+ ### Runtime Issues
977
+
978
+ **"React hooks error"**
979
+
980
+ Ensure React 19+ is installed:
981
+
982
+ ```bash
983
+ npm install react@^19.0.0 react-dom@^19.0.0
984
+ ```
985
+
986
+ **"WebSocket connection failed"**
987
+
988
+ 1. Check server is running: `curl -I http://your-server.com`
989
+ 2. Verify WebSocket endpoint: `wscat -c wss://your-server.com/ws`
990
+ 3. Check CORS headers for cross-origin requests
991
+ 4. Verify network/proxy settings allow WebSocket upgrades
992
+
993
+ **"Operation transform conflicts"**
994
+
995
+ - Ensure all clients use same document version
996
+ - Check operation ordering (use vector clocks)
997
+ - Verify server properly sequences operations
998
+
999
+ ### Development Issues
1000
+
1001
+ **Bundle size too large**
1002
+
1003
+ ```typescript
1004
+ // Import only what you need
1005
+ import { colors } from '@materi.ai/frame/ui'; // ✅ Specific import
1006
+ import * as ui from '@materi.ai/frame/ui'; // ❌ Imports everything
1007
+
1008
+ // Use individual package imports for better tree-shaking
1009
+ import { useAuth } from '@materi.ai/frame/hooks'; // ✅ Tree-shakeable
1010
+ ```
1011
+
1012
+ **Slow TypeScript compilation**
1013
+
1014
+ ```json
1015
+ {
1016
+ "compilerOptions": {
1017
+ "incremental": true,
1018
+ "composite": true
1019
+ },
1020
+ "include": ["src/**/*"],
1021
+ "exclude": ["node_modules", "dist"]
1022
+ }
1023
+ ```
1024
+
1025
+ ### Getting Help
1026
+
1027
+ 1. **Check the examples**: [`./examples/`](./examples/)
1028
+ 2. **Read the API docs**: [`./docs/API.md`](./docs/API.md)
1029
+ 3. **Search issues**: [GitHub Issues](https://github.com/materi-ai/frame/issues)
1030
+ 4. **Create an issue**: Include version, error message, and minimal reproduction
1031
+
1032
+ **Debugging checklist:**
1033
+
1034
+ - ☐ Latest version of `@materi.ai/frame`?
1035
+ - ☐ React 19+ installed?
1036
+ - ☐ TypeScript 5.6+ (if using TypeScript)?
1037
+ - ☐ Node.js 18+?
1038
+ - ☐ Modern bundler (Vite 5+, Webpack 5+)?
1039
+
1040
+ ---
1041
+
1042
+ ## � Migration Guide
1043
+
1044
+ Upgrading from internal packages or older versions?
1045
+
1046
+ **[Migration Guide](./docs/MIGRATION.md)** — Step-by-step migration instructions
1047
+
1048
+ Key changes:
1049
+
1050
+ - Single package install: `npm install @materi.ai/frame`
1051
+ - Subpath exports: `@materi.ai/frame/core`, `@materi.ai/frame/ui`
1052
+ - Improved hook organization by service (Shield, API, Relay)
1053
+ - `Result<T>` return types for better error handling
1054
+
1055
+ ---
1056
+
1057
+ ## 📄 Documentation
1058
+
1059
+ - **[Getting Started](./docs/GETTING_STARTED.md)** — Complete tutorial with working examples
1060
+ - **[API Reference](./docs/API.md)** — Full documentation of all exports
1061
+ - **[Migration Guide](./docs/MIGRATION.md)** — Upgrade from internal packages
1062
+ - **[Examples](./examples/)** — Copy-paste code samples
1063
+ - **[CHANGELOG](./CHANGELOG.md)** — Release notes and version history
1064
+
1065
+ ---
1066
+
1067
+ ## 👥 Contributing
1068
+
1069
+ We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
1070
+
1071
+ **Quick start for contributors:**
1072
+
1073
+ ```bash
1074
+ # Clone and install
1075
+ git clone https://github.com/materi-ai/frame.git
1076
+ cd frame
1077
+ pnpm install
1078
+
1079
+ # Run tests
1080
+ pnpm test
1081
+
1082
+ # Build packages
1083
+ pnpm build
1084
+ ```
1085
+
1086
+ ---
1087
+
1088
+ MIT © Materi
1089
+
1090
+ ---
1091
+
1092
+ ## 🤝 Contributing
1093
+
1094
+ Contributions are welcome! Please ensure:
1095
+
1096
+ 1. All tests pass: `pnpm test`
1097
+ 2. Code is formatted: `pnpm format`
1098
+ 3. Types are correct: `pnpm type-check`
1099
+ 4. Linter passes: `pnpm lint`
1100
+
1101
+ ---
1102
+
1103
+ ## 📚 Resources
1104
+
1105
+ - [React Documentation](https://react.dev)
1106
+ - [TypeScript Handbook](https://www.typescriptlang.org/docs/)
1107
+ - [Operational Transformation](https://en.wikipedia.org/wiki/Operational_transformation)
1108
+ - [Accessible Rich Internet Applications (ARIA)](https://www.w3.org/WAI/ARIA/apg/)
1109
+
1110
+ ---
1111
+
1112
+ ## 🎯 Roadmap
1113
+
1114
+ - [ ] Official storybook components gallery
1115
+ - [ ] GraphQL client integration
1116
+ - [ ] Offline-first synchronization
1117
+ - [ ] Advanced formula functions (financial, statistical)
1118
+ - [ ] Rich text editor with collaborative cursors
1119
+ - [ ] E2E encryption support
1120
+ - [ ] Performance monitoring dashboard
1121
+
1122
+ ---
1123
+
1124
+ **Built with ❤️ by Materi Engineering**