@stechquick/studio-cli 4.2.0-1 → 4.2.0-3

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 (358) hide show
  1. package/dist/common/helpers/aiKitResolver.js +11 -5
  2. package/dist/common/helpers/aiKitResolver.js.map +1 -1
  3. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/cli-kit/knowledge/buildqjson.md +35 -0
  4. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/cli-kit/knowledge/cli-bridge.md +97 -0
  5. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/cli-kit/knowledge/render-check.md +48 -0
  6. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/cli-kit/knowledge/sync.md +50 -0
  7. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/index.md +23 -0
  8. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/concepts.md +39 -0
  9. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/README.md +18 -0
  10. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/consent-check-using-container-methods.qjson +1314 -0
  11. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/consent-check-using-hosttrigger.qjson +1301 -0
  12. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/consentHostMethods.container +81 -0
  13. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/dataroid.qjson +692 -0
  14. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/miniapp-appbar.qjson +674 -0
  15. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/miniapp-footer.qjson +627 -0
  16. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/miniapp-page-example-with-appbar-and-footer.qjson +1122 -0
  17. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/examples/miniapp-payment-page-paymentComp-usage.qjson +1262 -0
  18. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/guides/analytics-and-logging.md +45 -0
  19. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/guides/host-functions.md +88 -0
  20. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/guides/miniapp-page-structure.md +65 -0
  21. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/guides/navigation-and-lifecycle.md +29 -0
  22. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/guides/platform-payments.md +54 -0
  23. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/index.md +40 -0
  24. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/reference/host-app-image.json +53 -0
  25. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/reference/host-functions.container +145 -0
  26. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/reference/host-functions.json +109 -0
  27. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/reference/paymentComp.qjson +1867 -0
  28. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/miniapp-kit/reference/platform-components.json +105 -0
  29. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/README.md +11 -0
  30. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/AllowdDates.qjson +126 -0
  31. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/BarChartEvents.qjson +323 -0
  32. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/BarChartTitle.qjson +411 -0
  33. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/BarChartYTicks.qjson +399 -0
  34. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/BarChart_TicksCallback.qjson +309 -0
  35. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/CalendarClickMoreExample.qjson +2 -0
  36. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/CalendarUsageExample.qjson +2 -0
  37. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/ChartLegendFont.qjson +788 -0
  38. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/DataTable_customSort.qjson +277 -0
  39. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/DocumentViewer_tiff_Sample.qjson +927 -0
  40. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/DoughnutChartEvents.qjson +243 -0
  41. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/DxDataGrid_CustomStore.qjson +267 -0
  42. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/Icon_Samples.qjson +181 -0
  43. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/Instructions.request.qjson +584 -0
  44. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/Intersect.qjson +404 -0
  45. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/LightBox.qjson +777 -0
  46. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/LineChart.qjson +1049 -0
  47. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/LineChartEvents.qjson +327 -0
  48. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/LineChartPointProps.qjson +416 -0
  49. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/LineChart_TicksCallback.qjson +309 -0
  50. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/LineChart_Type_Time_Sample.qjson +342 -0
  51. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/MMDelay.qjson +384 -0
  52. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/MMtrigger.qjson +209 -0
  53. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/NavigationDrawerExample.qjson +899 -0
  54. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/NavigationDrawerWithAppBar.qjson +1647 -0
  55. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/Parallax.qjson +416 -0
  56. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/PieChart.qjson +1103 -0
  57. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QCaptcha.qjson +409 -0
  58. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QDocumentViewer.qjson +149 -0
  59. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QFrameAllowFullScreenExample.qjson +360 -0
  60. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QFrameExample.qjson +213 -0
  61. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QIdleTimer.qjson +221 -0
  62. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomRotate.qjson +432 -0
  63. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomTypeNextTo.qjson +196 -0
  64. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomTypeOn.qjson +196 -0
  65. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/QLabel_URL_Click_SendParams.qjson +477 -0
  66. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/VList_NavMenu.qjson +3008 -0
  67. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/alertSamplePage.qjson +450 -0
  68. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/authorizationDashboard.qjson +24914 -0
  69. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/badge.qjson +151 -0
  70. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/bottomSheetScrollable.qjson +3120 -0
  71. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/breadcrumbs.qjson +563 -0
  72. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/button.qjson +1658 -0
  73. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/cellTemplate.qjson +96 -0
  74. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/combobox.qjson +109 -0
  75. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/comboboxSelected.qjson +119 -0
  76. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/createChildren.qjson +411 -0
  77. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/createClosedPanes.qjson +265 -0
  78. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/creditcard.qjson +49 -0
  79. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/crypto.qjson +5632 -0
  80. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/customFilterUsingCalculateFilterExpressionEvent.qjson +301 -0
  81. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/customStore.qjson +157 -0
  82. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dataTableFormatColumn.qjson +151 -0
  83. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/data_table_component_access.qjson +130 -0
  84. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/datagridAddDynamicColumn.qjson +1381 -0
  85. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/datatableAddandDeleteItem.qjson +1195 -0
  86. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/datatable_selectable_feature_select_unselect_usage.qjson +300 -0
  87. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/deleteComponent.qjson +501 -0
  88. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/divider.qjson +180 -0
  89. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxColumncssClass.qjson +249 -0
  90. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridAddinEditingDeleting.qjson +486 -0
  91. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridLines.qjson +121 -0
  92. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridRemove.qjson +209 -0
  93. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxDatagridHeatMap.qjson +335 -0
  94. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxDatagridUpdate.qjson +80 -0
  95. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxMasterDetail.qjson +257 -0
  96. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxPaging_withServiceCall.qjson +160 -0
  97. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxRowDragging.qjson +175 -0
  98. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxSummary_dxTotalItem_usage.qjson +215 -0
  99. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxTotalItemCustomizeText.qjson +222 -0
  100. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dxTreeList_exportToExcel.qjson +267 -0
  101. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/dynamicComp.qjson +156 -0
  102. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
  103. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/email.qjson +177 -0
  104. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/encoding.qjson +304 -0
  105. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/encryptedStorage_Sample.qjson +596 -0
  106. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/exportToXlsx_Sample.qjson +1956 -0
  107. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/images.qjson +1379 -0
  108. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/images_olddd.qjson +1366 -0
  109. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/newCustomerRegister.qjson +2598 -0
  110. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/number.qjson +169 -0
  111. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/number_VTextarea.qjson +163 -0
  112. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/onlyAlphabetic.qjson +164 -0
  113. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/parentPage.qjson +351 -0
  114. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/pipeline.qjson +78 -0
  115. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/pipelineSample.qjson +410 -0
  116. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/placeQidDynamic.qjson +289 -0
  117. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/progress-circular.qjson +1014 -0
  118. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/samplePageLottie.qjson +696 -0
  119. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/server-SideAutocompleteHandling.qjson +696 -0
  120. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/examples/style/xlsxToJson_Sample.qjson +772 -0
  121. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/index.md +153 -0
  122. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/13-application.md +164 -0
  123. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/alert-component.md +91 -0
  124. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/appSettings.md +204 -0
  125. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/component-list.md +63 -0
  126. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-file.md +71 -0
  127. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-intellisense.md +42 -0
  128. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/global-localization.md +78 -0
  129. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/loading-component.md +61 -0
  130. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/local-proxy-file.md +62 -0
  131. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/pipeline.md +139 -0
  132. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/settings-file.md +66 -0
  133. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/style-file.md +58 -0
  134. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/appSettings/theme.md +58 -0
  135. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/components.md +105 -0
  136. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/container-configuration.md +157 -0
  137. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/dynamic-components.md +169 -0
  138. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/events-and-scripting.md +79 -0
  139. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots-legacy.md +15 -0
  140. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots.md +64 -0
  141. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/localization.md +40 -0
  142. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons-legacy.md +15 -0
  143. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons.md +111 -0
  144. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/properties.md +77 -0
  145. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure-legacy.md +15 -0
  146. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure.md +67 -0
  147. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/services.md +68 -0
  148. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/styling-legacy.md +15 -0
  149. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/styling.md +177 -0
  150. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/validation-legacy.md +15 -0
  151. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/knowledge/validation.md +56 -0
  152. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/legacy-track.md +15 -0
  153. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/component-catalog-legacy.md +15 -0
  154. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/component-catalog.md +144 -0
  155. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/component-contracts.json +16920 -0
  156. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/component-index.json +266 -0
  157. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/component-styles.json +7128 -0
  158. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/events-system.md +96 -0
  159. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/layout-system.md +15 -0
  160. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/mapping-S-vuetify-class.md +103 -0
  161. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/qjson-schema-legacy.md +15 -0
  162. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/qjson-schema.md +188 -0
  163. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/quick-api.json +1746 -0
  164. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/quick-api.md +284 -0
  165. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/reference/styling-system.md +193 -0
  166. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/s-track.md +30 -0
  167. package/dist/studio-cli/kits/miniapp-app-kit/.ai-kit/ui-kit/skills/quick-qjson/SKILL.md +10 -0
  168. package/dist/studio-cli/kits/miniapp-app-kit/.claude/skills/figma-to-qjson/SKILL.md +116 -0
  169. package/dist/studio-cli/kits/miniapp-app-kit/.claude/skills/quick-qjson/SKILL.md +10 -0
  170. package/dist/studio-cli/kits/miniapp-app-kit/.mcp.json +8 -0
  171. package/dist/studio-cli/kits/miniapp-app-kit/.opencode/opencode.json +19 -0
  172. package/dist/studio-cli/kits/miniapp-app-kit/.opencode/skills/figma-to-qjson/SKILL.md +116 -0
  173. package/dist/studio-cli/kits/miniapp-app-kit/.opencode/skills/quick-qjson/SKILL.md +10 -0
  174. package/dist/studio-cli/kits/miniapp-app-kit/AGENTS.md +24 -0
  175. package/dist/studio-cli/kits/miniapp-app-kit/CLAUDE.md +24 -0
  176. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/cli-kit/knowledge/buildqjson.md +35 -0
  177. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/cli-kit/knowledge/cli-bridge.md +97 -0
  178. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/cli-kit/knowledge/render-check.md +48 -0
  179. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/cli-kit/knowledge/sync.md +50 -0
  180. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/index.md +22 -0
  181. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/README.md +11 -0
  182. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/AllowdDates.qjson +126 -0
  183. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/BarChartEvents.qjson +323 -0
  184. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/BarChartTitle.qjson +411 -0
  185. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/BarChartYTicks.qjson +399 -0
  186. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/BarChart_TicksCallback.qjson +309 -0
  187. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/CalendarClickMoreExample.qjson +2 -0
  188. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/CalendarUsageExample.qjson +2 -0
  189. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/ChartLegendFont.qjson +788 -0
  190. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/DataTable_customSort.qjson +277 -0
  191. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/DocumentViewer_tiff_Sample.qjson +927 -0
  192. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/DoughnutChartEvents.qjson +243 -0
  193. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/DxDataGrid_CustomStore.qjson +267 -0
  194. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/Icon_Samples.qjson +181 -0
  195. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/Instructions.request.qjson +584 -0
  196. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/Intersect.qjson +404 -0
  197. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/LightBox.qjson +777 -0
  198. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/LineChart.qjson +1049 -0
  199. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/LineChartEvents.qjson +327 -0
  200. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/LineChartPointProps.qjson +416 -0
  201. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/LineChart_TicksCallback.qjson +309 -0
  202. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/LineChart_Type_Time_Sample.qjson +342 -0
  203. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/MMDelay.qjson +384 -0
  204. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/MMtrigger.qjson +209 -0
  205. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/NavigationDrawerExample.qjson +899 -0
  206. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/NavigationDrawerWithAppBar.qjson +1647 -0
  207. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/Parallax.qjson +416 -0
  208. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/PieChart.qjson +1103 -0
  209. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QCaptcha.qjson +409 -0
  210. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QDocumentViewer.qjson +149 -0
  211. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QFrameAllowFullScreenExample.qjson +360 -0
  212. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QFrameExample.qjson +213 -0
  213. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QIdleTimer.qjson +221 -0
  214. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomRotate.qjson +432 -0
  215. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomTypeNextTo.qjson +196 -0
  216. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QImgZoomTypeOn.qjson +196 -0
  217. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/QLabel_URL_Click_SendParams.qjson +477 -0
  218. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/VList_NavMenu.qjson +3008 -0
  219. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/alertSamplePage.qjson +450 -0
  220. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/authorizationDashboard.qjson +24914 -0
  221. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/badge.qjson +151 -0
  222. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/bottomSheetScrollable.qjson +3120 -0
  223. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/breadcrumbs.qjson +563 -0
  224. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/button.qjson +1658 -0
  225. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/cellTemplate.qjson +96 -0
  226. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/combobox.qjson +109 -0
  227. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/comboboxSelected.qjson +119 -0
  228. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/createChildren.qjson +411 -0
  229. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/createClosedPanes.qjson +265 -0
  230. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/creditcard.qjson +49 -0
  231. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/crypto.qjson +5632 -0
  232. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/customFilterUsingCalculateFilterExpressionEvent.qjson +301 -0
  233. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/customStore.qjson +157 -0
  234. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dataTableFormatColumn.qjson +151 -0
  235. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/data_table_component_access.qjson +130 -0
  236. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/datagridAddDynamicColumn.qjson +1381 -0
  237. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/datatableAddandDeleteItem.qjson +1195 -0
  238. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/datatable_selectable_feature_select_unselect_usage.qjson +300 -0
  239. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/deleteComponent.qjson +501 -0
  240. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/divider.qjson +180 -0
  241. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxColumncssClass.qjson +249 -0
  242. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridAddinEditingDeleting.qjson +486 -0
  243. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridLines.qjson +121 -0
  244. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxDataGridRemove.qjson +209 -0
  245. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxDatagridHeatMap.qjson +335 -0
  246. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxDatagridUpdate.qjson +80 -0
  247. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxMasterDetail.qjson +257 -0
  248. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxPaging_withServiceCall.qjson +160 -0
  249. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxRowDragging.qjson +175 -0
  250. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxSummary_dxTotalItem_usage.qjson +215 -0
  251. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxTotalItemCustomizeText.qjson +222 -0
  252. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dxTreeList_exportToExcel.qjson +267 -0
  253. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/dynamicComp.qjson +156 -0
  254. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
  255. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/email.qjson +177 -0
  256. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/encoding.qjson +304 -0
  257. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/encryptedStorage_Sample.qjson +596 -0
  258. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/exportToXlsx_Sample.qjson +1956 -0
  259. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/images.qjson +1379 -0
  260. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/images_olddd.qjson +1366 -0
  261. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/newCustomerRegister.qjson +2598 -0
  262. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/number.qjson +169 -0
  263. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/number_VTextarea.qjson +163 -0
  264. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/onlyAlphabetic.qjson +164 -0
  265. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/parentPage.qjson +351 -0
  266. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/pipeline.qjson +78 -0
  267. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/pipelineSample.qjson +410 -0
  268. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/placeQidDynamic.qjson +289 -0
  269. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/progress-circular.qjson +1014 -0
  270. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/samplePageLottie.qjson +696 -0
  271. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/server-SideAutocompleteHandling.qjson +696 -0
  272. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/examples/style/xlsxToJson_Sample.qjson +772 -0
  273. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/index.md +112 -0
  274. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/13-application.md +164 -0
  275. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/alert-component.md +91 -0
  276. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/appSettings.md +204 -0
  277. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/component-list.md +63 -0
  278. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-file.md +71 -0
  279. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-intellisense.md +42 -0
  280. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/global-localization.md +78 -0
  281. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/loading-component.md +61 -0
  282. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/local-proxy-file.md +62 -0
  283. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/pipeline.md +139 -0
  284. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/settings-file.md +66 -0
  285. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/style-file.md +58 -0
  286. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/appSettings/theme.md +58 -0
  287. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/components.md +105 -0
  288. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/container-configuration.md +157 -0
  289. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/dynamic-components.md +169 -0
  290. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/events-and-scripting.md +79 -0
  291. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots-legacy.md +15 -0
  292. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots.md +64 -0
  293. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/localization.md +40 -0
  294. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons-legacy.md +15 -0
  295. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/page-skeletons.md +111 -0
  296. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/properties.md +77 -0
  297. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure-legacy.md +15 -0
  298. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/qjson-structure.md +67 -0
  299. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/services.md +68 -0
  300. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/styling-legacy.md +15 -0
  301. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/styling.md +177 -0
  302. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/validation-legacy.md +15 -0
  303. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/knowledge/validation.md +56 -0
  304. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/legacy-track.md +15 -0
  305. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/component-catalog-legacy.md +15 -0
  306. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/component-catalog.md +144 -0
  307. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/component-contracts.json +16920 -0
  308. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/component-index.json +266 -0
  309. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/component-styles.json +7128 -0
  310. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/events-system.md +96 -0
  311. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/layout-system.md +15 -0
  312. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/mapping-S-vuetify-class.md +103 -0
  313. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/qjson-schema-legacy.md +15 -0
  314. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/qjson-schema.md +188 -0
  315. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/quick-api.json +1746 -0
  316. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/quick-api.md +284 -0
  317. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/reference/styling-system.md +193 -0
  318. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/s-track.md +30 -0
  319. package/dist/studio-cli/kits/mobile-app-kit/.ai-kit/ui-kit/skills/quick-qjson/SKILL.md +10 -0
  320. package/dist/studio-cli/kits/mobile-app-kit/.claude/skills/figma-to-qjson/SKILL.md +116 -0
  321. package/dist/studio-cli/kits/mobile-app-kit/.claude/skills/quick-qjson/SKILL.md +10 -0
  322. package/dist/studio-cli/kits/mobile-app-kit/.mcp.json +8 -0
  323. package/dist/studio-cli/kits/mobile-app-kit/.opencode/opencode.json +19 -0
  324. package/dist/studio-cli/kits/mobile-app-kit/.opencode/skills/figma-to-qjson/SKILL.md +116 -0
  325. package/dist/studio-cli/kits/mobile-app-kit/.opencode/skills/quick-qjson/SKILL.md +10 -0
  326. package/dist/studio-cli/kits/mobile-app-kit/AGENTS.md +23 -0
  327. package/dist/studio-cli/kits/mobile-app-kit/CLAUDE.md +23 -0
  328. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/index.md +5 -0
  329. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/component-list.md +2 -2
  330. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-file.md +3 -3
  331. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/components.md +22 -14
  332. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots-legacy.md +1 -1
  333. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots.md +1 -1
  334. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-catalog-legacy.md +4 -0
  335. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-catalog.md +4 -0
  336. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/component-index.json +1 -1
  337. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/layout-system.md +1 -1
  338. package/dist/studio-cli/kits/ui-app-kit/.ai-kit/ui-kit/reference/styling-system.md +1 -1
  339. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/index.md +5 -0
  340. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/component-list.md +2 -2
  341. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/appSettings/container-services-file.md +3 -3
  342. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/components.md +22 -14
  343. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots-legacy.md +1 -1
  344. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/knowledge/layout-and-slots.md +1 -1
  345. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-catalog-legacy.md +4 -0
  346. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-catalog.md +4 -0
  347. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/component-index.json +1 -1
  348. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/layout-system.md +1 -1
  349. package/dist/studio-cli/kits/wf-app-kit/.ai-kit/ui-kit/reference/styling-system.md +1 -1
  350. package/dist/studio-cli/src/control/kitInstall.js +28 -1
  351. package/dist/studio-cli/src/control/kitInstall.js.map +1 -1
  352. package/dist/studio-cli/src/control/pull.js +6 -3
  353. package/dist/studio-cli/src/control/pull.js.map +1 -1
  354. package/dist/studio-cli/src/version.js +1 -1
  355. package/package.json +1 -1
  356. package/dist/studio-cli/kits/super-app-kit/.ai-kit/coming-soon.md +0 -0
  357. package/dist/studio-cli/kits/super-app-kit/AGENTS.md +0 -0
  358. package/dist/studio-cli/kits/super-app-kit/CLAUDE.md +0 -0
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: figma-to-qjson
3
+ description: Reconstruct a Quick / Plateau Studio .qjson page from a Figma design (a Figma selection URL). If the design isn't fetched yet, run the `studio figmaPull` command to populate a local .figma/ folder (node.json, file.json, render.json, imagefills.json, assets/*.svg), then turn that raw Figma node tree into a real qjson page. Use whenever the task is to convert a Figma frame/selection into a qjson page. Covers fetching via the `studio figmaPull` command, the Figma→qjson mapping rules, the geometry/style extraction recipe, the rect+text control-clustering heuristic, and asset handling. Delegates all qjson-authoring detail to the quick-qjson skill + the ui-kit package.
4
+ ---
5
+
6
+ # Figma → QJSON reconstruction
7
+
8
+ This skill turns a Figma design into a **Quick `.qjson` page**. The raw Figma responses live in a local **`.figma/`** folder; you produce that folder by **running the `studio figmaPull` command** (which wraps `figmaPull(url, token)`). This skill never calls the Figma API directly — it runs the command, then reads what the command wrote.
9
+
10
+ It owns only the **translation knowledge** (Figma node tree → qjson components). For everything about *authoring* qjson (schema, props, styling, validation, project conventions) it defers to the **`quick-qjson`** skill and the **`ui-kit/`** folder in your workspace (e.g. `.ai-kit/ui-kit/index.md`) — read those; do not re-derive them here.
11
+
12
+ ## Get the design first (run `studio figmaPull`)
13
+ Before the translation workflow below, you need the raw Figma responses in `.figma/`. Get them by running the **`studio figmaPull` command** (the CLI that wraps `figmaPull(url, token)` — it extracts `fileKey` + `node-id` from the URL itself):
14
+
15
+ - If `.figma/` is already present and current for the design you want → just read `.figma/manifest.json` and continue.
16
+ - Otherwise **run the command yourself** (don't wait for the user to pre-fetch). The URL and token are **positional arguments**, in that order; `-d, --dir <dir>` optionally picks the workspace whose `.figma/` receives the output (defaults to the current directory):
17
+ ```
18
+ studio figmaPull "<figma-url>" "<token>"
19
+ ```
20
+ - **Parameters — resolve, don't block:**
21
+ - **URL**: take the Figma *selection* link from the user's message / context; if it isn't there, **ask the user** (AskUserQuestion: "paste the Figma 'Copy link to selection'"). Don't guess it.
22
+ - **Token**: a Figma personal access token, passed as the **second positional argument**. The command has no env/config fallback, so you must supply it explicitly; ask the user once if you don't have it, never hardcode.
23
+ - The command writes `.figma/node.json`, `file.json`, `render.json`, `imagefills.json`, `manifest.json` (+ `assets/*.svg`). **Read `manifest.json` first** — if its `node` endpoint failed (403 token / 404 file·node), surface that error and stop; don't proceed on a bad fetch.
24
+
25
+ Inputs you'll then use, as needed:
26
+ - `.figma/node.json` — the target frame's full node tree (primary input).
27
+ - `.figma/file.json` — whole-file tree (styles, components — fallback/context).
28
+ - `.figma/render.json` — `{images:{<nodeId>: <svg-url>}}` for vector/icon render.
29
+ - `.figma/imagefills.json` — `imageRef → URL` map for IMAGE fills.
30
+ - `.figma/assets/*.svg` — downloaded SVGs (if the command saved them).
31
+
32
+ ## Workflow (the same process a human reviewer would follow)
33
+
34
+ ### 0. Load + triage
35
+ Read `node.json`, grab the fetched frame, and get a shape-of-the-page read: node-type counts, max depth, **auto-layout usage**, and all TEXT content. This decides the page kind (login / form / list / landing…) and whether it maps cleanly.
36
+
37
+ ```python
38
+ import json, collections
39
+ doc = next(iter(json.load(open('.figma/node.json'))['nodes'].values()))['document']
40
+ types, lm, texts = collections.Counter(), collections.Counter(), []
41
+ def walk(n):
42
+ types[n['type']] += 1
43
+ if n['type'] == 'FRAME': lm[n.get('layoutMode','NONE')] += 1
44
+ if n['type'] == 'TEXT': texts.append(n.get('characters','')[:40])
45
+ for c in n.get('children', []): walk(c)
46
+ walk(doc)
47
+ print('types', dict(types)); print('layoutMode', dict(lm)); print('texts', texts)
48
+ ```
49
+ > Many frames with `layoutMode` HORIZONTAL/VERTICAL → the layout maps cleanly to `VRow`/`VCol`. Many `NONE` (absolute) → you must reconstruct structure from geometry (step 2–3).
50
+
51
+ ### 1. Extract per-node geometry + style
52
+ For each visible node, pull **frame-relative** `x,y,w,h`, fill hex, font size/weight/color, and `cornerRadius`. This table is what tells you "what each thing is".
53
+
54
+ ```python
55
+ root = doc['absoluteBoundingBox']; rx, ry = root['x'], root['y']
56
+ def hexfill(n):
57
+ for f in (n.get('fills') or []):
58
+ if f.get('type') == 'SOLID':
59
+ c = f['color']; return '#%02x%02x%02x' % (int(c['r']*255), int(c['g']*255), int(c['b']*255))
60
+ return None
61
+ def walk(n, d=0):
62
+ bb = n.get('absoluteBoundingBox') or {}
63
+ x = (bb.get('x',0)-rx) if 'x' in bb else None; y = (bb.get('y',0)-ry) if 'y' in bb else None
64
+ st = n.get('style', {})
65
+ print(' '*d, n['type'], n.get('name'),
66
+ f"({x},{y}) {bb.get('width')}x{bb.get('height')}" if x is not None else '',
67
+ '|', repr(n.get('characters','')[:30]) if n['type']=='TEXT' else '',
68
+ 'fz', st.get('fontSize'), 'fw', st.get('fontWeight'),
69
+ 'fill', hexfill(n), 'r', n.get('cornerRadius'))
70
+ for c in n.get('children', []): walk(c, d+1)
71
+ walk(doc)
72
+ ```
73
+
74
+ ### 2. Detect the *real* visible background
75
+ The frame's own `fills` may just be the **artboard** color, not what the user sees. Look for a **full-bleed shape** (a RECTANGLE/VECTOR roughly the frame's size, drawn first/behind) — its fill is the real page background. (Tell-tale: dark text only makes sense on a light background.) Use that for `Messaging.pageBackgroundColor` and container backgrounds.
76
+
77
+ ### 3. Cluster loose elements into controls
78
+ Figma often keeps a button's **background rect** and its **label text** as *separate siblings*. Infer a single control when a TEXT's center lies **within a RECTANGLE's bounds** (and they're adjacent in z-order). One rect + one text inside it = one button or one input — not two components.
79
+
80
+ ### 4. Map each control → qjson (the rules)
81
+
82
+ | Figma pattern | → qjson | Decisive signal |
83
+ |---|---|---|
84
+ | auto-layout FRAME, `VERTICAL` / `HORIZONTAL` | stacked `VRow`s / a `VRow` of `VCol`s | `layoutMode` |
85
+ | plain TEXT | `QLabel` (`text` PType `prop`) | — |
86
+ | TEXT whose chars are PUA glyphs (U+F0000+) | `VIcon` (icon name, PType `text`) | codepoint → `mdi-*` name |
87
+ | large bold TEXT near top | title `QLabel` | fontSize/weight |
88
+ | rounded rect (high `cornerRadius`) + **centered, light** text inside | **filled** `VBtn` → child `QLabel`; rect fill → `S.backgroundColor` | rect has a solid fill |
89
+ | rounded rect, `fill=none` + stroke, text inside | `VBtn` `outlined` | no fill, has stroke |
90
+ | white/light rounded rect + **gray** text inside | `VTextField` (the gray text → `placeholder`) | inner text is a muted color |
91
+ | field whose name/label is "şifre"/"password"/"pin" | + `type='password'` | text content |
92
+ | small, right-aligned text link | `VBtn` `text` (link) → `QLabel` | alignment + size |
93
+ | custom VECTOR group (logo/illustration) | `VImg` from an asset (see step 5) | type VECTOR/GROUP, not a glyph |
94
+ | IMAGE fill (`imageRef`) | `VImg`, URL from `imagefills.json` | fill type IMAGE |
95
+
96
+ Pick real props/events/styles from **`ui-kit/reference/component-contracts.json`** and **`component-styles.json`** — never invent. Convert px → the kit's responsive grid (`col`, `S` blocks); do **not** reproduce absolute pixel coordinates.
97
+
98
+ ### 5. Assets (vectors / logos)
99
+ A deployed Quick app can't read local SVGs or Figma's expiring S3 URLs. So:
100
+ - If there is an asset pipeline / CDN, upload `.figma/assets/<id>.svg` and reference it via `VImg`.
101
+ - Otherwise insert a **`VIcon` placeholder** in the right spot and **flag in the report** that the real logo must be exported (`render.json` URL → `.figma/assets/`) and uploaded as a Studio asset. Don't silently drop it.
102
+
103
+ ### 6. Author the qjson
104
+ Hand off to **`quick-qjson`**: build top-down `Messaging → VContainer > VRow > VCol > content`, mirror a sibling page in the workspace for ID style and `S`-block shape, author `pJson`/`lrids` only (omit `cJson`/`clrids` entirely — never write them, strip if present). Wire obvious behavior (e.g. a login button → a `Messaging` event that reads `components.<id>.qValue` and `quick.Quick.alert(...)`).
105
+
106
+ ### 7. Validate + report
107
+ `studio buildQjson <file>` — fix every error. Then report: the new file, the **mapping decisions** (what each Figma element became), any **assumptions** (background, clustering, responsive sizing), **assets needing manual upload**, and the validation result.
108
+
109
+ ## Gotchas (these trip up naive conversions)
110
+ - **Artboard ≠ background.** Use the full-bleed shape's fill, not `frame.fills`.
111
+ - **Separate rect + text = one control.** Cluster by spatial containment before mapping.
112
+ - **PUA-glyph TEXT is an icon**, not a label → `VIcon` (map the codepoint to an `mdi-*` name).
113
+ - **Gray inner text in a white field = placeholder**, not a value.
114
+ - **Absolute (`NONE`) layout** still becomes semantic `VRow/VCol`; reconstruct order/grouping from `y` then `x`. Never emit pixel coordinates.
115
+ - **Big visual pages**: don't convert in one shot — 1–3 sections per edit (per the quick-qjson rules).
116
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: quick-qjson
3
+ description: Create, edit, review, style, or validate Quick / Plateau Studio .qjson UI pages. Load this skill for ANY task that touches a file with the .qjson extension — building a new page, editing or fixing an existing one (even a one-line tweak or typo fix), styling/layout changes, events/scripting, services, localization, or validation. Also load it the moment you encounter a .qjson file mid-task, even if the request never mentions qjson. Covers the qjson schema, the quick.* scripting API, the component registry, and the styling/layout/events systems.
4
+ ---
5
+
6
+ # Quick QJSON authoring
7
+
8
+ The complete, source-grounded knowledge for **Quick / Plateau Studio `.qjson`** UI pages lives in the **`ui-kit/`** folder — locate it in your workspace (e.g. `.ai-kit/ui-kit/`) and treat it as authoritative over any prior assumptions about Quick.
9
+
10
+ **Read `ui-kit/index.md` and follow it.** Its Step 0 routes you to the right style track (`S` vs legacy — never mixed on a page), its non-negotiable rules apply to every edit, and it maps which knowledge/reference docs to open for the task at hand. Don't load everything up front — open only your track's docs plus the shared ones it lists.
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "playwright": {
4
+ "command": "npx",
5
+ "args": ["@playwright/mcp@latest", "--ignore-https-errors"]
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "instructions": [
4
+ "../.ai-kit/ui-kit/index.md"
5
+ ],
6
+ "mcp": {
7
+ "playwright": {
8
+ "type": "local",
9
+ "command": [
10
+ "npx",
11
+ "@playwright/mcp@latest"
12
+ ],
13
+ "enabled": true
14
+ }
15
+ },
16
+ "permission": {
17
+ "playwright*": "allow"
18
+ }
19
+ }
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: figma-to-qjson
3
+ description: Reconstruct a Quick / Plateau Studio .qjson page from a Figma design (a Figma selection URL). If the design isn't fetched yet, run the `studio figmaPull` command to populate a local .figma/ folder (node.json, file.json, render.json, imagefills.json, assets/*.svg), then turn that raw Figma node tree into a real qjson page. Use whenever the task is to convert a Figma frame/selection into a qjson page. Covers fetching via the `studio figmaPull` command, the Figma→qjson mapping rules, the geometry/style extraction recipe, the rect+text control-clustering heuristic, and asset handling. Delegates all qjson-authoring detail to the quick-qjson skill + the ui-kit package.
4
+ ---
5
+
6
+ # Figma → QJSON reconstruction
7
+
8
+ This skill turns a Figma design into a **Quick `.qjson` page**. The raw Figma responses live in a local **`.figma/`** folder; you produce that folder by **running the `studio figmaPull` command** (which wraps `figmaPull(url, token)`). This skill never calls the Figma API directly — it runs the command, then reads what the command wrote.
9
+
10
+ It owns only the **translation knowledge** (Figma node tree → qjson components). For everything about *authoring* qjson (schema, props, styling, validation, project conventions) it defers to the **`quick-qjson`** skill and the **`ui-kit/`** folder in your workspace (e.g. `.ai-kit/ui-kit/index.md`) — read those; do not re-derive them here.
11
+
12
+ ## Get the design first (run `studio figmaPull`)
13
+ Before the translation workflow below, you need the raw Figma responses in `.figma/`. Get them by running the **`studio figmaPull` command** (the CLI that wraps `figmaPull(url, token)` — it extracts `fileKey` + `node-id` from the URL itself):
14
+
15
+ - If `.figma/` is already present and current for the design you want → just read `.figma/manifest.json` and continue.
16
+ - Otherwise **run the command yourself** (don't wait for the user to pre-fetch). The URL and token are **positional arguments**, in that order; `-d, --dir <dir>` optionally picks the workspace whose `.figma/` receives the output (defaults to the current directory):
17
+ ```
18
+ studio figmaPull "<figma-url>" "<token>"
19
+ ```
20
+ - **Parameters — resolve, don't block:**
21
+ - **URL**: take the Figma *selection* link from the user's message / context; if it isn't there, **ask the user** (AskUserQuestion: "paste the Figma 'Copy link to selection'"). Don't guess it.
22
+ - **Token**: a Figma personal access token, passed as the **second positional argument**. The command has no env/config fallback, so you must supply it explicitly; ask the user once if you don't have it, never hardcode.
23
+ - The command writes `.figma/node.json`, `file.json`, `render.json`, `imagefills.json`, `manifest.json` (+ `assets/*.svg`). **Read `manifest.json` first** — if its `node` endpoint failed (403 token / 404 file·node), surface that error and stop; don't proceed on a bad fetch.
24
+
25
+ Inputs you'll then use, as needed:
26
+ - `.figma/node.json` — the target frame's full node tree (primary input).
27
+ - `.figma/file.json` — whole-file tree (styles, components — fallback/context).
28
+ - `.figma/render.json` — `{images:{<nodeId>: <svg-url>}}` for vector/icon render.
29
+ - `.figma/imagefills.json` — `imageRef → URL` map for IMAGE fills.
30
+ - `.figma/assets/*.svg` — downloaded SVGs (if the command saved them).
31
+
32
+ ## Workflow (the same process a human reviewer would follow)
33
+
34
+ ### 0. Load + triage
35
+ Read `node.json`, grab the fetched frame, and get a shape-of-the-page read: node-type counts, max depth, **auto-layout usage**, and all TEXT content. This decides the page kind (login / form / list / landing…) and whether it maps cleanly.
36
+
37
+ ```python
38
+ import json, collections
39
+ doc = next(iter(json.load(open('.figma/node.json'))['nodes'].values()))['document']
40
+ types, lm, texts = collections.Counter(), collections.Counter(), []
41
+ def walk(n):
42
+ types[n['type']] += 1
43
+ if n['type'] == 'FRAME': lm[n.get('layoutMode','NONE')] += 1
44
+ if n['type'] == 'TEXT': texts.append(n.get('characters','')[:40])
45
+ for c in n.get('children', []): walk(c)
46
+ walk(doc)
47
+ print('types', dict(types)); print('layoutMode', dict(lm)); print('texts', texts)
48
+ ```
49
+ > Many frames with `layoutMode` HORIZONTAL/VERTICAL → the layout maps cleanly to `VRow`/`VCol`. Many `NONE` (absolute) → you must reconstruct structure from geometry (step 2–3).
50
+
51
+ ### 1. Extract per-node geometry + style
52
+ For each visible node, pull **frame-relative** `x,y,w,h`, fill hex, font size/weight/color, and `cornerRadius`. This table is what tells you "what each thing is".
53
+
54
+ ```python
55
+ root = doc['absoluteBoundingBox']; rx, ry = root['x'], root['y']
56
+ def hexfill(n):
57
+ for f in (n.get('fills') or []):
58
+ if f.get('type') == 'SOLID':
59
+ c = f['color']; return '#%02x%02x%02x' % (int(c['r']*255), int(c['g']*255), int(c['b']*255))
60
+ return None
61
+ def walk(n, d=0):
62
+ bb = n.get('absoluteBoundingBox') or {}
63
+ x = (bb.get('x',0)-rx) if 'x' in bb else None; y = (bb.get('y',0)-ry) if 'y' in bb else None
64
+ st = n.get('style', {})
65
+ print(' '*d, n['type'], n.get('name'),
66
+ f"({x},{y}) {bb.get('width')}x{bb.get('height')}" if x is not None else '',
67
+ '|', repr(n.get('characters','')[:30]) if n['type']=='TEXT' else '',
68
+ 'fz', st.get('fontSize'), 'fw', st.get('fontWeight'),
69
+ 'fill', hexfill(n), 'r', n.get('cornerRadius'))
70
+ for c in n.get('children', []): walk(c, d+1)
71
+ walk(doc)
72
+ ```
73
+
74
+ ### 2. Detect the *real* visible background
75
+ The frame's own `fills` may just be the **artboard** color, not what the user sees. Look for a **full-bleed shape** (a RECTANGLE/VECTOR roughly the frame's size, drawn first/behind) — its fill is the real page background. (Tell-tale: dark text only makes sense on a light background.) Use that for `Messaging.pageBackgroundColor` and container backgrounds.
76
+
77
+ ### 3. Cluster loose elements into controls
78
+ Figma often keeps a button's **background rect** and its **label text** as *separate siblings*. Infer a single control when a TEXT's center lies **within a RECTANGLE's bounds** (and they're adjacent in z-order). One rect + one text inside it = one button or one input — not two components.
79
+
80
+ ### 4. Map each control → qjson (the rules)
81
+
82
+ | Figma pattern | → qjson | Decisive signal |
83
+ |---|---|---|
84
+ | auto-layout FRAME, `VERTICAL` / `HORIZONTAL` | stacked `VRow`s / a `VRow` of `VCol`s | `layoutMode` |
85
+ | plain TEXT | `QLabel` (`text` PType `prop`) | — |
86
+ | TEXT whose chars are PUA glyphs (U+F0000+) | `VIcon` (icon name, PType `text`) | codepoint → `mdi-*` name |
87
+ | large bold TEXT near top | title `QLabel` | fontSize/weight |
88
+ | rounded rect (high `cornerRadius`) + **centered, light** text inside | **filled** `VBtn` → child `QLabel`; rect fill → `S.backgroundColor` | rect has a solid fill |
89
+ | rounded rect, `fill=none` + stroke, text inside | `VBtn` `outlined` | no fill, has stroke |
90
+ | white/light rounded rect + **gray** text inside | `VTextField` (the gray text → `placeholder`) | inner text is a muted color |
91
+ | field whose name/label is "şifre"/"password"/"pin" | + `type='password'` | text content |
92
+ | small, right-aligned text link | `VBtn` `text` (link) → `QLabel` | alignment + size |
93
+ | custom VECTOR group (logo/illustration) | `VImg` from an asset (see step 5) | type VECTOR/GROUP, not a glyph |
94
+ | IMAGE fill (`imageRef`) | `VImg`, URL from `imagefills.json` | fill type IMAGE |
95
+
96
+ Pick real props/events/styles from **`ui-kit/reference/component-contracts.json`** and **`component-styles.json`** — never invent. Convert px → the kit's responsive grid (`col`, `S` blocks); do **not** reproduce absolute pixel coordinates.
97
+
98
+ ### 5. Assets (vectors / logos)
99
+ A deployed Quick app can't read local SVGs or Figma's expiring S3 URLs. So:
100
+ - If there is an asset pipeline / CDN, upload `.figma/assets/<id>.svg` and reference it via `VImg`.
101
+ - Otherwise insert a **`VIcon` placeholder** in the right spot and **flag in the report** that the real logo must be exported (`render.json` URL → `.figma/assets/`) and uploaded as a Studio asset. Don't silently drop it.
102
+
103
+ ### 6. Author the qjson
104
+ Hand off to **`quick-qjson`**: build top-down `Messaging → VContainer > VRow > VCol > content`, mirror a sibling page in the workspace for ID style and `S`-block shape, author `pJson`/`lrids` only (omit `cJson`/`clrids` entirely — never write them, strip if present). Wire obvious behavior (e.g. a login button → a `Messaging` event that reads `components.<id>.qValue` and `quick.Quick.alert(...)`).
105
+
106
+ ### 7. Validate + report
107
+ `studio buildQjson <file>` — fix every error. Then report: the new file, the **mapping decisions** (what each Figma element became), any **assumptions** (background, clustering, responsive sizing), **assets needing manual upload**, and the validation result.
108
+
109
+ ## Gotchas (these trip up naive conversions)
110
+ - **Artboard ≠ background.** Use the full-bleed shape's fill, not `frame.fills`.
111
+ - **Separate rect + text = one control.** Cluster by spatial containment before mapping.
112
+ - **PUA-glyph TEXT is an icon**, not a label → `VIcon` (map the codepoint to an `mdi-*` name).
113
+ - **Gray inner text in a white field = placeholder**, not a value.
114
+ - **Absolute (`NONE`) layout** still becomes semantic `VRow/VCol`; reconstruct order/grouping from `y` then `x`. Never emit pixel coordinates.
115
+ - **Big visual pages**: don't convert in one shot — 1–3 sections per edit (per the quick-qjson rules).
116
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: quick-qjson
3
+ description: Create, edit, review, style, or validate Quick / Plateau Studio .qjson UI pages. Load this skill for ANY task that touches a file with the .qjson extension — building a new page, editing or fixing an existing one (even a one-line tweak or typo fix), styling/layout changes, events/scripting, services, localization, or validation. Also load it the moment you encounter a .qjson file mid-task, even if the request never mentions qjson. Covers the qjson schema, the quick.* scripting API, the component registry, and the styling/layout/events systems.
4
+ ---
5
+
6
+ # Quick QJSON authoring
7
+
8
+ The complete, source-grounded knowledge for **Quick / Plateau Studio `.qjson`** UI pages lives in the **`ui-kit/`** folder — locate it in your workspace (e.g. `.ai-kit/ui-kit/`) and treat it as authoritative over any prior assumptions about Quick.
9
+
10
+ **Read `ui-kit/index.md` and follow it.** Its Step 0 routes you to the right style track (`S` vs legacy — never mixed on a page), its non-negotiable rules apply to every edit, and it maps which knowledge/reference docs to open for the task at hand. Don't load everything up front — open only your track's docs plus the shared ones it lists.
@@ -0,0 +1,24 @@
1
+ # AGENTS.md — MiniApp workspace
2
+
3
+ This workspace holds a **Plateau Studio MiniApp**: Quick `.qjson` mobile pages that run inside a SuperApp shell. The shell owns the surrounding experience, so pages here carry host obligations an ordinary mobile page does not.
4
+
5
+ ## Capabilities
6
+
7
+ - **Any work on a `.qjson` file** — new page, edit, styling, events, validation → [`.ai-kit/ui-kit/index.md`](.ai-kit/ui-kit/index.md), the manual · or load the **quick-qjson** skill
8
+ - **MiniApp host rules** — appbar, exit, consents, platform payments, analytics → [`.ai-kit/miniapp-kit/index.md`](.ai-kit/miniapp-kit/index.md)
9
+
10
+ ## Two rules that apply to every page
11
+
12
+ - **Every page has a `VAppBar`** carrying a back action and a button that returns the user to the host app. A page without one is incomplete even though it compiles.
13
+ - **Never rebuild a host-owned experience.** Payments go through the platform's payment component; host functions (user details, exit) go through `quick.container`, declared in the app's one `.container` file. If you are about to build one from ordinary components, stop and read the MiniApp manual.
14
+
15
+ ## Working with the studio CLI
16
+
17
+ These pages were pulled from Studio and will be synced back.
18
+
19
+ - **Building a page from a Figma design** → load the **figma-to-qjson** skill
20
+ - **CLI depth** — sync/frontmatter, the bridge, render-check, `buildQjson` internals → [`.ai-kit/cli-kit/knowledge/`](.ai-kit/cli-kit/knowledge/)
21
+
22
+ **Commands:** `studio buildQjson <file-or-folder>` (validate — always, before finishing) · `studio push` (sync, needs the bridge) · render-check via the `playwright` MCP · `studio startWorking <file>` (unlock a readonly page) · `studio convertToBlock <file>` (mark an embedded page as a block component).
23
+
24
+ Report what you changed, the validation result, and the push/render-check result — if the bridge or browser wasn't available, say so rather than skipping silently.
@@ -0,0 +1,24 @@
1
+ # CLAUDE.md — MiniApp workspace
2
+
3
+ This workspace holds a **Plateau Studio MiniApp**: Quick `.qjson` mobile pages that run inside a SuperApp shell. The shell owns the surrounding experience, so pages here carry host obligations an ordinary mobile page does not.
4
+
5
+ ## Capabilities
6
+
7
+ - **Any work on a `.qjson` file** — new page, edit, styling, events, validation → [`.ai-kit/ui-kit/index.md`](.ai-kit/ui-kit/index.md), the manual · or load the **quick-qjson** skill
8
+ - **MiniApp host rules** — appbar, exit, consents, platform payments, analytics → [`.ai-kit/miniapp-kit/index.md`](.ai-kit/miniapp-kit/index.md)
9
+
10
+ ## Two rules that apply to every page
11
+
12
+ - **Every page has a `VAppBar`** carrying a back action and a button that returns the user to the host app. A page without one is incomplete even though it compiles.
13
+ - **Never rebuild a host-owned experience.** Payments go through the platform's payment component; host functions (user details, exit) go through `quick.container`, declared in the app's one `.container` file. If you are about to build one from ordinary components, stop and read the MiniApp manual.
14
+
15
+ ## Working with the studio CLI
16
+
17
+ These pages were pulled from Studio and will be synced back.
18
+
19
+ - **Building a page from a Figma design** → load the **figma-to-qjson** skill
20
+ - **CLI depth** — sync/frontmatter, the bridge, render-check, `buildQjson` internals → [`.ai-kit/cli-kit/knowledge/`](.ai-kit/cli-kit/knowledge/)
21
+
22
+ **Commands:** `studio buildQjson <file-or-folder>` (validate — always, before finishing) · `studio push` (sync, needs the bridge) · render-check via the `playwright` MCP · `studio startWorking <file>` (unlock a readonly page) · `studio convertToBlock <file>` (mark an embedded page as a block component).
23
+
24
+ Report what you changed, the validation result, and the push/render-check result — if the bridge or browser wasn't available, say so rather than skipping silently.
@@ -0,0 +1,35 @@
1
+ # `studio buildQjson` — the validate command
2
+
3
+ ```bash
4
+ studio buildQjson <file.qjson | folder>
5
+ ```
6
+
7
+ Replaces the manual *paste-into-Studio → copy-the-error → paste-to-AI → paste-back* round-trip with a **local check the agent runs itself**: author → validate → read errors → fix → repeat, until clean. Requires **no bridge**; `studio` must be on your PATH (the normal global install). Exit code `0` = clean, non-zero = errors.
8
+
9
+ **It never edits the qjson — it only reports.** Every fix is yours to apply, then re-run.
10
+
11
+ ## The three sections of its output
12
+
13
+ Run in order on the same file(s) — read all three:
14
+
15
+ 1. **Compiler** — the official Quick compiler bundled with studio-cli, the same one the editor runs. Compiles `pJson → cJson` and reports QScript/TypeScript syntax & type errors in your handlers.
16
+ 2. **Structural validation** — the editor-domain checks the compiler doesn't do: unknown component `T`, duplicate `ID`/`eID`, bad `PType`/`HL`, `dOpt`↔`class` drift, containment.
17
+ 3. **Style validation** — the S-first check below.
18
+
19
+ ## Section 3: the S-first style check
20
+
21
+ The compiler checks *script* correctness but **silently ignores unknown styling** — a wrong `S` param (e.g. `fontColor` on a `VIcon`, which wants `iconColor`) or a Vuetify prop that should be `S` (`color` on a `VBtn`) compiles "clean" yet renders nothing. This section closes that gap deterministically, straight from `component-contracts.json` + `component-styles.json`. It activates **only on S-track pages** (`opt.V >= 2.0`, or a page carrying an `S` object); legacy pages are reported as `skipped`.
22
+
23
+ Per node it flags, with a suggested fix:
24
+
25
+ - **`prop-to-S`** — a styling prop with an `S` equivalent (`color`→`backgroundColor`, `elevation`→`boxShadow`, `VCol` `cols/sm/md/lg`→`col`, `block`→`width:100%`).
26
+ - **`class-token-to-S` / `class-token-misuse`** — a `class` token that has an `S` target the component supports (move it), or a grid class on the wrong component (`col-12` on a `VBtn` → `width:100%`).
27
+ - **`css-prop-in-S`** — a prop the contract marks `cssProp: "true"` (a legacy CSS prop like `height`, `rounded`, `outlined`, `dense`): usable on a legacy page, **not** on the S track. Remove it and set the equivalent `S` param. (Components with no `component-styles.json` block are exempt — they have no `S` alternative.)
28
+ - **`unknown-prop`**, **`style-conflict`** (same style in both `S` and `class`), **`legacy-layout`** (`O.layout`/`dOpt` still present on an S page).
29
+ - **`missing-S` / `incomplete-S` / `missing-SC` / `incomplete-SC` / `unknown-S-param`** — how to fix each is in the ui-kit's validation doc: [`../../ui-kit/knowledge/validation.md`](../../ui-kit/knowledge/validation.md).
30
+
31
+ Rule order matches the S-first policy: **contract prop → `S` equivalent → Vuetify class only as a last resort.** There is no separate command — every `buildQjson` run includes this section.
32
+
33
+ ## Reference data
34
+
35
+ The structural and style checks read two reference files — [`../../ui-kit/reference/component-contracts.json`](../../ui-kit/reference/component-contracts.json) (per-component props/events/PType) and [`component-styles.json`](../../ui-kit/reference/component-styles.json) (per-component `S` params) — extracted from authoritative Quick runtime sources (`ComponentPims.ts`, `componentList.js`, `styleDefinitions.ts`). Treat them as read-only ground truth in a workspace.
@@ -0,0 +1,97 @@
1
+ # Studio CLI Bridge — Connection & Commands
2
+
3
+ ## Architecture
4
+
5
+ ```
6
+ Studio (browser) ←→ studio connect (local WS server) ←→ file system
7
+ ↑
8
+ studio pull / push / startWorking
9
+ (read port from .studio/server.json in the same workspace)
10
+ ```
11
+
12
+ - `studio connect` starts a local WebSocket server (first free port in 7345–7350).
13
+ - `pull`, `push`, `startWorking` are short-lived processes; they find the running `connect` process via `.studio/server.json` and communicate over HTTP.
14
+
15
+ ## `.studio/` folder
16
+
17
+ | File | Written by | Read by | Contents |
18
+ |---|---|---|---|
19
+ | `server.json` | `studio connect` (after hello handshake) | `pull`, `push`, `startWorking` | `{ port, pid, startedAt, appId }` |
20
+ | `state.json` | `pull` and `push` | `push` | `{ modelId: bodyHash }` |
21
+
22
+ If `server.json` is absent, `pull`/`push`/`startWorking` exit with "no studio server in this workspace".
23
+
24
+ ## Starting the bridge — two ways
25
+
26
+ ### 1. Manual (`studio connect`)
27
+
28
+ ```bash
29
+ cd /path/to/workspace
30
+ studio connect # keep this terminal open
31
+ ```
32
+
33
+ Then, in the Studio browser UI, click the **Connect** button. Studio scans ports 7345–7350 and completes the handshake. Once connected, `server.json` is written and `pull`/`push`/`startWorking` become available.
34
+
35
+ > Both steps are required: running `studio connect` alone is not enough — the browser must connect to it via the Connect button.
36
+
37
+ ### 2. Protocol handler (`studio://`) — if `studio protocol install` was run
38
+
39
+ After a one-time install, the Connect button in Studio can start the bridge automatically — no manual terminal command needed:
40
+
41
+ - If Studio finds no running server, it triggers `studio://connect?dir=pick`.
42
+ - The OS hands this URL to the registered handler, which spawns `studio connect --dir pick`.
43
+ - The CLI opens a native OS folder picker; the user selects the workspace and the bridge starts.
44
+ - Studio UI asks for confirmation, then completes the connection.
45
+
46
+ Install once:
47
+ ```bash
48
+ studio protocol install # macOS: ~/Library/Application Support/StudioCLI/StudioProtocol.app
49
+ # Windows: HKCU\Software\Classes\studio registry key
50
+ studio protocol uninstall # to remove
51
+ ```
52
+
53
+ ## Readonly files and `startWorking`
54
+
55
+ Studio decides readonly status per model during pull:
56
+ - Checked out by **me** → `0644` (writable)
57
+ - **Not checked out** (free) or checked out by **someone else** → `0444` (readonly)
58
+ - In a **versioned / imported module** → always `0444`
59
+
60
+ `studio push` skips readonly files and reports them:
61
+ ```
62
+ ! skipped: MyPage.qjson — read-only (use startWorking to check out)
63
+ ```
64
+
65
+ To edit a readonly file:
66
+ 1. In the Studio browser UI, check out (take ownership of) the model.
67
+ 2. Run `studio startWorking <file>` — the CLI sends the checkout request to Studio and makes the file writable.
68
+
69
+ ```bash
70
+ studio startWorking MyPage.qjson
71
+ ```
72
+
73
+ > Do **not** `chmod` the file manually — without a Studio checkout record the push would create a conflict.
74
+
75
+ ## Troubleshooting
76
+
77
+ | Symptom | Cause | Fix |
78
+ |---|---|---|
79
+ | `no studio server in this workspace` | `server.json` missing — bridge not running | Run `studio connect`, then click Connect in Studio UI; or just click Connect if protocol is installed |
80
+ | `studio server not reachable` | `server.json` exists but process is dead | Delete `server.json`, restart `studio connect` |
81
+ | Connect button does nothing, no folder picker | Protocol not installed | Run `studio protocol install` |
82
+ | `handshake failed` | Server claimed by a different app | Stop the other `connect`; run `studio connect` in the correct workspace |
83
+ | Push sends 0 files | All files are readonly or unchanged | Use `studio startWorking` to check out |
84
+ | `checkout failed — file may be locked` | Checked out by another user | Ask that user to release the checkout in Studio UI |
85
+
86
+ ## Command reference
87
+
88
+ ```bash
89
+ studio connect # Start bridge (keep terminal open); then click Connect in Studio UI
90
+ studio protocol install # Register studio:// URL handler with the OS (one-time)
91
+ studio pull # Pull all models from the open Studio app to local files
92
+ studio startWorking <file> # Check out a file in Studio + make it locally writable
93
+ studio push # Push changed writable files back to Studio
94
+ studio buildQjson <file|dir> # Compile + validate qjson (no bridge needed)
95
+ ```
96
+
97
+ Run `studio --help` for all commands, or `studio <command> --help` for a specific one (e.g. `studio buildQjson --help`).
@@ -0,0 +1,48 @@
1
+ # Render check (Playwright MCP)
2
+
3
+ `studio buildQjson` is **static** — it compiles and structurally validates, but never *runs* the page, so it can't see **runtime / console errors** (a handler that throws on init, a bad binding, a service call that blows up at render). To catch those, render the page in a real Studio editor tab and look at it.
4
+
5
+ You have a browser for this: the **Playwright MCP** server (`playwright`). You do **not** log in and you do **not** deal with any token — the CLI opens an authenticated Studio editor for you, and that tab keeps itself in sync with your pushes.
6
+
7
+ ## Push first — the editor renders the *cloud* model
8
+
9
+ The test tab shows the real Studio app editor. A page you just authored locally reaches it through `studio push`: push creates brand-new models in the cloud app (writing their id back into the file's frontmatter) and mirrors every pushed body straight into the test tab. So the order is **build → push → check**:
10
+
11
+ 1. `studio buildQjson <file>` is clean.
12
+ 2. `studio push` — your model now exists in the app, and the test tab receives its body automatically (the pushed page is opened in the editor for you).
13
+ 3. Check it.
14
+
15
+ ## The loop
16
+
17
+ 1. **Open the render URL** with `browser_navigate`:
18
+ ```
19
+ http://127.0.0.1:<port>/render
20
+ ```
21
+ `<port>` is the `port` field of `.studio/server.json` in the workspace (usually `7345`). The CLI redirects the browser into the **authenticated** Studio editor for the right org + app — you never log in and never handle credentials. The tab also connects to the CLI as a **test client** automatically. Wait for the editor to load.
22
+ 2. **Find your page open in the editor.** Pushed pages are opened automatically; if you need another model, click its name in the file explorer on the left.
23
+ 3. **Check for errors** in three places:
24
+ - the **rendered UI** itself — `browser_take_screenshot`; does it draw, or is it blank / broken / misaligned?
25
+ - the **browser console** — `browser_console_messages`; collect every `error` (and relevant `warning`),
26
+ - the **editor's own error panel / markers**, if it surfaces any.
27
+ 4. **Fix & re-push:** map each error back to the offending node/handler in your `.qjson`, fix it locally, run `studio buildQjson`, then `studio push`. The test tab updates itself — no reload needed.
28
+ 5. **Repeat** until the UI renders correctly and the console is clean.
29
+ 6. **Close the browser** with `browser_close`. The Playwright MCP keeps a real browser process alive between tool calls — it does not shut down on its own — so this is a required, explicit final action, not something to get to eventually. Close it whether the check passed or you are stopping early; the only time there is nothing to close is when you never opened the browser at all.
30
+
31
+ Interact only *inside* the editor page (clicking, typing into the rendered preview is fine). Do **not** navigate the tab elsewhere, do **not** click Save / check-in / create anything in that tab — it is a viewer; your changes become permanent only when the user reviews and saves in their own Studio session.
32
+
33
+ ## What to look for in the console
34
+
35
+ - `TypeError` / `undefined is not a function` → a handler calling something that isn't there (wrong `quick.*` API, missing service, bad binding).
36
+ - Errors naming a component id → that node's props/events are wrong.
37
+ - Errors thrown on render/init → lifecycle (`onInit`/`mounted`) handler problems.
38
+
39
+ Ignore unrelated framework/network noise; focus on errors that name your components, handlers, or values.
40
+
41
+ ## When it isn't available
42
+
43
+ - If `http://127.0.0.1:<port>/render` refuses the connection, the bridge isn't running — the user needs `studio connect`. Skip the render check and rely on `buildQjson`; note that runtime wasn't verified.
44
+ - If it returns **503** ("no authenticated Studio session"), the user's Studio tab isn't connected — ask them to open Studio and connect the CLI, then retry.
45
+ - If the test tab starts failing with auth errors mid-session (token expired), `browser_navigate` to the render URL again — it re-enters with a fresh session and replays your pushes.
46
+ - If the `playwright` MCP server isn't in your harness at all, skip the render check and rely on `buildQjson` + the [pre-delivery checklist](../../ui-kit/knowledge/validation.md). Nothing was opened, so there is nothing to close.
47
+
48
+ Whenever you *did* open the browser — even if the check couldn't be finished (connection refused after navigating, a 503, an expired session you gave up on) — still call `browser_close` before you finish. A launched browser left open outlives the task.
@@ -0,0 +1,50 @@
1
+ # Studio sync — pull, push, and the sync-back rules
2
+
3
+ This doc is the CLI half of the loop: **Studio → `studio pull` (or manual download) → AI edits locally → validate → `studio push` back into Studio.** It replaces the manual *paste-into-editor → copy-error → ask-AI → paste-back* round-trip.
4
+
5
+ Authoring and validation themselves are host-independent — they live in the ui-kit ([../../ui-kit/knowledge/validation.md](../../ui-kit/knowledge/validation.md) / [validation-legacy.md](../../ui-kit/knowledge/validation-legacy.md)). This file covers the round-trip: pull/push, the frontmatter, and the sync-back rules. The validate command itself is [buildqjson.md](buildqjson.md).
6
+
7
+ ## `<<qjson:path>>` — ID↔path translation on pull/push
8
+
9
+ Studio stores inter-page references (e.g. `CustomComponent.QJsonPath`) as internal model IDs: `<<qjson:bqrs7zi8-uq1r-2oh9-3ujg-yrl0mqulnxui>>`. The CLI translates these automatically:
10
+ - **`studio pull`** → converts every model ID to a human-readable project-relative path: `<<qjson:folder/page-name>>`
11
+ - **`studio push`** → converts paths back to model IDs before uploading (`replacePathsWithIds`)
12
+
13
+ If push cannot resolve a path (a referrer went stale after a rename/move/delete), the link breaks. The agent-side procedure for keeping referrers consistent is in the ui-kit validation doc; the CLI-side facts:
14
+ - Keep the target file's frontmatter `id` unchanged across renames — Studio matches the model by id.
15
+ - If the **user** renames/moves a file manually (outside the agent), `studio push` is expected to repair referrers automatically; the agent-side procedure applies to agent-initiated changes.
16
+
17
+ ### Unresolved references are warnings, and they matter
18
+
19
+ A path push cannot match is not an error. Push logs one line per occurrence —
20
+
21
+ ```
22
+ [modelRefs] unresolved reference <<role:Access/Roles>> — new/moved model?
23
+ ```
24
+
25
+ — leaves the text as it stands and uploads the model anyway. The push reports success, so nothing stops you.
26
+
27
+ **Read those lines before calling the work done.** In Studio the reference is now unresolvable text: the target's name shows as a raw `<<type:path>>` string wherever it should have been resolved, and pickers that list the target come up empty — a swimlane's role column, a persona's role list, an action's privilege column. Two mistakes produce it:
28
+
29
+ - **The path is not the one the workspace has.** Paths are counted from the workspace root, never relative to the referencing file's own folder, and never shortened because the two models are neighbours. A model in `hr/Access/` referencing its neighbour still writes `<<role:hr/Access/Roles>>`.
30
+ - **The target did not exist yet when the referrer was pushed.** A model created in the same run has no id until its own push lands, so push the referenced models first and the referencing ones after — privileges before roles, roles before swimlanes and personas, functions before the actions that call them.
31
+
32
+ Both are fixed the same way: correct or create the target, then push the referrer again.
33
+
34
+ ## Sync-back rules
35
+ - Keep the **filename and any embedded page id stable** — Studio matches files back by name/id. Don't rename downloaded files.
36
+ - Don't introduce new top-level keys or strip existing ones — **except `cJson`/`clrids`, which you always remove** (Studio regenerates the compiled twins on import; never paste compiled `╬…╩╩` content by hand).
37
+ - For multi-file edits, validate the whole folder before syncing.
38
+ - A file pulled from Studio may be **readonly** (`0444`) if it is locked/checked-out by someone else in Studio. To edit it locally, run `studio startWorking <file>` — do not `chmod` it manually.
39
+
40
+ ## Studio CLI commands
41
+
42
+ `studio buildQjson` requires no bridge. All other commands require a running bridge (`studio connect`). For connection setup, readonly files, protocol handler, and troubleshooting see [cli-bridge.md](cli-bridge.md).
43
+
44
+ **New files (no frontmatter):** if you create a `.qjson` from scratch with no `---studio-metadata---` header, `studio push` will create it as a new model in Studio and write the frontmatter back.
45
+
46
+ **Pages embedded as block components:** a page you added into another page as a block component (not a service-caller embed) must also be converted in Studio: run `studio convertToBlock <embedded-file>` unless its frontmatter already has `blockComponent: true`. For a page newly created locally, run it **after** `studio push` — the model must exist in Studio first (push leaves new models checked out). For an existing page that isn't checked out, run `studio startWorking <file>` first.
47
+
48
+ ## After push: render-check
49
+
50
+ Pushing places the page in the user's open Studio session as unsaved work. Compiling clean does not prove the page runs clean — when the CLI bridge and the Playwright MCP are available, open the rendered page and check the console: [render-check.md](render-check.md).
@@ -0,0 +1,22 @@
1
+ # Mobile app workspace — what's in this kit
2
+
3
+ This workspace holds **Quick / Plateau Studio `.qjson`** mobile UI pages. These docs are the manuals for that content.
4
+
5
+ ## The manuals
6
+
7
+ | Folder | Read it for |
8
+ |--------|-------------|
9
+ | [`ui-kit/`](ui-kit/index.md) | the qjson manual — the authoring rules, the `S` styling system, the component and `quick.*` references, validation. Ends with this workspace's CLI loop |
10
+ | [`cli-kit/knowledge/`](cli-kit/knowledge/) | the studio CLI depth behind that loop — the bridge, round-trip rules, `buildQjson`, render checks |
11
+
12
+ Skills are installed for both: **quick-qjson** for page authoring, **figma-to-qjson** for rebuilding a page from a Figma design. Loading a skill and following the manual is equivalent — both land you in the same docs.
13
+
14
+ ## Where to start
15
+
16
+ Start at [`ui-kit/index.md`](ui-kit/index.md); it lists exactly which docs to open for the task.
17
+
18
+ **Author every page in `S`.** Mobile does not apply the legacy `O.layout` css mechanism, so any legacy fragments you find in a qjson have no effect on how it renders — ignore them, and strip them when you edit that page. A page whose `opt.V` is missing or `< 2.0` is a legacy page and **cannot be edited from this workspace** — stop and tell the user.
19
+
20
+ ## Not covered yet
21
+
22
+ App-level authoring — turning "build me a to-do app" into a page set (page list, navigation map, shared services and conventions, then page-by-page authoring against it) — is not written yet. Until it is, this is a **page-authoring** workspace: one page at a time, validated and synced.
@@ -0,0 +1,11 @@
1
+ # Examples
2
+
3
+ Reference pages pulled from real apps, all on the **`S` style system** (`opt.V >= 2.0`, design authored in each node's `S` object).
4
+
5
+ | Folder | Contains | Reference it when |
6
+ | --- | --- | --- |
7
+ | [`style/`](style/) | S-system pages — the only style system mobile supports. | Any page you author or edit here. |
8
+
9
+ There is no `cssClass/` folder: mobile does not apply the legacy `O.layout` + CSS-class mechanism, so authoring in it here would have no effect. If a page you are working on carries leftover `O.layout`, ignore it — it does not affect how the page renders — and style in `S`.
10
+
11
+ Copy the **structure** from these pages — node nesting, `S` params, event shapes, `_Editor` blocks — not their IDs, service URLs or `<<qjson:…>>` references, which belong to the project they came from.