@datalayer/core 1.2.13 → 1.2.15

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 (310) hide show
  1. package/README.md +1 -1
  2. package/lib/api/contents/datasets.d.ts +1 -32
  3. package/lib/api/contents/generated.d.ts +50 -2
  4. package/lib/api/iam/organizationPlugins.d.ts +8 -0
  5. package/lib/api/iam/organizationPlugins.js +41 -0
  6. package/lib/api/iam/servicePrincipals.d.ts +30 -0
  7. package/lib/api/iam/servicePrincipals.js +87 -0
  8. package/lib/components/avatars/UserAvatar.d.ts +2 -1
  9. package/lib/components/avatars/UserAvatar.js +2 -3
  10. package/lib/components/emoji/FluentEmoji.d.ts +33 -0
  11. package/lib/components/emoji/FluentEmoji.js +66 -0
  12. package/lib/components/emoji/faceEmojis.d.ts +24 -0
  13. package/lib/components/emoji/faceEmojis.js +178 -0
  14. package/lib/components/emoji/fluent/loaders.d.ts +12 -0
  15. package/lib/components/emoji/fluent/loaders.js +152 -0
  16. package/lib/components/emoji/fluent/svg/1f304.d.ts +2 -0
  17. package/lib/components/emoji/fluent/svg/1f304.js +5 -0
  18. package/lib/components/emoji/fluent/svg/1f308.d.ts +2 -0
  19. package/lib/components/emoji/fluent/svg/1f308.js +5 -0
  20. package/lib/components/emoji/fluent/svg/1f30d.d.ts +2 -0
  21. package/lib/components/emoji/fluent/svg/1f30d.js +5 -0
  22. package/lib/components/emoji/fluent/svg/1f31f.d.ts +2 -0
  23. package/lib/components/emoji/fluent/svg/1f31f.js +5 -0
  24. package/lib/components/emoji/fluent/svg/1f331.d.ts +2 -0
  25. package/lib/components/emoji/fluent/svg/1f331.js +5 -0
  26. package/lib/components/emoji/fluent/svg/1f340.d.ts +2 -0
  27. package/lib/components/emoji/fluent/svg/1f340.js +5 -0
  28. package/lib/components/emoji/fluent/svg/1f355.d.ts +2 -0
  29. package/lib/components/emoji/fluent/svg/1f355.js +5 -0
  30. package/lib/components/emoji/fluent/svg/1f381.d.ts +2 -0
  31. package/lib/components/emoji/fluent/svg/1f381.js +5 -0
  32. package/lib/components/emoji/fluent/svg/1f385.d.ts +2 -0
  33. package/lib/components/emoji/fluent/svg/1f385.js +5 -0
  34. package/lib/components/emoji/fluent/svg/1f386.d.ts +2 -0
  35. package/lib/components/emoji/fluent/svg/1f386.js +5 -0
  36. package/lib/components/emoji/fluent/svg/1f387.d.ts +2 -0
  37. package/lib/components/emoji/fluent/svg/1f387.js +5 -0
  38. package/lib/components/emoji/fluent/svg/1f389.d.ts +2 -0
  39. package/lib/components/emoji/fluent/svg/1f389.js +5 -0
  40. package/lib/components/emoji/fluent/svg/1f393.d.ts +2 -0
  41. package/lib/components/emoji/fluent/svg/1f393.js +5 -0
  42. package/lib/components/emoji/fluent/svg/1f399.d.ts +2 -0
  43. package/lib/components/emoji/fluent/svg/1f399.js +5 -0
  44. package/lib/components/emoji/fluent/svg/1f3a8.d.ts +2 -0
  45. package/lib/components/emoji/fluent/svg/1f3a8.js +5 -0
  46. package/lib/components/emoji/fluent/svg/1f3ac.d.ts +2 -0
  47. package/lib/components/emoji/fluent/svg/1f3ac.js +5 -0
  48. package/lib/components/emoji/fluent/svg/1f3af.d.ts +2 -0
  49. package/lib/components/emoji/fluent/svg/1f3af.js +5 -0
  50. package/lib/components/emoji/fluent/svg/1f3b5.d.ts +2 -0
  51. package/lib/components/emoji/fluent/svg/1f3b5.js +5 -0
  52. package/lib/components/emoji/fluent/svg/1f3c4.d.ts +2 -0
  53. package/lib/components/emoji/fluent/svg/1f3c4.js +5 -0
  54. package/lib/components/emoji/fluent/svg/1f3c6.d.ts +2 -0
  55. package/lib/components/emoji/fluent/svg/1f3c6.js +5 -0
  56. package/lib/components/emoji/fluent/svg/1f3ca.d.ts +2 -0
  57. package/lib/components/emoji/fluent/svg/1f3ca.js +5 -0
  58. package/lib/components/emoji/fluent/svg/1f3d7.d.ts +2 -0
  59. package/lib/components/emoji/fluent/svg/1f3d7.js +5 -0
  60. package/lib/components/emoji/fluent/svg/1f3db.d.ts +2 -0
  61. package/lib/components/emoji/fluent/svg/1f3db.js +5 -0
  62. package/lib/components/emoji/fluent/svg/1f3e0.d.ts +2 -0
  63. package/lib/components/emoji/fluent/svg/1f3e0.js +5 -0
  64. package/lib/components/emoji/fluent/svg/1f3e2.d.ts +2 -0
  65. package/lib/components/emoji/fluent/svg/1f3e2.js +5 -0
  66. package/lib/components/emoji/fluent/svg/1f3e5.d.ts +2 -0
  67. package/lib/components/emoji/fluent/svg/1f3e5.js +5 -0
  68. package/lib/components/emoji/fluent/svg/1f3e6.d.ts +2 -0
  69. package/lib/components/emoji/fluent/svg/1f3e6.js +5 -0
  70. package/lib/components/emoji/fluent/svg/1f3f7.d.ts +2 -0
  71. package/lib/components/emoji/fluent/svg/1f3f7.js +5 -0
  72. package/lib/components/emoji/fluent/svg/1f409.d.ts +2 -0
  73. package/lib/components/emoji/fluent/svg/1f409.js +5 -0
  74. package/lib/components/emoji/fluent/svg/1f419.d.ts +2 -0
  75. package/lib/components/emoji/fluent/svg/1f419.js +5 -0
  76. package/lib/components/emoji/fluent/svg/1f41d.d.ts +2 -0
  77. package/lib/components/emoji/fluent/svg/1f41d.js +5 -0
  78. package/lib/components/emoji/fluent/svg/1f427.d.ts +2 -0
  79. package/lib/components/emoji/fluent/svg/1f427.js +5 -0
  80. package/lib/components/emoji/fluent/svg/1f431.d.ts +2 -0
  81. package/lib/components/emoji/fluent/svg/1f431.js +5 -0
  82. package/lib/components/emoji/fluent/svg/1f432.d.ts +2 -0
  83. package/lib/components/emoji/fluent/svg/1f432.js +5 -0
  84. package/lib/components/emoji/fluent/svg/1f433.d.ts +2 -0
  85. package/lib/components/emoji/fluent/svg/1f433.js +5 -0
  86. package/lib/components/emoji/fluent/svg/1f436.d.ts +2 -0
  87. package/lib/components/emoji/fluent/svg/1f436.js +5 -0
  88. package/lib/components/emoji/fluent/svg/1f440.d.ts +2 -0
  89. package/lib/components/emoji/fluent/svg/1f440.js +5 -0
  90. package/lib/components/emoji/fluent/svg/1f44b.d.ts +2 -0
  91. package/lib/components/emoji/fluent/svg/1f44b.js +5 -0
  92. package/lib/components/emoji/fluent/svg/1f450.d.ts +2 -0
  93. package/lib/components/emoji/fluent/svg/1f450.js +5 -0
  94. package/lib/components/emoji/fluent/svg/1f477.d.ts +2 -0
  95. package/lib/components/emoji/fluent/svg/1f477.js +5 -0
  96. package/lib/components/emoji/fluent/svg/1f47d.d.ts +2 -0
  97. package/lib/components/emoji/fluent/svg/1f47d.js +5 -0
  98. package/lib/components/emoji/fluent/svg/1f47e.d.ts +2 -0
  99. package/lib/components/emoji/fluent/svg/1f47e.js +5 -0
  100. package/lib/components/emoji/fluent/svg/1f4a1.d.ts +2 -0
  101. package/lib/components/emoji/fluent/svg/1f4a1.js +5 -0
  102. package/lib/components/emoji/fluent/svg/1f4ac.d.ts +2 -0
  103. package/lib/components/emoji/fluent/svg/1f4ac.js +5 -0
  104. package/lib/components/emoji/fluent/svg/1f4b0.d.ts +2 -0
  105. package/lib/components/emoji/fluent/svg/1f4b0.js +5 -0
  106. package/lib/components/emoji/fluent/svg/1f4b3.d.ts +2 -0
  107. package/lib/components/emoji/fluent/svg/1f4b3.js +5 -0
  108. package/lib/components/emoji/fluent/svg/1f4bc.d.ts +2 -0
  109. package/lib/components/emoji/fluent/svg/1f4bc.js +5 -0
  110. package/lib/components/emoji/fluent/svg/1f4c5.d.ts +2 -0
  111. package/lib/components/emoji/fluent/svg/1f4c5.js +5 -0
  112. package/lib/components/emoji/fluent/svg/1f4c8.d.ts +2 -0
  113. package/lib/components/emoji/fluent/svg/1f4c8.js +5 -0
  114. package/lib/components/emoji/fluent/svg/1f4ca.d.ts +2 -0
  115. package/lib/components/emoji/fluent/svg/1f4ca.js +5 -0
  116. package/lib/components/emoji/fluent/svg/1f4cb.d.ts +2 -0
  117. package/lib/components/emoji/fluent/svg/1f4cb.js +5 -0
  118. package/lib/components/emoji/fluent/svg/1f4cc.d.ts +2 -0
  119. package/lib/components/emoji/fluent/svg/1f4cc.js +5 -0
  120. package/lib/components/emoji/fluent/svg/1f4d1.d.ts +2 -0
  121. package/lib/components/emoji/fluent/svg/1f4d1.js +5 -0
  122. package/lib/components/emoji/fluent/svg/1f4da.d.ts +2 -0
  123. package/lib/components/emoji/fluent/svg/1f4da.js +5 -0
  124. package/lib/components/emoji/fluent/svg/1f4dd.d.ts +2 -0
  125. package/lib/components/emoji/fluent/svg/1f4dd.js +5 -0
  126. package/lib/components/emoji/fluent/svg/1f4de.d.ts +2 -0
  127. package/lib/components/emoji/fluent/svg/1f4de.js +5 -0
  128. package/lib/components/emoji/fluent/svg/1f4e3.d.ts +2 -0
  129. package/lib/components/emoji/fluent/svg/1f4e3.js +5 -0
  130. package/lib/components/emoji/fluent/svg/1f4e6.d.ts +2 -0
  131. package/lib/components/emoji/fluent/svg/1f4e6.js +5 -0
  132. package/lib/components/emoji/fluent/svg/1f4ec.d.ts +2 -0
  133. package/lib/components/emoji/fluent/svg/1f4ec.js +5 -0
  134. package/lib/components/emoji/fluent/svg/1f4f0.d.ts +2 -0
  135. package/lib/components/emoji/fluent/svg/1f4f0.js +5 -0
  136. package/lib/components/emoji/fluent/svg/1f4f7.d.ts +2 -0
  137. package/lib/components/emoji/fluent/svg/1f4f7.js +5 -0
  138. package/lib/components/emoji/fluent/svg/1f50d.d.ts +2 -0
  139. package/lib/components/emoji/fluent/svg/1f50d.js +5 -0
  140. package/lib/components/emoji/fluent/svg/1f50e.d.ts +2 -0
  141. package/lib/components/emoji/fluent/svg/1f50e.js +5 -0
  142. package/lib/components/emoji/fluent/svg/1f511.d.ts +2 -0
  143. package/lib/components/emoji/fluent/svg/1f511.js +5 -0
  144. package/lib/components/emoji/fluent/svg/1f512.d.ts +2 -0
  145. package/lib/components/emoji/fluent/svg/1f512.js +5 -0
  146. package/lib/components/emoji/fluent/svg/1f514.d.ts +2 -0
  147. package/lib/components/emoji/fluent/svg/1f514.js +5 -0
  148. package/lib/components/emoji/fluent/svg/1f525.d.ts +2 -0
  149. package/lib/components/emoji/fluent/svg/1f525.js +5 -0
  150. package/lib/components/emoji/fluent/svg/1f527.d.ts +2 -0
  151. package/lib/components/emoji/fluent/svg/1f527.js +5 -0
  152. package/lib/components/emoji/fluent/svg/1f52c.d.ts +2 -0
  153. package/lib/components/emoji/fluent/svg/1f52c.js +5 -0
  154. package/lib/components/emoji/fluent/svg/1f58a.d.ts +2 -0
  155. package/lib/components/emoji/fluent/svg/1f58a.js +5 -0
  156. package/lib/components/emoji/fluent/svg/1f5bc.d.ts +2 -0
  157. package/lib/components/emoji/fluent/svg/1f5bc.js +5 -0
  158. package/lib/components/emoji/fluent/svg/1f5c2.d.ts +2 -0
  159. package/lib/components/emoji/fluent/svg/1f5c2.js +5 -0
  160. package/lib/components/emoji/fluent/svg/1f5d3.d.ts +2 -0
  161. package/lib/components/emoji/fluent/svg/1f5d3.js +5 -0
  162. package/lib/components/emoji/fluent/svg/1f5fa.d.ts +2 -0
  163. package/lib/components/emoji/fluent/svg/1f5fa.js +5 -0
  164. package/lib/components/emoji/fluent/svg/1f600.d.ts +2 -0
  165. package/lib/components/emoji/fluent/svg/1f600.js +5 -0
  166. package/lib/components/emoji/fluent/svg/1f60e.d.ts +2 -0
  167. package/lib/components/emoji/fluent/svg/1f60e.js +5 -0
  168. package/lib/components/emoji/fluent/svg/1f642.d.ts +2 -0
  169. package/lib/components/emoji/fluent/svg/1f642.js +5 -0
  170. package/lib/components/emoji/fluent/svg/1f680.d.ts +2 -0
  171. package/lib/components/emoji/fluent/svg/1f680.js +5 -0
  172. package/lib/components/emoji/fluent/svg/1f69a.d.ts +2 -0
  173. package/lib/components/emoji/fluent/svg/1f69a.js +5 -0
  174. package/lib/components/emoji/fluent/svg/1f6a2.d.ts +2 -0
  175. package/lib/components/emoji/fluent/svg/1f6a2.js +5 -0
  176. package/lib/components/emoji/fluent/svg/1f6a7.d.ts +2 -0
  177. package/lib/components/emoji/fluent/svg/1f6a7.js +5 -0
  178. package/lib/components/emoji/fluent/svg/1f6b2.d.ts +2 -0
  179. package/lib/components/emoji/fluent/svg/1f6b2.js +5 -0
  180. package/lib/components/emoji/fluent/svg/1f6d2.d.ts +2 -0
  181. package/lib/components/emoji/fluent/svg/1f6d2.js +5 -0
  182. package/lib/components/emoji/fluent/svg/1f6df.d.ts +2 -0
  183. package/lib/components/emoji/fluent/svg/1f6df.js +5 -0
  184. package/lib/components/emoji/fluent/svg/1f6e0.d.ts +2 -0
  185. package/lib/components/emoji/fluent/svg/1f6e0.js +5 -0
  186. package/lib/components/emoji/fluent/svg/1f6e1.d.ts +2 -0
  187. package/lib/components/emoji/fluent/svg/1f6e1.js +5 -0
  188. package/lib/components/emoji/fluent/svg/1f6eb.d.ts +2 -0
  189. package/lib/components/emoji/fluent/svg/1f6eb.js +5 -0
  190. package/lib/components/emoji/fluent/svg/1f6f0.d.ts +2 -0
  191. package/lib/components/emoji/fluent/svg/1f6f0.js +5 -0
  192. package/lib/components/emoji/fluent/svg/1f6f8.d.ts +2 -0
  193. package/lib/components/emoji/fluent/svg/1f6f8.js +5 -0
  194. package/lib/components/emoji/fluent/svg/1f913.d.ts +2 -0
  195. package/lib/components/emoji/fluent/svg/1f913.js +5 -0
  196. package/lib/components/emoji/fluent/svg/1f916.d.ts +2 -0
  197. package/lib/components/emoji/fluent/svg/1f916.js +5 -0
  198. package/lib/components/emoji/fluent/svg/1f91d.d.ts +2 -0
  199. package/lib/components/emoji/fluent/svg/1f91d.js +5 -0
  200. package/lib/components/emoji/fluent/svg/1f920.d.ts +2 -0
  201. package/lib/components/emoji/fluent/svg/1f920.js +5 -0
  202. package/lib/components/emoji/fluent/svg/1f977.d.ts +2 -0
  203. package/lib/components/emoji/fluent/svg/1f977.js +5 -0
  204. package/lib/components/emoji/fluent/svg/1f984.d.ts +2 -0
  205. package/lib/components/emoji/fluent/svg/1f984.js +5 -0
  206. package/lib/components/emoji/fluent/svg/1f988.d.ts +2 -0
  207. package/lib/components/emoji/fluent/svg/1f988.js +5 -0
  208. package/lib/components/emoji/fluent/svg/1f989.d.ts +2 -0
  209. package/lib/components/emoji/fluent/svg/1f989.js +5 -0
  210. package/lib/components/emoji/fluent/svg/1f98a.d.ts +2 -0
  211. package/lib/components/emoji/fluent/svg/1f98a.js +5 -0
  212. package/lib/components/emoji/fluent/svg/1f98e.d.ts +2 -0
  213. package/lib/components/emoji/fluent/svg/1f98e.js +5 -0
  214. package/lib/components/emoji/fluent/svg/1f9d0.d.ts +2 -0
  215. package/lib/components/emoji/fluent/svg/1f9d0.js +5 -0
  216. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f33e.d.ts +2 -0
  217. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f33e.js +5 -0
  218. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f373.d.ts +2 -0
  219. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f373.js +5 -0
  220. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f393.d.ts +2 -0
  221. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f393.js +5 -0
  222. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f3eb.d.ts +2 -0
  223. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f3eb.js +5 -0
  224. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f4bb.d.ts +2 -0
  225. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f4bb.js +5 -0
  226. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f4bc.d.ts +2 -0
  227. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f4bc.js +5 -0
  228. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f52c.d.ts +2 -0
  229. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f52c.js +5 -0
  230. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f680.d.ts +2 -0
  231. package/lib/components/emoji/fluent/svg/1f9d1-200d-1f680.js +5 -0
  232. package/lib/components/emoji/fluent/svg/1f9d1-200d-2695.d.ts +2 -0
  233. package/lib/components/emoji/fluent/svg/1f9d1-200d-2695.js +5 -0
  234. package/lib/components/emoji/fluent/svg/1f9dd.d.ts +2 -0
  235. package/lib/components/emoji/fluent/svg/1f9dd.js +5 -0
  236. package/lib/components/emoji/fluent/svg/1f9e0.d.ts +2 -0
  237. package/lib/components/emoji/fluent/svg/1f9e0.js +5 -0
  238. package/lib/components/emoji/fluent/svg/1f9e9.d.ts +2 -0
  239. package/lib/components/emoji/fluent/svg/1f9e9.js +5 -0
  240. package/lib/components/emoji/fluent/svg/1f9ea.d.ts +2 -0
  241. package/lib/components/emoji/fluent/svg/1f9ea.js +5 -0
  242. package/lib/components/emoji/fluent/svg/1f9ec.d.ts +2 -0
  243. package/lib/components/emoji/fluent/svg/1f9ec.js +5 -0
  244. package/lib/components/emoji/fluent/svg/1f9ed.d.ts +2 -0
  245. package/lib/components/emoji/fluent/svg/1f9ed.js +5 -0
  246. package/lib/components/emoji/fluent/svg/1f9ee.d.ts +2 -0
  247. package/lib/components/emoji/fluent/svg/1f9ee.js +5 -0
  248. package/lib/components/emoji/fluent/svg/1f9f0.d.ts +2 -0
  249. package/lib/components/emoji/fluent/svg/1f9f0.js +5 -0
  250. package/lib/components/emoji/fluent/svg/1f9f9.d.ts +2 -0
  251. package/lib/components/emoji/fluent/svg/1f9f9.js +5 -0
  252. package/lib/components/emoji/fluent/svg/1f9fe.d.ts +2 -0
  253. package/lib/components/emoji/fluent/svg/1f9fe.js +5 -0
  254. package/lib/components/emoji/fluent/svg/1fa84.d.ts +2 -0
  255. package/lib/components/emoji/fluent/svg/1fa84.js +5 -0
  256. package/lib/components/emoji/fluent/svg/1fa90.d.ts +2 -0
  257. package/lib/components/emoji/fluent/svg/1fa90.js +5 -0
  258. package/lib/components/emoji/fluent/svg/23f0.d.ts +2 -0
  259. package/lib/components/emoji/fluent/svg/23f0.js +5 -0
  260. package/lib/components/emoji/fluent/svg/2600.d.ts +2 -0
  261. package/lib/components/emoji/fluent/svg/2600.js +5 -0
  262. package/lib/components/emoji/fluent/svg/2601.d.ts +2 -0
  263. package/lib/components/emoji/fluent/svg/2601.js +5 -0
  264. package/lib/components/emoji/fluent/svg/2603.d.ts +2 -0
  265. package/lib/components/emoji/fluent/svg/2603.js +5 -0
  266. package/lib/components/emoji/fluent/svg/2615.d.ts +2 -0
  267. package/lib/components/emoji/fluent/svg/2615.js +5 -0
  268. package/lib/components/emoji/fluent/svg/262f.d.ts +2 -0
  269. package/lib/components/emoji/fluent/svg/262f.js +5 -0
  270. package/lib/components/emoji/fluent/svg/2696.d.ts +2 -0
  271. package/lib/components/emoji/fluent/svg/2696.js +5 -0
  272. package/lib/components/emoji/fluent/svg/2699.d.ts +2 -0
  273. package/lib/components/emoji/fluent/svg/2699.js +5 -0
  274. package/lib/components/emoji/fluent/svg/269b.d.ts +2 -0
  275. package/lib/components/emoji/fluent/svg/269b.js +5 -0
  276. package/lib/components/emoji/fluent/svg/26a1.d.ts +2 -0
  277. package/lib/components/emoji/fluent/svg/26a1.js +5 -0
  278. package/lib/components/emoji/fluent/svg/2705.d.ts +2 -0
  279. package/lib/components/emoji/fluent/svg/2705.js +5 -0
  280. package/lib/components/emoji/fluent/svg/2709.d.ts +2 -0
  281. package/lib/components/emoji/fluent/svg/2709.js +5 -0
  282. package/lib/components/emoji/fluent/svg/270d.d.ts +2 -0
  283. package/lib/components/emoji/fluent/svg/270d.js +5 -0
  284. package/lib/components/emoji/fluent/svg/2712.d.ts +2 -0
  285. package/lib/components/emoji/fluent/svg/2712.js +5 -0
  286. package/lib/components/emoji/fluent/svg/2764.d.ts +2 -0
  287. package/lib/components/emoji/fluent/svg/2764.js +5 -0
  288. package/lib/components/emoji/fluent/svg/2b50.d.ts +2 -0
  289. package/lib/components/emoji/fluent/svg/2b50.js +5 -0
  290. package/lib/components/emoji/index.d.ts +3 -0
  291. package/lib/components/emoji/index.js +7 -0
  292. package/lib/components/principal/PrincipalAppearance.d.ts +7 -1
  293. package/lib/components/principal/PrincipalAvatar.js +3 -1
  294. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +2 -1
  295. package/lib/components/principal/PrincipalDetailsOverlay.js +4 -0
  296. package/lib/hooks/index.d.ts +2 -0
  297. package/lib/hooks/index.js +2 -0
  298. package/lib/hooks/libraryApp.d.ts +37 -0
  299. package/lib/hooks/libraryApp.js +59 -0
  300. package/lib/hooks/useCache.d.ts +2 -0
  301. package/lib/hooks/useCache.js +6 -1
  302. package/lib/hooks/useOrganizationPlugins.d.ts +4 -0
  303. package/lib/hooks/useOrganizationPlugins.js +37 -0
  304. package/lib/hooks/usePrincipalCacheStore.d.ts +1 -1
  305. package/lib/hooks/usePrincipalCacheStore.js +3 -1
  306. package/lib/state/substates/NavigationState.d.ts +21 -4
  307. package/lib/state/substates/NavigationState.js +51 -9
  308. package/lib/views/mcp/McpHome.js +4 -3
  309. package/package.json +1 -1
  310. package/scripts/generate-fluent-emoji.py +188 -0
