@stechquick/studio-cli 4.0.3-2

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 (569) hide show
  1. package/dist/common/clean/domain/infrastructure/ICloudProviderFileSystem.js +5 -0
  2. package/dist/common/clean/domain/infrastructure/ICloudProviderFileSystem.js.map +1 -0
  3. package/dist/common/clean/domain/infrastructure/ICrypto.js +5 -0
  4. package/dist/common/clean/domain/infrastructure/ICrypto.js.map +1 -0
  5. package/dist/common/clean/domain/infrastructure/ILogger.js +5 -0
  6. package/dist/common/clean/domain/infrastructure/ILogger.js.map +1 -0
  7. package/dist/common/clean/domain/infrastructure/IMime.js +5 -0
  8. package/dist/common/clean/domain/infrastructure/IMime.js.map +1 -0
  9. package/dist/common/clean/domain/useCases/ICloudProvider.js +3 -0
  10. package/dist/common/clean/domain/useCases/ICloudProvider.js.map +1 -0
  11. package/dist/common/clean/domain/useCases/ICloudProviderPublish.js +5 -0
  12. package/dist/common/clean/domain/useCases/ICloudProviderPublish.js.map +1 -0
  13. package/dist/common/everything/accessmanager/types.js +8 -0
  14. package/dist/common/everything/accessmanager/types.js.map +1 -0
  15. package/dist/common/everything/action/types.js +5 -0
  16. package/dist/common/everything/action/types.js.map +1 -0
  17. package/dist/common/everything/befunc/runtimeModels/types.js +5 -0
  18. package/dist/common/everything/befunc/runtimeModels/types.js.map +1 -0
  19. package/dist/common/everything/dataSet/runtimemodels/types.js +5 -0
  20. package/dist/common/everything/dataSet/runtimemodels/types.js.map +1 -0
  21. package/dist/common/everything/dataType/runtimemodels/types.js +35 -0
  22. package/dist/common/everything/dataType/runtimemodels/types.js.map +1 -0
  23. package/dist/common/everything/endpoint/runtimeModels/types.js +5 -0
  24. package/dist/common/everything/endpoint/runtimeModels/types.js.map +1 -0
  25. package/dist/common/everything/enum/runtimeModels/types.js +3 -0
  26. package/dist/common/everything/enum/runtimeModels/types.js.map +1 -0
  27. package/dist/common/everything/flow/runtimeModels/types.js +7 -0
  28. package/dist/common/everything/flow/runtimeModels/types.js.map +1 -0
  29. package/dist/common/everything/restService/runtimeModels/types.js +5 -0
  30. package/dist/common/everything/restService/runtimeModels/types.js.map +1 -0
  31. package/dist/common/everything/sla/runtimemodels/types.js +5 -0
  32. package/dist/common/everything/sla/runtimemodels/types.js.map +1 -0
  33. package/dist/common/everything/soapService/runtimeModels/types.js +6 -0
  34. package/dist/common/everything/soapService/runtimeModels/types.js.map +1 -0
  35. package/dist/common/everything/studio/ui/IStudioUIModelBase.js +3 -0
  36. package/dist/common/everything/studio/ui/IStudioUIModelBase.js.map +1 -0
  37. package/dist/common/everything/studio/ui/IStudioUIObjectBase.js +3 -0
  38. package/dist/common/everything/studio/ui/IStudioUIObjectBase.js.map +1 -0
  39. package/dist/common/everything/workflow/runtimemodels/types.js +90 -0
  40. package/dist/common/everything/workflow/runtimemodels/types.js.map +1 -0
  41. package/dist/common/helpers/objectHelper.js +43 -0
  42. package/dist/common/helpers/objectHelper.js.map +1 -0
  43. package/dist/common/helpers/promiseHelper.js +47 -0
  44. package/dist/common/helpers/promiseHelper.js.map +1 -0
  45. package/dist/common/helpers/typeHelper.js +3 -0
  46. package/dist/common/helpers/typeHelper.js.map +1 -0
  47. package/dist/common/qCloudTemp/announcement.js +3 -0
  48. package/dist/common/qCloudTemp/announcement.js.map +1 -0
  49. package/dist/common/qCloudTemp/application.js +3 -0
  50. package/dist/common/qCloudTemp/application.js.map +1 -0
  51. package/dist/common/qCloudTemp/applicationCopy.js +3 -0
  52. package/dist/common/qCloudTemp/applicationCopy.js.map +1 -0
  53. package/dist/common/qCloudTemp/applicationVersion.js +3 -0
  54. package/dist/common/qCloudTemp/applicationVersion.js.map +1 -0
  55. package/dist/common/qCloudTemp/authentication.js +3 -0
  56. package/dist/common/qCloudTemp/authentication.js.map +1 -0
  57. package/dist/common/qCloudTemp/authorization.js +4 -0
  58. package/dist/common/qCloudTemp/authorization.js.map +1 -0
  59. package/dist/common/qCloudTemp/backoffice.js +3 -0
  60. package/dist/common/qCloudTemp/backoffice.js.map +1 -0
  61. package/dist/common/qCloudTemp/exporter.js +3 -0
  62. package/dist/common/qCloudTemp/exporter.js.map +1 -0
  63. package/dist/common/qCloudTemp/externalToken.js +3 -0
  64. package/dist/common/qCloudTemp/externalToken.js.map +1 -0
  65. package/dist/common/qCloudTemp/feedback.js +3 -0
  66. package/dist/common/qCloudTemp/feedback.js.map +1 -0
  67. package/dist/common/qCloudTemp/invitation.js +3 -0
  68. package/dist/common/qCloudTemp/invitation.js.map +1 -0
  69. package/dist/common/qCloudTemp/membership.js +3 -0
  70. package/dist/common/qCloudTemp/membership.js.map +1 -0
  71. package/dist/common/qCloudTemp/modelDatas.js +3 -0
  72. package/dist/common/qCloudTemp/modelDatas.js.map +1 -0
  73. package/dist/common/qCloudTemp/organizationGroupApplication.js +3 -0
  74. package/dist/common/qCloudTemp/organizationGroupApplication.js.map +1 -0
  75. package/dist/common/qCloudTemp/quickCloud.js +34 -0
  76. package/dist/common/qCloudTemp/quickCloud.js.map +1 -0
  77. package/dist/common/qCloudTemp/storageTypes.js +3 -0
  78. package/dist/common/qCloudTemp/storageTypes.js.map +1 -0
  79. package/dist/common/qCloudTemp/symDtoObjects.js +8 -0
  80. package/dist/common/qCloudTemp/symDtoObjects.js.map +1 -0
  81. package/dist/common/qCloudTemp/tags.js +3 -0
  82. package/dist/common/qCloudTemp/tags.js.map +1 -0
  83. package/dist/common/qCloudTemp/template.js +107 -0
  84. package/dist/common/qCloudTemp/template.js.map +1 -0
  85. package/dist/common/qCloudTemp/userPreference.js +3 -0
  86. package/dist/common/qCloudTemp/userPreference.js.map +1 -0
  87. package/dist/common/qCloudTemp/userRequest.js +8 -0
  88. package/dist/common/qCloudTemp/userRequest.js.map +1 -0
  89. package/dist/common/studioCli/messages.js +14 -0
  90. package/dist/common/studioCli/messages.js.map +1 -0
  91. package/dist/common/studioCli/protocolVersion.js +14 -0
  92. package/dist/common/studioCli/protocolVersion.js.map +1 -0
  93. package/dist/jobs/src/application/shared/fileUrlCreator.js +72 -0
  94. package/dist/jobs/src/application/shared/fileUrlCreator.js.map +1 -0
  95. package/dist/jobs/src/domain/model/IExportJob.js +3 -0
  96. package/dist/jobs/src/domain/model/IExportJob.js.map +1 -0
  97. package/dist/studio-cli/src/.ai-kit/.mcp.json +8 -0
  98. package/dist/studio-cli/src/.ai-kit/AGENTS.md +18 -0
  99. package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE-legacy.md +29 -0
  100. package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE-s.md +30 -0
  101. package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE.md +86 -0
  102. package/dist/studio-cli/src/.ai-kit/CLAUDE.md +12 -0
  103. package/dist/studio-cli/src/.ai-kit/README.md +81 -0
  104. package/dist/studio-cli/src/.ai-kit/agents/qjson-legacy-migrator.md +308 -0
  105. package/dist/studio-cli/src/.ai-kit/agents/quick-events.md +41 -0
  106. package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author-legacy.md +29 -0
  107. package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author-s.md +29 -0
  108. package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author.md +33 -0
  109. package/dist/studio-cli/src/.ai-kit/agents/quick-styling-legacy.md +37 -0
  110. package/dist/studio-cli/src/.ai-kit/agents/quick-styling.md +36 -0
  111. package/dist/studio-cli/src/.ai-kit/examples/README.md +12 -0
  112. package/dist/studio-cli/src/.ai-kit/examples/cssClass/AllowdDates.qjson +122 -0
  113. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Avatarlar.qjson +1084 -0
  114. package/dist/studio-cli/src/.ai-kit/examples/cssClass/BarChart.qjson +1061 -0
  115. package/dist/studio-cli/src/.ai-kit/examples/cssClass/BarChart_Type_Time_Sample.qjson +344 -0
  116. package/dist/studio-cli/src/.ai-kit/examples/cssClass/BottomSheetScrollWithHeaderInformation.qjson +1609 -0
  117. package/dist/studio-cli/src/.ai-kit/examples/cssClass/CardTitle.qjson +143 -0
  118. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Charts_Custom_Legend_Sample.qjson +763 -0
  119. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Charts_tooltipLabel_sample.qjson +631 -0
  120. package/dist/studio-cli/src/.ai-kit/examples/cssClass/CheckBoxQvalue.qjson +91 -0
  121. package/dist/studio-cli/src/.ai-kit/examples/cssClass/CheckboxDisabledExample.qjson +153 -0
  122. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Click Outside.qjson +144 -0
  123. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboBoxReset.qjson +839 -0
  124. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxAddItemWithDialog.qjson +296 -0
  125. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxAddItemWithTextField.qjson +186 -0
  126. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxDefaultSelection.qjson +99 -0
  127. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxWithTreeView.qjson +94 -0
  128. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Combobox_SelectAll.qjson +704 -0
  129. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComponentsInteractionExamples.qjson +722 -0
  130. package/dist/studio-cli/src/.ai-kit/examples/cssClass/CookieExamples.qjson +828 -0
  131. package/dist/studio-cli/src/.ai-kit/examples/cssClass/CreateComponent_WithTransmitDataSource_Sample.qjson +749 -0
  132. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Cryptography-with-ivKey.qjson +2159 -0
  133. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Dashboard.qjson +1135 -0
  134. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataExamples.qjson +696 -0
  135. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataStorageExamples.qjson +1296 -0
  136. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTable-Single-select-Multi-Select-TotalCalculation.qjson +441 -0
  137. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableAddRemoveItem.qjson +312 -0
  138. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableBoldHeader.qjson +34 -0
  139. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableEdit.qjson +422 -0
  140. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableFixedColumn.qjson +133 -0
  141. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableIndexExample.qjson +117 -0
  142. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableSearch.qjson +105 -0
  143. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableVerticalBorder.qjson +34 -0
  144. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableWithTooltip.qjson +354 -0
  145. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTable_ChildButtonVisibleSample.qjson +892 -0
  146. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatePickerExampleApp (1).qjson +770 -0
  147. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatePickerInlineExample.qjson +299 -0
  148. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatePickerLocale.qjson +87 -0
  149. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatepickerDatenow.qjson +96 -0
  150. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatepickerExample.qjson +147 -0
  151. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Detailed_Table_Row_Expand.qjson +388 -0
  152. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Detailed_Table_Rows.qjson +114 -0
  153. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogBlockSubPage.qjson +1014 -0
  154. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogExample.qjson +420 -0
  155. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogExampleWith/304/261con.qjson +345 -0
  156. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogWithEagerProp.qjson +129 -0
  157. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DoughnutChart.qjson +1005 -0
  158. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Download.qjson +139 -0
  159. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxColumnChooser.qjson +341 -0
  160. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxColumnFixing.qjson +317 -0
  161. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxColumn_fix_allowFixing.qjson +466 -0
  162. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-DxExport.qjson +225 -0
  163. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-DxFilterRow.qjson +174 -0
  164. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-DxSearchPanel.qjson +170 -0
  165. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-columnAutoWidth.qjson +135 -0
  166. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridArrStoreLiveCon.qjson +201 -0
  167. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridArrStoreLiveConReason.qjson +290 -0
  168. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridExternalFilterCleaning.qjson +358 -0
  169. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridExternalFiltering.qjson +300 -0
  170. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridRowDragging.qjson +257 -0
  171. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_MultipleSelection.qjson +503 -0
  172. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_ServiceCall.qjson +204 -0
  173. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_SimplestGridWithArrayStore.qjson +215 -0
  174. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_SingleSelection.qjson +337 -0
  175. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_allowFixing.qjson +321 -0
  176. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_columnResizingMode.qjson +718 -0
  177. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_hoverStateEnabled.qjson +144 -0
  178. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_onCellClickEvent.qjson +147 -0
  179. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_width_menu.qjson +574 -0
  180. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreeListArrStoreLiveCon.qjson +302 -0
  181. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-color.qjson +237 -0
  182. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-columnreordering.qjson +241 -0
  183. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-editing.qjson +1471 -0
  184. package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-extarnelfiltre.qjson +122 -0
  185. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Expansion_Panels.qjson +298 -0
  186. package/dist/studio-cli/src/.ai-kit/examples/cssClass/FileInput.qjson +228 -0
  187. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Frame_openHtmlContentInFrame.qjson +556 -0
  188. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Highlight_datatable_select.qjson +53 -0
  189. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Icon_Samples.qjson +148 -0
  190. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Instructions.request.qjson +605 -0
  191. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Intersect.qjson +423 -0
  192. package/dist/studio-cli/src/.ai-kit/examples/cssClass/LightBox.qjson +809 -0
  193. package/dist/studio-cli/src/.ai-kit/examples/cssClass/LineChart.qjson +1046 -0
  194. package/dist/studio-cli/src/.ai-kit/examples/cssClass/LineChart_Type_Time_Sample.qjson +340 -0
  195. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ListExample.qjson +475 -0
  196. package/dist/studio-cli/src/.ai-kit/examples/cssClass/LoginPage.qjson +525 -0
  197. package/dist/studio-cli/src/.ai-kit/examples/cssClass/MMDelay.qjson +356 -0
  198. package/dist/studio-cli/src/.ai-kit/examples/cssClass/MMtrigger.qjson +195 -0
  199. package/dist/studio-cli/src/.ai-kit/examples/cssClass/NavigationDrawerExample.qjson +808 -0
  200. package/dist/studio-cli/src/.ai-kit/examples/cssClass/NavigationDrawerWithAppBar.qjson +1621 -0
  201. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Parallax.qjson +381 -0
  202. package/dist/studio-cli/src/.ai-kit/examples/cssClass/PermanentStore_Example.qjson +1445 -0
  203. package/dist/studio-cli/src/.ai-kit/examples/cssClass/PieChart.qjson +1005 -0
  204. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Profile_Card.qjson +345 -0
  205. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ProgressLinear.qjson +547 -0
  206. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QCaptcha.qjson +318 -0
  207. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QDocumentViewer.qjson +41 -0
  208. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QFrameAllowFullScreenExample.qjson +368 -0
  209. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QFrameExample.qjson +117 -0
  210. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QIdleTimer.qjson +100 -0
  211. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QImgZoomRotate.qjson +428 -0
  212. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QImgZoomTypeNextTo.qjson +187 -0
  213. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QImgZoomTypeOn.qjson +187 -0
  214. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLabel_URL.qjson +105 -0
  215. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLabel_URL_Click.qjson +133 -0
  216. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLegend.qjson +501 -0
  217. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLegendBlock.qjson +732 -0
  218. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLegend_unchanged.qjson +746 -0
  219. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QMapExample.qjson +785 -0
  220. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QMenuExample.qjson +68 -0
  221. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QOtp.qjson +979 -0
  222. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QQRCode.qjson +295 -0
  223. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QReCaptcha.qjson +361 -0
  224. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QRichTextExample.qjson +139 -0
  225. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QRichText_Cursor_Sample.qjson +352 -0
  226. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QTutorialFinalDemo.qjson +494 -0
  227. package/dist/studio-cli/src/.ai-kit/examples/cssClass/QVideoExample.qjson +1135 -0
  228. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Qlabel_Props.qjson +1591 -0
  229. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Qmenu-Icon-Img-SizeandColor.qjson +244 -0
  230. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Quick_Bind.qjson +110 -0
  231. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Quick_Bind_Sample.qjson +172 -0
  232. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Rating.qjson +101 -0
  233. package/dist/studio-cli/src/.ai-kit/examples/cssClass/RenderingComponent_Sample.qjson +1592 -0
  234. package/dist/studio-cli/src/.ai-kit/examples/cssClass/RequestExamples.qjson +680 -0
  235. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ResetValidation-ResetUsage.qjson +1326 -0
  236. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Resize.qjson +140 -0
  237. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Ripple.qjson +431 -0
  238. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Sparkline.qjson +386 -0
  239. package/dist/studio-cli/src/.ai-kit/examples/cssClass/State_storing.qjson +286 -0
  240. package/dist/studio-cli/src/.ai-kit/examples/cssClass/SwitchComponent.qjson +42 -0
  241. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Table_Pagination.qjson +99 -0
  242. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Table_Search.qjson +64 -0
  243. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Table_Select.qjson +106 -0
  244. package/dist/studio-cli/src/.ai-kit/examples/cssClass/ToolTip_props.qjson +2649 -0
  245. package/dist/studio-cli/src/.ai-kit/examples/cssClass/TooltipDisplayOfVDataTableDataTotal.qjson +312 -0
  246. package/dist/studio-cli/src/.ai-kit/examples/cssClass/TreeViewExample.qjson +92 -0
  247. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VAppBar.qjson +1681 -0
  248. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VAutocompleteRegex.qjson +45 -0
  249. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VBottomSheet.qjson +429 -0
  250. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VCard.qjson +1945 -0
  251. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VCombobox_customValidation.qjson +290 -0
  252. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable-slot-columnVeriyeG/303/266reRenklendirme.qjson +493 -0
  253. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTableIconExample.qjson +116 -0
  254. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTableItemAggregation.qjson +499 -0
  255. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_Change_FooterPageText.qjson +107 -0
  256. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_Multiple_Select_Control.qjson +50 -0
  257. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_SetGetComboboxValue_.qjson +148 -0
  258. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_SetItemSelect_GetSelection.qjson +627 -0
  259. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_SlotInstances.qjson +362 -0
  260. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_Validation.qjson +226 -0
  261. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_With_QTableCell_Sample.qjson +281 -0
  262. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_customSearchFilter.qjson +255 -0
  263. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_firstColumn_fixedActionsColumn.qjson +216 -0
  264. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_uniqueSlot_itemKey_Object.qjson +545 -0
  265. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDatePicker_AllowdDates.qjson +89 -0
  266. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDialog.qjson +3512 -0
  267. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VExpansionPanel_UsageAndProps.qjson +3811 -0
  268. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFileInput-Slot-VIcon-Dolu.qjson +232 -0
  269. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFileInputGetUploadedContent.qjson +111 -0
  270. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFileInput_ImagePicker.qjson +308 -0
  271. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFooter.qjson +1480 -0
  272. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VForm.qjson +410 -0
  273. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFormActionExample.qjson +2289 -0
  274. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineDatePicker_titleDateFormat.qjson +319 -0
  275. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineDatepickerMaxMin.qjson +36 -0
  276. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineDatepickerReset.qjson +88 -0
  277. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineTimePicker.qjson +149 -0
  278. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VListGroup.qjson +1817 -0
  279. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VList_NavigationMenu.qjson +1636 -0
  280. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VMenu_PopoverInTable.qjson +534 -0
  281. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VMenu_sample.qjson +470 -0
  282. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VStepperExample.qjson +748 -0
  283. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VStepper_vertical.qjson +364 -0
  284. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VSteppers_EditableNonLinear.qjson +658 -0
  285. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VSteppers_LinearWithContinueButton.qjson +719 -0
  286. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextFieldQuickInputFormat.qjson +40 -0
  287. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextFieldValidation.qjson +1087 -0
  288. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_FocusExample.qjson +329 -0
  289. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_Validation_examples.qjson +877 -0
  290. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_customValidation.qjson +159 -0
  291. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValueSample1.qjson +40 -0
  292. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValueSapmle2.qjson +40 -0
  293. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValue_exceptLetters.qjson +40 -0
  294. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValue_specialChars.qjson +40 -0
  295. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_keyDown.qjson +37 -0
  296. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_rangeOfNumber_validation.qjson +55 -0
  297. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextareaQuickInputFormat.qjson +37 -0
  298. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextarea_format_regex_sample.qjson +321 -0
  299. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTimelineExample.qjson +322 -0
  300. package/dist/studio-cli/src/.ai-kit/examples/cssClass/Vcontainer.qjson +417 -0
  301. package/dist/studio-cli/src/.ai-kit/examples/cssClass/VinlineDatePicker.qjson +61 -0
  302. package/dist/studio-cli/src/.ai-kit/examples/cssClass/V/304/261nlineDatepickerDeleteValue.qjson +304 -0
  303. package/dist/studio-cli/src/.ai-kit/examples/cssClass/alert.qjson +459 -0
  304. package/dist/studio-cli/src/.ai-kit/examples/cssClass/alertSamplePage.qjson +455 -0
  305. package/dist/studio-cli/src/.ai-kit/examples/cssClass/authorizationDashboard.qjson +24914 -0
  306. package/dist/studio-cli/src/.ai-kit/examples/cssClass/badge copy.qjson +158 -0
  307. package/dist/studio-cli/src/.ai-kit/examples/cssClass/badge.qjson +158 -0
  308. package/dist/studio-cli/src/.ai-kit/examples/cssClass/bottomSheetScrollable.qjson +3220 -0
  309. package/dist/studio-cli/src/.ai-kit/examples/cssClass/breadcrumbs.qjson +587 -0
  310. package/dist/studio-cli/src/.ai-kit/examples/cssClass/button.qjson +1765 -0
  311. package/dist/studio-cli/src/.ai-kit/examples/cssClass/cellTemplate.qjson +76 -0
  312. package/dist/studio-cli/src/.ai-kit/examples/cssClass/combobox.qjson +90 -0
  313. package/dist/studio-cli/src/.ai-kit/examples/cssClass/comboboxSelected.qjson +118 -0
  314. package/dist/studio-cli/src/.ai-kit/examples/cssClass/createChildren.qjson +406 -0
  315. package/dist/studio-cli/src/.ai-kit/examples/cssClass/createClosedPanes.qjson +245 -0
  316. package/dist/studio-cli/src/.ai-kit/examples/cssClass/creditcard.qjson +28 -0
  317. package/dist/studio-cli/src/.ai-kit/examples/cssClass/crypto.qjson +5965 -0
  318. package/dist/studio-cli/src/.ai-kit/examples/cssClass/customFilterUsingCalculateFilterExpressionEvent.qjson +305 -0
  319. package/dist/studio-cli/src/.ai-kit/examples/cssClass/customStore.qjson +156 -0
  320. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dataTableFormatColumn.qjson +151 -0
  321. package/dist/studio-cli/src/.ai-kit/examples/cssClass/data_table_component_access.qjson +130 -0
  322. package/dist/studio-cli/src/.ai-kit/examples/cssClass/datagridAddDynamicColumn.qjson +1381 -0
  323. package/dist/studio-cli/src/.ai-kit/examples/cssClass/datatableAddandDeleteItem.qjson +1195 -0
  324. package/dist/studio-cli/src/.ai-kit/examples/cssClass/deleteComponent.qjson +533 -0
  325. package/dist/studio-cli/src/.ai-kit/examples/cssClass/divider.qjson +185 -0
  326. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxColumncssClass.qjson +249 -0
  327. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDataGridAddinEditingDeleting.qjson +486 -0
  328. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDataGridLines.qjson +120 -0
  329. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDataGridRemove.qjson +216 -0
  330. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDatagridHeatMap.qjson +334 -0
  331. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDatagridUpdate.qjson +80 -0
  332. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxMasterDetail.qjson +261 -0
  333. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxPaging_withServiceCall.qjson +159 -0
  334. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxRowDragging.qjson +179 -0
  335. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxSummary_dxTotalItem_usage.qjson +219 -0
  336. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxTotalItemCustomizeText.qjson +226 -0
  337. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxTreeList_exportToExcel.qjson +266 -0
  338. package/dist/studio-cli/src/.ai-kit/examples/cssClass/dynamicComp.qjson +162 -0
  339. package/dist/studio-cli/src/.ai-kit/examples/cssClass/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
  340. package/dist/studio-cli/src/.ai-kit/examples/cssClass/email.qjson +29 -0
  341. package/dist/studio-cli/src/.ai-kit/examples/cssClass/encoding.qjson +304 -0
  342. package/dist/studio-cli/src/.ai-kit/examples/cssClass/encryptedStorage_Sample.qjson +596 -0
  343. package/dist/studio-cli/src/.ai-kit/examples/cssClass/fileInput-1.qjson +904 -0
  344. package/dist/studio-cli/src/.ai-kit/examples/cssClass/fileUploadBlockComponent.qjson +68 -0
  345. package/dist/studio-cli/src/.ai-kit/examples/cssClass/fileUploadServiceCallBlockComp.qjson +128 -0
  346. package/dist/studio-cli/src/.ai-kit/examples/cssClass/findAndDeleteRelatedDynamicComp.qjson +211 -0
  347. package/dist/studio-cli/src/.ai-kit/examples/cssClass/first.qjson +57 -0
  348. package/dist/studio-cli/src/.ai-kit/examples/cssClass/fixedActionsColumn.qjson +133 -0
  349. package/dist/studio-cli/src/.ai-kit/examples/cssClass/formatWithFormatType.qjson +1740 -0
  350. package/dist/studio-cli/src/.ai-kit/examples/cssClass/getComponent_example.qjson +491 -0
  351. package/dist/studio-cli/src/.ai-kit/examples/cssClass/globalLocalization.qjson +189 -0
  352. package/dist/studio-cli/src/.ai-kit/examples/cssClass/goldenLayout.qjson +228 -0
  353. package/dist/studio-cli/src/.ai-kit/examples/cssClass/images.qjson +1461 -0
  354. package/dist/studio-cli/src/.ai-kit/examples/cssClass/list.qjson +162 -0
  355. package/dist/studio-cli/src/.ai-kit/examples/cssClass/localization_AddLanguageRTL_Sample.qjson +1192 -0
  356. package/dist/studio-cli/src/.ai-kit/examples/cssClass/newCustomerRegister.qjson +2598 -0
  357. package/dist/studio-cli/src/.ai-kit/examples/cssClass/number.qjson +41 -0
  358. package/dist/studio-cli/src/.ai-kit/examples/cssClass/number_VTextarea.qjson +37 -0
  359. package/dist/studio-cli/src/.ai-kit/examples/cssClass/onlyAlphabetic.qjson +32 -0
  360. package/dist/studio-cli/src/.ai-kit/examples/cssClass/parentPage.qjson +292 -0
  361. package/dist/studio-cli/src/.ai-kit/examples/cssClass/pipeline.qjson +77 -0
  362. package/dist/studio-cli/src/.ai-kit/examples/cssClass/pipelineSample.qjson +422 -0
  363. package/dist/studio-cli/src/.ai-kit/examples/cssClass/placeQidDynamic.qjson +193 -0
  364. package/dist/studio-cli/src/.ai-kit/examples/cssClass/progress-circular.qjson +1056 -0
  365. package/dist/studio-cli/src/.ai-kit/examples/cssClass/qtimer.qjson +335 -0
  366. package/dist/studio-cli/src/.ai-kit/examples/cssClass/radioGroupGetValues.qjson +125 -0
  367. package/dist/studio-cli/src/.ai-kit/examples/cssClass/region_definition_example.qjson +580 -0
  368. package/dist/studio-cli/src/.ai-kit/examples/cssClass/resetAndResetValidationUsage.qjson +1827 -0
  369. package/dist/studio-cli/src/.ai-kit/examples/cssClass/responsive1.qjson +312 -0
  370. package/dist/studio-cli/src/.ai-kit/examples/cssClass/responsive2.qjson +312 -0
  371. package/dist/studio-cli/src/.ai-kit/examples/cssClass/responsive3.qjson +1546 -0
  372. package/dist/studio-cli/src/.ai-kit/examples/cssClass/scrollButton.qjson +331 -0
  373. package/dist/studio-cli/src/.ai-kit/examples/cssClass/scrollDirective.qjson +297 -0
  374. package/dist/studio-cli/src/.ai-kit/examples/cssClass/selectedRow-propertyDisable.qjson +238 -0
  375. package/dist/studio-cli/src/.ai-kit/examples/cssClass/serviceCallerBlockComponent.qjson +63 -0
  376. package/dist/studio-cli/src/.ai-kit/examples/cssClass/sheet.qjson +149 -0
  377. package/dist/studio-cli/src/.ai-kit/examples/cssClass/slider.qjson +81 -0
  378. package/dist/studio-cli/src/.ai-kit/examples/cssClass/snackbars.qjson +2454 -0
  379. package/dist/studio-cli/src/.ai-kit/examples/cssClass/sso.qjson +260 -0
  380. package/dist/studio-cli/src/.ai-kit/examples/cssClass/subPage.qjson +710 -0
  381. package/dist/studio-cli/src/.ai-kit/examples/cssClass/tab.qjson +271 -0
  382. package/dist/studio-cli/src/.ai-kit/examples/cssClass/tableadditem.qjson +125 -0
  383. package/dist/studio-cli/src/.ai-kit/examples/cssClass/themeExamplePage.qjson +876 -0
  384. package/dist/studio-cli/src/.ai-kit/examples/cssClass/tiffImage.qjson +315 -0
  385. package/dist/studio-cli/src/.ai-kit/examples/cssClass/timePicker.qjson +452 -0
  386. package/dist/studio-cli/src/.ai-kit/examples/cssClass/treeview.qjson +156 -0
  387. package/dist/studio-cli/src/.ai-kit/examples/cssClass/treeview2.qjson +503 -0
  388. package/dist/studio-cli/src/.ai-kit/examples/cssClass/uniqueRowSlots.qjson +226 -0
  389. package/dist/studio-cli/src/.ai-kit/examples/cssClass/vMenu.qjson +212 -0
  390. package/dist/studio-cli/src/.ai-kit/examples/cssClass/vcarousel.qjson +659 -0
  391. package/dist/studio-cli/src/.ai-kit/examples/cssClass/vdatatable_slots_with_custom_validation_usage.qjson +1585 -0
  392. package/dist/studio-cli/src/.ai-kit/examples/style/AllowdDates.qjson +126 -0
  393. package/dist/studio-cli/src/.ai-kit/examples/style/BarChartEvents.qjson +323 -0
  394. package/dist/studio-cli/src/.ai-kit/examples/style/BarChartTitle.qjson +411 -0
  395. package/dist/studio-cli/src/.ai-kit/examples/style/BarChartYTicks.qjson +399 -0
  396. package/dist/studio-cli/src/.ai-kit/examples/style/BarChart_TicksCallback.qjson +309 -0
  397. package/dist/studio-cli/src/.ai-kit/examples/style/CalendarClickMoreExample.qjson +2 -0
  398. package/dist/studio-cli/src/.ai-kit/examples/style/CalendarUsageExample.qjson +2 -0
  399. package/dist/studio-cli/src/.ai-kit/examples/style/ChartLegendFont.qjson +788 -0
  400. package/dist/studio-cli/src/.ai-kit/examples/style/DataTable_customSort.qjson +277 -0
  401. package/dist/studio-cli/src/.ai-kit/examples/style/DocumentViewer_tiff_Sample.qjson +927 -0
  402. package/dist/studio-cli/src/.ai-kit/examples/style/DoughnutChartEvents.qjson +243 -0
  403. package/dist/studio-cli/src/.ai-kit/examples/style/DxDataGrid_CustomStore.qjson +267 -0
  404. package/dist/studio-cli/src/.ai-kit/examples/style/Icon_Samples.qjson +181 -0
  405. package/dist/studio-cli/src/.ai-kit/examples/style/Instructions.request.qjson +584 -0
  406. package/dist/studio-cli/src/.ai-kit/examples/style/Intersect.qjson +404 -0
  407. package/dist/studio-cli/src/.ai-kit/examples/style/LightBox.qjson +777 -0
  408. package/dist/studio-cli/src/.ai-kit/examples/style/LineChart.qjson +1049 -0
  409. package/dist/studio-cli/src/.ai-kit/examples/style/LineChartEvents.qjson +327 -0
  410. package/dist/studio-cli/src/.ai-kit/examples/style/LineChartPointProps.qjson +416 -0
  411. package/dist/studio-cli/src/.ai-kit/examples/style/LineChart_TicksCallback.qjson +309 -0
  412. package/dist/studio-cli/src/.ai-kit/examples/style/LineChart_Type_Time_Sample.qjson +342 -0
  413. package/dist/studio-cli/src/.ai-kit/examples/style/MMDelay.qjson +384 -0
  414. package/dist/studio-cli/src/.ai-kit/examples/style/MMtrigger.qjson +209 -0
  415. package/dist/studio-cli/src/.ai-kit/examples/style/NavigationDrawerExample.qjson +899 -0
  416. package/dist/studio-cli/src/.ai-kit/examples/style/NavigationDrawerWithAppBar.qjson +1647 -0
  417. package/dist/studio-cli/src/.ai-kit/examples/style/Parallax.qjson +416 -0
  418. package/dist/studio-cli/src/.ai-kit/examples/style/PieChart.qjson +1103 -0
  419. package/dist/studio-cli/src/.ai-kit/examples/style/QCaptcha.qjson +409 -0
  420. package/dist/studio-cli/src/.ai-kit/examples/style/QDocumentViewer.qjson +149 -0
  421. package/dist/studio-cli/src/.ai-kit/examples/style/QFrameAllowFullScreenExample.qjson +360 -0
  422. package/dist/studio-cli/src/.ai-kit/examples/style/QFrameExample.qjson +213 -0
  423. package/dist/studio-cli/src/.ai-kit/examples/style/QIdleTimer.qjson +221 -0
  424. package/dist/studio-cli/src/.ai-kit/examples/style/QImgZoomRotate.qjson +432 -0
  425. package/dist/studio-cli/src/.ai-kit/examples/style/QImgZoomTypeNextTo.qjson +196 -0
  426. package/dist/studio-cli/src/.ai-kit/examples/style/QImgZoomTypeOn.qjson +196 -0
  427. package/dist/studio-cli/src/.ai-kit/examples/style/QLabel_URL_Click_SendParams.qjson +477 -0
  428. package/dist/studio-cli/src/.ai-kit/examples/style/VList_NavMenu.qjson +3008 -0
  429. package/dist/studio-cli/src/.ai-kit/examples/style/alertSamplePage.qjson +450 -0
  430. package/dist/studio-cli/src/.ai-kit/examples/style/authorizationDashboard.qjson +24914 -0
  431. package/dist/studio-cli/src/.ai-kit/examples/style/badge.qjson +151 -0
  432. package/dist/studio-cli/src/.ai-kit/examples/style/bottomSheetScrollable.qjson +3120 -0
  433. package/dist/studio-cli/src/.ai-kit/examples/style/breadcrumbs.qjson +563 -0
  434. package/dist/studio-cli/src/.ai-kit/examples/style/button.qjson +1658 -0
  435. package/dist/studio-cli/src/.ai-kit/examples/style/cellTemplate.qjson +96 -0
  436. package/dist/studio-cli/src/.ai-kit/examples/style/combobox.qjson +109 -0
  437. package/dist/studio-cli/src/.ai-kit/examples/style/comboboxSelected.qjson +119 -0
  438. package/dist/studio-cli/src/.ai-kit/examples/style/createChildren.qjson +411 -0
  439. package/dist/studio-cli/src/.ai-kit/examples/style/createClosedPanes.qjson +265 -0
  440. package/dist/studio-cli/src/.ai-kit/examples/style/creditcard.qjson +49 -0
  441. package/dist/studio-cli/src/.ai-kit/examples/style/crypto.qjson +5632 -0
  442. package/dist/studio-cli/src/.ai-kit/examples/style/customFilterUsingCalculateFilterExpressionEvent.qjson +301 -0
  443. package/dist/studio-cli/src/.ai-kit/examples/style/customStore.qjson +157 -0
  444. package/dist/studio-cli/src/.ai-kit/examples/style/dataTableFormatColumn.qjson +151 -0
  445. package/dist/studio-cli/src/.ai-kit/examples/style/data_table_component_access.qjson +130 -0
  446. package/dist/studio-cli/src/.ai-kit/examples/style/datagridAddDynamicColumn.qjson +1381 -0
  447. package/dist/studio-cli/src/.ai-kit/examples/style/datatableAddandDeleteItem.qjson +1195 -0
  448. package/dist/studio-cli/src/.ai-kit/examples/style/datatable_selectable_feature_select_unselect_usage.qjson +300 -0
  449. package/dist/studio-cli/src/.ai-kit/examples/style/deleteComponent.qjson +501 -0
  450. package/dist/studio-cli/src/.ai-kit/examples/style/divider.qjson +180 -0
  451. package/dist/studio-cli/src/.ai-kit/examples/style/dxColumncssClass.qjson +249 -0
  452. package/dist/studio-cli/src/.ai-kit/examples/style/dxDataGridAddinEditingDeleting.qjson +486 -0
  453. package/dist/studio-cli/src/.ai-kit/examples/style/dxDataGridLines.qjson +121 -0
  454. package/dist/studio-cli/src/.ai-kit/examples/style/dxDataGridRemove.qjson +209 -0
  455. package/dist/studio-cli/src/.ai-kit/examples/style/dxDatagridHeatMap.qjson +335 -0
  456. package/dist/studio-cli/src/.ai-kit/examples/style/dxDatagridUpdate.qjson +80 -0
  457. package/dist/studio-cli/src/.ai-kit/examples/style/dxMasterDetail.qjson +257 -0
  458. package/dist/studio-cli/src/.ai-kit/examples/style/dxPaging_withServiceCall.qjson +160 -0
  459. package/dist/studio-cli/src/.ai-kit/examples/style/dxRowDragging.qjson +175 -0
  460. package/dist/studio-cli/src/.ai-kit/examples/style/dxSummary_dxTotalItem_usage.qjson +215 -0
  461. package/dist/studio-cli/src/.ai-kit/examples/style/dxTotalItemCustomizeText.qjson +222 -0
  462. package/dist/studio-cli/src/.ai-kit/examples/style/dxTreeList_exportToExcel.qjson +267 -0
  463. package/dist/studio-cli/src/.ai-kit/examples/style/dynamicComp.qjson +156 -0
  464. package/dist/studio-cli/src/.ai-kit/examples/style/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
  465. package/dist/studio-cli/src/.ai-kit/examples/style/email.qjson +177 -0
  466. package/dist/studio-cli/src/.ai-kit/examples/style/encoding.qjson +304 -0
  467. package/dist/studio-cli/src/.ai-kit/examples/style/encryptedStorage_Sample.qjson +596 -0
  468. package/dist/studio-cli/src/.ai-kit/examples/style/exportToXlsx_Sample.qjson +1956 -0
  469. package/dist/studio-cli/src/.ai-kit/examples/style/images.qjson +1379 -0
  470. package/dist/studio-cli/src/.ai-kit/examples/style/images_olddd.qjson +1366 -0
  471. package/dist/studio-cli/src/.ai-kit/examples/style/newCustomerRegister.qjson +2598 -0
  472. package/dist/studio-cli/src/.ai-kit/examples/style/number.qjson +169 -0
  473. package/dist/studio-cli/src/.ai-kit/examples/style/number_VTextarea.qjson +163 -0
  474. package/dist/studio-cli/src/.ai-kit/examples/style/onlyAlphabetic.qjson +164 -0
  475. package/dist/studio-cli/src/.ai-kit/examples/style/parentPage.qjson +351 -0
  476. package/dist/studio-cli/src/.ai-kit/examples/style/pipeline.qjson +78 -0
  477. package/dist/studio-cli/src/.ai-kit/examples/style/pipelineSample.qjson +410 -0
  478. package/dist/studio-cli/src/.ai-kit/examples/style/placeQidDynamic.qjson +289 -0
  479. package/dist/studio-cli/src/.ai-kit/examples/style/progress-circular.qjson +1014 -0
  480. package/dist/studio-cli/src/.ai-kit/examples/style/samplePageLottie.qjson +696 -0
  481. package/dist/studio-cli/src/.ai-kit/examples/style/server-SideAutocompleteHandling.qjson +696 -0
  482. package/dist/studio-cli/src/.ai-kit/examples/style/xlsxToJson_Sample.qjson +772 -0
  483. package/dist/studio-cli/src/.ai-kit/knowledge/00-qjson-structure-legacy.md +65 -0
  484. package/dist/studio-cli/src/.ai-kit/knowledge/00-qjson-structure.md +67 -0
  485. package/dist/studio-cli/src/.ai-kit/knowledge/01-properties.md +77 -0
  486. package/dist/studio-cli/src/.ai-kit/knowledge/02-events-and-scripting.md +79 -0
  487. package/dist/studio-cli/src/.ai-kit/knowledge/03-layout-and-slots-legacy.md +72 -0
  488. package/dist/studio-cli/src/.ai-kit/knowledge/03-layout-and-slots.md +64 -0
  489. package/dist/studio-cli/src/.ai-kit/knowledge/04-styling-legacy.md +73 -0
  490. package/dist/studio-cli/src/.ai-kit/knowledge/04-styling.md +177 -0
  491. package/dist/studio-cli/src/.ai-kit/knowledge/05-components.md +97 -0
  492. package/dist/studio-cli/src/.ai-kit/knowledge/06-services.md +68 -0
  493. package/dist/studio-cli/src/.ai-kit/knowledge/07-localization.md +40 -0
  494. package/dist/studio-cli/src/.ai-kit/knowledge/08-dynamic-components.md +49 -0
  495. package/dist/studio-cli/src/.ai-kit/knowledge/09-page-skeletons-legacy.md +83 -0
  496. package/dist/studio-cli/src/.ai-kit/knowledge/09-page-skeletons.md +87 -0
  497. package/dist/studio-cli/src/.ai-kit/knowledge/10-validation-and-sync-legacy.md +69 -0
  498. package/dist/studio-cli/src/.ai-kit/knowledge/10-validation-and-sync.md +78 -0
  499. package/dist/studio-cli/src/.ai-kit/knowledge/11-cli-bridge.md +97 -0
  500. package/dist/studio-cli/src/.ai-kit/knowledge/12-render-check.md +45 -0
  501. package/dist/studio-cli/src/.ai-kit/opencode.jsonc +95 -0
  502. package/dist/studio-cli/src/.ai-kit/reference/component-catalog-legacy.md +120 -0
  503. package/dist/studio-cli/src/.ai-kit/reference/component-catalog.md +135 -0
  504. package/dist/studio-cli/src/.ai-kit/reference/component-contracts.json +14964 -0
  505. package/dist/studio-cli/src/.ai-kit/reference/component-index.json +114 -0
  506. package/dist/studio-cli/src/.ai-kit/reference/component-styles.json +6983 -0
  507. package/dist/studio-cli/src/.ai-kit/reference/events-system.md +98 -0
  508. package/dist/studio-cli/src/.ai-kit/reference/layout-system.md +99 -0
  509. package/dist/studio-cli/src/.ai-kit/reference/mapping-S-vuetify-class.md +103 -0
  510. package/dist/studio-cli/src/.ai-kit/reference/qjson-schema-legacy.md +189 -0
  511. package/dist/studio-cli/src/.ai-kit/reference/qjson-schema.md +188 -0
  512. package/dist/studio-cli/src/.ai-kit/reference/quick-api.md +248 -0
  513. package/dist/studio-cli/src/.ai-kit/reference/styling-system.md +193 -0
  514. package/dist/studio-cli/src/.ai-kit/skills/figma-to-qjson/SKILL.md +116 -0
  515. package/dist/studio-cli/src/.ai-kit/skills/quick-qjson/SKILL.md +36 -0
  516. package/dist/studio-cli/src/.ai-kit/tools/README.md +42 -0
  517. package/dist/studio-cli/src/control/controlClient.js +119 -0
  518. package/dist/studio-cli/src/control/controlClient.js.map +1 -0
  519. package/dist/studio-cli/src/control/convertToBlock.js +70 -0
  520. package/dist/studio-cli/src/control/convertToBlock.js.map +1 -0
  521. package/dist/studio-cli/src/control/pickWorkspaceDir.js +105 -0
  522. package/dist/studio-cli/src/control/pickWorkspaceDir.js.map +1 -0
  523. package/dist/studio-cli/src/control/protocolHandler.js +60 -0
  524. package/dist/studio-cli/src/control/protocolHandler.js.map +1 -0
  525. package/dist/studio-cli/src/control/pull.js +135 -0
  526. package/dist/studio-cli/src/control/pull.js.map +1 -0
  527. package/dist/studio-cli/src/control/push.js +113 -0
  528. package/dist/studio-cli/src/control/push.js.map +1 -0
  529. package/dist/studio-cli/src/control/registerProtocol.js +251 -0
  530. package/dist/studio-cli/src/control/registerProtocol.js.map +1 -0
  531. package/dist/studio-cli/src/control/startWorking.js +70 -0
  532. package/dist/studio-cli/src/control/startWorking.js.map +1 -0
  533. package/dist/studio-cli/src/control/workspaceSetup.js +66 -0
  534. package/dist/studio-cli/src/control/workspaceSetup.js.map +1 -0
  535. package/dist/studio-cli/src/index.js +193 -0
  536. package/dist/studio-cli/src/index.js.map +1 -0
  537. package/dist/studio-cli/src/isolatedCommands/figmaPull.js +207 -0
  538. package/dist/studio-cli/src/isolatedCommands/figmaPull.js.map +1 -0
  539. package/dist/studio-cli/src/isolatedCommands/qjsonBuild.js +26 -0
  540. package/dist/studio-cli/src/isolatedCommands/qjsonBuild.js.map +1 -0
  541. package/dist/studio-cli/src/isolatedCommands/validateQjson.js +560 -0
  542. package/dist/studio-cli/src/isolatedCommands/validateQjson.js.map +1 -0
  543. package/dist/studio-cli/src/isolatedCommands/validateStyles.js +672 -0
  544. package/dist/studio-cli/src/isolatedCommands/validateStyles.js.map +1 -0
  545. package/dist/studio-cli/src/server/bridgeServer.js +817 -0
  546. package/dist/studio-cli/src/server/bridgeServer.js.map +1 -0
  547. package/dist/studio-cli/src/server/peer.js +119 -0
  548. package/dist/studio-cli/src/server/peer.js.map +1 -0
  549. package/dist/studio-cli/src/server/serverInfo.js +59 -0
  550. package/dist/studio-cli/src/server/serverInfo.js.map +1 -0
  551. package/dist/studio-cli/src/server/wsRaw.js +252 -0
  552. package/dist/studio-cli/src/server/wsRaw.js.map +1 -0
  553. package/dist/studio-cli/src/util/frontmatter.js +71 -0
  554. package/dist/studio-cli/src/util/frontmatter.js.map +1 -0
  555. package/dist/studio-cli/src/util/logger.js +28 -0
  556. package/dist/studio-cli/src/util/logger.js.map +1 -0
  557. package/dist/studio-cli/src/util/modelRef.js +38 -0
  558. package/dist/studio-cli/src/util/modelRef.js.map +1 -0
  559. package/dist/studio-cli/src/util/state.js +36 -0
  560. package/dist/studio-cli/src/util/state.js.map +1 -0
  561. package/dist/studio-cli/src/version.js +6 -0
  562. package/dist/studio-cli/src/version.js.map +1 -0
  563. package/dist/ui/src/common/promiseHelper.js +6 -0
  564. package/dist/ui/src/common/promiseHelper.js.map +1 -0
  565. package/dist/ui/src/domain/model/IObject.js +3 -0
  566. package/dist/ui/src/domain/model/IObject.js.map +1 -0
  567. package/dist/ui/src/domain/model/models.js +163 -0
  568. package/dist/ui/src/domain/model/models.js.map +1 -0
  569. package/package.json +32 -0
