@stechquick/studio-cli 4.2.0-2 → 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,23 @@
1
+ # AGENTS.md — Quick QJSON workspace
2
+
3
+ This workspace holds **Quick / Plateau Studio `.qjson`** mobile UI pages. If workspace includes */ai-docs/ then **Every page here is built on the module** and must follow its rules, whether or not the request names it.
4
+
5
+ ## Start here — any `.qjson` work
6
+
7
+ New page, edit, styling, events, validation:
8
+
9
+ <!-- 7f3a9c2e -->
10
+ 1. Open [`.ai-kit/ui-kit/index.md`](.ai-kit/ui-kit/index.md), the manual, or load the **quick-qjson** skill and author the page with it.
11
+
12
+ **Which rule wins.** The module's rules add to the ui-kit manual; they do not replace it. Where the two conflict, the ui-kit wins — **except** for the *Corrections to the ui-kit manual* section of `*/ai-docs/index.md`, which replaces the ui-kit rule it names. No other file or section overrides the ui-kit.
13
+
14
+ ## Working with the studio CLI
15
+
16
+ These pages were pulled from Studio and will be synced back.
17
+
18
+ - **Building a page from a Figma design** → load the **figma-to-qjson** skill
19
+ - **CLI depth** — sync/frontmatter, the bridge, render-check, `buildQjson` internals → [`.ai-kit/cli-kit/knowledge/`](.ai-kit/cli-kit/knowledge/)
20
+
21
+ **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).
22
+
23
+ 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,23 @@
1
+ # AGENTS.md — Quick QJSON workspace
2
+
3
+ This workspace holds **Quick / Plateau Studio `.qjson`** mobile UI pages. If workspace includes */ai-docs/ then **Every page here is built on the module** and must follow its rules, whether or not the request names it.
4
+
5
+ ## Start here — any `.qjson` work
6
+
7
+ New page, edit, styling, events, validation:
8
+
9
+ <!-- 7f3a9c2e -->
10
+ 1. Open [`.ai-kit/ui-kit/index.md`](.ai-kit/ui-kit/index.md), the manual, or load the **quick-qjson** skill and author the page with it.
11
+
12
+ **Which rule wins.** The module's rules add to the ui-kit manual; they do not replace it. Where the two conflict, the ui-kit wins — **except** for the *Corrections to the ui-kit manual* section of `*/ai-docs/index.md`, which replaces the ui-kit rule it names. No other file or section overrides the ui-kit.
13
+
14
+ ## Working with the studio CLI
15
+
16
+ These pages were pulled from Studio and will be synced back.
17
+
18
+ - **Building a page from a Figma design** → load the **figma-to-qjson** skill
19
+ - **CLI depth** — sync/frontmatter, the bridge, render-check, `buildQjson` internals → [`.ai-kit/cli-kit/knowledge/`](.ai-kit/cli-kit/knowledge/)
20
+
21
+ **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).
22
+
23
+ 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.
@@ -16,6 +16,11 @@ Quick has **two style systems**, and they are not interchangeable on a page. Dec
16
16
 