@@ -1,15 +1,17 @@
1
1
  /** The signed-in shell: the platform, the business cases, or the admin. */
2
2
  /**
3
- * The four shells of the signed-in application.
3
+ * The five shells of the signed-in application.
4
4
  *
5
5
  * `studio` is where an agentic UI application is composed, validated and
6
6
  * shipped — the default for somebody who has not chosen, and what the root
7
7
  * shows. `home` is the whole platform, shown as *Power*, at `/power`: the key
8
8
  * is kept so a cookie written before the Studio existed still names the
9
9
  * shell it meant. `agentify` is the business cases; `admin` is the
10
- * platform's administration.
10
+ * platform's administration. `loop` is LOOP: AI applications built by spec,
11
+ * by drag and drop or in Python — the Studio's app pages under a sidebar of
12
+ * their own, and the LOOP workspace at `/loop`.
11
13
  */
12
- export type NavigationView = 'studio' | 'home' | 'agentify' | 'admin';
14
+ export type NavigationView = 'studio' | 'home' | 'agentify' | 'admin' | 'loop';
13
15
  /** The shells, and where each one opens when it has not been visited. */
14
16
  export declare const NAVIGATION_VIEW_HOMES: Record<NavigationView, string>;
15
17
  /** Well-known view identifiers for {@link NavigationState.tabsByView}. */
