xmlui 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/dist/Pdf-DeGhSMXe.mjs +19537 -0
  2. package/dist/Pdf.css +1 -0
  3. package/dist/apiInterceptorWorker-CwuUhYyc.mjs +9229 -0
  4. package/dist/array-USo-Szhp.mjs +12 -0
  5. package/dist/index-C24dkfpd.mjs +1434 -0
  6. package/dist/index-ao27SnVp.mjs +145185 -0
  7. package/dist/index.css +1 -0
  8. package/dist/nivo-bar.es-CWh0ZlxB.mjs +1666 -0
  9. package/dist/nivo-geo.es-BTqNt5Db.mjs +1579 -0
  10. package/dist/nivo-legends.es-BuIxHGSU.mjs +6916 -0
  11. package/dist/nivo-pie.es-BvCBFA0L.mjs +700 -0
  12. package/dist/react-apexcharts.min-DqWuDOyO.mjs +8881 -0
  13. package/dist/scripts/bin/bootstrap.js +11 -0
  14. package/dist/scripts/bin/build.js +256 -0
  15. package/dist/scripts/bin/index.js +88 -0
  16. package/dist/scripts/bin/preview.js +27 -0
  17. package/dist/scripts/bin/start.js +41 -0
  18. package/dist/scripts/bin/vite-ueml-plugin.js +113 -0
  19. package/dist/scripts/bin/viteConfig.js +112 -0
  20. package/dist/scripts/src/abstractions/ActionDefs.js +2 -0
  21. package/dist/scripts/src/abstractions/AppContextDefs.js +2 -0
  22. package/dist/scripts/src/abstractions/BlockScope.js +4 -0
  23. package/dist/scripts/src/abstractions/ComponentDefs.js +2 -0
  24. package/dist/scripts/src/abstractions/ComponentDescriptorDefs.js +2 -0
  25. package/dist/scripts/src/abstractions/ContainerDefs.js +2 -0
  26. package/dist/scripts/src/abstractions/FunctionDefs.js +2 -0
  27. package/dist/scripts/src/abstractions/RendererDefs.js +2 -0
  28. package/dist/scripts/src/abstractions/scripting/ScriptParserError.js +2 -0
  29. package/dist/scripts/src/abstractions/scripting/ScriptingSourceTree.js +2 -0
  30. package/dist/scripts/src/abstractions/scripting/Token.js +110 -0
  31. package/dist/scripts/src/components/App/App.js +253 -0
  32. package/dist/scripts/src/components/App/AppLayoutContext.js +9 -0
  33. package/dist/scripts/src/components/App/AppStateContext.js +9 -0
  34. package/dist/scripts/src/components/App/Sheet.js +89 -0
  35. package/dist/scripts/src/components/AppHeader/AppHeader.js +121 -0
  36. package/dist/scripts/src/components/AppState/AppState.js +29 -0
  37. package/dist/scripts/src/components/Avatar/Avatar.js +81 -0
  38. package/dist/scripts/src/components/Badge/Badge.js +56 -0
  39. package/dist/scripts/src/components/BarChart/BarChart.js +199 -0
  40. package/dist/scripts/src/components/Bookmark/Bookmark.js +11 -0
  41. package/dist/scripts/src/components/Button/Button.js +196 -0
  42. package/dist/scripts/src/components/Card/Card.js +65 -0
  43. package/dist/scripts/src/components/ChangeListener/ChangeListener.js +43 -0
  44. package/dist/scripts/src/components/Chart/Chart.js +158 -0
  45. package/dist/scripts/src/components/Checkbox/Checkbox.js +43 -0
  46. package/dist/scripts/src/components/Combobox/Combobox.js +145 -0
  47. package/dist/scripts/src/components/ComponentProvider.js +357 -0
  48. package/dist/scripts/src/components/ContentSeparator/ContentSeparator.js +40 -0
  49. package/dist/scripts/src/components/DatePicker/DatePicker.js +196 -0
  50. package/dist/scripts/src/components/DropdownMenu/DropdownMenu.js +175 -0
  51. package/dist/scripts/src/components/EmojiSelector/EmojiSelector.js +56 -0
  52. package/dist/scripts/src/components/FileInput/FileInput.js +127 -0
  53. package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZone.js +106 -0
  54. package/dist/scripts/src/components/FlowLayout/FlowLayout.js +139 -0
  55. package/dist/scripts/src/components/Footer/Footer.js +42 -0
  56. package/dist/scripts/src/components/Form/Form.js +320 -0
  57. package/dist/scripts/src/components/Form/FormContext.js +9 -0
  58. package/dist/scripts/src/components/Form/formActions.js +86 -0
  59. package/dist/scripts/src/components/FormItem/FormItem.js +204 -0
  60. package/dist/scripts/src/components/FormItem/HelperText.js +27 -0
  61. package/dist/scripts/src/components/FormItem/ItemWithLabel.js +39 -0
  62. package/dist/scripts/src/components/FormItem/Validations.js +346 -0
  63. package/dist/scripts/src/components/FormSection/FormSection.js +45 -0
  64. package/dist/scripts/src/components/Heading/Heading.js +206 -0
  65. package/dist/scripts/src/components/HoverCard/HoverCard.js +45 -0
  66. package/dist/scripts/src/components/Icon/ApiIcon.js +10 -0
  67. package/dist/scripts/src/components/Icon/Attach.js +10 -0
  68. package/dist/scripts/src/components/Icon/Binding.js +11 -0
  69. package/dist/scripts/src/components/Icon/BoardIcon.js +7 -0
  70. package/dist/scripts/src/components/Icon/BoxIcon.js +10 -0
  71. package/dist/scripts/src/components/Icon/CheckIcon.js +7 -0
  72. package/dist/scripts/src/components/Icon/ChevronDownIcon.js +7 -0
  73. package/dist/scripts/src/components/Icon/ChevronLeft.js +7 -0
  74. package/dist/scripts/src/components/Icon/ChevronRight.js +7 -0
  75. package/dist/scripts/src/components/Icon/ChevronUpIcon.js +7 -0
  76. package/dist/scripts/src/components/Icon/CodeFileIcon.js +10 -0
  77. package/dist/scripts/src/components/Icon/CodeSandbox.js +10 -0
  78. package/dist/scripts/src/components/Icon/CompactListIcon.js +7 -0
  79. package/dist/scripts/src/components/Icon/ContentCopyIcon.js +7 -0
  80. package/dist/scripts/src/components/Icon/DatabaseIcon.js +11 -0
  81. package/dist/scripts/src/components/Icon/DocFileIcon.js +10 -0
  82. package/dist/scripts/src/components/Icon/DocIcon.js +10 -0
  83. package/dist/scripts/src/components/Icon/DotMenuHorizontalIcon.js +7 -0
  84. package/dist/scripts/src/components/Icon/DotMenuIcon.js +7 -0
  85. package/dist/scripts/src/components/Icon/EmailIcon.js +7 -0
  86. package/dist/scripts/src/components/Icon/EmptyFolderIcon.js +10 -0
  87. package/dist/scripts/src/components/Icon/ErrorIcon.js +7 -0
  88. package/dist/scripts/src/components/Icon/ExpressionIcon.js +10 -0
  89. package/dist/scripts/src/components/Icon/FillPlusCricleIcon.js +7 -0
  90. package/dist/scripts/src/components/Icon/FilterIcon.js +10 -0
  91. package/dist/scripts/src/components/Icon/FolderIcon.js +10 -0
  92. package/dist/scripts/src/components/Icon/GlobeIcon.js +7 -0
  93. package/dist/scripts/src/components/Icon/HomeIcon.js +7 -0
  94. package/dist/scripts/src/components/Icon/HyperLinkIcon.js +7 -0
  95. package/dist/scripts/src/components/Icon/Icon.js +101 -0
  96. package/dist/scripts/src/components/Icon/ImageFileIcon.js +10 -0
  97. package/dist/scripts/src/components/Icon/LinkIcon.js +7 -0
  98. package/dist/scripts/src/components/Icon/ListIcon.js +7 -0
  99. package/dist/scripts/src/components/Icon/LooseListIcon.js +7 -0
  100. package/dist/scripts/src/components/Icon/MoonIcon.js +10 -0
  101. package/dist/scripts/src/components/Icon/MoreOptionsIcon.js +7 -0
  102. package/dist/scripts/src/components/Icon/PDFIcon.js +10 -0
  103. package/dist/scripts/src/components/Icon/PenIcon.js +7 -0
  104. package/dist/scripts/src/components/Icon/PhoneIcon.js +7 -0
  105. package/dist/scripts/src/components/Icon/PhotoIcon.js +10 -0
  106. package/dist/scripts/src/components/Icon/PlusIcon.js +7 -0
  107. package/dist/scripts/src/components/Icon/SearchIcon.js +7 -0
  108. package/dist/scripts/src/components/Icon/ShareIcon.js +10 -0
  109. package/dist/scripts/src/components/Icon/SunIcon.js +10 -0
  110. package/dist/scripts/src/components/Icon/TrashIcon.js +7 -0
  111. package/dist/scripts/src/components/Icon/TxtIcon.js +10 -0
  112. package/dist/scripts/src/components/Icon/UnknownFileIcon.js +10 -0
  113. package/dist/scripts/src/components/Icon/UnlinkIcon.js +10 -0
  114. package/dist/scripts/src/components/Icon/UserIcon.js +7 -0
  115. package/dist/scripts/src/components/Icon/WarningIcon.js +7 -0
  116. package/dist/scripts/src/components/Icon/XlsIcon.js +10 -0
  117. package/dist/scripts/src/components/IconProvider.js +249 -0
  118. package/dist/scripts/src/components/IconRegistryContext.js +307 -0
  119. package/dist/scripts/src/components/Image/Image.js +34 -0
  120. package/dist/scripts/src/components/Input/InputAdornment.js +14 -0
  121. package/dist/scripts/src/components/Input/input-abstractions.js +44 -0
  122. package/dist/scripts/src/components/Items/Items.js +48 -0
  123. package/dist/scripts/src/components/Link/Link.js +72 -0
  124. package/dist/scripts/src/components/List/List.js +442 -0
  125. package/dist/scripts/src/components/Logo/Logo.js +25 -0
  126. package/dist/scripts/src/components/Map/Map.js +60 -0
  127. package/dist/scripts/src/components/Map/world_countries.json +45307 -0
  128. package/dist/scripts/src/components/Markdown/Markdown.js +120 -0
  129. package/dist/scripts/src/components/ModalDialog/ConfirmationModalContextProvider.js +106 -0
  130. package/dist/scripts/src/components/ModalDialog/Dialog.js +20 -0
  131. package/dist/scripts/src/components/ModalDialog/ModalDialog.js +145 -0
  132. package/dist/scripts/src/components/MultiCombobox/MultiCombobox.js +249 -0
  133. package/dist/scripts/src/components/MultiSelect/MultiSelect.js +192 -0
  134. package/dist/scripts/src/components/NavGroup/NavGroup.js +113 -0
  135. package/dist/scripts/src/components/NavLink/NavLink.js +115 -0
  136. package/dist/scripts/src/components/NavPanel/NavPanel.js +101 -0
  137. package/dist/scripts/src/components/NoResult/NoResult.js +39 -0
  138. package/dist/scripts/src/components/NumberBox/NumberBox.js +373 -0
  139. package/dist/scripts/src/components/Option/Option.js +41 -0
  140. package/dist/scripts/src/components/PageMetaTitle/PageMetaTitle.js +22 -0
  141. package/dist/scripts/src/components/Pages/Pages.js +74 -0
  142. package/dist/scripts/src/components/Pdf/LazyPdf.js +44 -0
  143. package/dist/scripts/src/components/Pdf/Pdf.js +19 -0
  144. package/dist/scripts/src/components/PieChart/PieChart.js +184 -0
  145. package/dist/scripts/src/components/PositionedContainer/PositionedContainer.js +29 -0
  146. package/dist/scripts/src/components/ProgressBar/ProgressBar.js +38 -0
  147. package/dist/scripts/src/components/Queue/Queue.js +286 -0
  148. package/dist/scripts/src/components/Queue/queueActions.js +87 -0
  149. package/dist/scripts/src/components/RadioGroup/RadioGroup.js +144 -0
  150. package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapter.js +147 -0
  151. package/dist/scripts/src/components/Redirect/Redirect.js +10 -0
  152. package/dist/scripts/src/components/Select/Select.js +139 -0
  153. package/dist/scripts/src/components/Select/SelectContext.js +45 -0
  154. package/dist/scripts/src/components/SelectionStore/SelectionStore.js +88 -0
  155. package/dist/scripts/src/components/SpaceFiller/SpaceFiller.js +22 -0
  156. package/dist/scripts/src/components/Spinner/Spinner.js +59 -0
  157. package/dist/scripts/src/components/Splitter/Splitter.js +205 -0
  158. package/dist/scripts/src/components/Splitter/utils.js +17 -0
  159. package/dist/scripts/src/components/Stack/Stack.js +117 -0
  160. package/dist/scripts/src/components/StickyBox/StickyBox.js +33 -0
  161. package/dist/scripts/src/components/Switch/Switch.js +50 -0
  162. package/dist/scripts/src/components/Table/Table.js +499 -0
  163. package/dist/scripts/src/components/Table/useRowSelection.js +169 -0
  164. package/dist/scripts/src/components/TableColumnDef/TableColumnDef.js +44 -0
  165. package/dist/scripts/src/components/TableColumnDef/TableContext.js +12 -0
  166. package/dist/scripts/src/components/Tabs/Tabs.js +85 -0
  167. package/dist/scripts/src/components/Text/Text.js +175 -0
  168. package/dist/scripts/src/components/TextArea/TextArea.js +194 -0
  169. package/dist/scripts/src/components/TextArea/TextAreaResizable.js +63 -0
  170. package/dist/scripts/src/components/TextArea/useComposedRef.js +50 -0
  171. package/dist/scripts/src/components/TextBox/TextBox.js +145 -0
  172. package/dist/scripts/src/components/Theme/NotificationToast.js +39 -0
  173. package/dist/scripts/src/components/Theme/Theme.js +153 -0
  174. package/dist/scripts/src/components/ThemeChanger/ThemeChanger.js +125 -0
  175. package/dist/scripts/src/components/Toggle/Toggle.js +88 -0
  176. package/dist/scripts/src/components/Tree/TreeComponent.js +79 -0
  177. package/dist/scripts/src/components/ValidationSummary/ValidationSummary.js +59 -0
  178. package/dist/scripts/src/components/ViewComponentRegistryContext.js +34 -0
  179. package/dist/scripts/src/components/abstractions.js +2 -0
  180. package/dist/scripts/src/components/chart-color-schemes.js +43 -0
  181. package/dist/scripts/src/components/component-utils.js +32 -0
  182. package/dist/scripts/src/components/container-helpers.js +18 -0
  183. package/dist/scripts/src/components-core/ApiBoundComponent.js +189 -0
  184. package/dist/scripts/src/components-core/AppContext.js +17 -0
  185. package/dist/scripts/src/components-core/ChildrenSlot.js +10 -0
  186. package/dist/scripts/src/components-core/Component.js +280 -0
  187. package/dist/scripts/src/components-core/ComponentDecorator.js +63 -0
  188. package/dist/scripts/src/components-core/CompoundComponent.js +132 -0
  189. package/dist/scripts/src/components-core/EngineError.js +91 -0
  190. package/dist/scripts/src/components-core/ErrorBoundary.js +58 -0
  191. package/dist/scripts/src/components-core/Fragment.js +14 -0
  192. package/dist/scripts/src/components-core/InvalidComponent.js +15 -0
  193. package/dist/scripts/src/components-core/LoaderComponent.js +78 -0
  194. package/dist/scripts/src/components-core/RestApiProxy.js +341 -0
  195. package/dist/scripts/src/components-core/RootComponent.js +272 -0
  196. package/dist/scripts/src/components-core/RouteContext.js +45 -0
  197. package/dist/scripts/src/components-core/ScrollContext.js +9 -0
  198. package/dist/scripts/src/components-core/UnknownComponent.js +15 -0
  199. package/dist/scripts/src/components-core/abstractions/ComponentRenderer.js +2 -0
  200. package/dist/scripts/src/components-core/abstractions/LoaderRenderer.js +2 -0
  201. package/dist/scripts/src/components-core/abstractions/containers.js +18 -0
  202. package/dist/scripts/src/components-core/abstractions/treeAbstractions.js +2 -0
  203. package/dist/scripts/src/components-core/action/ApiAction.js +276 -0
  204. package/dist/scripts/src/components-core/action/DownloadFileAction.js +80 -0
  205. package/dist/scripts/src/components-core/action/NavigateAction.js +20 -0
  206. package/dist/scripts/src/components-core/action/TimedAction.js +21 -0
  207. package/dist/scripts/src/components-core/action/UploadAction.js +88 -0
  208. package/dist/scripts/src/components-core/action/actions.js +15 -0
  209. package/dist/scripts/src/components-core/appContext/date-functions.js +19 -0
  210. package/dist/scripts/src/components-core/appContext/misc-utils.js +12 -0
  211. package/dist/scripts/src/components-core/component-hooks.js +25 -0
  212. package/dist/scripts/src/components-core/constants.js +18 -0
  213. package/dist/scripts/src/components-core/container/Container.js +1110 -0
  214. package/dist/scripts/src/components-core/container/ContainerComponentDef.js +16 -0
  215. package/dist/scripts/src/components-core/container/buildProxy.js +54 -0
  216. package/dist/scripts/src/components-core/container/collectFnVarDeps.js +26 -0
  217. package/dist/scripts/src/components-core/container/valueExtractor.js +195 -0
  218. package/dist/scripts/src/components-core/descriptorHelper.js +75 -0
  219. package/dist/scripts/src/components-core/interception/abstractions.js +2 -0
  220. package/dist/scripts/src/components-core/interception/useApiInterceptorContext.js +9 -0
  221. package/dist/scripts/src/components-core/loader/ApiLoader.js +46 -0
  222. package/dist/scripts/src/components-core/loader/DataLoader.js +160 -0
  223. package/dist/scripts/src/components-core/loader/ExternalDataLoader.js +52 -0
  224. package/dist/scripts/src/components-core/loader/Loader.js +115 -0
  225. package/dist/scripts/src/components-core/loader/MockLoaderRenderer.js +32 -0
  226. package/dist/scripts/src/components-core/loader/PageableLoader.js +240 -0
  227. package/dist/scripts/src/components-core/renderers.js +45 -0
  228. package/dist/scripts/src/components-core/reportEngineError.js +59 -0
  229. package/dist/scripts/src/components-core/script-runner/BindingTreeEvaluationContext.js +35 -0
  230. package/dist/scripts/src/components-core/script-runner/ICustomOperations.js +34 -0
  231. package/dist/scripts/src/components-core/script-runner/LogicalThread.js +2 -0
  232. package/dist/scripts/src/components-core/script-runner/LoopScope.js +2 -0
  233. package/dist/scripts/src/components-core/script-runner/ParameterParser.js +117 -0
  234. package/dist/scripts/src/components-core/script-runner/TryScope.js +2 -0
  235. package/dist/scripts/src/components-core/script-runner/asyncProxy.js +96 -0
  236. package/dist/scripts/src/components-core/script-runner/bannedFunctions.js +34 -0
  237. package/dist/scripts/src/components-core/script-runner/custom-operations-registry.js +40 -0
  238. package/dist/scripts/src/components-core/script-runner/custom-ui-data.js +40 -0
  239. package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +551 -0
  240. package/dist/scripts/src/components-core/script-runner/eval-tree-common.js +498 -0
  241. package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +434 -0
  242. package/dist/scripts/src/components-core/script-runner/modules.js +250 -0
  243. package/dist/scripts/src/components-core/script-runner/process-statement-async.js +818 -0
  244. package/dist/scripts/src/components-core/script-runner/process-statement-common.js +193 -0
  245. package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +740 -0
  246. package/dist/scripts/src/components-core/script-runner/statement-queue.js +62 -0
  247. package/dist/scripts/src/components-core/script-runner/visitors.js +352 -0
  248. package/dist/scripts/src/components-core/theming/ThemeContext.js +43 -0
  249. package/dist/scripts/src/components-core/theming/ThemeProvider.js +334 -0
  250. package/dist/scripts/src/components-core/theming/abstractions.js +11 -0
  251. package/dist/scripts/src/components-core/theming/extendThemeUtils.js +114 -0
  252. package/dist/scripts/src/components-core/theming/hvar.js +105 -0
  253. package/dist/scripts/src/components-core/theming/themeVars.js +62 -0
  254. package/dist/scripts/src/components-core/theming/themes/base-utils.js +31 -0
  255. package/dist/scripts/src/components-core/theming/themes/palette.js +53 -0
  256. package/dist/scripts/src/components-core/theming/themes/root.js +257 -0
  257. package/dist/scripts/src/components-core/theming/themes/solid.js +16 -0
  258. package/dist/scripts/src/components-core/theming/themes/theme-colors.js +407 -0
  259. package/dist/scripts/src/components-core/theming/themes/xmlui.js +32 -0
  260. package/dist/scripts/src/components-core/theming/transformThemeVars.js +286 -0
  261. package/dist/scripts/src/components-core/utils/DataLoaderQueryKeyGenerator.js +34 -0
  262. package/dist/scripts/src/components-core/utils/LruCache.js +184 -0
  263. package/dist/scripts/src/components-core/utils/actionUtils.js +32 -0
  264. package/dist/scripts/src/components-core/utils/classnames.js +58 -0
  265. package/dist/scripts/src/components-core/utils/css-utils.js +127 -0
  266. package/dist/scripts/src/components-core/utils/date-utils.js +78 -0
  267. package/dist/scripts/src/components-core/utils/extractParam.js +148 -0
  268. package/dist/scripts/src/components-core/utils/hooks.js +221 -0
  269. package/dist/scripts/src/components-core/utils/mergeProps.js +45 -0
  270. package/dist/scripts/src/components-core/utils/misc.js +460 -0
  271. package/dist/scripts/src/components-core/utils/statementUtils.js +205 -0
  272. package/dist/scripts/src/components-core/utils/treeUtils.js +48 -0
  273. package/dist/scripts/src/components-core/xmlui-parser.js +52 -0
  274. package/dist/scripts/src/parsers/scripting/InputStream.js +59 -0
  275. package/dist/scripts/src/parsers/scripting/Lexer.js +1028 -0
  276. package/dist/scripts/src/parsers/scripting/Parser.js +2647 -0
  277. package/dist/scripts/src/parsers/scripting/ParserError.js +46 -0
  278. package/dist/scripts/src/parsers/scripting/TokenTrait.js +109 -0
  279. package/dist/scripts/src/parsers/scripting/code-behind-collect.js +118 -0
  280. package/dist/scripts/src/parsers/scripting/tree-visitor.js +602 -0
  281. package/dist/scripts/src/parsers/style-parser/StyleInputStream.js +39 -0
  282. package/dist/scripts/src/parsers/style-parser/StyleLexer.js +621 -0
  283. package/dist/scripts/src/parsers/style-parser/StyleParser.js +1000 -0
  284. package/dist/scripts/src/parsers/style-parser/errors.js +37 -0
  285. package/dist/scripts/src/parsers/style-parser/source-tree.js +2 -0
  286. package/dist/scripts/src/parsers/style-parser/style-compiler.js +513 -0
  287. package/dist/scripts/src/parsers/style-parser/tokens.js +42 -0
  288. package/dist/scripts/src/parsers/ueml/ParserError.js +54 -0
  289. package/dist/scripts/src/parsers/ueml/UemlHelper.js +579 -0
  290. package/dist/scripts/src/parsers/ueml/UemlInputStream.js +59 -0
  291. package/dist/scripts/src/parsers/ueml/UemlLexer.js +868 -0
  292. package/dist/scripts/src/parsers/ueml/UemlParser.js +1439 -0
  293. package/dist/scripts/src/parsers/ueml/UemlToken.js +24 -0
  294. package/dist/scripts/src/parsers/ueml/fileExtensions.js +6 -0
  295. package/dist/scripts/src/parsers/ueml/source-tree.js +2 -0
  296. package/dist/scripts/src/parsers/ueml/ueml-tree.js +2 -0
  297. package/dist/scripts/src/parsers/xmlui-parser/CharacterCodes.js +136 -0
  298. package/dist/scripts/src/parsers/xmlui-parser/diagnostics.js +100 -0
  299. package/dist/scripts/src/parsers/xmlui-parser/parser.js +476 -0
  300. package/dist/scripts/src/parsers/xmlui-parser/scanner.js +415 -0
  301. package/dist/scripts/src/parsers/xmlui-parser/syntax-kind.js +106 -0
  302. package/dist/scripts/src/parsers/xmlui-parser/syntax-node.js +2 -0
  303. package/dist/scripts/src/parsers/xmlui-parser/transform.js +922 -0
  304. package/dist/scripts/src/parsers/xmlui-parser/utils.js +83 -0
  305. package/dist/xmlui.es.d.ts +1667 -0
  306. package/dist/xmlui.es.js +17 -0
  307. package/dist/xmlui.umd.js +1589 -0
  308. package/package.json +175 -0
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.menuSeparatorRenderer = exports.subMenuItemRenderer = exports.menuItemRenderer = exports.dropdownMenuComponentRenderer = void 0;
39
+ exports.DropdownMenu = DropdownMenu;
40
+ exports.MenuItem = MenuItem;
41
+ exports.MenuSeparator = MenuSeparator;
42
+ const jsx_runtime_1 = require("react/jsx-runtime");
43
+ const react_1 = require("react");
44
+ const ReactDropdownMenu = __importStar(require("@radix-ui/react-dropdown-menu"));
45
+ const DropdownMenu_module_scss_1 = __importDefault(require("./DropdownMenu.module.scss"));
46
+ const renderers_1 = require("@components-core/renderers");
47
+ const themeVars_1 = require("@components-core/theming/themeVars");
48
+ const Button_1 = require("@components/Button/Button");
49
+ const ThemeContext_1 = require("@components-core/theming/ThemeContext");
50
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
51
+ const Icon_1 = require("@components/Icon/Icon");
52
+ const constants_1 = require("@components-core/constants");
53
+ function DropdownMenu({ triggerTemplate, children, label, registerComponentApi, layout, onWillOpen, alignment = "start", disabled = false, triggerButtonVariant = "ghost", triggerButtonThemeColor = "primary", }) {
54
+ const { root } = (0, ThemeContext_1.useTheme)();
55
+ const [open, setOpen] = (0, react_1.useState)(false);
56
+ (0, react_1.useEffect)(() => {
57
+ registerComponentApi === null || registerComponentApi === void 0 ? void 0 : registerComponentApi({
58
+ close: () => setOpen(false),
59
+ });
60
+ }, [registerComponentApi]);
61
+ return ((0, jsx_runtime_1.jsxs)(ReactDropdownMenu.Root, { open: open, onOpenChange: (isOpen) => __awaiter(this, void 0, void 0, function* () {
62
+ if (isOpen) {
63
+ const willOpenResult = yield (onWillOpen === null || onWillOpen === void 0 ? void 0 : onWillOpen());
64
+ if (willOpenResult === false) {
65
+ return;
66
+ }
67
+ }
68
+ setOpen(isOpen);
69
+ }), children: [(0, jsx_runtime_1.jsx)(ReactDropdownMenu.Trigger, { asChild: true, disabled: disabled, children: triggerTemplate ? (triggerTemplate) : ((0, jsx_runtime_1.jsx)(Button_1.Button, { icon: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "chevrondown" }), type: "button", variant: triggerButtonVariant, themeColor: triggerButtonThemeColor, children: label })) }), (0, jsx_runtime_1.jsx)(ReactDropdownMenu.Portal, { container: root, children: (0, jsx_runtime_1.jsx)(ReactDropdownMenu.Content, { align: alignment, style: layout, className: DropdownMenu_module_scss_1.default.DropdownMenuContent, children: children }) })] }));
70
+ }
71
+ const metadata = {
72
+ displayName: "DropdownMenu",
73
+ description: "It represents a dropdown menu with multiple menu items. Clicking it displays the available menu items.",
74
+ props: {
75
+ label: (0, descriptorHelper_1.desc)("The label to display on the button"),
76
+ triggerTemplate: (0, descriptorHelper_1.desc)("The trigger template to use"),
77
+ alignment: (0, descriptorHelper_1.desc)("The alignment of the drop-down menu"),
78
+ enabled: (0, descriptorHelper_1.desc)("Enables or disables the component"),
79
+ triggerButtonVariant: (0, descriptorHelper_1.desc)("The variant of the trigger button"),
80
+ triggerButtonThemeColor: (0, descriptorHelper_1.desc)("The theme color of the trigger button"),
81
+ },
82
+ themeVars: (0, themeVars_1.parseScssVar)(DropdownMenu_module_scss_1.default.themeVars),
83
+ defaultThemeVars: {
84
+ "color-bg-DropdownMenu": "$color-bg-primary",
85
+ "min-width-DropdownMenu": "160px",
86
+ "shadow-DropdownMenu": "$shadow-md",
87
+ "style-border-DropdownMenu-content": "solid",
88
+ },
89
+ };
90
+ exports.dropdownMenuComponentRenderer = (0, renderers_1.createComponentRenderer)("DropdownMenu", ({ node, extractValue, renderChild, registerComponentApi, layoutCss, lookupEventHandler, }) => {
91
+ var _a, _b, _c;
92
+ return ((0, jsx_runtime_1.jsx)(DropdownMenu, { triggerTemplate: renderChild((_a = node.props) === null || _a === void 0 ? void 0 : _a.triggerTemplate), label: extractValue((_b = node.props) === null || _b === void 0 ? void 0 : _b.label), registerComponentApi: registerComponentApi, onWillOpen: lookupEventHandler("willOpen"), layout: layoutCss, alignment: extractValue((_c = node.props) === null || _c === void 0 ? void 0 : _c.alignment), disabled: !extractValue.asOptionalBoolean(node.props.enabled, true), triggerButtonThemeColor: extractValue(node.props.triggerButtonThemeColor), triggerButtonVariant: extractValue(node.props.triggerButtonVariant), children: renderChild(node.children) }));
93
+ }, metadata);
94
+ function MenuItem({ children, onClick = constants_1.noop, label, style, icon, iconPosition = "start", }) {
95
+ const iconToLeft = iconPosition === "left" || iconPosition === "start";
96
+ return ((0, jsx_runtime_1.jsxs)(ReactDropdownMenu.Item, { style: style, className: DropdownMenu_module_scss_1.default.DropdownMenuItem, onClick: (event) => {
97
+ event.stopPropagation();
98
+ onClick(event);
99
+ }, children: [iconToLeft && icon, (0, jsx_runtime_1.jsx)("div", { className: DropdownMenu_module_scss_1.default.wrapper, children: label !== null && label !== void 0 ? label : children }), !iconToLeft && icon] }));
100
+ }
101
+ const menuItemMetadata = {
102
+ displayName: "MenuItem",
103
+ description: "Represents a menu item within a DropDownMenu, clicking of which triggers an action",
104
+ props: {
105
+ iconPosition: (0, descriptorHelper_1.desc)("Position of the icon displayed"),
106
+ icon: (0, descriptorHelper_1.desc)("Optional icon ID to display the particular icon"),
107
+ label: (0, descriptorHelper_1.desc)("The label to display on the button"),
108
+ to: (0, descriptorHelper_1.desc)("The target URL"),
109
+ },
110
+ events: {
111
+ click: (0, descriptorHelper_1.desc)("Triggers when the menu item is clicked"),
112
+ },
113
+ themeVars: (0, themeVars_1.parseScssVar)(DropdownMenu_module_scss_1.default.themeVars),
114
+ defaultThemeVars: {
115
+ "color-bg-MenuItem": "$color-bg-dropdown-item",
116
+ "color-MenuItem": "$color-text-primary",
117
+ "font-family-MenuItem": "$font-family",
118
+ "font-size-MenuItem": "inherit",
119
+ "padding-vertical-MenuItem": "$space-2",
120
+ "padding-horizontal-MenuItem": "$space-3",
121
+ "color-bg-MenuItem--hover": "$color-bg-dropdown-item--active",
122
+ "color-MenuItem--hover": "inherit",
123
+ "gap-MenuItem": "$space-2",
124
+ },
125
+ };
126
+ exports.menuItemRenderer = (0, renderers_1.createComponentRenderer)("MenuItem", ({ node, renderChild, lookupEventHandler, lookupAction, extractValue, layoutCss, }) => {
127
+ var _a, _b;
128
+ const clickEventHandler = lookupEventHandler("click");
129
+ let clickHandler;
130
+ const to = extractValue(node.props.to);
131
+ if (!clickEventHandler && (to === null || to === void 0 ? void 0 : to.trim())) {
132
+ const navigateAction = lookupAction("navigate", { signError: false });
133
+ clickHandler = () => {
134
+ navigateAction === null || navigateAction === void 0 ? void 0 : navigateAction({ pathname: to });
135
+ };
136
+ }
137
+ return ((0, jsx_runtime_1.jsx)(MenuItem, { onClick: clickHandler, label: extractValue((_a = node.props) === null || _a === void 0 ? void 0 : _a.label), style: layoutCss, iconPosition: extractValue(node.props.iconPosition), icon: ((_b = node.props) === null || _b === void 0 ? void 0 : _b.icon) && (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: extractValue(node.props.icon) }), children: renderChild(node.children) }));
138
+ }, menuItemMetadata);
139
+ function SubMenuItem({ children, label, triggerTemplate }) {
140
+ const { root } = (0, ThemeContext_1.useTheme)();
141
+ return ((0, jsx_runtime_1.jsxs)(ReactDropdownMenu.Sub, { children: [(0, jsx_runtime_1.jsx)(ReactDropdownMenu.SubTrigger, { className: DropdownMenu_module_scss_1.default.DropdownMenuSubTrigger, asChild: true, children: triggerTemplate ? triggerTemplate : (0, jsx_runtime_1.jsx)("div", { children: label }) }), (0, jsx_runtime_1.jsx)(ReactDropdownMenu.Portal, { container: root, children: (0, jsx_runtime_1.jsx)(ReactDropdownMenu.SubContent, { className: DropdownMenu_module_scss_1.default.DropdownMenuSubContent, children: children }) })] }));
142
+ }
143
+ const subMenuItemMetadata = {
144
+ displayName: "SubMenuItem",
145
+ description: "Represents a nested menu item within another menu or menu item",
146
+ props: {
147
+ label: (0, descriptorHelper_1.desc)("The label to display as the name of the submenu"),
148
+ triggerTemplate: (0, descriptorHelper_1.desc)("The trigger template to use for this submenu"),
149
+ },
150
+ };
151
+ exports.subMenuItemRenderer = (0, renderers_1.createComponentRenderer)("SubMenuItem", ({ node, renderChild, extractValue }) => {
152
+ var _a, _b;
153
+ return ((0, jsx_runtime_1.jsx)(SubMenuItem, { label: extractValue((_a = node.props) === null || _a === void 0 ? void 0 : _a.label), triggerTemplate: renderChild((_b = node.props) === null || _b === void 0 ? void 0 : _b.triggerTemplate), children: renderChild(node.children) }));
154
+ }, subMenuItemMetadata);
155
+ // ====================================================================================================================
156
+ // React MenuSeparator component implementation
157
+ function MenuSeparator() {
158
+ return ((0, jsx_runtime_1.jsx)(ReactDropdownMenu.Separator, { className: DropdownMenu_module_scss_1.default.DropdownMenuSeparator }));
159
+ }
160
+ const menuSeparatorMetadata = {
161
+ displayName: "MenuSeparator",
162
+ description: "Displays a separator line between menu items",
163
+ themeVars: (0, themeVars_1.parseScssVar)(DropdownMenu_module_scss_1.default.themeVars),
164
+ defaultThemeVars: {
165
+ "margin-top-MenuSeparator": "$space-1",
166
+ "margin-bottom-MenuSeparator": "$space-1",
167
+ "width-MenuSeparator": "100%",
168
+ "height-MenuSeparator": "1px",
169
+ "color-MenuSeparator": "$color-border-dropdown-item",
170
+ "margin-horizontal-MenuSeparator": "12px",
171
+ },
172
+ };
173
+ exports.menuSeparatorRenderer = (0, renderers_1.createComponentRenderer)("MenuSeparator", () => {
174
+ return (0, jsx_runtime_1.jsx)(MenuSeparator, {});
175
+ }, menuSeparatorMetadata);
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.emojiSelectorRenderer = void 0;
36
+ const jsx_runtime_1 = require("react/jsx-runtime");
37
+ const renderers_1 = require("@components-core/renderers");
38
+ const constants_1 = require("@components-core/constants");
39
+ const emoji_picker_react_1 = __importStar(require("emoji-picker-react"));
40
+ const ThemeContext_1 = require("@components-core/theming/ThemeContext");
41
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
42
+ const EmojiSelector = ({ select = constants_1.noop, theme = emoji_picker_react_1.Theme.LIGHT, autoFocus = false }) => ((0, jsx_runtime_1.jsx)(emoji_picker_react_1.default, { autoFocusSearch: autoFocus, onEmojiClick: (emojiObject) => __awaiter(void 0, void 0, void 0, function* () {
43
+ yield select(emojiObject.emoji);
44
+ }), lazyLoadEmojis: true, theme: theme, previewConfig: { showPreview: false }, skinTonesDisabled: true, height: 360, emojiStyle: emoji_picker_react_1.EmojiStyle.NATIVE }));
45
+ const metadata = {
46
+ displayName: "EmojiSelector",
47
+ description: "A panel to select an emoji from the available ones",
48
+ events: {
49
+ select: (0, descriptorHelper_1.desc)("Sign that an emoji has been selected"),
50
+ },
51
+ };
52
+ exports.emojiSelectorRenderer = (0, renderers_1.createComponentRenderer)("EmojiSelector", ({ node, lookupEventHandler, extractValue }) => {
53
+ const onActionSelect = lookupEventHandler("select");
54
+ const theme = (0, ThemeContext_1.useTheme)();
55
+ return ((0, jsx_runtime_1.jsx)(EmojiSelector, { select: onActionSelect, theme: theme.activeThemeTone, autoFocus: extractValue.asOptionalBoolean(node.props.autoFocus) }));
56
+ }, metadata);
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.fileInputRenderer = exports.FileInput = void 0;
30
+ const jsx_runtime_1 = require("react/jsx-runtime");
31
+ const react_1 = require("react");
32
+ const Icon_1 = require("@components/Icon/Icon");
33
+ const FileInput_module_scss_1 = __importDefault(require("./FileInput.module.scss"));
34
+ const renderers_1 = require("@components-core/renderers");
35
+ const Button_1 = require("@components/Button/Button");
36
+ const input_abstractions_1 = require("@components/Input/input-abstractions");
37
+ const constants_1 = require("@components-core/constants");
38
+ const react_dropzone_1 = require("react-dropzone");
39
+ const misc_1 = require("@components-core/utils/misc");
40
+ const VisuallyHidden = __importStar(require("@radix-ui/react-visually-hidden"));
41
+ const TextBox_1 = require("@components/TextBox/TextBox");
42
+ const themeVars_1 = require("@components-core/theming/themeVars");
43
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
44
+ const FileInput = ({ id, enabled = true, buttonLabel = "Browse", buttonIcon, buttonIconPosition, variant, buttonThemeColor, buttonSize, autoFocus, validationStatus, updateState = constants_1.noop, onDidChange = constants_1.noop, onFocus = constants_1.noop, onBlur = constants_1.noop, registerComponentApi, value, initialValue, acceptsFileType, multiple = false, directory = false, }) => {
45
+ // Don't accept any (initial) value if it is not a File array explicitly
46
+ const _initialValue = isFileArray(initialValue) ? initialValue : undefined;
47
+ const _value = isFileArray(value) ? value : undefined;
48
+ const buttonRef = (0, react_1.useRef)(null);
49
+ const _acceptsFileType = typeof acceptsFileType === "string" ? acceptsFileType : acceptsFileType === null || acceptsFileType === void 0 ? void 0 : acceptsFileType.join(",");
50
+ (0, react_1.useEffect)(() => {
51
+ if (autoFocus) {
52
+ setTimeout(() => {
53
+ var _a;
54
+ (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
55
+ }, 0);
56
+ }
57
+ }, [autoFocus]);
58
+ // --- Initialize the related field with the input's initial value
59
+ (0, react_1.useEffect)(() => {
60
+ updateState({ value: _initialValue });
61
+ }, [_initialValue, updateState]);
62
+ const handleOnBlur = (0, react_1.useCallback)(() => {
63
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur();
64
+ }, [onBlur]);
65
+ const focus = (0, react_1.useCallback)(() => {
66
+ var _a;
67
+ (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
68
+ }, []);
69
+ // --- Handle the value change events for this input
70
+ const onDrop = (0, react_1.useCallback)((acceptedFiles) => {
71
+ if (!acceptedFiles.length)
72
+ return;
73
+ updateState({ value: acceptedFiles });
74
+ onDidChange(acceptedFiles);
75
+ }, [updateState, onDidChange]);
76
+ const { getRootProps, getInputProps, open } = (0, react_dropzone_1.useDropzone)({
77
+ disabled: !enabled,
78
+ multiple: multiple || directory,
79
+ onDrop,
80
+ noClick: true,
81
+ noKeyboard: true,
82
+ noDragEventsBubbling: true,
83
+ useFsAccessApi: directory === false,
84
+ });
85
+ // --- Manage obtaining and losing the focus
86
+ const handleOnFocus = (0, react_1.useCallback)(() => {
87
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus();
88
+ }, [onFocus]);
89
+ const doOpen = (0, misc_1.useEvent)(() => {
90
+ open();
91
+ });
92
+ (0, react_1.useEffect)(() => {
93
+ registerComponentApi === null || registerComponentApi === void 0 ? void 0 : registerComponentApi({
94
+ focus,
95
+ open: doOpen,
96
+ });
97
+ }, [focus, doOpen, registerComponentApi]);
98
+ // Solution source: https://stackoverflow.com/questions/1084925/input-type-file-show-only-button
99
+ return ((0, jsx_runtime_1.jsxs)("div", { className: FileInput_module_scss_1.default.container, children: [(0, jsx_runtime_1.jsxs)("button", Object.assign({}, getRootProps({
100
+ tabIndex: 0,
101
+ onFocus: handleOnFocus,
102
+ onBlur: handleOnBlur,
103
+ disabled: !enabled,
104
+ className: FileInput_module_scss_1.default.textBoxWrapper,
105
+ onClick: open,
106
+ ref: buttonRef,
107
+ type: "button",
108
+ }), { children: [(0, jsx_runtime_1.jsx)(VisuallyHidden.Root, { children: (0, jsx_runtime_1.jsx)("input", Object.assign({}, getInputProps({ webkitdirectory: directory ? "true" : undefined }), { accept: _acceptsFileType })) }), (0, jsx_runtime_1.jsx)(TextBox_1.TextBox, { enabled: enabled, value: (_value === null || _value === void 0 ? void 0 : _value.map((v) => v.name).join(", ")) || "", validationStatus: validationStatus, readOnly: true, tabIndex: -1 })] })), (0, jsx_runtime_1.jsx)(Button_1.Button, { id: id, disabled: !enabled, type: "button", onClick: open, icon: buttonIcon, iconPosition: buttonIconPosition, variant: variant, themeColor: buttonThemeColor, size: buttonSize, className: FileInput_module_scss_1.default.button, autoFocus: autoFocus, children: buttonLabel })] }));
109
+ };
110
+ exports.FileInput = FileInput;
111
+ const metadata = {
112
+ displayName: "FileInputBox",
113
+ description: "Represents an input component for textual data entry",
114
+ props: Object.assign(Object.assign(Object.assign({}, input_abstractions_1.inputComponentPropertyDescriptors), Button_1.buttonStylingProps), { buttonLabel: (0, descriptorHelper_1.desc)("The label of the button that opens the file dialog"), buttonIcon: (0, descriptorHelper_1.desc)("The ID of the icon to display in the button"), buttonIconPosition: (0, descriptorHelper_1.desc)("The position of the icon within the button (left, right)"), acceptsFileType: (0, descriptorHelper_1.desc)("A list of file types the open dialog accepts"), multiple: (0, descriptorHelper_1.desc)("Allow selecting multiple files?"), directory: (0, descriptorHelper_1.desc)("Allow selecting a directory?"), buttonSize: (0, descriptorHelper_1.desc)("The size of the button"), buttonThemeColor: (0, descriptorHelper_1.desc)("The theme color of the button") }),
115
+ events: input_abstractions_1.inputComponentEventDescriptors,
116
+ themeVars: (0, themeVars_1.parseScssVar)(FileInput_module_scss_1.default.themeVars),
117
+ };
118
+ exports.fileInputRenderer = (0, renderers_1.createComponentRenderer)("FileInput", ({ node, state, updateState, extractValue, lookupEventHandler, registerComponentApi }) => {
119
+ const iconName = extractValue.asString(node.props.buttonIcon);
120
+ return ((0, jsx_runtime_1.jsx)(exports.FileInput, { enabled: extractValue.asOptionalBoolean(node.props.enabled), variant: extractValue(node.props.variant), buttonThemeColor: extractValue(node.props.buttonThemeColor), buttonSize: extractValue(node.props.buttonSize), buttonIcon: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: iconName }), buttonIconPosition: extractValue(node.props.buttonIconPosition), buttonLabel: extractValue.asOptionalString(node.props.buttonLabel), updateState: updateState, value: isFileArray(state === null || state === void 0 ? void 0 : state.value) ? state === null || state === void 0 ? void 0 : state.value : undefined, autoFocus: extractValue.asOptionalBoolean(node.props.autoFocus), onDidChange: lookupEventHandler("didChange"), onFocus: lookupEventHandler("gotFocus"), onBlur: lookupEventHandler("lostFocus"), validationStatus: extractValue(node.props.validationStatus), registerComponentApi: registerComponentApi, multiple: extractValue.asOptionalBoolean(node.props.multiple), directory: extractValue.asOptionalBoolean(node.props.directory), initialValue: extractValue(node.props.initialValue), acceptsFileType: extractValue(node.props.acceptsFileType) }));
121
+ }, metadata);
122
+ function isFile(value) {
123
+ return value instanceof File;
124
+ }
125
+ function isFileArray(value) {
126
+ return Array.isArray(value) && value.every(isFile);
127
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.fileUploadDropZoneComponentRenderer = void 0;
16
+ const jsx_runtime_1 = require("react/jsx-runtime");
17
+ const react_1 = require("react");
18
+ const react_dropzone_1 = require("react-dropzone");
19
+ const Icon_1 = require("@components/Icon/Icon");
20
+ const FileUploadDropZone_module_scss_1 = __importDefault(require("./FileUploadDropZone.module.scss"));
21
+ const misc_1 = require("@components-core/utils/misc");
22
+ const renderers_1 = require("@components-core/renderers");
23
+ const constants_1 = require("@components-core/constants");
24
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
25
+ const themeVars_1 = require("@components-core/theming/themeVars");
26
+ function FileUploadDropZone({ children, onUpload = constants_1.asyncNoop, uid = "fileUploadDialog", registerComponentApi, style, allowPaste = true, text = "Drop files here", disabled = false, }) {
27
+ const onDrop = (0, react_1.useCallback)((acceptedFiles) => __awaiter(this, void 0, void 0, function* () {
28
+ if (!acceptedFiles.length) {
29
+ return;
30
+ }
31
+ onUpload === null || onUpload === void 0 ? void 0 : onUpload(acceptedFiles);
32
+ }), [onUpload]);
33
+ const { getRootProps, getInputProps, isDragActive, open, inputRef } = (0, react_dropzone_1.useDropzone)({
34
+ onDrop,
35
+ noClick: true,
36
+ noKeyboard: true,
37
+ noDragEventsBubbling: true,
38
+ disabled,
39
+ });
40
+ const doOpen = (0, misc_1.useEvent)(() => {
41
+ open();
42
+ });
43
+ const handleOnPaste = (0, react_1.useCallback)((event) => {
44
+ var _a, _b;
45
+ if (!allowPaste) {
46
+ return;
47
+ }
48
+ if (!inputRef.current) {
49
+ return;
50
+ }
51
+ if ((_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.files) {
52
+ const items = ((_b = event.clipboardData) === null || _b === void 0 ? void 0 : _b.items) || [];
53
+ const files = [];
54
+ for (let i = 0; i < items.length; i++) {
55
+ const item = items[i];
56
+ if (item.kind === "file") {
57
+ const file = item.getAsFile();
58
+ if (file !== null) {
59
+ files.push(file);
60
+ }
61
+ }
62
+ }
63
+ if (files.length > 0) {
64
+ //the clipboardData.files doesn't necessarily contains files... so we have to double check it
65
+ event.stopPropagation(); //it's for nested file upload dropzones
66
+ event.preventDefault(); // and this one is for preventing to paste in the file name, if we a have stored file on the clipboard (copied from finder/windows explorer for example)
67
+ //stolen from here: https://github.com/react-dropzone/react-dropzone/issues/1210#issuecomment-1537862105
68
+ inputRef.current.files = event.clipboardData.files;
69
+ inputRef.current.dispatchEvent(new Event("change", { bubbles: true }));
70
+ }
71
+ }
72
+ }, [allowPaste, inputRef]);
73
+ (0, react_1.useEffect)(() => {
74
+ registerComponentApi({
75
+ open: doOpen,
76
+ });
77
+ }, [doOpen, registerComponentApi, uid]);
78
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({}, getRootProps(), { style: style, className: FileUploadDropZone_module_scss_1.default.wrapper, onPaste: handleOnPaste, children: [(0, jsx_runtime_1.jsx)("input", Object.assign({}, getInputProps())), children, isDragActive && ((0, jsx_runtime_1.jsxs)("div", { className: FileUploadDropZone_module_scss_1.default.dropPlaceholder, children: [(0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "upload" }), text] }))] })));
79
+ }
80
+ const metadata = {
81
+ displayName: "FileUploadDropZone",
82
+ description: "A screen area to drop files to upload",
83
+ props: {
84
+ text: (0, descriptorHelper_1.desc)("Text to display"),
85
+ allowPaste: (0, descriptorHelper_1.desc)("Allow paste files?"),
86
+ },
87
+ events: {
88
+ upload: (0, descriptorHelper_1.desc)("Triggered when a file is about to upload"),
89
+ },
90
+ themeVars: (0, themeVars_1.parseScssVar)(FileUploadDropZone_module_scss_1.default.themeVars),
91
+ defaultThemeVars: {
92
+ "color-bg-FileUploadDropZone": "$color-bg",
93
+ "color-bg-dropping-FileUploadDropZone": "$color-bg--selected",
94
+ "opacity-dropping-FileUploadDropZone": "0.5",
95
+ "color-text-FileUploadDropZone": "$color-text",
96
+ light: {
97
+ // --- No light-specific theme vars
98
+ },
99
+ dark: {
100
+ // --- No dark-specific theme vars
101
+ },
102
+ },
103
+ };
104
+ exports.fileUploadDropZoneComponentRenderer = (0, renderers_1.createComponentRenderer)("FileUploadDropZone", ({ node, extractValue, renderChild, lookupEventHandler, registerComponentApi, layoutCss }) => {
105
+ return ((0, jsx_runtime_1.jsx)(FileUploadDropZone, { onUpload: lookupEventHandler("upload"), uid: extractValue(node.uid), registerComponentApi: registerComponentApi, style: layoutCss, allowPaste: extractValue(node.props.allowPaste), text: extractValue(node.props.text), disabled: !extractValue.asOptionalBoolean(node.props.enabled, true), children: renderChild(node.children, { type: "Stack" }) }));
106
+ }, metadata);
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.flowLayoutComponentRenderer = void 0;
18
+ exports.FlowLayout = FlowLayout;
19
+ const jsx_runtime_1 = require("react/jsx-runtime");
20
+ const react_1 = require("react");
21
+ const FlowLayout_module_scss_1 = __importDefault(require("./FlowLayout.module.scss"));
22
+ const renderers_1 = require("@components-core/renderers");
23
+ const misc_1 = require("@components-core/utils/misc");
24
+ const EngineError_1 = require("@components-core/EngineError");
25
+ const classnames_1 = __importDefault(require("@components-core/utils/classnames"));
26
+ const style_compiler_1 = require("../../parsers/style-parser/style-compiler");
27
+ const ThemeContext_1 = require("@components-core/theming/ThemeContext");
28
+ const themeVars_1 = require("@components-core/theming/themeVars");
29
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
30
+ const lodash_es_1 = require("lodash-es");
31
+ const css_utils_1 = require("@components-core/utils/css-utils");
32
+ const hooks_1 = require("@components-core/utils/hooks");
33
+ const resolvedCssVars = {};
34
+ const FlowLayoutContext = (0, react_1.createContext)({
35
+ rowGap: 0,
36
+ columnGap: 0,
37
+ setNumberOfChildren: lodash_es_1.noop,
38
+ });
39
+ function FlowItemWrapper(_a) {
40
+ var { children } = _a, restProps = __rest(_a, ["children"]);
41
+ const { rowGap, columnGap, setNumberOfChildren } = (0, react_1.useContext)(FlowLayoutContext);
42
+ (0, hooks_1.useIsomorphicLayoutEffect)(() => {
43
+ setNumberOfChildren((prev) => prev + 1);
44
+ return () => {
45
+ setNumberOfChildren((prev) => prev - 1);
46
+ };
47
+ }, [setNumberOfChildren]);
48
+ const { activeTheme, root } = (0, ThemeContext_1.useTheme)();
49
+ const _width = restProps.width || "100%";
50
+ const _minWidth = restProps.minWidth || undefined;
51
+ const _maxWidth = restProps.maxWidth || undefined;
52
+ const { width = _width, minWidth, maxWidth, flex, } = (0, react_1.useMemo)(() => {
53
+ return ((0, style_compiler_1.compileLayout)({ width: _width, maxWidth: _maxWidth, minWidth: _minWidth }, activeTheme.themeVars, {
54
+ type: "Stack",
55
+ orientation: "horizontal",
56
+ }).cssProps || {});
57
+ }, [_maxWidth, _minWidth, _width, activeTheme.themeVars]);
58
+ const resolvedWidth = (0, react_1.useMemo)(() => {
59
+ if (width && typeof width === "string" && width.startsWith("var(")) {
60
+ if (!resolvedCssVars[width]) {
61
+ const varName = width.substring(4, width.length - 1);
62
+ const resolved = getComputedStyle(root).getPropertyValue(varName);
63
+ resolvedCssVars[width] = resolved || _width;
64
+ }
65
+ return resolvedCssVars[width];
66
+ }
67
+ return width || _width;
68
+ }, [_width, root, width]);
69
+ const isWidthPercentage = typeof resolvedWidth === "string" && resolvedWidth.endsWith("%");
70
+ const _columnGap = (0, css_utils_1.normalizeCssValueForCalc)(columnGap);
71
+ const isViewportPhone = (0, hooks_1.useMediaQuery)("(max-width: 420px)"); //TODO useContainerQuery
72
+ const isViewportTablet = (0, hooks_1.useMediaQuery)("(max-width: 800px)");
73
+ const outerWrapperStyle = {
74
+ minWidth,
75
+ maxWidth,
76
+ width: isWidthPercentage
77
+ ? `min(${width} * ${isViewportPhone ? "8" : isViewportTablet ? "4" : "1"}, 100%)`
78
+ : `min(calc(${width} + ${_columnGap}), 100%)`,
79
+ paddingBottom: rowGap,
80
+ flex,
81
+ };
82
+ const isStarSizing = flex !== undefined;
83
+ if (isStarSizing) {
84
+ //star sizing
85
+ outerWrapperStyle.width = "100%";
86
+ outerWrapperStyle.minWidth = minWidth || "1px";
87
+ }
88
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: outerWrapperStyle, children: (0, jsx_runtime_1.jsx)("div", { style: { paddingRight: _columnGap }, className: FlowLayout_module_scss_1.default.flowItem, children: children }) }), isStarSizing && (0, jsx_runtime_1.jsx)("div", { className: FlowLayout_module_scss_1.default.break })] }));
89
+ }
90
+ function FlowLayout({ style, columnGap, rowGap, children }) {
91
+ const [numberOfChildren, setNumberOfChildren] = (0, react_1.useState)(0);
92
+ const safeColumnGap = numberOfChildren === 1 ? 0 : columnGap;
93
+ // --- Be smart about rowGap
94
+ const _rowGap = (0, css_utils_1.getSizeString)(rowGap);
95
+ const _columnGap = (0, css_utils_1.getSizeString)(safeColumnGap);
96
+ const outerStyle = Object.assign({ overflow: "auto" }, style);
97
+ const innerStyle = {
98
+ // We put a negative margin on the container to fill the space for the row's last columnGap
99
+ marginRight: `calc(-1 * ${_columnGap})`,
100
+ marginBottom: `calc(-1 * ${_rowGap})`,
101
+ };
102
+ const flowLayoutContextValue = (0, react_1.useMemo)(() => {
103
+ return {
104
+ rowGap: _rowGap,
105
+ columnGap: _columnGap,
106
+ setNumberOfChildren,
107
+ };
108
+ }, [_columnGap, _rowGap]);
109
+ return ((0, jsx_runtime_1.jsx)(FlowLayoutContext.Provider, { value: flowLayoutContextValue, children: (0, jsx_runtime_1.jsx)("div", { style: outerStyle, children: (0, jsx_runtime_1.jsx)("div", { style: { overflow: "hidden" }, children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(FlowLayout_module_scss_1.default.flowContainer, FlowLayout_module_scss_1.default.horizontal), style: innerStyle, children: children }) }) }) }));
110
+ }
111
+ const metadata = {
112
+ displayName: "FlowLayout",
113
+ description: "",
114
+ props: {
115
+ columnGap: (0, descriptorHelper_1.desc)("Gap between flow layout items in a row"),
116
+ rowGap: (0, descriptorHelper_1.desc)("Gap between flow layout rows"),
117
+ },
118
+ themeVars: (0, themeVars_1.parseScssVar)(FlowLayout_module_scss_1.default.themeVars),
119
+ };
120
+ exports.flowLayoutComponentRenderer = (0, renderers_1.createComponentRenderer)("FlowLayout", ({ node, renderChild, layoutCss, extractValue }) => {
121
+ var _a, _b;
122
+ if (!(0, misc_1.isComponentDefChildren)(node.children)) {
123
+ throw new EngineError_1.NotAComponentDefError();
124
+ }
125
+ // Only calculate column gaps if there are more than 1 child
126
+ const columnGap = extractValue.asSize((_a = node.props) === null || _a === void 0 ? void 0 : _a.columnGap) || layoutCss.gap || 0;
127
+ const rowGap = extractValue.asSize((_b = node.props) === null || _b === void 0 ? void 0 : _b.rowGap) || layoutCss.gap || 0;
128
+ return ((0, jsx_runtime_1.jsx)(FlowLayout, { style: layoutCss, columnGap: columnGap, rowGap: rowGap, children: renderChild(node.children, {
129
+ wrapChild: ({ node, extractValue }, renderedChild, hints) => {
130
+ var _a, _b, _c;
131
+ if (hints === null || hints === void 0 ? void 0 : hints.opaque) {
132
+ return renderedChild;
133
+ }
134
+ // Handle SpaceFiller as a * width item
135
+ const width = node.type === "SpaceFiller" ? "*" : extractValue((_a = node.props) === null || _a === void 0 ? void 0 : _a.width);
136
+ return ((0, jsx_runtime_1.jsx)(FlowItemWrapper, { width: width, minWidth: extractValue((_b = node.props) === null || _b === void 0 ? void 0 : _b.minWidth), maxWidth: extractValue((_c = node.props) === null || _c === void 0 ? void 0 : _c.maxWidth), children: renderedChild }));
137
+ },
138
+ }) }));
139
+ }, metadata);
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.footerRenderer = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const Footer_module_scss_1 = __importDefault(require("./Footer.module.scss"));
9
+ const renderers_1 = require("@components-core/renderers");
10
+ const themeVars_1 = require("@components-core/theming/themeVars");
11
+ const base_utils_1 = require("@components-core/theming/themes/base-utils");
12
+ const AppLayoutContext_1 = require("@components/App/AppLayoutContext");
13
+ const react_dom_1 = require("react-dom");
14
+ const classnames_1 = __importDefault(require("@components-core/utils/classnames"));
15
+ // =====================================================================================================================
16
+ // React Footer component implementation
17
+ function Footer({ children, style, className, }) {
18
+ const appLayoutContext = (0, AppLayoutContext_1.useAppLayoutContext)();
19
+ const content = ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(Footer_module_scss_1.default.wrapper, className), style: style, children: children }));
20
+ const { footerRoot } = appLayoutContext || {};
21
+ if (footerRoot) {
22
+ return (0, react_dom_1.createPortal)(content, footerRoot);
23
+ }
24
+ return content;
25
+ }
26
+ const metadata = {
27
+ displayName: "Footer",
28
+ description: "Display an application footer",
29
+ themeVars: (0, themeVars_1.parseScssVar)(Footer_module_scss_1.default.themeVars),
30
+ defaultThemeVars: Object.assign(Object.assign({ "color-bg-Footer": "$color-bg-AppHeader", "vertical-alignment-Footer": "center", "max-content-width-Footer": "$max-content-width-App" }, (0, base_utils_1.paddingSubject)("Footer", { horizontal: "$space-4", vertical: "$space-1" })), { light: {
31
+ // --- No light-specific theme vars
32
+ }, dark: {
33
+ // --- No dark-specific theme vars
34
+ } }),
35
+ };
36
+ exports.footerRenderer = (0, renderers_1.createComponentRenderer)("Footer", ({ node, renderChild, layoutCss, layoutContext }) => {
37
+ return ((0, jsx_runtime_1.jsx)(Footer, { style: layoutCss, className: layoutContext === null || layoutContext === void 0 ? void 0 : layoutContext.themeClassName, children: renderChild(node.children, {
38
+ // Since the Footer is a flex container, it's children should behave the same as in a stack
39
+ type: "Stack",
40
+ orientation: "horizontal"
41
+ }) }));
42
+ }, metadata);