zui 0.0.1

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 (325) hide show
  1. checksums.yaml +7 -0
  2. data/Components/Builtins/Accordion.qml +208 -0
  3. data/Components/Builtins/Action.qml +43 -0
  4. data/Components/Builtins/ActionButton.qml +19 -0
  5. data/Components/Builtins/ActionGroup.qml +81 -0
  6. data/Components/Builtins/AlertDialog.qml +398 -0
  7. data/Components/Builtins/AnchorAnimation.qml +3 -0
  8. data/Components/Builtins/AnchorChanges.qml +11 -0
  9. data/Components/Builtins/AnimatedImage.qml +39 -0
  10. data/Components/Builtins/Animation.qml +3 -0
  11. data/Components/Builtins/AnimationController.qml +11 -0
  12. data/Components/Builtins/ApplicationWindow.qml +103 -0
  13. data/Components/Builtins/AreaChart.qml +70 -0
  14. data/Components/Builtins/AspectRatio.qml +30 -0
  15. data/Components/Builtins/Audio.qml +85 -0
  16. data/Components/Builtins/AudioInput.qml +10 -0
  17. data/Components/Builtins/AudioOutput.qml +10 -0
  18. data/Components/Builtins/Avatar.qml +46 -0
  19. data/Components/Builtins/Badge.qml +38 -0
  20. data/Components/Builtins/Banner.qml +133 -0
  21. data/Components/Builtins/BarChart.qml +67 -0
  22. data/Components/Builtins/BarIconButton.qml +30 -0
  23. data/Components/Builtins/BarIndicator.qml +26 -0
  24. data/Components/Builtins/Behavior.qml +13 -0
  25. data/Components/Builtins/Blur.qml +14 -0
  26. data/Components/Builtins/BorderImage.qml +38 -0
  27. data/Components/Builtins/BorderOverlay.qml +25 -0
  28. data/Components/Builtins/BottomSheet.qml +211 -0
  29. data/Components/Builtins/Breadcrumb.qml +169 -0
  30. data/Components/Builtins/BubbleChart.qml +3 -0
  31. data/Components/Builtins/BusyIndicator.qml +24 -0
  32. data/Components/Builtins/Button.qml +55 -0
  33. data/Components/Builtins/ButtonGroup.qml +18 -0
  34. data/Components/Builtins/Calendar.qml +55 -0
  35. data/Components/Builtins/Camera.qml +18 -0
  36. data/Components/Builtins/CandlestickChart.qml +3 -0
  37. data/Components/Builtins/Canvas.qml +159 -0
  38. data/Components/Builtins/CaptureSession.qml +19 -0
  39. data/Components/Builtins/Card.qml +23 -0
  40. data/Components/Builtins/Carousel.qml +72 -0
  41. data/Components/Builtins/Center.qml +20 -0
  42. data/Components/Builtins/CheckDelegate.qml +132 -0
  43. data/Components/Builtins/Checkbox.qml +62 -0
  44. data/Components/Builtins/Chip.qml +65 -0
  45. data/Components/Builtins/Circle.qml +35 -0
  46. data/Components/Builtins/Clipboard.qml +29 -0
  47. data/Components/Builtins/ColorAnimation.qml +3 -0
  48. data/Components/Builtins/ColorPicker.qml +70 -0
  49. data/Components/Builtins/Colorize.qml +14 -0
  50. data/Components/Builtins/Column.qml +17 -0
  51. data/Components/Builtins/ColumnLayout.qml +13 -0
  52. data/Components/Builtins/ConfirmDialog.qml +20 -0
  53. data/Components/Builtins/ConstrainedBox.qml +28 -0
  54. data/Components/Builtins/Container.qml +30 -0
  55. data/Components/Builtins/ContextMenu.qml +140 -0
  56. data/Components/Builtins/CursorSurface.qml +18 -0
  57. data/Components/Builtins/DataTable.qml +69 -0
  58. data/Components/Builtins/DatePicker.qml +180 -0
  59. data/Components/Builtins/DayOfWeekRow.qml +11 -0
  60. data/Components/Builtins/DelayButton.qml +47 -0
  61. data/Components/Builtins/DelegateModel.qml +10 -0
  62. data/Components/Builtins/DelegateModelGroup.qml +10 -0
  63. data/Components/Builtins/Dial.qml +42 -0
  64. data/Components/Builtins/Dialog.qml +128 -0
  65. data/Components/Builtins/DialogButtonBox.qml +137 -0
  66. data/Components/Builtins/Divider.qml +26 -0
  67. data/Components/Builtins/DonutChart.qml +3 -0
  68. data/Components/Builtins/DoubleSpinBox.qml +58 -0
  69. data/Components/Builtins/DragArea.qml +43 -0
  70. data/Components/Builtins/Drawer.qml +107 -0
  71. data/Components/Builtins/DropArea.qml +19 -0
  72. data/Components/Builtins/DropShadow.qml +16 -0
  73. data/Components/Builtins/Dropdown.qml +19 -0
  74. data/Components/Builtins/ExpansionPanel.qml +157 -0
  75. data/Components/Builtins/FilePicker.qml +140 -0
  76. data/Components/Builtins/FittedBox.qml +40 -0
  77. data/Components/Builtins/Flickable.qml +40 -0
  78. data/Components/Builtins/Flipable.qml +45 -0
  79. data/Components/Builtins/Flow.qml +16 -0
  80. data/Components/Builtins/FocusScope.qml +29 -0
  81. data/Components/Builtins/FolderListModel.qml +9 -0
  82. data/Components/Builtins/FolderPicker.qml +93 -0
  83. data/Components/Builtins/FontLoader.qml +21 -0
  84. data/Components/Builtins/FontPicker.qml +91 -0
  85. data/Components/Builtins/Frame.qml +71 -0
  86. data/Components/Builtins/FrameAnimation.qml +13 -0
  87. data/Components/Builtins/Gauge.qml +3 -0
  88. data/Components/Builtins/Glow.qml +15 -0
  89. data/Components/Builtins/Gradient.qml +93 -0
  90. data/Components/Builtins/Grid.qml +16 -0
  91. data/Components/Builtins/GridLayout.qml +16 -0
  92. data/Components/Builtins/GridView.qml +226 -0
  93. data/Components/Builtins/GroupBox.qml +95 -0
  94. data/Components/Builtins/Heatmap.qml +3 -0
  95. data/Components/Builtins/Histogram.qml +3 -0
  96. data/Components/Builtins/HorizontalHeader.qml +23 -0
  97. data/Components/Builtins/HorizontalHeaderDelegate.qml +39 -0
  98. data/Components/Builtins/HoverArea.qml +19 -0
  99. data/Components/Builtins/Icon.qml +16 -0
  100. data/Components/Builtins/Image.qml +110 -0
  101. data/Components/Builtins/ImageCapture.qml +14 -0
  102. data/Components/Builtins/ItemDelegate.qml +152 -0
  103. data/Components/Builtins/KeyCatcher.qml +25 -0
  104. data/Components/Builtins/Label.qml +43 -0
  105. data/Components/Builtins/LayoutItemProxy.qml +51 -0
  106. data/Components/Builtins/Legend.qml +86 -0
  107. data/Components/Builtins/Line.qml +28 -0
  108. data/Components/Builtins/LineChart.qml +87 -0
  109. data/Components/Builtins/ListModel.qml +8 -0
  110. data/Components/Builtins/ListView.qml +65 -0
  111. data/Components/Builtins/Loader.qml +33 -0
  112. data/Components/Builtins/Markdown.qml +23 -0
  113. data/Components/Builtins/MediaDevices.qml +10 -0
  114. data/Components/Builtins/MediaPlayer.qml +27 -0
  115. data/Components/Builtins/MediaRecorder.qml +16 -0
  116. data/Components/Builtins/Menu.qml +119 -0
  117. data/Components/Builtins/MenuBar.qml +128 -0
  118. data/Components/Builtins/MenuItem.qml +77 -0
  119. data/Components/Builtins/MenuSeparator.qml +30 -0
  120. data/Components/Builtins/MessageDialog.qml +104 -0
  121. data/Components/Builtins/ModalSheet.qml +222 -0
  122. data/Components/Builtins/ModelView3d.qml +50 -0
  123. data/Components/Builtins/MonthGrid.qml +23 -0
  124. data/Components/Builtins/MultiEffect.qml +48 -0
  125. data/Components/Builtins/MultiSelect.qml +23 -0
  126. data/Components/Builtins/NavigationRail.qml +154 -0
  127. data/Components/Builtins/NumberAnimation.qml +3 -0
  128. data/Components/Builtins/NumberField.qml +18 -0
  129. data/Components/Builtins/OpacityAnimator.qml +3 -0
  130. data/Components/Builtins/OpacityMask.qml +21 -0
  131. data/Components/Builtins/OpticalGlyph.qml +16 -0
  132. data/Components/Builtins/Page.qml +111 -0
  133. data/Components/Builtins/PageIndicator.qml +63 -0
  134. data/Components/Builtins/Pagination.qml +158 -0
  135. data/Components/Builtins/Pane.qml +72 -0
  136. data/Components/Builtins/PanelHero.qml +15 -0
  137. data/Components/Builtins/ParallelAnimation.qml +3 -0
  138. data/Components/Builtins/ParentAnimation.qml +3 -0
  139. data/Components/Builtins/ParentChange.qml +10 -0
  140. data/Components/Builtins/ParticleSystem.qml +81 -0
  141. data/Components/Builtins/PasswordField.qml +58 -0
  142. data/Components/Builtins/Path.qml +35 -0
  143. data/Components/Builtins/PathAnimation.qml +3 -0
  144. data/Components/Builtins/PauseAnimation.qml +3 -0
  145. data/Components/Builtins/PieChart.qml +3 -0
  146. data/Components/Builtins/PinchArea.qml +23 -0
  147. data/Components/Builtins/Popup.qml +130 -0
  148. data/Components/Builtins/Progress.qml +15 -0
  149. data/Components/Builtins/ProgressRing.qml +120 -0
  150. data/Components/Builtins/PropertyAction.qml +11 -0
  151. data/Components/Builtins/PropertyAnimation.qml +3 -0
  152. data/Components/Builtins/PropertyChanges.qml +10 -0
  153. data/Components/Builtins/RadarChart.qml +3 -0
  154. data/Components/Builtins/RadialGauge.qml +3 -0
  155. data/Components/Builtins/RadioButton.qml +46 -0
  156. data/Components/Builtins/RadioDelegate.qml +115 -0
  157. data/Components/Builtins/RadioGroup.qml +58 -0
  158. data/Components/Builtins/RangeSlider.qml +39 -0
  159. data/Components/Builtins/Rectangle.qml +23 -0
  160. data/Components/Builtins/RectangularShadow.qml +23 -0
  161. data/Components/Builtins/ReorderableList.qml +204 -0
  162. data/Components/Builtins/RichText.qml +23 -0
  163. data/Components/Builtins/RotationAnimation.qml +3 -0
  164. data/Components/Builtins/RotationAnimator.qml +3 -0
  165. data/Components/Builtins/RoundButton.qml +42 -0
  166. data/Components/Builtins/Row.qml +17 -0
  167. data/Components/Builtins/RowLayout.qml +13 -0
  168. data/Components/Builtins/ScaleAnimator.qml +3 -0
  169. data/Components/Builtins/ScatterChart.qml +3 -0
  170. data/Components/Builtins/ScreenCapture.qml +78 -0
  171. data/Components/Builtins/ScriptAction.qml +15 -0
  172. data/Components/Builtins/Scroll.qml +18 -0
  173. data/Components/Builtins/ScrollBar.qml +18 -0
  174. data/Components/Builtins/ScrollIndicator.qml +15 -0
  175. data/Components/Builtins/SearchField.qml +178 -0
  176. data/Components/Builtins/SearchableDropdown.qml +21 -0
  177. data/Components/Builtins/SectionHeader.qml +14 -0
  178. data/Components/Builtins/SelectableText.qml +33 -0
  179. data/Components/Builtins/SelectionRectangle.qml +17 -0
  180. data/Components/Builtins/Separator.qml +13 -0
  181. data/Components/Builtins/SequentialAnimation.qml +3 -0
  182. data/Components/Builtins/Settings.qml +10 -0
  183. data/Components/Builtins/ShaderEffect.qml +115 -0
  184. data/Components/Builtins/ShaderEffectSource.qml +61 -0
  185. data/Components/Builtins/Shaders/grayscale.frag +14 -0
  186. data/Components/Builtins/Shaders/grayscale.frag.qsb +0 -0
  187. data/Components/Builtins/Shaders/passthrough.frag +11 -0
  188. data/Components/Builtins/Shaders/passthrough.frag.qsb +0 -0
  189. data/Components/Builtins/Shaders/pixelate.frag +16 -0
  190. data/Components/Builtins/Shaders/pixelate.frag.qsb +0 -0
  191. data/Components/Builtins/Shaders/vignette.frag +18 -0
  192. data/Components/Builtins/Shaders/vignette.frag.qsb +0 -0
  193. data/Components/Builtins/Shaders/wave.frag +18 -0
  194. data/Components/Builtins/Shaders/wave.frag.qsb +0 -0
  195. data/Components/Builtins/Shape.qml +53 -0
  196. data/Components/Builtins/Skeleton.qml +78 -0
  197. data/Components/Builtins/Slider.qml +21 -0
  198. data/Components/Builtins/SmoothedAnimation.qml +3 -0
  199. data/Components/Builtins/Snackbar.qml +181 -0
  200. data/Components/Builtins/SortFilterProxyModel.qml +16 -0
  201. data/Components/Builtins/SoundEffect.qml +10 -0
  202. data/Components/Builtins/Spacer.qml +13 -0
  203. data/Components/Builtins/Sparkline.qml +3 -0
  204. data/Components/Builtins/SpinBox.qml +44 -0
  205. data/Components/Builtins/SplitView.qml +31 -0
  206. data/Components/Builtins/SpringAnimation.qml +3 -0
  207. data/Components/Builtins/Stack.qml +14 -0
  208. data/Components/Builtins/StackLayout.qml +19 -0
  209. data/Components/Builtins/StackView.qml +122 -0
  210. data/Components/Builtins/StackedBarChart.qml +3 -0
  211. data/Components/Builtins/StandardPaths.qml +9 -0
  212. data/Components/Builtins/State.qml +13 -0
  213. data/Components/Builtins/StateGroup.qml +11 -0
  214. data/Components/Builtins/Support/AnimationDriver.qml +79 -0
  215. data/Components/Builtins/Support/AnimationGroupDriver.qml +32 -0
  216. data/Components/Builtins/Support/ChartCanvas.qml +629 -0
  217. data/Components/Builtins/Support/ModelView3dScene.qml +292 -0
  218. data/Components/Builtins/Support/OptionalModuleState.js +5 -0
  219. data/Components/Builtins/SwipeDelegate.qml +231 -0
  220. data/Components/Builtins/SwipeView.qml +69 -0
  221. data/Components/Builtins/SwitchDelegate.qml +140 -0
  222. data/Components/Builtins/TabBar.qml +117 -0
  223. data/Components/Builtins/TabButton.qml +105 -0
  224. data/Components/Builtins/TableView.qml +388 -0
  225. data/Components/Builtins/TableViewDelegate.qml +17 -0
  226. data/Components/Builtins/Tabs.qml +138 -0
  227. data/Components/Builtins/Text.qml +24 -0
  228. data/Components/Builtins/TextArea.qml +59 -0
  229. data/Components/Builtins/TextField.qml +21 -0
  230. data/Components/Builtins/TextMetrics.qml +39 -0
  231. data/Components/Builtins/TimePicker.qml +213 -0
  232. data/Components/Builtins/Timer.qml +13 -0
  233. data/Components/Builtins/Toast.qml +213 -0
  234. data/Components/Builtins/Toggle.qml +19 -0
  235. data/Components/Builtins/ToggleSwitch.qml +22 -0
  236. data/Components/Builtins/ToolBar.qml +61 -0
  237. data/Components/Builtins/ToolButton.qml +41 -0
  238. data/Components/Builtins/ToolSeparator.qml +36 -0
  239. data/Components/Builtins/Tooltip.qml +20 -0
  240. data/Components/Builtins/Transition.qml +3 -0
  241. data/Components/Builtins/TreeView.qml +423 -0
  242. data/Components/Builtins/TreeViewDelegate.qml +46 -0
  243. data/Components/Builtins/Tumbler.qml +18 -0
  244. data/Components/Builtins/UniformAnimator.qml +3 -0
  245. data/Components/Builtins/VectorAnimation.qml +3 -0
  246. data/Components/Builtins/VectorImage.qml +62 -0
  247. data/Components/Builtins/VerticalHeader.qml +21 -0
  248. data/Components/Builtins/VerticalHeaderDelegate.qml +35 -0
  249. data/Components/Builtins/Video.qml +54 -0
  250. data/Components/Builtins/VideoOutput.qml +54 -0
  251. data/Components/Builtins/WebView.qml +57 -0
  252. data/Components/Builtins/WeekNumberColumn.qml +13 -0
  253. data/Components/Builtins/WidgetButton.qml +26 -0
  254. data/Components/Builtins/Window.qml +90 -0
  255. data/Components/Builtins/WindowCapture.qml +11 -0
  256. data/Components/Builtins/Wrap.qml +18 -0
  257. data/Components/Builtins/XAnimator.qml +3 -0
  258. data/Components/Builtins/YAnimator.qml +3 -0
  259. data/Components/README.md +45 -0
  260. data/ControlNode.qml +1369 -0
  261. data/Controls/BarIconButton.qml +27 -0
  262. data/Controls/BarIndicator.qml +22 -0
  263. data/Controls/BorderOverlay.qml +10 -0
  264. data/Controls/BorderSurface.qml +10 -0
  265. data/Controls/Button.qml +78 -0
  266. data/Controls/ButtonGroup.qml +19 -0
  267. data/Controls/ConfirmDialog.qml +37 -0
  268. data/Controls/CursorSurface.qml +29 -0
  269. data/Controls/Dropdown.qml +59 -0
  270. data/Controls/MultiSelect.qml +32 -0
  271. data/Controls/NumberField.qml +24 -0
  272. data/Controls/OpticalGlyph.qml +14 -0
  273. data/Controls/PanelActionButton.qml +10 -0
  274. data/Controls/PanelHero.qml +18 -0
  275. data/Controls/PanelKeyCatcher.qml +25 -0
  276. data/Controls/PanelSectionHeader.qml +11 -0
  277. data/Controls/PanelSeparator.qml +10 -0
  278. data/Controls/PanelSlider.qml +36 -0
  279. data/Controls/PanelToolTip.qml +13 -0
  280. data/Controls/SearchableDropdown.qml +11 -0
  281. data/Controls/TextField.qml +25 -0
  282. data/Controls/Toggle.qml +22 -0
  283. data/Controls/ToggleSwitch.qml +26 -0
  284. data/Controls/WidgetButton.qml +35 -0
  285. data/Controls/qmldir +25 -0
  286. data/Desktop.qml +76 -0
  287. data/LICENSE +22 -0
  288. data/README.md +112 -0
  289. data/Service.qml +430 -0
  290. data/Theme/Border.qml +22 -0
  291. data/Theme/Color.qml +22 -0
  292. data/Theme/Style.qml +47 -0
  293. data/Theme/Util.qml +6 -0
  294. data/Theme/qmldir +5 -0
  295. data/bin/zui +7 -0
  296. data/lib/zui/animation.rb +24 -0
  297. data/lib/zui/application.rb +327 -0
  298. data/lib/zui/builder.rb +725 -0
  299. data/lib/zui/cli.rb +91 -0
  300. data/lib/zui/command.rb +101 -0
  301. data/lib/zui/component_registry.rb +91 -0
  302. data/lib/zui/components.rb +262 -0
  303. data/lib/zui/distribution.rb +200 -0
  304. data/lib/zui/generator.rb +84 -0
  305. data/lib/zui/host.rb +123 -0
  306. data/lib/zui/node.rb +30 -0
  307. data/lib/zui/platform.rb +40 -0
  308. data/lib/zui/protocol.rb +29 -0
  309. data/lib/zui/runner.rb +37 -0
  310. data/lib/zui/runtime.rb +23 -0
  311. data/lib/zui/scheduler.rb +136 -0
  312. data/lib/zui/source_bundle.rb +63 -0
  313. data/lib/zui/state_store.rb +100 -0
  314. data/lib/zui/value.rb +44 -0
  315. data/lib/zui.rb +33 -0
  316. data/native/CMakeLists.txt +45 -0
  317. data/native/ZuiClipboard.cpp +16 -0
  318. data/native/ZuiClipboard.h +16 -0
  319. data/native/ZuiProcess.cpp +84 -0
  320. data/native/ZuiProcess.h +34 -0
  321. data/native/main.cpp +64 -0
  322. data/vendor/host/linux-x86_64/PROVENANCE.md +15 -0
  323. data/vendor/host/linux-x86_64/zui-host +0 -0
  324. data/vendor/host/linux-x86_64/zui-host.sha256 +1 -0
  325. metadata +365 -0
