uiconfig-blueprint 0.1.0-dev.1 → 0.1.0-dev.12

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 (435) hide show
  1. package/README.md +27 -1
  2. package/dist/ConfigObject.d.ts +2 -1
  3. package/dist/UiConfigRendererBlueprint.d.ts +6 -4
  4. package/dist/allPaths-DtaFoocb.js +23 -0
  5. package/dist/{allPaths-EYaH0Usv.js.map → allPaths-DtaFoocb.js.map} +1 -1
  6. package/dist/{allPathsLoader-UVZ15qNf.js → allPathsLoader-B5mUU0us.js} +5 -5
  7. package/dist/{allPathsLoader-UVZ15qNf.js.map → allPathsLoader-B5mUU0us.js.map} +1 -1
  8. package/dist/bpComponents/BPButtonComponent.d.ts +1 -0
  9. package/dist/bpComponents/BPColorInputComponent.d.ts +1 -0
  10. package/dist/bpComponents/BPComponent.d.ts +3 -1
  11. package/dist/bpComponents/BPContainerComponent.d.ts +1 -1
  12. package/dist/bpComponents/BPFileComponent.d.ts +8 -5
  13. package/dist/bpComponents/BPFolderComponent.d.ts +9 -1
  14. package/dist/bpComponents/BPInputComponent.d.ts +2 -1
  15. package/dist/bpComponents/BPNumberInputComponent.d.ts +3 -1
  16. package/dist/bpComponents/BPSliderInputComponent.d.ts +1 -0
  17. package/dist/bpComponents/BPTreeComponent.d.ts +20 -10
  18. package/dist/bpComponents/BPValueComponent.d.ts +4 -1
  19. package/dist/bpComponents/BPVectorInputComponent.d.ts +1 -0
  20. package/dist/bpComponents/GetNumberTransformFunctions.d.ts +4 -0
  21. package/dist/bpComponents/NumberUnits.d.ts +7 -0
  22. package/dist/components/DialogContext.d.ts +18 -10
  23. package/dist/components/DraggableIcon.d.ts +1 -0
  24. package/dist/components/ExtendedNumericInput.d.ts +13 -3
  25. package/dist/components/FileComponent.d.ts +3 -1
  26. package/dist/components/InspectorStackComponent.d.ts +2 -1
  27. package/dist/components/NumericInput.d.ts +76 -0
  28. package/dist/components/Tree2.d.ts +52 -0
  29. package/dist/components/TreeNode2.d.ts +43 -0
  30. package/dist/components/axesIcons.d.ts +7 -0
  31. package/dist/components/bpIconWrapper.d.ts +2 -2
  32. package/dist/components/iconMapping.d.ts +198 -0
  33. package/dist/components/loadingState.d.ts +4 -0
  34. package/dist/components/shapesIcons.d.ts +100 -0
  35. package/dist/components/treeTypes.d.ts +18 -0
  36. package/dist/index-BPcAfGYu.js +13583 -0
  37. package/dist/index-BPcAfGYu.js.map +1 -0
  38. package/dist/index-BsXaCp6n.js +671 -0
  39. package/dist/index-BsXaCp6n.js.map +1 -0
  40. package/dist/index-CIFbDQFr.js +671 -0
  41. package/dist/index-CIFbDQFr.js.map +1 -0
  42. package/dist/index.js +71 -36
  43. package/dist/index.js.map +1 -1
  44. package/dist/index.mjs +3 -3
  45. package/dist/lib.d.ts +4 -1
  46. package/dist/{splitPathsBySizeLoader-GhF5umHk.js → splitPathsBySizeLoader-BGjtD8Dg.js} +6 -6
  47. package/dist/{splitPathsBySizeLoader-GhF5umHk.js.map → splitPathsBySizeLoader-BGjtD8Dg.js.map} +1 -1
  48. package/dist/utils.d.ts +1 -0
  49. package/docs/assets/highlight.css +45 -17
  50. package/docs/assets/navigation.js +1 -1
  51. package/docs/assets/search.js +1 -1
  52. package/docs/classes/UI.html +10 -5
  53. package/docs/classes/UiConfigRendererBlueprint.html +10 -5
  54. package/docs/index.html +16 -5
  55. package/lib/css/renderer.css +195 -23
  56. package/lib/css/renderer.css.map +1 -1
  57. package/lib/esm/ConfigObject.d.ts +2 -1
  58. package/lib/esm/ConfigObject.js +15 -9
  59. package/lib/esm/ConfigObject.js.map +1 -1
  60. package/lib/esm/UiConfigRendererBlueprint.d.ts +6 -4
  61. package/lib/esm/UiConfigRendererBlueprint.js +30 -17
  62. package/lib/esm/UiConfigRendererBlueprint.js.map +1 -1
  63. package/lib/esm/bpComponents/BPButtonComponent.d.ts +1 -0
  64. package/lib/esm/bpComponents/BPButtonComponent.js +4 -2
  65. package/lib/esm/bpComponents/BPButtonComponent.js.map +1 -1
  66. package/lib/esm/bpComponents/BPColorInputComponent.d.ts +1 -0
  67. package/lib/esm/bpComponents/BPColorInputComponent.js +5 -3
  68. package/lib/esm/bpComponents/BPColorInputComponent.js.map +1 -1
  69. package/lib/esm/bpComponents/BPComponent.d.ts +3 -1
  70. package/lib/esm/bpComponents/BPComponent.js +15 -2
  71. package/lib/esm/bpComponents/BPComponent.js.map +1 -1
  72. package/lib/esm/bpComponents/BPContainerComponent.d.ts +1 -1
  73. package/lib/esm/bpComponents/BPContainerComponent.js +12 -2
  74. package/lib/esm/bpComponents/BPContainerComponent.js.map +1 -1
  75. package/lib/esm/bpComponents/BPDropdownInputComponent.js +10 -5
  76. package/lib/esm/bpComponents/BPDropdownInputComponent.js.map +1 -1
  77. package/lib/esm/bpComponents/BPFileComponent.d.ts +8 -5
  78. package/lib/esm/bpComponents/BPFileComponent.js +18 -24
  79. package/lib/esm/bpComponents/BPFileComponent.js.map +1 -1
  80. package/lib/esm/bpComponents/BPFolderComponent.d.ts +9 -1
  81. package/lib/esm/bpComponents/BPFolderComponent.js +55 -12
  82. package/lib/esm/bpComponents/BPFolderComponent.js.map +1 -1
  83. package/lib/esm/bpComponents/BPInputComponent.d.ts +2 -1
  84. package/lib/esm/bpComponents/BPInputComponent.js +2 -1
  85. package/lib/esm/bpComponents/BPInputComponent.js.map +1 -1
  86. package/lib/esm/bpComponents/BPLabelledComponent.js +2 -1
  87. package/lib/esm/bpComponents/BPLabelledComponent.js.map +1 -1
  88. package/lib/esm/bpComponents/BPNumberInputComponent.d.ts +3 -1
  89. package/lib/esm/bpComponents/BPNumberInputComponent.js +6 -1
  90. package/lib/esm/bpComponents/BPNumberInputComponent.js.map +1 -1
  91. package/lib/esm/bpComponents/BPPanelComponent.js +1 -1
  92. package/lib/esm/bpComponents/BPPanelComponent.js.map +1 -1
  93. package/lib/esm/bpComponents/BPSliderInputComponent.d.ts +1 -0
  94. package/lib/esm/bpComponents/BPSliderInputComponent.js +18 -6
  95. package/lib/esm/bpComponents/BPSliderInputComponent.js.map +1 -1
  96. package/lib/esm/bpComponents/BPTextInputComponent.js +1 -1
  97. package/lib/esm/bpComponents/BPTextInputComponent.js.map +1 -1
  98. package/lib/esm/bpComponents/BPToggleInputComponent.js +3 -2
  99. package/lib/esm/bpComponents/BPToggleInputComponent.js.map +1 -1
  100. package/lib/esm/bpComponents/BPTreeComponent.d.ts +20 -10
  101. package/lib/esm/bpComponents/BPTreeComponent.js +120 -26
  102. package/lib/esm/bpComponents/BPTreeComponent.js.map +1 -1
  103. package/lib/esm/bpComponents/BPTreeFolderComponent.js +4 -3
  104. package/lib/esm/bpComponents/BPTreeFolderComponent.js.map +1 -1
  105. package/lib/esm/bpComponents/BPValueComponent.d.ts +4 -1
  106. package/lib/esm/bpComponents/BPValueComponent.js +19 -3
  107. package/lib/esm/bpComponents/BPValueComponent.js.map +1 -1
  108. package/lib/esm/bpComponents/BPVectorInputComponent.d.ts +1 -0
  109. package/lib/esm/bpComponents/BPVectorInputComponent.js +14 -8
  110. package/lib/esm/bpComponents/BPVectorInputComponent.js.map +1 -1
  111. package/lib/esm/bpComponents/GetNumberTransformFunctions.d.ts +4 -0
  112. package/lib/esm/bpComponents/GetNumberTransformFunctions.js +14 -0
  113. package/lib/esm/bpComponents/GetNumberTransformFunctions.js.map +1 -0
  114. package/lib/esm/bpComponents/NumberUnits.d.ts +7 -0
  115. package/lib/esm/bpComponents/NumberUnits.js +101 -0
  116. package/lib/esm/bpComponents/NumberUnits.js.map +1 -0
  117. package/lib/esm/components/AppToaster.js.map +1 -1
  118. package/lib/esm/components/ConfigurationPanelComponent.js +6 -1
  119. package/lib/esm/components/ConfigurationPanelComponent.js.map +1 -1
  120. package/lib/esm/components/DialogContext.d.ts +18 -10
  121. package/lib/esm/components/DialogContext.js +52 -33
  122. package/lib/esm/components/DialogContext.js.map +1 -1
  123. package/lib/esm/components/DraggableIcon.d.ts +1 -0
  124. package/lib/esm/components/DraggableIcon.js +7 -4
  125. package/lib/esm/components/DraggableIcon.js.map +1 -1
  126. package/lib/esm/components/ExtendedNumericInput.d.ts +13 -3
  127. package/lib/esm/components/ExtendedNumericInput.js +63 -18
  128. package/lib/esm/components/ExtendedNumericInput.js.map +1 -1
  129. package/lib/esm/components/FileComponent.d.ts +3 -1
  130. package/lib/esm/components/FileComponent.js +19 -19
  131. package/lib/esm/components/FileComponent.js.map +1 -1
  132. package/lib/esm/components/InspectorStackComponent.d.ts +2 -1
  133. package/lib/esm/components/InspectorStackComponent.js +2 -2
  134. package/lib/esm/components/InspectorStackComponent.js.map +1 -1
  135. package/lib/esm/components/NumericInput.d.ts +76 -0
  136. package/lib/esm/components/NumericInput.js +301 -0
  137. package/lib/esm/components/NumericInput.js.map +1 -0
  138. package/lib/esm/components/Tree2.d.ts +52 -0
  139. package/lib/esm/components/Tree2.js +177 -0
  140. package/lib/esm/components/Tree2.js.map +1 -0
  141. package/lib/esm/components/TreeNode2.d.ts +43 -0
  142. package/lib/esm/components/TreeNode2.js +111 -0
  143. package/lib/esm/components/TreeNode2.js.map +1 -0
  144. package/lib/esm/components/VisualStyleContext.js +9 -3
  145. package/lib/esm/components/VisualStyleContext.js.map +1 -1
  146. package/lib/esm/components/axesIcons.d.ts +7 -0
  147. package/lib/esm/components/axesIcons.js +10 -0
  148. package/lib/esm/components/axesIcons.js.map +1 -0
  149. package/lib/esm/components/bpIconWrapper.d.ts +2 -2
  150. package/lib/esm/components/bpIconWrapper.js +2 -2
  151. package/lib/esm/components/bpIconWrapper.js.map +1 -1
  152. package/lib/esm/components/iconMapping.d.ts +198 -0
  153. package/lib/esm/components/iconMapping.js +202 -0
  154. package/lib/esm/components/iconMapping.js.map +1 -0
  155. package/lib/esm/components/loadingState.d.ts +4 -0
  156. package/lib/esm/components/loadingState.js +10 -0
  157. package/lib/esm/components/loadingState.js.map +1 -1
  158. package/lib/esm/components/shapesIcons.d.ts +100 -0
  159. package/lib/esm/components/shapesIcons.js +102 -0
  160. package/lib/esm/components/shapesIcons.js.map +1 -0
  161. package/lib/esm/components/treeTypes.d.ts +18 -0
  162. package/lib/esm/components/treeTypes.js +2 -0
  163. package/lib/esm/components/treeTypes.js.map +1 -0
  164. package/lib/esm/lib.d.ts +4 -1
  165. package/lib/esm/lib.js +4 -1
  166. package/lib/esm/lib.js.map +1 -1
  167. package/lib/esm/renderer.css.js +1 -0
  168. package/lib/esm/utils.d.ts +1 -0
  169. package/lib/esm/utils.js +19 -0
  170. package/lib/esm/utils.js.map +1 -0
  171. package/package.json +69 -13
  172. package/src/ConfigObject.tsx +25 -11
  173. package/src/UiConfigRendererBlueprint.tsx +31 -20
  174. package/src/bpComponents/BPButtonComponent.scss +5 -1
  175. package/src/bpComponents/BPButtonComponent.tsx +10 -3
  176. package/src/bpComponents/BPColorInputComponent.tsx +9 -3
  177. package/src/bpComponents/BPComponent.tsx +17 -4
  178. package/src/bpComponents/BPContainerComponent.tsx +13 -1
  179. package/src/bpComponents/BPDropdownInputComponent.tsx +11 -4
  180. package/src/bpComponents/BPFileComponent.tsx +55 -27
  181. package/src/bpComponents/BPFolderComponent.scss +36 -6
  182. package/src/bpComponents/BPFolderComponent.tsx +109 -18
  183. package/src/bpComponents/BPInputComponent.tsx +6 -2
  184. package/src/bpComponents/BPLabelledComponent.tsx +2 -2
  185. package/src/bpComponents/BPNumberInputComponent.tsx +14 -2
  186. package/src/bpComponents/BPPanelComponent.tsx +1 -1
  187. package/src/bpComponents/BPSliderInputComponent.tsx +40 -20
  188. package/src/bpComponents/BPTextInputComponent.tsx +1 -0
  189. package/src/bpComponents/BPToggleInputComponent.tsx +6 -3
  190. package/src/bpComponents/BPTreeComponent.tsx +125 -25
  191. package/src/bpComponents/BPTreeFolderComponent.tsx +3 -3
  192. package/src/bpComponents/BPValueComponent.tsx +31 -4
  193. package/src/bpComponents/BPVectorInputComponent.tsx +23 -20
  194. package/src/bpComponents/GetNumberTransformFunctions.tsx +14 -0
  195. package/src/bpComponents/NumberUnits.tsx +123 -0
  196. package/src/components/AppToaster.tsx +20 -0
  197. package/src/components/ConfigurationPanelComponent.tsx +14 -3
  198. package/src/components/DialogContext.tsx +125 -65
  199. package/src/components/DraggableIcon.tsx +6 -5
  200. package/src/components/ExtendedNumericInput.tsx +71 -19
  201. package/src/components/FileComponent.tsx +48 -25
  202. package/src/components/InspectorStackComponent.tsx +2 -2
  203. package/src/components/NumericInput.tsx +679 -0
  204. package/src/components/Tree2.tsx +344 -0
  205. package/src/components/TreeNode2.tsx +192 -0
  206. package/src/components/VisualStyleContext.tsx +10 -2
  207. package/src/components/axesIcons.tsx +116 -0
  208. package/src/components/bpIconWrapper.tsx +5 -4
  209. package/src/components/common.scss +17 -0
  210. package/src/components/iconMapping.ts +354 -0
  211. package/src/components/loadingState.tsx +9 -0
  212. package/src/components/shapesIcons.tsx +980 -0
  213. package/src/components/tree2.scss +69 -0
  214. package/src/components/treeTypes.ts +97 -0
  215. package/src/lib.ts +4 -1
  216. package/src/renderer.scss +83 -12
  217. package/src/utils.ts +34 -0
  218. package/tsconfig.json +1 -0
  219. package/dist/allPaths-EYaH0Usv.js +0 -23
  220. package/dist/index-0vU2D25U.js +0 -604
  221. package/dist/index-0vU2D25U.js.map +0 -1
  222. package/dist/index-JBvBPdy9.js +0 -604
  223. package/dist/index-JBvBPdy9.js.map +0 -1
  224. package/dist/index-OyL-zObJ.js +0 -12765
  225. package/dist/index-OyL-zObJ.js.map +0 -1
  226. package/lib/cjs/ConfigObject.d.ts +0 -18
  227. package/lib/cjs/ConfigObject.js +0 -82
  228. package/lib/cjs/ConfigObject.js.map +0 -1
  229. package/lib/cjs/UiConfigRendererBlueprint.d.ts +0 -13
  230. package/lib/cjs/UiConfigRendererBlueprint.js +0 -56
  231. package/lib/cjs/UiConfigRendererBlueprint.js.map +0 -1
  232. package/lib/cjs/bpComponents/BPButtonComponent.d.ts +0 -8
  233. package/lib/cjs/bpComponents/BPButtonComponent.js +0 -19
  234. package/lib/cjs/bpComponents/BPButtonComponent.js.map +0 -1
  235. package/lib/cjs/bpComponents/BPColorInputComponent.d.ts +0 -24
  236. package/lib/cjs/bpComponents/BPColorInputComponent.js +0 -127
  237. package/lib/cjs/bpComponents/BPColorInputComponent.js.map +0 -1
  238. package/lib/cjs/bpComponents/BPComponent.d.ts +0 -29
  239. package/lib/cjs/bpComponents/BPComponent.js +0 -59
  240. package/lib/cjs/bpComponents/BPComponent.js.map +0 -1
  241. package/lib/cjs/bpComponents/BPContainerComponent.d.ts +0 -21
  242. package/lib/cjs/bpComponents/BPContainerComponent.js +0 -54
  243. package/lib/cjs/bpComponents/BPContainerComponent.js.map +0 -1
  244. package/lib/cjs/bpComponents/BPDropdownInputComponent.d.ts +0 -15
  245. package/lib/cjs/bpComponents/BPDropdownInputComponent.js +0 -43
  246. package/lib/cjs/bpComponents/BPDropdownInputComponent.js.map +0 -1
  247. package/lib/cjs/bpComponents/BPFileComponent.d.ts +0 -25
  248. package/lib/cjs/bpComponents/BPFileComponent.js +0 -69
  249. package/lib/cjs/bpComponents/BPFileComponent.js.map +0 -1
  250. package/lib/cjs/bpComponents/BPFolderComponent.d.ts +0 -16
  251. package/lib/cjs/bpComponents/BPFolderComponent.js +0 -39
  252. package/lib/cjs/bpComponents/BPFolderComponent.js.map +0 -1
  253. package/lib/cjs/bpComponents/BPInputComponent.d.ts +0 -11
  254. package/lib/cjs/bpComponents/BPInputComponent.js +0 -34
  255. package/lib/cjs/bpComponents/BPInputComponent.js.map +0 -1
  256. package/lib/cjs/bpComponents/BPLabelledComponent.d.ts +0 -8
  257. package/lib/cjs/bpComponents/BPLabelledComponent.js +0 -14
  258. package/lib/cjs/bpComponents/BPLabelledComponent.js.map +0 -1
  259. package/lib/cjs/bpComponents/BPNumberInputComponent.d.ts +0 -10
  260. package/lib/cjs/bpComponents/BPNumberInputComponent.js +0 -40
  261. package/lib/cjs/bpComponents/BPNumberInputComponent.js.map +0 -1
  262. package/lib/cjs/bpComponents/BPPanelComponent.d.ts +0 -16
  263. package/lib/cjs/bpComponents/BPPanelComponent.js +0 -35
  264. package/lib/cjs/bpComponents/BPPanelComponent.js.map +0 -1
  265. package/lib/cjs/bpComponents/BPSliderInputComponent.d.ts +0 -14
  266. package/lib/cjs/bpComponents/BPSliderInputComponent.js +0 -41
  267. package/lib/cjs/bpComponents/BPSliderInputComponent.js.map +0 -1
  268. package/lib/cjs/bpComponents/BPTextInputComponent.d.ts +0 -7
  269. package/lib/cjs/bpComponents/BPTextInputComponent.js +0 -19
  270. package/lib/cjs/bpComponents/BPTextInputComponent.js.map +0 -1
  271. package/lib/cjs/bpComponents/BPToggleInputComponent.d.ts +0 -8
  272. package/lib/cjs/bpComponents/BPToggleInputComponent.js +0 -22
  273. package/lib/cjs/bpComponents/BPToggleInputComponent.js.map +0 -1
  274. package/lib/cjs/bpComponents/BPTreeComponent.d.ts +0 -36
  275. package/lib/cjs/bpComponents/BPTreeComponent.js +0 -131
  276. package/lib/cjs/bpComponents/BPTreeComponent.js.map +0 -1
  277. package/lib/cjs/bpComponents/BPTreeFolderComponent.d.ts +0 -10
  278. package/lib/cjs/bpComponents/BPTreeFolderComponent.js +0 -40
  279. package/lib/cjs/bpComponents/BPTreeFolderComponent.js.map +0 -1
  280. package/lib/cjs/bpComponents/BPValueComponent.d.ts +0 -16
  281. package/lib/cjs/bpComponents/BPValueComponent.js +0 -46
  282. package/lib/cjs/bpComponents/BPValueComponent.js.map +0 -1
  283. package/lib/cjs/bpComponents/BPVectorInputComponent.d.ts +0 -19
  284. package/lib/cjs/bpComponents/BPVectorInputComponent.js +0 -110
  285. package/lib/cjs/bpComponents/BPVectorInputComponent.js.map +0 -1
  286. package/lib/cjs/components/ConfigurationPanelComponent.d.ts +0 -4
  287. package/lib/cjs/components/ConfigurationPanelComponent.js +0 -30
  288. package/lib/cjs/components/ConfigurationPanelComponent.js.map +0 -1
  289. package/lib/cjs/components/DialogContext.d.ts +0 -48
  290. package/lib/cjs/components/DialogContext.js +0 -79
  291. package/lib/cjs/components/DialogContext.js.map +0 -1
  292. package/lib/cjs/components/DraggableIcon.d.ts +0 -19
  293. package/lib/cjs/components/DraggableIcon.js +0 -70
  294. package/lib/cjs/components/DraggableIcon.js.map +0 -1
  295. package/lib/cjs/components/ExtendedNumericInput.d.ts +0 -25
  296. package/lib/cjs/components/ExtendedNumericInput.js +0 -174
  297. package/lib/cjs/components/ExtendedNumericInput.js.map +0 -1
  298. package/lib/cjs/components/FileComponent.d.ts +0 -7
  299. package/lib/cjs/components/FileComponent.js +0 -49
  300. package/lib/cjs/components/FileComponent.js.map +0 -1
  301. package/lib/cjs/components/FormGroupComponent.d.ts +0 -6
  302. package/lib/cjs/components/FormGroupComponent.js +0 -16
  303. package/lib/cjs/components/FormGroupComponent.js.map +0 -1
  304. package/lib/cjs/components/InspectorStackComponent.d.ts +0 -4
  305. package/lib/cjs/components/InspectorStackComponent.js +0 -27
  306. package/lib/cjs/components/InspectorStackComponent.js.map +0 -1
  307. package/lib/cjs/components/VisualStyleContext.d.ts +0 -119
  308. package/lib/cjs/components/VisualStyleContext.js +0 -60
  309. package/lib/cjs/components/VisualStyleContext.js.map +0 -1
  310. package/lib/cjs/components/bpIconWrapper.d.ts +0 -2
  311. package/lib/cjs/components/bpIconWrapper.js +0 -9
  312. package/lib/cjs/components/bpIconWrapper.js.map +0 -1
  313. package/lib/cjs/components/loadingState.d.ts +0 -4
  314. package/lib/cjs/components/loadingState.js +0 -16
  315. package/lib/cjs/components/loadingState.js.map +0 -1
  316. package/lib/cjs/components/variableIcons.d.ts +0 -40
  317. package/lib/cjs/components/variableIcons.js +0 -46
  318. package/lib/cjs/components/variableIcons.js.map +0 -1
  319. package/lib/cjs/contexts.d.ts +0 -1
  320. package/lib/cjs/contexts.js +0 -3
  321. package/lib/cjs/contexts.js.map +0 -1
  322. package/lib/cjs/index.d.ts +0 -4
  323. package/lib/cjs/index.js +0 -9
  324. package/lib/cjs/index.js.map +0 -1
  325. package/lib/cjs/lib.d.ts +0 -32
  326. package/lib/cjs/lib.js +0 -49
  327. package/lib/cjs/lib.js.map +0 -1
  328. package/lib/cjs/threejs.d.ts +0 -2
  329. package/lib/cjs/threejs.js +0 -3
  330. package/lib/cjs/threejs.js.map +0 -1
  331. package/lib/esnext/ConfigObject.d.ts +0 -18
  332. package/lib/esnext/ConfigObject.js +0 -75
  333. package/lib/esnext/ConfigObject.js.map +0 -1
  334. package/lib/esnext/UiConfigRendererBlueprint.d.ts +0 -13
  335. package/lib/esnext/UiConfigRendererBlueprint.js +0 -52
  336. package/lib/esnext/UiConfigRendererBlueprint.js.map +0 -1
  337. package/lib/esnext/bpComponents/BPButtonComponent.d.ts +0 -8
  338. package/lib/esnext/bpComponents/BPButtonComponent.js +0 -15
  339. package/lib/esnext/bpComponents/BPButtonComponent.js.map +0 -1
  340. package/lib/esnext/bpComponents/BPColorInputComponent.d.ts +0 -24
  341. package/lib/esnext/bpComponents/BPColorInputComponent.js +0 -110
  342. package/lib/esnext/bpComponents/BPColorInputComponent.js.map +0 -1
  343. package/lib/esnext/bpComponents/BPComponent.d.ts +0 -29
  344. package/lib/esnext/bpComponents/BPComponent.js +0 -46
  345. package/lib/esnext/bpComponents/BPComponent.js.map +0 -1
  346. package/lib/esnext/bpComponents/BPContainerComponent.d.ts +0 -21
  347. package/lib/esnext/bpComponents/BPContainerComponent.js +0 -51
  348. package/lib/esnext/bpComponents/BPContainerComponent.js.map +0 -1
  349. package/lib/esnext/bpComponents/BPDropdownInputComponent.d.ts +0 -15
  350. package/lib/esnext/bpComponents/BPDropdownInputComponent.js +0 -40
  351. package/lib/esnext/bpComponents/BPDropdownInputComponent.js.map +0 -1
  352. package/lib/esnext/bpComponents/BPFileComponent.d.ts +0 -25
  353. package/lib/esnext/bpComponents/BPFileComponent.js +0 -52
  354. package/lib/esnext/bpComponents/BPFileComponent.js.map +0 -1
  355. package/lib/esnext/bpComponents/BPFolderComponent.d.ts +0 -16
  356. package/lib/esnext/bpComponents/BPFolderComponent.js +0 -30
  357. package/lib/esnext/bpComponents/BPFolderComponent.js.map +0 -1
  358. package/lib/esnext/bpComponents/BPInputComponent.d.ts +0 -11
  359. package/lib/esnext/bpComponents/BPInputComponent.js +0 -19
  360. package/lib/esnext/bpComponents/BPInputComponent.js.map +0 -1
  361. package/lib/esnext/bpComponents/BPLabelledComponent.d.ts +0 -8
  362. package/lib/esnext/bpComponents/BPLabelledComponent.js +0 -13
  363. package/lib/esnext/bpComponents/BPLabelledComponent.js.map +0 -1
  364. package/lib/esnext/bpComponents/BPNumberInputComponent.d.ts +0 -10
  365. package/lib/esnext/bpComponents/BPNumberInputComponent.js +0 -21
  366. package/lib/esnext/bpComponents/BPNumberInputComponent.js.map +0 -1
  367. package/lib/esnext/bpComponents/BPPanelComponent.d.ts +0 -16
  368. package/lib/esnext/bpComponents/BPPanelComponent.js +0 -31
  369. package/lib/esnext/bpComponents/BPPanelComponent.js.map +0 -1
  370. package/lib/esnext/bpComponents/BPSliderInputComponent.d.ts +0 -14
  371. package/lib/esnext/bpComponents/BPSliderInputComponent.js +0 -39
  372. package/lib/esnext/bpComponents/BPSliderInputComponent.js.map +0 -1
  373. package/lib/esnext/bpComponents/BPTextInputComponent.d.ts +0 -7
  374. package/lib/esnext/bpComponents/BPTextInputComponent.js +0 -15
  375. package/lib/esnext/bpComponents/BPTextInputComponent.js.map +0 -1
  376. package/lib/esnext/bpComponents/BPToggleInputComponent.d.ts +0 -8
  377. package/lib/esnext/bpComponents/BPToggleInputComponent.js +0 -18
  378. package/lib/esnext/bpComponents/BPToggleInputComponent.js.map +0 -1
  379. package/lib/esnext/bpComponents/BPTreeComponent.d.ts +0 -36
  380. package/lib/esnext/bpComponents/BPTreeComponent.js +0 -111
  381. package/lib/esnext/bpComponents/BPTreeComponent.js.map +0 -1
  382. package/lib/esnext/bpComponents/BPTreeFolderComponent.d.ts +0 -10
  383. package/lib/esnext/bpComponents/BPTreeFolderComponent.js +0 -23
  384. package/lib/esnext/bpComponents/BPTreeFolderComponent.js.map +0 -1
  385. package/lib/esnext/bpComponents/BPValueComponent.d.ts +0 -16
  386. package/lib/esnext/bpComponents/BPValueComponent.js +0 -29
  387. package/lib/esnext/bpComponents/BPValueComponent.js.map +0 -1
  388. package/lib/esnext/bpComponents/BPVectorInputComponent.d.ts +0 -19
  389. package/lib/esnext/bpComponents/BPVectorInputComponent.js +0 -93
  390. package/lib/esnext/bpComponents/BPVectorInputComponent.js.map +0 -1
  391. package/lib/esnext/components/ConfigurationPanelComponent.d.ts +0 -4
  392. package/lib/esnext/components/ConfigurationPanelComponent.js +0 -26
  393. package/lib/esnext/components/ConfigurationPanelComponent.js.map +0 -1
  394. package/lib/esnext/components/DialogContext.d.ts +0 -48
  395. package/lib/esnext/components/DialogContext.js +0 -55
  396. package/lib/esnext/components/DialogContext.js.map +0 -1
  397. package/lib/esnext/components/DraggableIcon.d.ts +0 -19
  398. package/lib/esnext/components/DraggableIcon.js +0 -62
  399. package/lib/esnext/components/DraggableIcon.js.map +0 -1
  400. package/lib/esnext/components/ExtendedNumericInput.d.ts +0 -25
  401. package/lib/esnext/components/ExtendedNumericInput.js +0 -151
  402. package/lib/esnext/components/ExtendedNumericInput.js.map +0 -1
  403. package/lib/esnext/components/FileComponent.d.ts +0 -7
  404. package/lib/esnext/components/FileComponent.js +0 -42
  405. package/lib/esnext/components/FileComponent.js.map +0 -1
  406. package/lib/esnext/components/FormGroupComponent.d.ts +0 -6
  407. package/lib/esnext/components/FormGroupComponent.js +0 -11
  408. package/lib/esnext/components/FormGroupComponent.js.map +0 -1
  409. package/lib/esnext/components/InspectorStackComponent.d.ts +0 -4
  410. package/lib/esnext/components/InspectorStackComponent.js +0 -23
  411. package/lib/esnext/components/InspectorStackComponent.js.map +0 -1
  412. package/lib/esnext/components/VisualStyleContext.d.ts +0 -119
  413. package/lib/esnext/components/VisualStyleContext.js +0 -53
  414. package/lib/esnext/components/VisualStyleContext.js.map +0 -1
  415. package/lib/esnext/components/bpIconWrapper.d.ts +0 -2
  416. package/lib/esnext/components/bpIconWrapper.js +0 -5
  417. package/lib/esnext/components/bpIconWrapper.js.map +0 -1
  418. package/lib/esnext/components/loadingState.d.ts +0 -4
  419. package/lib/esnext/components/loadingState.js +0 -12
  420. package/lib/esnext/components/loadingState.js.map +0 -1
  421. package/lib/esnext/components/variableIcons.d.ts +0 -40
  422. package/lib/esnext/components/variableIcons.js +0 -43
  423. package/lib/esnext/components/variableIcons.js.map +0 -1
  424. package/lib/esnext/contexts.d.ts +0 -1
  425. package/lib/esnext/contexts.js +0 -2
  426. package/lib/esnext/contexts.js.map +0 -1
  427. package/lib/esnext/index.d.ts +0 -4
  428. package/lib/esnext/index.js +0 -5
  429. package/lib/esnext/index.js.map +0 -1
  430. package/lib/esnext/lib.d.ts +0 -32
  431. package/lib/esnext/lib.js +0 -33
  432. package/lib/esnext/lib.js.map +0 -1
  433. package/lib/esnext/threejs.d.ts +0 -2
  434. package/lib/esnext/threejs.js +0 -2
  435. package/lib/esnext/threejs.js.map +0 -1