@@ -0,0 +1,65 @@
1
+ # 00 · QJSON Structure (start here) — legacy `cssClass` system
2
+
3
+ > ⚠️ **STOP — before applying any rule below, confirm which style system the target page is on.** Read its root-level `opt.V` (and whether its nodes carry an `S` object): **`opt.V >= 2.0` / has `S` → S system**; **`opt.V` missing or `< 2.0` → legacy**. The two systems are not interchangeable on a page. Unsure how to route? → [AGENT_GUIDE Step 0](../AGENT_GUIDE.md).
4
+ >
5
+ > **This file is the `legacy` track** (`opt.V` missing or `< 2.0`, where `S` does not render). Design is authored through `O.layout` (`dOpt` + compiled `class`) and CSS utility classes. On a new page / `opt.V >= 2.0` instead → [00-qjson-structure.md](00-qjson-structure.md). (A new page is always `S`, so legacy = an existing page you are editing.)
6
+
7
+ A `.qjson` file is a **JavaScript module** describing one UI page as a tree of components. You author `pJson` (the tree) and `lrids` (localization); the editor/compiler generates the compiled twins `cJson`/`clrids`.
8
+
9
+ ```javascript
10
+ let pjson = {
11
+ "pJson": [ /* component tree — you write this */ ],
12
+ "lrids": {}, // localization you write
13
+ "opt": {} // page options (QL default language, V version)
14
+ };
15
+ export default pjson
16
+ ```
17
+
18
+ Rules: an AI-authored file carries these **three** keys (`pJson`, `lrids`, `opt`); the file ends with `};` then `export default pjson`. The compiled twins `cJson`/`clrids` are **omitted entirely** — don't write them into a new file, and strip them from any downloaded file you edit (see "What you never author" below). Full envelope (incl. optional `description`, `files`, `namedViews`, `opt.QL/V`) is in [reference/qjson-schema-legacy.md](../reference/qjson-schema-legacy.md).
19
+
20
+ ## The component node — same six fields at every depth
21
+
22
+ ```json
23
+ {
24
+ "T": "ComponentType",
25
+ "P": { "ID": { "H": "myId", "T": "prop" } },
26
+ "E": {},
27
+ "C": {},
28
+ "O": { "cType": "slot" },
29
+ "_Editor": { "eID": "myId" }
30
+ }
31
+ ```
32
+
33
+ | Field | Holds | Detailed in |
34
+ |-------|-------|-------------|
35
+ | `T` | component type name | [reference/component-catalog-legacy.md](../reference/component-catalog-legacy.md) |
36
+ | `P` | props | [01-properties.md](01-properties.md) |
37
+ | `E` | events | [02-events-and-scripting.md](02-events-and-scripting.md) |
38
+ | `C` | children grouped by slot | [03-layout-and-slots-legacy.md](03-layout-and-slots-legacy.md) |
39
+ | `O` | options: `cType` (always authored) **and `layout`** (`dOpt`/`class`) — `layout` is where grid/flex/spacing design lives on a legacy page | [03-layout-and-slots-legacy.md](03-layout-and-slots-legacy.md) |
40
+ | `_Editor.eID` | equals `P.ID.H` when auto-generated, but **may differ** after a Studio rename — equality is *not* required (both must be present + unique) | this file |
41
+
42
+ `CP`, `D`, `SA` are advanced editor-managed fields you normally don't hand-author. **`S`/`SC` are the modern Style-tab fields and do NOT render on a legacy page — do not author them here.** Design instead through `O.layout` and the `class` prop — see [04-styling-legacy.md](04-styling-legacy.md). Introducing `S` on a legacy page silently breaks styling.
43
+
44
+ ## The ID rules
45
+ 1. Every component has `P.ID.H`, **unique** within the page.
46
+ 2. Every component has `_Editor.eID`, also **unique**.
47
+ 3. `P.ID.H` is the runtime/reference id (`components.<ID>`); `_Editor.eID` is the editor's stable internal id.
48
+
49
+ These two are **equal for auto-generated components** (both `EdtrComp_42`) but legitimately **differ** once the ID is renamed in Studio (e.g. `ID:"btnSave"`, `eID:"EdtrComp_42"`) — real files contain both cases, so a mismatch is **not** an error. When you hand-author a new component, the simplest valid choice is to set `eID` = `ID` (one unique value). Never reuse an `eID` or an `ID`.
50
+
51
+ ## Structure (editing an existing legacy page)
52
+ A legacy page already has its root and tree (real pages legitimately root on `VContainer`, `VAppBar`, `VDataTable`, etc.). You are editing that tree, not starting fresh — **keep the current root** and do **not** insert a `VContainer` root unless the user explicitly asks. The canonical grid, where present, is:
53
+
54
+ ```
55
+ pJson
56
+ ├─ Messaging (event hub; no UI)
57
+ ├─ [service component] (optional; only if the project uses one)
58
+ └─ <existing root> (VContainer / VAppBar / VDataTable / …)
59
+ └─ VRow → VCol → VCard → content (labels, buttons, tables, inputs, charts)
60
+ ```
61
+
62
+ For each node decide, in order: `T` → `P` → `E` → `C` → `O` (`cType` + `layout`) → copy ID into `_Editor.eID`. Mirror the page's existing conventions (token style, `class` usage). Reference legacy structures in [09-page-skeletons-legacy.md](09-page-skeletons-legacy.md) and the `examples/cssClass/` pages.
63
+
64
+ ## What you never author
65
+ `cJson` and `clrids` are **compiled output** (handler strings get wrapped in `╬…╩╩` sentinels). Author `pJson`/`lrids` only, and **leave the compiled twins out of the file entirely** — don't write them into a new page, and strip them if a downloaded file already has them. Studio/the compiler regenerates them on import — see [10-validation-and-sync-legacy.md](10-validation-and-sync-legacy.md).
@@ -0,0 +1,67 @@
1
+ # 00 · QJSON Structure (start here) — `S` system
2
+
3
+ > ⚠️ **STOP — before applying any rule below, confirm which style system the target page is on.** Read its root-level `opt.V` (and whether its nodes carry an `S` object): **`opt.V >= 2.0` / has `S` → S system**; **`opt.V` missing or `< 2.0` → legacy**. The two systems are not interchangeable on a page. Unsure how to route? → [AGENT_GUIDE Step 0](../AGENT_GUIDE.md).
4
+ >
5
+ > **This file is the `S` track** (new page, or `opt.V >= 2.0`). Design — visual **and** layout — is authored in each node's `S` object; `O.layout` is not authored here. On a **legacy** page instead → [00-qjson-structure-legacy.md](00-qjson-structure-legacy.md).
6
+
7
+ A `.qjson` file is a **JavaScript module** describing one UI page as a tree of components. You author `pJson` (the tree) and `lrids` (localization); the editor/compiler generates the compiled twins `cJson`/`clrids`.
8
+
9
+ ```javascript
10
+ let pjson = {
11
+ "pJson": [ /* component tree — you write this */ ],
12
+ "lrids": {}, // localization you write
13
+ "opt": { "V": 2.5 } // page options — a NEW page sets V to the current schema version (2.5); this marks it as S-system
14
+ };
15
+ export default pjson
16
+ ```
17
+
18
+ Rules: an AI-authored file carries these **three** keys (`pJson`, `lrids`, `opt`); the file ends with `};` then `export default pjson`. The compiled twins `cJson`/`clrids` are **omitted entirely** — don't write them into a new file, and strip them from any downloaded file you edit (see "What you never author" below). Full envelope (incl. optional `description`, `files`, `namedViews`, `opt.QL/V`) is in [reference/qjson-schema.md](../reference/qjson-schema.md).
19
+
20
+ ## The component node — same six fields at every depth
21
+
22
+ ```json
23
+ {
24
+ "T": "ComponentType",
25
+ "P": { "ID": { "H": "myId", "T": "prop" } },
26
+ "E": {},
27
+ "C": {},
28
+ "O": { "cType": "slot" },
29
+ "_Editor": { "eID": "myId" }
30
+ }
31
+ ```
32
+
33
+ | Field | Holds | Detailed in |
34
+ |-------|-------|-------------|
35
+ | `T` | component type name | [reference/component-catalog.md](../reference/component-catalog.md) |
36
+ | `P` | props | [01-properties.md](01-properties.md) |
37
+ | `E` | events | [02-events-and-scripting.md](02-events-and-scripting.md) |
38
+ | `C` | children grouped by slot | [03-layout-and-slots.md](03-layout-and-slots.md) |
39
+ | `O` | options: `cType` (always authored). The `layout` sub-field (`dOpt`/`class`) is the legacy mechanism — **not authored here**; grid/flex/spacing go in `S` | [03-layout-and-slots.md](03-layout-and-slots.md) |
40
+ | `_Editor.eID` | equals `P.ID.H` when auto-generated, but **may differ** after a Studio rename — equality is *not* required (both must be present + unique) | this file |
41
+
42
+ `CP`, `D`, `SA` are advanced editor-managed fields you normally don't hand-author. **`S`/`SC` are the exception: you must hand-author them** — see [AGENT_GUIDE-s.md](../AGENT_GUIDE-s.md) rule S3 and [04-styling.md](04-styling.md). A component left without an `S` (when it carries visual or layout-flow intent) is the most common authoring miss, not an optional editor step.
43
+
44
+ ## The ID rules
45
+ 1. Every component has `P.ID.H`, **unique** within the page.
46
+ 2. Every component has `_Editor.eID`, also **unique**.
47
+ 3. `P.ID.H` is the runtime/reference id (`components.<ID>`); `_Editor.eID` is the editor's stable internal id.
48
+
49
+ These two are **equal for auto-generated components** (both `EdtrComp_42`) but legitimately **differ** once the ID is renamed in Studio (e.g. `ID:"btnSave"`, `eID:"EdtrComp_42"`) — real files contain both cases, so a mismatch is **not** an error. When you hand-author a new component, the simplest valid choice is to set `eID` = `ID` (one unique value). Never reuse an `eID` or an `ID`.
50
+
51
+ ## Build order (top-down)
52
+ ```
53
+ pJson
54
+ ├─ Messaging (event hub; no UI)
55
+ ├─ [service component] (optional; only if the project uses one)
56
+ └─ VContainer (layout root)
57
+ └─ VRow → VCol → VCard → content (labels, buttons, tables, inputs, charts)
58
+ ```
59
+
60
+ For each node decide, in order: `T` → `P` → `E` → `C` → `O` → copy ID into `_Editor.eID`.
61
+
62
+ > **New page: the `VContainer` layout root is required, not optional.** Wrap all UI/visual content in a single top-level `VContainer`; the only non-`VContainer` top-level `pJson` siblings allowed are `Messaging` (event hub) and an optional service component. This applies to **new pages only** — when editing an existing page, keep its current root and do **not** insert a `VContainer` unless the user explicitly asks (see [AGENT_GUIDE-s.md](../AGENT_GUIDE-s.md) rule S4).
63
+
64
+ Copy a full starting skeleton from [09-page-skeletons.md](09-page-skeletons.md).
65
+
66
+ ## What you never author
67
+ `cJson` and `clrids` are **compiled output** (handler strings get wrapped in `╬…╩╩` sentinels). Author `pJson`/`lrids` only, and **leave the compiled twins out of the file entirely** — don't write them into a new page, and strip them if a downloaded file already has them. Studio/the compiler regenerates them on import — see [10-validation-and-sync.md](10-validation-and-sync.md).
@@ -0,0 +1,77 @@
1
+ # 01 · Properties (`P`)
2
+
3
+ Each prop is `{ "H": value/expression, "T": kind, "HL": language? }`.
4
+
5
+ ```json
6
+ "P": {
7
+ "ID": { "H": "btnSave", "T": "prop" },
8
+ "color": { "H": "'primary'", "T": "prop" },
9
+ "visible": { "H": "true", "T": "prop" },
10
+ "class": { "H": "'rounded-lg'", "T": "class" },
11
+ "items": { "H": "[{text='A', value=1}]", "T": "prop", "HL": "QS" }
12
+ }
13
+ ```
14
+
15
+ ## `T` — prop kind (PType)
16
+ | `T` | Applied as | Use for |
17
+ |-----|-----------|---------|
18
+ | `"prop"` | Vue prop | the default case incl. `QLabel.text`, `items`, `color`, `visible` |
19
+ | `"class"` | CSS class | `class` |
20
+ | `"text"` | slot text content | `VIcon` icon name; raw text — `H` is still a QScript string, so single-quote it: `"'mdi-home'"` |
21
+ | `"attr"` | DOM attribute | `data-*`, `aria-*`, input `format` masks |
22
+
23
+ ## `HL` — language (defaults to `QS`)
24
+ `HL` is optional and **defaults to QScript**. Set `"HL": "TS"` only if a prop expression needs TypeScript (rare — props are usually QScript). The vast majority of real props omit `HL` and are therefore QScript.
25
+
26
+ ## Quoting inside `H`
27
+ | Value | Write | Example |
28
+ |-------|-------|---------|
29
+ | string | single-quoted | `"'primary'"` |
30
+ | number / bool | bare | `"10"`, `"true"` |
31
+ | expression / binding | bare | `"item.name"`, `"data.title"`, `"components.x.qValue"` |
32
+ | array | bracketed | `"[1,2,3]"`, `"['Jan','Feb']"` |
33
+ | object array (QScript) | `=` keys | `"[{text='A', value=1}]"` |
34
+
35
+ Apostrophe inside a QScript string → double it: `'Premium''u Keşfet'`.
36
+
37
+ ## QScript expression power (corrected vs older docs)
38
+ Prop `H` values are **QScript expressions** and **can include conditionals**. Real files do this routinely:
39
+
40
+ ```json
41
+ "color": {
42
+ "H": "if(data.statusColor == 1){'red'}else if(data.statusColor == 2){'orange'}else{'blue'}",
43
+ "T": "prop"
44
+ }
45
+ ```
46
+ The `if/else` block returns the last evaluated value. (Older community docs claimed conditionals were forbidden in props — that is **incorrect**; the framework supports them.)
47
+
48
+ Available bare in QScript props: `LR(...)`, `components.*`, `data.*` (in dynamic templates), `item.*` (in scoped slots), `Math`, `Date`, `Number`, `JSON`, `string`, `regex`, `typeOf`. Framework namespaces drop the `quick.` prefix: `store.get('x')`, `Quick.go(...)`, `MM.trigger(...)`. See [reference/quick-api.md](../reference/quick-api.md) for the full list.
49
+
50
+ > **QScript ≠ JS in two key ways:** (1) `||` returns a boolean, not a fallback value — use `if(a){a}else{b}` for a conditional fallback. (2) Property access is always null-safe (`a.b.c` won't throw if `a` is undefined), so `|| ''` guards are both wrong and unnecessary.
51
+
52
+ ### When to still pre-compute instead of expression-in-prop
53
+ Conditionals work, but for **heavy** per-row formatting (date parsing, concatenation, lookups across rows) it's cleaner and faster to pre-format in the service/load callback and read a plain field in the prop:
54
+
55
+ ```typescript
56
+ rows.forEach(r => { r.displayDate = quick.Quick.toShortDate(quick.Quick.toDate(r.date)); });
57
+ components.tbl.items = rows;
58
+ ```
59
+ ```json
60
+ "text": { "H": "item.displayDate", "T": "prop" }
61
+ ```
62
+ This keeps prop expressions simple and avoids repeating logic per render.
63
+
64
+ ## Localization in props
65
+ Use bare `LR('key')` (never `quick.LR` in a prop):
66
+ ```json
67
+ "text": { "H": "LR('save')", "T": "prop" }
68
+ ```
69
+ See [07-localization.md](07-localization.md).
70
+
71
+ ## Special Quick props
72
+ `ID` (required, unique), `visible`, `Render`, `qValue`, `class` — see your track's component catalog §5 ([S](../reference/component-catalog.md) / [legacy](../reference/component-catalog-legacy.md)). Use `qValue` for input values and to open/close dialogs.
73
+
74
+ ## The two text gotchas
75
+ - `QLabel.text` → `T: "prop"`.
76
+ - `VIcon` icon name → `text` with `T: "text"`. The `H` value is still a QScript string — always single-quote it: `"H": "'mdi-home'"`, never bare `"H": "mdi-home"`.
77
+ (Both verified in runtime + real files; see your track's catalog §6.)
@@ -0,0 +1,79 @@
1
+ # 02 · Events & Scripting (`E`)
2
+
3
+ The `E` block holds behavior. Each event is `{ "H": code, "P"?: params, "HL"?: lang, "C"?, "I"?, "PE"?, "EV"?, "TO"? }`.
4
+
5
+ ```json
6
+ "E": {
7
+ "click": {
8
+ "H": "quick.EM.trace('clicked');\r\n",
9
+ "P": "mouseEvent:unknown | undefined",
10
+ "HL": "TS"
11
+ },
12
+ "fetchData": {
13
+ "H": "let req = <any>{};\r\nreq.url='/api/items';\r\nreq.http='GET';\r\nreq.responseField='items';\r\nreq.onSuccess='onItems';\r\nquick.Request.async(req);\r\n",
14
+ "C": true, "HL": "TS"
15
+ }
16
+ }
17
+ ```
18
+
19
+ Event flags — runtime behavior (deep detail in [../reference/events-system.md](../reference/events-system.md)):
20
+ - `C` = **custom**: triggered via `quick.MM.trigger`; the trigger payload is the dataSource (array→first element, object→whole), not name-mapped.
21
+ - `I` = **immediate**: runs synchronously during render instead of being deferred to end-of-render.
22
+ - `PE` = **property event**: injected into the component as a callback prop (chart `labelFormatter`/`tooltipLabel`).
23
+ - `EV` = **externally visible**: exposed to a parent page as `quick.parent.events.<name>`.
24
+ - `TO` = **post-render order**: deferred handlers run sorted by `TO` descending (higher fires first).
25
+ - `HL` = handler language. **Event handlers must use `"HL": "TS"`.** `QS` is for properties/bindings (`P`), not the `E` block.
26
+
27
+ > The whole events/scripting model (lifecycle internals, custom-event params, property/external events, the `quick.return` exception mechanism, compilation) is in **[../reference/events-system.md](../reference/events-system.md)**.
28
+
29
+ ## Language: events use TS; props may use QS
30
+ **For every event handler (`E`/`D`), write `"HL": "TS"`.** Do not author event handlers as `QS`, `JS`, `FL`, or `GUI`.
31
+
32
+ **Properties and bindings (`P`) may use `"HL": "QS"`**; QS is their default and is a good fit for short expressions. This property rule does not apply to event handlers.
33
+
34
+ Line breaks in `H` are `\r\n`.
35
+
36
+ ## TypeScript handler rules (hard)
37
+ 1. **Never native `return`** — use `quick.return(value)` / `quick.return`.
38
+ 2. End statements with `;`. Close object literals with `};` before the next statement (a missing `;` after an object literal makes TS parse the next line as a call → "expression is not callable").
39
+ 3. **No browser globals**: `window`, `document`, `console`, `setTimeout`, `setInterval`. Use:
40
+ - `quick.EM.trace(...)` instead of `console.log`
41
+ - `quick.MM.delay('evt', { delayTime: 500 })` instead of `setTimeout`
42
+ - `quick.Quick.download(...)` instead of anchor downloads
43
+ 4. Reference framework APIs as `quick.X` (see [reference/quick-api.md](../reference/quick-api.md)).
44
+
45
+ > In **QS properties/bindings**, drop `quick.`: write `store.get('x')`, `MM.trigger('evt')`, `Quick.go(...)`. The `quick.` prefix exists only in TS.
46
+
47
+ > Note: some real files use `debugger;`/`setTimeout` in experimental editor pages. Don't copy those — prefer the Quick APIs for portable, compilable handlers.
48
+
49
+ ## Parameters (`P`) and declaring data
50
+ - Framework/native event params → declare in `P`: `"P": "number:number"`, `"P": "index:any,row:any"`, `"P": "serviceResponse:any"`. Use the name directly in `H`.
51
+ - Trigger-payload fields (passed via `quick.MM.trigger('evt', [{...}])`) are declared inside `H`.
52
+ - Do **not** declare the same name both in `P` and inside `H` (duplicate identifier).
53
+
54
+ ## Page lifecycle (on `Messaging`)
55
+ | Hook | When | Typical use |
56
+ |------|------|-------------|
57
+ | `PreRender` | before render (often `"I": true`) | init store, trigger first fetch |
58
+ | `EndRender` | after render | access/set components |
59
+ | `PostRender` | after prioritized events (`TO` orders them) | |
60
+ | `Restored` | on navigating back | refresh |
61
+
62
+ > ⚠️ **`PreRender` runs before components exist** — `components.*` is not accessible. Write to `store` in `PreRender` and read from it in prop expressions instead: `store.get('key')`. Use `EndRender` or a custom event if you need to set component props/values after render.
63
+
64
+ Keep initialization in **one** hook to avoid duplicate fetches. Custom events live on `Messaging` with `"C": true`, called via `quick.MM.trigger`.
65
+
66
+ ## The `quick.*` API
67
+ Everything you can call (network, store, alerts, navigation, validation, dynamic components, dates/money, crypto, …) is documented authoritatively in **[reference/quick-api.md](../reference/quick-api.md)**. Highlights:
68
+
69
+ ```typescript
70
+ components.myField.qValue = 'x'; // read/write component value
71
+ quick.store.set('key', v); quick.store.get('key'); // page store ('#'=bag,'$'=global,'&'=shared)
72
+ quick.MM.trigger('evt', [{ p: 1 }]); // custom event
73
+ quick.Quick.alert({ title:'T', text:'msg', category:'Info', actionButtons:[{name:'OK', type:'Confirm'}] });
74
+ quick.Quick.go('<<qjson:UNIQUE-ID>>'); // navigate
75
+ quick.return(value); // return from handler
76
+ ```
77
+
78
+ ## Service calls in one line of guidance
79
+ Use `quick.Request.async({ url, http, data, responseField, onSuccess, onFail, blockRender })` and read the result in the `onSuccess` event as `response.<responseField>`. Full patterns (incl. project ServiceCaller convention) in [06-services.md](06-services.md).
@@ -0,0 +1,72 @@
1
+ # 03 · Layout & Slots (`C` and `O`) — legacy `cssClass` system
2
+
3
+ > ⚠️ **STOP — before applying any rule below, confirm which style system the target page is on.** Read its root-level `opt.V` (and whether its nodes carry an `S` object): **`opt.V >= 2.0` / has `S` → S system**; **`opt.V` missing or `< 2.0` → legacy**. The two systems are not interchangeable on a page. Unsure how to route? → [AGENT_GUIDE Step 0](../AGENT_GUIDE.md).
4
+ >
5
+ > **This file is the `legacy` track.** Grid/flex/spacing are authored through `O.layout` (`dOpt` + compiled `class`); how-to: [04-styling-legacy.md](04-styling-legacy.md), grammar: [../reference/layout-system.md](../reference/layout-system.md). On a new page / `opt.V >= 2.0` instead → [03-layout-and-slots.md](03-layout-and-slots.md).
6
+
7
+ ## Children (`C`) — grouped by slot
8
+
9
+ ```json
10
+ "C": {
11
+ "default": { "c": [ /* children */ ], "cType": "slot" },
12
+ "item.actions": { "c": [ /* per-row cells */ ], "cType": "scopedSlot" }
13
+ }
14
+ ```
15
+
16
+ `cType` (from `CType` enum):
17
+ | value | meaning |
18
+ |-------|---------|
19
+ | `"slot"` | normal named slot (most visible UI) |
20
+ | `"child"` | structural child (`Messaging`, service component, `Ghost`) |
21
+ | `"scopedSlot"` | per-item callback slot — `item.<field>` is available in child bindings (e.g. `VDataTable` `item.<col>`) |
22
+
23
+ The slot **key** is the slot name; `default` is the main slot. Leaves use `"C": {}`.
24
+
25
+ ## Options (`O`) — cType + layout
26
+
27
+ ```json
28
+ "O": {
29
+ "cType": "slot",
30
+ "layout": {
31
+ "dOpt": { "xs": ["d:d-flex","fd:flex-column","c:col-6","sp:pa-4"] },
32
+ "class": "d-flex flex-column col-6 pa-4"
33
+ }
34
+ }
35
+ ```
36
+
37
+ `O.cType` mirrors the node's slot context and is always authored. `O.layout` (`dOpt` + compiled `class`) is the **layout mechanism on a legacy page** — grid width, flex direction/align/justify, and spacing. `dOpt` holds prefixed tokens per breakpoint; `class` is the compiled string the runtime applies, and it must stay **in sync** with `dOpt` (compilation rule: `xs` tokens as-is, `sm/md/lg/xl` tokens infix the breakpoint after the first `-`). Full prefix grammar + the `dOpt → class` algorithm: [../reference/layout-system.md](../reference/layout-system.md); authoring flow: [04-styling-legacy.md](04-styling-legacy.md). (Do **not** author the `S` object here — it won't render on `V < 2`.)
38
+
39
+ Authoritative breakpoint device ranges (kept in sync with the identical table in [../reference/layout-system.md](../reference/layout-system.md) §4 — update both):
40
+
41
+ | Key | Device | Range |
42
+ |-----|--------|-------|
43
+ | `xs` | Mobile | 0–600px |
44
+ | `sm` | Tablet | 600–960px |
45
+ | `md` | Laptop | 960–1264px |
46
+ | `lg` | Desktop | 1264–1904px |
47
+ | `xl` | TV | 1904px+ |
48
+
49
+ `dOpt` is keyed by **single** breakpoints (`xs`, `sm`, …); `xs` is the base and larger keys override from their min width up.
50
+
51
+ ## The grid: VContainer → VRow → VCol
52
+ ```
53
+ VContainer (class "container container--fluid")
54
+ └─ VRow (12 columns, default align-items: stretch)
55
+ └─ VCol (width via c:col-N)
56
+ └─ VCard / content
57
+ ```
58
+
59
+ ### Containment rules (editor-enforced placement)
60
+ The Studio editor enforces these on drag-drop (source: component extensions `acceptableParentComps`/`acceptableChildComps`; official `layout.md`). They're best practice — runtime/Vuetify is lenient, but **author to these** so your page round-trips cleanly:
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
+ - **`VRow` should contain only `VCol`** children — put content inside a `VCol`, not directly in the `VRow`.
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.
65
+ - Canonical wrapper for a page: `VContainer > VRow > VCol > VCard > content`.
66
+
67
+ Follow the editor's placement rules. Machine-readable rules: [../reference/component-index.json](../reference/component-index.json) `containmentRules`.
68
+
69
+ **Width, stacking, equal-height cards.** Set a `VCol`'s width with **`c:col-N`** (1–12) in its `O.layout.dOpt` + the synced `col-N` class. `VCol` is itself a flex container whose direction is **not** column unless you set it — left unset it lays children out as a row, so two components dropped straight into a `VCol` render side-by-side instead of stacked; fix by adding **`fd:flex-column`** to that `VCol`'s `dOpt` (+ synced `flex-column` class). Equal-height cards: `d-flex` on the `VCol` + `flex-grow-1 d-flex flex-column` on the card. Worked examples: [04-styling-legacy.md](04-styling-legacy.md).
70
+
71
+ ## Scoped slots in tables
72
+ Custom cells use a `C` key `item.<columnValue>` with `cType:"scopedSlot"`. Inside it, `item.<field>` reads the row; for `VDataTable.click:row` the row arrives as the `index` param (`"P":"index:any,row:any"`). See [05-components.md](05-components.md).
@@ -0,0 +1,64 @@
1
+ # 03 · Layout & Slots (`C` and `O`) — `S` system
2
+
3
+ > ⚠️ **STOP — before applying any rule below, confirm which style system the target page is on.** Read its root-level `opt.V` (and whether its nodes carry an `S` object): **`opt.V >= 2.0` / has `S` → S system**; **`opt.V` missing or `< 2.0` → legacy**. The two systems are not interchangeable on a page. Unsure how to route? → [AGENT_GUIDE Step 0](../AGENT_GUIDE.md).
4
+ >
5
+ > **This file is the `S` track.** Grid width, flex direction/align/justify, and spacing are authored as `S` params (how-to: [04-styling.md](04-styling.md)); `O.layout` is not authored. On a **legacy** page instead → [03-layout-and-slots-legacy.md](03-layout-and-slots-legacy.md).
6
+
7
+ ## Children (`C`) — grouped by slot
8
+
9
+ ```json
10
+ "C": {
11
+ "default": { "c": [ /* children */ ], "cType": "slot" },
12
+ "item.actions": { "c": [ /* per-row cells */ ], "cType": "scopedSlot" }
13
+ }
14
+ ```
15
+
16
+ `cType` (from `CType` enum):
17
+ | value | meaning |
18
+ |-------|---------|
19
+ | `"slot"` | normal named slot (most visible UI) |
20
+ | `"child"` | structural child (`Messaging`, service component, `Ghost`) |
21
+ | `"scopedSlot"` | per-item callback slot — `item.<field>` is available in child bindings (e.g. `VDataTable` `item.<col>`) |
22
+
23
+ The slot **key** is the slot name; `default` is the main slot. Leaves use `"C": {}`.
24
+
25
+ ## Options (`O`) — cType only
26
+
27
+ ```json
28
+ "O": { "cType": "slot" }
29
+ ```
30
+
31
+ `O.cType` mirrors the node's slot context and is always authored. Do **not** author `O.layout` (`dOpt`/`class`) here — that is the legacy mechanism; on an `S`-system page grid width, flex direction, align, justify, and spacing all go in `S` instead ([04-styling.md](04-styling.md)).
32
+
33
+ Authoritative breakpoint device ranges (they're the boundaries `S` resolution ranges like `"xs-xl"`/`"md-xl"` are built from; kept in sync with the identical table in [../reference/styling-system.md](../reference/styling-system.md) §8 — update both):
34
+
35
+ | Key | Device | Range |
36
+ |-----|--------|-------|
37
+ | `xs` | Mobile | 0–600px |
38
+ | `sm` | Tablet | 600–960px |
39
+ | `md` | Laptop | 960–1264px |
40
+ | `lg` | Desktop | 1264–1904px |
41
+ | `xl` | TV | 1904px+ |
42
+
43
+ ## The grid: VContainer → VRow → VCol
44
+ ```
45
+ VContainer (class "container container--fluid")
46
+ └─ VRow (12 columns, default align-items: stretch)
47
+ └─ VCol (width via S.col)
48
+ └─ VCard / content
49
+ ```
50
+
51
+ ### Containment rules (editor-enforced placement)
52
+ The Studio editor enforces these on drag-drop (source: component extensions `acceptableParentComps`/`acceptableChildComps`; official `layout.md`). They're best practice — runtime/Vuetify is lenient, but **author to these** so your page round-trips cleanly:
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
+ - **`VRow` should contain only `VCol`** children — put content inside a `VCol`, not directly in the `VRow`.
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.
57
+ - Canonical wrapper for a page: `VContainer > VRow > VCol > VCard > content`.
58
+
59
+ Follow the editor's placement rules. Machine-readable rules: [../reference/component-index.json](../reference/component-index.json) `containmentRules`.
60
+
61
+ **Width, stacking, equal-height cards.** Set a `VCol`'s width with **`S.col`** (1–12, range-keyed, e.g. `"xs-xl": {"col":"3"}`). `VCol` is itself a flex container whose direction is **not** column unless you set it — left unset it lays children out as a row, so two components dropped straight into a `VCol` render side-by-side instead of stacked; fix with **`S.flexDirection: "column"`** on that `VCol`. Worked examples (stacked label/value, equal-height cards) + the full param list: [04-styling.md](04-styling.md).
62
+
63
+ ## Scoped slots in tables
64
+ Custom cells use a `C` key `item.<columnValue>` with `cType:"scopedSlot"`. Inside it, `item.<field>` reads the row; for `VDataTable.click:row` the row arrives as the `index` param (`"P":"index:any,row:any"`). See [05-components.md](05-components.md).
@@ -0,0 +1,73 @@
1
+ # 04b · Legacy styling — the `cssClass` system (`O.layout` / CSS utility classes)
2
+
3
+ > ⚠️ **STOP — before applying any rule below, confirm which style system the target page is on.** Read its root-level `opt.V` (and whether its nodes carry an `S` object): **`opt.V >= 2.0` / has `S` → S system**; **`opt.V` missing or `< 2.0` → legacy**. The two systems are not interchangeable on a page. Unsure how to route? → [AGENT_GUIDE Step 0](../AGENT_GUIDE.md).
4
+ >
5
+ > **This file is the `legacy` track.** Style through `O.layout` (`dOpt` tokens + compiled `class`) and CSS utility classes, exactly as the page already does; never introduce `S` (it won't render on `V < 2`). On a new page / `opt.V >= 2.0` instead → [04-styling.md](04-styling.md). Reference examples from [../examples/cssClass/](../examples/cssClass/) only — the `S` examples in `examples/style/` will mislead you here.
6
+
7
+ ## When you are here
8
+
9
+ You have opened a production page that predates the `S` system and needs a small change (the common case: "add a column", "nudge spacing", "change a text color"). Do **not** migrate it to `S` as a side effect of an edit — `S` won't render, so it would silently break the styling. Match the mechanism the page already uses. (A deliberate, full migration to `S` is a separate, opt-in task — see the `qjson-legacy-migrator` agent — not something to do inline.)
10
+
11
+ ## The two legacy mechanisms
12
+
13
+ ### 1. `O.layout` — the per-node Layout box (`dOpt` + compiled `class`)
14
+
15
+ Layout intent (grid width, flex direction/align/justify, spacing) is expressed as prefixed Vuetify utility tokens in a node's `O.layout.dOpt`, keyed by breakpoint, and mirrored into a compiled `O.layout.class` string that the runtime actually applies.
16
+
17
+ ```json
18
+ "O": {
19
+ "cType": "slot",
20
+ "layout": {
21
+ "dOpt": { "xs": ["d:d-flex", "fd:flex-column", "c:col-12", "a:align-center"],
22
+ "md": ["fd:flex-row", "c:col-6"] },
23
+ "class": "d-flex flex-column col-12 align-center flex-md-row col-md-6"
24
+ }
25
+ }
26
+ ```
27
+
28
+ **`dOpt` and `class` must stay in sync** — the runtime applies `class`, so after any `dOpt` change you must recompile the `class` string by the exact rule below. The full prefix grammar (`d, fd, a, j, w, c, sp, tt, tc, te, fi`), the breakpoint table, the `dOpt → class` compilation algorithm (xs as-is; `sm/md/lg/xl` infix the breakpoint after the first `-`), and the containment rules live in **[../reference/layout-system.md](../reference/layout-system.md)** — read that before editing any `O.layout`.
29
+
30
+ Quick reference (see layout-system.md for the complete set):
31
+
32
+ | Prefix | Meaning | Example token → class |
33
+ | --- | --- | --- |
34
+ | `d:` | display | `d:d-flex` → `d-flex` |
35
+ | `fd:` | flex direction | `fd:flex-column` → `flex-column` |
36
+ | `a:` | align-items | `a:align-center` → `align-center` |
37
+ | `j:` | justify-content | `j:justify-center` → `justify-center` |
38
+ | `c:` | grid column (1–12, `auto`, `d-none`) | `c:col-6` → `col-6` |
39
+ | `sp:` | spacing (`N × 4px`) | `sp:pa-4` → `pa-4` (16px) |
40
+ | `tt:`/`tc:`/`te:`/`fi:` | typography / text-color / weight / italic | `tc:primary--text` → `primary--text` |
41
+
42
+ Compilation gotcha: a non-`xs` breakpoint token infixes the breakpoint — `fd:flex-row` under `md` → `flex-md-row`, `c:col-6` under `md` → `col-md-6`, `sp:pa-4` under `md` → `pa-md-4`. Get this wrong and the class won't match the `dOpt`.
43
+
44
+ ### 2. CSS utility classes on the `class` prop
45
+
46
+ Direct Vuetify utility classes on a node's `class` prop (Web-only). On a legacy page these are used freely for design — typography, color, spacing, elevation, rounding:
47
+
48
+ ```json
49
+ "class": { "H": "'text-center elevation-2 text-h5 primary--text'", "T": "class" }
50
+ ```
51
+
52
+ Common utilities: typography `text-h1`…`text-h6`, `text-body-1/2`, `text-caption` + `font-weight-bold|medium|regular`; color `primary`/`primary--text`, `secondary--text`, `success--text`, `error--text`, `white--text`; spacing `pa-N`/`px-N`/`mt-N`… (`N × 4px`); appearance `elevation-0…24`, `rounded-lg`, `transparent`; alignment `d-flex`, `justify-center`, `align-center`. The `class` → `S` mapping table in [../reference/mapping-S-vuetify-class.md](../reference/mapping-S-vuetify-class.md) documents each token (useful here for understanding a token, and later if the page is ever migrated to `S`).
53
+
54
+ **Gotcha — `VCol` does not auto-stack its children (see [03-layout-and-slots-legacy.md](03-layout-and-slots-legacy.md)).** Left without an explicit direction, a `VCol` lays children out as a row, so two components dropped straight into it render side-by-side instead of stacked. Fix here: add `fd:flex-column` to that `VCol`'s `O.layout.dOpt` (and recompile the synced `class`, e.g. `flex-column`). Don't leave a multi-child `VCol` without an explicit direction.
55
+
56
+ **Equal-height cards in a row:** `VCard` has no flex `S`/`dOpt` mechanism of its own, so add `d-flex` to the `VCol`'s `class` and `flex-grow-1 d-flex flex-column` to the card's `class` (the `VRow`'s default `align-items:stretch` already gives the `VCol` full height).
57
+
58
+ ## Rules for editing a legacy page
59
+
60
+ 1. **Do not introduce `S`.** It won't render on `V<2`. Keep design in `O.layout` / `class`.
61
+ 2. **Keep `O.layout.dOpt` and `O.layout.class` in sync** — recompile `class` per the algorithm in [../reference/layout-system.md](../reference/layout-system.md) after any `dOpt` change.
62
+ 3. **Respect containment**: `VCol` only inside `VRow`; `VRow` holds only `VCol`; canonical wrapper `VContainer > VRow > VCol > content`.
63
+ 4. **Omit `cJson`/`clrids` entirely** — author `pJson`/`lrids` only; never write the compiled twins into a new file, and strip them from any downloaded file you edit. Studio/the compiler regenerates them on import.
64
+ 5. **Match the page's conventions** — mirror sibling nodes' token style, ID style, and class usage. Reference [../examples/cssClass/](../examples/cssClass/) for real legacy patterns.
65
+ 6. **Compile before finishing**: `studio buildQjson <file>` and fix all errors.
66
+
67
+ ## Migrating a legacy page to `S` (separate task)
68
+
69
+ If the goal is genuinely to modernize a page (not just edit it), that means moving it onto the `S` system — a controlled, per-file conversion handled by the `qjson-legacy-migrator` agent ([../agents/qjson-legacy-migrator.md](../agents/qjson-legacy-migrator.md)), not an incidental edit. The `dOpt`/`class` → `S` conversion table it uses is [../reference/mapping-S-vuetify-class.md](../reference/mapping-S-vuetify-class.md). A migrated page only styles correctly once its runtime/`opt.V` supports `S`.
70
+
71
+ ## Pre-sync checklist
72
+
73
+ The full pre-sync checklist (shared core + the legacy style checks — no `S`, `dOpt`↔`class` in sync, `class` used freely) is in [10-validation-and-sync-legacy.md](10-validation-and-sync-legacy.md). Run it before syncing.