@elastic/isomer-studio 0.0.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/LICENSE.txt +93 -0
  2. package/NOTICE.txt +17329 -0
  3. package/README.md +64 -0
  4. package/THIRD_PARTY_LICENSES.md +404 -0
  5. package/bin/isomer-studio.js +10 -0
  6. package/dist/app/assets/codicon-5T574S7B.ttf +0 -0
  7. package/dist/app/assets/editor.worker.js +11 -0
  8. package/dist/app/assets/esbuild.wasm +0 -0
  9. package/dist/app/assets/json.worker.js +47 -0
  10. package/dist/app/assets/slack.css +1 -0
  11. package/dist/app/assets/studio.css +11 -0
  12. package/dist/app/assets/ts.worker.js +37029 -0
  13. package/dist/app/index.html +16 -0
  14. package/dist/apps/app_host.d.ts +8 -0
  15. package/dist/apps/app_host.d.ts.map +1 -0
  16. package/dist/apps/app_host.js +73 -0
  17. package/dist/apps/app_host.js.map +1 -0
  18. package/dist/browser/dev_host.d.ts +5 -0
  19. package/dist/browser/dev_host.d.ts.map +1 -0
  20. package/dist/browser/dev_host.js +46 -0
  21. package/dist/browser/dev_host.js.map +1 -0
  22. package/dist/browser/mount.d.ts +16 -0
  23. package/dist/browser/mount.d.ts.map +1 -0
  24. package/dist/browser/mount.js +37 -0
  25. package/dist/browser/mount.js.map +1 -0
  26. package/dist/browser/static_host.d.ts +5 -0
  27. package/dist/browser/static_host.d.ts.map +1 -0
  28. package/dist/browser/static_host.js +55 -0
  29. package/dist/browser/static_host.js.map +1 -0
  30. package/dist/chrome/accent.d.ts +14 -0
  31. package/dist/chrome/accent.d.ts.map +1 -0
  32. package/dist/chrome/accent.js +31 -0
  33. package/dist/chrome/accent.js.map +1 -0
  34. package/dist/chrome/app_pages.d.ts +13 -0
  35. package/dist/chrome/app_pages.d.ts.map +1 -0
  36. package/dist/chrome/app_pages.js +33 -0
  37. package/dist/chrome/app_pages.js.map +1 -0
  38. package/dist/chrome/color_mode.d.ts +10 -0
  39. package/dist/chrome/color_mode.d.ts.map +1 -0
  40. package/dist/chrome/color_mode.js +45 -0
  41. package/dist/chrome/color_mode.js.map +1 -0
  42. package/dist/chrome/dev_tint.d.ts +7 -0
  43. package/dist/chrome/dev_tint.d.ts.map +1 -0
  44. package/dist/chrome/dev_tint.js +31 -0
  45. package/dist/chrome/dev_tint.js.map +1 -0
  46. package/dist/chrome/header.d.ts +20 -0
  47. package/dist/chrome/header.d.ts.map +1 -0
  48. package/dist/chrome/header.js +124 -0
  49. package/dist/chrome/header.js.map +1 -0
  50. package/dist/chrome/icon_data_uri.d.ts +12 -0
  51. package/dist/chrome/icon_data_uri.d.ts.map +1 -0
  52. package/dist/chrome/icon_data_uri.js +21 -0
  53. package/dist/chrome/icon_data_uri.js.map +1 -0
  54. package/dist/chrome/isomer_mark.d.ts +17 -0
  55. package/dist/chrome/isomer_mark.d.ts.map +1 -0
  56. package/dist/chrome/isomer_mark.js +46 -0
  57. package/dist/chrome/isomer_mark.js.map +1 -0
  58. package/dist/chrome/nav.d.ts +22 -0
  59. package/dist/chrome/nav.d.ts.map +1 -0
  60. package/dist/chrome/nav.js +306 -0
  61. package/dist/chrome/nav.js.map +1 -0
  62. package/dist/chrome/nav_groups.d.ts +6 -0
  63. package/dist/chrome/nav_groups.d.ts.map +1 -0
  64. package/dist/chrome/nav_groups.js +48 -0
  65. package/dist/chrome/nav_groups.js.map +1 -0
  66. package/dist/chrome/nav_sections.d.ts +29 -0
  67. package/dist/chrome/nav_sections.d.ts.map +1 -0
  68. package/dist/chrome/nav_sections.js +55 -0
  69. package/dist/chrome/nav_sections.js.map +1 -0
  70. package/dist/chrome/oklch.d.ts +10 -0
  71. package/dist/chrome/oklch.d.ts.map +1 -0
  72. package/dist/chrome/oklch.js +61 -0
  73. package/dist/chrome/oklch.js.map +1 -0
  74. package/dist/chrome/primitive_glyph.d.ts +14 -0
  75. package/dist/chrome/primitive_glyph.d.ts.map +1 -0
  76. package/dist/chrome/primitive_glyph.js +48 -0
  77. package/dist/chrome/primitive_glyph.js.map +1 -0
  78. package/dist/chrome/primitive_heading.d.ts +14 -0
  79. package/dist/chrome/primitive_heading.d.ts.map +1 -0
  80. package/dist/chrome/primitive_heading.js +32 -0
  81. package/dist/chrome/primitive_heading.js.map +1 -0
  82. package/dist/chrome/primitive_peek.d.ts +8 -0
  83. package/dist/chrome/primitive_peek.d.ts.map +1 -0
  84. package/dist/chrome/primitive_peek.js +51 -0
  85. package/dist/chrome/primitive_peek.js.map +1 -0
  86. package/dist/chrome/primitive_search.d.ts +9 -0
  87. package/dist/chrome/primitive_search.d.ts.map +1 -0
  88. package/dist/chrome/primitive_search.js +93 -0
  89. package/dist/chrome/primitive_search.js.map +1 -0
  90. package/dist/chrome/route.d.ts +48 -0
  91. package/dist/chrome/route.d.ts.map +1 -0
  92. package/dist/chrome/route.js +136 -0
  93. package/dist/chrome/route.js.map +1 -0
  94. package/dist/cli/args.d.ts +39 -0
  95. package/dist/cli/args.d.ts.map +1 -0
  96. package/dist/cli/args.js +171 -0
  97. package/dist/cli/args.js.map +1 -0
  98. package/dist/cli/run.d.ts +15 -0
  99. package/dist/cli/run.d.ts.map +1 -0
  100. package/dist/cli/run.js +113 -0
  101. package/dist/cli/run.js.map +1 -0
  102. package/dist/cli.d.ts +2 -0
  103. package/dist/cli.d.ts.map +1 -0
  104. package/dist/cli.js +22 -0
  105. package/dist/cli.js.map +1 -0
  106. package/dist/config.d.ts +118 -0
  107. package/dist/config.d.ts.map +1 -0
  108. package/dist/config.js +11 -0
  109. package/dist/config.js.map +1 -0
  110. package/dist/dev/code_editor.d.ts +10 -0
  111. package/dist/dev/code_editor.d.ts.map +1 -0
  112. package/dist/dev/code_editor.js +22 -0
  113. package/dist/dev/code_editor.js.map +1 -0
  114. package/dist/dev/dev_view.d.ts +9 -0
  115. package/dist/dev/dev_view.d.ts.map +1 -0
  116. package/dist/dev/dev_view.js +65 -0
  117. package/dist/dev/dev_view.js.map +1 -0
  118. package/dist/dev/editor_panel.d.ts +17 -0
  119. package/dist/dev/editor_panel.d.ts.map +1 -0
  120. package/dist/dev/editor_panel.js +51 -0
  121. package/dist/dev/editor_panel.js.map +1 -0
  122. package/dist/dev/monaco_editor.d.ts +15 -0
  123. package/dist/dev/monaco_editor.d.ts.map +1 -0
  124. package/dist/dev/monaco_editor.js +159 -0
  125. package/dist/dev/monaco_editor.js.map +1 -0
  126. package/dist/dev/preview_panel.d.ts +10 -0
  127. package/dist/dev/preview_panel.d.ts.map +1 -0
  128. package/dist/dev/preview_panel.js +45 -0
  129. package/dist/dev/preview_panel.js.map +1 -0
  130. package/dist/dev/prop_reference.d.ts +9 -0
  131. package/dist/dev/prop_reference.d.ts.map +1 -0
  132. package/dist/dev/prop_reference.js +134 -0
  133. package/dist/dev/prop_reference.js.map +1 -0
  134. package/dist/dev/tsx_language.d.ts +10 -0
  135. package/dist/dev/tsx_language.d.ts.map +1 -0
  136. package/dist/dev/tsx_language.js +283 -0
  137. package/dist/dev/tsx_language.js.map +1 -0
  138. package/dist/dev/use_editor.d.ts +23 -0
  139. package/dist/dev/use_editor.d.ts.map +1 -0
  140. package/dist/dev/use_editor.js +124 -0
  141. package/dist/dev/use_editor.js.map +1 -0
  142. package/dist/docs/docs_view.d.ts +10 -0
  143. package/dist/docs/docs_view.d.ts.map +1 -0
  144. package/dist/docs/docs_view.js +80 -0
  145. package/dist/docs/docs_view.js.map +1 -0
  146. package/dist/docs/example_source.d.ts +7 -0
  147. package/dist/docs/example_source.d.ts.map +1 -0
  148. package/dist/docs/example_source.js +56 -0
  149. package/dist/docs/example_source.js.map +1 -0
  150. package/dist/docs/examples_panel.d.ts +10 -0
  151. package/dist/docs/examples_panel.d.ts.map +1 -0
  152. package/dist/docs/examples_panel.js +51 -0
  153. package/dist/docs/examples_panel.js.map +1 -0
  154. package/dist/docs/gallery_view.d.ts +9 -0
  155. package/dist/docs/gallery_view.d.ts.map +1 -0
  156. package/dist/docs/gallery_view.js +98 -0
  157. package/dist/docs/gallery_view.js.map +1 -0
  158. package/dist/docs/inline_code.d.ts +11 -0
  159. package/dist/docs/inline_code.d.ts.map +1 -0
  160. package/dist/docs/inline_code.js +24 -0
  161. package/dist/docs/inline_code.js.map +1 -0
  162. package/dist/docs/on_this_page.d.ts +17 -0
  163. package/dist/docs/on_this_page.d.ts.map +1 -0
  164. package/dist/docs/on_this_page.js +77 -0
  165. package/dist/docs/on_this_page.js.map +1 -0
  166. package/dist/docs/props_table.d.ts +14 -0
  167. package/dist/docs/props_table.d.ts.map +1 -0
  168. package/dist/docs/props_table.js +34 -0
  169. package/dist/docs/props_table.js.map +1 -0
  170. package/dist/home/apps_section.d.ts +6 -0
  171. package/dist/home/apps_section.d.ts.map +1 -0
  172. package/dist/home/apps_section.js +44 -0
  173. package/dist/home/apps_section.js.map +1 -0
  174. package/dist/home/featured_strip.d.ts +12 -0
  175. package/dist/home/featured_strip.d.ts.map +1 -0
  176. package/dist/home/featured_strip.js +176 -0
  177. package/dist/home/featured_strip.js.map +1 -0
  178. package/dist/home/home_view.d.ts +11 -0
  179. package/dist/home/home_view.d.ts.map +1 -0
  180. package/dist/home/home_view.js +261 -0
  181. package/dist/home/home_view.js.map +1 -0
  182. package/dist/home/links.d.ts +8 -0
  183. package/dist/home/links.d.ts.map +1 -0
  184. package/dist/home/links.js +14 -0
  185. package/dist/home/links.js.map +1 -0
  186. package/dist/home/loaded_panel.d.ts +6 -0
  187. package/dist/home/loaded_panel.d.ts.map +1 -0
  188. package/dist/home/loaded_panel.js +116 -0
  189. package/dist/home/loaded_panel.js.map +1 -0
  190. package/dist/home/surface_chart.d.ts +6 -0
  191. package/dist/home/surface_chart.d.ts.map +1 -0
  192. package/dist/home/surface_chart.js +263 -0
  193. package/dist/home/surface_chart.js.map +1 -0
  194. package/dist/home/tokens.d.ts +49 -0
  195. package/dist/home/tokens.d.ts.map +1 -0
  196. package/dist/home/tokens.js +171 -0
  197. package/dist/home/tokens.js.map +1 -0
  198. package/dist/index.d.ts +6 -0
  199. package/dist/index.d.ts.map +1 -0
  200. package/dist/index.js +9 -0
  201. package/dist/index.js.map +1 -0
  202. package/dist/model/app_problems.d.ts +4 -0
  203. package/dist/model/app_problems.d.ts.map +1 -0
  204. package/dist/model/app_problems.js +90 -0
  205. package/dist/model/app_problems.js.map +1 -0
  206. package/dist/model/authoring_types.d.ts +23 -0
  207. package/dist/model/authoring_types.d.ts.map +1 -0
  208. package/dist/model/authoring_types.js +35 -0
  209. package/dist/model/authoring_types.js.map +1 -0
  210. package/dist/model/compile_jsx.d.ts +19 -0
  211. package/dist/model/compile_jsx.d.ts.map +1 -0
  212. package/dist/model/compile_jsx.js +55 -0
  213. package/dist/model/compile_jsx.js.map +1 -0
  214. package/dist/model/compose_example.d.ts +9 -0
  215. package/dist/model/compose_example.d.ts.map +1 -0
  216. package/dist/model/compose_example.js +24 -0
  217. package/dist/model/compose_example.js.map +1 -0
  218. package/dist/model/composition_key.d.ts +6 -0
  219. package/dist/model/composition_key.d.ts.map +1 -0
  220. package/dist/model/composition_key.js +26 -0
  221. package/dist/model/composition_key.js.map +1 -0
  222. package/dist/model/describe_runtime.d.ts +33 -0
  223. package/dist/model/describe_runtime.d.ts.map +1 -0
  224. package/dist/model/describe_runtime.js +77 -0
  225. package/dist/model/describe_runtime.js.map +1 -0
  226. package/dist/model/featured.d.ts +11 -0
  227. package/dist/model/featured.d.ts.map +1 -0
  228. package/dist/model/featured.js +70 -0
  229. package/dist/model/featured.js.map +1 -0
  230. package/dist/model/jsx_transform.d.ts +10 -0
  231. package/dist/model/jsx_transform.d.ts.map +1 -0
  232. package/dist/model/jsx_transform.js +31 -0
  233. package/dist/model/jsx_transform.js.map +1 -0
  234. package/dist/model/png_manifest.d.ts +23 -0
  235. package/dist/model/png_manifest.d.ts.map +1 -0
  236. package/dist/model/png_manifest.js +26 -0
  237. package/dist/model/png_manifest.js.map +1 -0
  238. package/dist/model/read_examples.d.ts +12 -0
  239. package/dist/model/read_examples.d.ts.map +1 -0
  240. package/dist/model/read_examples.js +43 -0
  241. package/dist/model/read_examples.js.map +1 -0
  242. package/dist/model/search.d.ts +4 -0
  243. package/dist/model/search.d.ts.map +1 -0
  244. package/dist/model/search.js +29 -0
  245. package/dist/model/search.js.map +1 -0
  246. package/dist/model/sha256.d.ts +3 -0
  247. package/dist/model/sha256.d.ts.map +1 -0
  248. package/dist/model/sha256.js +72 -0
  249. package/dist/model/sha256.js.map +1 -0
  250. package/dist/model/slack_limits.d.ts +9 -0
  251. package/dist/model/slack_limits.d.ts.map +1 -0
  252. package/dist/model/slack_limits.js +213 -0
  253. package/dist/model/slack_limits.js.map +1 -0
  254. package/dist/node/app_bundle.d.ts +45 -0
  255. package/dist/node/app_bundle.d.ts.map +1 -0
  256. package/dist/node/app_bundle.js +212 -0
  257. package/dist/node/app_bundle.js.map +1 -0
  258. package/dist/node/build_site.d.ts +28 -0
  259. package/dist/node/build_site.d.ts.map +1 -0
  260. package/dist/node/build_site.js +90 -0
  261. package/dist/node/build_site.js.map +1 -0
  262. package/dist/node/check.d.ts +40 -0
  263. package/dist/node/check.d.ts.map +1 -0
  264. package/dist/node/check.js +162 -0
  265. package/dist/node/check.js.map +1 -0
  266. package/dist/node/dev_bundle.d.ts +21 -0
  267. package/dist/node/dev_bundle.d.ts.map +1 -0
  268. package/dist/node/dev_bundle.js +121 -0
  269. package/dist/node/dev_bundle.js.map +1 -0
  270. package/dist/node/dev_server.d.ts +16 -0
  271. package/dist/node/dev_server.d.ts.map +1 -0
  272. package/dist/node/dev_server.js +291 -0
  273. package/dist/node/dev_server.js.map +1 -0
  274. package/dist/node/init_config.d.ts +30 -0
  275. package/dist/node/init_config.d.ts.map +1 -0
  276. package/dist/node/init_config.js +158 -0
  277. package/dist/node/init_config.js.map +1 -0
  278. package/dist/node/load_config.d.ts +34 -0
  279. package/dist/node/load_config.d.ts.map +1 -0
  280. package/dist/node/load_config.js +246 -0
  281. package/dist/node/load_config.js.map +1 -0
  282. package/dist/node/project_resolution.d.ts +17 -0
  283. package/dist/node/project_resolution.d.ts.map +1 -0
  284. package/dist/node/project_resolution.js +66 -0
  285. package/dist/node/project_resolution.js.map +1 -0
  286. package/dist/node/rasterize.d.ts +23 -0
  287. package/dist/node/rasterize.d.ts.map +1 -0
  288. package/dist/node/rasterize.js +79 -0
  289. package/dist/node/rasterize.js.map +1 -0
  290. package/dist/node/report.d.ts +8 -0
  291. package/dist/node/report.d.ts.map +1 -0
  292. package/dist/node/report.js +57 -0
  293. package/dist/node/report.js.map +1 -0
  294. package/dist/node/resolve_hooks.d.ts +16 -0
  295. package/dist/node/resolve_hooks.d.ts.map +1 -0
  296. package/dist/node/resolve_hooks.js +104 -0
  297. package/dist/node/resolve_hooks.js.map +1 -0
  298. package/dist/studio.d.ts +4 -0
  299. package/dist/studio.d.ts.map +1 -0
  300. package/dist/studio.js +188 -0
  301. package/dist/studio.js.map +1 -0
  302. package/dist/studio_context.d.ts +27 -0
  303. package/dist/studio_context.d.ts.map +1 -0
  304. package/dist/studio_context.js +17 -0
  305. package/dist/studio_context.js.map +1 -0
  306. package/dist/surfaces/adopt_stylesheet.d.ts +7 -0
  307. package/dist/surfaces/adopt_stylesheet.d.ts.map +1 -0
  308. package/dist/surfaces/adopt_stylesheet.js +64 -0
  309. package/dist/surfaces/adopt_stylesheet.js.map +1 -0
  310. package/dist/surfaces/app_preview.d.ts +4 -0
  311. package/dist/surfaces/app_preview.d.ts.map +1 -0
  312. package/dist/surfaces/app_preview.js +28 -0
  313. package/dist/surfaces/app_preview.js.map +1 -0
  314. package/dist/surfaces/app_surface.d.ts +9 -0
  315. package/dist/surfaces/app_surface.d.ts.map +1 -0
  316. package/dist/surfaces/app_surface.js +27 -0
  317. package/dist/surfaces/app_surface.js.map +1 -0
  318. package/dist/surfaces/applicable_enhancements.d.ts +4 -0
  319. package/dist/surfaces/applicable_enhancements.d.ts.map +1 -0
  320. package/dist/surfaces/applicable_enhancements.js +16 -0
  321. package/dist/surfaces/applicable_enhancements.js.map +1 -0
  322. package/dist/surfaces/enhancement_select.d.ts +10 -0
  323. package/dist/surfaces/enhancement_select.d.ts.map +1 -0
  324. package/dist/surfaces/enhancement_select.js +28 -0
  325. package/dist/surfaces/enhancement_select.js.map +1 -0
  326. package/dist/surfaces/example_picker.d.ts +11 -0
  327. package/dist/surfaces/example_picker.d.ts.map +1 -0
  328. package/dist/surfaces/example_picker.js +44 -0
  329. package/dist/surfaces/example_picker.js.map +1 -0
  330. package/dist/surfaces/format_source.d.ts +4 -0
  331. package/dist/surfaces/format_source.d.ts.map +1 -0
  332. package/dist/surfaces/format_source.js +30 -0
  333. package/dist/surfaces/format_source.js.map +1 -0
  334. package/dist/surfaces/html_surface.d.ts +14 -0
  335. package/dist/surfaces/html_surface.d.ts.map +1 -0
  336. package/dist/surfaces/html_surface.js +122 -0
  337. package/dist/surfaces/html_surface.js.map +1 -0
  338. package/dist/surfaces/png_surface.d.ts +13 -0
  339. package/dist/surfaces/png_surface.d.ts.map +1 -0
  340. package/dist/surfaces/png_surface.js +68 -0
  341. package/dist/surfaces/png_surface.js.map +1 -0
  342. package/dist/surfaces/react_surface.d.ts +11 -0
  343. package/dist/surfaces/react_surface.d.ts.map +1 -0
  344. package/dist/surfaces/react_surface.js +55 -0
  345. package/dist/surfaces/react_surface.js.map +1 -0
  346. package/dist/surfaces/render_output.d.ts +31 -0
  347. package/dist/surfaces/render_output.d.ts.map +1 -0
  348. package/dist/surfaces/render_output.js +119 -0
  349. package/dist/surfaces/render_output.js.map +1 -0
  350. package/dist/surfaces/scaled_preview.d.ts +17 -0
  351. package/dist/surfaces/scaled_preview.d.ts.map +1 -0
  352. package/dist/surfaces/scaled_preview.js +74 -0
  353. package/dist/surfaces/scaled_preview.js.map +1 -0
  354. package/dist/surfaces/shadow_root.d.ts +8 -0
  355. package/dist/surfaces/shadow_root.d.ts.map +1 -0
  356. package/dist/surfaces/shadow_root.js +41 -0
  357. package/dist/surfaces/shadow_root.js.map +1 -0
  358. package/dist/surfaces/slack_surface.d.ts +12 -0
  359. package/dist/surfaces/slack_surface.d.ts.map +1 -0
  360. package/dist/surfaces/slack_surface.js +27 -0
  361. package/dist/surfaces/slack_surface.js.map +1 -0
  362. package/dist/surfaces/snapshot_surface.d.ts +6 -0
  363. package/dist/surfaces/snapshot_surface.d.ts.map +1 -0
  364. package/dist/surfaces/snapshot_surface.js +5 -0
  365. package/dist/surfaces/snapshot_surface.js.map +1 -0
  366. package/dist/surfaces/surface_board.d.ts +19 -0
  367. package/dist/surfaces/surface_board.d.ts.map +1 -0
  368. package/dist/surfaces/surface_board.js +128 -0
  369. package/dist/surfaces/surface_board.js.map +1 -0
  370. package/dist/surfaces/surface_frame.d.ts +8 -0
  371. package/dist/surfaces/surface_frame.d.ts.map +1 -0
  372. package/dist/surfaces/surface_frame.js +4 -0
  373. package/dist/surfaces/surface_frame.js.map +1 -0
  374. package/dist/surfaces/surface_logos.d.ts +9 -0
  375. package/dist/surfaces/surface_logos.d.ts.map +1 -0
  376. package/dist/surfaces/surface_logos.js +21 -0
  377. package/dist/surfaces/surface_logos.js.map +1 -0
  378. package/dist/surfaces/surface_preview.d.ts +32 -0
  379. package/dist/surfaces/surface_preview.d.ts.map +1 -0
  380. package/dist/surfaces/surface_preview.js +66 -0
  381. package/dist/surfaces/surface_preview.js.map +1 -0
  382. package/dist/surfaces/surface_select.d.ts +34 -0
  383. package/dist/surfaces/surface_select.d.ts.map +1 -0
  384. package/dist/surfaces/surface_select.js +119 -0
  385. package/dist/surfaces/surface_select.js.map +1 -0
  386. package/dist/surfaces/text_surfaces.d.ts +14 -0
  387. package/dist/surfaces/text_surfaces.d.ts.map +1 -0
  388. package/dist/surfaces/text_surfaces.js +31 -0
  389. package/dist/surfaces/text_surfaces.js.map +1 -0
  390. package/dist/surfaces/zoom_select.d.ts +9 -0
  391. package/dist/surfaces/zoom_select.d.ts.map +1 -0
  392. package/dist/surfaces/zoom_select.js +32 -0
  393. package/dist/surfaces/zoom_select.js.map +1 -0
  394. package/dist/types.d.ts +32 -0
  395. package/dist/types.d.ts.map +1 -0
  396. package/dist/types.js +9 -0
  397. package/dist/types.js.map +1 -0
  398. package/docs/ci.md +55 -0
  399. package/docs/commands.md +167 -0
  400. package/docs/config.md +192 -0
  401. package/docs/images/home.png +0 -0
  402. package/docs/images/reference.png +0 -0
  403. package/docs/images/workbench.png +0 -0
  404. package/docs/index.md +96 -0
  405. package/docs/toc.yml +10 -0
  406. package/package.json +89 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav.js","sourceRoot":"","sources":["../../src/chrome/nav.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport type { ReactNode } from 'react';\nimport React, { useMemo, useState } from 'react';\nimport {\n EuiButtonIcon,\n EuiFieldSearch,\n EuiIcon,\n transparentize,\n useEuiScrollBar,\n useEuiTheme,\n} from '@elastic/eui';\nimport type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\n\nimport type { StudioApp, StudioAppPage } from '../config';\nimport { searchPrimitives } from '../model/search';\nimport { useStudio } from '../studio_context';\n\nimport type { Accent } from './accent';\nimport { useAccent } from './accent';\nimport { activeAppPage, appPageSections, filterAppPages } from './app_pages';\nimport { useClosedNavGroups } from './nav_groups';\nimport { navPacks } from './nav_sections';\nimport { Glyph, PrimitiveGlyph } from './primitive_glyph';\nimport { PrimitivePeek } from './primitive_peek';\nimport type { StudioMode } from './route';\nimport { GALLERY } from './route';\n\nexport const NAV_WIDTH = {\n open: 272,\n closed: 72,\n compactAt: 1120,\n} as const;\n\nconst NAV_GLYPH_SIZE = 17;\nconst ROW_HEIGHT = 32;\nconst ROW_GAP = 4;\nconst HOVER_ROW = 'rgba(255, 255, 255, 0.08)';\nconst ACTIVE_LABEL = '#FFFFFF';\nconst LABEL = 'rgba(255, 255, 255, 0.86)';\nconst GROUP_LABEL = 'rgba(255, 255, 255, 0.6)';\nconst GLYPH_OPACITY = 0.6;\n\n/** Clears the group header's inset, chevron, and gap, then indents a further `s`. */\nconst itemInset = ({ xs, m }: { xs: string; m: string }) =>\n `calc(${xs} + ${m} + ${xs})`;\n\n/** Lines an app's pages up with its label, past its glyph and gap. */\nconst pageInset = ({ m, s }: { m: string; s: string }) =>\n `calc(${m} + ${NAV_GLYPH_SIZE}px + ${s})`;\n\n/** An accent tint behind the active entry, with a bar on its leading edge. */\nconst activeMark = ({ bright }: Accent): SerializedStyles => css`\n background: ${transparentize(bright, 0.18)};\n box-shadow: inset 2px 0 0 ${bright};\n color: ${ACTIVE_LABEL};\n`;\n\nconst NavIcon = ({\n isActive,\n isRail = false,\n children,\n}: {\n isActive: boolean;\n isRail?: boolean;\n children: ReactNode;\n}) => (\n <span\n css={css`\n display: inline-flex;\n flex: none;\n opacity: ${isActive || isRail ? 1 : GLYPH_OPACITY};\n `}>\n {children}\n </span>\n);\n\nexport interface StudioNavProps {\n mode: StudioMode;\n page: string;\n /** The open app's id; while one is open, no primitive is active. */\n app?: string | undefined;\n /** The open app's `path`, which picks its active page. */\n appPath?: string | undefined;\n isOpen: boolean;\n isCompact?: boolean | undefined;\n onToggle: () => void;\n onSelect: (page: string) => void;\n onSelectApp: (id: string, path?: string) => void;\n}\n\ninterface NavItem {\n id: string;\n label: string;\n icon?: React.ReactElement | undefined;\n isPrimitive: boolean;\n}\n\nconst GALLERY_ITEM: NavItem = {\n id: GALLERY,\n label: 'Gallery',\n icon: (\n <EuiIcon\n type=\"grid\"\n css={css`\n inline-size: ${NAV_GLYPH_SIZE}px;\n block-size: ${NAV_GLYPH_SIZE}px;\n `}\n aria-hidden\n />\n ),\n isPrimitive: false,\n};\n\nconst withPeek = ({ id, isPrimitive }: NavItem, element: React.ReactElement) =>\n isPrimitive ? <PrimitivePeek type={id}>{element}</PrimitivePeek> : element;\n\nconst RailEntry = ({\n item,\n isActive,\n accent,\n onSelect,\n}: {\n item: NavItem;\n isActive: boolean;\n accent: Accent;\n onSelect: (page: string) => void;\n}) => {\n const { id, label, icon } = item;\n return withPeek(\n item,\n <EuiButtonIcon\n display=\"empty\"\n size=\"s\"\n color=\"text\"\n iconType={() => (\n <NavIcon {...{ isActive }} isRail>\n {icon}\n </NavIcon>\n )}\n css={css`\n flex: none;\n inline-size: ${ROW_HEIGHT}px;\n block-size: ${ROW_HEIGHT}px;\n color: ${ACTIVE_LABEL};\n ${isActive ? activeMark(accent) : ''}\n `}\n aria-label={label}\n aria-current={isActive ? 'page' : undefined}\n onClick={() => onSelect(id)}\n />\n );\n};\n\nconst Row = ({\n item,\n isActive,\n accent,\n onSelect,\n inset,\n children,\n}: {\n item: NavItem;\n isActive: boolean;\n accent: Accent;\n onSelect: (page: string) => void;\n /** Defaults to {@link itemInset}. */\n inset?: string | undefined;\n /** Rendered after the row's button, inside its list item. */\n children?: ReactNode;\n}) => {\n const { euiTheme } = useEuiTheme();\n const { id, label, icon } = item;\n\n return (\n <li\n css={css`\n flex: none;\n `}>\n {withPeek(\n item,\n <button\n type=\"button\"\n aria-current={isActive ? 'page' : undefined}\n onClick={() => onSelect(id)}\n css={css`\n display: flex;\n align-items: center;\n gap: ${euiTheme.size.s};\n inline-size: 100%;\n block-size: ${ROW_HEIGHT}px;\n padding-inline: ${inset ?? itemInset(euiTheme.size)}\n ${euiTheme.size.s};\n border-radius: ${euiTheme.border.radius.small};\n color: ${LABEL};\n font-size: 14px;\n font-weight: ${euiTheme.font.weight.regular};\n text-align: start;\n\n &:hover {\n background: ${HOVER_ROW};\n color: ${ACTIVE_LABEL};\n }\n\n ${isActive ? activeMark(accent) : ''}\n\n &:focus-visible {\n outline: ${euiTheme.focus.width} solid ${accent.bright};\n outline-offset: -${euiTheme.focus.width};\n }\n `}>\n {icon ? <NavIcon {...{ isActive }}>{icon}</NavIcon> : null}\n <span\n css={css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `}>\n {label}\n </span>\n </button>\n )}\n {children}\n </li>\n );\n};\n\nconst subList = (gap: number) => css`\n display: flex;\n flex-direction: column;\n gap: ${gap}px;\n margin: ${gap}px 0 0;\n padding: 0;\n list-style: none;\n`;\n\nconst appItem = ({ id, title, icon }: StudioApp): NavItem => ({\n id,\n label: title,\n icon: <Glyph svg={icon?.svg} label={title} size={NAV_GLYPH_SIZE} />,\n isPrimitive: false,\n});\n\n/** An app's row, with its pages under it in their sections. */\nconst AppRow = ({\n app,\n openApp,\n appPath,\n filter,\n accent,\n onSelectApp,\n}: {\n app: StudioApp;\n /** The open app's id. */\n openApp: string | undefined;\n appPath: string;\n filter: string;\n accent: Accent;\n onSelectApp: (id: string, path?: string) => void;\n}) => {\n const { euiTheme } = useEuiTheme();\n const { id, title, pages = [] } = app;\n const item = useMemo(() => appItem(app), [app]);\n const isOpen = openApp === id;\n const active = isOpen ? activeAppPage(pages, appPath) : undefined;\n const sections = appPageSections(filterAppPages(pages, filter));\n const inset = pageInset(euiTheme.size);\n const pageRows = (listed: readonly StudioAppPage[]) =>\n listed.map(({ path, title: label }) => (\n <Row\n key={path}\n item={{ id: path, label, isPrimitive: false }}\n isActive={active?.path === path}\n onSelect={(next) => onSelectApp(id, next)}\n {...{ accent, inset }}\n />\n ));\n\n return (\n <Row\n {...{ item, accent }}\n inset={euiTheme.size.m}\n isActive={isOpen && active === undefined}\n onSelect={() => onSelectApp(id)}>\n {sections.length ? (\n <ul css={subList(ROW_GAP)} aria-label={`${title} pages`}>\n {sections.map(({ title: section, pages: listed }) =>\n section === undefined ? (\n <React.Fragment key=\"unsectioned\">\n {pageRows(listed)}\n </React.Fragment>\n ) : (\n <li key={`section:${section}`}>\n <h4\n css={css`\n margin: ${euiTheme.size.xs} 0 0;\n padding-inline: ${inset} ${euiTheme.size.s};\n color: ${GROUP_LABEL};\n font-size: 11px;\n font-weight: ${euiTheme.font.weight.semiBold};\n letter-spacing: 0.08em;\n line-height: ${ROW_HEIGHT}px;\n text-transform: uppercase;\n `}>\n {section}\n </h4>\n <ul css={subList(ROW_GAP)} aria-label={section}>\n {pageRows(listed)}\n </ul>\n </li>\n )\n )}\n </ul>\n ) : null}\n </Row>\n );\n};\n\nconst Group = ({\n title,\n isOpen,\n onToggle,\n children,\n}: {\n title: string;\n isOpen: boolean;\n onToggle: () => void;\n children: ReactNode;\n}) => {\n const { euiTheme } = useEuiTheme();\n\n return (\n <div\n css={css`\n display: flex;\n flex-direction: column;\n flex: none;\n `}>\n <h3\n css={css`\n margin: 0;\n `}>\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={onToggle}\n css={css`\n display: flex;\n align-items: center;\n gap: ${euiTheme.size.xs};\n inline-size: 100%;\n block-size: ${ROW_HEIGHT}px;\n padding-inline: ${euiTheme.size.xs};\n color: ${GROUP_LABEL};\n font-size: 11px;\n font-weight: ${euiTheme.font.weight.semiBold};\n letter-spacing: 0.08em;\n text-transform: uppercase;\n text-align: start;\n\n &:hover {\n color: ${ACTIVE_LABEL};\n }\n\n &:focus-visible {\n outline: ${euiTheme.focus.width} solid ${ACTIVE_LABEL};\n outline-offset: -${euiTheme.focus.width};\n }\n `}>\n <EuiIcon\n type={isOpen ? 'chevronSingleDown' : 'chevronSingleRight'}\n size=\"s\"\n aria-hidden={true}\n />\n {title}\n </button>\n </h3>\n {isOpen ? (\n <ul\n css={css`\n display: flex;\n flex-direction: column;\n gap: ${ROW_GAP}px;\n margin: 0;\n padding: 0;\n list-style: none;\n `}>\n {children}\n </ul>\n ) : null}\n </div>\n );\n};\n\n/** The Gallery link and the config's apps with their pages, then primitives under collapsible groups, narrowed by a filter. */\nexport const StudioNav = ({\n mode,\n page,\n app,\n appPath = '',\n isOpen,\n isCompact = false,\n onToggle,\n onSelect,\n onSelectApp,\n}: StudioNavProps) => {\n const { euiTheme } = useEuiTheme();\n const accent = useAccent(app === undefined ? mode : 'docs');\n const scrollbar = useEuiScrollBar();\n const {\n runtime,\n apps,\n docs: { primitives },\n } = useStudio();\n const appItems = useMemo(() => apps.map(appItem), [apps]);\n const [filter, setFilter] = useState('');\n const { closed, setOpen } = useClosedNavGroups();\n const separatePacks = runtime.packs.length > 1;\n\n const packs = useMemo(() => {\n const labels = new Map(primitives.map(({ type, label }) => [type, label]));\n const matched = new Set(\n searchPrimitives(primitives, filter).map(({ type }) => type)\n );\n return navPacks(\n runtime.packs.map((pack) => ({\n id: pack.id,\n groups: pack.authoring?.groups ?? [],\n types: pack.primitives.map(({ type }) => type),\n })),\n (type) => labels.get(type) ?? type,\n (type) => matched.has(type),\n separatePacks\n );\n }, [primitives, runtime.packs, filter, separatePacks]);\n\n const listed = useMemo(() => {\n const byType = new Map(primitives.map((doc) => [doc.type, doc]));\n return packs.map((pack) => ({\n ...pack,\n groups: pack.groups.map((group) => ({\n ...group,\n items: group.types.flatMap((type): NavItem[] => {\n const doc = byType.get(type);\n return doc\n ? [\n {\n id: type,\n label: doc.label,\n icon: <PrimitiveGlyph {...{ type }} size={NAV_GLYPH_SIZE} />,\n isPrimitive: true,\n },\n ]\n : [];\n }),\n })),\n }));\n }, [packs, primitives]);\n\n const isGroupOpen = (key: string) => Boolean(filter) || !closed.has(key);\n const toggleGroup = (key: string) => {\n if (!filter) {\n setOpen(key, closed.has(key));\n }\n };\n\n const column = css`\n display: flex;\n flex-direction: column;\n gap: ${euiTheme.size.xs};\n min-block-size: 0;\n padding-block: 0 ${euiTheme.size.m};\n overflow: hidden;\n ${\n isCompact\n ? css`\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n z-index: 1;\n inline-size: ${isOpen ? NAV_WIDTH.open : NAV_WIDTH.closed}px;\n background: ${\n isOpen ? euiTheme.colors.backgroundBasePlain : 'transparent'\n };\n border-inline-end: ${isOpen ? euiTheme.border.thin : 'none'};\n box-shadow: ${isOpen ? '0 8px 24px rgba(0, 0, 0, 0.28)' : 'none'};\n transition: inline-size ${euiTheme.animation.normal}\n ${euiTheme.animation.resistance};\n `\n : ''\n }\n `;\n const fieldInset = css`\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n gap: ${euiTheme.size.xs};\n flex: none;\n margin-inline: ${euiTheme.size.s};\n margin-block-end: ${euiTheme.size.s};\n min-block-size: ${ROW_HEIGHT}px;\n justify-content: ${isOpen ? 'flex-start' : 'center'};\n `;\n const scroller = css`\n flex: 1;\n min-block-size: 0;\n display: flex;\n flex-direction: column;\n gap: ${euiTheme.size.s};\n padding-inline: ${isOpen ? euiTheme.size.s : 0};\n overflow: hidden auto;\n ${scrollbar}\n `;\n const rail = css`\n flex: none;\n inline-size: ${NAV_WIDTH.closed}px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${ROW_GAP}px;\n `;\n const packHeading = css`\n flex: none;\n margin: ${euiTheme.size.s} ${euiTheme.size.xs} 0;\n color: ${euiTheme.colors.textSubdued};\n font-size: 11px;\n font-weight: ${euiTheme.font.weight.semiBold};\n text-transform: uppercase;\n `;\n const plainList = css`\n display: flex;\n flex-direction: column;\n gap: ${ROW_GAP}px;\n margin: 0;\n padding: 0;\n list-style: none;\n `;\n const activePage = app === undefined ? page : undefined;\n const rows = (items: readonly NavItem[]) =>\n items.map((item) => (\n <Row\n key={item.id}\n {...{ item, accent, onSelect }}\n isActive={item.id === activePage}\n />\n ));\n const appRows = apps.map((entry) => (\n <AppRow\n key={entry.id}\n app={entry}\n openApp={app}\n {...{ appPath, filter, accent, onSelectApp }}\n />\n ));\n\n const toggleLabel = `${isOpen ? 'Collapse' : 'Expand'} primitive navigation`;\n\n return (\n <nav css={column} aria-label=\"Primitives\">\n <div css={fieldInset}>\n {isOpen ? (\n <div\n css={css`\n flex: 1 1 auto;\n min-inline-size: 0;\n `}>\n <EuiFieldSearch\n compressed\n fullWidth\n placeholder=\"Filter primitives\"\n value={filter}\n onChange={({ target: { value } }) => setFilter(value)}\n aria-label=\"Filter primitives\"\n />\n </div>\n ) : null}\n <EuiButtonIcon\n display=\"empty\"\n size=\"s\"\n color=\"text\"\n css={css`\n flex: none;\n inline-size: ${ROW_HEIGHT}px;\n block-size: ${ROW_HEIGHT}px;\n color: ${ACTIVE_LABEL};\n `}\n iconType={isOpen ? 'transitionRightIn' : 'transitionLeftIn'}\n aria-label={toggleLabel}\n title={toggleLabel}\n aria-expanded={isOpen}\n onClick={onToggle}\n />\n </div>\n <div css={scroller}>\n {isOpen ? (\n <>\n <ul css={plainList}>\n {appRows}\n <Row\n item={GALLERY_ITEM}\n isActive={GALLERY === activePage}\n inset={euiTheme.size.m}\n {...{ accent, onSelect }}\n />\n </ul>\n {listed.map((pack) => (\n <React.Fragment key={pack.id}>\n {separatePacks ? <h2 css={packHeading}>{pack.label}</h2> : null}\n {pack.groups.map((group) => (\n <Group\n key={group.key}\n title={group.title}\n isOpen={isGroupOpen(group.key)}\n onToggle={() => toggleGroup(group.key)}>\n {rows(group.items)}\n </Group>\n ))}\n </React.Fragment>\n ))}\n </>\n ) : (\n <>\n <div css={rail}>\n {appItems.map((item) => (\n <RailEntry\n key={item.id}\n {...{ item, accent }}\n onSelect={(id) => onSelectApp(id)}\n isActive={item.id === app}\n />\n ))}\n <RailEntry\n item={GALLERY_ITEM}\n isActive={GALLERY === activePage}\n {...{ accent, onSelect }}\n />\n </div>\n {listed\n .flatMap((pack) => pack.groups)\n .map((group) => (\n <div key={group.key} css={rail}>\n <div\n role=\"separator\"\n css={css`\n width: ${NAV_GLYPH_SIZE}px;\n margin-block: ${euiTheme.size.xs};\n border-top: 1px solid ${euiTheme.colors.textSubdued};\n `}\n />\n {group.items.map((item) => (\n <RailEntry\n key={item.id}\n {...{ item, accent, onSelect }}\n isActive={item.id === activePage}\n />\n ))}\n </div>\n ))}\n </>\n )}\n </div>\n </nav>\n );\n};\n"]}
