@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,177 @@
1
+ # 04 · Styling — the `S` (Style) 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.** `S` does not render on a legacy page — on a **legacy** page instead → [04-styling-legacy.md](04-styling-legacy.md). Reference examples from [../examples/style/](../examples/style/) only.
6
+
7
+ > The earlier community docs treated styling as "CSS utility classes only" — that is just one mechanism, and **CSS works on Web only**. For the exhaustive schema (every `S` param, editor types, defaults, `SC` inheritance, cross-platform application) see **[../reference/styling-system.md](../reference/styling-system.md)**; the per-component supported `S` params + defaults are in **[../reference/component-styles.json](../reference/component-styles.json)** — the only source to consult when authoring `S`.
8
+
9
+ > **Why not CSS:** Quick renders on Web, Android, and iOS. CSS exists only on Web. The Style tab serializes into the node's platform-neutral **`S`** object, which each platform applies natively (Web → CSS `@media`+`[q_UID]`; Mobile → flattened to the device's breakpoint range, `col`→flex-basis, via the native bridge). So for cross-platform styling you must use `S`, not a CSS Style File.
10
+
11
+ ## The styling mechanisms — in strict priority order
12
+
13
+ 1. **`S` (Style System)** — per-component design: size, spacing, grid column, flex direction/align/justify, colors, fonts, borders, shadows. This is now the mechanism for *everything* the Style tab does — layout included. Try this first, always.
14
+ 2. **`class` prop, Web only, last resort** — if a component's `S` schema (check [../reference/component-styles.json](../reference/component-styles.json)) genuinely has no param for what you need, on **Web** you may set the component's own `class` prop directly. This is a fallback for the rare gap, not a parallel mechanism — don't reach for it before confirming `S` can't do it.
15
+ 3. **Style File (CSS), Web only, true last resort** — project-level CSS (`body .v-application …`) and `@font-face`. Only for cross-cutting rules neither `S` nor a component's `class` prop can express (e.g. a pseudo-selector, a project-wide rule, custom fonts).
16
+
17
+ **`O.layout` (`dOpt`/`class`) is not part of this system** — it is the pre-`S` legacy mechanism. Never author it on an `S`-system page; everything it used to carry (grid width, flex direction, align, justify, spacing) is a `S` param here.
18
+
19
+ **There is no Mobile fallback past `S`.** `class`/CSS are Web-only (CSS doesn't exist on native; the `class` prop has no native-bridge equivalent either). If a design needs something `S` can't express and the page targets Mobile, restructure with an `S`-capable component instead of reaching for `class`/CSS — there's nothing for the Mobile renderer to apply it from.
20
+
21
+ Theme colors and fonts defined in **Themes Settings** appear as selectable options inside the Style tab (i.e. as values you put in `S`, not separately).
22
+
23
+ ## A) Style tab → the `S` object
24
+
25
+ The Style tab writes a node-level **`S`** object keyed by **resolution range**, each holding CSS-like camelCase properties. Example from a real file:
26
+
27
+ ```json
28
+ "S": {
29
+ "xs-xl": {
30
+ "marginTop": "", "marginRight": "", "marginBottom": "", "marginLeft": "",
31
+ "paddingTop": "12px", "paddingRight": "12px", "paddingBottom": "12px", "paddingLeft": "12px",
32
+ "width": "", "height": "",
33
+ "fontColor": "#000000", "fontFamily": "Roboto", "fontSize": "16px",
34
+ "fontStyle": "normal", "fontWeight": "400", "lineHeight": "20px", "textAlign": "left",
35
+ "backgroundColor": "#FFFFFF", "color": "", "iconColor": "",
36
+ "boxShadow": "", "boxSizing": "",
37
+ "borderColor": "", "borderWidth": "", "borderTopStyle": "", "borderRightStyle": ""
38
+ }
39
+ }
40
+ ```
41
+
42
+ The Style tab is organized into boxes that map to these `S` keys:
43
+
44
+ | Style-tab box | `S` properties it writes |
45
+ |---------------|--------------------------|
46
+ | **Size** | `width`, `height` (px / % / em / rem) |
47
+ | **Text** | `fontColor`, `fontFamily`, `fontSize`, `fontStyle`, `fontWeight`, `lineHeight`, `textAlign` (+ `combinedFont`/`ThemeFont` when a theme/custom font is chosen) |
48
+ | **Appearance** | `backgroundColor`, `color`, `iconColor` (color picker: hex / RGB / HSL); `border*` (`borderColor`, `borderWidth`, `border<side>Style`, `borderRadius`, `boxSizing`); `boxShadow` |
49
+ | **Layout box** | grid column, direction, align, justify, margin, padding — written as `S` params: `col`, `flexDirection`, `alignItems`, `justifyContent`, `marginTop/Right/Bottom/Left`, `paddingTop/Right/Bottom/Left`. Which of these a given component actually supports varies — check that `T`'s block in [../reference/component-styles.json](../reference/component-styles.json) (e.g. only `VCol` carries `flexDirection`/`alignItems`/`justifyContent`/`col`; most containers carry the margin/padding set). |
50
+
51
+ Notes for authoring `S` by hand:
52
+ - Keys are **resolution ranges**, default full-range `"xs-xl"`. A narrower range (e.g. `"xs-sm"`, `"md-xl"`) targets specific devices — this is "Layout Multiplexing" (see responsive table below). Empty string `""` means "unset" (the Style-tab checkbox unchecked).
53
+ - Sizes accept `px`, `%`, `em`, `rem`.
54
+ - `S` is read by the runtime directly; you usually let the Style tab generate it, but you may hand-write it.
55
+
56
+ ## B) The Layout box → `S` (grid column, direction, align, justify, spacing)
57
+
58
+ On an `S`-system page, layout is **not** a separate mechanism — the Layout box (Grid Column, Direction, Align, Justify, Box margin/padding) writes into **`S`** like every other Style-tab box: `col` (grid width, 1–12, `VCol`-specific), `flexDirection`/`alignItems`/`justifyContent` (`VCol`-specific), `marginTop/Right/Bottom/Left`, `paddingTop/Right/Bottom/Left` (most containers). Check the component's block in [../reference/component-styles.json](../reference/component-styles.json) for which of these it actually supports before assuming a param exists.
59
+
60
+ ```json
61
+ "S": { "xs-xl": { "flexDirection": "column", "justifyContent": "center", "paddingTop": "16px", "paddingBottom": "16px", "col": "6" } }
62
+ ```
63
+
64
+ > The pre-`S` `O.layout` (`dOpt` + compiled `class`) mechanism for the same intents belongs to the legacy era — never author it on an `S`-system page.
65
+
66
+ ### Responsive breakpoints (authoritative pixel ranges)
67
+ | Key | Device | Range |
68
+ |-----|--------|-------|
69
+ | `xs` | Mobile | 0–600px |
70
+ | `sm` | Tablet | 600–960px |
71
+ | `md` | Laptop | 960–1264px |
72
+ | `lg` | Desktop | 1264–1904px |
73
+ | `xl` | TV | 1904px+ |
74
+
75
+ `S` is keyed by **ranges** built from these breakpoints (`"xs-xl"`, `"md-xl"`, …). Grid-Column (1–12) lives on `VCol`; Direction → `flexDirection: "row"/"column"`; Justify (start/center/end/space-between/space-around) → `justifyContent` (main axis); Align (start/center/end/stretch/baseline) → `alignItems` (cross axis).
76
+
77
+ ## B2) Styling a child from its parent — `SC` (child-style inheritance)
78
+
79
+ Some visuals are set on the **parent** and pushed into a typed child — e.g. a button's **label text color** and **icon color**. The node's `SC` maps a parent style param to a child component type's param. **Fill it from data, not from memory: copy the component's `inheritedChildList` block in [../reference/component-styles.json](../reference/component-styles.json) into `SC` as-is** (same shape: `{ styleParam: { ChildType: childParam } }`). Components without an `inheritedChildList` in their JSON block get **no** `SC` — the engine ignores it there.
80
+
81
+ ```json
82
+ { "T": "VBtn",
83
+ "S": { "xs-xl": { "fontColor": "#ffffff", "backgroundColor": "#1976D2", /* …full default set per rule S3… */ } },
84
+ "SC": {
85
+ "textAlign": { "QLabel": "textAlign" },
86
+ "textDecorationLine": { "QLabel": "textDecorationLine" },
87
+ "textDecorationStyle": { "QLabel": "textDecorationStyle" },
88
+ "textDecorationColor": { "QLabel": "textDecorationColor" },
89
+ "fontColor": { "VIcon": "iconColor", "QLabel": "fontColor" },
90
+ "fontStyle": { "QLabel": "fontStyle" },
91
+ "fontSize": { "QLabel": "fontSize" },
92
+ "fontFamily": { "QLabel": "fontFamily" },
93
+ "fontWeight": { "QLabel": "fontWeight" },
94
+ "combinedFont": { "QLabel": "combinedFont" },
95
+ "lineHeight": { "QLabel": "lineHeight" },
96
+ "ThemeFont": { "QLabel": "ThemeFont" },
97
+ "backgroundColor": { "VIcon": "backgroundColor" },
98
+ "disabledBackgroundColor": { "VIcon": "disabledBackgroundColor" }
99
+ },
100
+ "C": { "default": { "c": [ /* QLabel + VIcon inherit the above */ ], "cType": "slot" } } }
101
+ ```
102
+
103
+ **`SC` complements the child's own `S` — it does not replace it.** Per rule S3 ([AGENT_GUIDE-s.md](../AGENT_GUIDE-s.md)) the child label/icon inside a `VBtn`/`VChip`/`VTabs` **also** carries its own `S` with its full default set from `component-styles.json`, values matched to the design (e.g. a white-text button label writes `fontColor:#ffffff` — not the generic QLabel default `#000000`). This is what the editor itself produces (see the button label in [../examples/style/MMDelay.qjson](../examples/style/MMDelay.qjson)). Keep the parent's `SC` mapping alongside it.
104
+
105
+ Also: legacy props migrate into `S` per each component's `propMigrateList` — e.g. `VBtn`/`VCard` `color` → `backgroundColor`, `VTextField` `color` → `labelDefaultFontColor`. Prefer setting `S` directly.
106
+
107
+ ## C) Styled Components (`SA`) — reusable named styles
108
+ Create from the Style tab ("Create or Select a Styled Component"), name it, and it becomes reusable across pages; applied components reference it via the node's **`SA`** array. Editing the styled component updates every component using it. Move it into a shared module to reuse across applications. When hand-authoring you normally don't invent `SA` entries — apply them in Studio.
109
+
110
+ ## D) Style File (project CSS) — the older / cross-cutting path
111
+ A project-level CSS file. Because the UI is Vuetify, prefix selectors with `body .v-application`:
112
+ ```css
113
+ body .v-application .v-text-field { background: lightgrey; }
114
+ ```
115
+ Fonts via `@font-face` with Studio asset references:
116
+ ```css
117
+ @font-face { font-family: MyFont; src: url("<<ttf:font-id>>"); }
118
+ ```
119
+ For locally-exported projects, custom fonts need the `@font-face` rule added to the CSS file (Google Fonts can be blocked with `blockFontRequest: true` in `settings.yaml`). This, and any other Style File use, is Web-only and a last resort — prefer `S` for per-component styling, full stop.
120
+
121
+ ## Practical guidance for an AI authoring qjson
122
+
123
+ **The flow, every time you design a screen or place a component:**
124
+
125
+ 1. **Try `S` first.** Look up the component's block in [../reference/component-styles.json](../reference/component-styles.json) and set every param the design needs there — size, spacing, grid `col`, `flexDirection`/`alignItems`/`justifyContent` (where supported), colors, fonts, borders, shadows. This covers the large majority of designs.
126
+ 2. **If `S` genuinely has no param for it:**
127
+ - **Before writing any `class` token:** list every token you intend to use and check [../reference/mapping-S-vuetify-class.md](../reference/mapping-S-vuetify-class.md) for an `S` equivalent. Only tokens with confirmed no `S` equivalent belong in `class`. Never bulk-copy a class string. If `S` and `class` already express the same thing (e.g. `S.height:"100%"` + `class:'fill-height'`), remove the class token — `S` is authoritative.
128
+ - **Web:** you may set the component's own `class` prop with the surviving tokens — but only as a last resort, with no other option.
129
+ - **Mobile:** there is **no** `class` alternative. Don't set `class` expecting it to do anything on Mobile — restructure with an `S`-capable component (most commonly wrap in/use a `VCol`, which uniquely supports the flex axis in `S`) instead.
130
+ 3. **Style File (CSS)** is the true last resort, Web-only, for cross-cutting rules neither `S` nor a `class` prop can express (pseudo-selectors, project-wide rules, `@font-face`). Confirm with the user before reaching for it on a single component — it usually means a missing `S` param, not a real gap.
131
+
132
+ - **`O.layout` belongs to the legacy era — never write it on an `S`-system page.** If you are tempted to write `O: { "cType": "slot", "layout": { "dOpt": ... } }`, stop — that is the legacy mechanism, valid only on `V<2` pages. Use `S` here. Reference examples only from [../examples/style/](../examples/style/) — a `O.layout` block means the example came from the legacy set; do not copy it into an `S` page.
133
+
134
+ - **Vuetify style-affecting props are NOT an alternative to `S`.** Even when a prop appears in `component-contracts.json`, if `S` has an equivalent param, use `S`. Common violations to avoid:
135
+
136
+ | Vuetify prop (don't use for style) | Use this instead |
137
+ | --- | --- |
138
+ | `VCol.cols` / `VCol.sm` / `VCol.md` / `VCol.lg` / `VCol.xl` | `S.col: "N"` + resolution ranges |
139
+ | `VRow.justify` / `VRow.align` | Web-only `class` last resort (no S equivalent on VRow) |
140
+ | `VBtn.color` / `VCard.color` | `S.backgroundColor` |
141
+ | `VTextField.color` | `S.labelDefaultFontColor` |
142
+ | `maxWidth` / `minWidth` / `maxHeight` as props | `S.maxWidth` / `S.minWidth` / `S.maxHeight` |
143
+ | `elevation` prop | `S.boxShadow` |
144
+
145
+ - **Never leave a component you placed with no `S` at all, and emit every default** — see [AGENT_GUIDE-s.md](../AGENT_GUIDE-s.md) rule S3. A `default` value listed in `component-styles.json` for a param is only the Style-tab's pre-filled suggestion — it is not silently applied unless you write that `S` key yourself. Therefore a placed component's `S` must include **every param that carries a `default` in its `component-styles.json` block** (the default value, or your design's override). Params whose JSON entry has no default (empty `{}`) are optional — set them only when the design needs them.
146
+ - **A multi-child `VCol` does not stack for free.** `VCol` is itself a flex container, but its flex-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 (true in both eras — see [03-layout-and-slots.md](03-layout-and-slots.md)). The fix here is `S.flexDirection: "column"` on that `VCol` — a real, supported `S` param (`componentStyleList`'s `layout-chooser`/`content-direction` group; see the `VCol` block in [../reference/component-styles.json](../reference/component-styles.json)).
147
+
148
+ Canonical **stacked label + value field** (label on top, value/input below):
149
+
150
+ ```json
151
+ { "T": "VCol", "P": { "ID": { "H": "colField", "T": "prop" } },
152
+ "E": {},
153
+ "C": { "default": { "c": [
154
+ { "T": "QLabel", "P": { "ID": { "H": "lblFieldLabel", "T": "prop" }, "text": { "H": "'Field Label'", "T": "prop" } },
155
+ "E": {}, "C": {}, "O": { "cType": "slot" },
156
+ "S": { "xs-xl": { "fontColor": "#9AA0A6", "fontSize": "14px", "fontWeight": "400" } },
157
+ "_Editor": { "eID": "lblFieldLabel" } },
158
+ { "T": "QLabel", "P": { "ID": { "H": "lblFieldValue", "T": "prop" }, "text": { "H": "'Value'", "T": "prop" } },
159
+ "E": {}, "C": {}, "O": { "cType": "slot" },
160
+ "S": { "xs-xl": { "fontColor": "#1B2A4A", "fontSize": "18px", "fontWeight": "700" } },
161
+ "_Editor": { "eID": "lblFieldValue" } }
162
+ ], "cType": "slot" } },
163
+ "O": { "cType": "slot" },
164
+ "S": { "xs-xl": { "flexDirection": "column", "col": "12" } },
165
+ "_Editor": { "eID": "colField" } }
166
+ ```
167
+
168
+ `S.flexDirection: "column"` guarantees the stack; `S.col: "12"` controls the width — both live in `S`, nothing here goes through `O.layout`.
169
+ - **Equal-height cards in a row:** `VCard` has no flex `S` params, so on **Web only** this is one of the rare legitimate uses of the `class` last resort — 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 `alignItems:stretch` already gives the `VCol` full height). There's no Mobile equivalent — accept the card's natural height there, or restructure with an `S`-capable wrapper (`VCol`) doing the stretching instead.
170
+ - When matching a mockup/Figma, encode colors/borders/shadows/spacing/grid/direction all in `S`, and confirm ambiguous choices.
171
+
172
+ ## Common theme utility classes (via `class` prop — Web-only last resort)
173
+ These exist and work on Web, but most have an `S` equivalent that also works on Mobile — always check [../reference/mapping-S-vuetify-class.md](../reference/mapping-S-vuetify-class.md) first and prefer the `S` param (e.g. `fontSize`+`fontWeight` over `text-h5`, `fontColor` over `primary--text`, `borderRadius`/`backgroundColor` over `rounded-lg`/`transparent`, `paddingTop` over `pt-N`, `height:"100%"` over `fill-height`). Only reach for these classes when you specifically need a Web-only effect or are confirmed to not need Mobile parity. Typography: `text-h5`, `text-h6`, `text-body-1`, `text-body-2`, `text-caption` + `font-weight-bold|medium|regular`. Color: `primary`/`primary--text`, `secondary`/`secondary--text`, `success--text`, `error--text`, `white`/`white--text`, `secondary lighten-4`. Card: `rounded-lg`, `transparent` (for a flat card use `S.boxShadow:"none"`, **not** the `elevation` prop — the `elevation` prop is legacy-only). Icons: name in `VIcon.text` (PType `text`).
174
+
175
+ ## Pre-sync checklist
176
+
177
+ The full pre-sync checklist (shared core + the `S`-system style checks — `S` on every visual node, no `O.layout`, the `class`-prop audit) is in [10-validation-and-sync.md](10-validation-and-sync.md). Run it before syncing.
@@ -0,0 +1,97 @@
1
+ # 05 · Components (how to use)
2
+
3
+ Pick the `T` from [reference/component-catalog.md](../reference/component-catalog.md) / [reference/component-index.json](../reference/component-index.json). The catalog has the full list and per-component criticals; this file shows the build patterns you reach for most.
4
+
5
+ ## QLabel (text)
6
+ ```json
7
+ { "T": "QLabel", "P": { "ID": { "H": "lblTitle", "T": "prop" },
8
+ "text": { "H": "'Page Title'", "T": "prop" },
9
+ "class": { "H": "'text-h5 font-weight-bold primary--text'", "T": "class" } },
10
+ "E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "lblTitle" } }
11
+ ```
12
+
13
+ ## Button with label (VBtn + child QLabel)
14
+ ```json
15
+ { "T": "VBtn", "P": { "ID": { "H": "btnSave", "T": "prop" },
16
+ "color": { "H": "'primary'", "T": "prop" },
17
+ "depressed": { "H": "true", "T": "prop" } },
18
+ "E": { "click": { "H": "quick.MM.trigger('save');\r\n", "P": "mouseEvent:unknown | undefined", "HL": "TS" } },
19
+ "C": { "default": { "c": [
20
+ { "T": "QLabel", "P": { "ID": { "H": "lblSave", "T": "prop" },
21
+ "text": { "H": "'Kaydet'", "T": "prop" },
22
+ "class": { "H": "'white--text font-weight-bold'", "T": "class" } },
23
+ "E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "lblSave" } }
24
+ ], "cType": "slot" } },
25
+ "O": { "cType": "slot" }, "_Editor": { "eID": "btnSave" } }
26
+ ```
27
+
28
+ ## Icon (note the PType)
29
+ ```json
30
+ { "T": "VIcon", "P": { "ID": { "H": "icEye", "T": "prop" },
31
+ "text": { "H": "'mdi-eye'", "T": "text" } },
32
+ "E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "icEye" } }
33
+ ```
34
+
35
+ ## DataTable (headers/items in props, scoped action slot)
36
+ ```json
37
+ { "T": "VDataTable", "P": { "ID": { "H": "tblItems", "T": "prop" },
38
+ "headers": { "H": "[{text='Name', value='name', sortable=true}, {text='Actions', value='actions', sortable=false, align='center'}]", "T": "prop" },
39
+ "items": { "H": "[]", "T": "prop" },
40
+ "itemsPerPage": { "H": "10", "T": "prop" } },
41
+ "E": { "click:row": { "H": "quick.store.set('selected', index);\r\n", "P": "index:any,row:any", "HL": "TS" } },
42
+ "C": { "item.actions": { "c": [ /* VBtn with item.<field> bindings */ ], "cType": "scopedSlot" } },
43
+ "O": { "cType": "slot" }, "_Editor": { "eID": "tblItems" } }
44
+ ```
45
+ - `headers`/static `items` are QScript props with `=` keys. Dynamic rows: `components.tblItems.items = rows;` in a callback.
46
+ - `click:row` → `index` is the row data object.
47
+
48
+ ## Dialog (open/close + non-persistent close)
49
+ ```json
50
+ { "T": "VDialog", "P": { "ID": { "H": "dlgDetail", "T": "prop" },
51
+ "width": { "H": "'700px'", "T": "prop" },
52
+ "persistent": { "H": "false", "T": "prop" },
53
+ "Render": { "H": "true", "T": "prop" }, "eager": { "H": "true", "T": "prop" } },
54
+ "E": { "click:outside": { "H": "components.dlgDetail.qValue=false;\r\n", "HL": "TS" } },
55
+ "C": { "default": { "c": [ /* VCard content */ ], "cType": "slot" } },
56
+ "O": { "cType": "slot" }, "_Editor": { "eID": "dlgDetail" } }
57
+ ```
58
+ Open: `components.dlgDetail.qValue = true;`. Add `Render:true`+`eager:true` to touch inner components before opening.
59
+
60
+ ## Select / Combobox / Autocomplete
61
+ ```json
62
+ "items": { "H": "[{text='Istanbul', value=1}, {text='Ankara', value=2}]", "T": "prop" }
63
+ ```
64
+ For service data prefer raw items + `itemText`/`itemValue`/`returnObject:true`.
65
+
66
+ ## Pagination
67
+ `length`/`totalVisible` are string values; `input` handler starts with `quick.this.qValue = number;` (`"P":"number:number"`).
68
+
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
+ ## Block Component (embedding another qjson page)
83
+ Place at `pJson` root level — **not** inside VContainer. Minimal node; no Ghost child, no `dynProps`.
84
+ ```json
85
+ { "T": "CustomComponent", "P": {
86
+ "ID": { "H": "blockMyPage", "T": "prop" },
87
+ "QJsonPath": { "H": "'<<qjson:path/to/page>>'", "T": "prop" } },
88
+ "E": {}, "C": {}, "O": {}, "_Editor": { "eID": "blockMyPage" } }
89
+ ```
90
+ `QJsonPath` format: `'<<qjson:path>>'` — project-relative path without extension. Root-level page: `<<qjson:page-name>>`; nested: `<<qjson:folder/page-name>>`. `studio pull` converts Studio model IDs to this path format; `studio push` converts back — never write a raw ID.
91
+
92
+ **The embedded page must itself be a block component in Studio.** When you add a page into another page as a block component, check the embedded page's frontmatter: if it lacks `blockComponent: true`, run `studio convertToBlock <embedded-file>`. The file must be checked out (`studio startWorking <file>` if it isn't; pages newly created by `studio push` come back already checked out). For a brand-new page this runs only **after** `studio push` — the model must exist in Studio first. This applies only to block-component embeds, not to service-caller embeds (below).
93
+
94
+ ## Messaging / service component / Ghost
95
+ `Messaging` (`O.cType:"child"`) is the event hub. A project **service caller** `CustomComponent` (different from a block component — has `O:{cType:"child",dynProps:true}` and a `Ghost` child) embeds a service-proxy `.qjson` via `QJsonPath`. See [06-services.md](06-services.md) and [09-page-skeletons.md](09-page-skeletons.md).
96
+
97
+ For any prop/event/slot not shown here, consult [reference/component-catalog.md](../reference/component-catalog.md); for Vuetify components, Vuetify 2 semantics apply.
@@ -0,0 +1,68 @@
1
+ # 06 · Services (REST)
2
+
3
+ Two patterns. **Check existing project pages first** and follow whichever the project uses.
4
+
5
+ ## Pattern A — `quick.Request.async` (framework-native, default)
6
+ Call from any event; success/fail route to custom events on the same component (usually `Messaging`).
7
+
8
+ ```typescript
9
+ let req = <any>{};
10
+ req.url = '/api/products/list';
11
+ req.http = 'GET'; // GET|POST|PUT|DELETE|PATCH|MULTIPART|POSTBLOB|GETBLOB
12
+ req.data = null; // body for POST/PUT
13
+ req.blockRender = false;
14
+ req.responseField = 'productList';
15
+ req.onSuccess = 'onProductsSuccess';
16
+ req.onFail = 'onProductsFail';
17
+ quick.Request.async(req);
18
+ ```
19
+
20
+ Read the result in the success event as `response.<responseField>`:
21
+ ```json
22
+ "onProductsSuccess": {
23
+ "H": "if (response.productList != null) {\r\n let resData = response.productList;\r\n components.tblProducts.items = resData.resultList;\r\n}\r\n",
24
+ "C": true, "HL": "TS"
25
+ }
26
+ "onProductsFail": {
27
+ "H": "quick.Quick.alert({ title:'Hata', text:'İstek başarısız', category:'Error', actionButtons:[{ name:'Tamam', type:'Confirm' }] });\r\n",
28
+ "C": true, "HL": "TS"
29
+ }
30
+ ```
31
+
32
+ `IRequest` fields: `url`, `http`, `data`, `responseField`, `onSuccess`, `onFail`, `blockRender`, `showSuccessMessage`, `showErrorMessage`, `headers`, `withCredentials`, `timeout`, `args`. Inline `await` form also works:
33
+ ```typescript
34
+ const respo = await quick.Request.async(req);
35
+ let result = (<any>respo).data;
36
+ ```
37
+
38
+ ## Pattern B — project ServiceCaller `CustomComponent`
39
+ Some projects centralize calls in a reusable `CustomComponent` (a service proxy) with `onLoad` / `onServiceSuccessCallBack` / `onServiceFailCallBack`. Use it **only if the project already provides one** (copy its `QJsonPath` from an existing page).
40
+
41
+ ```json
42
+ { "T": "CustomComponent", "P": {
43
+ "ID": { "H": "serviceCallerComp", "T": "prop" },
44
+ "QJsonPath": { "H": "'<<qjson:path/to/ServiceCallerCustomComponent>>'", "T": "prop" } },
45
+ "E": {
46
+ "onLoad": { "H": "quick.store.set('page', 0);\r\nquick.MM.trigger('getProducts', [{ page: 0 }]);\r\n", "HL": "TS" },
47
+ "onServiceSuccessCallBack": { "H": "/* capture → null → process */", "C": true, "P": "serviceResponse:any", "HL": "TS" },
48
+ "onServiceFailCallBack": { "H": "/* alert with actionButtons */", "C": true, "P": "serviceResponse:any", "HL": "TS" }
49
+ },
50
+ "C": { "default": { "c": [ { "T": "Ghost", "P": { "ID": { "H": "ghostComp", "T": "prop" } }, "E": {}, "C": {}, "O": { "cType": "child" }, "_Editor": { "eID": "ghostComp" } } ], "cType": "child" } },
51
+ "O": { "cType": "child", "dynProps": true }, "_Editor": { "eID": "serviceCallerComp" } }
52
+ ```
53
+ Each call is a custom event on `Messaging` that builds a `requestObj` and calls `(<any>components.serviceCallerComp).serviceCall(requestObj)`. In the success callback, **capture → null → process**:
54
+ ```typescript
55
+ if (serviceResponse.getProducts != null) {
56
+ let resData = serviceResponse.getProducts; // capture
57
+ serviceResponse.getProducts = null; // null immediately
58
+ components.tblProducts.items = resData.resultList; // process
59
+ }
60
+ ```
61
+
62
+ ## Rules that prevent the common failures
63
+ - Close the request object literal with `};` before the next call (missing `;` → "not callable").
64
+ - Triggered custom events need `"C": true`; declare `P` to match the trigger payload.
65
+ - `responseField` / event names must match exactly across trigger, request, and callback.
66
+ - Fail alerts must include `actionButtons`.
67
+ - Initialize in **one** place (service `onLoad` or `Messaging.PreRender`).
68
+ - Don't assign `VDataTable.headers`/static `items` in callbacks — those are component props; assign only dynamic rows.
@@ -0,0 +1,40 @@
1
+ # 07 · Localization (`lrids`, `LR`)
2
+
3
+ ## `lrids` structure — by language code, values single-quoted
4
+ ```json
5
+ "lrids": {
6
+ "tr-TR": { "save": "'Kaydet'", "userName": "'Kullanıcı Adı:'" },
7
+ "en-US": { "save": "'Save'", "userName": "'User Name:'" }
8
+ }
9
+ ```
10
+ - Group by language code (`tr-TR`, `en-US`, …).
11
+ - Every value is a single-quoted string (same quoting model as prop `H`).
12
+ - Every key used by `LR`/`quick.LR` must exist in **all** required languages.
13
+ - **Omit `clrids` entirely** — the compiler generates it on import (compiled values look like `╬'Kaydet'╩╩`). Never author `clrids`, and strip it from any downloaded file you edit.
14
+
15
+ ## Context rule: `LR` in props, `quick.LR` in events
16
+ | Context | Use |
17
+ |---------|-----|
18
+ | Props (`P.H`, QScript) | bare `LR('key')` |
19
+ | Events (`E.H`, TS) | `quick.LR('key')` |
20
+
21
+ Props:
22
+ ```json
23
+ "text": { "H": "LR('save')", "T": "prop" }
24
+ ```
25
+ Events:
26
+ ```typescript
27
+ quick.Quick.alert({ text: quick.LR('genericError'), category:'Error', actionButtons:[{name: quick.LR('ok'), type:'Confirm'}] });
28
+ ```
29
+ `quick.LR(key, dataSource?)` returns the localized string. Never call `quick.LR` inside a prop.
30
+
31
+ ## Static vs localized text
32
+ Static = a quoted literal (`"H": "'Kaydet'"`); localized = wrap the key (`"H": "LR('save')"`). Apostrophe inside a QScript string is doubled: `'Premium''u'`.
33
+
34
+ ## Workflow
35
+ 1. Pick a stable key.
36
+ 2. Add it under every language block in `lrids`.
37
+ 3. Reference with `LR('key')` (props) / `quick.LR('key')` (events).
38
+ 4. Verify no language is missing the key before delivery.
39
+
40
+ There is also a runtime `quick.importLocalization(langCode, {...})` and global localization qjsons in some projects — but for a single page, `lrids` is what you author.
@@ -0,0 +1,49 @@
1
+ # 08 · Dynamic Components (`createComponent`)
2
+
3
+ For repeated UI generated from data, clone a **template** component. There is no `{{var}}` interpolation — clones receive a `dataSource` accessed as `data.*`.
4
+
5
+ ## Model
6
+ 1. Keep a template as a **root-level** `pJson` element, hidden until cloned.
7
+ 2. Bind template props to `data.<field>`.
8
+ 3. For each item, call `quick.Quick.createComponent` with a unique `newCompQID`, inserting into a real container (`placeQID`).
9
+
10
+ ## Create (TypeScript)
11
+ ```typescript
12
+ quick.Quick.createComponent({
13
+ templateCompQID: 'rowTemplate',
14
+ newCompQID: 'row' + index,
15
+ placeQID: 'rowList',
16
+ place: ElementLocation.Default, // or <any>'Before' / <any>'After'
17
+ dataSource: response.data // accessed as data.* in the template
18
+ });
19
+ ```
20
+ Real files also build `dataSource` from a service response and loop (`forEach`) creating one clone per item. `place` is the `ElementLocation` enum (`Before`/`After`/`Default`); a bare string works but cast `<any>'After'` if TS complains.
21
+
22
+ ## Template prop bindings
23
+ In **props**, reference clone data directly as `data.<field>`:
24
+ ```json
25
+ "text": { "H": "data.title", "T": "prop" }
26
+ "class": { "H": "if(data.statusColor==1){'red lighten-5'}else{'blue lighten-5'}", "T": "class" }
27
+ ```
28
+ In **events**, declare it first: `declare let data;` then use `data.field`.
29
+ The template's `visible` should guard against the pre-clone state:
30
+ ```json
31
+ "visible": { "H": "if(data!=undefined){data.visible}else{false}", "T": "prop" }
32
+ ```
33
+ Pass `visible:true` per clone so clones show while the template stays hidden.
34
+
35
+ ## Rules (each prevents a real failure)
36
+ 1. `templateCompQID` must be a **pJson root-level** component id (not a nested child).
37
+ 2. `placeQID` must be a real container with a `default` slot (not a leaf `Ghost`).
38
+ 3. `newCompQID` must be unique per clone (effective id becomes `templateCompQID + '_' + newCompQID`).
39
+ 4. Guard template `visible` with the `if(data!=undefined){...}else{false}` pattern.
40
+
41
+ ## Related APIs
42
+ ```typescript
43
+ quick.Quick.createChildren({ parentCompQId, templateChildName, newChildName? });
44
+ let c = quick.Quick.findCreateComponentRelative(quick.this, 'rowTemplate');
45
+ quick.Quick.deleteComponent(quick.getComponent('rowTemplate_row0'));
46
+ ```
47
+
48
+ ## When NOT to use this
49
+ Tabular data → use `VDataTable.items` (don't clone rows). A few fixed cards → author them statically. Use `createComponent` for unknown-count, card/row-shaped repeated UI.
@@ -0,0 +1,83 @@
1
+ # 09 · Page Skeletons — 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.** These are **structure references for editing/extending an existing legacy page**, not "start from scratch" templates — keep the page's current root, don't retrofit a `VContainer`, and design via `O.layout` (`dOpt`/`class`) + CSS classes. Starting a genuinely new page instead → [09-page-skeletons.md](09-page-skeletons.md).
6
+
7
+ ## Reference shape — framework-native (no service component)
8
+ A legacy page typically has this shape (`Messaging` + a layout root). Match it when adding sections; do not add a `VContainer` root to a page that already roots elsewhere.
9
+
10
+ ```javascript
11
+ let pjson = {
12
+ "pJson": [
13
+ {
14
+ "T": "Messaging",
15
+ "P": { "ID": { "H": "msg", "T": "prop" } },
16
+ "E": {
17
+ "PreRender": { "H": "quick.MM.trigger('fetchData');\r\n", "I": true, "HL": "TS" },
18
+ "fetchData": { "H": "let req=<any>{};\r\nreq.url='/api/data';\r\nreq.http='GET';\r\nreq.data=null;\r\nreq.blockRender=false;\r\nreq.responseField='data';\r\nreq.onSuccess='onData';\r\nreq.onFail='onFail';\r\nquick.Request.async(req);\r\n", "C": true, "HL": "TS" },
19
+ "onData": { "H": "let resData = response.data;\r\n/* process resData */\r\n", "C": true, "HL": "TS" },
20
+ "onFail": { "H": "quick.Quick.alert({ title:'Hata', text:'Bir hata oluştu.', category:'Error', actionButtons:[{ name:'Tamam', type:'Confirm' }] });\r\n", "C": true, "HL": "TS" }
21
+ },
22
+ "C": {}, "O": { "cType": "child" }, "_Editor": { "eID": "msg" }
23
+ },
24
+ {
25
+ "T": "VContainer",
26
+ "P": { "ID": { "H": "pageContainer", "T": "prop" },
27
+ "class": { "H": "'container container--fluid'", "T": "class" } },
28
+ "E": {},
29
+ "C": { "default": { "c": [ /* PAGE CONTENT */ ], "cType": "slot" } },
30
+ "O": { "cType": "child" }, "_Editor": { "eID": "pageContainer" }
31
+ }
32
+ ],
33
+ "lrids": {}, "opt": {}
34
+ };
35
+ export default pjson
36
+ ```
37
+
38
+ ## Reference shape — with project ServiceCaller (only if the project provides one)
39
+ Same as above, plus a `CustomComponent` after `Messaging` (see [06-services.md](06-services.md) Pattern B), with init in its `onLoad`.
40
+
41
+ ## Centered content scaffold (drop into PAGE CONTENT)
42
+ Legacy form — layout via `O.layout` (`dOpt` + synced `class`), visuals via CSS utility classes on the `class` prop:
43
+
44
+ ```json
45
+ { "T": "VRow", "P": { "ID": { "H": "rowMain", "T": "prop" } }, "E": {},
46
+ "C": { "default": { "c": [
47
+ { "T": "VCol", "P": { "ID": { "H": "colMain", "T": "prop" } }, "E": {},
48
+ "C": { "default": { "c": [
49
+ { "T": "VCard", "P": { "ID": { "H": "cardMain", "T": "prop" },
50
+ "elevation": { "H": "0", "T": "prop" },
51
+ "class": { "H": "'white pa-4 rounded-lg'", "T": "class" } },
52
+ "E": {}, "C": { "default": { "c": [
53
+ { "T": "QLabel", "P": { "ID": { "H": "lblPageTitle", "T": "prop" },
54
+ "text": { "H": "'Page Title'", "T": "prop" },
55
+ "class": { "H": "'text-h5 font-weight-bold primary--text'", "T": "class" } },
56
+ "E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "lblPageTitle" } }
57
+ ], "cType": "slot" } },
58
+ "O": { "cType": "slot" }, "_Editor": { "eID": "cardMain" } }
59
+ ], "cType": "slot" } },
60
+ "O": { "cType": "slot", "layout": { "dOpt": { "xs": ["d:d-flex","j:justify-center"] }, "class": "d-flex justify-center" } },
61
+ "_Editor": { "eID": "colMain" } }
62
+ ], "cType": "slot" } },
63
+ "O": { "cType": "slot" }, "_Editor": { "eID": "rowMain" } }
64
+ ```
65
+
66
+ ## Styling — `O.layout` + CSS classes (do NOT author `S`)
67
+ On a legacy page, design lives in two places, not in `S` (which won't render on `V < 2`):
68
+
69
+ - **`O.layout`** (`dOpt` + compiled `class`) — grid width (`c:col-N`), flex direction/align/justify (`fd:`/`a:`/`j:`), spacing (`sp:`). Keep `dOpt` and `class` in sync.
70
+ - **The `class` prop** — CSS utility classes for typography (`text-h5`, `font-weight-bold`), color (`primary--text`, `white`), elevation (`elevation-2`), rounding (`rounded-lg`).
71
+
72
+ ```json
73
+ { "T": "VCard", "P": { "ID": { "H": "cardMain", "T": "prop" },
74
+ "elevation": { "H": "2", "T": "prop" },
75
+ "class": { "H": "'white pa-4 rounded-lg'", "T": "class" } },
76
+ "E": {}, "C": { "default": { "c": [ /* … */ ], "cType": "slot" } },
77
+ "O": { "cType": "slot" }, "_Editor": { "eID": "cardMain" } }
78
+ ```
79
+
80
+ Full how-to: [04-styling-legacy.md](04-styling-legacy.md); the `dOpt` grammar + `dOpt → class` compilation rule: [../reference/layout-system.md](../reference/layout-system.md). **Do not introduce `S` on a legacy page — it silently won't render.**
81
+
82
+ ## Large-page policy (incremental)
83
+ Don't rewrite a whole page in one shot. Add **1–3 sections per edit**, validate, and report progress. Reuse examples from [../examples/cssClass/](../examples/cssClass/) (the legacy set — e.g. `CardTitle.qjson`, `Profile_Card.qjson`) and neighboring project pages rather than re-deriving structures.
@@ -0,0 +1,87 @@
1
+ # 09 · Page Skeletons — `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** (starting a brand-new page). A new page's `opt.V` is always the current version — **author it as `opt.V: 2.5`** (this marks the page as `S`-system; the skeleton below already sets it). Adding a section to an **existing legacy page** instead → [09-page-skeletons-legacy.md](09-page-skeletons-legacy.md).
6
+
7
+ Start every new page from one of these. Structure: `Messaging` (event hub) → optional service `CustomComponent` (only if the project uses one) → `VContainer` (layout root). For a **new page the `VContainer` content root is required** (not merely canonical): wrap all UI content in a single top-level `VContainer`, with `Messaging` and the optional service component as the only other top-level `pJson` siblings. This is a **new-page rule only** — when editing an existing page, keep its current root and do **not** add a `VContainer` unless the user asks.
8
+
9
+ ## Skeleton — framework-native (no service component)
10
+ ```javascript
11
+ let pjson = {
12
+ "pJson": [
13
+ {
14
+ "T": "Messaging",
15
+ "P": { "ID": { "H": "msg", "T": "prop" } },
16
+ "E": {
17
+ "PreRender": { "H": "quick.MM.trigger('fetchData');\r\n", "I": true, "HL": "TS" },
18
+ "fetchData": { "H": "let req=<any>{};\r\nreq.url='/api/data';\r\nreq.http='GET';\r\nreq.data=null;\r\nreq.blockRender=false;\r\nreq.responseField='data';\r\nreq.onSuccess='onData';\r\nreq.onFail='onFail';\r\nquick.Request.async(req);\r\n", "C": true, "HL": "TS" },
19
+ "onData": { "H": "let resData = response.data;\r\n/* process resData */\r\n", "C": true, "HL": "TS" },
20
+ "onFail": { "H": "quick.Quick.alert({ title:'Hata', text:'Bir hata oluştu.', category:'Error', actionButtons:[{ name:'Tamam', type:'Confirm' }] });\r\n", "C": true, "HL": "TS" }
21
+ },
22
+ "C": {}, "O": { "cType": "child" }, "_Editor": { "eID": "msg" }
23
+ },
24
+ {
25
+ "T": "VContainer",
26
+ "P": { "ID": { "H": "pageContainer", "T": "prop" },
27
+ "class": { "H": "'container container--fluid'", "T": "class" } },
28
+ "E": {},
29
+ "C": { "default": { "c": [ /* PAGE CONTENT */ ], "cType": "slot" } },
30
+ "O": { "cType": "child" }, "_Editor": { "eID": "pageContainer" }
31
+ }
32
+ ],
33
+ "lrids": {}, "opt": { "V": 2.5 }
34
+ };
35
+ export default pjson
36
+ ```
37
+
38
+ ## Skeleton — with project ServiceCaller (only if the project provides one)
39
+ Same as above, plus a `CustomComponent` after `Messaging` (see [06-services.md](06-services.md) Pattern B), with init in its `onLoad`.
40
+
41
+ ## Centered content scaffold (drop into PAGE CONTENT)
42
+ ```json
43
+ { "T": "VRow", "P": { "ID": { "H": "rowMain", "T": "prop" } }, "E": {},
44
+ "C": { "default": { "c": [
45
+ { "T": "VCol", "P": { "ID": { "H": "colMain", "T": "prop" } }, "E": {},
46
+ "C": { "default": { "c": [
47
+ { "T": "VCard", "P": { "ID": { "H": "cardMain", "T": "prop" } },
48
+ "S": { "xs-xl": { "backgroundColor": "#ffffff", "boxShadow": "none", "paddingTop": "16px", "paddingRight": "16px", "paddingBottom": "16px", "paddingLeft": "16px", "borderTopLeftRadius": "8px", "borderTopRightRadius": "8px", "borderBottomLeftRadius": "8px", "borderBottomRightRadius": "8px" } },
49
+ "E": {}, "C": { "default": { "c": [
50
+ { "T": "QLabel", "P": { "ID": { "H": "lblPageTitle", "T": "prop" },
51
+ "text": { "H": "'Page Title'", "T": "prop" } },
52
+ "S": { "xs-xl": { "fontSize": "24px", "fontWeight": "700", "fontColor": "#1976D2" } },
53
+ "E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "lblPageTitle" } }
54
+ ], "cType": "slot" } },
55
+ "O": { "cType": "slot" }, "_Editor": { "eID": "cardMain" } }
56
+ ], "cType": "slot" } },
57
+ "O": { "cType": "slot" },
58
+ "S": { "xs-xl": { "justifyContent": "center" } },
59
+ "_Editor": { "eID": "colMain" } }
60
+ ], "cType": "slot" } },
61
+ "O": { "cType": "slot" }, "_Editor": { "eID": "rowMain" } }
62
+ ```
63
+
64
+ ## Styling — every component carries an `S` (don't skip it)
65
+ The skeletons above are intentionally minimal: **structure + `class` only**. They are *not* a finished page. A real page also sets each component's visual design in its top-level **`S`** object — the cross-platform Style tag the editor serializes (sibling to `T`/`P`/`E`/`C`/`O`/`_Editor`). After you drop in a section, give its components their `S`:
66
+
67
+ ```json
68
+ { "T": "VCard", "P": { "ID": { "H": "cardMain", "T": "prop" } },
69
+ "S": { "xs-xl": {
70
+ "backgroundColor": "#ffffff",
71
+ "borderTopLeftRadius": "8px", "borderTopRightRadius": "8px",
72
+ "borderBottomLeftRadius": "8px", "borderBottomRightRadius": "8px",
73
+ "paddingTop": "16px", "paddingRight": "16px", "paddingBottom": "16px", "paddingLeft": "16px",
74
+ "boxShadow": "0 2px 8px rgba(0,0,0,0.08)" } },
75
+ "E": {}, "C": { "default": { "c": [ /* … */ ], "cType": "slot" } },
76
+ "O": { "cType": "slot" }, "_Editor": { "eID": "cardMain" } }
77
+ ```
78
+
79
+ - `S` is **range-keyed** (`"xs-xl"` = all sizes; narrower ranges like `"md-xl"` override for larger screens). Values are strings; `""` = unset.
80
+ - Pull the supported param names + editor defaults for each `T` from [../reference/component-styles.json](../reference/component-styles.json) — don't invent params.
81
+ - Style a child's text/icon (e.g. a `VBtn` label color) through the **parent's `SC`**, not the child's own `S`.
82
+ - **Everything goes in `S`** — layout (flex/grid/spacing/direction, where the component's `componentStyleList` supports it) and visuals (color/font/border/shadow/exact size) alike. `O.layout` (`dOpt`+`class`) is legacy; don't author it. Reach for the component's `class` prop only as a Web-only last resort when `S` truly has no param for it — never on Mobile.
83
+
84
+ Full how-to: [04-styling.md](04-styling.md). **A page delivered with no `S` is unstyled — the styling pass is part of authoring, not an optional extra.**
85
+
86
+ ## Large-page policy (incremental)
87
+ Don't rewrite a whole page in one shot. Write the skeleton + scaffold, then add **1–3 sections per edit**, validate, and report progress. Reuse examples from [../examples/style/](../examples/style/) (the `S`-system set) and neighboring project pages rather than re-deriving structures.