react-cheminfo 0.28.0 → 0.29.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 (691) hide show
  1. package/README.md +38 -25
  2. package/lib/chart/core/axisLabels.d.ts +82 -0
  3. package/lib/chart/core/axisLabels.d.ts.map +1 -0
  4. package/lib/chart/core/axisLabels.js +111 -0
  5. package/lib/chart/core/axisLabels.js.map +1 -0
  6. package/lib/chart/core/boxLayout.d.ts +53 -0
  7. package/lib/chart/core/boxLayout.d.ts.map +1 -0
  8. package/lib/chart/core/boxLayout.js +112 -0
  9. package/lib/chart/core/boxLayout.js.map +1 -0
  10. package/lib/chart/core/chartAxisScale.d.ts +23 -2
  11. package/lib/chart/core/chartAxisScale.d.ts.map +1 -1
  12. package/lib/chart/core/chartAxisScale.js +64 -13
  13. package/lib/chart/core/chartAxisScale.js.map +1 -1
  14. package/lib/chart/core/chartDomain.d.ts +160 -0
  15. package/lib/chart/core/chartDomain.d.ts.map +1 -0
  16. package/lib/chart/core/chartDomain.js +46 -0
  17. package/lib/chart/core/chartDomain.js.map +1 -0
  18. package/lib/chart/core/chartGeometry.d.ts +131 -0
  19. package/lib/chart/core/chartGeometry.d.ts.map +1 -0
  20. package/lib/chart/core/chartGeometry.js +101 -0
  21. package/lib/chart/core/chartGeometry.js.map +1 -0
  22. package/lib/chart/core/chartPane.d.ts +11 -0
  23. package/lib/chart/core/chartPane.d.ts.map +1 -0
  24. package/lib/chart/core/chartPane.js +11 -0
  25. package/lib/chart/core/chartPane.js.map +1 -0
  26. package/lib/chart/core/chartScale.d.ts +4 -1
  27. package/lib/chart/core/chartScale.d.ts.map +1 -1
  28. package/lib/chart/core/chartScale.js +8 -4
  29. package/lib/chart/core/chartScale.js.map +1 -1
  30. package/lib/chart/core/chartTheme.d.ts +156 -0
  31. package/lib/chart/core/chartTheme.d.ts.map +1 -0
  32. package/lib/chart/core/chartTheme.js +156 -0
  33. package/lib/chart/core/chartTheme.js.map +1 -0
  34. package/lib/chart/core/chartViewport.d.ts +32 -5
  35. package/lib/chart/core/chartViewport.d.ts.map +1 -1
  36. package/lib/chart/core/chartViewport.js +40 -11
  37. package/lib/chart/core/chartViewport.js.map +1 -1
  38. package/lib/chart/core/guidePlacement.d.ts +52 -0
  39. package/lib/chart/core/guidePlacement.d.ts.map +1 -0
  40. package/lib/chart/core/guidePlacement.js +52 -0
  41. package/lib/chart/core/guidePlacement.js.map +1 -0
  42. package/lib/chart/core/index.d.ts +29 -2
  43. package/lib/chart/core/index.d.ts.map +1 -1
  44. package/lib/chart/core/index.js +19 -2
  45. package/lib/chart/core/index.js.map +1 -1
  46. package/lib/chart/core/labelStack.d.ts +27 -0
  47. package/lib/chart/core/labelStack.d.ts.map +1 -0
  48. package/lib/chart/core/labelStack.js +62 -0
  49. package/lib/chart/core/labelStack.js.map +1 -0
  50. package/lib/chart/core/legendBox.d.ts +152 -0
  51. package/lib/chart/core/legendBox.d.ts.map +1 -0
  52. package/lib/chart/core/legendBox.js +169 -0
  53. package/lib/chart/core/legendBox.js.map +1 -0
  54. package/lib/chart/core/selectionGeometry.d.ts +45 -0
  55. package/lib/chart/core/selectionGeometry.d.ts.map +1 -0
  56. package/lib/chart/core/selectionGeometry.js +49 -0
  57. package/lib/chart/core/selectionGeometry.js.map +1 -0
  58. package/lib/chart/core/spectrumColor.d.ts +80 -0
  59. package/lib/chart/core/spectrumColor.d.ts.map +1 -0
  60. package/lib/chart/core/spectrumColor.js +120 -0
  61. package/lib/chart/core/spectrumColor.js.map +1 -0
  62. package/lib/chart/core/stackCapacity.d.ts +136 -0
  63. package/lib/chart/core/stackCapacity.d.ts.map +1 -0
  64. package/lib/chart/core/stackCapacity.js +153 -0
  65. package/lib/chart/core/stackCapacity.js.map +1 -0
  66. package/lib/chart/core/svgPoint.d.ts +62 -0
  67. package/lib/chart/core/svgPoint.d.ts.map +1 -0
  68. package/lib/chart/core/svgPoint.js +43 -0
  69. package/lib/chart/core/svgPoint.js.map +1 -0
  70. package/lib/chart/core/tracePath.d.ts +94 -0
  71. package/lib/chart/core/tracePath.d.ts.map +1 -0
  72. package/lib/chart/core/tracePath.js +191 -0
  73. package/lib/chart/core/tracePath.js.map +1 -0
  74. package/lib/chart/core/trackerReadout.d.ts +55 -0
  75. package/lib/chart/core/trackerReadout.d.ts.map +1 -0
  76. package/lib/chart/core/trackerReadout.js +53 -0
  77. package/lib/chart/core/trackerReadout.js.map +1 -0
  78. package/lib/chart/core/viewTransform.d.ts +167 -0
  79. package/lib/chart/core/viewTransform.d.ts.map +1 -0
  80. package/lib/chart/core/viewTransform.js +188 -0
  81. package/lib/chart/core/viewTransform.js.map +1 -0
  82. package/lib/chart/core/zoomDomain.d.ts +127 -0
  83. package/lib/chart/core/zoomDomain.d.ts.map +1 -0
  84. package/lib/chart/core/zoomDomain.js +175 -0
  85. package/lib/chart/core/zoomDomain.js.map +1 -0
  86. package/lib/chart/ui/Axes.d.ts +104 -0
  87. package/lib/chart/ui/Axes.d.ts.map +1 -0
  88. package/lib/chart/ui/Axes.js +155 -0
  89. package/lib/chart/ui/Axes.js.map +1 -0
  90. package/lib/chart/ui/AxisGuide.d.ts +60 -0
  91. package/lib/chart/ui/AxisGuide.d.ts.map +1 -0
  92. package/lib/chart/ui/AxisGuide.js +111 -0
  93. package/lib/chart/ui/AxisGuide.js.map +1 -0
  94. package/lib/chart/ui/ChartStack.d.ts +81 -0
  95. package/lib/chart/ui/ChartStack.d.ts.map +1 -0
  96. package/lib/chart/ui/ChartStack.js +42 -0
  97. package/lib/chart/ui/ChartStack.js.map +1 -0
  98. package/lib/chart/ui/ChartTracker.d.ts +36 -0
  99. package/lib/chart/ui/ChartTracker.d.ts.map +1 -0
  100. package/lib/chart/ui/ChartTracker.js +27 -0
  101. package/lib/chart/ui/ChartTracker.js.map +1 -0
  102. package/lib/chart/ui/PlotCaption.d.ts +44 -0
  103. package/lib/chart/ui/PlotCaption.d.ts.map +1 -0
  104. package/lib/chart/ui/PlotCaption.js +68 -0
  105. package/lib/chart/ui/PlotCaption.js.map +1 -0
  106. package/lib/chart/ui/SelectionRect.d.ts +27 -0
  107. package/lib/chart/ui/SelectionRect.d.ts.map +1 -0
  108. package/lib/chart/ui/SelectionRect.js +31 -0
  109. package/lib/chart/ui/SelectionRect.js.map +1 -0
  110. package/lib/chart/ui/TraceLegend.d.ts +99 -0
  111. package/lib/chart/ui/TraceLegend.d.ts.map +1 -0
  112. package/lib/chart/ui/TraceLegend.js +45 -0
  113. package/lib/chart/ui/TraceLegend.js.map +1 -0
  114. package/lib/chart/ui/chartGestures.d.ts +158 -0
  115. package/lib/chart/ui/chartGestures.d.ts.map +1 -0
  116. package/lib/chart/ui/chartGestures.js +145 -0
  117. package/lib/chart/ui/chartGestures.js.map +1 -0
  118. package/lib/chart/ui/chartStackLevel.d.ts +115 -0
  119. package/lib/chart/ui/chartStackLevel.d.ts.map +1 -0
  120. package/lib/chart/ui/chartStackLevel.js +96 -0
  121. package/lib/chart/ui/chartStackLevel.js.map +1 -0
  122. package/lib/chart/ui/chartSurface.d.ts +35 -0
  123. package/lib/chart/ui/chartSurface.d.ts.map +1 -0
  124. package/lib/chart/ui/chartSurface.js +58 -0
  125. package/lib/chart/ui/chartSurface.js.map +1 -0
  126. package/lib/chart/ui/index.d.ts +24 -0
  127. package/lib/chart/ui/index.d.ts.map +1 -1
  128. package/lib/chart/ui/index.js +13 -0
  129. package/lib/chart/ui/index.js.map +1 -1
  130. package/lib/chart/ui/useChartPointer.d.ts +124 -0
  131. package/lib/chart/ui/useChartPointer.d.ts.map +1 -0
  132. package/lib/chart/ui/useChartPointer.js +152 -0
  133. package/lib/chart/ui/useChartPointer.js.map +1 -0
  134. package/lib/chart/ui/useChartSize.d.ts +49 -0
  135. package/lib/chart/ui/useChartSize.d.ts.map +1 -0
  136. package/lib/chart/ui/useChartSize.js +91 -0
  137. package/lib/chart/ui/useChartSize.js.map +1 -0
  138. package/lib/chart/ui/useChartWindow.d.ts +147 -0
  139. package/lib/chart/ui/useChartWindow.d.ts.map +1 -0
  140. package/lib/chart/ui/useChartWindow.js +135 -0
  141. package/lib/chart/ui/useChartWindow.js.map +1 -0
  142. package/lib/chart/ui/useChartZoom.d.ts +88 -0
  143. package/lib/chart/ui/useChartZoom.d.ts.map +1 -0
  144. package/lib/chart/ui/useChartZoom.js +142 -0
  145. package/lib/chart/ui/useChartZoom.js.map +1 -0
  146. package/lib/chart/ui/useWheelListener.d.ts +30 -0
  147. package/lib/chart/ui/useWheelListener.d.ts.map +1 -0
  148. package/lib/chart/ui/useWheelListener.js +57 -0
  149. package/lib/chart/ui/useWheelListener.js.map +1 -0
  150. package/lib/clipboard/core/copyPng.d.ts +13 -0
  151. package/lib/clipboard/core/copyPng.d.ts.map +1 -0
  152. package/lib/clipboard/core/copyPng.js +19 -0
  153. package/lib/clipboard/core/copyPng.js.map +1 -0
  154. package/lib/clipboard/core/index.d.ts +1 -0
  155. package/lib/clipboard/core/index.d.ts.map +1 -1
  156. package/lib/clipboard/core/index.js +1 -0
  157. package/lib/clipboard/core/index.js.map +1 -1
  158. package/lib/core.d.ts +1 -0
  159. package/lib/core.d.ts.map +1 -1
  160. package/lib/core.js +1 -0
  161. package/lib/core.js.map +1 -1
  162. package/lib/download/core/exportStyles.d.ts +22 -0
  163. package/lib/download/core/exportStyles.d.ts.map +1 -0
  164. package/lib/download/core/exportStyles.js +19 -0
  165. package/lib/download/core/exportStyles.js.map +1 -0
  166. package/lib/download/core/imageResolution.d.ts +88 -0
  167. package/lib/download/core/imageResolution.d.ts.map +1 -0
  168. package/lib/download/core/imageResolution.js +77 -0
  169. package/lib/download/core/imageResolution.js.map +1 -0
  170. package/lib/download/core/index.d.ts +13 -0
  171. package/lib/download/core/index.d.ts.map +1 -1
  172. package/lib/download/core/index.js +8 -0
  173. package/lib/download/core/index.js.map +1 -1
  174. package/lib/download/core/pictureExport.d.ts +93 -0
  175. package/lib/download/core/pictureExport.d.ts.map +1 -0
  176. package/lib/download/core/pictureExport.js +116 -0
  177. package/lib/download/core/pictureExport.js.map +1 -0
  178. package/lib/download/core/stackedDrawing.d.ts +36 -0
  179. package/lib/download/core/stackedDrawing.d.ts.map +1 -0
  180. package/lib/download/core/stackedDrawing.js +98 -0
  181. package/lib/download/core/stackedDrawing.js.map +1 -0
  182. package/lib/download/core/svgBounds.d.ts +44 -0
  183. package/lib/download/core/svgBounds.d.ts.map +1 -0
  184. package/lib/download/core/svgBounds.js +69 -0
  185. package/lib/download/core/svgBounds.js.map +1 -0
  186. package/lib/download/core/svgNamespace.d.ts +9 -0
  187. package/lib/download/core/svgNamespace.d.ts.map +1 -0
  188. package/lib/download/core/svgNamespace.js +10 -0
  189. package/lib/download/core/svgNamespace.js.map +1 -0
  190. package/lib/download/core/svgToPng.d.ts +43 -0
  191. package/lib/download/core/svgToPng.d.ts.map +1 -0
  192. package/lib/download/core/svgToPng.js +79 -0
  193. package/lib/download/core/svgToPng.js.map +1 -0
  194. package/lib/download/core/svgToString.d.ts +45 -0
  195. package/lib/download/core/svgToString.d.ts.map +1 -0
  196. package/lib/download/core/svgToString.js +58 -0
  197. package/lib/download/core/svgToString.js.map +1 -0
  198. package/lib/download/ui/ExportDialogFrame.d.ts +46 -0
  199. package/lib/download/ui/ExportDialogFrame.d.ts.map +1 -0
  200. package/lib/download/ui/ExportDialogFrame.js +24 -0
  201. package/lib/download/ui/ExportDialogFrame.js.map +1 -0
  202. package/lib/download/ui/ExportImageDialog.d.ts +47 -0
  203. package/lib/download/ui/ExportImageDialog.d.ts.map +1 -0
  204. package/lib/download/ui/ExportImageDialog.js +25 -0
  205. package/lib/download/ui/ExportImageDialog.js.map +1 -0
  206. package/lib/download/ui/ExportNameField.d.ts +29 -0
  207. package/lib/download/ui/ExportNameField.d.ts.map +1 -0
  208. package/lib/download/ui/ExportNameField.js +99 -0
  209. package/lib/download/ui/ExportNameField.js.map +1 -0
  210. package/lib/download/ui/ExportPictureSection.d.ts +38 -0
  211. package/lib/download/ui/ExportPictureSection.d.ts.map +1 -0
  212. package/lib/download/ui/ExportPictureSection.js +48 -0
  213. package/lib/download/ui/ExportPictureSection.js.map +1 -0
  214. package/lib/download/ui/index.d.ts +10 -0
  215. package/lib/download/ui/index.d.ts.map +1 -1
  216. package/lib/download/ui/index.js +5 -0
  217. package/lib/download/ui/index.js.map +1 -1
  218. package/lib/download/ui/useDrawingBox.d.ts +23 -0
  219. package/lib/download/ui/useDrawingBox.d.ts.map +1 -0
  220. package/lib/download/ui/useDrawingBox.js +21 -0
  221. package/lib/download/ui/useDrawingBox.js.map +1 -0
  222. package/lib/error/core/describeSource.d.ts +17 -0
  223. package/lib/error/core/describeSource.d.ts.map +1 -0
  224. package/lib/error/core/describeSource.js +19 -0
  225. package/lib/error/core/describeSource.js.map +1 -0
  226. package/lib/error/core/index.d.ts +1 -0
  227. package/lib/error/core/index.d.ts.map +1 -1
  228. package/lib/error/core/index.js +1 -0
  229. package/lib/error/core/index.js.map +1 -1
  230. package/lib/help/ui/HelpBody.d.ts +10 -1
  231. package/lib/help/ui/HelpBody.d.ts.map +1 -1
  232. package/lib/help/ui/HelpBody.js +24 -1
  233. package/lib/help/ui/HelpBody.js.map +1 -1
  234. package/lib/help/ui/index.d.ts +1 -1
  235. package/lib/help/ui/index.d.ts.map +1 -1
  236. package/lib/help/ui/index.js.map +1 -1
  237. package/lib/ir/core/analysisSpectra.d.ts +46 -0
  238. package/lib/ir/core/analysisSpectra.d.ts.map +1 -0
  239. package/lib/ir/core/analysisSpectra.js +187 -0
  240. package/lib/ir/core/analysisSpectra.js.map +1 -0
  241. package/lib/ir/core/assignBands.d.ts +83 -0
  242. package/lib/ir/core/assignBands.d.ts.map +1 -0
  243. package/lib/ir/core/assignBands.js +83 -0
  244. package/lib/ir/core/assignBands.js.map +1 -0
  245. package/lib/ir/core/bandAssignments.d.ts +47 -0
  246. package/lib/ir/core/bandAssignments.d.ts.map +1 -0
  247. package/lib/ir/core/bandAssignments.js +305 -0
  248. package/lib/ir/core/bandAssignments.js.map +1 -0
  249. package/lib/ir/core/bandLabelPlan.d.ts +93 -0
  250. package/lib/ir/core/bandLabelPlan.d.ts.map +1 -0
  251. package/lib/ir/core/bandLabelPlan.js +104 -0
  252. package/lib/ir/core/bandLabelPlan.js.map +1 -0
  253. package/lib/ir/core/detectIrFormat.d.ts +23 -0
  254. package/lib/ir/core/detectIrFormat.d.ts.map +1 -0
  255. package/lib/ir/core/detectIrFormat.js +133 -0
  256. package/lib/ir/core/detectIrFormat.js.map +1 -0
  257. package/lib/ir/core/downloadSpectra.d.ts +26 -0
  258. package/lib/ir/core/downloadSpectra.d.ts.map +1 -0
  259. package/lib/ir/core/downloadSpectra.js +37 -0
  260. package/lib/ir/core/downloadSpectra.js.map +1 -0
  261. package/lib/ir/core/fromJcamp.d.ts +35 -0
  262. package/lib/ir/core/fromJcamp.d.ts.map +1 -0
  263. package/lib/ir/core/fromJcamp.js +48 -0
  264. package/lib/ir/core/fromJcamp.js.map +1 -0
  265. package/lib/ir/core/fromSpc.d.ts +30 -0
  266. package/lib/ir/core/fromSpc.d.ts.map +1 -0
  267. package/lib/ir/core/fromSpc.js +40 -0
  268. package/lib/ir/core/fromSpc.js.map +1 -0
  269. package/lib/ir/core/index.d.ts +51 -0
  270. package/lib/ir/core/index.d.ts.map +1 -0
  271. package/lib/ir/core/index.js +35 -0
  272. package/lib/ir/core/index.js.map +1 -0
  273. package/lib/ir/core/irBand.d.ts +45 -0
  274. package/lib/ir/core/irBand.d.ts.map +1 -0
  275. package/lib/ir/core/irBand.js +30 -0
  276. package/lib/ir/core/irBand.js.map +1 -0
  277. package/lib/ir/core/irCommands.d.ts +168 -0
  278. package/lib/ir/core/irCommands.d.ts.map +1 -0
  279. package/lib/ir/core/irCommands.js +94 -0
  280. package/lib/ir/core/irCommands.js.map +1 -0
  281. package/lib/ir/core/irDomain.d.ts +63 -0
  282. package/lib/ir/core/irDomain.d.ts.map +1 -0
  283. package/lib/ir/core/irDomain.js +136 -0
  284. package/lib/ir/core/irDomain.js.map +1 -0
  285. package/lib/ir/core/irEditorApi.d.ts +42 -0
  286. package/lib/ir/core/irEditorApi.d.ts.map +1 -0
  287. package/lib/ir/core/irEditorApi.js +10 -0
  288. package/lib/ir/core/irEditorApi.js.map +1 -0
  289. package/lib/ir/core/irFormat.d.ts +42 -0
  290. package/lib/ir/core/irFormat.d.ts.map +1 -0
  291. package/lib/ir/core/irFormat.js +51 -0
  292. package/lib/ir/core/irFormat.js.map +1 -0
  293. package/lib/ir/core/irMode.d.ts +160 -0
  294. package/lib/ir/core/irMode.d.ts.map +1 -0
  295. package/lib/ir/core/irMode.js +175 -0
  296. package/lib/ir/core/irMode.js.map +1 -0
  297. package/lib/ir/core/irReducer.d.ts +101 -0
  298. package/lib/ir/core/irReducer.d.ts.map +1 -0
  299. package/lib/ir/core/irReducer.js +207 -0
  300. package/lib/ir/core/irReducer.js.map +1 -0
  301. package/lib/ir/core/irSidePanels.d.ts +22 -0
  302. package/lib/ir/core/irSidePanels.d.ts.map +1 -0
  303. package/lib/ir/core/irSidePanels.js +12 -0
  304. package/lib/ir/core/irSidePanels.js.map +1 -0
  305. package/lib/ir/core/irSpectrum.d.ts +140 -0
  306. package/lib/ir/core/irSpectrum.d.ts.map +1 -0
  307. package/lib/ir/core/irSpectrum.js +34 -0
  308. package/lib/ir/core/irSpectrum.js.map +1 -0
  309. package/lib/ir/core/irState.d.ts +119 -0
  310. package/lib/ir/core/irState.d.ts.map +1 -0
  311. package/lib/ir/core/irState.js +92 -0
  312. package/lib/ir/core/irState.js.map +1 -0
  313. package/lib/ir/core/loadIrSpectra.d.ts +36 -0
  314. package/lib/ir/core/loadIrSpectra.d.ts.map +1 -0
  315. package/lib/ir/core/loadIrSpectra.js +44 -0
  316. package/lib/ir/core/loadIrSpectra.js.map +1 -0
  317. package/lib/ir/core/nearestBand.d.ts +35 -0
  318. package/lib/ir/core/nearestBand.d.ts.map +1 -0
  319. package/lib/ir/core/nearestBand.js +47 -0
  320. package/lib/ir/core/nearestBand.js.map +1 -0
  321. package/lib/ir/core/pickBands.d.ts +70 -0
  322. package/lib/ir/core/pickBands.d.ts.map +1 -0
  323. package/lib/ir/core/pickBands.js +125 -0
  324. package/lib/ir/core/pickBands.js.map +1 -0
  325. package/lib/ir/core/spectrumJcamp.d.ts +58 -0
  326. package/lib/ir/core/spectrumJcamp.d.ts.map +1 -0
  327. package/lib/ir/core/spectrumJcamp.js +156 -0
  328. package/lib/ir/core/spectrumJcamp.js.map +1 -0
  329. package/lib/ir/core/toIrSpectrum.d.ts +59 -0
  330. package/lib/ir/core/toIrSpectrum.d.ts.map +1 -0
  331. package/lib/ir/core/toIrSpectrum.js +56 -0
  332. package/lib/ir/core/toIrSpectrum.js.map +1 -0
  333. package/lib/ir/ui/BandMarks.d.ts +52 -0
  334. package/lib/ir/ui/BandMarks.d.ts.map +1 -0
  335. package/lib/ir/ui/BandMarks.js +71 -0
  336. package/lib/ir/ui/BandMarks.js.map +1 -0
  337. package/lib/ir/ui/BandsPanel.d.ts +31 -0
  338. package/lib/ir/ui/BandsPanel.d.ts.map +1 -0
  339. package/lib/ir/ui/BandsPanel.js +94 -0
  340. package/lib/ir/ui/BandsPanel.js.map +1 -0
  341. package/lib/ir/ui/IrAboutDialog.d.ts +18 -0
  342. package/lib/ir/ui/IrAboutDialog.d.ts.map +1 -0
  343. package/lib/ir/ui/IrAboutDialog.js +32 -0
  344. package/lib/ir/ui/IrAboutDialog.js.map +1 -0
  345. package/lib/ir/ui/IrCanvas.d.ts +38 -0
  346. package/lib/ir/ui/IrCanvas.d.ts.map +1 -0
  347. package/lib/ir/ui/IrCanvas.js +41 -0
  348. package/lib/ir/ui/IrCanvas.js.map +1 -0
  349. package/lib/ir/ui/IrChart.d.ts +28 -0
  350. package/lib/ir/ui/IrChart.d.ts.map +1 -0
  351. package/lib/ir/ui/IrChart.js +114 -0
  352. package/lib/ir/ui/IrChart.js.map +1 -0
  353. package/lib/ir/ui/IrCommandProvider.d.ts +15 -0
  354. package/lib/ir/ui/IrCommandProvider.d.ts.map +1 -0
  355. package/lib/ir/ui/IrCommandProvider.js +14 -0
  356. package/lib/ir/ui/IrCommandProvider.js.map +1 -0
  357. package/lib/ir/ui/IrCommandTooltip.d.ts +16 -0
  358. package/lib/ir/ui/IrCommandTooltip.d.ts.map +1 -0
  359. package/lib/ir/ui/IrCommandTooltip.js +22 -0
  360. package/lib/ir/ui/IrCommandTooltip.js.map +1 -0
  361. package/lib/ir/ui/IrDocumentationDialog.d.ts +18 -0
  362. package/lib/ir/ui/IrDocumentationDialog.d.ts.map +1 -0
  363. package/lib/ir/ui/IrDocumentationDialog.js +68 -0
  364. package/lib/ir/ui/IrDocumentationDialog.js.map +1 -0
  365. package/lib/ir/ui/IrEditor.d.ts +60 -0
  366. package/lib/ir/ui/IrEditor.d.ts.map +1 -0
  367. package/lib/ir/ui/IrEditor.js +42 -0
  368. package/lib/ir/ui/IrEditor.js.map +1 -0
  369. package/lib/ir/ui/IrHeader.d.ts +13 -0
  370. package/lib/ir/ui/IrHeader.d.ts.map +1 -0
  371. package/lib/ir/ui/IrHeader.js +21 -0
  372. package/lib/ir/ui/IrHeader.js.map +1 -0
  373. package/lib/ir/ui/IrLogo.d.ts +20 -0
  374. package/lib/ir/ui/IrLogo.d.ts.map +1 -0
  375. package/lib/ir/ui/IrLogo.js +17 -0
  376. package/lib/ir/ui/IrLogo.js.map +1 -0
  377. package/lib/ir/ui/IrPointerTracker.d.ts +29 -0
  378. package/lib/ir/ui/IrPointerTracker.d.ts.map +1 -0
  379. package/lib/ir/ui/IrPointerTracker.js +47 -0
  380. package/lib/ir/ui/IrPointerTracker.js.map +1 -0
  381. package/lib/ir/ui/IrShell.d.ts +25 -0
  382. package/lib/ir/ui/IrShell.d.ts.map +1 -0
  383. package/lib/ir/ui/IrShell.js +178 -0
  384. package/lib/ir/ui/IrShell.js.map +1 -0
  385. package/lib/ir/ui/IrSidePanel.d.ts +26 -0
  386. package/lib/ir/ui/IrSidePanel.d.ts.map +1 -0
  387. package/lib/ir/ui/IrSidePanel.js +39 -0
  388. package/lib/ir/ui/IrSidePanel.js.map +1 -0
  389. package/lib/ir/ui/IrStateProvider.d.ts +19 -0
  390. package/lib/ir/ui/IrStateProvider.d.ts.map +1 -0
  391. package/lib/ir/ui/IrStateProvider.js +16 -0
  392. package/lib/ir/ui/IrStateProvider.js.map +1 -0
  393. package/lib/ir/ui/IrStatusBar.d.ts +14 -0
  394. package/lib/ir/ui/IrStatusBar.d.ts.map +1 -0
  395. package/lib/ir/ui/IrStatusBar.js +48 -0
  396. package/lib/ir/ui/IrStatusBar.js.map +1 -0
  397. package/lib/ir/ui/IrToolbar.d.ts +18 -0
  398. package/lib/ir/ui/IrToolbar.d.ts.map +1 -0
  399. package/lib/ir/ui/IrToolbar.js +32 -0
  400. package/lib/ir/ui/IrToolbar.js.map +1 -0
  401. package/lib/ir/ui/IrTraces.d.ts +63 -0
  402. package/lib/ir/ui/IrTraces.d.ts.map +1 -0
  403. package/lib/ir/ui/IrTraces.js +72 -0
  404. package/lib/ir/ui/IrTraces.js.map +1 -0
  405. package/lib/ir/ui/MetadataPanel.d.ts +15 -0
  406. package/lib/ir/ui/MetadataPanel.d.ts.map +1 -0
  407. package/lib/ir/ui/MetadataPanel.js +49 -0
  408. package/lib/ir/ui/MetadataPanel.js.map +1 -0
  409. package/lib/ir/ui/SpectraPanel.d.ts +20 -0
  410. package/lib/ir/ui/SpectraPanel.d.ts.map +1 -0
  411. package/lib/ir/ui/SpectraPanel.js +42 -0
  412. package/lib/ir/ui/SpectraPanel.js.map +1 -0
  413. package/lib/ir/ui/SpectrumRow.d.ts +26 -0
  414. package/lib/ir/ui/SpectrumRow.d.ts.map +1 -0
  415. package/lib/ir/ui/SpectrumRow.js +41 -0
  416. package/lib/ir/ui/SpectrumRow.js.map +1 -0
  417. package/lib/ir/ui/index.d.ts +56 -0
  418. package/lib/ir/ui/index.d.ts.map +1 -0
  419. package/lib/ir/ui/index.js +36 -0
  420. package/lib/ir/ui/index.js.map +1 -0
  421. package/lib/ir/ui/irActions.d.ts +52 -0
  422. package/lib/ir/ui/irActions.d.ts.map +1 -0
  423. package/lib/ir/ui/irActions.js +62 -0
  424. package/lib/ir/ui/irActions.js.map +1 -0
  425. package/lib/ir/ui/irChartProps.d.ts +116 -0
  426. package/lib/ir/ui/irChartProps.d.ts.map +1 -0
  427. package/lib/ir/ui/irChartProps.js +14 -0
  428. package/lib/ir/ui/irChartProps.js.map +1 -0
  429. package/lib/ir/ui/irCommandContext.d.ts +35 -0
  430. package/lib/ir/ui/irCommandContext.d.ts.map +1 -0
  431. package/lib/ir/ui/irCommandContext.js +44 -0
  432. package/lib/ir/ui/irCommandContext.js.map +1 -0
  433. package/lib/ir/ui/irStateContext.d.ts +26 -0
  434. package/lib/ir/ui/irStateContext.d.ts.map +1 -0
  435. package/lib/ir/ui/irStateContext.js +37 -0
  436. package/lib/ir/ui/irStateContext.js.map +1 -0
  437. package/lib/ir/ui/useIrEditor.d.ts +51 -0
  438. package/lib/ir/ui/useIrEditor.d.ts.map +1 -0
  439. package/lib/ir/ui/useIrEditor.js +88 -0
  440. package/lib/ir/ui/useIrEditor.js.map +1 -0
  441. package/lib/ir/ui/useIrPointer.d.ts +66 -0
  442. package/lib/ir/ui/useIrPointer.d.ts.map +1 -0
  443. package/lib/ir/ui/useIrPointer.js +53 -0
  444. package/lib/ir/ui/useIrPointer.js.map +1 -0
  445. package/lib/ir/ui/useIrShortcuts.d.ts +24 -0
  446. package/lib/ir/ui/useIrShortcuts.d.ts.map +1 -0
  447. package/lib/ir/ui/useIrShortcuts.js +73 -0
  448. package/lib/ir/ui/useIrShortcuts.js.map +1 -0
  449. package/lib/ir/ui/useIrZoom.d.ts +51 -0
  450. package/lib/ir/ui/useIrZoom.d.ts.map +1 -0
  451. package/lib/ir/ui/useIrZoom.js +46 -0
  452. package/lib/ir/ui/useIrZoom.js.map +1 -0
  453. package/lib/ir.d.ts +13 -0
  454. package/lib/ir.d.ts.map +1 -0
  455. package/lib/ir.js +13 -0
  456. package/lib/ir.js.map +1 -0
  457. package/lib/panel/core/dialogStyles.d.ts +13 -0
  458. package/lib/panel/core/dialogStyles.d.ts.map +1 -0
  459. package/lib/panel/core/dialogStyles.js +11 -0
  460. package/lib/panel/core/dialogStyles.js.map +1 -0
  461. package/lib/panel/core/index.d.ts +19 -0
  462. package/lib/panel/core/index.d.ts.map +1 -0
  463. package/lib/panel/core/index.js +18 -0
  464. package/lib/panel/core/index.js.map +1 -0
  465. package/lib/panel/core/isEditingField.d.ts +17 -0
  466. package/lib/panel/core/isEditingField.d.ts.map +1 -0
  467. package/lib/panel/core/isEditingField.js +25 -0
  468. package/lib/panel/core/isEditingField.js.map +1 -0
  469. package/lib/panel/core/panelStyles.d.ts +242 -0
  470. package/lib/panel/core/panelStyles.d.ts.map +1 -0
  471. package/lib/panel/core/panelStyles.js +228 -0
  472. package/lib/panel/core/panelStyles.js.map +1 -0
  473. package/lib/panel/core/rowSpacers.d.ts +38 -0
  474. package/lib/panel/core/rowSpacers.d.ts.map +1 -0
  475. package/lib/panel/core/rowSpacers.js +31 -0
  476. package/lib/panel/core/rowSpacers.js.map +1 -0
  477. package/lib/panel/core/statusBar.d.ts +44 -0
  478. package/lib/panel/core/statusBar.d.ts.map +1 -0
  479. package/lib/panel/core/statusBar.js +40 -0
  480. package/lib/panel/core/statusBar.js.map +1 -0
  481. package/lib/panel/core/textFilter.d.ts +22 -0
  482. package/lib/panel/core/textFilter.d.ts.map +1 -0
  483. package/lib/panel/core/textFilter.js +32 -0
  484. package/lib/panel/core/textFilter.js.map +1 -0
  485. package/lib/panel/core/yieldToPainting.d.ts +17 -0
  486. package/lib/panel/core/yieldToPainting.d.ts.map +1 -0
  487. package/lib/panel/core/yieldToPainting.js +21 -0
  488. package/lib/panel/core/yieldToPainting.js.map +1 -0
  489. package/lib/panel/ui/AboutDialogFrame.d.ts +36 -0
  490. package/lib/panel/ui/AboutDialogFrame.d.ts.map +1 -0
  491. package/lib/panel/ui/AboutDialogFrame.js +43 -0
  492. package/lib/panel/ui/AboutDialogFrame.js.map +1 -0
  493. package/lib/panel/ui/ClearButton.d.ts +28 -0
  494. package/lib/panel/ui/ClearButton.d.ts.map +1 -0
  495. package/lib/panel/ui/ClearButton.js +23 -0
  496. package/lib/panel/ui/ClearButton.js.map +1 -0
  497. package/lib/panel/ui/DocumentationDialogFrame.d.ts +39 -0
  498. package/lib/panel/ui/DocumentationDialogFrame.d.ts.map +1 -0
  499. package/lib/panel/ui/DocumentationDialogFrame.js +29 -0
  500. package/lib/panel/ui/DocumentationDialogFrame.js.map +1 -0
  501. package/lib/panel/ui/FilterInput.d.ts +31 -0
  502. package/lib/panel/ui/FilterInput.d.ts.map +1 -0
  503. package/lib/panel/ui/FilterInput.js +23 -0
  504. package/lib/panel/ui/FilterInput.js.map +1 -0
  505. package/lib/panel/ui/HelpLabel.d.ts +24 -0
  506. package/lib/panel/ui/HelpLabel.d.ts.map +1 -0
  507. package/lib/panel/ui/HelpLabel.js +23 -0
  508. package/lib/panel/ui/HelpLabel.js.map +1 -0
  509. package/lib/panel/ui/PanelMessage.d.ts +41 -0
  510. package/lib/panel/ui/PanelMessage.d.ts.map +1 -0
  511. package/lib/panel/ui/PanelMessage.js +30 -0
  512. package/lib/panel/ui/PanelMessage.js.map +1 -0
  513. package/lib/panel/ui/PanelRail.d.ts +41 -0
  514. package/lib/panel/ui/PanelRail.d.ts.map +1 -0
  515. package/lib/panel/ui/PanelRail.js +12 -0
  516. package/lib/panel/ui/PanelRail.js.map +1 -0
  517. package/lib/panel/ui/Section.d.ts +25 -0
  518. package/lib/panel/ui/Section.d.ts.map +1 -0
  519. package/lib/panel/ui/Section.js +41 -0
  520. package/lib/panel/ui/Section.js.map +1 -0
  521. package/lib/panel/ui/SidePanelStack.d.ts +62 -0
  522. package/lib/panel/ui/SidePanelStack.d.ts.map +1 -0
  523. package/lib/panel/ui/SidePanelStack.js +40 -0
  524. package/lib/panel/ui/SidePanelStack.js.map +1 -0
  525. package/lib/panel/ui/SpectrumColorSwatch.d.ts +33 -0
  526. package/lib/panel/ui/SpectrumColorSwatch.d.ts.map +1 -0
  527. package/lib/panel/ui/SpectrumColorSwatch.js +76 -0
  528. package/lib/panel/ui/SpectrumColorSwatch.js.map +1 -0
  529. package/lib/panel/ui/index.d.ts +37 -0
  530. package/lib/panel/ui/index.d.ts.map +1 -0
  531. package/lib/panel/ui/index.js +24 -0
  532. package/lib/panel/ui/index.js.map +1 -0
  533. package/lib/panel/ui/useConfirmOnEnter.d.ts +19 -0
  534. package/lib/panel/ui/useConfirmOnEnter.d.ts.map +1 -0
  535. package/lib/panel/ui/useConfirmOnEnter.js +64 -0
  536. package/lib/panel/ui/useConfirmOnEnter.js.map +1 -0
  537. package/lib/panel/ui/useFilterBox.d.ts +23 -0
  538. package/lib/panel/ui/useFilterBox.d.ts.map +1 -0
  539. package/lib/panel/ui/useFilterBox.js +22 -0
  540. package/lib/panel/ui/useFilterBox.js.map +1 -0
  541. package/lib/panel/ui/useVirtualRows.d.ts +46 -0
  542. package/lib/panel/ui/useVirtualRows.d.ts.map +1 -0
  543. package/lib/panel/ui/useVirtualRows.js +56 -0
  544. package/lib/panel/ui/useVirtualRows.js.map +1 -0
  545. package/lib/panel/ui/useVirtualWindowRows.d.ts +40 -0
  546. package/lib/panel/ui/useVirtualWindowRows.d.ts.map +1 -0
  547. package/lib/panel/ui/useVirtualWindowRows.js +65 -0
  548. package/lib/panel/ui/useVirtualWindowRows.js.map +1 -0
  549. package/lib/ui.d.ts +1 -0
  550. package/lib/ui.d.ts.map +1 -1
  551. package/lib/ui.js +1 -0
  552. package/lib/ui.js.map +1 -1
  553. package/package.json +8 -1
  554. package/src/chart/core/axisLabels.ts +117 -0
  555. package/src/chart/core/boxLayout.ts +126 -0
  556. package/src/chart/core/chartAxisScale.ts +92 -10
  557. package/src/chart/core/chartDomain.ts +185 -0
  558. package/src/chart/core/chartGeometry.ts +159 -0
  559. package/src/chart/core/chartPane.ts +10 -0
  560. package/src/chart/core/chartScale.ts +7 -4
  561. package/src/chart/core/chartTheme.ts +161 -0
  562. package/src/chart/core/chartViewport.ts +40 -13
  563. package/src/chart/core/guidePlacement.ts +66 -0
  564. package/src/chart/core/index.ts +121 -2
  565. package/src/chart/core/labelStack.ts +72 -0
  566. package/src/chart/core/legendBox.ts +263 -0
  567. package/src/chart/core/selectionGeometry.ts +68 -0
  568. package/src/chart/core/spectrumColor.ts +129 -0
  569. package/src/chart/core/stackCapacity.ts +162 -0
  570. package/src/chart/core/svgPoint.ts +77 -0
  571. package/src/chart/core/tracePath.ts +228 -0
  572. package/src/chart/core/trackerReadout.ts +78 -0
  573. package/src/chart/core/viewTransform.ts +287 -0
  574. package/src/chart/core/zoomDomain.ts +235 -0
  575. package/src/chart/ui/Axes.tsx +361 -0
  576. package/src/chart/ui/AxisGuide.tsx +187 -0
  577. package/src/chart/ui/ChartStack.tsx +130 -0
  578. package/src/chart/ui/ChartTracker.tsx +101 -0
  579. package/src/chart/ui/PlotCaption.tsx +108 -0
  580. package/src/chart/ui/SelectionRect.tsx +52 -0
  581. package/src/chart/ui/TraceLegend.tsx +193 -0
  582. package/src/chart/ui/chartGestures.ts +270 -0
  583. package/src/chart/ui/chartStackLevel.tsx +210 -0
  584. package/src/chart/ui/chartSurface.ts +66 -0
  585. package/src/chart/ui/index.ts +35 -0
  586. package/src/chart/ui/useChartPointer.ts +223 -0
  587. package/src/chart/ui/useChartSize.ts +115 -0
  588. package/src/chart/ui/useChartWindow.ts +240 -0
  589. package/src/chart/ui/useChartZoom.ts +255 -0
  590. package/src/chart/ui/useWheelListener.ts +62 -0
  591. package/src/clipboard/core/copyPng.ts +20 -0
  592. package/src/clipboard/core/index.ts +1 -0
  593. package/src/core.ts +1 -0
  594. package/src/download/core/exportStyles.ts +20 -0
  595. package/src/download/core/imageResolution.ts +118 -0
  596. package/src/download/core/index.ts +34 -0
  597. package/src/download/core/pictureExport.ts +207 -0
  598. package/src/download/core/stackedDrawing.ts +108 -0
  599. package/src/download/core/svgBounds.ts +80 -0
  600. package/src/download/core/svgNamespace.ts +9 -0
  601. package/src/download/core/svgToPng.ts +121 -0
  602. package/src/download/core/svgToString.ts +95 -0
  603. package/src/download/ui/ExportDialogFrame.tsx +86 -0
  604. package/src/download/ui/ExportImageDialog.tsx +91 -0
  605. package/src/download/ui/ExportNameField.tsx +148 -0
  606. package/src/download/ui/ExportPictureSection.tsx +142 -0
  607. package/src/download/ui/index.ts +11 -0
  608. package/src/download/ui/useDrawingBox.ts +37 -0
  609. package/src/error/core/describeSource.ts +18 -0
  610. package/src/error/core/index.ts +1 -0
  611. package/src/help/ui/HelpBody.tsx +41 -2
  612. package/src/help/ui/index.ts +6 -1
  613. package/src/ir/core/analysisSpectra.ts +231 -0
  614. package/src/ir/core/assignBands.ts +144 -0
  615. package/src/ir/core/bandAssignments.ts +329 -0
  616. package/src/ir/core/bandLabelPlan.ts +194 -0
  617. package/src/ir/core/detectIrFormat.ts +139 -0
  618. package/src/ir/core/downloadSpectra.ts +57 -0
  619. package/src/ir/core/fromJcamp.ts +70 -0
  620. package/src/ir/core/fromSpc.ts +61 -0
  621. package/src/ir/core/index.ts +113 -0
  622. package/src/ir/core/irBand.ts +57 -0
  623. package/src/ir/core/irCommands.ts +154 -0
  624. package/src/ir/core/irDomain.ts +163 -0
  625. package/src/ir/core/irEditorApi.ts +44 -0
  626. package/src/ir/core/irFormat.ts +57 -0
  627. package/src/ir/core/irMode.ts +203 -0
  628. package/src/ir/core/irReducer.ts +273 -0
  629. package/src/ir/core/irSidePanels.ts +20 -0
  630. package/src/ir/core/irSpectrum.ts +155 -0
  631. package/src/ir/core/irState.ts +173 -0
  632. package/src/ir/core/loadIrSpectra.ts +79 -0
  633. package/src/ir/core/nearestBand.ts +57 -0
  634. package/src/ir/core/pickBands.ts +181 -0
  635. package/src/ir/core/spectrumJcamp.ts +178 -0
  636. package/src/ir/core/toIrSpectrum.ts +102 -0
  637. package/src/ir/ui/BandMarks.tsx +166 -0
  638. package/src/ir/ui/BandsPanel.tsx +271 -0
  639. package/src/ir/ui/IrAboutDialog.tsx +121 -0
  640. package/src/ir/ui/IrCanvas.tsx +91 -0
  641. package/src/ir/ui/IrChart.tsx +215 -0
  642. package/src/ir/ui/IrCommandProvider.tsx +32 -0
  643. package/src/ir/ui/IrCommandTooltip.tsx +36 -0
  644. package/src/ir/ui/IrDocumentationDialog.tsx +174 -0
  645. package/src/ir/ui/IrEditor.tsx +99 -0
  646. package/src/ir/ui/IrHeader.tsx +39 -0
  647. package/src/ir/ui/IrLogo.tsx +49 -0
  648. package/src/ir/ui/IrPointerTracker.tsx +102 -0
  649. package/src/ir/ui/IrShell.tsx +285 -0
  650. package/src/ir/ui/IrSidePanel.tsx +78 -0
  651. package/src/ir/ui/IrStateProvider.tsx +32 -0
  652. package/src/ir/ui/IrStatusBar.tsx +97 -0
  653. package/src/ir/ui/IrToolbar.tsx +102 -0
  654. package/src/ir/ui/IrTraces.tsx +134 -0
  655. package/src/ir/ui/MetadataPanel.tsx +88 -0
  656. package/src/ir/ui/SpectraPanel.tsx +114 -0
  657. package/src/ir/ui/SpectrumRow.tsx +127 -0
  658. package/src/ir/ui/index.ts +56 -0
  659. package/src/ir/ui/irActions.ts +103 -0
  660. package/src/ir/ui/irChartProps.ts +118 -0
  661. package/src/ir/ui/irCommandContext.tsx +62 -0
  662. package/src/ir/ui/irStateContext.ts +48 -0
  663. package/src/ir/ui/useIrEditor.ts +139 -0
  664. package/src/ir/ui/useIrPointer.ts +109 -0
  665. package/src/ir/ui/useIrShortcuts.ts +95 -0
  666. package/src/ir/ui/useIrZoom.ts +86 -0
  667. package/src/ir.ts +13 -0
  668. package/src/panel/core/dialogStyles.ts +11 -0
  669. package/src/panel/core/index.ts +47 -0
  670. package/src/panel/core/isEditingField.ts +23 -0
  671. package/src/panel/core/panelStyles.ts +248 -0
  672. package/src/panel/core/rowSpacers.ts +50 -0
  673. package/src/panel/core/statusBar.ts +48 -0
  674. package/src/panel/core/textFilter.ts +33 -0
  675. package/src/panel/core/yieldToPainting.ts +20 -0
  676. package/src/panel/ui/AboutDialogFrame.tsx +100 -0
  677. package/src/panel/ui/ClearButton.tsx +42 -0
  678. package/src/panel/ui/DocumentationDialogFrame.tsx +86 -0
  679. package/src/panel/ui/FilterInput.tsx +60 -0
  680. package/src/panel/ui/HelpLabel.tsx +43 -0
  681. package/src/panel/ui/PanelMessage.tsx +64 -0
  682. package/src/panel/ui/PanelRail.tsx +64 -0
  683. package/src/panel/ui/Section.tsx +66 -0
  684. package/src/panel/ui/SidePanelStack.tsx +109 -0
  685. package/src/panel/ui/SpectrumColorSwatch.tsx +119 -0
  686. package/src/panel/ui/index.ts +47 -0
  687. package/src/panel/ui/useConfirmOnEnter.ts +68 -0
  688. package/src/panel/ui/useFilterBox.ts +35 -0
  689. package/src/panel/ui/useVirtualRows.ts +82 -0
  690. package/src/panel/ui/useVirtualWindowRows.ts +86 -0
  691. package/src/ui.ts +1 -0
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from '@blueprintjs/core';
3
+ /**
4
+ * The cross that empties a box, worn inside it as Blueprint's `rightElement`.
5
+ *
6
+ * Blueprint has no clearable input of its own; what it has is the slot, and a
7
+ * minimal cross button in it is the shape its own examples use. Which is why
8
+ * this carries no `size`: the input group sizes whatever is put in the slot
9
+ * from its own size class — 20 square inside a small box, 24 inside a medium
10
+ * one — so a button that stated a size of its own would only be able to
11
+ * disagree with the box it is in.
12
+ *
13
+ * One component rather than eight lines repeated at each box, because the
14
+ * cross has to be the same size, the same colour and in the same place
15
+ * everywhere or it reads as a different control each time.
16
+ * @param props - What clearing achieves, and what to do about it.
17
+ * @returns The button, for an `InputGroup`'s `rightElement`.
18
+ */
19
+ export function ClearButton(props) {
20
+ const { label, onClick } = props;
21
+ return (_jsx(Button, { variant: "minimal", icon: "cross", "aria-label": label, title: label, onClick: onClick }));
22
+ }
23
+ //# sourceMappingURL=ClearButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClearButton.js","sourceRoot":"","sources":["../../../src/panel/ui/ClearButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAa3C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEjC,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,gBACA,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The dialog an editor answers "how do I use this" in.
3
+ *
4
+ * Documentation that lives on a website is documentation nobody reads with a
5
+ * structure half drawn, so each viewer ships its own — but only the words are
6
+ * its own. The dialog, the width, the way the sections are stacked and the way
7
+ * out are the same in all of them, and are written here once.
8
+ */
9
+ import type { ReactNode } from 'react';
10
+ /** One part of what a viewer has to say about itself. */
11
+ export interface DocumentationSection {
12
+ /** Stable key, so a section keeps its place as the list grows. */
13
+ id: string;
14
+ /** What the section is called. */
15
+ title: string;
16
+ /** What it says. */
17
+ body: ReactNode;
18
+ }
19
+ /** What the documentation dialog is given. */
20
+ export interface DocumentationDialogFrameProps {
21
+ /** Whether the dialog is showing. */
22
+ isOpen: boolean;
23
+ /** Called when it is dismissed. */
24
+ onClose: () => void;
25
+ /** The sections, in reading order. */
26
+ sections: readonly DocumentationSection[];
27
+ /**
28
+ * What the title bar reads.
29
+ * @default 'Documentation'
30
+ */
31
+ title?: string;
32
+ }
33
+ /**
34
+ * Draw the documentation of one viewer.
35
+ * @param props - The sections and how the dialog is opened and closed.
36
+ * @returns The dialog.
37
+ */
38
+ export declare function DocumentationDialogFrame(props: DocumentationDialogFrameProps): ReactNode;
39
+ //# sourceMappingURL=DocumentationDialogFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentationDialogFrame.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/DocumentationDialogFrame.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,8CAA8C;AAC9C,MAAM,WAAW,6BAA6B;IAC5C,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sCAAsC;IACtC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,6BAA6B,GACnC,SAAS,CA8BX"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The dialog an editor answers "how do I use this" in.
4
+ *
5
+ * Documentation that lives on a website is documentation nobody reads with a
6
+ * structure half drawn, so each viewer ships its own — but only the words are
7
+ * its own. The dialog, the width, the way the sections are stacked and the way
8
+ * out are the same in all of them, and are written here once.
9
+ */
10
+ import { Button, Dialog, DialogBody, DialogFooter } from '@blueprintjs/core';
11
+ import { Section } from "./Section.js";
12
+ import { useConfirmOnEnter } from "./useConfirmOnEnter.js";
13
+ /**
14
+ * Draw the documentation of one viewer.
15
+ * @param props - The sections and how the dialog is opened and closed.
16
+ * @returns The dialog.
17
+ */
18
+ export function DocumentationDialogFrame(props) {
19
+ const { isOpen, onClose, sections, title = 'Documentation' } = props;
20
+ useConfirmOnEnter(isOpen, onClose);
21
+ return (_jsxs(Dialog, { isOpen: isOpen, title: title, icon: "help", style: dialogStyle, onClose: onClose, children: [_jsx(DialogBody, { children: _jsx("div", { style: bodyStyle, children: sections.map((section) => (_jsx(Section, { title: section.title, children: section.body }, section.id))) }) }), _jsx(DialogFooter, { actions: _jsx(Button, { intent: "primary", onClick: onClose, children: "Close" }) })] }));
22
+ }
23
+ const dialogStyle = { width: 640, maxWidth: '92vw' };
24
+ const bodyStyle = {
25
+ display: 'flex',
26
+ flexDirection: 'column',
27
+ gap: 20,
28
+ };
29
+ //# sourceMappingURL=DocumentationDialogFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentationDialogFrame.js","sourceRoot":"","sources":["../../../src/panel/ui/DocumentationDialogFrame.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA2B3D;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAoC;IAEpC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC;IACrE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,OAAO,CACL,MAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,aAEhB,KAAC,UAAU,cACT,cAAK,KAAK,EAAE,SAAS,YAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,KAAC,OAAO,IAAkB,KAAK,EAAE,OAAO,CAAC,KAAK,YAC3C,OAAO,CAAC,IAAI,IADD,OAAO,CAAC,EAAE,CAEd,CACX,CAAC,GACE,GACK,EACb,KAAC,YAAY,IACX,OAAO,EACL,KAAC,MAAM,IAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,sBAEhC,GAEX,IACK,CACV,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAW,CAAC;AAE9D,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,EAAE;CACC,CAAC"}
@@ -0,0 +1,31 @@
1
+ export interface FilterInputProps {
2
+ /** What the user typed. */
3
+ value: string;
4
+ /** Called with what the user typed, and with `''` when the cross is clicked. */
5
+ onValueChange: (value: string) => void;
6
+ /** What the box says while it is empty. */
7
+ placeholder: string;
8
+ /**
9
+ * Whether the box takes the caret as it appears, for the times it is revealed
10
+ * by a click on a toolbar item somewhere else.
11
+ * @default false
12
+ */
13
+ autoFocus?: boolean;
14
+ }
15
+ /**
16
+ * The box a list is filtered through, with a cross to empty it again.
17
+ *
18
+ * A filter left behind hides entries that are still there, and a peak table is
19
+ * exactly where that goes unnoticed — a spectrum with three peaks in it looks
20
+ * like a spectrum with three peaks in it. So every list that offers a filter
21
+ * also offers one click back to the whole of it rather than a held backspace.
22
+ *
23
+ * Every correction the browser offers is turned off: a formula, an m/z and a
24
+ * residue name are neither words nor sentences, and a mobile keyboard
25
+ * capitalising `mNa+` or autocorrecting `Hex` is how a query stops matching
26
+ * anything.
27
+ * @param props - Component props.
28
+ * @returns The box.
29
+ */
30
+ export declare function FilterInput(props: FilterInputProps): import("react").JSX.Element;
31
+ //# sourceMappingURL=FilterInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterInput.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/FilterInput.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAyBlD"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { InputGroup } from '@blueprintjs/core';
3
+ import { ClearButton } from "./ClearButton.js";
4
+ /**
5
+ * The box a list is filtered through, with a cross to empty it again.
6
+ *
7
+ * A filter left behind hides entries that are still there, and a peak table is
8
+ * exactly where that goes unnoticed — a spectrum with three peaks in it looks
9
+ * like a spectrum with three peaks in it. So every list that offers a filter
10
+ * also offers one click back to the whole of it rather than a held backspace.
11
+ *
12
+ * Every correction the browser offers is turned off: a formula, an m/z and a
13
+ * residue name are neither words nor sentences, and a mobile keyboard
14
+ * capitalising `mNa+` or autocorrecting `Hex` is how a query stops matching
15
+ * anything.
16
+ * @param props - Component props.
17
+ * @returns The box.
18
+ */
19
+ export function FilterInput(props) {
20
+ const { value, onValueChange, placeholder, autoFocus = false } = props;
21
+ return (_jsx(InputGroup, { autoFocus: autoFocus, leftIcon: "search", size: "small", value: value, placeholder: placeholder, spellCheck: false, autoCapitalize: "off", autoCorrect: "off", autoComplete: "off", rightElement: value.length > 0 ? (_jsx(ClearButton, { label: "Clear the filter", onClick: () => onValueChange('') })) : undefined, onValueChange: onValueChange }));
22
+ }
23
+ //# sourceMappingURL=FilterInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterInput.js","sourceRoot":"","sources":["../../../src/panel/ui/FilterInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAC;AAiBhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAEvE,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAC,QAAQ,EACjB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,KAAK,EACjB,cAAc,EAAC,KAAK,EACpB,WAAW,EAAC,KAAK,EACjB,YAAY,EAAC,KAAK,EAClB,YAAY,EACV,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,KAAC,WAAW,IACV,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,GAChC,CACH,CAAC,CAAC,CAAC,SAAS,EAEf,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { HelpText } from '../../help/ui/HelpBody.tsx';
2
+ /** What the label names, and what its question mark answers. */
3
+ export interface HelpLabelProps {
4
+ /** What the value is, written small and quiet above it. */
5
+ label: string;
6
+ /** The sentences the question mark carries, one string per paragraph. */
7
+ help: HelpText;
8
+ }
9
+ /**
10
+ * A panel label with a question mark beside it.
11
+ *
12
+ * The label is the half that has to be read at a glance — it names the field
13
+ * under it — so it stays plain, and everything that would otherwise be a
14
+ * paragraph of instructions under the control hangs off the glyph beside it.
15
+ *
16
+ * The help opens to the side rather than above, and that is not a preference:
17
+ * these glyphs sit in a panel beside the very thing they explain — a picture, a
18
+ * chart, a spectrum — and a tooltip placed over the top of a control covers the
19
+ * subject of its own first sentence.
20
+ * @param props - Component props.
21
+ * @returns The label row.
22
+ */
23
+ export declare function HelpLabel(props: HelpLabelProps): import("react").JSX.Element;
24
+ //# sourceMappingURL=HelpLabel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpLabel.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/HelpLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BAc9C"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { HelpIcon } from "../../help/ui/HelpIcon.js";
3
+ import { labelStyle } from "../core/panelStyles.js";
4
+ /**
5
+ * A panel label with a question mark beside it.
6
+ *
7
+ * The label is the half that has to be read at a glance — it names the field
8
+ * under it — so it stays plain, and everything that would otherwise be a
9
+ * paragraph of instructions under the control hangs off the glyph beside it.
10
+ *
11
+ * The help opens to the side rather than above, and that is not a preference:
12
+ * these glyphs sit in a panel beside the very thing they explain — a picture, a
13
+ * chart, a spectrum — and a tooltip placed over the top of a control covers the
14
+ * subject of its own first sentence.
15
+ * @param props - Component props.
16
+ * @returns The label row.
17
+ */
18
+ export function HelpLabel(props) {
19
+ const { label, help } = props;
20
+ return (_jsxs("div", { style: rowStyle, children: [_jsx("span", { style: labelStyle, children: label }), _jsx(HelpIcon, { content: { body: help }, label: `What ${label} means`, placement: "left", size: 12 })] }));
21
+ }
22
+ const rowStyle = { display: 'flex', alignItems: 'center', gap: 4 };
23
+ //# sourceMappingURL=HelpLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpLabel.js","sourceRoot":"","sources":["../../../src/panel/ui/HelpLabel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA4B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUpD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE9B,OAAO,CACL,eAAK,KAAK,EAAE,QAAQ,aAClB,eAAM,KAAK,EAAE,UAAU,YAAG,KAAK,GAAQ,EACvC,KAAC,QAAQ,IACP,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACvB,KAAK,EAAE,QAAQ,KAAK,QAAQ,EAC5B,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,EAAE,GACR,IACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAW,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { IconName } from '@blueprintjs/core';
2
+ import type { ReactNode } from 'react';
3
+ /** What a panel says when it cannot show what it is for. */
4
+ export type PanelMessageIntent = 'none' | 'warning' | 'danger';
5
+ export interface PanelMessageProps {
6
+ /**
7
+ * How much is in the way: `danger` for something the editor refused,
8
+ * `warning` for something it could only do in part, `none` for a remark.
9
+ * @default 'warning'
10
+ */
11
+ intent?: PanelMessageIntent;
12
+ /**
13
+ * The icon, when the one the intent carries is not the one meant — a lookup
14
+ * that found nothing is a search that came back empty, not a warning.
15
+ * @default the icon of the intent
16
+ */
17
+ icon?: IconName;
18
+ /** What to say, in the terms the drawing is in. */
19
+ children: ReactNode;
20
+ }
21
+ /**
22
+ * Why a panel is showing this instead of what it is for.
23
+ *
24
+ * A refusal, a limitation and a remark are told apart by colour rather than by
25
+ * wording, and they are told apart the same way in every panel — which is what
26
+ * this is for: eight places said the same thing in three spellings before.
27
+ * @param props - Component props.
28
+ * @returns The callout.
29
+ */
30
+ export declare function PanelMessage(props: PanelMessageProps): import("react").JSX.Element;
31
+ export interface PanelEmptyProps {
32
+ /** What there is instead of the list, in a few words. */
33
+ children: ReactNode;
34
+ }
35
+ /**
36
+ * The quiet line a panel shows in place of a list it has nothing to fill.
37
+ * @param props - Component props.
38
+ * @returns The line.
39
+ */
40
+ export declare function PanelEmpty(props: PanelEmptyProps): import("react").JSX.Element;
41
+ //# sourceMappingURL=PanelMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelMessage.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/PanelMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,mDAAmD;IACnD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAQpD;AAED,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAEhD"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Callout } from '@blueprintjs/core';
3
+ import { panelEmptyStyle } from "../core/panelStyles.js";
4
+ /**
5
+ * Why a panel is showing this instead of what it is for.
6
+ *
7
+ * A refusal, a limitation and a remark are told apart by colour rather than by
8
+ * wording, and they are told apart the same way in every panel — which is what
9
+ * this is for: eight places said the same thing in three spellings before.
10
+ * @param props - Component props.
11
+ * @returns The callout.
12
+ */
13
+ export function PanelMessage(props) {
14
+ const { intent = 'warning', icon = INTENT_ICONS[intent], children } = props;
15
+ return (_jsx(Callout, { intent: intent, compact: true, icon: icon, children: children }));
16
+ }
17
+ /**
18
+ * The quiet line a panel shows in place of a list it has nothing to fill.
19
+ * @param props - Component props.
20
+ * @returns The line.
21
+ */
22
+ export function PanelEmpty(props) {
23
+ return _jsx("div", { style: panelEmptyStyle, children: props.children });
24
+ }
25
+ const INTENT_ICONS = {
26
+ none: 'info-sign',
27
+ warning: 'warning-sign',
28
+ danger: 'error',
29
+ };
30
+ //# sourceMappingURL=PanelMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelMessage.js","sourceRoot":"","sources":["../../../src/panel/ui/PanelMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAsBzD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5E,OAAO,CACL,KAAC,OAAO,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,QAAC,IAAI,EAAE,IAAI,YACxC,QAAQ,GACD,CACX,CAAC;AACJ,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,OAAO,cAAK,KAAK,EAAE,eAAe,YAAG,KAAK,CAAC,QAAQ,GAAO,CAAC;AAC7D,CAAC;AAED,MAAM,YAAY,GAAyC;IACzD,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,OAAO;CAChB,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The column of icons down the right edge, which opens and shuts the panels.
3
+ *
4
+ * Only the bar and its icons: each editor keeps the element it hangs the rail
5
+ * in, because where the rail sits — outside the split, so the icons stay against
6
+ * the edge while the panel beside them is resized — is a decision about that
7
+ * editor's layout rather than about the rail.
8
+ */
9
+ import type { IconName, MaybeElement } from '@blueprintjs/core';
10
+ import type { ReactNode } from 'react';
11
+ /**
12
+ * One panel the rail can open.
13
+ *
14
+ * Generic in its own id, because each editor names its panels in a union of its
15
+ * own and hands the rail the very function that opens them — a rail that took
16
+ * plain strings would refuse every one of those functions.
17
+ */
18
+ export interface RailPanel<TId extends string = string> {
19
+ /** Which panel, matching what the editor's state calls it. */
20
+ id: TId;
21
+ /** The Blueprint icon it is known by. */
22
+ icon: IconName | MaybeElement;
23
+ /** What the tooltip reads. */
24
+ title: string;
25
+ }
26
+ /** What the rail is given. */
27
+ export interface PanelRailProps<TId extends string = string> {
28
+ /** The panels offered, in the order they are shown. */
29
+ panels: ReadonlyArray<RailPanel<TId>>;
30
+ /** Which of them are open. */
31
+ openIds: readonly string[];
32
+ /** Called with the panel an icon was clicked for. */
33
+ onToggle: (id: TId) => void;
34
+ }
35
+ /**
36
+ * Draw the rail.
37
+ * @param props - The panels, which are open, and what to do about a click.
38
+ * @returns The rail.
39
+ */
40
+ export declare function PanelRail<TId extends string>(props: PanelRailProps<TId>): ReactNode;
41
+ //# sourceMappingURL=PanelRail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelRail.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/PanelRail.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;;;;GAMG;AACH,MAAM,WAAW,SAAS,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IACpD,8DAA8D;IAC9D,EAAE,EAAE,GAAG,CAAC;IACR,yCAAyC;IACzC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8BAA8B;AAC9B,MAAM,WAAW,cAAc,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IACzD,uDAAuD;IACvD,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,8BAA8B;IAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,SAAS,MAAM,EAC1C,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,SAAS,CAiBX"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ActivityBar } from 'react-science/ui';
3
+ /**
4
+ * Draw the rail.
5
+ * @param props - The panels, which are open, and what to do about a click.
6
+ * @returns The rail.
7
+ */
8
+ export function PanelRail(props) {
9
+ const { panels, openIds, onToggle } = props;
10
+ return (_jsx(ActivityBar, { children: panels.map((panel) => (_jsx(ActivityBar.Item, { id: panel.id, icon: panel.icon, tooltip: panel.title, active: openIds.includes(panel.id), onClick: () => onToggle(panel.id) }, panel.id))) }));
11
+ }
12
+ //# sourceMappingURL=PanelRail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelRail.js","sourceRoot":"","sources":["../../../src/panel/ui/PanelRail.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA4B/C;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,KAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,OAAO,CACL,KAAC,WAAW,cACT,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,WAAW,CAAC,IAAI,IAEf,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAClC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAL5B,KAAK,CAAC,EAAE,CAMb,CACH,CAAC,GACU,CACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface SectionProps {
3
+ /** What the block is about, written above it. */
4
+ title: string;
5
+ /** The block. */
6
+ children: ReactNode;
7
+ }
8
+ /**
9
+ * One titled block of a dialog.
10
+ * @param props - Component props.
11
+ * @returns The section.
12
+ */
13
+ export declare function Section(props: SectionProps): import("react").JSX.Element;
14
+ export interface LinkProps {
15
+ href: string;
16
+ children: ReactNode;
17
+ }
18
+ /**
19
+ * A link out of a dialog, opened away from the editor so a drawing in progress
20
+ * or a spectrum being read is never lost to a click.
21
+ * @param props - Component props.
22
+ * @returns The link.
23
+ */
24
+ export declare function Link(props: LinkProps): import("react").JSX.Element;
25
+ //# sourceMappingURL=Section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/Section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAQ1C;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,+BAOpC"}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * One titled block of a dialog.
4
+ * @param props - Component props.
5
+ * @returns The section.
6
+ */
7
+ export function Section(props) {
8
+ const { title, children } = props;
9
+ return (_jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: sectionTitleStyle, children: title }), children] }));
10
+ }
11
+ /**
12
+ * A link out of a dialog, opened away from the editor so a drawing in progress
13
+ * or a spectrum being read is never lost to a click.
14
+ * @param props - Component props.
15
+ * @returns The link.
16
+ */
17
+ export function Link(props) {
18
+ const { href, children } = props;
19
+ return (_jsx("a", { href: href, target: "_blank", rel: "noopener noreferrer", style: linkStyle, children: children }));
20
+ }
21
+ const sectionStyle = {
22
+ display: 'flex',
23
+ flexDirection: 'column',
24
+ gap: 6,
25
+ };
26
+ const sectionTitleStyle = {
27
+ fontSize: 11,
28
+ fontWeight: 600,
29
+ textTransform: 'uppercase',
30
+ letterSpacing: '0.04em',
31
+ opacity: 0.6,
32
+ };
33
+ // Spelled out rather than left to the page: nothing says a host application
34
+ // styles its anchors, and a credit nobody can tell is a link is not a credit.
35
+ const linkStyle = {
36
+ // The site's own accent, and the inherited ink on a page that declares none —
37
+ // the underline is what makes it a link either way.
38
+ color: 'var(--accent, inherit)',
39
+ textDecoration: 'underline',
40
+ };
41
+ //# sourceMappingURL=Section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../src/panel/ui/Section.tsx"],"names":[],"mappings":";AASA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClC,OAAO,CACL,eAAK,KAAK,EAAE,YAAY,aACtB,cAAK,KAAK,EAAE,iBAAiB,YAAG,KAAK,GAAO,EAC3C,QAAQ,IACL,CACP,CAAC;AACJ,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACjC,OAAO,CACL,YAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,KAAK,EAAE,SAAS,YACtE,QAAQ,GACP,CACL,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;CACE,CAAC;AAEX,MAAM,iBAAiB,GAAG;IACxB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,QAAQ;IACvB,OAAO,EAAE,GAAG;CACJ,CAAC;AAEX,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,SAAS,GAAG;IAChB,8EAA8E;IAC9E,oDAAoD;IACpD,KAAK,EAAE,wBAAwB;IAC/B,cAAc,EAAE,WAAW;CACnB,CAAC"}
@@ -0,0 +1,62 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ActivityBarItemProps } from 'react-science/ui';
3
+ /** What a rail reads about one panel, wherever that rail is drawn. */
4
+ export interface PanelDescriptor {
5
+ /** Identity, as the activity bar and the list of open panels address it. */
6
+ id: string;
7
+ /** What the header says, and what the icon's tooltip reads. */
8
+ title: string;
9
+ /** The icon stacked in the rail. */
10
+ icon: ActivityBarItemProps['icon'];
11
+ }
12
+ export interface SidePanelStackProps<TPanel extends PanelDescriptor> {
13
+ /** Every panel on offer, in the order their icons are stacked. */
14
+ panels: readonly TPanel[];
15
+ /** Which of them are open, named as each editor's own view names them. */
16
+ openPanelIds: readonly string[];
17
+ /**
18
+ * Called with the panel whose close cross was pressed. It is the id of one of
19
+ * `panels` rather than any string, so an editor whose panels are a fixed set
20
+ * hands its own `togglePanel` straight in.
21
+ * @param id - Identity of that panel.
22
+ */
23
+ onClose: (id: TPanel['id']) => void;
24
+ /**
25
+ * What to draw inside one panel.
26
+ * @param panel - The panel to draw.
27
+ * @returns Its body.
28
+ */
29
+ children: (panel: TPanel) => ReactNode;
30
+ }
31
+ /**
32
+ * The panels that are open, stacked one under the other down the side.
33
+ *
34
+ * Every open panel gets a share of the height rather than a turn: the things
35
+ * they hold are read together — which spectrum is selected and what its peaks
36
+ * are, the residues to pick from and what the drawing adds up to — so closing
37
+ * one to see the other would be a step backwards. A header click still folds a
38
+ * single panel away, and shift-click folds every other one.
39
+ *
40
+ * They are drawn in the order the rail stacks their icons rather than the order
41
+ * they were switched on, so a panel always comes back where it was.
42
+ *
43
+ * The header carries the shell's own two gestures and nothing about what the
44
+ * panel holds: the chevron that folds it away and the cross that closes it.
45
+ * What a panel switches on and off is a toolbar at the top of its own body, so
46
+ * it travels with the panel when it is folded, reordered or lent to another
47
+ * editor, and every header in every editor reads the same — which is the reason
48
+ * this is one component rather than one per editor.
49
+ *
50
+ * The chevron is there because nothing else says which panels are folded. The
51
+ * accordion draws every header identically and hides only the body, so a side
52
+ * of four closed panels and a side of four open ones differ by white space, and
53
+ * a reader looking for a panel that is already open reaches for its icon and
54
+ * closes it. It is a real button rather than a glyph because the header's own
55
+ * click never reaches the toolbar — clicks there are stopped so the close cross
56
+ * does not also fold the panel — so a chevron that did nothing when pressed
57
+ * would be an affordance that lies.
58
+ * @param props - Component props.
59
+ * @returns The stack.
60
+ */
61
+ export declare function SidePanelStack<TPanel extends PanelDescriptor>(props: SidePanelStackProps<TPanel>): import("react").JSX.Element;
62
+ //# sourceMappingURL=SidePanelStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidePanelStack.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/SidePanelStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,eAAe;IACjE,kEAAkE;IAClE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;;OAKG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,eAAe,EAC3D,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,+BA2CnC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Accordion, AccordionProvider, Button } from 'react-science/ui';
3
+ /**
4
+ * The panels that are open, stacked one under the other down the side.
5
+ *
6
+ * Every open panel gets a share of the height rather than a turn: the things
7
+ * they hold are read together — which spectrum is selected and what its peaks
8
+ * are, the residues to pick from and what the drawing adds up to — so closing
9
+ * one to see the other would be a step backwards. A header click still folds a
10
+ * single panel away, and shift-click folds every other one.
11
+ *
12
+ * They are drawn in the order the rail stacks their icons rather than the order
13
+ * they were switched on, so a panel always comes back where it was.
14
+ *
15
+ * The header carries the shell's own two gestures and nothing about what the
16
+ * panel holds: the chevron that folds it away and the cross that closes it.
17
+ * What a panel switches on and off is a toolbar at the top of its own body, so
18
+ * it travels with the panel when it is folded, reordered or lent to another
19
+ * editor, and every header in every editor reads the same — which is the reason
20
+ * this is one component rather than one per editor.
21
+ *
22
+ * The chevron is there because nothing else says which panels are folded. The
23
+ * accordion draws every header identically and hides only the body, so a side
24
+ * of four closed panels and a side of four open ones differ by white space, and
25
+ * a reader looking for a panel that is already open reaches for its icon and
26
+ * closes it. It is a real button rather than a glyph because the header's own
27
+ * click never reaches the toolbar — clicks there are stopped so the close cross
28
+ * does not also fold the panel — so a chevron that did nothing when pressed
29
+ * would be an affordance that lies.
30
+ * @param props - Component props.
31
+ * @returns The stack.
32
+ */
33
+ export function SidePanelStack(props) {
34
+ const { panels, openPanelIds, onClose, children } = props;
35
+ const open = panels.filter((panel) => openPanelIds.includes(panel.id));
36
+ return (_jsx(AccordionProvider, { children: _jsx(Accordion, { children: open.map((panel) => (_jsx(Accordion.Item, { id: panel.id, title: panel.title, defaultOpen: true, renderToolbar: ({ isOpen, controls }) => (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "minimal", icon: isOpen ? 'chevron-down' : 'chevron-right', "data-panel-open": isOpen, "aria-expanded": isOpen, "aria-label": `${isOpen ? 'Fold' : 'Unfold'} the ${panel.title.toLowerCase()} panel`, tooltipProps: {
37
+ content: isOpen ? 'Fold this panel away' : 'Unfold it',
38
+ }, onClick: () => controls.toggle() }), _jsx(Button, { variant: "minimal", icon: "cross", tooltipProps: { content: 'Close this panel' }, "aria-label": `Close the ${panel.title.toLowerCase()} panel`, onClick: () => onClose(panel.id) })] })), children: children(panel) }, panel.id))) }) }));
39
+ }
40
+ //# sourceMappingURL=SidePanelStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidePanelStack.js","sourceRoot":"","sources":["../../../src/panel/ui/SidePanelStack.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAgCxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,KAAC,iBAAiB,cAChB,KAAC,SAAS,cACP,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnB,KAAC,SAAS,CAAC,IAAI,IAEb,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,QACX,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvC,8BACE,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,qBAC9B,MAAM,mBACR,MAAM,gBACT,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,QAAQ,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAClF,YAAY,EAAE;gCACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW;6BACvD,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAChC,EACF,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,gBACjC,aAAa,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAChC,IACD,CACJ,YAEA,QAAQ,CAAC,KAAK,CAAC,IA3BX,KAAK,CAAC,EAAE,CA4BE,CAClB,CAAC,GACQ,GACM,CACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ export interface SpectrumColorSwatchProps {
2
+ /** The colour the spectrum is drawn in. */
3
+ color: string;
4
+ /** What the list calls it, for the labels a screen reader reads out. */
5
+ name: string;
6
+ /** Called with the colour that was picked. */
7
+ onPick: (color: string) => void;
8
+ }
9
+ /**
10
+ * The chip that says what colour a spectrum is drawn in, and changes it.
11
+ *
12
+ * The palette is what `spectrumColor.ts` holds and nothing else: a free colour
13
+ * picker would let two spectra be set to the same blue, or to a hue that
14
+ * disappears against the chart, and telling the traces apart is the whole job
15
+ * the colour has.
16
+ *
17
+ * Its two tiers are drawn as two rows, in that order and unlabelled. A row is
18
+ * enough: the top one is what the chart uses by itself, so a reader who never
19
+ * looks below it is already right, and one who does is choosing deliberately —
20
+ * which is the only way a colour that asks more of its reader's eyes should
21
+ * ever be picked. A legend explaining the difference would be read once and be
22
+ * in the way afterwards; `spectrumColor.ts` is where the difference is written
23
+ * down.
24
+ *
25
+ * One component for every viewer rather than one per package: a swatch that
26
+ * opens a picker in the mass panel and walks the palette in the infrared one is
27
+ * two different controls wearing the same chip, and whichever a reader learned
28
+ * first is the wrong one in the other editor.
29
+ * @param props - Component props.
30
+ * @returns The chip.
31
+ */
32
+ export declare function SpectrumColorSwatch(props: SpectrumColorSwatchProps): import("react").JSX.Element;
33
+ //# sourceMappingURL=SpectrumColorSwatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpectrumColorSwatch.d.ts","sourceRoot":"","sources":["../../../src/panel/ui/SpectrumColorSwatch.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,+BA8ClE"}