@@ -0,0 +1,6 @@
1
+ /** Which nav groups the user closed, persisted per browser; every group starts open. */
2
+ export declare const useClosedNavGroups: () => {
3
+ closed: ReadonlySet<string>;
4
+ setOpen: (title: string, isOpen: boolean) => void;
5
+ };
6
+ //# sourceMappingURL=nav_groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav_groups.d.ts","sourceRoot":"","sources":["../../src/chrome/nav_groups.ts"],"names":[],"mappings":"AA0BA,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,QAAO;IACpC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CA4BnD,CAAC"}
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0; you may not use this file except in compliance with the Elastic License
5
+ * 2.0.
6
+ */
7
+ import { useCallback, useEffect, useState } from 'react';
8
+ const STORAGE_KEY = 'isomer-studio:nav-closed-groups';
9
+ const storedClosed = () => {
10
+ try {
11
+ const parsed = JSON.parse(window.localStorage.getItem(STORAGE_KEY) ?? '[]');
12
+ return new Set(Array.isArray(parsed)
13
+ ? parsed.filter((title) => typeof title === 'string')
14
+ : []);
15
+ }
16
+ catch {
17
+ return new Set();
18
+ }
19
+ };
20
+ /** Which nav groups the user closed, persisted per browser; every group starts open. */
21
+ export const useClosedNavGroups = () => {
22
+ const [closed, setClosed] = useState(storedClosed);
23
+ useEffect(() => {
24
+ try {
25
+ window.localStorage.setItem(STORAGE_KEY, JSON.stringify([...closed]));
26
+ }
27
+ catch {
28
+ // Storage is optional: a blocked or full store keeps the state for this page only.
29
+ }
30
+ }, [closed]);
31
+ const setOpen = useCallback((title, isOpen) => {
32
+ setClosed((current) => {
33
+ if (current.has(title) !== isOpen) {
34
+ return current;
35
+ }
36
+ const next = new Set(current);
37
+ if (isOpen) {
38
+ next.delete(title);
39
+ }
40
+ else {
41
+ next.add(title);
42
+ }
43
+ return next;
44
+ });
45
+ }, []);
46
+ return { closed, setOpen };
47
+ };
48
+ //# sourceMappingURL=nav_groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav_groups.js","sourceRoot":"","sources":["../../src/chrome/nav_groups.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,MAAM,WAAW,GAAG,iCAAiC,CAAC;AAEtD,MAAM,YAAY,GAAG,GAAwB,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAChC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CACjD,CAAC;QACF,OAAO,IAAI,GAAG,CACZ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;YACtE,CAAC,CAAC,EAAE,CACP,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAGhC,EAAE;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,mFAAmF;QACrF,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,MAAe,EAAE,EAAE;QAC7D,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACpB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport { useCallback, useEffect, useState } from 'react';\n\nconst STORAGE_KEY = 'isomer-studio:nav-closed-groups';\n\nconst storedClosed = (): ReadonlySet<string> => {\n try {\n const parsed: unknown = JSON.parse(\n window.localStorage.getItem(STORAGE_KEY) ?? '[]'\n );\n return new Set(\n Array.isArray(parsed)\n ? parsed.filter((title): title is string => typeof title === 'string')\n : []\n );\n } catch {\n return new Set();\n }\n};\n\n/** Which nav groups the user closed, persisted per browser; every group starts open. */\nexport const useClosedNavGroups = (): {\n closed: ReadonlySet<string>;\n setOpen: (title: string, isOpen: boolean) => void;\n} => {\n const [closed, setClosed] = useState(storedClosed);\n\n useEffect(() => {\n try {\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify([...closed]));\n } catch {\n // Storage is optional: a blocked or full store keeps the state for this page only.\n }\n }, [closed]);\n\n const setOpen = useCallback((title: string, isOpen: boolean) => {\n setClosed((current) => {\n if (current.has(title) !== isOpen) {\n return current;\n }\n const next = new Set(current);\n if (isOpen) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n }, []);\n\n return { closed, setOpen };\n};\n"]}
@@ -0,0 +1,29 @@
1
+ export interface NavPackInput {
2
+ id: string;
3
+ groups: readonly {
4
+ title: string;
5
+ types: readonly string[];
6
+ }[];
7
+ types: readonly string[];
8
+ }
9
+ export interface NavPackGroup {
10
+ /** Stable across the packs a runtime loads, so a remembered closed group stays that group's. */
11
+ key: string;
12
+ title: string;
13
+ types: string[];
14
+ }
15
+ export interface NavPack {
16
+ id: string;
17
+ label: string;
18
+ groups: NavPackGroup[];
19
+ }
20
+ /** The last segment of a pack id, as a heading: `slides` and `elastic.slides` are both `Slides`. */
21
+ export declare const packLabel: (id: string) => string;
22
+ /**
23
+ * One entry per pack that still has a primitive after `matches`, groups in pack order.
24
+ *
25
+ * With one pack, a group's `key` is its title. With more, it includes the pack id,
26
+ * so two packs can each have a group of the same name.
27
+ */
28
+ export declare const navPacks: (packs: readonly NavPackInput[], labelOf: (type: string) => string, matches: (type: string) => boolean, separatePacks: boolean) => NavPack[];
29
+ //# sourceMappingURL=nav_sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav_sections.d.ts","sourceRoot":"","sources":["../../src/chrome/nav_sections.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC/D,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gGAAgG;IAChG,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,oGAAoG;AACpG,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,KAAG,MAGtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,SAAS,YAAY,EAAE,EAC9B,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EACjC,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EAClC,eAAe,OAAO,KACrB,OAAO,EAoCT,CAAC"}
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0; you may not use this file except in compliance with the Elastic License
5
+ * 2.0.
6
+ */
7
+ import { UNCATEGORIZED_GROUP_TITLE } from '@elastic/isomer-sdk';
8
+ import { humanize } from '../model/describe_runtime.js';
9
+ /** The last segment of a pack id, as a heading: `slides` and `elastic.slides` are both `Slides`. */
10
+ export const packLabel = (id) => {
11
+ const segment = id.split(/[/.:]/).filter((part) => part.length > 0);
12
+ return humanize(segment[segment.length - 1] ?? id);
13
+ };
14
+ /**
15
+ * One entry per pack that still has a primitive after `matches`, groups in pack order.
16
+ *
17
+ * With one pack, a group's `key` is its title. With more, it includes the pack id,
18
+ * so two packs can each have a group of the same name.
19
+ */
20
+ export const navPacks = (packs, labelOf, matches, separatePacks) => {
21
+ const byLabel = (types) => [...types]
22
+ .filter(matches)
23
+ .sort((a, b) => labelOf(a).localeCompare(labelOf(b)));
24
+ return packs.flatMap((pack) => {
25
+ const owned = new Set(pack.types);
26
+ const grouped = new Set();
27
+ const groups = pack.groups.flatMap((group) => {
28
+ const types = byLabel(group.types.filter((type) => owned.has(type)));
29
+ types.forEach((type) => grouped.add(type));
30
+ return types.length
31
+ ? [
32
+ {
33
+ key: separatePacks ? `${pack.id}/${group.title}` : group.title,
34
+ title: group.title,
35
+ types,
36
+ },
37
+ ]
38
+ : [];
39
+ });
40
+ const ungrouped = byLabel(pack.types.filter((type) => !grouped.has(type)));
41
+ if (ungrouped.length) {
42
+ groups.push({
43
+ key: separatePacks
44
+ ? `${pack.id}/${UNCATEGORIZED_GROUP_TITLE}`
45
+ : UNCATEGORIZED_GROUP_TITLE,
46
+ title: UNCATEGORIZED_GROUP_TITLE,
47
+ types: ungrouped,
48
+ });
49
+ }
50
+ return groups.length
51
+ ? [{ id: pack.id, label: packLabel(pack.id), groups }]
52
+ : [];
53
+ });
54
+ };
55
+ //# sourceMappingURL=nav_sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav_sections.js","sourceRoot":"","sources":["../../src/chrome/nav_sections.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAqBrD,oGAAoG;AACpG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAU,EAAE;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAA8B,EAC9B,OAAiC,EACjC,OAAkC,EAClC,aAAsB,EACX,EAAE;IACb,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAY,EAAE,CACrD,CAAC,GAAG,KAAK,CAAC;SACP,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAa,EAAE;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAkB,EAAE;YAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,MAAM;gBACjB,CAAC,CAAC;oBACE;wBACE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;wBAC9D,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK;qBACN;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,aAAa;oBAChB,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,yBAAyB,EAAE;oBAC3C,CAAC,CAAC,yBAAyB;gBAC7B,KAAK,EAAE,yBAAyB;gBAChC,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM;YAClB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport { UNCATEGORIZED_GROUP_TITLE } from '@elastic/isomer-sdk';\n\nimport { humanize } from '../model/describe_runtime';\n\nexport interface NavPackInput {\n id: string;\n groups: readonly { title: string; types: readonly string[] }[];\n types: readonly string[];\n}\n\nexport interface NavPackGroup {\n /** Stable across the packs a runtime loads, so a remembered closed group stays that group's. */\n key: string;\n title: string;\n types: string[];\n}\n\nexport interface NavPack {\n id: string;\n label: string;\n groups: NavPackGroup[];\n}\n\n/** The last segment of a pack id, as a heading: `slides` and `elastic.slides` are both `Slides`. */\nexport const packLabel = (id: string): string => {\n const segment = id.split(/[/.:]/).filter((part) => part.length > 0);\n return humanize(segment[segment.length - 1] ?? id);\n};\n\n/**\n * One entry per pack that still has a primitive after `matches`, groups in pack order.\n *\n * With one pack, a group's `key` is its title. With more, it includes the pack id,\n * so two packs can each have a group of the same name.\n */\nexport const navPacks = (\n packs: readonly NavPackInput[],\n labelOf: (type: string) => string,\n matches: (type: string) => boolean,\n separatePacks: boolean\n): NavPack[] => {\n const byLabel = (types: readonly string[]): string[] =>\n [...types]\n .filter(matches)\n .sort((a, b) => labelOf(a).localeCompare(labelOf(b)));\n\n return packs.flatMap((pack): NavPack[] => {\n const owned = new Set(pack.types);\n const grouped = new Set<string>();\n const groups = pack.groups.flatMap((group): NavPackGroup[] => {\n const types = byLabel(group.types.filter((type) => owned.has(type)));\n types.forEach((type) => grouped.add(type));\n return types.length\n ? [\n {\n key: separatePacks ? `${pack.id}/${group.title}` : group.title,\n title: group.title,\n types,\n },\n ]\n : [];\n });\n const ungrouped = byLabel(pack.types.filter((type) => !grouped.has(type)));\n if (ungrouped.length) {\n groups.push({\n key: separatePacks\n ? `${pack.id}/${UNCATEGORIZED_GROUP_TITLE}`\n : UNCATEGORIZED_GROUP_TITLE,\n title: UNCATEGORIZED_GROUP_TITLE,\n types: ungrouped,\n });\n }\n return groups.length\n ? [{ id: pack.id, label: packLabel(pack.id), groups }]\n : [];\n });\n};\n"]}
@@ -0,0 +1,10 @@
1
+ /** Perceptual lightness (0–1), chroma, and hue in degrees. See https://bottosson.github.io/posts/oklab/. */
2
+ export interface Oklch {
3
+ l: number;
4
+ c: number;
5
+ h: number;
6
+ }
7
+ export declare const hexToOklch: (hex: string) => Oklch;
8
+ /** The nearest sRGB hex, giving up chroma rather than lightness or hue when out of gamut. */
9
+ export declare const oklchToHex: (color: Oklch) => string;
10
+ //# sourceMappingURL=oklch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch.d.ts","sourceRoot":"","sources":["../../src/chrome/oklch.ts"],"names":[],"mappings":"AASA,4GAA4G;AAC5G,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAiCD,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,KASxC,CAAC;AAgBF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,KAAG,MASzC,CAAC"}
@@ -0,0 +1,61 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0; you may not use this file except in compliance with the Elastic License
5
+ * 2.0.
6
+ */
7
+ import { hexToRgb, rgbToHex } from '@elastic/eui';
8
+ const toLinear = (channel) => channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;
9
+ const fromLinear = (channel) => channel <= 0.0031308 ? channel * 12.92 : 1.055 * channel ** (1 / 2.4) - 0.055;
10
+ const multiply = (matrix, [x, y, z]) => matrix.map(([a, b, c]) => a * x + b * y + c * z);
11
+ const RGB_TO_LMS = [
12
+ [0.4122214708, 0.5363325363, 0.0514459929],
13
+ [0.2119034982, 0.6806995451, 0.1073969566],
14
+ [0.0883024619, 0.2817188376, 0.6299787005],
15
+ ];
16
+ const LMS_TO_LAB = [
17
+ [0.2104542553, 0.793617785, -0.0040720468],
18
+ [1.9779984951, -2.428592205, 0.4505937099],
19
+ [0.0259040371, 0.7827717662, -0.808675766],
20
+ ];
21
+ const LAB_TO_LMS = [
22
+ [1, 0.3963377774, 0.2158037573],
23
+ [1, -0.1055613458, -0.0638541728],
24
+ [1, -0.0894841775, -1.291485548],
25
+ ];
26
+ const LMS_TO_RGB = [
27
+ [4.0767416621, -3.3077115913, 0.2309699292],
28
+ [-1.2684380046, 2.6097574011, -0.3413193965],
29
+ [-0.0041960863, -0.7034186147, 1.707612701],
30
+ ];
31
+ export const hexToOklch = (hex) => {
32
+ const rgb = hexToRgb(hex).map((channel) => toLinear(channel / 255));
33
+ const lms = multiply(RGB_TO_LMS, rgb).map(Math.cbrt);
34
+ const [l, a, b] = multiply(LMS_TO_LAB, lms);
35
+ return {
36
+ l,
37
+ c: Math.hypot(a, b),
38
+ h: ((Math.atan2(b, a) * 180) / Math.PI + 360) % 360,
39
+ };
40
+ };
41
+ const toLinearRgb = ({ l, c, h }) => {
42
+ const radians = (h * Math.PI) / 180;
43
+ const lms = multiply(LAB_TO_LMS, [
44
+ l,
45
+ c * Math.cos(radians),
46
+ c * Math.sin(radians),
47
+ ]).map((value) => value ** 3);
48
+ return multiply(LMS_TO_RGB, lms);
49
+ };
50
+ const EPSILON = 1e-6;
51
+ const isInGamut = (rgb) => rgb.every((channel) => channel >= -EPSILON && channel <= 1 + EPSILON);
52
+ /** The nearest sRGB hex, giving up chroma rather than lightness or hue when out of gamut. */
53
+ export const oklchToHex = (color) => {
54
+ let { c } = color;
55
+ while (c > 0 && !isInGamut(toLinearRgb({ ...color, c }))) {
56
+ c = Math.max(0, c - 0.001);
57
+ }
58
+ const [r, g, b] = toLinearRgb({ ...color, c }).map((channel) => Math.round(fromLinear(Math.min(1, Math.max(0, channel))) * 255));
59
+ return rgbToHex(`rgb(${r}, ${g}, ${b})`).toUpperCase();
60
+ };
61
+ //# sourceMappingURL=oklch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch.js","sourceRoot":"","sources":["../../src/chrome/oklch.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport { hexToRgb, rgbToHex } from '@elastic/eui';\n\n/** Perceptual lightness (0–1), chroma, and hue in degrees. See https://bottosson.github.io/posts/oklab/. */\nexport interface Oklch {\n l: number;\n c: number;\n h: number;\n}\n\ntype Triple = [number, number, number];\n\nconst toLinear = (channel: number) =>\n channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;\nconst fromLinear = (channel: number) =>\n channel <= 0.0031308 ? channel * 12.92 : 1.055 * channel ** (1 / 2.4) - 0.055;\n\nconst multiply = (matrix: readonly Triple[], [x, y, z]: Triple): Triple =>\n matrix.map(([a, b, c]) => a * x + b * y + c * z) as Triple;\n\nconst RGB_TO_LMS: readonly Triple[] = [\n [0.4122214708, 0.5363325363, 0.0514459929],\n [0.2119034982, 0.6806995451, 0.1073969566],\n [0.0883024619, 0.2817188376, 0.6299787005],\n];\nconst LMS_TO_LAB: readonly Triple[] = [\n [0.2104542553, 0.793617785, -0.0040720468],\n [1.9779984951, -2.428592205, 0.4505937099],\n [0.0259040371, 0.7827717662, -0.808675766],\n];\nconst LAB_TO_LMS: readonly Triple[] = [\n [1, 0.3963377774, 0.2158037573],\n [1, -0.1055613458, -0.0638541728],\n [1, -0.0894841775, -1.291485548],\n];\nconst LMS_TO_RGB: readonly Triple[] = [\n [4.0767416621, -3.3077115913, 0.2309699292],\n [-1.2684380046, 2.6097574011, -0.3413193965],\n [-0.0041960863, -0.7034186147, 1.707612701],\n];\n\nexport const hexToOklch = (hex: string): Oklch => {\n const rgb = hexToRgb(hex).map((channel) => toLinear(channel / 255)) as Triple;\n const lms = multiply(RGB_TO_LMS, rgb).map(Math.cbrt) as Triple;\n const [l, a, b] = multiply(LMS_TO_LAB, lms);\n return {\n l,\n c: Math.hypot(a, b),\n h: ((Math.atan2(b, a) * 180) / Math.PI + 360) % 360,\n };\n};\n\nconst toLinearRgb = ({ l, c, h }: Oklch): Triple => {\n const radians = (h * Math.PI) / 180;\n const lms = multiply(LAB_TO_LMS, [\n l,\n c * Math.cos(radians),\n c * Math.sin(radians),\n ]).map((value) => value ** 3) as Triple;\n return multiply(LMS_TO_RGB, lms);\n};\n\nconst EPSILON = 1e-6;\nconst isInGamut = (rgb: Triple) =>\n rgb.every((channel) => channel >= -EPSILON && channel <= 1 + EPSILON);\n\n/** The nearest sRGB hex, giving up chroma rather than lightness or hue when out of gamut. */\nexport const oklchToHex = (color: Oklch): string => {\n let { c } = color;\n while (c > 0 && !isInGamut(toLinearRgb({ ...color, c }))) {\n c = Math.max(0, c - 0.001);\n }\n const [r, g, b] = toLinearRgb({ ...color, c }).map((channel) =>\n Math.round(fromLinear(Math.min(1, Math.max(0, channel))) * 255)\n ) as Triple;\n return rgbToHex(`rgb(${r}, ${g}, ${b})`).toUpperCase();\n};\n"]}
@@ -0,0 +1,14 @@
1
+ export interface PrimitiveGlyphProps {
2
+ type: string;
3
+ /** Edge length in pixels. */
4
+ size: number;
5
+ }
6
+ /** An icon as a bare glyph in `currentColor`; the label's initial when there is no `svg`. */
7
+ export declare const Glyph: ({ svg, label, size, }: {
8
+ svg: string | undefined;
9
+ label: string;
10
+ size: number;
11
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
12
+ /** A primitive's {@link Glyph}. */
13
+ export declare const PrimitiveGlyph: ({ type, size }: PrimitiveGlyphProps) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=primitive_glyph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_glyph.d.ts","sourceRoot":"","sources":["../../src/chrome/primitive_glyph.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,6FAA6F;AAC7F,eAAO,MAAM,KAAK,GAAI,uBAInB;IACD,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,qDA0CA,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,cAAc,GAAI,gBAAgB,mBAAmB,qDAYjE,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0; you may not use this file except in compliance with the Elastic License
6
+ * 2.0.
7
+ */
8
+ import { useMemo } from 'react';
9
+ import { useEuiTheme } from '@elastic/eui';
10
+ import { css } from '@emotion/react';
11
+ import { useStudio } from '../studio_context.js';
12
+ import { iconDataUri } from './icon_data_uri.js';
13
+ /** An icon as a bare glyph in `currentColor`; the label's initial when there is no `svg`. */
14
+ export const Glyph = ({ svg, label, size, }) => {
15
+ const { euiTheme: { font, colors }, } = useEuiTheme();
16
+ const src = useMemo(() => svg
17
+ ? iconDataUri(svg, {
18
+ accent: colors.textSubdued,
19
+ bg: 'transparent',
20
+ fg: colors.textSubdued,
21
+ muted: colors.textSubdued,
22
+ })
23
+ : undefined, [svg]);
24
+ return (_jsx("span", { "aria-hidden": true, css: css `
25
+ display: inline-flex;
26
+ flex: none;
27
+ align-items: center;
28
+ justify-content: center;
29
+ inline-size: ${size}px;
30
+ block-size: ${size}px;
31
+ font-size: ${Math.round(size * 0.65)}px;
32
+ font-weight: ${font.weight.bold};
33
+ line-height: 1;
34
+ ${src
35
+ ? css `
36
+ background-color: currentColor;
37
+ mask: ${`url("${src}")`} center / contain no-repeat;
38
+ `
39
+ : ''}
40
+ `, children: src ? null : label.charAt(0).toUpperCase() }));
41
+ };
42
+ /** A primitive's {@link Glyph}. */
43
+ export const PrimitiveGlyph = ({ type, size }) => {
44
+ const { docs: { primitives }, } = useStudio();
45
+ const doc = primitives.find((primitive) => primitive.type === type);
46
+ return (_jsx(Glyph, { svg: doc?.definition.icon?.svg, label: doc?.label ?? type, size }));
47
+ };
48
+ //# sourceMappingURL=primitive_glyph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_glyph.js","sourceRoot":"","sources":["../../src/chrome/primitive_glyph.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQ9C,6FAA6F;AAC7F,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EACpB,GAAG,EACH,KAAK,EACL,IAAI,GAKL,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAC3B,GAAG,WAAW,EAAE,CAAC;IAClB,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CACH,GAAG;QACD,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YACf,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,MAAM,CAAC,WAAW;YACtB,KAAK,EAAE,MAAM,CAAC,WAAW;SAC1B,CAAC;QACJ,CAAC,CAAC,SAAS,EACf,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO,CACL,8BACe,IAAI,EACjB,GAAG,EAAE,GAAG,CAAA;;;;;uBAKS,IAAI;sBACL,IAAI;qBACL,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;uBACrB,IAAI,CAAC,MAAM,CAAC,IAAI;;UAG7B,GAAG;YACD,CAAC,CAAC,GAAG,CAAA;;wBAEO,QAAQ,GAAG,IAAI;eACxB;YACH,CAAC,CAAC,EACN;OACD,YACA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GACtC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAuB,EAAE,EAAE;IACpE,MAAM,EACJ,IAAI,EAAE,EAAE,UAAU,EAAE,GACrB,GAAG,SAAS,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACpE,OAAO,CACL,KAAC,KAAK,IACJ,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,EAC9B,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI,EACnB,IAAI,GACV,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport React, { useMemo } from 'react';\nimport { useEuiTheme } from '@elastic/eui';\nimport { css } from '@emotion/react';\n\nimport { useStudio } from '../studio_context';\n\nimport { iconDataUri } from './icon_data_uri';\n\nexport interface PrimitiveGlyphProps {\n type: string;\n /** Edge length in pixels. */\n size: number;\n}\n\n/** An icon as a bare glyph in `currentColor`; the label's initial when there is no `svg`. */\nexport const Glyph = ({\n svg,\n label,\n size,\n}: {\n svg: string | undefined;\n label: string;\n size: number;\n}) => {\n const {\n euiTheme: { font, colors },\n } = useEuiTheme();\n const src = useMemo(\n () =>\n svg\n ? iconDataUri(svg, {\n accent: colors.textSubdued,\n bg: 'transparent',\n fg: colors.textSubdued,\n muted: colors.textSubdued,\n })\n : undefined,\n [svg]\n );\n\n return (\n <span\n aria-hidden={true}\n css={css`\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n inline-size: ${size}px;\n block-size: ${size}px;\n font-size: ${Math.round(size * 0.65)}px;\n font-weight: ${font.weight.bold};\n line-height: 1;\n ${\n src\n ? css`\n background-color: currentColor;\n mask: ${`url(\"${src}\")`} center / contain no-repeat;\n `\n : ''\n }\n `}>\n {src ? null : label.charAt(0).toUpperCase()}\n </span>\n );\n};\n\n/** A primitive's {@link Glyph}. */\nexport const PrimitiveGlyph = ({ type, size }: PrimitiveGlyphProps) => {\n const {\n docs: { primitives },\n } = useStudio();\n const doc = primitives.find((primitive) => primitive.type === type);\n return (\n <Glyph\n svg={doc?.definition.icon?.svg}\n label={doc?.label ?? type}\n {...{ size }}\n />\n );\n};\n"]}
@@ -0,0 +1,14 @@
1
+ import type { PrimitiveDoc } from '../model/describe_runtime.js';
2
+ declare const LAYOUTS: {
3
+ readonly stacked: "l";
4
+ readonly inline: "m";
5
+ };
6
+ export interface PrimitiveHeadingProps {
7
+ doc: Pick<PrimitiveDoc, 'label' | 'group' | 'purpose'>;
8
+ /** `inline` sets the purpose beside the title, for pages that give most of their height to a workbench. */
9
+ layout?: keyof typeof LAYOUTS;
10
+ }
11
+ /** A primitive page's breadcrumb, title, and purpose. */
12
+ export declare const PrimitiveHeading: ({ doc: { label, group, purpose }, layout, }: PrimitiveHeadingProps) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=primitive_heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_heading.d.ts","sourceRoot":"","sources":["../../src/chrome/primitive_heading.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,QAAA,MAAM,OAAO;;;CAGH,CAAC;AAKX,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACvD,2GAA2G;IAC3G,MAAM,CAAC,EAAE,MAAM,OAAO,OAAO,CAAC;CAC/B;AAED,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,GAAI,6CAG9B,qBAAqB,qDA8DvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { EuiFlexGroup, EuiFlexItem, EuiText, EuiTitle, useEuiTheme, } from '@elastic/eui';
3
+ import { css } from '@emotion/react';
4
+ const LAYOUTS = {
5
+ stacked: 'l',
6
+ inline: 'm',
7
+ };
8
+ const PURPOSE_MIN_WIDTH = 280;
9
+ const PURPOSE_MAX_WIDTH = 720;
10
+ /** A primitive page's breadcrumb, title, and purpose. */
11
+ export const PrimitiveHeading = ({ doc: { label, group, purpose }, layout = 'stacked', }) => {
12
+ const { euiTheme } = useEuiTheme();
13
+ const title = LAYOUTS[layout];
14
+ const isInline = layout === 'inline';
15
+ return (_jsxs("div", { children: [_jsxs(EuiText, { size: "xs", color: "subdued", children: [group, " /", ' ', _jsx(EuiText, { size: "xs", component: "span", children: label })] }), _jsxs(EuiFlexGroup, { gutterSize: isInline ? 's' : 'm', alignItems: "center", responsive: false, wrap: isInline, css: css `
16
+ margin-block: ${euiTheme.size.s};
17
+ `, children: [_jsx(EuiFlexItem, { grow: !isInline, children: _jsx(EuiTitle, { size: title, children: _jsx("h1", { children: label }) }) }), isInline ? (_jsx(EuiFlexItem, { css: css `
18
+ flex: 1 1 ${PURPOSE_MIN_WIDTH}px;
19
+ max-width: ${PURPOSE_MAX_WIDTH}px;
20
+ margin-inline-start: ${euiTheme.size.s};
21
+ padding-inline-start: ${euiTheme.size.m};
22
+ border-inline-start: ${euiTheme.border.thin};
23
+ `, children: _jsx(EuiText, { size: "s", children: _jsx("p", { title: purpose, css: css `
24
+ display: -webkit-box;
25
+ -webkit-box-orient: vertical;
26
+ -webkit-line-clamp: 2;
27
+ overflow: hidden;
28
+ `, children: purpose }) }) })) : null] }), isInline ? null : (_jsx(EuiText, { children: _jsx("p", { css: css `
29
+ max-inline-size: 72ch;
30
+ `, children: purpose }) }))] }));
31
+ };
32
+ //# sourceMappingURL=primitive_heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_heading.js","sourceRoot":"","sources":["../../src/chrome/primitive_heading.tsx"],"names":[],"mappings":";AAQA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;CACH,CAAC;AAEX,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAQ9B,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAC9B,MAAM,GAAG,SAAS,GACI,EAAE,EAAE;IAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC;IAErC,OAAO,CACL,0BACE,MAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,aAC/B,KAAK,QAAI,GAAG,EACb,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,YAChC,KAAK,GACE,IACF,EACV,MAAC,YAAY,IACX,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAChC,UAAU,EAAC,QAAQ,EACnB,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,GAAG,CAAA;0BACU,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChC,aACD,KAAC,WAAW,IAAC,IAAI,EAAE,CAAC,QAAQ,YAC1B,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,YACnB,uBAAK,KAAK,GAAM,GACP,GACC,EACb,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,WAAW,IACV,GAAG,EAAE,GAAG,CAAA;0BACM,iBAAiB;2BAChB,iBAAiB;qCACP,QAAQ,CAAC,IAAI,CAAC,CAAC;sCACd,QAAQ,CAAC,IAAI,CAAC,CAAC;qCAChB,QAAQ,CAAC,MAAM,CAAC,IAAI;aAC5C,YACD,KAAC,OAAO,IAAC,IAAI,EAAC,GAAG,YACf,YACE,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,GAAG,CAAA;;;;;iBAKP,YACA,OAAO,GACN,GACI,GACE,CACf,CAAC,CAAC,CAAC,IAAI,IACK,EACd,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjB,KAAC,OAAO,cACN,YACE,GAAG,EAAE,GAAG,CAAA;;aAEP,YACA,OAAO,GACN,GACI,CACX,IACG,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport React from 'react';\nimport {\n EuiFlexGroup,\n EuiFlexItem,\n EuiText,\n EuiTitle,\n useEuiTheme,\n} from '@elastic/eui';\nimport { css } from '@emotion/react';\n\nimport type { PrimitiveDoc } from '../model/describe_runtime';\n\nconst LAYOUTS = {\n stacked: 'l',\n inline: 'm',\n} as const;\n\nconst PURPOSE_MIN_WIDTH = 280;\nconst PURPOSE_MAX_WIDTH = 720;\n\nexport interface PrimitiveHeadingProps {\n doc: Pick<PrimitiveDoc, 'label' | 'group' | 'purpose'>;\n /** `inline` sets the purpose beside the title, for pages that give most of their height to a workbench. */\n layout?: keyof typeof LAYOUTS;\n}\n\n/** A primitive page's breadcrumb, title, and purpose. */\nexport const PrimitiveHeading = ({\n doc: { label, group, purpose },\n layout = 'stacked',\n}: PrimitiveHeadingProps) => {\n const { euiTheme } = useEuiTheme();\n const title = LAYOUTS[layout];\n const isInline = layout === 'inline';\n\n return (\n <div>\n <EuiText size=\"xs\" color=\"subdued\">\n {group} /{' '}\n <EuiText size=\"xs\" component=\"span\">\n {label}\n </EuiText>\n </EuiText>\n <EuiFlexGroup\n gutterSize={isInline ? 's' : 'm'}\n alignItems=\"center\"\n responsive={false}\n wrap={isInline}\n css={css`\n margin-block: ${euiTheme.size.s};\n `}>\n <EuiFlexItem grow={!isInline}>\n <EuiTitle size={title}>\n <h1>{label}</h1>\n </EuiTitle>\n </EuiFlexItem>\n {isInline ? (\n <EuiFlexItem\n css={css`\n flex: 1 1 ${PURPOSE_MIN_WIDTH}px;\n max-width: ${PURPOSE_MAX_WIDTH}px;\n margin-inline-start: ${euiTheme.size.s};\n padding-inline-start: ${euiTheme.size.m};\n border-inline-start: ${euiTheme.border.thin};\n `}>\n <EuiText size=\"s\">\n <p\n title={purpose}\n css={css`\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n `}>\n {purpose}\n </p>\n </EuiText>\n </EuiFlexItem>\n ) : null}\n </EuiFlexGroup>\n {isInline ? null : (\n <EuiText>\n <p\n css={css`\n max-inline-size: 72ch;\n `}>\n {purpose}\n </p>\n </EuiText>\n )}\n </div>\n );\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type { ReactElement } from 'react';
2
+ export declare const PEEK_DELAY = 0;
3
+ /** Shows a primitive's first example and purpose beside `children` after the pointer rests on it. */
4
+ export declare const PrimitivePeek: ({ type, children, }: {
5
+ type: string;
6
+ children: ReactElement;
7
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=primitive_peek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_peek.d.ts","sourceRoot":"","sources":["../../src/chrome/primitive_peek.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAe1C,eAAO,MAAM,UAAU,IAAI,CAAC;AAyD5B,qGAAqG;AACrG,eAAO,MAAM,aAAa,GAAI,qBAG3B;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;CACxB,qDAsCA,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState } from 'react';
3
+ import { EuiPopover, EuiSpacer, EuiText, EuiTitle, useEuiTheme, } from '@elastic/eui';
4
+ import { css } from '@emotion/react';
5
+ import { useStudio } from '../studio_context.js';
6
+ import { ReactSurface } from '../surfaces/react_surface.js';
7
+ import { ScaledPreview } from '../surfaces/scaled_preview.js';
8
+ export const PEEK_DELAY = 0;
9
+ const PEEK_WIDTH = 320;
10
+ const PREVIEW_HEIGHT = 180;
11
+ const PeekContent = ({ type }) => {
12
+ const { euiTheme } = useEuiTheme();
13
+ const { docs: { primitives }, compose, } = useStudio();
14
+ const doc = primitives.find((candidate) => candidate.type === type);
15
+ const [first] = doc?.examples ?? [];
16
+ const composition = useMemo(() => (first ? compose([first.node]) : undefined), [compose, first]);
17
+ if (!doc) {
18
+ return null;
19
+ }
20
+ const { label, group, purpose } = doc;
21
+ return (_jsxs("div", { css: css `
22
+ width: ${PEEK_WIDTH}px;
23
+ `, children: [composition ? (_jsx("div", { "aria-hidden": true, css: css `
24
+ max-height: ${PREVIEW_HEIGHT}px;
25
+ overflow: hidden;
26
+ pointer-events: none;
27
+ border-radius: ${euiTheme.border.radius.small};
28
+ background: ${euiTheme.colors.backgroundBaseSubdued};
29
+ `, children: _jsx(ScaledPreview, { maxHeight: PREVIEW_HEIGHT, children: _jsx(ReactSurface, { composition }) }) })) : null, _jsx(EuiSpacer, { size: "s" }), _jsx(EuiTitle, { size: "xxs", children: _jsx("h4", { children: label }) }), _jsx(EuiText, { size: "xs", color: "subdued", children: _jsx("p", { children: group }) }), _jsx(EuiSpacer, { size: "xs" }), _jsx(EuiText, { size: "s", children: _jsx("p", { children: purpose }) })] }));
30
+ };
31
+ /** Shows a primitive's first example and purpose beside `children` after the pointer rests on it. */
32
+ export const PrimitivePeek = ({ type, children, }) => {
33
+ const [isOpen, setOpen] = useState(false);
34
+ const timer = useRef(undefined);
35
+ const cancel = () => clearTimeout(timer.current);
36
+ const close = () => {
37
+ cancel();
38
+ setOpen(false);
39
+ };
40
+ useEffect(() => cancel, []);
41
+ return (_jsx("div", { onMouseEnter: () => {
42
+ cancel();
43
+ timer.current = setTimeout(() => setOpen(true), PEEK_DELAY);
44
+ }, onMouseLeave: close, onClickCapture: close, children: _jsx(EuiPopover, { button: children, isOpen: isOpen, closePopover: close, anchorPosition: "rightUp", ownFocus: false, display: "block", panelPaddingSize: "s", panelProps: {
45
+ css: css `
46
+ transition: opacity 0.2s ease-in-out;
47
+ opacity: ${isOpen ? 1 : 0};
48
+ `,
49
+ }, "aria-label": "Primitive preview", children: isOpen ? _jsx(PeekContent, { type }) : null }) }));
50
+ };
51
+ //# sourceMappingURL=primitive_peek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_peek.js","sourceRoot":"","sources":["../../src/chrome/primitive_peek.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0; you may not use this file except in compliance with the Elastic License\n * 2.0.\n */\n\nimport type { ReactElement } from 'react';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport {\n EuiPopover,\n EuiSpacer,\n EuiText,\n EuiTitle,\n useEuiTheme,\n} from '@elastic/eui';\nimport { css } from '@emotion/react';\n\nimport { useStudio } from '../studio_context';\nimport { ReactSurface } from '../surfaces/react_surface';\nimport { ScaledPreview } from '../surfaces/scaled_preview';\n\nexport const PEEK_DELAY = 0;\nconst PEEK_WIDTH = 320;\nconst PREVIEW_HEIGHT = 180;\n\nconst PeekContent = ({ type }: { type: string }) => {\n const { euiTheme } = useEuiTheme();\n const {\n docs: { primitives },\n compose,\n } = useStudio();\n const doc = primitives.find((candidate) => candidate.type === type);\n const [first] = doc?.examples ?? [];\n const composition = useMemo(\n () => (first ? compose([first.node]) : undefined),\n [compose, first]\n );\n\n if (!doc) {\n return null;\n }\n const { label, group, purpose } = doc;\n\n return (\n <div\n css={css`\n width: ${PEEK_WIDTH}px;\n `}>\n {composition ? (\n <div\n aria-hidden={true}\n css={css`\n max-height: ${PREVIEW_HEIGHT}px;\n overflow: hidden;\n pointer-events: none;\n border-radius: ${euiTheme.border.radius.small};\n background: ${euiTheme.colors.backgroundBaseSubdued};\n `}>\n <ScaledPreview maxHeight={PREVIEW_HEIGHT}>\n <ReactSurface {...{ composition }} />\n </ScaledPreview>\n </div>\n ) : null}\n <EuiSpacer size=\"s\" />\n <EuiTitle size=\"xxs\">\n <h4>{label}</h4>\n </EuiTitle>\n <EuiText size=\"xs\" color=\"subdued\">\n <p>{group}</p>\n </EuiText>\n <EuiSpacer size=\"xs\" />\n <EuiText size=\"s\">\n <p>{purpose}</p>\n </EuiText>\n </div>\n );\n};\n\n/** Shows a primitive's first example and purpose beside `children` after the pointer rests on it. */\nexport const PrimitivePeek = ({\n type,\n children,\n}: {\n type: string;\n children: ReactElement;\n}) => {\n const [isOpen, setOpen] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout>>(undefined);\n const cancel = () => clearTimeout(timer.current);\n const close = () => {\n cancel();\n setOpen(false);\n };\n\n useEffect(() => cancel, []);\n\n return (\n <div\n onMouseEnter={() => {\n cancel();\n timer.current = setTimeout(() => setOpen(true), PEEK_DELAY);\n }}\n onMouseLeave={close}\n onClickCapture={close}>\n <EuiPopover\n button={children}\n isOpen={isOpen}\n closePopover={close}\n anchorPosition=\"rightUp\"\n ownFocus={false}\n display=\"block\"\n panelPaddingSize=\"s\"\n panelProps={{\n css: css`\n transition: opacity 0.2s ease-in-out;\n opacity: ${isOpen ? 1 : 0};\n `,\n }}\n aria-label=\"Primitive preview\">\n {isOpen ? <PeekContent {...{ type }} /> : null}\n </EuiPopover>\n </div>\n );\n};\n"]}
@@ -0,0 +1,9 @@
1
+ export interface PrimitiveSearchProps {
2
+ onSelectPrimitive: (type: string) => void;
3
+ /** `compressed` fits the header; `large` is the Home page's search. */
4
+ size?: 'compressed' | 'large' | undefined;
5
+ placeholder?: string | undefined;
6
+ }
7
+ /** Every primitive by name, purpose and guidance, with ⌘K / Ctrl+K focusing the field. */
8
+ export declare const PrimitiveSearch: ({ onSelectPrimitive, size, placeholder, }: PrimitiveSearchProps) => import("@emotion/react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=primitive_search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive_search.d.ts","sourceRoot":"","sources":["../../src/chrome/primitive_search.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,uEAAuE;IACvE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,GAAI,2CAI7B,oBAAoB,qDAsGtB,CAAC"}