17
17
  There is no in-between: a page is either fully `S` or fully legacy. **Do not mix mechanisms** (never introduce `S` on a legacy page — it silently won't render; never author `O.layout` on an `S` page). **The presence of an `S` object is the ground truth for which system a page is on**, and `opt.V` should agree with it (`>= 2.0` ⇔ uses `S`). If the two disagree — `opt.V >= 2.0` but the nodes carry `O.layout`, or `opt.V` missing/`< 2.0` but the nodes carry an `S` object — the page is mid-migration or mis-tagged: go by whether an `S` object is actually present, and flag the mismatch to the user.
18
18
 
19
+ > **On Mobile, two things above work differently.** Mobile does not parse or apply `O.layout`, so legacy css declarations simply **have no effect** there — the page still renders, it is just not styled by them, and Studio's editor injects some of these fragments on its own.
20
+ >
21
+ > - **`opt.V >= 2.0` with leftover `O.layout` is normal on Mobile — do NOT flag it as a mismatch.** It is an ordinary `S` page. Never read `O.layout` to work out how it currently looks, author its design in `S`, and **strip its `O.layout` (`dOpt`/`class`) when you edit it**, so the page comes out clean.
22
+ > - **`opt.V` missing or `< 2.0` on Mobile: stop.** That page is legacy and **cannot be edited from a mobile workspace** — neither style system can author it there. Tell the user and make no changes.
23
+
19
24
  Your track guide lists the exact doc set to use (schema, structure, layout, styling, catalog, skeletons, validation, examples) — **open only your track's docs plus the shared docs below.**
20
25
 
21
26
  ## What a `.qjson` is (one paragraph)
@@ -4,7 +4,7 @@ Declares, per component type, **which props exist**, their types, their allowed
4
4
 
5
5
  Selected in **App Settings → General → Component List** → [appSettings.md](appSettings.md).
6
6
 
7
- For the built-in components and their `S` params, use the kit's own reference — [../components.md](../components.md) and [../reference/component-styles.json](../reference/component-styles.json). The Component List is the **app-level** catalog: where a project describes its domain components and any extra props.
7
+ For the built-in components and their `S` params, use the kit's own reference — [../components.md](../components.md) and [../reference/component-styles.json](../../reference/component-styles.json). The Component List is the **app-level** catalog: where a project describes its domain components and any extra props.
8
8
 
9
9
  ## Shape
10
10
 
@@ -57,7 +57,7 @@ It describes props; it does not implement components. A component still has to e
57
57
  ## Rules that prevent the common failures
58
58
 
59
59
  - Quote values as you would in a prop `H` — strings single-quoted inside the string, numbers and booleans bare.
60
- - Don't duplicate the built-in registry here; consult [../reference/component-styles.json](../reference/component-styles.json) for built-ins and keep this file for the app's own components.
60
+ - Don't duplicate the built-in registry here; consult [../reference/component-styles.json](../../reference/component-styles.json) for built-ins and keep this file for the app's own components.
61
61
  - `editorDefaultValue` only pre-fills the editor — it is not a runtime fallback. A page that never sets the prop does not get this value at runtime.
62
62
  - Adding a prop here does not create behaviour; the component must already support it.
63
63
  - Creating the file is not enough — it must be selected in App Settings → General → Component List.
@@ -30,7 +30,7 @@ if (typeof exports === 'object' && typeof module === 'object') {
30
30
  | Hook | Purpose |
31
31
  |---|---|
32
32
  | `getURL(url, mode)` | Resolve the final URL for a call. `mode` is `"ui"` or `"service"`. The place to do environment-based domains and proxying. |
33
- | `hostTriggerCb(functionName, params, pageNameArray)` | Invoke a function on the host. |
33
+ | `hostTriggerCb(functionName, params, pageNameArray)` | Invoke a function on the host. This is what backs `quick.Quick.host.trigger` — deprecated in favour of Container Configuration and `quick.container`, but still needed by the pages that call it. |
34
34
  | `getPlateauIAM()` | The host's IAM object. |
35
35
  | `authenticatedCb()` | Whether the user is authenticated. |
36
36
  | `userContextCb()` / `customerContextCb()` | Current user / customer context. |
@@ -57,9 +57,9 @@ Two different things share the word "container":
57
57
  | | |
58
58
  |---|---|
59
59
  | **Container Services File** *(this doc)* | A JS file of low-level host callbacks the **runtime** calls. Selected in App Settings → General. |
60
- | **Container Configuration** | An editor where you declare the host functions a miniapp may call, with parameters, return types and mock data. Those become `quick.container.yourFunction()` in page code. Created from **+ Add New → Container Configuration**. |
60
+ | **Container Configuration** | A separate model — *not* a setting file — where you declare the host functions the app may call, with parameters, return types and mock data. Those become `quick.container.yourFunction()` in page code. Created from **+ Add New → Application Configuration → Container Configuration**, or from the CLI as a `.container` file. |
61
61
 
62
- If the task is "call a function on the superapp from a page", that is `quick.container.*` and Container Configuration — not this file.
62
+ If the task is "call a function on the host from a page", that is `quick.container.*` and Container Configuration — not this file.
63
63
 
64
64
  ## Rules that prevent the common failures
65
65
 
@@ -57,7 +57,28 @@ Pick the `T` from [reference/component-catalog.md](../reference/component-catalo
57
57
  ```
58
58
  Open: `components.dlgDetail.qValue = true;`. Add `Render:true`+`eager:true` to touch inner components before opening.
59
59
 
60
- ## Select / Combobox / Autocomplete
60
+ ## Tabs (VTab + VTabItem sibling pairs)
61
+ ```json
62
+ { "T": "VTabs", "P": { "ID": { "H": "tabsMain", "T": "prop" } },
63
+ "E": {}, "C": { "default": { "c": [
64
+ { "T": "VTab", "P": { "ID": { "H": "tabGeneral", "T": "prop" } }, "E": {},
65
+ "C": { "default": { "c": [ /* QLabel 'General' */ ], "cType": "slot" } },
66
+ "O": { "cType": "slot" }, "_Editor": { "eID": "tabGeneral" } },
67
+ { "T": "VTabItem", "P": { "ID": { "H": "tabItemGeneral", "T": "prop" } }, "E": {},
68
+ "C": { "default": { "c": [ /* VContainer > VRow > VCol > content */ ], "cType": "slot" } },
69
+ "O": { "cType": "slot" }, "_Editor": { "eID": "tabItemGeneral" } }
70
+ /* , VTab 'Details', VTabItem 'Details', … */
71
+ ], "cType": "slot" } },
72
+ "O": { "cType": "slot" }, "_Editor": { "eID": "tabsMain" } }
73
+ ```
74
+ - `VTab` and `VTabItem` are **siblings** in `VTabs.C.default.c`, ordered as header/panel pairs: `VTab₁, VTabItem₁, VTab₂, VTabItem₂, …`. `VTabItem` is **never** a child of `VTab`.
75
+ - Every `VTab` has exactly one `VTabItem` in the same group — same count, same order.
76
+ - `VTab` holds only the visible label (a child `QLabel`). `VTabItem` holds that tab's page content.
77
+ - Panel content: `VTabItem > VContainer > VRow > VCol > content`. Don't put content directly in `VTabItem`.
78
+ - Put the `VTabItem`s directly in `VTabs`, paired with their `VTab`s.
79
+ - The bundled examples show the pairing correctly but put a bare `VBtn` (or no `VCol`) in the panel — that's a minimal demo, not the content pattern.
80
+
81
+ ## Select / Autocomplete
61
82
  ```json
62
83
  "items": { "H": "[{text='Istanbul', value=1}, {text='Ankara', value=2}]", "T": "prop" }
63
84
  ```
@@ -66,19 +87,6 @@ For service data prefer raw items + `itemText`/`itemValue`/`returnObject:true`.
66
87
  ## Pagination
67
88
  `length`/`totalVisible` are string values; `input` handler starts with `quick.this.qValue = number;` (`"P":"number:number"`).
68
89
 
69
- ## Charts (Bar / Line / Doughnut only)
70
- ```json
71
- { "T": "Bar", "P": { "ID": { "H": "barChart", "T": "prop" },
72
- "labels": { "H": "['Jan','Feb','Mar']", "T": "prop" },
73
- "data": { "H": "[12,19,3]", "T": "prop" },
74
- "label": { "H": "'Sales'", "T": "prop" },
75
- "backgroundColor": { "H": "['rgba(54,162,235,0.4)']", "T": "prop" },
76
- "width": { "H": "'32vw'", "T": "prop" }, "height": { "H": "'40vh'", "T": "prop" } },
77
- "E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "barChart" } }
78
- ```
79
- - `labels`=array, `label`=string. No `visible` prop (wrap in a `VCol`).
80
- - Runtime update: mutate `components.barChart.data` then `(<any>components.barChart).update()`. Use `Doughnut` + `cutoutPercentage:0` for a pie.
81
-
82
90
  ## Block Component (embedding another qjson page)
83
91
  Place at `pJson` root level — **not** inside VContainer. Minimal node; no Ghost child, no `dynProps`.
84
92
  ```json
@@ -61,7 +61,7 @@ The Studio editor enforces these on drag-drop (source: component extensions `acc
61
61
  - **`VCol` must be a child of `VRow`** and must not sit at the page root. (`layout.md`: "You cannot use VCol alone or within any other components. Always use VCol with VRow as its parent.")
62
62
  - **`VRow` should contain only `VCol`** children — put content inside a `VCol`, not directly in the `VRow`.
63
63
  - **`VFooter` accepts only `VContainer`** children.
64
- - Container components with item parts — `VTabs`→`VTab`/`VTabItem`, `VStepper`→`VStepperStep`/`VStepperContent`, `VExpansionPanels`→`VExpansionPanel`, `VCarousel`→`VCarouselItem` — must hold their documented item components.
64
+ - Container components with item parts must hold their documented item components: `VStepper`→`VStepperStep`/`VStepperContent`, `VExpansionPanels`→`VExpansionPanel`, `VCarousel`→`VCarouselItem`, `VTabs` holds `VTab`/`VTabItem` as **sibling pairs** (not nested; no `VTabsItems`; see [components.md](components.md) Tabs).
65
65
  - Canonical wrapper for a page: `VContainer > VRow > VCol > VCard > content`.
66
66
 
67
67
  Follow the editor's placement rules. Machine-readable rules: [../reference/component-index.json](../reference/component-index.json) `containmentRules`.
@@ -53,7 +53,7 @@ The Studio editor enforces these on drag-drop (source: component extensions `acc
53
53
  - **`VCol` must be a child of `VRow`** and must not sit at the page root. (`layout.md`: "You cannot use VCol alone or within any other components. Always use VCol with VRow as its parent.")
54
54
  - **`VRow` should contain only `VCol`** children — put content inside a `VCol`, not directly in the `VRow`.
55
55
  - **`VFooter` accepts only `VContainer`** children.
56
- - Container components with item parts — `VTabs`→`VTab`/`VTabItem`, `VStepper`→`VStepperStep`/`VStepperContent`, `VExpansionPanels`→`VExpansionPanel`, `VCarousel`→`VCarouselItem` — must hold their documented item components.
56
+ - Container components with item parts must hold their documented item components: `VStepper`→`VStepperStep`/`VStepperContent`, `VExpansionPanels`→`VExpansionPanel`, `VCarousel`→`VCarouselItem`, `VTabs` holds `VTab`/`VTabItem` as **sibling pairs** (not nested; see [components.md](components.md) Tabs).
57
57
  - Canonical wrapper for a page: `VContainer > VRow > VCol > content`.
58
58
 
59
59
  Follow the editor's placement rules. Machine-readable rules: [../reference/component-index.json](../reference/component-index.json) `containmentRules`.
@@ -98,6 +98,10 @@ The icon name goes in `text` with **`T: "text"`**. PType `text` renders as slot
98
98
  - Add `Render:true` + `eager:true` to access inner components before opening.
99
99
  - Non-persistent dialogs: handle `click:outside` to set `qValue=false`.
100
100
 
101
+ ### `VTabs` / `VTab` / `VTabItem`
102
+ - `VTab` and `VTabItem` are **siblings** in `VTabs`' `default` slot, one `VTabItem` per `VTab`, ordered as pairs. `VTabItem` is never inside `VTab`.
103
+ - `VTab` = label (`QLabel`); `VTabItem` = content, wrapped as `VTabItem > VContainer > VRow > VCol > content`. Full pattern: [../knowledge/components.md](../knowledge/components.md).
104
+
101
105
  ### `VPagination`
102
106
  - `length`/`totalVisible` are string values; `input` handler's first line: `quick.this.qValue = number;` (param `"P":"number:number"`).
103
107
 
@@ -113,6 +113,10 @@ The icon name goes in `text` with **`T: "text"`**. PType `text` renders as slot
113
113
  - Add `Render:true` + `eager:true` to access inner components before opening.
114
114
  - Non-persistent dialogs: handle `click:outside` to set `qValue=false`.
115
115
 
116
+ ### `VTabs` / `VTab` / `VTabItem`
117
+ - `VTab` and `VTabItem` are **siblings** in `VTabs`' `default` slot, one `VTabItem` per `VTab`, ordered as pairs. `VTabItem` is never inside `VTab`.
118
+ - `VTab` = label (`QLabel`); `VTabItem` = content, wrapped as `VTabItem > VContainer > VRow > VCol > content`. Full pattern: [../knowledge/components.md](../knowledge/components.md).
119
+
116
120
  ### `VPagination`
117
121
  - `length`/`totalVisible` are string values; `input` handler's first line: `quick.this.qValue = number;` (param `"P":"number:number"`).
118
122
 
@@ -307,7 +307,7 @@
307
307
  "VRow accepts only VCol children.",
308
308
  "VFooter accepts only VContainer children.",
309
309
  "Canonical page structure: VContainer > VRow > VCol > content. Other components have no hard parent/child restriction, but follow the grid for layout.",
310
- "Some container components (VTabs/VStepper/VExpansionPanels/VCarousel) use fixed child generators in the editor; place their documented item components (VTab/VTabItem, VStepperStep/VStepperContent, VExpansionPanel, VCarouselItem) inside them.",
310
+ "Some container components (VTabs/VStepper/VExpansionPanels/VCarousel) use fixed child generators in the editor; place their documented item components (VTab/VTabItem, VStepperStep/VStepperContent, VExpansionPanel, VCarouselItem) inside them. VTab and VTabItem are sibling pairs in VTabs (VTab1, VTabItem1, VTab2, VTabItem2, ...), never nested; panel content is VTabItem > VContainer > VRow > VCol > content.",
311
311
  "NEW PAGES ONLY: a newly-created page must wrap all UI content in a single top-level VContainer (the content root); the only allowed non-VContainer top-level pJson siblings are the non-visual Messaging event hub and an optional service component. Do NOT retrofit a VContainer root onto an existing page unless the user explicitly asks (existing pages may legitimately root on VAppBar, VDataTable, etc.). See newPageContentRoot below and s-track.md rule S4."
312
312
  ],
313
313
  "newPageContentRoot": {
@@ -77,7 +77,7 @@ These are the editor's own drop rules (`acceptableParentComps`/`acceptableChildC
77
77
  | `VRow` accepts only `VCol` children | `VRowExtension.acceptableChildComps={VCol}` |
78
78
  | `VFooter` accepts only `VContainer` children | `VFooterExtension.acceptableChildComps={VContainer}` |
79
79
 
80
- Other components have no hard accept-list, but container components with item parts use fixed child generators (place `VTab`/`VTabItem` in `VTabs`, `VStepperStep`/`VStepperContent` in `VStepper`, etc.). Canonical page wrapper: `VContainer > VRow > VCol > content`. For a **newly-created page this `VContainer` content root is required**: wrap all UI content in a single top-level `VContainer`, with only `Messaging` and an optional service component as other top-level `pJson` siblings. This is a **new-page rule only** — do **not** retrofit a `VContainer` root onto an existing page unless the user explicitly asks (existing pages may legitimately root on `VAppBar`, `VDataTable`, etc.). Machine-readable: [component-index.json](component-index.json) `containmentRules`.
80
+ Other components have no hard accept-list, but container components with item parts use fixed child generators (place `VTab`/`VTabItem` as **sibling pairs** in `VTabs` — see [../knowledge/components.md](../knowledge/components.md) Tabs; `VStepperStep`/`VStepperContent` in `VStepper`, etc.). Canonical page wrapper: `VContainer > VRow > VCol > content`. For a **newly-created page this `VContainer` content root is required**: wrap all UI content in a single top-level `VContainer`, with only `Messaging` and an optional service component as other top-level `pJson` siblings. This is a **new-page rule only** — do **not** retrofit a `VContainer` root onto an existing page unless the user explicitly asks (existing pages may legitimately root on `VAppBar`, `VDataTable`, etc.). Machine-readable: [component-index.json](component-index.json) `containmentRules`.
81
81
 
82
82
  ## 5. The grid: VContainer → VRow → VCol
83
83
 
@@ -148,7 +148,7 @@ Reusable named styles created from the Style tab; the node references them via `
148
148
  | `VRow` accepts only `VCol` children | `VRowExtension.acceptableChildComps={VCol}` |
149
149
  | `VFooter` accepts only `VContainer` children | `VFooterExtension.acceptableChildComps={VContainer}` |
150
150
 
151
- Other components have no hard accept-list, but container components with item parts use fixed child generators (place `VTab`/`VTabItem` in `VTabs`, `VStepperStep`/`VStepperContent` in `VStepper`, etc.). Canonical page wrapper: `VContainer > VRow > VCol > content`. For a **newly-created page this `VContainer` content root is required**: wrap all UI content in a single top-level `VContainer`, with only `Messaging` and an optional service component as other top-level `pJson` siblings. This is a **new-page rule only** — do **not** retrofit a `VContainer` root onto an existing page unless the user explicitly asks. Machine-readable: [component-index.json](component-index.json) `containmentRules`.
151
+ Other components have no hard accept-list, but container components with item parts use fixed child generators (place `VTab`/`VTabItem` as **sibling pairs** in `VTabs` — see [../knowledge/components.md](../knowledge/components.md) Tabs; `VStepperStep`/`VStepperContent` in `VStepper`, etc.). Canonical page wrapper: `VContainer > VRow > VCol > content`. For a **newly-created page this `VContainer` content root is required**: wrap all UI content in a single top-level `VContainer`, with only `Messaging` and an optional service component as other top-level `pJson` siblings. This is a **new-page rule only** — do **not** retrofit a `VContainer` root onto an existing page unless the user explicitly asks. Machine-readable: [component-index.json](component-index.json) `containmentRules`.
152
152
 
153
153
  ## 8. Breakpoint device ranges (shared)
154
154
 
@@ -16,6 +16,11 @@ Quick has **two style systems**, and they are not interchangeable on a page. Dec
16
16
 
17
17
  There is no in-between: a page is either fully `S` or fully legacy. **Do not mix mechanisms** (never introduce `S` on a legacy page — it silently won't render; never author `O.layout` on an `S` page). **The presence of an `S` object is the ground truth for which system a page is on**, and `opt.V` should agree with it (`>= 2.0` ⇔ uses `S`). If the two disagree — `opt.V >= 2.0` but the nodes carry `O.layout`, or `opt.V` missing/`< 2.0` but the nodes carry an `S` object — the page is mid-migration or mis-tagged: go by whether an `S` object is actually present, and flag the mismatch to the user.
18
18
 
19
+ > **On Mobile, two things above work differently.** Mobile does not parse or apply `O.layout`, so legacy css declarations simply **have no effect** there — the page still renders, it is just not styled by them, and Studio's editor injects some of these fragments on its own.
20
+ >
21
+ > - **`opt.V >= 2.0` with leftover `O.layout` is normal on Mobile — do NOT flag it as a mismatch.** It is an ordinary `S` page. Never read `O.layout` to work out how it currently looks, author its design in `S`, and **strip its `O.layout` (`dOpt`/`class`) when you edit it**, so the page comes out clean.
22
+ > - **`opt.V` missing or `< 2.0` on Mobile: stop.** That page is legacy and **cannot be edited from a mobile workspace** — neither style system can author it there. Tell the user and make no changes.
23
+
19
24
  Your track guide lists the exact doc set to use (schema, structure, layout, styling, catalog, skeletons, validation, examples) — **open only your track's docs plus the shared docs below.**
20
25
 
21
26
  ## What a `.qjson` is (one paragraph)
@@ -4,7 +4,7 @@ Declares, per component type, **which props exist**, their types, their allowed
4
4
 
5
5
  Selected in **App Settings → General → Component List** → [appSettings.md](appSettings.md).
6
6
 
7
- For the built-in components and their `S` params, use the kit's own reference — [../components.md](../components.md) and [../reference/component-styles.json](../reference/component-styles.json). The Component List is the **app-level** catalog: where a project describes its domain components and any extra props.
7
+ For the built-in components and their `S` params, use the kit's own reference — [../components.md](../components.md) and [../reference/component-styles.json](../../reference/component-styles.json). The Component List is the **app-level** catalog: where a project describes its domain components and any extra props.
8
8
 
9
9
  ## Shape
10
10
 
@@ -57,7 +57,7 @@ It describes props; it does not implement components. A component still has to e
57
57
  ## Rules that prevent the common failures
58
58
 
59
59
  - Quote values as you would in a prop `H` — strings single-quoted inside the string, numbers and booleans bare.
60
- - Don't duplicate the built-in registry here; consult [../reference/component-styles.json](../reference/component-styles.json) for built-ins and keep this file for the app's own components.
60
+ - Don't duplicate the built-in registry here; consult [../reference/component-styles.json](../../reference/component-styles.json) for built-ins and keep this file for the app's own components.
61
61
  - `editorDefaultValue` only pre-fills the editor — it is not a runtime fallback. A page that never sets the prop does not get this value at runtime.
62
62
  - Adding a prop here does not create behaviour; the component must already support it.
63
63
  - Creating the file is not enough — it must be selected in App Settings → General → Component List.
@@ -30,7 +30,7 @@ if (typeof exports === 'object' && typeof module === 'object') {
30
30
  | Hook | Purpose |
31
31
  |---|---|
32
32
  | `getURL(url, mode)` | Resolve the final URL for a call. `mode` is `"ui"` or `"service"`. The place to do environment-based domains and proxying. |
33
- | `hostTriggerCb(functionName, params, pageNameArray)` | Invoke a function on the host. |
33
+ | `hostTriggerCb(functionName, params, pageNameArray)` | Invoke a function on the host. This is what backs `quick.Quick.host.trigger` — deprecated in favour of Container Configuration and `quick.container`, but still needed by the pages that call it. |
34
34
  | `getPlateauIAM()` | The host's IAM object. |
35
35
  | `authenticatedCb()` | Whether the user is authenticated. |
36
36
  | `userContextCb()` / `customerContextCb()` | Current user / customer context. |
@@ -57,9 +57,9 @@ Two different things share the word "container":
57
57
  | | |
58
58
  |---|---|
59
59
  | **Container Services File** *(this doc)* | A JS file of low-level host callbacks the **runtime** calls. Selected in App Settings → General. |
60
- | **Container Configuration** | An editor where you declare the host functions a miniapp may call, with parameters, return types and mock data. Those become `quick.container.yourFunction()` in page code. Created from **+ Add New → Container Configuration**. |
60
+ | **Container Configuration** | A separate model — *not* a setting file — where you declare the host functions the app may call, with parameters, return types and mock data. Those become `quick.container.yourFunction()` in page code. Created from **+ Add New → Application Configuration → Container Configuration**, or from the CLI as a `.container` file. |
61
61
 
62
- If the task is "call a function on the superapp from a page", that is `quick.container.*` and Container Configuration — not this file.
62
+ If the task is "call a function on the host from a page", that is `quick.container.*` and Container Configuration — not this file.
63
63
 
64
64
  ## Rules that prevent the common failures
65
65