data/ControlNode.qml ADDED
@@ -0,0 +1,1369 @@
1
+ import QtQuick
2
+ import QtQuick.Controls as QQC
3
+ import QtQuick.Layouts
4
+ import QtMultimedia
5
+ import QtQuick.VectorImage
6
+ import "Theme"
7
+ import "Controls" as ZuiControls
8
+ import "Components/Builtins" as Builtins
9
+
10
+ Loader {
11
+ id: root
12
+
13
+ property var bridge: null
14
+ property string surfaceName: ""
15
+ property string controlId: ""
16
+ property color foreground: Color.foreground
17
+ property string fontFamily: Style.font.family
18
+
19
+ // Shared recursive delegates are framework infrastructure. Individual built-in
20
+ // renderers consume these without duplicating ControlNode's lifecycle wiring.
21
+ readonly property Component childDelegateComponent: childDelegate
22
+ readonly property Component rowChildDelegateComponent: rowChildDelegate
23
+ readonly property Component columnChildDelegateComponent: columnChildDelegate
24
+ readonly property Component layoutChildDelegateComponent: layoutChildDelegate
25
+ readonly property Component splitChildDelegateComponent: splitChildDelegate
26
+
27
+ readonly property var node: {
28
+ var currentRevision = bridge ? bridge.revision : 0
29
+ return bridge ? bridge.nodeFor(controlId) : null
30
+ }
31
+
32
+ readonly property bool builtIn: ["text", "label", "rich_text", "markdown", "selectable_text", "icon", "tooltip", "button", "round_button", "tool_button", "delay_button", "row", "column", "container", "image", "vector_image", "model_view_3d", "font_loader", "text_metrics", "animated_image", "video", "audio", "avatar", "badge", "chip", "spacer",
33
+ "grid", "row_layout", "column_layout", "grid_layout", "flow", "center", "card", "border_overlay", "aspect_ratio", "constrained_box", "fitted_box", "wrap", "split_view", "stack_layout", "layout_item_proxy", "loader", "flickable", "focus_scope", "flipable", "border_image", "window", "application_window",
34
+ "stack", "scroll", "rectangle", "page", "pane", "frame", "group_box", "tabs", "tab_bar", "tab_button", "page_indicator", "stack_view", "swipe_view", "drawer", "navigation_rail", "breadcrumb", "pagination", "expansion_panel", "accordion", "tool_bar", "tool_separator", "menu", "menu_item", "menu_separator", "menu_bar", "context_menu", "popup", "dialog", "alert_dialog", "message_dialog", "bottom_sheet", "modal_sheet", "snackbar", "banner", "toast", "busy_indicator", "progress_ring", "skeleton", "item_delegate", "check_delegate", "radio_delegate", "switch_delegate", "swipe_delegate", "grid_view", "table_view", "tree_view", "action_button", "bar_icon_button", "bar_indicator", "toggle", "checkbox", "radio_button", "radio_group", "toggle_switch", "text_field",
35
+ "number_field", "text_area", "search_field", "password_field", "slider", "range_slider", "dial", "spin_box", "double_spin_box", "color_picker", "date_picker", "time_picker", "file_picker", "folder_picker", "font_picker", "dialog_button_box", "action", "action_group", "dropdown", "multi_select", "button_group", "progress", "line_chart", "area_chart", "bar_chart", "separator", "divider",
36
+ "section_header", "searchable_dropdown", "confirm_dialog", "panel_hero", "optical_glyph",
37
+ "cursor_surface", "widget_button", "list_view", "key_catcher", "canvas", "shape", "line", "path", "circle", "gradient", "shader_effect", "shader_effect_source", "multi_effect", "rectangular_shadow", "opacity_mask", "blur", "drop_shadow", "colorize", "glow", "particle_system",
38
+ "web_view", "data_table", "horizontal_header", "vertical_header", "table_view_delegate", "tree_view_delegate", "horizontal_header_delegate", "vertical_header_delegate", "reorderable_list", "carousel", "calendar", "month_grid", "week_number_column", "day_of_week_row", "tumbler",
39
+ "stacked_bar_chart", "pie_chart", "donut_chart", "scatter_chart", "bubble_chart", "radar_chart", "heatmap", "sparkline", "gauge", "radial_gauge", "histogram", "candlestick_chart", "legend",
40
+ "drag_area", "drop_area", "pinch_area", "hover_area", "selection_rectangle", "scroll_bar", "scroll_indicator",
41
+ "animation", "number_animation", "color_animation", "rotation_animation", "vector_animation", "path_animation", "property_animation", "pause_animation", "script_action", "property_action", "parallel_animation", "sequential_animation", "spring_animation", "smoothed_animation", "anchor_animation", "parent_animation", "opacity_animator", "rotation_animator", "scale_animator", "x_animator", "y_animator", "uniform_animator", "frame_animation", "animation_controller", "behavior", "transition", "state", "state_group", "property_changes", "anchor_changes", "parent_change", "timer",
42
+ "media_player", "video_output", "sound_effect", "camera", "capture_session", "image_capture", "media_recorder", "audio_input", "audio_output", "media_devices", "screen_capture", "window_capture",
43
+ "list_model", "delegate_model", "delegate_model_group", "sort_filter_proxy_model", "folder_list_model", "settings", "standard_paths", "clipboard"].indexOf(node ? node.type : "") >= 0
44
+ readonly property bool structuralContainer: ["row", "column", "container", "grid", "row_layout",
45
+ "column_layout", "grid_layout", "flow", "center", "card", "stack", "scroll", "rectangle", "aspect_ratio", "constrained_box", "fitted_box", "wrap", "split_view", "stack_layout", "loader", "flickable", "focus_scope", "flipable", "border_image", "key_catcher", "shader_effect", "shader_effect_source", "multi_effect", "rectangular_shadow", "opacity_mask", "blur", "drop_shadow", "colorize", "glow", "drag_area", "drop_area", "pinch_area", "hover_area", "capture_session"]
46
+ .indexOf(node ? node.type : "") >= 0
47
+ property string loadedAdapterKey: ""
48
+ property string lastComponentErrorKey: ""
49
+
50
+ function prop(name, fallback) {
51
+ var props = node && node.props ? node.props : null
52
+ var value = props ? props[name] : undefined
53
+ return value === undefined || value === null ? fallback : value
54
+ }
55
+
56
+ function iconGlyph(name) {
57
+ var icons = {
58
+ ruby: "\ue23e",
59
+ phone: "\uf3cd",
60
+ plus: "\uf067",
61
+ minus: "\uf068",
62
+ reset: "\uf2f9", refresh: "\uf2f9",
63
+ house: "\uf015", gear: "\uf013", search: "\uf002", xmark: "\uf00d", check: "\uf00c",
64
+ menu: "\uf0c9", user: "\uf007", bell: "\uf0f3", wifi: "\uf1eb", bluetooth: "\uf293",
65
+ volume_high: "\uf028", volume_low: "\uf027", volume_off: "\uf026",
66
+ play: "\uf04b", pause: "\uf04c", stop: "\uf04d", trash: "\uf1f8", edit: "\uf044",
67
+ folder: "\uf07b", file: "\uf15b", download: "\uf019", upload: "\uf093", link: "\uf0c1",
68
+ lock: "\uf023", unlock: "\uf09c", eye: "\uf06e", eye_slash: "\uf070",
69
+ star: "\uf005", heart: "\uf004", info: "\uf129", warning: "\uf071",
70
+ circle_info: "\uf05a", circle_check: "\uf058", circle_xmark: "\uf057",
71
+ arrow_left: "\uf060", arrow_right: "\uf061", arrow_up: "\uf062", arrow_down: "\uf063",
72
+ chevron_left: "\uf053", chevron_right: "\uf054", chevron_up: "\uf077", chevron_down: "\uf078",
73
+ calendar: "\uf133", clock: "\uf017", camera: "\uf030", image: "\uf03e", music: "\uf001",
74
+ terminal: "\uf120", code: "\uf121", copy: "\uf0c5", save: "\uf0c7", power: "\uf011",
75
+ globe: "\uf0ac", location: "\uf3c5", pin: "\uf08d", android: "\uf17b", apple: "\uf179"
76
+ }
77
+ var key = String(name || "")
78
+ return icons[key] || key
79
+ }
80
+
81
+ function escapeAutoText(value) {
82
+ return String(value === undefined || value === null ? "" : value)
83
+ .replace(/&/g, "&")
84
+ .replace(/</g, "&lt;")
85
+ .replace(/>/g, "&gt;")
86
+ }
87
+
88
+ function easingType(name) {
89
+ var easings = {
90
+ linear: Easing.Linear,
91
+ in_quad: Easing.InQuad, out_quad: Easing.OutQuad, in_out_quad: Easing.InOutQuad,
92
+ in_cubic: Easing.InCubic, out_cubic: Easing.OutCubic, in_out_cubic: Easing.InOutCubic,
93
+ in_back: Easing.InBack, out_back: Easing.OutBack, in_out_back: Easing.InOutBack,
94
+ in_elastic: Easing.InElastic, out_elastic: Easing.OutElastic, in_out_elastic: Easing.InOutElastic,
95
+ in_bounce: Easing.InBounce, out_bounce: Easing.OutBounce, in_out_bounce: Easing.InOutBounce
96
+ }
97
+ return easings[String(name || "")] === undefined ? Easing.InOutQuad : easings[String(name)]
98
+ }
99
+
100
+ function layoutAlignment(name, fallback) {
101
+ var value = String(name || fallback || "center")
102
+ if (value === "start" || value === "left" || value === "top") return Qt.AlignLeft | Qt.AlignTop
103
+ if (value === "end" || value === "right" || value === "bottom") return Qt.AlignRight | Qt.AlignBottom
104
+ if (value === "left_center") return Qt.AlignLeft | Qt.AlignVCenter
105
+ if (value === "right_center") return Qt.AlignRight | Qt.AlignVCenter
106
+ if (value === "top_center") return Qt.AlignTop | Qt.AlignHCenter
107
+ if (value === "bottom_center") return Qt.AlignBottom | Qt.AlignHCenter
108
+ return Qt.AlignCenter
109
+ }
110
+
111
+ function findRenderedItem(targetId) {
112
+ var ancestor = root
113
+ while (ancestor.parent) ancestor = ancestor.parent
114
+ return findRenderedItemBelow(ancestor, String(targetId || ""))
115
+ }
116
+
117
+ function findRenderedItemBelow(object, targetId) {
118
+ if (!object || targetId === "") return null
119
+ if (object !== root && object.controlId !== undefined && String(object.controlId) === targetId)
120
+ return object.item || object
121
+ var descendants = object.children || []
122
+ for (var index = 0; index < descendants.length; index++) {
123
+ var result = findRenderedItemBelow(descendants[index], targetId)
124
+ if (result) return result
125
+ }
126
+ return null
127
+ }
128
+
129
+ function subscribed(eventName) {
130
+ return node && Array.isArray(node.events) && node.events.indexOf(eventName) >= 0
131
+ }
132
+
133
+ function componentError(code, message, payload) {
134
+ var componentType = node ? String(node.type) : "component"
135
+ var errorCode = String(code || "component_error")
136
+ var errorMessage = String(message || "Component failed")
137
+ var errorKey = componentType + ":" + errorCode + ":" + errorMessage
138
+ if (errorKey === lastComponentErrorKey) return
139
+ lastComponentErrorKey = errorKey
140
+ if (bridge && bridge.reportComponentError)
141
+ bridge.reportComponentError(surfaceName, controlId, componentType, errorCode, errorMessage)
142
+ if (!subscribed("error")) return
143
+ var eventPayload = payload && typeof payload === "object" ? payload : ({})
144
+ eventPayload.code = errorCode
145
+ eventPayload.message = errorMessage
146
+ bridge.sendEvent(surfaceName, controlId, "error", eventPayload)
147
+ }
148
+
149
+ function configureFace(face, childNode) {
150
+ if (!face || !childNode) return
151
+ face.bridge = bridge
152
+ face.surfaceName = surfaceName
153
+ face.controlId = String(childNode.id)
154
+ face.foreground = foreground
155
+ face.fontFamily = fontFamily
156
+ }
157
+
158
+ function borderImageTileMode(value) {
159
+ var mode = String(value || "stretch")
160
+ if (mode === "repeat") return BorderImage.Repeat
161
+ if (mode === "round") return BorderImage.Round
162
+ return BorderImage.Stretch
163
+ }
164
+
165
+ function assetUrl(value) {
166
+ var source = String(value || "")
167
+ if (source === "") return ""
168
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(source)) return source
169
+ if (source[0] === "/") return "file://" + source
170
+ return bridge && bridge.projectDir ? bridge.projectDir + "/" + source : Qt.resolvedUrl(source)
171
+ }
172
+
173
+ function builtInSource(typeName) {
174
+ var parts = String(typeName || "").split("_")
175
+ for (var index = 0; index < parts.length; index++)
176
+ parts[index] = parts[index].charAt(0).toUpperCase() + parts[index].slice(1)
177
+ return Qt.resolvedUrl("Components/Builtins/" + parts.join("") + ".qml")
178
+ }
179
+
180
+ function ensureAdapterLoaded() {
181
+ if (!node || sourceComponent !== null) {
182
+ loadedAdapterKey = ""
183
+ if (source !== "") source = ""
184
+ return
185
+ }
186
+ var adapterSource = builtIn ? builtInSource(node.type) : bridge.componentSource(node.type)
187
+ var adapterKey = String(node.type) + ":" + String(adapterSource)
188
+ if (loadedAdapterKey === adapterKey && item) return
189
+ loadedAdapterKey = adapterKey
190
+ if (builtIn) setSource(adapterSource, { renderer: root })
191
+ else source = adapterSource
192
+ }
193
+
194
+ function nativeDefinition() {
195
+ return bridge && node ? bridge.componentDefinition(node.type) : null
196
+ }
197
+
198
+ function optionValue(option) {
199
+ return option !== null && typeof option === "object" && option.value !== undefined ? option.value : option
200
+ }
201
+
202
+ function optionLabel(option) {
203
+ return option !== null && typeof option === "object" && option.label !== undefined ? option.label : optionValue(option)
204
+ }
205
+
206
+ function syncNativeProperties() {
207
+ var definition = nativeDefinition()
208
+ if (!item || !definition || !definition.autoBind) return
209
+ var props = node && node.props ? node.props : ({})
210
+ var common = { visible: true, enabled: true, opacity: true, scale: true, rotation: true, z: true, width: true, height: true }
211
+ for (var protocolName in props) {
212
+ if (common[protocolName]) continue
213
+ var qmlName = definition.propertyMap[protocolName] || protocolName
214
+ if (item.hasOwnProperty(qmlName)) item[qmlName] = props[protocolName]
215
+ }
216
+ }
217
+
218
+ function nativeEventPayload(args) {
219
+ if (args.length === 0) return ({})
220
+ if (args.length === 1 && args[0] !== null && typeof args[0] === "object" && !Array.isArray(args[0])) return args[0]
221
+ var values = []
222
+ for (var i = 0; i < args.length; i++) {
223
+ var value = args[i]
224
+ if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean"
225
+ || Array.isArray(value)) values.push(value)
226
+ else values.push(String(value))
227
+ }
228
+ return values.length === 1 ? { value: values[0] } : { arguments: values }
229
+ }
230
+
231
+ function connectNativeEvents() {
232
+ var definition = nativeDefinition()
233
+ if (!item || !definition || !definition.autoBind || !node || !Array.isArray(node.events)) return
234
+ for (let i = 0; i < node.events.length; i++) {
235
+ let protocolName = String(node.events[i])
236
+ if (protocolName === "mount" || protocolName === "unmount") continue
237
+ let qmlName = definition.eventMap[protocolName] || protocolName
238
+ let signal = item[qmlName]
239
+ if (signal && typeof signal.connect === "function") {
240
+ signal.connect(function() {
241
+ root.bridge.sendEvent(root.surfaceName, root.controlId, protocolName, root.nativeEventPayload(arguments))
242
+ })
243
+ }
244
+ }
245
+ }
246
+
247
+ function runTransition() {
248
+ var transitions = node && Array.isArray(node.transitions)
249
+ ? node.transitions
250
+ : (node && node.transition ? [node.transition] : [])
251
+ if (!item || transitions.length === 0) return
252
+ for (var transitionIndex = 0; transitionIndex < transitions.length; transitionIndex++)
253
+ runTrack(transitions[transitionIndex])
254
+ }
255
+
256
+ function runTrack(transition) {
257
+ var commonProperties = ["opacity", "scale", "rotation", "z", "width", "height"]
258
+ var definition = nativeDefinition()
259
+ var animationProperty = definition && definition.propertyMap[transition.property]
260
+ ? definition.propertyMap[transition.property] : transition.property
261
+ var animationTarget = commonProperties.indexOf(transition.property) >= 0 ? root : item
262
+ if (!animationTarget.hasOwnProperty(animationProperty)) return
263
+ if (transition.from === undefined || transition.from === null) return
264
+ var animation = propertyAnimationFactory.createObject(root, {
265
+ target: animationTarget,
266
+ property: String(animationProperty),
267
+ from: transition.from,
268
+ to: transition.to,
269
+ duration: Number(transition.duration)
270
+ })
271
+ animation.easing.type = easingType(transition.easing)
272
+ var delay = Number(transition.delay || 0)
273
+ if (delay > 0) delayedAnimationFactory.createObject(root, { interval: delay, animation: animation }).start()
274
+ else animation.start()
275
+ }
276
+
277
+ visible: node !== null && prop("visible", true) !== false
278
+ enabled: prop("enabled", true) !== false
279
+ opacity: Number(prop("opacity", 1))
280
+ scale: Number(prop("scale", 1))
281
+ rotation: Number(prop("rotation", 0))
282
+ z: Number(prop("z", 0))
283
+ sourceComponent: {
284
+ if (!node) return null
285
+ if (node.type === "text") return textComponent
286
+ if (node.type === "label") return labelComponent
287
+ if (node.type === "rich_text") return richTextComponent
288
+ if (node.type === "markdown") return markdownComponent
289
+ if (node.type === "selectable_text") return selectableTextComponent
290
+ if (node.type === "icon") return iconComponent
291
+ if (node.type === "tooltip") return tooltipComponent
292
+ if (node.type === "button") return buttonComponent
293
+ if (node.type === "round_button") return roundButtonComponent
294
+ if (node.type === "tool_button") return toolButtonComponent
295
+ if (node.type === "delay_button") return delayButtonComponent
296
+ if (node.type === "row") return rowComponent
297
+ if (node.type === "column") return columnComponent
298
+ if (node.type === "container") return containerComponent
299
+ if (node.type === "image") return imageComponent
300
+ if (node.type === "vector_image") return vectorImageComponent
301
+ if (node.type === "model_view_3d") return modelView3dComponent
302
+ if (node.type === "font_loader") return fontLoaderComponent
303
+ if (node.type === "text_metrics") return textMetricsComponent
304
+ if (node.type === "animated_image") return animatedImageComponent
305
+ if (node.type === "video") return videoComponent
306
+ if (node.type === "audio") return audioComponent
307
+ if (node.type === "avatar") return avatarComponent
308
+ if (node.type === "badge") return badgeComponent
309
+ if (node.type === "chip") return chipComponent
310
+ if (node.type === "spacer") return spacerComponent
311
+ if (node.type === "grid") return gridComponent
312
+ if (node.type === "row_layout") return rowLayoutComponent
313
+ if (node.type === "column_layout") return columnLayoutComponent
314
+ if (node.type === "grid_layout") return gridLayoutComponent
315
+ if (node.type === "flow") return flowComponent
316
+ if (node.type === "center") return centerComponent
317
+ if (node.type === "card") return cardComponent
318
+ if (node.type === "border_overlay") return borderOverlayComponent
319
+ if (node.type === "aspect_ratio") return aspectRatioComponent
320
+ if (node.type === "constrained_box") return constrainedBoxComponent
321
+ if (node.type === "fitted_box") return fittedBoxComponent
322
+ if (node.type === "wrap") return wrapComponent
323
+ if (node.type === "split_view") return splitViewComponent
324
+ if (node.type === "stack_layout") return stackLayoutComponent
325
+ if (node.type === "layout_item_proxy") return layoutItemProxyComponent
326
+ if (node.type === "loader") return lazyLoaderComponent
327
+ if (node.type === "flickable") return flickableComponent
328
+ if (node.type === "focus_scope") return focusScopeComponent
329
+ if (node.type === "flipable") return flipableComponent
330
+ if (node.type === "border_image") return borderImageComponent
331
+ if (node.type === "window") return windowComponent
332
+ if (node.type === "application_window") return applicationWindowComponent
333
+ if (node.type === "page") return pageComponent
334
+ if (node.type === "pane") return paneComponent
335
+ if (node.type === "frame") return frameComponent
336
+ if (node.type === "group_box") return groupBoxComponent
337
+ if (node.type === "tabs") return tabsComponent
338
+ if (node.type === "tab_bar") return tabBarComponent
339
+ if (node.type === "tab_button") return tabButtonComponent
340
+ if (node.type === "page_indicator") return pageIndicatorComponent
341
+ if (node.type === "stack_view") return stackViewComponent
342
+ if (node.type === "swipe_view") return swipeViewComponent
343
+ if (node.type === "drawer") return drawerComponent
344
+ if (node.type === "navigation_rail") return navigationRailComponent
345
+ if (node.type === "breadcrumb") return breadcrumbComponent
346
+ if (node.type === "pagination") return paginationComponent
347
+ if (node.type === "expansion_panel") return expansionPanelComponent
348
+ if (node.type === "accordion") return accordionComponent
349
+ if (node.type === "tool_bar") return toolBarComponent
350
+ if (node.type === "tool_separator") return toolSeparatorComponent
351
+ if (node.type === "menu") return menuComponent
352
+ if (node.type === "menu_item") return menuItemComponent
353
+ if (node.type === "menu_separator") return menuSeparatorComponent
354
+ if (node.type === "menu_bar") return menuBarComponent
355
+ if (node.type === "context_menu") return contextMenuComponent
356
+ if (node.type === "popup") return popupComponent
357
+ if (node.type === "dialog") return dialogComponent
358
+ if (node.type === "alert_dialog") return alertDialogComponent
359
+ if (node.type === "message_dialog") return messageDialogComponent
360
+ if (node.type === "bottom_sheet") return bottomSheetComponent
361
+ if (node.type === "modal_sheet") return modalSheetComponent
362
+ if (node.type === "snackbar") return snackbarComponent
363
+ if (node.type === "banner") return bannerComponent
364
+ if (node.type === "toast") return toastComponent
365
+ if (node.type === "busy_indicator") return busyIndicatorComponent
366
+ if (node.type === "progress_ring") return progressRingComponent
367
+ if (node.type === "skeleton") return skeletonComponent
368
+ if (node.type === "item_delegate") return itemDelegateComponent
369
+ if (node.type === "check_delegate") return checkDelegateComponent
370
+ if (node.type === "radio_delegate") return radioDelegateComponent
371
+ if (node.type === "switch_delegate") return switchDelegateComponent
372
+ if (node.type === "swipe_delegate") return swipeDelegateComponent
373
+ if (node.type === "grid_view") return gridViewComponent
374
+ if (node.type === "table_view") return tableViewComponent
375
+ if (node.type === "tree_view") return treeViewComponent
376
+ if (node.type === "canvas") return canvasComponent
377
+ if (node.type === "shape") return shapeComponent
378
+ if (node.type === "line") return lineComponent
379
+ if (node.type === "path") return pathComponent
380
+ if (node.type === "circle") return circleComponent
381
+ if (node.type === "gradient") return gradientComponent
382
+ if (node.type === "shader_effect") return shaderEffectComponent
383
+ if (node.type === "shader_effect_source") return shaderEffectSourceComponent
384
+ if (node.type === "multi_effect") return multiEffectComponent
385
+ if (node.type === "opacity_mask") return opacityMaskComponent
386
+ if (node.type === "blur") return blurComponent
387
+ if (node.type === "drop_shadow") return dropShadowComponent
388
+ if (node.type === "colorize") return colorizeComponent
389
+ if (node.type === "glow") return glowComponent
390
+ if (node.type === "particle_system") return particleSystemComponent
391
+ if (node.type === "stack") return stackComponent
392
+ if (node.type === "scroll") return scrollComponent
393
+ if (node.type === "rectangle") return rectangleComponent
394
+ if (node.type === "action_button") return actionButtonComponent
395
+ if (node.type === "bar_icon_button") return barIconButtonComponent
396
+ if (node.type === "bar_indicator") return barIndicatorComponent
397
+ if (node.type === "toggle") return toggleComponent
398
+ if (node.type === "checkbox") return checkboxComponent
399
+ if (node.type === "radio_button") return radioButtonComponent
400
+ if (node.type === "radio_group") return radioGroupComponent
401
+ if (node.type === "toggle_switch") return toggleSwitchComponent
402
+ if (node.type === "text_field") return textFieldComponent
403
+ if (node.type === "number_field") return numberFieldComponent
404
+ if (node.type === "text_area") return textAreaComponent
405
+ if (node.type === "search_field") return searchFieldComponent
406
+ if (node.type === "password_field") return passwordFieldComponent
407
+ if (node.type === "slider") return sliderComponent
408
+ if (node.type === "range_slider") return rangeSliderComponent
409
+ if (node.type === "dial") return dialComponent
410
+ if (node.type === "spin_box") return spinBoxComponent
411
+ if (node.type === "double_spin_box") return doubleSpinBoxComponent
412
+ if (node.type === "color_picker") return colorPickerComponent
413
+ if (node.type === "date_picker") return datePickerComponent
414
+ if (node.type === "time_picker") return timePickerComponent
415
+ if (node.type === "file_picker") return filePickerComponent
416
+ if (node.type === "folder_picker") return folderPickerComponent
417
+ if (node.type === "font_picker") return fontPickerComponent
418
+ if (node.type === "dialog_button_box") return dialogButtonBoxComponent
419
+ if (node.type === "action") return actionComponent
420
+ if (node.type === "action_group") return actionGroupComponent
421
+ if (node.type === "dropdown") return dropdownComponent
422
+ if (node.type === "multi_select") return multiSelectComponent
423
+ if (node.type === "button_group") return buttonGroupComponent
424
+ if (node.type === "progress") return progressComponent
425
+ if (node.type === "line_chart") return lineChartComponent
426
+ if (node.type === "area_chart") return areaChartComponent
427
+ if (node.type === "bar_chart") return barChartComponent
428
+ if (node.type === "separator") return separatorComponent
429
+ if (node.type === "divider") return dividerComponent
430
+ if (node.type === "section_header") return sectionHeaderComponent
431
+ if (node.type === "searchable_dropdown") return searchableDropdownComponent
432
+ if (node.type === "confirm_dialog") return confirmDialogComponent
433
+ if (node.type === "panel_hero") return panelHeroComponent
434
+ if (node.type === "optical_glyph") return opticalGlyphComponent
435
+ if (node.type === "cursor_surface") return cursorSurfaceComponent
436
+ if (node.type === "widget_button") return widgetButtonComponent
437
+ if (node.type === "list_view") return listViewComponent
438
+ if (node.type === "key_catcher") return keyCatcherComponent
439
+ return null
440
+ }
441
+ source: ""
442
+ onLoaded: {
443
+ lastComponentErrorKey = ""
444
+ if (!item) return
445
+ if (builtIn && item.hasOwnProperty("renderer")) {
446
+ item.renderer = root
447
+ } else if (!builtIn) {
448
+ if (item.hasOwnProperty("bridge")) item.bridge = bridge
449
+ if (item.hasOwnProperty("surfaceName")) item.surfaceName = surfaceName
450
+ if (item.hasOwnProperty("controlId")) item.controlId = controlId
451
+ if (item.hasOwnProperty("node")) item.node = node
452
+ syncNativeProperties()
453
+ connectNativeEvents()
454
+ }
455
+ runTransition()
456
+ if (subscribed("mount")) bridge.sendEvent(surfaceName, controlId, "mount", {})
457
+ }
458
+ onStatusChanged: {
459
+ if (status === Loader.Error)
460
+ componentError("component_load_failed", "Unable to load the declared " + (node ? node.type : "component") + " renderer", { source: String(source) })
461
+ }
462
+ onNodeChanged: {
463
+ Qt.callLater(ensureAdapterLoaded)
464
+ if (item && !builtIn && item.hasOwnProperty("node")) item.node = node
465
+ if (!builtIn) syncNativeProperties()
466
+ Qt.callLater(runTransition)
467
+ }
468
+ onSourceComponentChanged: Qt.callLater(ensureAdapterLoaded)
469
+ Component.onCompleted: Qt.callLater(ensureAdapterLoaded)
470
+
471
+ TapHandler {
472
+ enabled: root.structuralContainer && root.subscribed("click")
473
+ onTapped: root.bridge.sendEvent(root.surfaceName, root.controlId, "click", {})
474
+ }
475
+
476
+ Repeater {
477
+ id: nativeChildren
478
+ parent: root.item && root.item.hasOwnProperty("contentHost") && root.item.contentHost
479
+ ? root.item.contentHost
480
+ : root
481
+ model: !root.builtIn && root.node && root.nativeDefinition() && root.nativeDefinition().container
482
+ && Array.isArray(root.node.children) ? root.node.children : []
483
+ delegate: childDelegate
484
+ }
485
+
486
+ Component {
487
+ id: propertyAnimationFactory
488
+ PropertyAnimation { onStopped: destroy() }
489
+ }
490
+
491
+ Component {
492
+ id: delayedAnimationFactory
493
+ Timer {
494
+ required property var animation
495
+ repeat: false
496
+ onTriggered: { animation.start(); destroy() }
497
+ }
498
+ }
499
+
500
+ Component.onDestruction: {
501
+ if (bridge && subscribed("unmount")) bridge.sendEvent(surfaceName, controlId, "unmount", {})
502
+ }
503
+ Component {
504
+ id: textComponent
505
+ Builtins.Text { renderer: root }
506
+ }
507
+
508
+ Component {
509
+ id: labelComponent
510
+ Builtins.Label { renderer: root }
511
+ }
512
+
513
+ Component {
514
+ id: richTextComponent
515
+ Builtins.RichText { renderer: root }
516
+ }
517
+
518
+ Component {
519
+ id: markdownComponent
520
+ Builtins.Markdown { renderer: root }
521
+ }
522
+
523
+ Component {
524
+ id: selectableTextComponent
525
+ Builtins.SelectableText { renderer: root }
526
+ }
527
+
528
+ Component {
529
+ id: iconComponent
530
+ Builtins.Icon { renderer: root }
531
+ }
532
+
533
+ Component {
534
+ id: tooltipComponent
535
+ Builtins.Tooltip { renderer: root }
536
+ }
537
+
538
+ Component {
539
+ id: buttonComponent
540
+ Builtins.Button { renderer: root }
541
+ }
542
+
543
+ Component {
544
+ id: roundButtonComponent
545
+ Builtins.RoundButton { renderer: root }
546
+ }
547
+
548
+ Component {
549
+ id: toolButtonComponent
550
+ Builtins.ToolButton { renderer: root }
551
+ }
552
+
553
+ Component {
554
+ id: delayButtonComponent
555
+ Builtins.DelayButton { renderer: root }
556
+ }
557
+
558
+ Component {
559
+ id: rowComponent
560
+ Builtins.Row { renderer: root }
561
+ }
562
+
563
+ Component {
564
+ id: columnComponent
565
+ Builtins.Column { renderer: root }
566
+ }
567
+
568
+ Component {
569
+ id: containerComponent
570
+ Builtins.Container { renderer: root }
571
+ }
572
+
573
+ Component {
574
+ id: imageComponent
575
+ Builtins.Image { renderer: root }
576
+ }
577
+
578
+ Component {
579
+ id: vectorImageComponent
580
+ Builtins.VectorImage { renderer: root }
581
+ }
582
+
583
+ Component {
584
+ id: modelView3dComponent
585
+ Builtins.ModelView3d { renderer: root }
586
+ }
587
+
588
+ Component {
589
+ id: fontLoaderComponent
590
+ Builtins.FontLoader { renderer: root }
591
+ }
592
+
593
+ Component {
594
+ id: textMetricsComponent
595
+ Builtins.TextMetrics { renderer: root }
596
+ }
597
+
598
+ Component {
599
+ id: animatedImageComponent
600
+ Builtins.AnimatedImage { renderer: root }
601
+ }
602
+
603
+ Component {
604
+ id: videoComponent
605
+ Builtins.Video { renderer: root }
606
+ }
607
+
608
+ Component {
609
+ id: audioComponent
610
+ Builtins.Audio { renderer: root }
611
+ }
612
+
613
+ Component {
614
+ id: avatarComponent
615
+ Builtins.Avatar { renderer: root }
616
+ }
617
+
618
+ Component {
619
+ id: badgeComponent
620
+ Builtins.Badge { renderer: root }
621
+ }
622
+
623
+ Component {
624
+ id: chipComponent
625
+ Builtins.Chip { renderer: root }
626
+ }
627
+
628
+ Component {
629
+ id: spacerComponent
630
+ Builtins.Spacer { renderer: root }
631
+ }
632
+
633
+ Component {
634
+ id: gridComponent
635
+ Builtins.Grid { renderer: root }
636
+ }
637
+
638
+ Component {
639
+ id: rowLayoutComponent
640
+ Builtins.RowLayout { renderer: root }
641
+ }
642
+
643
+ Component {
644
+ id: columnLayoutComponent
645
+ Builtins.ColumnLayout { renderer: root }
646
+ }
647
+
648
+ Component {
649
+ id: gridLayoutComponent
650
+ Builtins.GridLayout { renderer: root }
651
+ }
652
+
653
+ Component {
654
+ id: flowComponent
655
+ Builtins.Flow { renderer: root }
656
+ }
657
+
658
+ Component {
659
+ id: centerComponent
660
+ Builtins.Center { renderer: root }
661
+ }
662
+
663
+ Component {
664
+ id: cardComponent
665
+ Builtins.Card { renderer: root }
666
+ }
667
+
668
+ Component {
669
+ id: aspectRatioComponent
670
+ Builtins.AspectRatio { renderer: root }
671
+ }
672
+
673
+ Component {
674
+ id: constrainedBoxComponent
675
+ Builtins.ConstrainedBox { renderer: root }
676
+ }
677
+
678
+ Component {
679
+ id: fittedBoxComponent
680
+ Builtins.FittedBox { renderer: root }
681
+ }
682
+
683
+ Component {
684
+ id: wrapComponent
685
+ Builtins.Wrap { renderer: root }
686
+ }
687
+
688
+ Component {
689
+ id: splitViewComponent
690
+ Builtins.SplitView { renderer: root }
691
+ }
692
+
693
+ Component {
694
+ id: stackLayoutComponent
695
+ Builtins.StackLayout { renderer: root }
696
+ }
697
+
698
+ Component {
699
+ id: layoutItemProxyComponent
700
+ Builtins.LayoutItemProxy { renderer: root }
701
+ }
702
+
703
+ Component {
704
+ id: lazyLoaderComponent
705
+ Builtins.Loader { renderer: root }
706
+ }
707
+
708
+ Component {
709
+ id: flickableComponent
710
+ Builtins.Flickable { renderer: root }
711
+ }
712
+
713
+ Component {
714
+ id: focusScopeComponent
715
+ Builtins.FocusScope { renderer: root }
716
+ }
717
+
718
+ Component {
719
+ id: flipableComponent
720
+ Builtins.Flipable { renderer: root }
721
+ }
722
+
723
+ Component {
724
+ id: borderImageComponent
725
+ Builtins.BorderImage { renderer: root }
726
+ }
727
+
728
+ Component {
729
+ id: windowComponent
730
+ Builtins.Window { renderer: root }
731
+ }
732
+
733
+ Component {
734
+ id: applicationWindowComponent
735
+ Builtins.ApplicationWindow { renderer: root }
736
+ }
737
+
738
+ Component {
739
+ id: pageComponent
740
+ Builtins.Page { renderer: root }
741
+ }
742
+
743
+ Component {
744
+ id: paneComponent
745
+ Builtins.Pane { renderer: root }
746
+ }
747
+
748
+ Component {
749
+ id: frameComponent
750
+ Builtins.Frame { renderer: root }
751
+ }
752
+
753
+ Component {
754
+ id: groupBoxComponent
755
+ Builtins.GroupBox { renderer: root }
756
+ }
757
+
758
+ Component {
759
+ id: tabsComponent
760
+ Builtins.Tabs { renderer: root }
761
+ }
762
+
763
+ Component {
764
+ id: tabBarComponent
765
+ Builtins.TabBar { renderer: root }
766
+ }
767
+
768
+ Component {
769
+ id: tabButtonComponent
770
+ Builtins.TabButton { renderer: root }
771
+ }
772
+
773
+ Component {
774
+ id: pageIndicatorComponent
775
+ Builtins.PageIndicator { renderer: root }
776
+ }
777
+
778
+ Component {
779
+ id: stackViewComponent
780
+ Builtins.StackView { renderer: root }
781
+ }
782
+
783
+ Component {
784
+ id: swipeViewComponent
785
+ Builtins.SwipeView { renderer: root }
786
+ }
787
+
788
+ Component {
789
+ id: drawerComponent
790
+ Builtins.Drawer { renderer: root }
791
+ }
792
+
793
+ Component {
794
+ id: navigationRailComponent
795
+ Builtins.NavigationRail { renderer: root }
796
+ }
797
+
798
+ Component {
799
+ id: breadcrumbComponent
800
+ Builtins.Breadcrumb { renderer: root }
801
+ }
802
+
803
+ Component {
804
+ id: paginationComponent
805
+ Builtins.Pagination { renderer: root }
806
+ }
807
+
808
+ Component {
809
+ id: expansionPanelComponent
810
+ Builtins.ExpansionPanel { renderer: root }
811
+ }
812
+
813
+ Component {
814
+ id: accordionComponent
815
+ Builtins.Accordion { renderer: root }
816
+ }
817
+
818
+ Component {
819
+ id: toolBarComponent
820
+ Builtins.ToolBar { renderer: root }
821
+ }
822
+
823
+ Component {
824
+ id: toolSeparatorComponent
825
+ Builtins.ToolSeparator { renderer: root }
826
+ }
827
+
828
+ Component {
829
+ id: menuComponent
830
+ Builtins.Menu { renderer: root }
831
+ }
832
+
833
+ Component {
834
+ id: menuItemComponent
835
+ Builtins.MenuItem { renderer: root }
836
+ }
837
+
838
+ Component {
839
+ id: menuSeparatorComponent
840
+ Builtins.MenuSeparator { renderer: root }
841
+ }
842
+
843
+ Component {
844
+ id: menuBarComponent
845
+ Builtins.MenuBar { renderer: root }
846
+ }
847
+
848
+ Component {
849
+ id: contextMenuComponent
850
+ Builtins.ContextMenu { renderer: root }
851
+ }
852
+
853
+ Component {
854
+ id: popupComponent
855
+ Builtins.Popup { renderer: root }
856
+ }
857
+
858
+ Component {
859
+ id: dialogComponent
860
+ Builtins.Dialog { renderer: root }
861
+ }
862
+
863
+ Component {
864
+ id: alertDialogComponent
865
+ Builtins.AlertDialog { renderer: root }
866
+ }
867
+
868
+ Component {
869
+ id: messageDialogComponent
870
+ Builtins.MessageDialog { renderer: root }
871
+ }
872
+
873
+ Component {
874
+ id: bottomSheetComponent
875
+ Builtins.BottomSheet { renderer: root }
876
+ }
877
+
878
+ Component {
879
+ id: modalSheetComponent
880
+ Builtins.ModalSheet { renderer: root }
881
+ }
882
+
883
+ Component {
884
+ id: snackbarComponent
885
+ Builtins.Snackbar { renderer: root }
886
+ }
887
+
888
+ Component {
889
+ id: bannerComponent
890
+ Builtins.Banner { renderer: root }
891
+ }
892
+
893
+ Component {
894
+ id: toastComponent
895
+ Builtins.Toast { renderer: root }
896
+ }
897
+
898
+ Component {
899
+ id: busyIndicatorComponent
900
+ Builtins.BusyIndicator { renderer: root }
901
+ }
902
+
903
+ Component {
904
+ id: progressRingComponent
905
+ Builtins.ProgressRing { renderer: root }
906
+ }
907
+
908
+ Component {
909
+ id: skeletonComponent
910
+ Builtins.Skeleton { renderer: root }
911
+ }
912
+
913
+ Component {
914
+ id: itemDelegateComponent
915
+ Builtins.ItemDelegate { renderer: root }
916
+ }
917
+
918
+ Component {
919
+ id: checkDelegateComponent
920
+ Builtins.CheckDelegate { renderer: root }
921
+ }
922
+
923
+ Component {
924
+ id: radioDelegateComponent
925
+ Builtins.RadioDelegate { renderer: root }
926
+ }
927
+
928
+ Component {
929
+ id: switchDelegateComponent
930
+ Builtins.SwitchDelegate { renderer: root }
931
+ }
932
+
933
+ Component {
934
+ id: swipeDelegateComponent
935
+ Builtins.SwipeDelegate { renderer: root }
936
+ }
937
+
938
+ Component {
939
+ id: gridViewComponent
940
+ Builtins.GridView { renderer: root }
941
+ }
942
+
943
+ Component {
944
+ id: tableViewComponent
945
+ Builtins.TableView { renderer: root }
946
+ }
947
+
948
+ Component {
949
+ id: treeViewComponent
950
+ Builtins.TreeView { renderer: root }
951
+ }
952
+
953
+ Component {
954
+ id: canvasComponent
955
+ Builtins.Canvas { renderer: root }
956
+ }
957
+
958
+ Component {
959
+ id: shapeComponent
960
+ Builtins.Shape { renderer: root }
961
+ }
962
+
963
+ Component {
964
+ id: lineComponent
965
+ Builtins.Line { renderer: root }
966
+ }
967
+
968
+ Component {
969
+ id: pathComponent
970
+ Builtins.Path { renderer: root }
971
+ }
972
+
973
+ Component {
974
+ id: circleComponent
975
+ Builtins.Circle { renderer: root }
976
+ }
977
+
978
+ Component {
979
+ id: gradientComponent
980
+ Builtins.Gradient { renderer: root }
981
+ }
982
+
983
+ Component {
984
+ id: shaderEffectComponent
985
+ Builtins.ShaderEffect { renderer: root }
986
+ }
987
+
988
+ Component {
989
+ id: shaderEffectSourceComponent
990
+ Builtins.ShaderEffectSource { renderer: root }
991
+ }
992
+
993
+ Component {
994
+ id: multiEffectComponent
995
+ Builtins.MultiEffect { renderer: root }
996
+ }
997
+
998
+ Component {
999
+ id: opacityMaskComponent
1000
+ Builtins.OpacityMask { renderer: root }
1001
+ }
1002
+
1003
+ Component {
1004
+ id: blurComponent
1005
+ Builtins.Blur { renderer: root }
1006
+ }
1007
+
1008
+ Component {
1009
+ id: dropShadowComponent
1010
+ Builtins.DropShadow { renderer: root }
1011
+ }
1012
+
1013
+ Component {
1014
+ id: colorizeComponent
1015
+ Builtins.Colorize { renderer: root }
1016
+ }
1017
+
1018
+ Component {
1019
+ id: glowComponent
1020
+ Builtins.Glow { renderer: root }
1021
+ }
1022
+
1023
+ Component {
1024
+ id: particleSystemComponent
1025
+ Builtins.ParticleSystem { renderer: root }
1026
+ }
1027
+
1028
+ Component {
1029
+ id: borderOverlayComponent
1030
+ Builtins.BorderOverlay { renderer: root }
1031
+ }
1032
+
1033
+ Component {
1034
+ id: keyCatcherComponent
1035
+ Builtins.KeyCatcher { renderer: root }
1036
+ }
1037
+
1038
+ Component {
1039
+ id: stackComponent
1040
+ Builtins.Stack { renderer: root }
1041
+ }
1042
+
1043
+ Component {
1044
+ id: scrollComponent
1045
+ Builtins.Scroll { renderer: root }
1046
+ }
1047
+
1048
+ Component {
1049
+ id: rectangleComponent
1050
+ Builtins.Rectangle { renderer: root }
1051
+ }
1052
+
1053
+ Component {
1054
+ id: splitChildDelegate
1055
+ Loader {
1056
+ required property var modelData
1057
+ QQC.SplitView.minimumWidth: Number(modelData.props && modelData.props.minimum_width !== undefined ? modelData.props.minimum_width : 0)
1058
+ QQC.SplitView.minimumHeight: Number(modelData.props && modelData.props.minimum_height !== undefined ? modelData.props.minimum_height : 0)
1059
+ QQC.SplitView.preferredWidth: Number(modelData.props && modelData.props.preferred_width !== undefined ? modelData.props.preferred_width : implicitWidth)
1060
+ QQC.SplitView.preferredHeight: Number(modelData.props && modelData.props.preferred_height !== undefined ? modelData.props.preferred_height : implicitHeight)
1061
+ QQC.SplitView.fillWidth: modelData.props && modelData.props.fill_width === true
1062
+ QQC.SplitView.fillHeight: modelData.props && modelData.props.fill_height === true
1063
+ source: Qt.resolvedUrl("ControlNode.qml")
1064
+ onLoaded: {
1065
+ item.bridge = root.bridge
1066
+ item.surfaceName = root.surfaceName
1067
+ item.controlId = String(modelData.id)
1068
+ item.foreground = root.foreground
1069
+ item.fontFamily = root.fontFamily
1070
+ }
1071
+ }
1072
+ }
1073
+
1074
+ Component {
1075
+ id: childDelegate
1076
+ Loader {
1077
+ required property var modelData
1078
+ source: Qt.resolvedUrl("ControlNode.qml")
1079
+ onLoaded: {
1080
+ item.bridge = root.bridge
1081
+ item.surfaceName = root.surfaceName
1082
+ item.controlId = String(modelData.id)
1083
+ item.foreground = root.foreground
1084
+ item.fontFamily = root.fontFamily
1085
+ }
1086
+ }
1087
+ }
1088
+
1089
+ Component {
1090
+ id: rowChildDelegate
1091
+ Loader {
1092
+ required property var modelData
1093
+ readonly property string crossAlignment: String(root.prop("alignment", "center"))
1094
+ anchors.top: crossAlignment === "start" || crossAlignment === "top" ? parent.top : undefined
1095
+ anchors.verticalCenter: crossAlignment === "center" ? parent.verticalCenter : undefined
1096
+ anchors.bottom: crossAlignment === "end" || crossAlignment === "bottom" ? parent.bottom : undefined
1097
+ source: Qt.resolvedUrl("ControlNode.qml")
1098
+ onLoaded: {
1099
+ item.bridge = root.bridge
1100
+ item.surfaceName = root.surfaceName
1101
+ item.controlId = String(modelData.id)
1102
+ item.foreground = root.foreground
1103
+ item.fontFamily = root.fontFamily
1104
+ }
1105
+ }
1106
+ }
1107
+
1108
+ Component {
1109
+ id: layoutChildDelegate
1110
+ Loader {
1111
+ required property var modelData
1112
+ readonly property var layoutProps: modelData && modelData.props ? modelData.props : ({})
1113
+ Layout.fillWidth: layoutProps.fill_width === true
1114
+ Layout.fillHeight: layoutProps.fill_height === true
1115
+ Layout.preferredWidth: layoutProps.preferred_width === undefined ? -1 : Number(layoutProps.preferred_width)
1116
+ Layout.preferredHeight: layoutProps.preferred_height === undefined ? -1 : Number(layoutProps.preferred_height)
1117
+ Layout.minimumWidth: layoutProps.minimum_width === undefined ? 0 : Number(layoutProps.minimum_width)
1118
+ Layout.minimumHeight: layoutProps.minimum_height === undefined ? 0 : Number(layoutProps.minimum_height)
1119
+ Layout.maximumWidth: layoutProps.maximum_width === undefined ? Infinity : Number(layoutProps.maximum_width)
1120
+ Layout.maximumHeight: layoutProps.maximum_height === undefined ? Infinity : Number(layoutProps.maximum_height)
1121
+ Layout.alignment: root.layoutAlignment(layoutProps.layout_alignment, root.prop("alignment", "center"))
1122
+ source: Qt.resolvedUrl("ControlNode.qml")
1123
+ onLoaded: {
1124
+ item.bridge = root.bridge
1125
+ item.surfaceName = root.surfaceName
1126
+ item.controlId = String(modelData.id)
1127
+ item.foreground = root.foreground
1128
+ item.fontFamily = root.fontFamily
1129
+ }
1130
+ }
1131
+ }
1132
+
1133
+ Component {
1134
+ id: columnChildDelegate
1135
+ Loader {
1136
+ required property var modelData
1137
+ readonly property string crossAlignment: String(root.prop("alignment", "start"))
1138
+ anchors.left: crossAlignment === "start" || crossAlignment === "left" ? parent.left : undefined
1139
+ anchors.horizontalCenter: crossAlignment === "center" ? parent.horizontalCenter : undefined
1140
+ anchors.right: crossAlignment === "end" || crossAlignment === "right" ? parent.right : undefined
1141
+ source: Qt.resolvedUrl("ControlNode.qml")
1142
+ onLoaded: {
1143
+ item.bridge = root.bridge
1144
+ item.surfaceName = root.surfaceName
1145
+ item.controlId = String(modelData.id)
1146
+ item.foreground = root.foreground
1147
+ item.fontFamily = root.fontFamily
1148
+ }
1149
+ }
1150
+ }
1151
+
1152
+ Component {
1153
+ id: actionButtonComponent
1154
+ Builtins.ActionButton { renderer: root }
1155
+ }
1156
+
1157
+ Component {
1158
+ id: barIconButtonComponent
1159
+ Builtins.BarIconButton { renderer: root }
1160
+ }
1161
+
1162
+ Component {
1163
+ id: barIndicatorComponent
1164
+ Builtins.BarIndicator { renderer: root }
1165
+ }
1166
+
1167
+ Component {
1168
+ id: toggleComponent
1169
+ Builtins.Toggle { renderer: root }
1170
+ }
1171
+
1172
+ Component {
1173
+ id: checkboxComponent
1174
+ Builtins.Checkbox { renderer: root }
1175
+ }
1176
+
1177
+ Component {
1178
+ id: radioButtonComponent
1179
+ Builtins.RadioButton { renderer: root }
1180
+ }
1181
+
1182
+ Component {
1183
+ id: radioGroupComponent
1184
+ Builtins.RadioGroup { renderer: root }
1185
+ }
1186
+
1187
+ Component {
1188
+ id: lineChartComponent
1189
+ Builtins.LineChart { renderer: root }
1190
+ }
1191
+
1192
+ Component {
1193
+ id: areaChartComponent
1194
+ Builtins.AreaChart { renderer: root }
1195
+ }
1196
+
1197
+ Component {
1198
+ id: barChartComponent
1199
+ Builtins.BarChart { renderer: root }
1200
+ }
1201
+
1202
+ Component {
1203
+ id: toggleSwitchComponent
1204
+ Builtins.ToggleSwitch { renderer: root }
1205
+ }
1206
+
1207
+ Component {
1208
+ id: textFieldComponent
1209
+ Builtins.TextField { renderer: root }
1210
+ }
1211
+
1212
+ Component {
1213
+ id: numberFieldComponent
1214
+ Builtins.NumberField { renderer: root }
1215
+ }
1216
+
1217
+ Component {
1218
+ id: textAreaComponent
1219
+ Builtins.TextArea { renderer: root }
1220
+ }
1221
+
1222
+ Component {
1223
+ id: searchFieldComponent
1224
+ Builtins.SearchField { renderer: root }
1225
+ }
1226
+
1227
+ Component {
1228
+ id: passwordFieldComponent
1229
+ Builtins.PasswordField { renderer: root }
1230
+ }
1231
+
1232
+ Component {
1233
+ id: sliderComponent
1234
+ Builtins.Slider { renderer: root }
1235
+ }
1236
+
1237
+ Component {
1238
+ id: rangeSliderComponent
1239
+ Builtins.RangeSlider { renderer: root }
1240
+ }
1241
+
1242
+ Component {
1243
+ id: dialComponent
1244
+ Builtins.Dial { renderer: root }
1245
+ }
1246
+
1247
+ Component {
1248
+ id: spinBoxComponent
1249
+ Builtins.SpinBox { renderer: root }
1250
+ }
1251
+
1252
+ Component {
1253
+ id: doubleSpinBoxComponent
1254
+ Builtins.DoubleSpinBox { renderer: root }
1255
+ }
1256
+
1257
+ Component {
1258
+ id: colorPickerComponent
1259
+ Builtins.ColorPicker { renderer: root }
1260
+ }
1261
+
1262
+ Component {
1263
+ id: datePickerComponent
1264
+ Builtins.DatePicker { renderer: root }
1265
+ }
1266
+
1267
+ Component {
1268
+ id: timePickerComponent
1269
+ Builtins.TimePicker { renderer: root }
1270
+ }
1271
+
1272
+ Component {
1273
+ id: filePickerComponent
1274
+ Builtins.FilePicker { renderer: root }
1275
+ }
1276
+
1277
+ Component {
1278
+ id: folderPickerComponent
1279
+ Builtins.FolderPicker { renderer: root }
1280
+ }
1281
+
1282
+ Component {
1283
+ id: fontPickerComponent
1284
+ Builtins.FontPicker { renderer: root }
1285
+ }
1286
+
1287
+ Component {
1288
+ id: dialogButtonBoxComponent
1289
+ Builtins.DialogButtonBox { renderer: root }
1290
+ }
1291
+
1292
+ Component {
1293
+ id: actionComponent
1294
+ Builtins.Action { renderer: root }
1295
+ }
1296
+
1297
+ Component {
1298
+ id: actionGroupComponent
1299
+ Builtins.ActionGroup { renderer: root }
1300
+ }
1301
+
1302
+ Component {
1303
+ id: dropdownComponent
1304
+ Builtins.Dropdown { renderer: root }
1305
+ }
1306
+
1307
+ Component {
1308
+ id: multiSelectComponent
1309
+ Builtins.MultiSelect { renderer: root }
1310
+ }
1311
+
1312
+ Component {
1313
+ id: buttonGroupComponent
1314
+ Builtins.ButtonGroup { renderer: root }
1315
+ }
1316
+
1317
+ Component {
1318
+ id: progressComponent
1319
+ Builtins.Progress { renderer: root }
1320
+ }
1321
+
1322
+ Component {
1323
+ id: separatorComponent
1324
+ Builtins.Separator { renderer: root }
1325
+ }
1326
+ Component {
1327
+ id: dividerComponent
1328
+ Builtins.Divider { renderer: root }
1329
+ }
1330
+ Component {
1331
+ id: sectionHeaderComponent
1332
+ Builtins.SectionHeader { renderer: root }
1333
+ }
1334
+
1335
+ Component {
1336
+ id: searchableDropdownComponent
1337
+ Builtins.SearchableDropdown { renderer: root }
1338
+ }
1339
+
1340
+ Component {
1341
+ id: confirmDialogComponent
1342
+ Builtins.ConfirmDialog { renderer: root }
1343
+ }
1344
+
1345
+ Component {
1346
+ id: panelHeroComponent
1347
+ Builtins.PanelHero { renderer: root }
1348
+ }
1349
+
1350
+ Component {
1351
+ id: opticalGlyphComponent
1352
+ Builtins.OpticalGlyph { renderer: root }
1353
+ }
1354
+
1355
+ Component {
1356
+ id: cursorSurfaceComponent
1357
+ Builtins.CursorSurface { renderer: root }
1358
+ }
1359
+
1360
+ Component {
1361
+ id: widgetButtonComponent
1362
+ Builtins.WidgetButton { renderer: root }
1363
+ }
1364
+
1365
+ Component {
1366
+ id: listViewComponent
1367
+ Builtins.ListView { renderer: root }
1368
+ }
1369
+ }