@@ -0,0 +1 @@
1
+ export declare function cleanLabel(varName?: string): string | undefined;
@@ -0,0 +1,19 @@
1
+ export function cleanLabel(varName) {
2
+ if (!varName || typeof varName !== 'string') {
3
+ return varName;
4
+ }
5
+ let result = varName.trim();
6
+ if (!result)
7
+ return '';
8
+ if (result.includes(' '))
9
+ return result;
10
+ result = result.replace(/_/g, ' ');
11
+ result = result.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2');
12
+ result = result.replace(/([a-z])([A-Z])/g, '$1 $2');
13
+ result = result.replace(/([a-zA-Z])(\d)/g, '$1 $2');
14
+ result = result.replace(/(\d)([a-zA-Z])/g, '$1 $2');
15
+ const words = result.split(/\s+/).filter(word => word.length > 0);
16
+ const capitalizedWords = words.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase());
17
+ return capitalizedWords.join(' ');
18
+ }
19
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,OAAgB;IACvC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAInC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAEzD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAGpD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAGpD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAGpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC7D,CAAC;IAGF,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,18 +1,50 @@
1
1
  {
2
2
  "name": "uiconfig-blueprint",
3
3
  "name:umd": "bpui",
4
- "version": "0.1.0-dev.1",
4
+ "version": "0.1.0-dev.12",
5
5
  "description": "Blueprint.js wrapper and custom components for web controls UI. To be used with uiconfig.",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.mjs",
8
+ "browser": "dist/index.js",
9
+ "types": "dist/index.d.ts",
8
10
  "source": "src/index.ts",
9
11
  "sideEffects": false,
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.mjs",
16
+ "require": "./dist/index.js",
17
+ "browser": "./dist/index.js"
18
+ },
19
+ "./dist/": {
20
+ "import": "./dist/",
21
+ "require": "./dist/"
22
+ },
23
+ "./lib/esm": {
24
+ "types": "./lib/esm/index.d.ts",
25
+ "import": "./lib/esm/index.js"
26
+ },
27
+ "./lib/esm/*": {
28
+ "types": "./lib/esm/*.d.ts",
29
+ "import": "./lib/esm/*.js"
30
+ },
31
+ "./lib/css/*": {
32
+ "import": "./lib/css/*.css",
33
+ "require": "./lib/css/*.css"
34
+ },
35
+ "./src/": {
36
+ "import": "./src/",
37
+ "require": "./src/"
38
+ },
39
+ "./package.json": "./package.json"
40
+ },
10
41
  "files": [
11
42
  "lib",
12
43
  "dist",
13
44
  "src",
14
45
  "docs",
15
- "tsconfig.json"
46
+ "tsconfig.json",
47
+ "README.md"
16
48
  ],
