@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,672 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.formatStyleReport = exports.validateStyles = void 0;
8
+ /**
9
+ * validateStyles.ts — deterministic S-first style validator for Quick .qjson pages.
10
+ *
11
+ * The in-CLI twin of what used to be `.ai-kit/tools/validate_styles.ts`: it is invoked by
12
+ * `runQjsonBuild` (qjsonBuild.ts) right after the structural validator, so the authoring
13
+ * fix-loop gets S-style feedback for free every time it compiles — no separate tool the AI
14
+ * has to remember to run. It reads its reference data (component-contracts.json +
15
+ * component-styles.json) from the *workspace* `.ai-kit/reference/`, resolved from the file
16
+ * being validated (see loadReference), so it uses the user's own contracts.
17
+ *
18
+ * It only runs on **S-track pages** (opt.V >= 2.0, or a page that actually carries an `S`
19
+ * object); on legacy pages the `S` object doesn't render, so these checks don't apply and the
20
+ * file is reported as skipped. Answers, per node:
21
+ * 1. Is any prop actually a *styling* prop that has an `S` equivalent → should move to S?
22
+ * 2. Does every `class` token have an S equivalent the component supports → should move to S?
23
+ * 3. Is every `S` param real for this component (per component-styles.json)?
24
+ * 4. Is a style set in BOTH S and class (conflict → drop the class token)?
25
+ * 5. Is an unknown prop on the node, or legacy `O.layout` / `dOpt` still present?
26
+ *
27
+ * This does NOT compile the file (the official compiler does that). It only checks that styling
28
+ * is expressed the S-first way, deterministically, from the reference contracts.
29
+ *
30
+ * NOTE: compiled as CommonJS inside the studio CLI, so `__dirname` and `require.main` are the
31
+ * ambient module globals — no `import.meta` (which the CLI's tsconfig disallows).
32
+ */
33
+ const node_fs_1 = __importDefault(require("node:fs"));
34
+ const node_path_1 = __importDefault(require("node:path"));
35
+ // ── locate the kit root (the dir holding reference/ or .ai-kit/reference/). Resolves from the
36
+ // FILE being validated first — so bundled inside the studio CLI it finds the user's workspace
37
+ // `.ai-kit/reference/` — then falls back to __dirname (so it still works from the bundled kit
38
+ // copied next to the compiled code). Returns null when no reference data is found. ────────────
39
+ function findKitRoot(startDir) {
40
+ let dir = startDir;
41
+ for (let i = 0; i < 8; i++) {
42
+ if (node_fs_1.default.existsSync(node_path_1.default.join(dir, "reference", "component-styles.json")))
43
+ return dir;
44
+ if (node_fs_1.default.existsSync(node_path_1.default.join(dir, ".ai-kit", "reference", "component-styles.json")))
45
+ return node_path_1.default.join(dir, ".ai-kit");
46
+ const parent = node_path_1.default.dirname(dir);
47
+ if (parent === dir)
48
+ break;
49
+ dir = parent;
50
+ }
51
+ return null;
52
+ }
53
+ // ── reference data. Loaded lazily and cached per kit root, so one process can validate files
54
+ // across different workspaces. Both files are optional: without them the S-param/prop checks
55
+ // simply degrade to no-ops (styleParams/contractProps return null) rather than crashing. ──────
56
+ let contracts = {};
57
+ let styles = {};
58
+ let loadedRoot; // undefined = never loaded
59
+ function loadReference(startDir) {
60
+ const root = findKitRoot(startDir) ?? findKitRoot(__dirname);
61
+ if (root === loadedRoot)
62
+ return; // already loaded for this root
63
+ loadedRoot = root;
64
+ const refFile = (name) => node_path_1.default.join(root ?? "", "reference", name);
65
+ try {
66
+ contracts = JSON.parse(node_fs_1.default.readFileSync(refFile("component-contracts.json"), "utf8")).components ?? {};
67
+ }
68
+ catch {
69
+ contracts = {};
70
+ }
71
+ try {
72
+ styles = JSON.parse(node_fs_1.default.readFileSync(refFile("component-styles.json"), "utf8")).components ?? {};
73
+ }
74
+ catch {
75
+ styles = {};
76
+ }
77
+ }
78
+ // ── reference lookups ──────────────────────────────────────────────────────────
79
+ function contractProps(T) {
80
+ const c = contracts[T];
81
+ return c && c.props ? new Set(Object.keys(c.props)) : null; // null = unknown component
82
+ }
83
+ function styleParams(T) {
84
+ const s = styles[T];
85
+ if (!s)
86
+ return null;
87
+ // "inheritedChildList" is the component's SC mapping data, not an S param.
88
+ return new Set(Object.keys(s).filter((k) => k !== "inheritedChildList"));
89
+ }
90
+ // the component's SC mapping template ({ styleParam: { ChildType: childParam } }), if any
91
+ function inheritedChildList(T) {
92
+ const m = styles[T]?.inheritedChildList;
93
+ return m && typeof m === "object" && !Array.isArray(m) ? m : null;
94
+ }
95
+ // Params whose editor "default" does NOT match the runtime-unset behavior — auto-adding them
96
+ // would change how existing pages render (a VCol with no flexDirection lays out as a ROW at
97
+ // runtime; the editor suggestion says "column"). These stay explicit design decisions:
98
+ // never flagged missing, never auto-added.
99
+ const S_DEFAULT_EXCEPTIONS = { VCol: new Set(["flexDirection"]) };
100
+ // the component's default-valued S params (rule S3: a placed component's S must include all of
101
+ // these — the default value, or the design's override)
102
+ function defaultSParams(T) {
103
+ const s = styles[T];
104
+ if (!s)
105
+ return null;
106
+ const skip = S_DEFAULT_EXCEPTIONS[T];
107
+ const out = {};
108
+ for (const [k, m] of Object.entries(s)) {
109
+ if (k === "inheritedChildList" || (skip && skip.has(k)))
110
+ continue;
111
+ if (m && typeof m === "object" && m.default !== undefined && m.default !== "")
112
+ out[k] = m.default;
113
+ }
114
+ return Object.keys(out).length ? out : null;
115
+ }
116
+ // component-styles.json contains a legacy typo `bacgroundColor`; treat it as backgroundColor.
117
+ function supportsS(T, param) {
118
+ const s = styleParams(T);
119
+ if (!s)
120
+ return false;
121
+ if (s.has(param))
122
+ return true;
123
+ if (param === "backgroundColor" && s.has("bacgroundColor"))
124
+ return true;
125
+ return false;
126
+ }
127
+ // Vuetify 2 default theme palette — used only as a *suggested* value; the real page
128
+ // theme may override these, so any fix derived from a theme name is flagged needsValue.
129
+ const THEME_HEX = {
130
+ primary: "#1976D2", secondary: "#424242", accent: "#82B1FF",
131
+ error: "#FF5252", info: "#2196F3", success: "#4CAF50",
132
+ warning: "#FB8C00", white: "#FFFFFF", black: "#000000",
133
+ };
134
+ // ── qjson parsing ────────────────────────────────────────────────────────────────
135
+ // qjson files are pure JSON, or a JS module (`let pjson = {...}; export default pjson`),
136
+ // optionally preceded by a `---studio-metadata---` header. Extract the object literal by
137
+ // brace-matching (string-aware) so H values containing braces/brackets don't confuse it.
138
+ function extractLiteral(raw, start) {
139
+ let depth = 0, inStr = false, esc = false;
140
+ for (let i = start; i < raw.length; i++) {
141
+ const ch = raw[i];
142
+ if (inStr) {
143
+ if (esc)
144
+ esc = false;
145
+ else if (ch === "\\")
146
+ esc = true;
147
+ else if (ch === '"')
148
+ inStr = false;
149
+ continue;
150
+ }
151
+ if (ch === '"')
152
+ inStr = true;
153
+ else if (ch === "{" || ch === "[")
154
+ depth++;
155
+ else if (ch === "}" || ch === "]") {
156
+ depth--;
157
+ if (depth === 0)
158
+ return raw.slice(start, i + 1);
159
+ }
160
+ }
161
+ return raw.slice(start);
162
+ }
163
+ function loadQjson(file) {
164
+ const raw = node_fs_1.default.readFileSync(file, "utf8").trim();
165
+ try {
166
+ return JSON.parse(raw);
167
+ }
168
+ catch {
169
+ const assign = raw.match(/(?:let|const|var)\s+\w+\s*=\s*/);
170
+ const from = assign ? assign.index + assign[0].length : 0;
171
+ let start = -1;
172
+ for (let i = from; i < raw.length; i++)
173
+ if (raw[i] === "{" || raw[i] === "[") {
174
+ start = i;
175
+ break;
176
+ }
177
+ if (start < 0)
178
+ throw new Error("no object/array literal found");
179
+ return JSON.parse(extractLiteral(raw, start));
180
+ }
181
+ }
182
+ // unwrap a prop H value: "'primary'" → "primary", "true" → "true", "'12'" → "12"
183
+ function hVal(h) {
184
+ const s = String(h ?? "");
185
+ const m = s.match(/^'(.*)'$/s);
186
+ return m ? m[1] : s;
187
+ }
188
+ function nodeId(node) {
189
+ return node?.P?.ID?.H ?? node?._Editor?.eID ?? "(no id)";
190
+ }
191
+ // walk every node in a pJson tree (children live in C.<slot>.c arrays)
192
+ function* walk(nodes) {
193
+ for (const node of nodes ?? []) {
194
+ if (!node || typeof node !== "object")
195
+ continue;
196
+ yield node;
197
+ const C = node.C;
198
+ if (C && typeof C === "object") {
199
+ for (const slot of Object.values(C)) {
200
+ if (slot && Array.isArray(slot.c))
201
+ yield* walk(slot.c);
202
+ }
203
+ }
204
+ }
205
+ }
206
+ // A page is on the S track when opt.V >= 2.0 OR any node actually carries a (non-empty) S
207
+ // object — the latter is the ground truth per AGENT_GUIDE.md Step 0 (S renders ⇔ S track).
208
+ // Legacy pages (opt.V missing/<2 and no S) don't render S, so style checks don't apply.
209
+ function isStyleTrackPage(doc, roots) {
210
+ const v = Number(doc?.opt?.V);
211
+ if (Number.isFinite(v) && v >= 2)
212
+ return true;
213
+ for (const node of walk(roots))
214
+ if (node.S && typeof node.S === "object" && Object.keys(node.S).length > 0)
215
+ return true;
216
+ return false;
217
+ }
218
+ const FONT_WEIGHT = {
219
+ thin: "100", light: "300", regular: "400", medium: "500", bold: "700", black: "900",
220
+ };
221
+ function px(n) { return `${n * 4}px`; }
222
+ function mapClassToken(tok) {
223
+ // structural / container classes with no S meaning
224
+ if (tok === "container" || tok === "container--fluid" || tok === "row" || tok === "spacer")
225
+ return "structural";
226
+ // responsive breakpoint variants are handled via S ranges, not a single token — leave as-is
227
+ if (/-(xs|sm|md|lg|xl)-/.test(tok) || /-(sm|md|lg|xl)$/.test(tok.replace(/^col-/, "")))
228
+ // col-md-6 style — flag separately below; other -bp- variants: no single S target
229
+ if (!/^col-/.test(tok))
230
+ return "no-s";
231
+ // spacing: pa/px/py/pt/pb/pl/pr/ps/pe + ma/mx/my/mt/mb/ml/mr (+ negative n, + auto)
232
+ const sp = tok.match(/^([pm])([axytblrse])-(n?)(\d+|auto)$/);
233
+ if (sp) {
234
+ const [, pm, side, neg, num] = sp;
235
+ const base = pm === "p" ? "padding" : "margin";
236
+ const val = num === "auto" ? "auto" : (neg ? "-" : "") + px(Number(num));
237
+ const sides = side === "a" ? ["Top", "Right", "Bottom", "Left"]
238
+ : side === "x" || side === "s" || side === "e" ? (side === "s" ? ["Left"] : side === "e" ? ["Right"] : ["Left", "Right"])
239
+ : side === "y" ? ["Top", "Bottom"]
240
+ : side === "t" ? ["Top"] : side === "b" ? ["Bottom"]
241
+ : side === "l" ? ["Left"] : ["Right"];
242
+ return { params: sides.map((s) => ({ sParam: base + s, value: val })) };
243
+ }
244
+ // flex direction / justify / align (flex containers only)
245
+ const flexDir = {
246
+ "flex-row": "row", "flex-column": "column",
247
+ "flex-row-reverse": "row-reverse", "flex-column-reverse": "column-reverse",
248
+ };
249
+ if (flexDir[tok])
250
+ return { params: [{ sParam: "flexDirection", value: flexDir[tok] }], needsFlexContainer: true };
251
+ const j = tok.match(/^justify-(start|center|end|space-between|space-around|space-evenly)$/);
252
+ if (j)
253
+ return { params: [{ sParam: "justifyContent", value: j[1] === "start" ? "flex-start" : j[1] === "end" ? "flex-end" : j[1] }], needsFlexContainer: true };
254
+ const a = tok.match(/^align-(start|center|end|baseline|stretch)$/);
255
+ if (a)
256
+ return { params: [{ sParam: "alignItems", value: a[1] === "start" ? "flex-start" : a[1] === "end" ? "flex-end" : a[1] }], needsFlexContainer: true };
257
+ if (tok === "d-flex" || tok === "d-inline-flex")
258
+ return { params: [], needsFlexContainer: true }; // implied by flexDirection
259
+ // typography
260
+ const fw = tok.match(/^font-weight-(thin|light|regular|medium|bold|black)$/);
261
+ if (fw)
262
+ return { params: [{ sParam: "fontWeight", value: FONT_WEIGHT[fw[1]] }] };
263
+ if (tok === "font-italic")
264
+ return { params: [{ sParam: "fontStyle", value: "italic" }] };
265
+ const ta = tok.match(/^text-(left|center|right|justify)$/);
266
+ if (ta)
267
+ return { params: [{ sParam: "textAlign", value: ta[1] }] };
268
+ const td = tok.match(/^text-decoration-(none|underline|line-through)$/);
269
+ if (td)
270
+ return { params: [{ sParam: "textDecorationLine", value: td[1] }] };
271
+ if (/^text-(h[1-6]|subtitle-[12]|body-[12]|button|caption|overline)$/.test(tok))
272
+ return { params: [{ sParam: "fontSize", needsValue: true }] }; // typography scale → font size/weight/lineHeight
273
+ const textColor = tok.match(/^([a-z]+)--text$/);
274
+ if (textColor)
275
+ // theme-named color → suggest the Vuetify default but flag it (page theme may override)
276
+ return { params: [{ sParam: "fontColor", value: THEME_HEX[textColor[1]], needsValue: true }] };
277
+ // appearance
278
+ if (/^elevation-\d+$/.test(tok))
279
+ return { params: [{ sParam: "boxShadow", needsValue: true }] };
280
+ if (/^rounded(-.+)?$/.test(tok))
281
+ return { params: [{ sParam: "borderTopLeftRadius", needsValue: true }] };
282
+ // grid column: col-N / col-auto (VCol only — checked by caller)
283
+ const col = tok.match(/^col(?:s)?-(\d{1,2}|auto)$/);
284
+ if (col)
285
+ return { params: [{ sParam: "col", value: col[1] }] };
286
+ // single theme-color token used as a background class (e.g. 'warning', 'primary')
287
+ // theme-named → suggest the Vuetify default but flag it (page theme may override)
288
+ if (THEME_HEX[tok])
289
+ return { params: [{ sParam: "backgroundColor", value: THEME_HEX[tok], needsValue: true }] };
290
+ // explicit no-S tokens
291
+ if (/^(text-uppercase|text-lowercase|text-capitalize|text-truncate|text-no-wrap|d-none|d-block|d-inline|d-inline-block)$/.test(tok))
292
+ return "no-s";
293
+ if (/^(flex-grow|flex-shrink|order|overflow)-/.test(tok))
294
+ return "no-s";
295
+ return "no-s"; // unknown token — leave it in class, don't touch
296
+ }
297
+ // ── prop → S mapping (styling props that should live in S) ───────────────────────
298
+ // Only the props with a clean, deterministic S destination. Behavioral/variant props
299
+ // (outlined, dense, depressed, block-as-variant, loading, disabled, type, href…) are left alone.
300
+ // components where the Vuetify `color` prop means foreground, not background fill
301
+ const COLOR_TARGET = { VIcon: "iconColor", QIcon: "iconColor" };
302
+ function mapStyleProp(T, prop, value) {
303
+ switch (prop) {
304
+ case "color": {
305
+ // color means foreground on icon/text components, background on buttons/surfaces.
306
+ const pref = COLOR_TARGET[T];
307
+ const target = (pref && supportsS(T, pref)) ? pref
308
+ : supportsS(T, "backgroundColor") ? "backgroundColor"
309
+ : supportsS(T, "fontColor") ? "fontColor"
310
+ : supportsS(T, "iconColor") ? "iconColor"
311
+ : null;
312
+ if (!target)
313
+ return null;
314
+ // a literal (#hex / rgb) is deterministic; a theme name (primary…) may be overridden by the page theme
315
+ const isLiteral = /^#|^rgb/i.test(value);
316
+ return { sParam: target, value: isLiteral ? value : THEME_HEX[value], needsValue: !isLiteral, removeProp: "color" };
317
+ }
318
+ case "elevation":
319
+ return supportsS(T, "boxShadow") ? { sParam: "boxShadow", needsValue: true, removeProp: "elevation" } : null;
320
+ case "block":
321
+ return supportsS(T, "width") ? { sParam: "width", value: "100%", removeProp: "block" } : null;
322
+ // VCol responsive grid props → S.col ranges
323
+ case "cols": return { sParam: "col", value: value, range: "xs-xl", removeProp: "cols" };
324
+ case "sm": return { sParam: "col", value: value, range: "sm-xl", removeProp: "sm" };
325
+ case "md": return { sParam: "col", value: value, range: "md-xl", removeProp: "md" };
326
+ case "lg": return { sParam: "col", value: value, range: "lg-xl", removeProp: "lg" };
327
+ case "xl": return { sParam: "col", value: value, range: "xl-xl", removeProp: "xl" };
328
+ default:
329
+ return null;
330
+ }
331
+ }
332
+ // props that are always fine even if a contract is missing/loose
333
+ const UNIVERSAL_PROPS = new Set(["ID", "Render", "DiscardSettings", "class", "visible", "qValue", "text", "style"]);
334
+ // common wrong S-param names → the real one (component-specific). Kept small and exact.
335
+ const S_PARAM_ALIASES = {
336
+ VIcon: { fontColor: "iconColor", color: "iconColor", fontSize: "iconSize", size: "iconSize" },
337
+ };
338
+ // suggest the intended S param for an unknown one: exact alias, then a valid param whose
339
+ // name ends with the unknown one (e.g. VTextField `borderTopLeftRadius` → `innerBorderTopLeftRadius`).
340
+ function suggestSParam(T, param) {
341
+ const alias = S_PARAM_ALIASES[T]?.[param];
342
+ if (alias && supportsS(T, alias))
343
+ return alias;
344
+ const valid = styleParams(T);
345
+ if (!valid)
346
+ return undefined;
347
+ // Only suggest a rename on a strong match: the unknown name is a camelCase-boundary suffix
348
+ // of a real param (e.g. `borderTopLeftRadius`→`innerBorderTopLeftRadius`). Short names like
349
+ // `top`/`right` are ambiguous (usually stray positioning props) → no guess, advise removal.
350
+ if (param.length < 6)
351
+ return undefined;
352
+ const lc = param.toLowerCase();
353
+ for (const v of valid) {
354
+ if (v === param || v.length <= param.length || !v.toLowerCase().endsWith(lc))
355
+ continue;
356
+ const boundary = v[v.length - param.length];
357
+ if (boundary === boundary.toUpperCase() && /[A-Za-z]/.test(boundary))
358
+ return v;
359
+ }
360
+ return undefined;
361
+ }
362
+ // collect every S param already set on a node (across all ranges)
363
+ function existingSParams(node) {
364
+ const out = new Set();
365
+ const S = node.S;
366
+ if (S && typeof S === "object")
367
+ for (const range of Object.values(S))
368
+ if (range && typeof range === "object")
369
+ for (const k of Object.keys(range))
370
+ out.add(k);
371
+ return out;
372
+ }
373
+ // ── validate one node ────────────────────────────────────────────────────────────
374
+ function validateNode(file, node, out) {
375
+ const T = node.T;
376
+ if (!T)
377
+ return;
378
+ const id = nodeId(node);
379
+ const cProps = contractProps(T); // null → unknown component
380
+ const knownComponent = styleParams(T) !== null || cProps !== null;
381
+ const sAlready = existingSParams(node);
382
+ // legacy O.layout / dOpt
383
+ if (node.O && (node.O.layout || node.O.dOpt)) {
384
+ out.push({ file, nodeId: id, component: T, kind: "legacy-layout", severity: "error",
385
+ detail: "O.layout/dOpt present", suggestion: "Migrate dOpt tokens to S and remove O.layout (keep only O.cType)." });
386
+ }
387
+ // props: unknown prop, and styling prop with S equivalent
388
+ const P = node.P ?? {};
389
+ for (const [prop, def] of Object.entries(P)) {
390
+ if (prop === "ID")
391
+ continue;
392
+ const value = hVal(def?.H);
393
+ // styling prop that should move to S?
394
+ const styleFix = mapStyleProp(T, prop, value);
395
+ if (styleFix) {
396
+ out.push({ file, nodeId: id, component: T, kind: "prop-to-S", severity: "warn",
397
+ detail: `prop "${prop}"=${value} is styling; component has S param "${styleFix.sParam}"`,
398
+ suggestion: styleFix.needsValue
399
+ ? `Move to S.${styleFix.range ?? "xs-xl"}.${styleFix.sParam} (value needed${THEME_HEX[value] ? `; Vuetify default ${THEME_HEX[value]}` : ""}) and remove prop "${prop}".`
400
+ : `Move to S.${styleFix.range ?? "xs-xl"}.${styleFix.sParam} = "${styleFix.value}" and remove prop "${prop}".`,
401
+ fix: styleFix });
402
+ continue;
403
+ }
404
+ // unknown prop (only when we actually have a contract for this component)
405
+ if (cProps && !cProps.has(prop) && !UNIVERSAL_PROPS.has(prop)) {
406
+ out.push({ file, nodeId: id, component: T, kind: "unknown-prop", severity: "warn",
407
+ detail: `prop "${prop}" is not in the ${T} contract`,
408
+ suggestion: `Verify "${prop}" exists for ${T}; if it is a styling intent, express it via S or a Vuetify class.` });
409
+ }
410
+ }
411
+ // class tokens
412
+ const classDef = P.class;
413
+ if (classDef && typeof classDef.H === "string") {
414
+ const tokens = hVal(classDef.H).split(/\s+/).filter(Boolean);
415
+ for (const tok of tokens) {
416
+ const m = mapClassToken(tok);
417
+ if (m === "structural" || m === "no-s")
418
+ continue; // keep — no S target
419
+ // col-N on a non-VCol is a grid class on the wrong component
420
+ if (/^col(s)?-/.test(tok) && T !== "VCol") {
421
+ const isFull = /^col(s)?-12$/.test(tok);
422
+ out.push({ file, nodeId: id, component: T, kind: "class-token-misuse", severity: "warn",
423
+ detail: `grid class "${tok}" on ${T} (col-* is VCol-only)`,
424
+ suggestion: isFull && supportsS(T, "width")
425
+ ? `Replace "${tok}" with S.xs-xl.width = "100%" (full-width) and remove the token.`
426
+ : `"${tok}" has no S target on ${T}; move this element into a VCol or drop the token.`,
427
+ fix: isFull && supportsS(T, "width")
428
+ ? { sParam: "width", value: "100%", removeClassToken: tok }
429
+ : { removeClassToken: tok } });
430
+ continue;
431
+ }
432
+ // flex tokens only migrate on a flex container that has the S param
433
+ const anyUnsupported = m.needsFlexContainer && m.params.some((p) => !supportsS(T, p.sParam));
434
+ const supported = m.params.filter((p) => supportsS(T, p.sParam));
435
+ if (supported.length === 0) {
436
+ // component has no S param for this token → keep as class (last resort), note only if it *looked* migratable
437
+ if (m.params.length > 0)
438
+ out.push({ file, nodeId: id, component: T, kind: "class-token-kept", severity: "info",
439
+ detail: `class "${tok}" has an S meaning but ${T} has no matching S param`,
440
+ suggestion: `Keep "${tok}" as a Vuetify class (Web-only last resort).` });
441
+ continue;
442
+ }
443
+ // conflict: same style already set in S
444
+ const conflict = supported.find((p) => sAlready.has(p.sParam));
445
+ if (conflict) {
446
+ out.push({ file, nodeId: id, component: T, kind: "style-conflict", severity: "warn",
447
+ detail: `class "${tok}" duplicates S param "${conflict.sParam}" already set`,
448
+ suggestion: `Remove "${tok}" from class (S is the source of truth).`,
449
+ fix: { removeClassToken: tok } });
450
+ continue;
451
+ }
452
+ // migratable: move token to S
453
+ const needsValue = supported.some((p) => p.needsValue || p.value === undefined);
454
+ out.push({ file, nodeId: id, component: T, kind: "class-token-to-S", severity: "warn",
455
+ detail: `class "${tok}" → S ${supported.map((p) => p.sParam).join(", ")}`,
456
+ suggestion: needsValue
457
+ ? `Move "${tok}" to S (${supported.map((p) => p.sParam).join(", ")}; value needed) and remove the token.`
458
+ : `Move "${tok}" to S.xs-xl { ${supported.map((p) => `${p.sParam}: "${p.value}"`).join(", ")} } and remove the token.`,
459
+ fix: { removeClassToken: tok, sParam: supported[0].sParam, value: supported[0].value, needsValue } });
460
+ void anyUnsupported;
461
+ }
462
+ }
463
+ // invalid S params
464
+ const S = node.S;
465
+ if (S && typeof S === "object") {
466
+ for (const range of Object.values(S)) {
467
+ if (!range || typeof range !== "object")
468
+ continue;
469
+ for (const param of Object.keys(range)) {
470
+ // "break-point" is the Style-tab's range selector tag, never a real S param —
471
+ // writing it into S has frozen the Web runtime. Flag it like any invalid param.
472
+ if (!supportsS(T, param)) {
473
+ const didYouMean = suggestSParam(T, param);
474
+ out.push({ file, nodeId: id, component: T, kind: "unknown-S-param", severity: "error",
475
+ detail: `S param "${param}" is not valid for ${T}`,
476
+ suggestion: didYouMean
477
+ ? `Rename S "${param}" → "${didYouMean}" for ${T} (the compiler silently drops "${param}").`
478
+ : `Remove "${param}" from S — ${T} has no such param and the compiler silently drops it.`,
479
+ fix: didYouMean ? { sParam: didYouMean } : undefined });
480
+ }
481
+ }
482
+ }
483
+ }
484
+ // S must include every default-valued param of the component (rule S3: emit every default —
485
+ // the default value or the design's override; nothing merges defaults at render).
486
+ {
487
+ const defaults = defaultSParams(T);
488
+ if (defaults) {
489
+ const missing = Object.keys(defaults).filter((p) => !sAlready.has(p));
490
+ if (missing.length) {
491
+ const total = Object.keys(defaults).length;
492
+ if (sAlready.size === 0) {
493
+ out.push({ file, nodeId: id, component: T, kind: "missing-S", severity: "error",
494
+ detail: `${T} has no S but ${total} of its params carry a default`,
495
+ suggestion: `Add an S ("xs-xl") with every default-valued param from ${T}'s component-styles.json block: ${missing.join(", ")}.` });
496
+ }
497
+ else {
498
+ out.push({ file, nodeId: id, component: T, kind: "incomplete-S", severity: "error",
499
+ detail: `S is missing ${missing.length}/${total} of ${T}'s default-valued params`,
500
+ suggestion: `Rule S3 — add (default value or your override): ${missing.join(", ")}.` });
501
+ }
502
+ }
503
+ }
504
+ }
505
+ // SC must mirror the component's inheritedChildList (component-styles.json) — the FULL block,
506
+ // not a subset: rule S3 says copy it as-is. Also flag a missing SC when the node has children
507
+ // of a mapped type.
508
+ const SC = node.SC;
509
+ {
510
+ const inherited = inheritedChildList(T);
511
+ if (inherited && (!SC || typeof SC !== "object")) {
512
+ const childTypes = new Set();
513
+ const C = node.C;
514
+ if (C && typeof C === "object")
515
+ for (const slot of Object.values(C))
516
+ if (slot && Array.isArray(slot.c))
517
+ for (const ch of slot.c)
518
+ if (ch && ch.T)
519
+ childTypes.add(ch.T);
520
+ const mappedTypes = new Set(Object.values(inherited).flatMap((m) => Object.keys(m)));
521
+ const hit = [...childTypes].filter((t) => mappedTypes.has(t));
522
+ if (hit.length) {
523
+ out.push({ file, nodeId: id, component: T, kind: "missing-SC", severity: "error",
524
+ detail: `${T} has ${hit.join("/")} children but no SC`,
525
+ suggestion: `Copy ${T}'s full inheritedChildList block from component-styles.json into SC (params: ${Object.keys(inherited).join(", ")}).` });
526
+ }
527
+ }
528
+ else if (inherited && SC) {
529
+ const missing = Object.keys(inherited).filter((p) => SC[p] === undefined);
530
+ if (missing.length) {
531
+ out.push({ file, nodeId: id, component: T, kind: "incomplete-SC", severity: "error",
532
+ detail: `SC has ${Object.keys(SC).length}/${Object.keys(inherited).length} of ${T}'s inheritedChildList params`,
533
+ suggestion: `SC must be the FULL inheritedChildList copy (rule S3) — add: ${missing.join(", ")}.` });
534
+ }
535
+ }
536
+ }
537
+ if (SC && typeof SC === "object") {
538
+ const inherited = inheritedChildList(T);
539
+ if (!inherited) {
540
+ if (styleParams(T)) {
541
+ out.push({ file, nodeId: id, component: T, kind: "unknown-SC", severity: "error",
542
+ detail: `${T} has no inheritedChildList — its SC does nothing`,
543
+ suggestion: `Remove SC from ${T}; only components with an inheritedChildList in component-styles.json cascade styles to children.` });
544
+ }
545
+ }
546
+ else {
547
+ for (const [param, childMap] of Object.entries(SC)) {
548
+ const validMap = inherited[param];
549
+ if (!validMap) {
550
+ out.push({ file, nodeId: id, component: T, kind: "unknown-SC-param", severity: "error",
551
+ detail: `SC param "${param}" is not in ${T}'s inheritedChildList`,
552
+ suggestion: `Remove SC "${param}" or use one of: ${Object.keys(inherited).join(", ")}.` });
553
+ continue;
554
+ }
555
+ if (childMap && typeof childMap === "object") {
556
+ for (const [childT, childParam] of Object.entries(childMap)) {
557
+ if (validMap[childT] === undefined) {
558
+ out.push({ file, nodeId: id, component: T, kind: "unknown-SC-child", severity: "error",
559
+ detail: `SC "${param}" maps to child type "${childT}" which is not in ${T}'s inheritedChildList`,
560
+ suggestion: `Valid child types for "${param}": ${Object.keys(validMap).join(", ")}.` });
561
+ }
562
+ else if (validMap[childT] !== childParam) {
563
+ out.push({ file, nodeId: id, component: T, kind: "wrong-SC-target", severity: "error",
564
+ detail: `SC "${param}" → ${childT}."${childParam}" but the engine maps it to "${validMap[childT]}"`,
565
+ suggestion: `Change SC "${param}".${childT} to "${validMap[childT]}" (from inheritedChildList).` });
566
+ }
567
+ }
568
+ }
569
+ }
570
+ }
571
+ }
572
+ void knownComponent;
573
+ }
574
+ // ── run over files ───────────────────────────────────────────────────────────────
575
+ function collectFiles(target) {
576
+ const st = node_fs_1.default.statSync(target);
577
+ if (st.isFile())
578
+ return [target];
579
+ const out = [];
580
+ for (const e of node_fs_1.default.readdirSync(target, { withFileTypes: true })) {
581
+ if (e.name.startsWith("."))
582
+ continue;
583
+ const p = node_path_1.default.join(target, e.name);
584
+ if (e.isDirectory())
585
+ out.push(...collectFiles(p));
586
+ else if (e.name.endsWith(".qjson"))
587
+ out.push(p);
588
+ }
589
+ return out;
590
+ }
591
+ /** Validate files/folders; returns a structured report (no console output). Legacy pages are
592
+ * reported with `skipped: true` and contribute no violations. */
593
+ function validateStyles(targets) {
594
+ const files = targets.flatMap(collectFiles);
595
+ const fileReports = [];
596
+ for (const file of files) {
597
+ loadReference(node_path_1.default.dirname(node_path_1.default.resolve(file)));
598
+ let doc;
599
+ try {
600
+ doc = loadQjson(file);
601
+ }
602
+ catch (e) {
603
+ fileReports.push({ file, skipped: false, errors: 1, warnings: 0, infos: 0,
604
+ violations: [{ file, nodeId: "-", component: "-", kind: "parse-error", severity: "error",
605
+ detail: `could not parse: ${e.message}`, suggestion: "Fix JSON/module syntax." }] });
606
+ continue;
607
+ }
608
+ const roots = Array.isArray(doc?.pJson) ? doc.pJson : Array.isArray(doc) ? doc : [];
609
+ if (!isStyleTrackPage(doc, roots)) {
610
+ fileReports.push({ file, skipped: true, violations: [], errors: 0, warnings: 0, infos: 0 });
611
+ continue;
612
+ }
613
+ const violations = [];
614
+ for (const node of walk(roots))
615
+ validateNode(file, node, violations);
616
+ fileReports.push({ file, skipped: false, violations,
617
+ errors: violations.filter((v) => v.severity === "error").length,
618
+ warnings: violations.filter((v) => v.severity === "warn").length,
619
+ infos: violations.filter((v) => v.severity === "info").length });
620
+ }
621
+ const errorCount = fileReports.reduce((n, f) => n + f.errors, 0);
622
+ const warningCount = fileReports.reduce((n, f) => n + f.warnings, 0);
623
+ const infoCount = fileReports.reduce((n, f) => n + f.infos, 0);
624
+ return { ok: errorCount === 0 && warningCount === 0, fileCount: files.length, errorCount, warningCount, infoCount, files: fileReports };
625
+ }
626
+ exports.validateStyles = validateStyles;
627
+ /** Render a StyleReport as the human-readable text block (same style as the CLI output). */
628
+ function formatStyleReport(r) {
629
+ const icon = (s) => (s === "error" ? "✖" : s === "warn" ? "▲" : "·");
630
+ const lines = [];
631
+ for (const fr of r.files) {
632
+ const rel = node_path_1.default.relative(process.cwd(), fr.file);
633
+ if (fr.skipped) {
634
+ lines.push(`· ${rel} (skipped — legacy page; S styling doesn't render here)`);
635
+ continue;
636
+ }
637
+ lines.push(`\n${rel} (${fr.errors} error, ${fr.warnings} warn, ${fr.infos} info)`);
638
+ for (const v of fr.violations)
639
+ lines.push(` ${icon(v.severity)} [${v.kind}] ${v.component}#${v.nodeId}: ${v.detail}\n → ${v.suggestion}`);
640
+ }
641
+ const total = r.errorCount + r.warningCount + r.infoCount;
642
+ lines.push(total === 0
643
+ ? "\n✓ No style violations."
644
+ : `\n${total} violation(s): ${r.errorCount} error, ${r.warningCount} warn, ${r.infoCount} info.`);
645
+ return lines.join("\n");
646
+ }
647
+ exports.formatStyleReport = formatStyleReport;
648
+ // ── CLI (standalone debugging only; the normal path is via qjsonBuild). ────────────
649
+ function main() {
650
+ const args = process.argv.slice(2);
651
+ const json = args.includes("--json");
652
+ const quiet = args.includes("--quiet");
653
+ const targets = args.filter((a) => !a.startsWith("--"));
654
+ if (targets.length === 0) {
655
+ console.error("usage: validateStyles <file-or-folder.qjson> [--json] [--quiet]");
656
+ process.exit(2);
657
+ }
658
+ const report = validateStyles(targets);
659
+ if (json) {
660
+ const violations = report.files.flatMap((f) => f.violations);
661
+ console.log(JSON.stringify({ violationCount: violations.length, violations }, null, 2));
662
+ }
663
+ else if (!quiet) {
664
+ console.log(formatStyleReport(report));
665
+ }
666
+ // Use exitCode (not process.exit) so large stdout fully flushes before exit.
667
+ process.exitCode = report.errorCount + report.warningCount > 0 ? 1 : 0;
668
+ }
669
+ // Run main() only when invoked directly as a CLI, not when imported (e.g. by qjsonBuild).
670
+ if (require.main === module)
671
+ main();
672
+ //# sourceMappingURL=validateStyles.js.map