@@ -64,6 +66,16 @@ export type NavigationState = {
64
66
  * through or on a page that belongs to no shell.
65
67
  */
66
68
  export declare function isRememberableRoute(route: string): boolean;
69
+ /**
70
+ * Whether a page belongs to no shell: the settings, the documentation and
71
+ * the decks.
72
+ *
73
+ * They are read from whichever shell the reader is in — its sidebar stays
74
+ * beside them and the header's selector does not move — so they are never a
75
+ * shell's own page: opening one does not change the shell, and no shell
76
+ * returns to one.
77
+ */
78
+ export declare function isShellNeutralRoute(route: string): boolean;
67
79
  /**
68
80
  * The shell a route belongs to, read off its first segment.
69
81
  *
@@ -72,8 +84,13 @@ export declare function isRememberableRoute(route: string): boolean;
72
84
  * reached Home through a sidebar link while the toggle still said Agentify
73
85
  * had their Home pages filed under Agentify — and the toggle, seeing
74
86
  * "Agentify" already chosen, did nothing when they clicked it.
87
+ *
88
+ * A shell-neutral page (the settings, the documentation) has no shell of its
89
+ * own: given the shell the reader is in (`current`), that is the answer, so
90
+ * the sidebar and the header stay where they were. Without it the settings
91
+ * read as the Studio's and the documentation as Power's, as they once were.
75
92
  */
76
- export declare function viewForRoute(route: string): NavigationView;
93
+ export declare function viewForRoute(route: string, current?: NavigationView): NavigationView;
77
94
  export declare const navigationStore: import("zustand").StoreApi<NavigationState>;
78
95
  /**
79
96
  * The hook, shaped like a `zustand` store created with `create`: callable
@@ -39,6 +39,8 @@ export const NAVIGATION_VIEW_HOMES = {
39
39
  home: '/power',
40
40
  agentify: '/agentify',
41
41
  admin: '/admin',
42
+ // The applications: what a builder opens LOOP for.
43
+ loop: '/loop/apps',
42
44
  };
43
45
  /** Well-known view identifiers for {@link NavigationState.tabsByView}. */
44
46
  export const LIBRARY_VIEW = 'library';
@@ -56,7 +58,8 @@ const COOKIE_MAX_AGE_DAYS = 365;
56
58
  const isView = (value) => value === 'studio' ||
57
59
  value === 'home' ||
58
60
  value === 'agentify' ||
59
- value === 'admin';
61
+ value === 'admin' ||
62
+ value === 'loop';
60
63
  function readCookie(name) {
61
64
  if (typeof document === 'undefined') {
62
65
  return undefined;
@@ -159,6 +162,18 @@ function persist(state) {
159
162
  }
160
163
  writeCookie(SHELL_COOKIE, state.view);
161
164
  }
165
+ /**
166
+ * The path of a route: what is before its query and its fragment.
167
+ *
168
+ * A route is what the reader was at — `/settings/profile?tab=keys#tokens` —
169
+ * and the shell it belongs to is decided by its path alone. Cutting only at
170
+ * `?` left a fragment attached, so `/settings#profile` was not `/settings`:
171
+ * it read as a shell's own page and moved the shell.
172
+ */
173
+ function pathOf(route) {
174
+ const end = route.search(/[?#]/);
175
+ return end === -1 ? route : route.slice(0, end);
176
+ }
162
177
  /**
163
178
  * Whether a page is worth remembering as a shell's.
164
179
  *
@@ -170,17 +185,30 @@ export function isRememberableRoute(route) {
170
185
  if (!route.startsWith('/')) {
171
186
  return false;
172
187
  }
173
- const path = route.split('?')[0];
174
- return ![
188
+ const path = pathOf(route);
189
+ return (![
175
190
  '/signin',
176
191
  '/signup',
177
192
  '/login',
178
193
  '/logout',
179
194
  '/oauth2',
180
195
  '/oauth',
181
- '/docs',
182
196
  '/join',
183
- ].some(prefix => path === prefix || path.startsWith(`${prefix}/`));
197
+ ].some(prefix => path === prefix || path.startsWith(`${prefix}/`)) &&
198
+ !isShellNeutralRoute(route));
199
+ }
200
+ /**
201
+ * Whether a page belongs to no shell: the settings, the documentation and
202
+ * the decks.
203
+ *
204
+ * They are read from whichever shell the reader is in — its sidebar stays
205
+ * beside them and the header's selector does not move — so they are never a
206
+ * shell's own page: opening one does not change the shell, and no shell
207
+ * returns to one.
208
+ */
209
+ export function isShellNeutralRoute(route) {
210
+ const path = pathOf(route);
211
+ return ['/settings', '/docs', '/decks'].some(prefix => path === prefix || path.startsWith(`${prefix}/`));
184
212
  }
185
213
  /**
186
214
  * The shell a route belongs to, read off its first segment.
@@ -190,16 +218,27 @@ export function isRememberableRoute(route) {
190
218
  * reached Home through a sidebar link while the toggle still said Agentify
191
219
  * had their Home pages filed under Agentify — and the toggle, seeing
192
220
  * "Agentify" already chosen, did nothing when they clicked it.
221
+ *
222
+ * A shell-neutral page (the settings, the documentation) has no shell of its
223
+ * own: given the shell the reader is in (`current`), that is the answer, so
224
+ * the sidebar and the header stay where they were. Without it the settings
225
+ * read as the Studio's and the documentation as Power's, as they once were.
193
226
  */
194
- export function viewForRoute(route) {
195
- const path = route.split('?')[0];
227
+ export function viewForRoute(route, current) {
228
+ const path = pathOf(route);
229
+ if (current && isShellNeutralRoute(route)) {
230
+ return current;
231
+ }
196
232
  // The root is the Studio: what a signed-in reader opens on. The settings
197
- // are read from it too, with its sidebar beside them.
233
+ // are read from it too, with its sidebar beside them — and so is the
234
+ // agentspecs catalogue, the specs an app is composed from.
198
235
  if (path === '/' ||
199
236
  path === '/studio' ||
200
237
  path.startsWith('/studio/') ||
201
238
  path === '/settings' ||
202
- path.startsWith('/settings/')) {
239
+ path.startsWith('/settings/') ||
240
+ path === '/agentspecs' ||
241
+ path.startsWith('/agentspecs/')) {
203
242
  return 'studio';
204
243
  }
205
244
  if (path === '/agentify' || path.startsWith('/agentify/')) {
@@ -208,6 +247,9 @@ export function viewForRoute(route) {
208
247
  if (path === '/admin' || path.startsWith('/admin/')) {
209
248
  return 'admin';
210
249
  }
250
+ if (path === '/loop' || path.startsWith('/loop/')) {
251
+ return 'loop';
252
+ }
211
253
  return 'home';
212
254
  }
213
255
  /** Whether a page may be the one a shell returns to. */
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import { AiAgentIcon } from '@datalayer/icons-react';
3
4
  import { Button, Heading, IconButton, Link, Text } from '@primer/react';
4
5
  import { Box } from '@datalayer/primer-addons';
5
- import { CheckIcon, CopyIcon, KeyIcon, PlugIcon, PulseIcon, ShareIcon, TelescopeIcon, ToolsIcon, } from '@primer/octicons-react';
6
+ import { CheckIcon, CopyIcon, KeyIcon, PulseIcon, RssIcon, ShieldCheckIcon, TelescopeIcon, ToolsIcon, } from '@primer/octicons-react';
6
7
  import { useConnectedAgents, useMcpActivity, useMcpMetrics, useTasks, } from '../../hooks/useMcp.js';
7
8
  import { useNavigate } from '../../hooks/index.js';
8
9
  import { useCoreStore, useIAMStore } from '../../state/index.js';
@@ -137,7 +138,7 @@ export const McpHome = ({ routes, clientDocsBase = '/docs/mcp-clients', showTitl
137
138
  display: 'grid',
138
139
  gap: 3,
139
140
  gridTemplateColumns: ['1fr', 'repeat(2, 1fr)', 'repeat(3, 1fr)'],
140
- }, children: [_jsx(Summary, { icon: PlugIcon, title: "Agents", to: routes.agents, onOpen: navigate, action: {
141
+ }, children: [_jsx(Summary, { icon: AiAgentIcon, title: "Agents", to: routes.agents, onOpen: navigate, action: {
141
142
  label: 'Connected agents',
142
143
  onClick: () => navigate(routes.agents),
143
144
  }, children: connected.length === 0 ? (_jsx(Text, { children: "No agent has been authorized yet. Set up a client above and approve the scopes it asks for." })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [plural(connected.length, 'agent'), " authorized."] }), connected.slice(0, 3).map(agent => (_jsxs(Text, { children: [agent.clientName || agent.clientId, " \u2014", ' ', agent.lastUsedAt
@@ -152,7 +153,7 @@ export const McpHome = ({ routes, clientDocsBase = '/docs/mcp-clients', showTitl
152
153
  : 'Latency not measured yet.' }), _jsx(Text, { children: metrics.data?.slis.availability === null ||
153
154
  metrics.data?.slis.availability === undefined
154
155
  ? 'Error rate not measured yet.'
155
- : `${((1 - metrics.data.slis.availability) * 100).toFixed(1)}% of calls failed.` })] }), _jsx(Summary, { icon: ToolsIcon, title: "Tools", children: _jsx(Text, { children: "The toolsets an agent may execute \u2014 the Contents sources you have enabled for it, their tools, their approval policy and their health \u2014 are managed here once toolset bindings ship." }) }), _jsx(Summary, { icon: ShareIcon, title: "Reach", children: _jsx(Text, { children: "Which notebooks and sources an agent can actually reach, as a list you can read at a glance, arrives with sharing to agents as principals." }) }), _jsx(Summary, { icon: KeyIcon, title: "Policies", to: routes.policies, onOpen: navigate, action: {
156
+ : `${((1 - metrics.data.slis.availability) * 100).toFixed(1)}% of calls failed.` })] }), _jsx(Summary, { icon: ToolsIcon, title: "Tools", children: _jsx(Text, { children: "The toolsets an agent may execute \u2014 the Contents sources you have enabled for it, their tools, their approval policy and their health \u2014 are managed here once toolset bindings ship." }) }), _jsx(Summary, { icon: RssIcon, title: "Reach", children: _jsx(Text, { children: "Which notebooks and sources an agent can actually reach, as a list you can read at a glance, arrives with sharing to agents as principals." }) }), _jsx(Summary, { icon: ShieldCheckIcon, title: "Policies", to: routes.policies, onOpen: navigate, action: {
156
157
  label: 'What applies',
157
158
  onClick: () => navigate(routes.policies),
158
159
  }, children: _jsx(Text, { children: "What your agents are allowed to do, and which layer decided each rule." }) })] }))] }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datalayer/core",
3
- "version": "1.2.13",
3
+ "version": "1.2.15",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  ".",
@@ -0,0 +1,188 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright (c) 2023-2025 Datalayer, Inc.
3
+ # Distributed under the terms of the Modified BSD License.
4
+
5
+ """
6
+ Write the Fluent Emoji drawings of the faces Datalayer offers (LOOP T-20).
7
+
8
+ Reads the emojis between the ``fluent-emoji:start`` and ``fluent-emoji:end``
9
+ markers of ``src/components/emoji/faceEmojis.ts``, finds each in Microsoft's
10
+ Fluent Emoji (MIT) at a pinned commit by the unicode its metadata gives, and
11
+ writes its *Flat* drawing as a module of its own under
12
+ ``src/components/emoji/fluent/svg/`` -- fetched on first draw, from
13
+ Datalayer's own bundle -- with ``loaders.ts`` naming them all and the licence
14
+ beside them. An emoji Fluent does not draw stops the script.
15
+
16
+ Run from the repository's root::
17
+
18
+ python scripts/generate-fluent-emoji.py [--cache DIR]
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ import argparse
24
+ import concurrent.futures
25
+ import json
26
+ import re
27
+ import urllib.parse
28
+ import urllib.request
29
+ from pathlib import Path
30
+
31
+ REPO = "microsoft/fluentui-emoji"
32
+ COMMIT = "1ffb34c752ecf5d402f04cfb4b392c77f57c54bc"
33
+ RAW = f"https://raw.githubusercontent.com/{REPO}/{COMMIT}/"
34
+ TREE = f"https://api.github.com/repos/{REPO}/git/trees/{COMMIT}?recursive=1"
35
+
36
+ ROOT = Path(__file__).resolve().parent.parent
37
+ LIST = ROOT / "src/components/emoji/faceEmojis.ts"
38
+ OUT = ROOT / "src/components/emoji/fluent"
39
+
40
+
41
+ def fetch(url: str) -> bytes:
42
+ """
43
+ Fetch a URL of GitHub's.
44
+
45
+ Parameters
46
+ ----------
47
+ url : str
48
+ The URL, at the pinned commit.
49
+
50
+ Returns
51
+ -------
52
+ bytes
53
+ Its body.
54
+ """
55
+ with urllib.request.urlopen(url, timeout=60) as response: # nosec B310
56
+ return response.read()
57
+
58
+
59
+ def cached(cache: Path | None, name: str, url: str) -> bytes:
60
+ """
61
+ Fetch a URL once, keeping it under ``cache`` when one is given.
62
+
63
+ Parameters
64
+ ----------
65
+ cache : Path or None
66
+ Where to keep what was fetched.
67
+ name : str
68
+ The file it is kept as.
69
+ url : str
70
+ The URL.
71
+
72
+ Returns
73
+ -------
74
+ bytes
75
+ Its body.
76
+ """
77
+ if cache is None:
78
+ return fetch(url)
79
+ path = cache / name
80
+ if not path.exists():
81
+ path.parent.mkdir(parents=True, exist_ok=True)
82
+ path.write_bytes(fetch(url))
83
+ return path.read_bytes()
84
+
85
+
86
+ def key_of(codes: list[int]) -> str:
87
+ """
88
+ Name a drawing as ``emojiKey`` does in ``faceEmojis.ts``.
89
+
90
+ Parameters
91
+ ----------
92
+ codes : list of int
93
+ The emoji's code points.
94
+
95
+ Returns
96
+ -------
97
+ str
98
+ Lower-case hexadecimal code points joined by ``-``, without U+FE0F.
99
+ """
100
+ return "-".join(f"{code:x}" for code in codes if code != 0xFE0F)
101
+
102
+
103
+ def main() -> None:
104
+ """Write the drawings, their loaders and the licence."""
105
+ parser = argparse.ArgumentParser(description=__doc__.splitlines()[1])
106
+ parser.add_argument("--cache", type=Path, help="keep what is fetched here")
107
+ args = parser.parse_args()
108
+
109
+ text = LIST.read_text(encoding="utf-8")
110
+ block = text.split("// fluent-emoji:start", 1)[1].split("// fluent-emoji:end", 1)[0]
111
+ emojis = re.findall(r"^\s*'([^']+)',", block, flags=re.M)
112
+ keys = list(dict.fromkeys(key_of([ord(c) for c in emoji]) for emoji in emojis))
113
+
114
+ tree = json.loads(cached(args.cache, "tree.json", TREE))["tree"]
115
+ paths = [item["path"] for item in tree if item["type"] == "blob"]
116
+ metadata = [p for p in paths if p.count("/") == 2 and p.endswith("/metadata.json")]
117
+
118
+ def read(path: str) -> tuple[str, dict]:
119
+ name = "meta/" + path.split("/")[1] + ".json"
120
+ return path.split("/")[1], json.loads(cached(args.cache, name, RAW + urllib.parse.quote(path)))
121
+
122
+ with concurrent.futures.ThreadPoolExecutor(16) as pool:
123
+ folders = dict(pool.map(read, metadata))
124
+ by_key = {
125
+ key_of([int(code, 16) for code in meta.get("unicode", "").split()]): (folder, meta)
126
+ for folder, meta in folders.items()
127
+ }
128
+
129
+ missing = [key for key in keys if key not in by_key]
130
+ if missing:
131
+ raise SystemExit(f"Fluent Emoji draws none of: {', '.join(missing)}")
132
+
133
+ (OUT / "svg").mkdir(parents=True, exist_ok=True)
134
+ for stale in (OUT / "svg").glob("*.ts"):
135
+ stale.unlink()
136
+ (OUT / "LICENSE").write_bytes(cached(args.cache, "LICENSE", RAW + "LICENSE"))
137
+
138
+ loaders = []
139
+ for key in keys:
140
+ folder, meta = by_key[key]
141
+ # The one drawing, or, for an emoji with skin tones, the default's.
142
+ flat = [
143
+ p
144
+ for p in paths
145
+ if p.startswith(f"assets/{folder}/Flat/")
146
+ or p.startswith(f"assets/{folder}/Default/Flat/")
147
+ ]
148
+ flat = [p for p in flat if p.endswith(".svg")]
149
+ if len(flat) != 1:
150
+ raise SystemExit(f"{folder}: {len(flat)} Flat drawings, not one")
151
+ svg = cached(args.cache, f"svg/{key}.svg", RAW + urllib.parse.quote(flat[0])).decode("utf-8")
152
+ svg = re.sub(r"\s*\n\s*", " ", svg.strip())
153
+ # In single quotes, as prettier writes a string with no quote of its own.
154
+ quoted = "'" + svg.replace("\\", "\\\\").replace("'", "\\'") + "'"
155
+ (OUT / "svg" / f"{key}.ts").write_text(
156
+ "/*\n"
157
+ f" * {meta['glyph']} {meta.get('cldr', folder)} — Fluent Emoji, Flat, by Microsoft (MIT,\n"
158
+ " * see ../LICENSE). Written by scripts/generate-fluent-emoji.py: do not edit.\n"
159
+ " */\n\n"
160
+ f"export default {quoted};\n",
161
+ encoding="utf-8",
162
+ )
163
+ loaders.append(f" '{key}': () => import('./svg/{key}'),")
164
+
165
+ (OUT / "loaders.ts").write_text(
166
+ "/*\n"
167
+ " * Copyright (c) 2023-2025 Datalayer, Inc.\n"
168
+ " * Distributed under the terms of the Modified BSD License.\n"
169
+ " */\n\n"
170
+ "/**\n"
171
+ " * The Fluent Emoji drawings Datalayer ships, by `emojiKey`, each a module\n"
172
+ " * of its own, fetched the first time it is drawn. The drawings are\n"
173
+ f" * Microsoft's Fluent Emoji (MIT, see ./LICENSE), at {REPO}@{COMMIT[:12]}.\n"
174
+ " * Written by scripts/generate-fluent-emoji.py: do not edit.\n"
175
+ " *\n"
176
+ " * @module components/emoji/fluent/loaders\n"
177
+ " */\n\n"
178
+ f"export const FLUENT_EMOJI_COMMIT = '{COMMIT}';\n\n"
179
+ "export const FLUENT_EMOJI_LOADERS: Readonly<\n"
180
+ " Record<string, () => Promise<{ default: string }>>\n"
181
+ "> = {\n" + "\n".join(loaders) + "\n};\n",
182
+ encoding="utf-8",
183
+ )
184
+ print(f"{len(keys)} drawings written to {OUT.relative_to(ROOT)}")
185
+
186
+
187
+ if __name__ == "__main__":
188
+ main()