17
49
  "repository": {
18
50
  "type": "git",
@@ -35,22 +67,48 @@
35
67
  },
36
68
  "homepage": "https://github.com/repalash/uiconfig-blueprint#readme",
37
69
  "dependencies": {
38
- "@blueprintjs/core": "^5.7.2",
70
+ "ts-browser-helpers": "^0.18.0",
71
+ "uiconfig.js": "^0.1.6",
72
+ "@blueprintjs/icons": "^5.11.0",
73
+ "@blueprintjs/select": "^5.2.2",
74
+ "blueprint-styler": "^5.0.2",
75
+ "react-colorful": "^5.6.1"
76
+ },
77
+ "peerDependencies": {
78
+ "@blueprintjs/core": "^5.11.0",
39
79
  "@types/three": "^0.152.1",
40
- "ts-browser-helpers": "^0.8.0",
41
80
  "@types/webxr": "^0.5.10",
42
- "uiconfig.js": "^0.0.9",
43
- "@blueprintjs/icons": "^5.5.0",
44
- "@blueprintjs/select": "^5.0.20",
45
- "blueprint-styler": "^5.0.2",
46
81
  "@types/react": "^18.0.28",
47
82
  "@types/react-dom": "^18.0.11",
48
83
  "react": "^18.2.0",
49
84
  "react-dom": "^18.2.0"
50
85
  },
86
+ "peerDependenciesMeta": {
87
+ "@blueprintjs/core": {
88
+ "optional": true
89
+ },
90
+ "@types/three": {
91
+ "optional": true
92
+ },
93
+ "@types/webxr": {
94
+ "optional": true
95
+ },
96
+ "@types/react": {
97
+ "optional": true
98
+ },
99
+ "@types/react-dom": {
100
+ "optional": true
101
+ },
102
+ "react": {
103
+ "optional": true
104
+ },
105
+ "react-dom": {
106
+ "optional": true
107
+ }
108
+ },
51
109
  "//": {
52
- "dependencies": {
53
- "uiconfig.js": "^0.0.9"
110
+ "devDependencies": {
111
+ "uiconfig.js": "^0.0.12"
54
112
  },
55
113
  "local_dependencies": {
56
114
  "uiconfig.js": "file:./../uiconfig/"
@@ -63,7 +121,5 @@
63
121
  "browserslist": [
64
122
  "defaults"
65
123
  ],
66
- "type": "module",
67
- "browser": "dist/index.js",
68
- "types": "dist/index.d.ts"
124
+ "type": "module"
69
125
  }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import {Class, PartialRecord} from "ts-browser-helpers";
2
+ import {Class, getOrCall, PartialRecord} from "ts-browser-helpers";
3
3
  import {BPComponentProps, BPComponentState, UiConfigRendererContext} from "./bpComponents/BPComponent";
4
4
  import {BPFolderComponent, FolderHeadCard} from "./bpComponents/BPFolderComponent";
5
5
  import {BPTextInputComponent} from "./bpComponents/BPTextInputComponent";
@@ -13,7 +13,6 @@ import {BPPanelComponent} from "./bpComponents/BPPanelComponent";
13
13
  import {BPTreeFolderComponent} from "./bpComponents/BPTreeFolderComponent";
14
14
  import {UiObjectConfig} from 'uiconfig.js'
15
15
  import {BPColorInputComponent} from './bpComponents/BPColorInputComponent'
16
- import {BPFileComponent} from "./bpComponents/BPFileComponent";
17
16
  import {BPVectorInputComponent} from './bpComponents/BPVectorInputComponent'
18
17
  // import {BPVectorInputComponent} from "./bpComponents/BPVectorInputComponent";
19
18
  // import {BPFileComponent} from "./bpComponents/BPFileComponent";
@@ -21,13 +20,14 @@ import {BPVectorInputComponent} from './bpComponents/BPVectorInputComponent'
21
20
  // import {BPHierarchyComponent} from "./bpComponents/BPHierarchyComponent";
22
21
 
23
22
  export type UiConfigTypes = 'input' | 'button' | 'folder' | 'checkbox' | 'toggle' |
24
- 'dropdown' | 'slider' | 'color' | 'image' | 'number' | 'panel' | 'tree' | 'hierarchy' |
25
- 'vec' | 'vec2' | 'vec3' | 'vec4' | 'monitor'
23
+ 'dropdown' | 'slider' | 'color' | 'image' | 'number' | 'panel' | 'tree' | 'hierarchy' | 'materials' | 'textures' |
24
+ 'vec' | 'vec2' | 'vec3' | 'vec4' | 'monitor' | 'vector'
26
25
 
27
26
  export interface ConfigProps extends PanelActions {
28
27
  config: UiObjectConfig;
29
28
  isPanel?: boolean,
30
29
  level?: number,
30
+ className?: string
31
31
  }
32
32
 
33
33
  export const ConfigObjectGenerators: PartialRecord<UiConfigTypes, Class<React.Component<BPComponentProps<any>, BPComponentState>>> = {
@@ -44,11 +44,12 @@ export const ConfigObjectGenerators: PartialRecord<UiConfigTypes, Class<React.Co
44
44
  slider: BPSliderInputComponent,
45
45
  tree: BPTreeFolderComponent,
46
46
  color: BPColorInputComponent,
47
- image: BPFileComponent,
47
+ // image: BPFileComponent,
48
48
  vec: BPVectorInputComponent,
49
49
  vec2: BPVectorInputComponent,
50
50
  vec3: BPVectorInputComponent,
51
51
  vec4: BPVectorInputComponent,
52
+ vector: BPVectorInputComponent,
52
53
  // hierarchy: BPHierarchyComponent,
53
54
  }
54
55
 
@@ -58,10 +59,14 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
58
59
  state = {}
59
60
 
60
61
  render() {
62
+ if (!this.props.config || !this.props.config.type) return (<div key={this.props.config.uuid} className={this.props.className}></div>)
61
63
  this.context.methods.initUiConfig(this.props.config)
62
- if (!this.props.config.type) return (<div key={this.props.config.uuid}></div>)
64
+
65
+ const order = this.props.config.order ? getOrCall(this.props.config.order, this.props.config) ?? undefined : undefined
66
+ const orderStyle = {order: order && typeof order === 'string' ? parseInt(order): order}
67
+
63
68
  let type = this.props.config.type as any as UiConfigTypes
64
- const val = this.context.methods.getValue(this.props.config)
69
+ const val = this.context.methods.getRawValue(this.props.config)
65
70
 
66
71
  // hacks
67
72
  if (type === 'input' && typeof val === 'number') this.props.config.type = type = 'number'
@@ -75,9 +80,15 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
75
80
  let BPComp = ConfigObjectGenerators[type]
76
81
  if (type === 'panel' && !this.props.isPanel) {
77
82
  const label = this.context.methods.getLabel(this.props.config)
83
+ const children = this.context.methods.getChildren(this.props.config)
84
+ const enabledToggle = children[0] && this.context.methods.getLabel(children[0]).toLowerCase() === 'enabled' ? children[0] : undefined
85
+ enabledToggle && (enabledToggle.hidden = true)
78
86
  return (
79
- <div key={this.props.config.uuid}>
80
- <FolderHeadCard label={label} minimal={false} open={false} onClick={() => {
87
+ <div key={this.props.config.uuid} style={orderStyle} className={this.props.className}>
88
+ <FolderHeadCard
89
+ enabled={enabledToggle ? this.context.methods.getRawValue(enabledToggle) : undefined}
90
+ onEnabledChange={(e) => enabledToggle && this.context.methods.setValue(enabledToggle, e.target.checked, {}).then(() => this.setState(this.state))}
91
+ level={0} label={label} minimal={false} open={false} onClick={() => {
81
92
  this.props.openPanel<{ config: UiObjectConfig<any> }>({
82
93
  props: {config: this.props.config},
83
94
  title: label,
@@ -92,9 +103,12 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
92
103
  )
93
104
  }
94
105
  if (BPComp) {
95
- return (<div key={this.props.config.uuid}><BPComp {...{...this.props, isPanel: undefined}} /></div>)
106
+ return (<div key={this.props.config.uuid} style={orderStyle} className={this.props.className}><BPComp {...{...this.props, isPanel: undefined}} /></div>)
96
107
  }
97
- return (<div key={this.props.config.uuid}>Unknown type: {this.props.config.type}</div>)
108
+ return (<div key={this.props.config.uuid} style={orderStyle} className={this.props.className}>
109
+ {/*Unknown type: {this.props.config.type}*/}
110
+ </div>)
111
+ // return null
98
112
 
99
113
  // let uiRef: React.FC | BPUiRef<any> | null = this.props.uiConfig.uiRef
100
114
  // if (uiRef) {
@@ -1,5 +1,5 @@
1
- import {createDiv, createStyles, css} from "ts-browser-helpers";
2
- import {UiConfigRendererBase, UiObjectConfig} from "uiconfig.js";
1
+ import {createDiv, createStyles, css, JSUndoManager} from "ts-browser-helpers";
2
+ import {UiConfigRenderer, UiObjectConfig} from "uiconfig.js";
3
3
  import React from 'react'
4
4
  import {createRoot, Root} from 'react-dom/client'
5
5
  import {ConfigurationPanelComponent} from './components/ConfigurationPanelComponent'
@@ -9,32 +9,43 @@ import rendererCss from './renderer.scss?inline' // for rollup build remove ?inl
9
9
  import {FocusStyleManager} from '@blueprintjs/core'
10
10
  import {THREE} from "./threejs";
11
11
 
12
- export class UiConfigRendererBlueprint extends UiConfigRendererBase<Root> {
13
-
14
- constructor(container: HTMLElement = document.body, {autoPostFrame = true} = {}) {
15
- super(container, autoPostFrame);
12
+ export class UiConfigRendererBlueprint extends UiConfigRenderer {
13
+ constructor(container: HTMLElement = document.body, {autoPostFrame = true} = {}, undoManager?: JSUndoManager|false) {
14
+ super(container, autoPostFrame, undefined, undoManager);
16
15
  // this._root.expanded = expanded
17
-
18
16
  }
19
17
 
18
+ protected _root: Root
19
+
20
20
  protected _createUiContainer(): HTMLDivElement {
21
21
  FocusStyleManager.onlyShowFocusOnTabs();
22
22
 
23
23
  const container = createDiv({id: 'blueprintUiContainer', addToBody: false})
24
24
  createStyles(css`
25
- :root{
26
- --blueprint-ui-container-width: 300px;
27
- }
28
- @media only screen and (min-width: 1500px) {
29
- :root{
30
- --blueprint-ui-container-width: 400px;
25
+ :root {
26
+ --blueprint-ui-container-width: 300px;
31
27
  }
32
- }
33
- @media only screen and (min-width: 2500px) {
34
- :root{
35
- --blueprint-ui-container-width: 500px;
28
+
29
+ @media only screen and (min-width: 1500px) {
30
+ :root {
31
+ --blueprint-ui-container-width: 400px;
32
+ }
33
+ }
34
+ @media only screen and (min-width: 2500px) {
35
+ :root {
36
+ --blueprint-ui-container-width: 500px;
37
+ }
38
+ }
39
+
40
+ @media only screen and (min-width: 600px) {
41
+ #blueprintUiContainer {
42
+ min-width: var(--blueprint-ui-container-width);
43
+ min-height: 200px;
44
+ max-height: 100%;
45
+ max-width: 100%;
46
+ resize: both;
47
+ }
36
48
  }
37
- }
38
49
  `)
39
50
  createStyles(rendererCss)
40
51
 
@@ -65,8 +76,8 @@ export class UiConfigRendererBlueprint extends UiConfigRendererBase<Root> {
65
76
  // eslint-disable-next-line @typescript-eslint/naming-convention
66
77
  THREE: THREE|undefined = (window as any).THREE
67
78
 
68
- dispose() {
69
- // todo
79
+ unmount() {
80
+ this._root?.unmount()
70
81
  }
71
82
 
72
83
  }
@@ -2,8 +2,12 @@
2
2
  .bpButtonComponent {
3
3
  //width: 100%;
4
4
  display: flex;
5
+ flex: 1 1;
5
6
  justify-content: center;
6
- flex-basis: 50%;
7
+ //min-width: 50%;
7
8
  margin: 2px 0;
8
9
  width: max-content;
10
+
11
+ height: auto;
12
+ align-self: stretch;
9
13
  }
@@ -1,8 +1,9 @@
1
1
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
2
2
  import React from "react";
3
3
  import {BPLabelledComponent, BPLabelledComponentState} from "./BPLabelledComponent";
4
- import {Button} from "@blueprintjs/core";
4
+ import {Button, Intent} from "@blueprintjs/core";
5
5
 
6
+ // @ts-ignore
6
7
  export class BPButtonComponent extends BPLabelledComponent<()=>void, BPLabelledComponentState> {
7
8
  constructor(props: BPComponentProps<()=>void>, context: UiConfigRendererContextType) {
8
9
  super(props, context, {label: 'Button'});
@@ -13,12 +14,18 @@ export class BPButtonComponent extends BPLabelledComponent<()=>void, BPLabelledC
13
14
  this.context.methods.clickButton(this.props.config, {args: [event]})
14
15
  }
15
16
 
17
+ protected flexBasis = "50%"
18
+
16
19
  render() {
17
20
  return !this.state.hidden ? (
18
- <div className="bpButtonComponent xPaddedContent">
21
+ <div className="bpButtonComponent xPaddedContent"
22
+ style={{flexBasis: this.state.baseWidth ?? this.flexBasis}}
23
+ >
19
24
  <Button className="bpButton"
20
- disabled={this.state.disabled}
25
+ disabled={this.state.disabled || this.state.readOnly}
26
+ intent={Intent.PRIMARY}
21
27
  // small={true}
28
+ fill={true}
22
29
  text={this.state.label} style={{}} onClick={this.onClick}/>
23
30
  </div>
24
31
  ) : null
@@ -20,7 +20,7 @@ export class BPColorInputComponent extends BPValueComponent<ColorRepresentation,
20
20
  constructor(props: BPComponentProps<ColorRepresentation>, context: UiConfigRendererContextType) {
21
21
  super(props, context, {
22
22
  label: 'Color',
23
- value: "#000000",
23
+ value: '#000000',
24
24
  mode: 'number',
25
25
  srgbConvert: false,
26
26
  });
@@ -39,7 +39,7 @@ export class BPColorInputComponent extends BPValueComponent<ColorRepresentation,
39
39
  else console.error('not supported color', val)
40
40
  this._tempColor.set(val)
41
41
  if (srgbConvert) this._tempColor.convertLinearToSRGB()
42
- const value = '#' + this._tempColor.getHexString()
42
+ const value = '#' + this._tempColor.getHexString().toUpperCase()
43
43
  // console.log('color', mode, value, val)
44
44
  return {...state, mode, value, lastValue: val, srgbConvert} // default config.srgb = false
45
45
  }
@@ -95,11 +95,17 @@ export class BPColorInputComponent extends BPValueComponent<ColorRepresentation,
95
95
  document.addEventListener('mouseup', this._mouseUp)
96
96
  }
97
97
 
98
+ protected flexBasis = "100%"
99
+
98
100
  render() {
99
101
  return !this.state.hidden ? (
100
- <FormGroupComponent label={this.state.label}>
102
+ <FormGroupComponent
103
+ label={this.state.label}
104
+ flexBasis={this.state.baseWidth ?? this.flexBasis}
105
+ >
101
106
  <InputGroup inputRef={this._inputRef}
102
107
  disabled={this.state.disabled} readOnly={this.state.readOnly}
108
+ fill={true}
103
109
  leftElement={(
104
110
  <Popover
105
111
  popoverClassName={'color-picker-popover'}
@@ -12,6 +12,7 @@ export type BPComponentState = {
12
12
  hidden?: boolean
13
13
  disabled?: boolean
14
14
  readOnly?: boolean // same as disabled(for most inputs)
15
+ baseWidth?: string // for flexBasis, can be a number or a string like '50%' or '100px'
15
16
  }
16
17
  export interface UiConfigRendererBaseBp extends UiConfigRendererBase{
17
18
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -20,7 +21,7 @@ export interface UiConfigRendererBaseBp extends UiConfigRendererBase{
20
21
 
21
22
  export const UiConfigRendererContext = createContext<UiConfigRendererBaseBp>(null as any)
22
23
  export type UiConfigRendererContextType = React.ContextType<typeof UiConfigRendererContext>
23
- export abstract class BPComponent<TValue, TState, TProps extends BPComponentProps<TValue> = BPComponentProps<TValue>> extends React.Component<TProps, TState> {
24
+ export abstract class BPComponent<TValue, TState extends BPComponentState, TProps extends BPComponentProps<TValue> = BPComponentProps<TValue>> extends React.Component<TProps, TState> {
24
25
  static contextType = UiConfigRendererContext
25
26
  declare context: UiConfigRendererContextType
26
27
 
@@ -28,6 +29,7 @@ export abstract class BPComponent<TValue, TState, TProps extends BPComponentProp
28
29
  super(props, context);
29
30
  this.state = this.getUpdatedState(state)
30
31
  // this.state = state
32
+ this.setState = this.setState.bind(this)
31
33
  }
32
34
 
33
35
  /**
@@ -38,16 +40,27 @@ export abstract class BPComponent<TValue, TState, TProps extends BPComponentProp
38
40
  return new Promise<void>(resolve => this.setState(state, resolve))
39
41
  }
40
42
 
43
+ keyVersion = 0
44
+
41
45
  /**
42
46
  * This is called to get the updated state from the config, copy any values/properties from the config to the state here
43
47
  * @param state - the current state
44
48
  */
45
49
  getUpdatedState(state: TState): TState{
50
+ const hidden = getOrCall(this.props.config.hidden) ?? false
51
+ const disabled = getOrCall(this.props.config.disabled) ?? false
52
+ const readOnly = getOrCall(this.props.config.readOnly) ?? false
53
+ const baseWidth = getOrCall(this.props.config.baseWidth) ?? undefined
54
+ if(hidden !== state.hidden
55
+ || disabled !== state.disabled
56
+ || readOnly !== state.readOnly
57
+ ) this.keyVersion++
46
58
  return {
47
59
  ...state,
48
- hidden: getOrCall(this.props.config.hidden) ?? false,
49
- disabled: getOrCall(this.props.config.disabled) ?? false,
50
- readOnly: getOrCall(this.props.config.readOnly) ?? false,
60
+ hidden,
61
+ disabled,
62
+ readOnly,
63
+ baseWidth
51
64
  }
52
65
  }
53
66
 
@@ -16,6 +16,7 @@ export class BPContainerComponent<TState extends BPContainerComponentState=BPCon
16
16
  }
17
17
 
18
18
  protected _registerChild(child: UiObjectConfig) {
19
+ // if(Object.keys(child).length)
19
20
  child.parentOnChange = this._childParentOnChange
20
21
  if(child.property === undefined &&
21
22
  child.value === undefined &&
@@ -28,7 +29,7 @@ export class BPContainerComponent<TState extends BPContainerComponentState=BPCon
28
29
 
29
30
  protected _unregisterChild(child: UiObjectConfig) {
30
31
  if (child.parentOnChange !== this._childParentOnChange)
31
- child.parentOnChange = undefined
32
+ delete child.parentOnChange
32
33
  if(Array.isArray(child.property) &&
33
34
  (child.property === this.props.config.property ||
34
35
  (child.property[0] === this.props.config &&
@@ -44,6 +45,17 @@ export class BPContainerComponent<TState extends BPContainerComponentState=BPCon
44
45
  getUpdatedState(state: TState) {
45
46
  const oldChildren = state.children
46
47
  const newChildren = this.context.methods.getChildren(this.props.config)
48
+ .flatMap(c=>{
49
+ if(c.type === 'folder' &&
50
+ c.unwrapContents === true
51
+ ){
52
+ const children2 = this.context.methods.getChildren(c)
53
+ const enabledToggle = children2[0] && this.context.methods.getBinding(children2[0])[1] === 'enabled' ? children2[0] : undefined
54
+ enabledToggle && (enabledToggle.hidden = true)
55
+ return children2
56
+ }
57
+ return c
58
+ })
47
59
  const removed = oldChildren.filter(c => !newChildren.includes(c))
48
60
  const added = newChildren.filter(c => !oldChildren.includes(c))
49
61
  // console.warn(this, this._registerChild, this._childParentOnChange, added, removed)
@@ -3,6 +3,7 @@ import {Button, MenuItem} from "@blueprintjs/core";
3
3
  import {BPInputComponent} from "./BPInputComponent";
4
4
  import {BPValueComponentState} from "./BPValueComponent";
5
5
  import {ItemRenderer, Select} from "@blueprintjs/select";
6
+ import {cleanLabel} from "../utils";
6
7
 
7
8
  export interface DropdownItem{
8
9
  label: string,
@@ -40,8 +41,8 @@ export class BPDropdownInputComponent extends BPInputComponent<string|number, BP
40
41
 
41
42
  getUpdatedState(state: BPDropdownComponentState): BPDropdownComponentState {
42
43
  const children = this.context.methods.getChildren(this.props.config)
43
- const options: DropdownItem[] = children.map(value => {
44
- const label = this.context.methods.getLabel(value)
44
+ const options: DropdownItem[] = children.map((value, i) => {
45
+ const label = cleanLabel(this.context.methods.getLabel(value)) || `Option ${i}`
45
46
  return {label, value: value!.value ?? label}
46
47
  })
47
48
 
@@ -59,8 +60,14 @@ export class BPDropdownInputComponent extends BPInputComponent<string|number, BP
59
60
  activeItem={item}
60
61
  key={this.props.config.uuid}
61
62
  disabled={this.state.disabled}
63
+ fill={true}
62
64
  popoverProps={{
63
- minimal: true
65
+ minimal: true,
66
+ }}
67
+ popoverTargetProps={{
68
+ style: {
69
+ height: "var(--pt-input-height)",
70
+ }
64
71
  }}
65
72
  noResults={<MenuItem disabled={true} text="No results." roleStructure="listoption" />}
66
73
  items={this.state.options}
@@ -72,7 +79,7 @@ export class BPDropdownInputComponent extends BPInputComponent<string|number, BP
72
79
  >
73
80
  {/* children become the popover target; render value here */}
74
81
  <Button rightIcon="double-caret-vertical" small={true}
75
- style={{whiteSpace: 'nowrap', textOverflow: "ellipsis"}}>{item.label}</Button>
82
+ style={{whiteSpace: 'nowrap', textOverflow: "ellipsis", height: "100%"}}>{item.label}</Button>
76
83
  </Select>
77
84
  )
78
85
  }