@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.
- package/dist/common/clean/domain/infrastructure/ICloudProviderFileSystem.js +5 -0
- package/dist/common/clean/domain/infrastructure/ICloudProviderFileSystem.js.map +1 -0
- package/dist/common/clean/domain/infrastructure/ICrypto.js +5 -0
- package/dist/common/clean/domain/infrastructure/ICrypto.js.map +1 -0
- package/dist/common/clean/domain/infrastructure/ILogger.js +5 -0
- package/dist/common/clean/domain/infrastructure/ILogger.js.map +1 -0
- package/dist/common/clean/domain/infrastructure/IMime.js +5 -0
- package/dist/common/clean/domain/infrastructure/IMime.js.map +1 -0
- package/dist/common/clean/domain/useCases/ICloudProvider.js +3 -0
- package/dist/common/clean/domain/useCases/ICloudProvider.js.map +1 -0
- package/dist/common/clean/domain/useCases/ICloudProviderPublish.js +5 -0
- package/dist/common/clean/domain/useCases/ICloudProviderPublish.js.map +1 -0
- package/dist/common/everything/accessmanager/types.js +8 -0
- package/dist/common/everything/accessmanager/types.js.map +1 -0
- package/dist/common/everything/action/types.js +5 -0
- package/dist/common/everything/action/types.js.map +1 -0
- package/dist/common/everything/befunc/runtimeModels/types.js +5 -0
- package/dist/common/everything/befunc/runtimeModels/types.js.map +1 -0
- package/dist/common/everything/dataSet/runtimemodels/types.js +5 -0
- package/dist/common/everything/dataSet/runtimemodels/types.js.map +1 -0
- package/dist/common/everything/dataType/runtimemodels/types.js +35 -0
- package/dist/common/everything/dataType/runtimemodels/types.js.map +1 -0
- package/dist/common/everything/endpoint/runtimeModels/types.js +5 -0
- package/dist/common/everything/endpoint/runtimeModels/types.js.map +1 -0
- package/dist/common/everything/enum/runtimeModels/types.js +3 -0
- package/dist/common/everything/enum/runtimeModels/types.js.map +1 -0
- package/dist/common/everything/flow/runtimeModels/types.js +7 -0
- package/dist/common/everything/flow/runtimeModels/types.js.map +1 -0
- package/dist/common/everything/restService/runtimeModels/types.js +5 -0
- package/dist/common/everything/restService/runtimeModels/types.js.map +1 -0
- package/dist/common/everything/sla/runtimemodels/types.js +5 -0
- package/dist/common/everything/sla/runtimemodels/types.js.map +1 -0
- package/dist/common/everything/soapService/runtimeModels/types.js +6 -0
- package/dist/common/everything/soapService/runtimeModels/types.js.map +1 -0
- package/dist/common/everything/studio/ui/IStudioUIModelBase.js +3 -0
- package/dist/common/everything/studio/ui/IStudioUIModelBase.js.map +1 -0
- package/dist/common/everything/studio/ui/IStudioUIObjectBase.js +3 -0
- package/dist/common/everything/studio/ui/IStudioUIObjectBase.js.map +1 -0
- package/dist/common/everything/workflow/runtimemodels/types.js +90 -0
- package/dist/common/everything/workflow/runtimemodels/types.js.map +1 -0
- package/dist/common/helpers/objectHelper.js +43 -0
- package/dist/common/helpers/objectHelper.js.map +1 -0
- package/dist/common/helpers/promiseHelper.js +47 -0
- package/dist/common/helpers/promiseHelper.js.map +1 -0
- package/dist/common/helpers/typeHelper.js +3 -0
- package/dist/common/helpers/typeHelper.js.map +1 -0
- package/dist/common/qCloudTemp/announcement.js +3 -0
- package/dist/common/qCloudTemp/announcement.js.map +1 -0
- package/dist/common/qCloudTemp/application.js +3 -0
- package/dist/common/qCloudTemp/application.js.map +1 -0
- package/dist/common/qCloudTemp/applicationCopy.js +3 -0
- package/dist/common/qCloudTemp/applicationCopy.js.map +1 -0
- package/dist/common/qCloudTemp/applicationVersion.js +3 -0
- package/dist/common/qCloudTemp/applicationVersion.js.map +1 -0
- package/dist/common/qCloudTemp/authentication.js +3 -0
- package/dist/common/qCloudTemp/authentication.js.map +1 -0
- package/dist/common/qCloudTemp/authorization.js +4 -0
- package/dist/common/qCloudTemp/authorization.js.map +1 -0
- package/dist/common/qCloudTemp/backoffice.js +3 -0
- package/dist/common/qCloudTemp/backoffice.js.map +1 -0
- package/dist/common/qCloudTemp/exporter.js +3 -0
- package/dist/common/qCloudTemp/exporter.js.map +1 -0
- package/dist/common/qCloudTemp/externalToken.js +3 -0
- package/dist/common/qCloudTemp/externalToken.js.map +1 -0
- package/dist/common/qCloudTemp/feedback.js +3 -0
- package/dist/common/qCloudTemp/feedback.js.map +1 -0
- package/dist/common/qCloudTemp/invitation.js +3 -0
- package/dist/common/qCloudTemp/invitation.js.map +1 -0
- package/dist/common/qCloudTemp/membership.js +3 -0
- package/dist/common/qCloudTemp/membership.js.map +1 -0
- package/dist/common/qCloudTemp/modelDatas.js +3 -0
- package/dist/common/qCloudTemp/modelDatas.js.map +1 -0
- package/dist/common/qCloudTemp/organizationGroupApplication.js +3 -0
- package/dist/common/qCloudTemp/organizationGroupApplication.js.map +1 -0
- package/dist/common/qCloudTemp/quickCloud.js +34 -0
- package/dist/common/qCloudTemp/quickCloud.js.map +1 -0
- package/dist/common/qCloudTemp/storageTypes.js +3 -0
- package/dist/common/qCloudTemp/storageTypes.js.map +1 -0
- package/dist/common/qCloudTemp/symDtoObjects.js +8 -0
- package/dist/common/qCloudTemp/symDtoObjects.js.map +1 -0
- package/dist/common/qCloudTemp/tags.js +3 -0
- package/dist/common/qCloudTemp/tags.js.map +1 -0
- package/dist/common/qCloudTemp/template.js +107 -0
- package/dist/common/qCloudTemp/template.js.map +1 -0
- package/dist/common/qCloudTemp/userPreference.js +3 -0
- package/dist/common/qCloudTemp/userPreference.js.map +1 -0
- package/dist/common/qCloudTemp/userRequest.js +8 -0
- package/dist/common/qCloudTemp/userRequest.js.map +1 -0
- package/dist/common/studioCli/messages.js +14 -0
- package/dist/common/studioCli/messages.js.map +1 -0
- package/dist/common/studioCli/protocolVersion.js +14 -0
- package/dist/common/studioCli/protocolVersion.js.map +1 -0
- package/dist/jobs/src/application/shared/fileUrlCreator.js +72 -0
- package/dist/jobs/src/application/shared/fileUrlCreator.js.map +1 -0
- package/dist/jobs/src/domain/model/IExportJob.js +3 -0
- package/dist/jobs/src/domain/model/IExportJob.js.map +1 -0
- package/dist/studio-cli/src/.ai-kit/.mcp.json +8 -0
- package/dist/studio-cli/src/.ai-kit/AGENTS.md +18 -0
- package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE-legacy.md +29 -0
- package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE-s.md +30 -0
- package/dist/studio-cli/src/.ai-kit/AGENT_GUIDE.md +86 -0
- package/dist/studio-cli/src/.ai-kit/CLAUDE.md +12 -0
- package/dist/studio-cli/src/.ai-kit/README.md +81 -0
- package/dist/studio-cli/src/.ai-kit/agents/qjson-legacy-migrator.md +308 -0
- package/dist/studio-cli/src/.ai-kit/agents/quick-events.md +41 -0
- package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author-legacy.md +29 -0
- package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author-s.md +29 -0
- package/dist/studio-cli/src/.ai-kit/agents/quick-qjson-author.md +33 -0
- package/dist/studio-cli/src/.ai-kit/agents/quick-styling-legacy.md +37 -0
- package/dist/studio-cli/src/.ai-kit/agents/quick-styling.md +36 -0
- package/dist/studio-cli/src/.ai-kit/examples/README.md +12 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/AllowdDates.qjson +122 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Avatarlar.qjson +1084 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/BarChart.qjson +1061 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/BarChart_Type_Time_Sample.qjson +344 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/BottomSheetScrollWithHeaderInformation.qjson +1609 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/CardTitle.qjson +143 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Charts_Custom_Legend_Sample.qjson +763 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Charts_tooltipLabel_sample.qjson +631 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/CheckBoxQvalue.qjson +91 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/CheckboxDisabledExample.qjson +153 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Click Outside.qjson +144 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboBoxReset.qjson +839 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxAddItemWithDialog.qjson +296 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxAddItemWithTextField.qjson +186 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxDefaultSelection.qjson +99 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComboboxWithTreeView.qjson +94 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Combobox_SelectAll.qjson +704 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ComponentsInteractionExamples.qjson +722 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/CookieExamples.qjson +828 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/CreateComponent_WithTransmitDataSource_Sample.qjson +749 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Cryptography-with-ivKey.qjson +2159 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Dashboard.qjson +1135 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataExamples.qjson +696 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataStorageExamples.qjson +1296 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTable-Single-select-Multi-Select-TotalCalculation.qjson +441 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableAddRemoveItem.qjson +312 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableBoldHeader.qjson +34 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableEdit.qjson +422 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableFixedColumn.qjson +133 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableIndexExample.qjson +117 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableSearch.qjson +105 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableVerticalBorder.qjson +34 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTableWithTooltip.qjson +354 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DataTable_ChildButtonVisibleSample.qjson +892 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatePickerExampleApp (1).qjson +770 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatePickerInlineExample.qjson +299 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatePickerLocale.qjson +87 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatepickerDatenow.qjson +96 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DatepickerExample.qjson +147 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Detailed_Table_Row_Expand.qjson +388 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Detailed_Table_Rows.qjson +114 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogBlockSubPage.qjson +1014 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogExample.qjson +420 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogExampleWith/304/261con.qjson +345 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DialogWithEagerProp.qjson +129 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DoughnutChart.qjson +1005 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Download.qjson +139 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxColumnChooser.qjson +341 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxColumnFixing.qjson +317 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxColumn_fix_allowFixing.qjson +466 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-DxExport.qjson +225 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-DxFilterRow.qjson +174 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-DxSearchPanel.qjson +170 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGrid-columnAutoWidth.qjson +135 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridArrStoreLiveCon.qjson +201 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridArrStoreLiveConReason.qjson +290 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridExternalFilterCleaning.qjson +358 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridExternalFiltering.qjson +300 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDataGridRowDragging.qjson +257 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_MultipleSelection.qjson +503 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_ServiceCall.qjson +204 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_SimplestGridWithArrayStore.qjson +215 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_SingleSelection.qjson +337 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_allowFixing.qjson +321 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_columnResizingMode.qjson +718 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_hoverStateEnabled.qjson +144 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_onCellClickEvent.qjson +147 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxDatagrid_width_menu.qjson +574 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreeListArrStoreLiveCon.qjson +302 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-color.qjson +237 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-columnreordering.qjson +241 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-editing.qjson +1471 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/DxTreelist-extarnelfiltre.qjson +122 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Expansion_Panels.qjson +298 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/FileInput.qjson +228 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Frame_openHtmlContentInFrame.qjson +556 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Highlight_datatable_select.qjson +53 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Icon_Samples.qjson +148 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Instructions.request.qjson +605 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Intersect.qjson +423 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/LightBox.qjson +809 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/LineChart.qjson +1046 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/LineChart_Type_Time_Sample.qjson +340 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ListExample.qjson +475 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/LoginPage.qjson +525 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/MMDelay.qjson +356 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/MMtrigger.qjson +195 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/NavigationDrawerExample.qjson +808 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/NavigationDrawerWithAppBar.qjson +1621 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Parallax.qjson +381 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/PermanentStore_Example.qjson +1445 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/PieChart.qjson +1005 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Profile_Card.qjson +345 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ProgressLinear.qjson +547 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QCaptcha.qjson +318 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QDocumentViewer.qjson +41 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QFrameAllowFullScreenExample.qjson +368 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QFrameExample.qjson +117 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QIdleTimer.qjson +100 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QImgZoomRotate.qjson +428 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QImgZoomTypeNextTo.qjson +187 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QImgZoomTypeOn.qjson +187 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLabel_URL.qjson +105 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLabel_URL_Click.qjson +133 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLegend.qjson +501 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLegendBlock.qjson +732 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QLegend_unchanged.qjson +746 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QMapExample.qjson +785 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QMenuExample.qjson +68 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QOtp.qjson +979 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QQRCode.qjson +295 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QReCaptcha.qjson +361 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QRichTextExample.qjson +139 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QRichText_Cursor_Sample.qjson +352 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QTutorialFinalDemo.qjson +494 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/QVideoExample.qjson +1135 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Qlabel_Props.qjson +1591 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Qmenu-Icon-Img-SizeandColor.qjson +244 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Quick_Bind.qjson +110 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Quick_Bind_Sample.qjson +172 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Rating.qjson +101 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/RenderingComponent_Sample.qjson +1592 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/RequestExamples.qjson +680 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ResetValidation-ResetUsage.qjson +1326 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Resize.qjson +140 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Ripple.qjson +431 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Sparkline.qjson +386 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/State_storing.qjson +286 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/SwitchComponent.qjson +42 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Table_Pagination.qjson +99 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Table_Search.qjson +64 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Table_Select.qjson +106 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/ToolTip_props.qjson +2649 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/TooltipDisplayOfVDataTableDataTotal.qjson +312 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/TreeViewExample.qjson +92 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VAppBar.qjson +1681 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VAutocompleteRegex.qjson +45 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VBottomSheet.qjson +429 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VCard.qjson +1945 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VCombobox_customValidation.qjson +290 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable-slot-columnVeriyeG/303/266reRenklendirme.qjson +493 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTableIconExample.qjson +116 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTableItemAggregation.qjson +499 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_Change_FooterPageText.qjson +107 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_Multiple_Select_Control.qjson +50 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_SetGetComboboxValue_.qjson +148 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_SetItemSelect_GetSelection.qjson +627 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_SlotInstances.qjson +362 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_Validation.qjson +226 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_With_QTableCell_Sample.qjson +281 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_customSearchFilter.qjson +255 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_firstColumn_fixedActionsColumn.qjson +216 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDataTable_uniqueSlot_itemKey_Object.qjson +545 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDatePicker_AllowdDates.qjson +89 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VDialog.qjson +3512 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VExpansionPanel_UsageAndProps.qjson +3811 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFileInput-Slot-VIcon-Dolu.qjson +232 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFileInputGetUploadedContent.qjson +111 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFileInput_ImagePicker.qjson +308 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFooter.qjson +1480 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VForm.qjson +410 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VFormActionExample.qjson +2289 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineDatePicker_titleDateFormat.qjson +319 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineDatepickerMaxMin.qjson +36 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineDatepickerReset.qjson +88 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VInlineTimePicker.qjson +149 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VListGroup.qjson +1817 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VList_NavigationMenu.qjson +1636 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VMenu_PopoverInTable.qjson +534 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VMenu_sample.qjson +470 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VStepperExample.qjson +748 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VStepper_vertical.qjson +364 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VSteppers_EditableNonLinear.qjson +658 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VSteppers_LinearWithContinueButton.qjson +719 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextFieldQuickInputFormat.qjson +40 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextFieldValidation.qjson +1087 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_FocusExample.qjson +329 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_Validation_examples.qjson +877 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_customValidation.qjson +159 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValueSample1.qjson +40 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValueSapmle2.qjson +40 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValue_exceptLetters.qjson +40 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_formatValue_specialChars.qjson +40 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_keyDown.qjson +37 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextField_rangeOfNumber_validation.qjson +55 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextareaQuickInputFormat.qjson +37 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTextarea_format_regex_sample.qjson +321 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VTimelineExample.qjson +322 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/Vcontainer.qjson +417 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/VinlineDatePicker.qjson +61 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/V/304/261nlineDatepickerDeleteValue.qjson +304 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/alert.qjson +459 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/alertSamplePage.qjson +455 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/authorizationDashboard.qjson +24914 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/badge copy.qjson +158 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/badge.qjson +158 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/bottomSheetScrollable.qjson +3220 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/breadcrumbs.qjson +587 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/button.qjson +1765 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/cellTemplate.qjson +76 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/combobox.qjson +90 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/comboboxSelected.qjson +118 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/createChildren.qjson +406 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/createClosedPanes.qjson +245 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/creditcard.qjson +28 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/crypto.qjson +5965 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/customFilterUsingCalculateFilterExpressionEvent.qjson +305 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/customStore.qjson +156 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dataTableFormatColumn.qjson +151 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/data_table_component_access.qjson +130 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/datagridAddDynamicColumn.qjson +1381 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/datatableAddandDeleteItem.qjson +1195 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/deleteComponent.qjson +533 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/divider.qjson +185 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxColumncssClass.qjson +249 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDataGridAddinEditingDeleting.qjson +486 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDataGridLines.qjson +120 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDataGridRemove.qjson +216 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDatagridHeatMap.qjson +334 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxDatagridUpdate.qjson +80 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxMasterDetail.qjson +261 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxPaging_withServiceCall.qjson +159 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxRowDragging.qjson +179 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxSummary_dxTotalItem_usage.qjson +219 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxTotalItemCustomizeText.qjson +226 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dxTreeList_exportToExcel.qjson +266 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/dynamicComp.qjson +162 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/email.qjson +29 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/encoding.qjson +304 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/encryptedStorage_Sample.qjson +596 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/fileInput-1.qjson +904 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/fileUploadBlockComponent.qjson +68 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/fileUploadServiceCallBlockComp.qjson +128 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/findAndDeleteRelatedDynamicComp.qjson +211 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/first.qjson +57 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/fixedActionsColumn.qjson +133 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/formatWithFormatType.qjson +1740 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/getComponent_example.qjson +491 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/globalLocalization.qjson +189 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/goldenLayout.qjson +228 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/images.qjson +1461 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/list.qjson +162 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/localization_AddLanguageRTL_Sample.qjson +1192 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/newCustomerRegister.qjson +2598 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/number.qjson +41 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/number_VTextarea.qjson +37 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/onlyAlphabetic.qjson +32 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/parentPage.qjson +292 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/pipeline.qjson +77 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/pipelineSample.qjson +422 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/placeQidDynamic.qjson +193 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/progress-circular.qjson +1056 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/qtimer.qjson +335 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/radioGroupGetValues.qjson +125 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/region_definition_example.qjson +580 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/resetAndResetValidationUsage.qjson +1827 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/responsive1.qjson +312 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/responsive2.qjson +312 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/responsive3.qjson +1546 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/scrollButton.qjson +331 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/scrollDirective.qjson +297 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/selectedRow-propertyDisable.qjson +238 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/serviceCallerBlockComponent.qjson +63 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/sheet.qjson +149 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/slider.qjson +81 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/snackbars.qjson +2454 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/sso.qjson +260 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/subPage.qjson +710 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/tab.qjson +271 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/tableadditem.qjson +125 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/themeExamplePage.qjson +876 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/tiffImage.qjson +315 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/timePicker.qjson +452 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/treeview.qjson +156 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/treeview2.qjson +503 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/uniqueRowSlots.qjson +226 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/vMenu.qjson +212 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/vcarousel.qjson +659 -0
- package/dist/studio-cli/src/.ai-kit/examples/cssClass/vdatatable_slots_with_custom_validation_usage.qjson +1585 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/AllowdDates.qjson +126 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/BarChartEvents.qjson +323 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/BarChartTitle.qjson +411 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/BarChartYTicks.qjson +399 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/BarChart_TicksCallback.qjson +309 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/CalendarClickMoreExample.qjson +2 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/CalendarUsageExample.qjson +2 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/ChartLegendFont.qjson +788 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/DataTable_customSort.qjson +277 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/DocumentViewer_tiff_Sample.qjson +927 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/DoughnutChartEvents.qjson +243 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/DxDataGrid_CustomStore.qjson +267 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/Icon_Samples.qjson +181 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/Instructions.request.qjson +584 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/Intersect.qjson +404 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/LightBox.qjson +777 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/LineChart.qjson +1049 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/LineChartEvents.qjson +327 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/LineChartPointProps.qjson +416 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/LineChart_TicksCallback.qjson +309 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/LineChart_Type_Time_Sample.qjson +342 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/MMDelay.qjson +384 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/MMtrigger.qjson +209 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/NavigationDrawerExample.qjson +899 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/NavigationDrawerWithAppBar.qjson +1647 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/Parallax.qjson +416 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/PieChart.qjson +1103 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QCaptcha.qjson +409 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QDocumentViewer.qjson +149 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QFrameAllowFullScreenExample.qjson +360 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QFrameExample.qjson +213 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QIdleTimer.qjson +221 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QImgZoomRotate.qjson +432 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QImgZoomTypeNextTo.qjson +196 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QImgZoomTypeOn.qjson +196 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/QLabel_URL_Click_SendParams.qjson +477 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/VList_NavMenu.qjson +3008 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/alertSamplePage.qjson +450 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/authorizationDashboard.qjson +24914 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/badge.qjson +151 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/bottomSheetScrollable.qjson +3120 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/breadcrumbs.qjson +563 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/button.qjson +1658 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/cellTemplate.qjson +96 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/combobox.qjson +109 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/comboboxSelected.qjson +119 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/createChildren.qjson +411 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/createClosedPanes.qjson +265 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/creditcard.qjson +49 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/crypto.qjson +5632 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/customFilterUsingCalculateFilterExpressionEvent.qjson +301 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/customStore.qjson +157 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dataTableFormatColumn.qjson +151 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/data_table_component_access.qjson +130 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/datagridAddDynamicColumn.qjson +1381 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/datatableAddandDeleteItem.qjson +1195 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/datatable_selectable_feature_select_unselect_usage.qjson +300 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/deleteComponent.qjson +501 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/divider.qjson +180 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxColumncssClass.qjson +249 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxDataGridAddinEditingDeleting.qjson +486 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxDataGridLines.qjson +121 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxDataGridRemove.qjson +209 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxDatagridHeatMap.qjson +335 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxDatagridUpdate.qjson +80 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxMasterDetail.qjson +257 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxPaging_withServiceCall.qjson +160 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxRowDragging.qjson +175 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxSummary_dxTotalItem_usage.qjson +215 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxTotalItemCustomizeText.qjson +222 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dxTreeList_exportToExcel.qjson +267 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/dynamicComp.qjson +156 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/efficientTreeviewSearchforLargeDatasets.qjson +736 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/email.qjson +177 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/encoding.qjson +304 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/encryptedStorage_Sample.qjson +596 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/exportToXlsx_Sample.qjson +1956 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/images.qjson +1379 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/images_olddd.qjson +1366 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/newCustomerRegister.qjson +2598 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/number.qjson +169 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/number_VTextarea.qjson +163 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/onlyAlphabetic.qjson +164 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/parentPage.qjson +351 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/pipeline.qjson +78 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/pipelineSample.qjson +410 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/placeQidDynamic.qjson +289 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/progress-circular.qjson +1014 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/samplePageLottie.qjson +696 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/server-SideAutocompleteHandling.qjson +696 -0
- package/dist/studio-cli/src/.ai-kit/examples/style/xlsxToJson_Sample.qjson +772 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/00-qjson-structure-legacy.md +65 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/00-qjson-structure.md +67 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/01-properties.md +77 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/02-events-and-scripting.md +79 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/03-layout-and-slots-legacy.md +72 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/03-layout-and-slots.md +64 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/04-styling-legacy.md +73 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/04-styling.md +177 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/05-components.md +97 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/06-services.md +68 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/07-localization.md +40 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/08-dynamic-components.md +49 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/09-page-skeletons-legacy.md +83 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/09-page-skeletons.md +87 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/10-validation-and-sync-legacy.md +69 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/10-validation-and-sync.md +78 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/11-cli-bridge.md +97 -0
- package/dist/studio-cli/src/.ai-kit/knowledge/12-render-check.md +45 -0
- package/dist/studio-cli/src/.ai-kit/opencode.jsonc +95 -0
- package/dist/studio-cli/src/.ai-kit/reference/component-catalog-legacy.md +120 -0
- package/dist/studio-cli/src/.ai-kit/reference/component-catalog.md +135 -0
- package/dist/studio-cli/src/.ai-kit/reference/component-contracts.json +14964 -0
- package/dist/studio-cli/src/.ai-kit/reference/component-index.json +114 -0
- package/dist/studio-cli/src/.ai-kit/reference/component-styles.json +6983 -0
- package/dist/studio-cli/src/.ai-kit/reference/events-system.md +98 -0
- package/dist/studio-cli/src/.ai-kit/reference/layout-system.md +99 -0
- package/dist/studio-cli/src/.ai-kit/reference/mapping-S-vuetify-class.md +103 -0
- package/dist/studio-cli/src/.ai-kit/reference/qjson-schema-legacy.md +189 -0
- package/dist/studio-cli/src/.ai-kit/reference/qjson-schema.md +188 -0
- package/dist/studio-cli/src/.ai-kit/reference/quick-api.md +248 -0
- package/dist/studio-cli/src/.ai-kit/reference/styling-system.md +193 -0
- package/dist/studio-cli/src/.ai-kit/skills/figma-to-qjson/SKILL.md +116 -0
- package/dist/studio-cli/src/.ai-kit/skills/quick-qjson/SKILL.md +36 -0
- package/dist/studio-cli/src/.ai-kit/tools/README.md +42 -0
- package/dist/studio-cli/src/control/controlClient.js +119 -0
- package/dist/studio-cli/src/control/controlClient.js.map +1 -0
- package/dist/studio-cli/src/control/convertToBlock.js +70 -0
- package/dist/studio-cli/src/control/convertToBlock.js.map +1 -0
- package/dist/studio-cli/src/control/pickWorkspaceDir.js +105 -0
- package/dist/studio-cli/src/control/pickWorkspaceDir.js.map +1 -0
- package/dist/studio-cli/src/control/protocolHandler.js +60 -0
- package/dist/studio-cli/src/control/protocolHandler.js.map +1 -0
- package/dist/studio-cli/src/control/pull.js +135 -0
- package/dist/studio-cli/src/control/pull.js.map +1 -0
- package/dist/studio-cli/src/control/push.js +113 -0
- package/dist/studio-cli/src/control/push.js.map +1 -0
- package/dist/studio-cli/src/control/registerProtocol.js +251 -0
- package/dist/studio-cli/src/control/registerProtocol.js.map +1 -0
- package/dist/studio-cli/src/control/startWorking.js +70 -0
- package/dist/studio-cli/src/control/startWorking.js.map +1 -0
- package/dist/studio-cli/src/control/workspaceSetup.js +66 -0
- package/dist/studio-cli/src/control/workspaceSetup.js.map +1 -0
- package/dist/studio-cli/src/index.js +193 -0
- package/dist/studio-cli/src/index.js.map +1 -0
- package/dist/studio-cli/src/isolatedCommands/figmaPull.js +207 -0
- package/dist/studio-cli/src/isolatedCommands/figmaPull.js.map +1 -0
- package/dist/studio-cli/src/isolatedCommands/qjsonBuild.js +26 -0
- package/dist/studio-cli/src/isolatedCommands/qjsonBuild.js.map +1 -0
- package/dist/studio-cli/src/isolatedCommands/validateQjson.js +560 -0
- package/dist/studio-cli/src/isolatedCommands/validateQjson.js.map +1 -0
- package/dist/studio-cli/src/isolatedCommands/validateStyles.js +672 -0
- package/dist/studio-cli/src/isolatedCommands/validateStyles.js.map +1 -0
- package/dist/studio-cli/src/server/bridgeServer.js +817 -0
- package/dist/studio-cli/src/server/bridgeServer.js.map +1 -0
- package/dist/studio-cli/src/server/peer.js +119 -0
- package/dist/studio-cli/src/server/peer.js.map +1 -0
- package/dist/studio-cli/src/server/serverInfo.js +59 -0
- package/dist/studio-cli/src/server/serverInfo.js.map +1 -0
- package/dist/studio-cli/src/server/wsRaw.js +252 -0
- package/dist/studio-cli/src/server/wsRaw.js.map +1 -0
- package/dist/studio-cli/src/util/frontmatter.js +71 -0
- package/dist/studio-cli/src/util/frontmatter.js.map +1 -0
- package/dist/studio-cli/src/util/logger.js +28 -0
- package/dist/studio-cli/src/util/logger.js.map +1 -0
- package/dist/studio-cli/src/util/modelRef.js +38 -0
- package/dist/studio-cli/src/util/modelRef.js.map +1 -0
- package/dist/studio-cli/src/util/state.js +36 -0
- package/dist/studio-cli/src/util/state.js.map +1 -0
- package/dist/studio-cli/src/version.js +6 -0
- package/dist/studio-cli/src/version.js.map +1 -0
- package/dist/ui/src/common/promiseHelper.js +6 -0
- package/dist/ui/src/common/promiseHelper.js.map +1 -0
- package/dist/ui/src/domain/model/IObject.js +3 -0
- package/dist/ui/src/domain/model/IObject.js.map +1 -0
- package/dist/ui/src/domain/model/models.js +163 -0
- package/dist/ui/src/domain/model/models.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# 10 · Validation & Studio Sync — 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.** Shared-core checks + sync-back rules are identical across tracks; only the style checklist (§B) differs. On a new page / `opt.V >= 2.0` instead → [10-validation-and-sync.md](10-validation-and-sync.md).
|
|
6
|
+
|
|
7
|
+
The intended loop: **Studio → download `.qjson` folder → AI edits locally → self-check & fix in a loop → sync back to Studio.** This replaces the manual *paste-into-editor → copy-error → ask-AI → paste-back* round-trip: the AI checks its own output and fixes errors before you ever see it.
|
|
8
|
+
|
|
9
|
+
## One command: `studio buildQjson` (the fix-loop)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
studio buildQjson path/to/page.qjson
|
|
13
|
+
```
|
|
14
|
+
Runs **the official Quick compiler** (bundled with studio-cli) on the file or folder: compiles `pJson → cJson` exactly like the editor and reports **QScript/TypeScript syntax & type errors** in your handlers. (See [tools/README.md](../tools/README.md).)
|
|
15
|
+
|
|
16
|
+
The loop: **run → if there are errors, read them, fix the file, re-run → deliver when it compiles clean.**
|
|
17
|
+
|
|
18
|
+
## Pre-sync checklist
|
|
19
|
+
|
|
20
|
+
### A) Shared core — every page
|
|
21
|
+
- [ ] Module shape: three authored keys present (`pJson`, `lrids`, `opt`); ends with `};` + `export default pjson`.
|
|
22
|
+
- [ ] `cJson`/`clrids` **absent** — omitted from new files, stripped from any downloaded file you edited (Studio regenerates the compiled twins on import).
|
|
23
|
+
- [ ] Every node: `T` valid; `P.ID.H` present + unique; `_Editor.eID` present + unique (equal to ID when new; may differ after a Studio rename — not required to match); **`C` present** (use `{}` for leaves — omitting `C` is a validator error).
|
|
24
|
+
- [ ] Props: strings single-quoted in `H`; QScript object literals use `=`; `QLabel.text`=`prop`, `VIcon.text`=`text`.
|
|
25
|
+
- [ ] Events: no native `return` (use `quick.return`); object literals closed with `};`; no browser globals; custom events have `C:true`; `P` matches payload.
|
|
26
|
+
- [ ] Localization: `lrids` per language; keys exist in all languages; `LR` in props / `quick.LR` in events.
|
|
27
|
+
- [ ] Containment: `VCol` only inside `VRow`; `VRow` holds only `VCol`; item components inside their container.
|
|
28
|
+
- [ ] Charts: only `Bar`/`Line`/`Doughnut`; no `visible` on the chart.
|
|
29
|
+
- [ ] Alerts include `actionButtons`.
|
|
30
|
+
- [ ] `studio buildQjson <file>` compiles clean (no errors).
|
|
31
|
+
|
|
32
|
+
### B) Legacy style checklist
|
|
33
|
+
- [ ] **No `S` introduced** — it won't render on `V < 2`; design stays in `O.layout` / CSS classes, matching how the page already does it.
|
|
34
|
+
- [ ] `O.layout.dOpt` ↔ `O.layout.class` in sync — recompile `class` per the algorithm in [../reference/layout-system.md](../reference/layout-system.md) after any `dOpt` change (`xs` as-is; `sm/md/lg/xl` infixed).
|
|
35
|
+
- [ ] `class` prop used freely for design (typography/color/spacing/elevation) is expected here — it is the legacy styling mechanism, Web-only, and is NOT audited against `S`.
|
|
36
|
+
|
|
37
|
+
## `<<qjson:path>>` — ID↔path translation
|
|
38
|
+
Studio stores inter-page references (e.g. `CustomComponent.QJsonPath`) as internal model IDs: `<<qjson:bqrs7zi8-uq1r-2oh9-3ujg-yrl0mqulnxui>>`. The CLI translates these automatically:
|
|
39
|
+
- **`studio pull`** → converts every model ID to a human-readable project-relative path: `<<qjson:folder/page-name>>`
|
|
40
|
+
- **`studio push`** → converts paths back to model IDs before uploading
|
|
41
|
+
|
|
42
|
+
**What this means when authoring locally:**
|
|
43
|
+
- Always write `'<<qjson:path>>'` — never a raw model ID.
|
|
44
|
+
- The path is relative to the project root, without the `.qjson` extension (e.g. `<<qjson:sari-buton>>` for a root-level page, `<<qjson:forms/login>>` for a nested one).
|
|
45
|
+
- If you see a UUID-style `<<qjson:...>>` in a pulled file, that means pull did not find the target page locally — do not copy that ID format into new authoring.
|
|
46
|
+
|
|
47
|
+
### Renaming / moving / deleting a referenced page — update the referrers yourself
|
|
48
|
+
Locally the link between two pages is the **path/name** inside `<<qjson:path>>`; in Studio it is a stable model id. So on the Studio side a rename/move needs no extra work (the id never changes) — but **locally every file that referenced the old path goes stale** and `studio push` can no longer resolve it (`replacePathsWithIds` fails → broken link). When **you** (the agent) rename, move, or delete a `.qjson`, you must fix the referrers in the same change:
|
|
49
|
+
|
|
50
|
+
1. **Find referrers first.** Grep the whole project for the target's current path *before* you touch it:
|
|
51
|
+
`grep -rln "<<qjson:sari-buton>>" .` (use the exact path the referrers use — root-level is just the name, nested is `folder/name`, module-owned is `ModuleName/.../name`, no `.qjson`).
|
|
52
|
+
2. **Rename / move** → replace `<<qjson:oldPath>>` with `<<qjson:newPath>>` in every referrer. Keep the target file's frontmatter `id` unchanged so Studio still matches it.
|
|
53
|
+
3. **Delete** → the reference target no longer exists; do not leave a dangling `<<qjson:path>>`. Remove or repoint the component instance that used it in each referrer (e.g. the `CustomComponent` whose `QJsonPath` pointed there), then validate.
|
|
54
|
+
4. **Compile every file you edited** (`studio buildQjson`) — referrers included, not just the renamed page.
|
|
55
|
+
|
|
56
|
+
> If the **user** renames/moves a file manually (outside the agent), `studio push` is expected to repair referrers automatically; this section is the agent's responsibility for agent-initiated changes.
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
## Sync-back rules
|
|
60
|
+
- Keep the **filename and any embedded page id stable** — Studio matches files back by name/id. Don't rename downloaded files.
|
|
61
|
+
- Don't introduce new top-level keys or strip existing ones — **except `cJson`/`clrids`, which you always remove** (see next).
|
|
62
|
+
- Omit `cJson`/`clrids` so Studio recompiles cleanly on import — it regenerates the compiled twins whether they're absent or empty. Strip them from any downloaded file you edit; never paste compiled (`╬…╩╩`) content by hand.
|
|
63
|
+
- For multi-file edits, validate the whole folder before syncing.
|
|
64
|
+
|
|
65
|
+
## Studio CLI commands
|
|
66
|
+
|
|
67
|
+
`studio buildQjson` requires no bridge. All other commands require a running bridge (`studio connect`). For connection setup, readonly files, protocol handler, and troubleshooting see [11-cli-bridge.md](11-cli-bridge.md).
|
|
68
|
+
|
|
69
|
+
**New files (no frontmatter):** if you create a `.qjson` from scratch with no `---studio-metadata---` header, `studio push` will create it as a new model in Studio and write the frontmatter back.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 10 · Validation & Studio Sync — `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.** Shared-core checks + sync-back rules are identical across tracks; only the style checklist (§B) differs. On a **legacy** page instead → [10-validation-and-sync-legacy.md](10-validation-and-sync-legacy.md).
|
|
6
|
+
|
|
7
|
+
The intended loop: **Studio → download `.qjson` folder → AI edits locally → self-check & fix in a loop → sync back to Studio.** This replaces the manual *paste-into-editor → copy-error → ask-AI → paste-back* round-trip: the AI checks its own output and fixes errors before you ever see it.
|
|
8
|
+
|
|
9
|
+
## One command: `studio buildQjson` (the fix-loop)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
studio buildQjson path/to/page.qjson
|
|
13
|
+
```
|
|
14
|
+
Runs **the official Quick compiler** (bundled with studio-cli) on the file or folder: compiles `pJson → cJson` exactly like the editor and reports **QScript/TypeScript syntax & type errors** in your handlers, then the structural and `S`-style validations. (See [tools/README.md](../tools/README.md).)
|
|
15
|
+
|
|
16
|
+
**The tool never edits the qjson — it only reports. Every fix is yours to apply**, then re-run until clean. The style validation reports `S`/`SC` gaps as **errors**, each naming the exact params so you know precisely what to write:
|
|
17
|
+
|
|
18
|
+
- **`missing-S` / `incomplete-S`** — the node's `S` lacks default-valued params from the component's [`component-styles.json`](../reference/component-styles.json) block. Fix: add each listed param to the `"xs-xl"` range with its default value from that block (or your design's override) — rule S3. (`VCol.flexDirection` is exempt: its editor default `column` does not match the runtime-unset `row` behavior — write it deliberately when you want stacking, per rule S5.)
|
|
19
|
+
- **`missing-SC` / `incomplete-SC` / `wrong-SC-target` / `unknown-SC*`** — the node's `SC` does not match the component's `inheritedChildList` in `component-styles.json`. Fix: copy that block into `SC` **as-is** (the whole block, never a subset); remove `SC` entirely from components whose block has no `inheritedChildList`.
|
|
20
|
+
- **`unknown-S-param`** — the param doesn't exist for this component; rename per the suggestion or remove it (the compiler silently drops it).
|
|
21
|
+
|
|
22
|
+
The loop: **run → read the errors → apply the fixes yourself from `component-styles.json` → re-run → deliver when it's clean.**
|
|
23
|
+
|
|
24
|
+
## Pre-sync checklist
|
|
25
|
+
|
|
26
|
+
### A) Shared core — every page, both style systems
|
|
27
|
+
- [ ] Module shape: three authored keys present (`pJson`, `lrids`, `opt`); ends with `};` + `export default pjson`.
|
|
28
|
+
- [ ] `cJson`/`clrids` **absent** — omitted from new files, stripped from any downloaded file you edited (Studio regenerates the compiled twins on import).
|
|
29
|
+
- [ ] Every node: `T` valid; `P.ID.H` present + unique; `_Editor.eID` present + unique (equal to ID when new; may differ after a Studio rename — not required to match); **`C` present** (use `{}` for leaves — omitting `C` is a validator error).
|
|
30
|
+
- [ ] Props: strings single-quoted in `H`; QScript object literals use `=`; `QLabel.text`=`prop`, `VIcon.text`=`text`.
|
|
31
|
+
- [ ] Events: no native `return` (use `quick.return`); object literals closed with `};`; no browser globals; custom events have `C:true`; `P` matches payload.
|
|
32
|
+
- [ ] Localization: `lrids` per language; keys exist in all languages; `LR` in props / `quick.LR` in events.
|
|
33
|
+
- [ ] Containment: `VCol` only inside `VRow`; `VRow` holds only `VCol`; item components inside their container.
|
|
34
|
+
- [ ] Charts: only `Bar`/`Line`/`Doughnut`; no `visible` on the chart.
|
|
35
|
+
- [ ] Alerts include `actionButtons`.
|
|
36
|
+
- [ ] `studio buildQjson <file>` compiles clean (no errors).
|
|
37
|
+
|
|
38
|
+
### B) `S`-system style checklist
|
|
39
|
+
|
|
40
|
+
- [ ] Every visually-intentful node has an `S` object (range-keyed); child text/icons via the parent's `SC`. No structure-only nodes.
|
|
41
|
+
- [ ] **No `O.layout`** (`dOpt`/`class`) on any node — grid width, flex direction/align/justify, and spacing all live in `S`.
|
|
42
|
+
- [ ] **Class-prop audit:** if any `class` prop is present, verify each token individually against the `class → S` table in [../reference/styling-system.md](../reference/styling-system.md) §9 (full table: [../reference/mapping-S-vuetify-class.md](../reference/mapping-S-vuetify-class.md)). Tokens that have an `S` equivalent must NOT appear in `class` (e.g. `fill-height` when `S.height:"100%"` is set, `pt-2` when `S.paddingTop:"8px"` is set, `flex-column` when `S.flexDirection:"column"` is set). `class` here is a Web-only last resort, only for tokens with confirmed no `S` equivalent — and has no Mobile effect.
|
|
43
|
+
- [ ] Vuetify style-affecting props not used where `S` has an equivalent (`VCol.cols/sm/md/lg/xl` → `S.col`; `VBtn/VCard.color` → `S.backgroundColor`; `elevation` prop → `S.boxShadow`).
|
|
44
|
+
|
|
45
|
+
## `<<qjson:path>>` — ID↔path translation
|
|
46
|
+
Studio stores inter-page references (e.g. `CustomComponent.QJsonPath`) as internal model IDs: `<<qjson:bqrs7zi8-uq1r-2oh9-3ujg-yrl0mqulnxui>>`. The CLI translates these automatically:
|
|
47
|
+
- **`studio pull`** → converts every model ID to a human-readable project-relative path: `<<qjson:folder/page-name>>`
|
|
48
|
+
- **`studio push`** → converts paths back to model IDs before uploading
|
|
49
|
+
|
|
50
|
+
**What this means when authoring locally:**
|
|
51
|
+
- Always write `'<<qjson:path>>'` — never a raw model ID.
|
|
52
|
+
- The path is relative to the project root, without the `.qjson` extension (e.g. `<<qjson:sari-buton>>` for a root-level page, `<<qjson:forms/login>>` for a nested one).
|
|
53
|
+
- If you see a UUID-style `<<qjson:...>>` in a pulled file, that means pull did not find the target page locally — do not copy that ID format into new authoring.
|
|
54
|
+
|
|
55
|
+
### Renaming / moving / deleting a referenced page — update the referrers yourself
|
|
56
|
+
Locally the link between two pages is the **path/name** inside `<<qjson:path>>`; in Studio it is a stable model id. So on the Studio side a rename/move needs no extra work (the id never changes) — but **locally every file that referenced the old path goes stale** and `studio push` can no longer resolve it (`replacePathsWithIds` fails → broken link). When **you** (the agent) rename, move, or delete a `.qjson`, you must fix the referrers in the same change:
|
|
57
|
+
|
|
58
|
+
1. **Find referrers first.** Grep the whole project for the target's current path *before* you touch it:
|
|
59
|
+
`grep -rln "<<qjson:sari-buton>>" .` (use the exact path the referrers use — root-level is just the name, nested is `folder/name`, module-owned is `ModuleName/.../name`, no `.qjson`).
|
|
60
|
+
2. **Rename / move** → replace `<<qjson:oldPath>>` with `<<qjson:newPath>>` in every referrer. Keep the target file's frontmatter `id` unchanged so Studio still matches it.
|
|
61
|
+
3. **Delete** → the reference target no longer exists; do not leave a dangling `<<qjson:path>>`. Remove or repoint the component instance that used it in each referrer (e.g. the `CustomComponent` whose `QJsonPath` pointed there), then validate.
|
|
62
|
+
4. **Compile every file you edited** (`studio buildQjson`) — referrers included, not just the renamed page.
|
|
63
|
+
|
|
64
|
+
> If the **user** renames/moves a file manually (outside the agent), `studio push` is expected to repair referrers automatically; this section is the agent's responsibility for agent-initiated changes.
|
|
65
|
+
|
|
66
|
+
## Sync-back rules
|
|
67
|
+
- Keep the **filename and any embedded page id stable** — Studio matches files back by name/id. Don't rename downloaded files.
|
|
68
|
+
- Don't introduce new top-level keys or strip existing ones — **except `cJson`/`clrids`, which you always remove** (see next).
|
|
69
|
+
- Omit `cJson`/`clrids` so Studio recompiles cleanly on import — it regenerates the compiled twins whether they're absent or empty. Strip them from any downloaded file you edit; never paste compiled (`╬…╩╩`) content by hand.
|
|
70
|
+
- For multi-file edits, validate the whole folder before syncing.
|
|
71
|
+
|
|
72
|
+
## Studio CLI commands
|
|
73
|
+
|
|
74
|
+
`studio buildQjson` requires no bridge. All other commands require a running bridge (`studio connect`). For connection setup, readonly files, protocol handler, and troubleshooting see [11-cli-bridge.md](11-cli-bridge.md).
|
|
75
|
+
|
|
76
|
+
**New files (no frontmatter):** if you create a `.qjson` from scratch with no `---studio-metadata---` header, `studio push` will create it as a new model in Studio and write the frontmatter back.
|
|
77
|
+
|
|
78
|
+
**Pages embedded as block components:** a page you added into another page as a block component (not a service-caller embed) must also be converted in Studio: run `studio convertToBlock <embedded-file>` unless its frontmatter already has `blockComponent: true`. For a page newly created locally, run it **after** `studio push` — the model must exist in Studio first (push leaves new models checked out). For an existing page that isn't checked out, run `studio startWorking <file>` first.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 11 · Studio CLI Bridge — Connection & Commands
|
|
2
|
+
|
|
3
|
+
## Architecture
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Studio (browser) ←→ studio connect (local WS server) ←→ file system
|
|
7
|
+
↑
|
|
8
|
+
studio pull / push / startWorking
|
|
9
|
+
(read port from .studio/server.json in the same workspace)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
- `studio connect` starts a local WebSocket server (first free port in 7345–7350).
|
|
13
|
+
- `pull`, `push`, `startWorking` are short-lived processes; they find the running `connect` process via `.studio/server.json` and communicate over HTTP.
|
|
14
|
+
|
|
15
|
+
## `.studio/` folder
|
|
16
|
+
|
|
17
|
+
| File | Written by | Read by | Contents |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| `server.json` | `studio connect` (after hello handshake) | `pull`, `push`, `startWorking` | `{ port, pid, startedAt, appId }` |
|
|
20
|
+
| `state.json` | `pull` and `push` | `push` | `{ modelId: bodyHash }` |
|
|
21
|
+
|
|
22
|
+
If `server.json` is absent, `pull`/`push`/`startWorking` exit with "no studio server in this workspace".
|
|
23
|
+
|
|
24
|
+
## Starting the bridge — two ways
|
|
25
|
+
|
|
26
|
+
### 1. Manual (`studio connect`)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cd /path/to/workspace
|
|
30
|
+
studio connect # keep this terminal open
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Then, in the Studio browser UI, click the **Connect** button. Studio scans ports 7345–7350 and completes the handshake. Once connected, `server.json` is written and `pull`/`push`/`startWorking` become available.
|
|
34
|
+
|
|
35
|
+
> Both steps are required: running `studio connect` alone is not enough — the browser must connect to it via the Connect button.
|
|
36
|
+
|
|
37
|
+
### 2. Protocol handler (`studio://`) — if `studio protocol install` was run
|
|
38
|
+
|
|
39
|
+
After a one-time install, the Connect button in Studio can start the bridge automatically — no manual terminal command needed:
|
|
40
|
+
|
|
41
|
+
- If Studio finds no running server, it triggers `studio://connect?dir=pick`.
|
|
42
|
+
- The OS hands this URL to the registered handler, which spawns `studio connect --dir pick`.
|
|
43
|
+
- The CLI opens a native OS folder picker; the user selects the workspace and the bridge starts.
|
|
44
|
+
- Studio UI asks for confirmation, then completes the connection.
|
|
45
|
+
|
|
46
|
+
Install once:
|
|
47
|
+
```bash
|
|
48
|
+
studio protocol install # macOS: ~/Library/Application Support/StudioCLI/StudioProtocol.app
|
|
49
|
+
# Windows: HKCU\Software\Classes\studio registry key
|
|
50
|
+
studio protocol uninstall # to remove
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Readonly files and `startWorking`
|
|
54
|
+
|
|
55
|
+
Studio decides readonly status per model during pull:
|
|
56
|
+
- Checked out by **me** → `0644` (writable)
|
|
57
|
+
- **Not checked out** (free) or checked out by **someone else** → `0444` (readonly)
|
|
58
|
+
- In a **versioned / imported module** → always `0444`
|
|
59
|
+
|
|
60
|
+
`studio push` skips readonly files and reports them:
|
|
61
|
+
```
|
|
62
|
+
! skipped: MyPage.qjson — read-only (use startWorking to check out)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
To edit a readonly file:
|
|
66
|
+
1. In the Studio browser UI, check out (take ownership of) the model.
|
|
67
|
+
2. Run `studio startWorking <file>` — the CLI sends the checkout request to Studio and makes the file writable.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
studio startWorking MyPage.qjson
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
> Do **not** `chmod` the file manually — without a Studio checkout record the push would create a conflict.
|
|
74
|
+
|
|
75
|
+
## Troubleshooting
|
|
76
|
+
|
|
77
|
+
| Symptom | Cause | Fix |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| `no studio server in this workspace` | `server.json` missing — bridge not running | Run `studio connect`, then click Connect in Studio UI; or just click Connect if protocol is installed |
|
|
80
|
+
| `studio server not reachable` | `server.json` exists but process is dead | Delete `server.json`, restart `studio connect` |
|
|
81
|
+
| Connect button does nothing, no folder picker | Protocol not installed | Run `studio protocol install` |
|
|
82
|
+
| `handshake failed` | Server claimed by a different app | Stop the other `connect`; run `studio connect` in the correct workspace |
|
|
83
|
+
| Push sends 0 files | All files are readonly or unchanged | Use `studio startWorking` to check out |
|
|
84
|
+
| `checkout failed — file may be locked` | Checked out by another user | Ask that user to release the checkout in Studio UI |
|
|
85
|
+
|
|
86
|
+
## Command reference
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
studio connect # Start bridge (keep terminal open); then click Connect in Studio UI
|
|
90
|
+
studio protocol install # Register studio:// URL handler with the OS (one-time)
|
|
91
|
+
studio pull # Pull all models from the open Studio app to local files
|
|
92
|
+
studio startWorking <file> # Check out a file in Studio + make it locally writable
|
|
93
|
+
studio push # Push changed writable files back to Studio
|
|
94
|
+
studio buildQjson <file|dir> # Compile + validate qjson (no bridge needed)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Run `studio --help` for all commands, or `studio <command> --help` for a specific one (e.g. `studio buildQjson --help`).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# 12 · Render check (Playwright MCP)
|
|
2
|
+
|
|
3
|
+
`studio buildQjson` is **static** — it compiles and structurally validates, but never *runs* the page, so it can't see **runtime / console errors** (a handler that throws on init, a bad binding, a service call that blows up at render). To catch those, render the page in a real Studio editor tab and look at it.
|
|
4
|
+
|
|
5
|
+
You have a browser for this: the **Playwright MCP** server (`playwright`). You do **not** log in and you do **not** deal with any token — the CLI opens an authenticated Studio editor for you, and that tab keeps itself in sync with your pushes.
|
|
6
|
+
|
|
7
|
+
## Push first — the editor renders the *cloud* model
|
|
8
|
+
|
|
9
|
+
The test tab shows the real Studio app editor. A page you just authored locally reaches it through `studio push`: push creates brand-new models in the cloud app (writing their id back into the file's frontmatter) and mirrors every pushed body straight into the test tab. So the order is **build → push → check**:
|
|
10
|
+
|
|
11
|
+
1. `studio buildQjson <file>` is clean.
|
|
12
|
+
2. `studio push` — your model now exists in the app, and the test tab receives its body automatically (the pushed page is opened in the editor for you).
|
|
13
|
+
3. Check it.
|
|
14
|
+
|
|
15
|
+
## The loop
|
|
16
|
+
|
|
17
|
+
1. **Open the render URL** with `browser_navigate`:
|
|
18
|
+
```
|
|
19
|
+
http://127.0.0.1:<port>/render
|
|
20
|
+
```
|
|
21
|
+
`<port>` is the `port` field of `.studio/server.json` in the workspace (usually `7345`). The CLI redirects the browser into the **authenticated** Studio editor for the right org + app — you never log in and never handle credentials. The tab also connects to the CLI as a **test client** automatically. Wait for the editor to load.
|
|
22
|
+
2. **Find your page open in the editor.** Pushed pages are opened automatically; if you need another model, click its name in the file explorer on the left.
|
|
23
|
+
3. **Check for errors** in three places:
|
|
24
|
+
- the **rendered UI** itself — `browser_take_screenshot`; does it draw, or is it blank / broken / misaligned?
|
|
25
|
+
- the **browser console** — `browser_console_messages`; collect every `error` (and relevant `warning`),
|
|
26
|
+
- the **editor's own error panel / markers**, if it surfaces any.
|
|
27
|
+
4. **Fix & re-push:** map each error back to the offending node/handler in your `.qjson`, fix it locally, run `studio buildQjson`, then `studio push`. The test tab updates itself — no reload needed.
|
|
28
|
+
5. **Repeat** until the UI renders correctly and the console is clean. Then close the Playwright browser.
|
|
29
|
+
|
|
30
|
+
Interact only *inside* the editor page (clicking, typing into the rendered preview is fine). Do **not** navigate the tab elsewhere, do **not** click Save / check-in / create anything in that tab — it is a viewer; your changes become permanent only when the user reviews and saves in their own Studio session.
|
|
31
|
+
|
|
32
|
+
## What to look for in the console
|
|
33
|
+
|
|
34
|
+
- `TypeError` / `undefined is not a function` → a handler calling something that isn't there (wrong `quick.*` API, missing service, bad binding).
|
|
35
|
+
- Errors naming a component id → that node's props/events are wrong.
|
|
36
|
+
- Errors thrown on render/init → lifecycle (`onInit`/`mounted`) handler problems.
|
|
37
|
+
|
|
38
|
+
Ignore unrelated framework/network noise; focus on errors that name your components, handlers, or values.
|
|
39
|
+
|
|
40
|
+
## When it isn't available
|
|
41
|
+
|
|
42
|
+
- If `http://127.0.0.1:<port>/render` refuses the connection, the bridge isn't running — the user needs `studio connect`. Skip the render check and rely on `buildQjson`; note that runtime wasn't verified.
|
|
43
|
+
- If it returns **503** ("no authenticated Studio session"), the user's Studio tab isn't connected — ask them to open Studio and connect the CLI, then retry.
|
|
44
|
+
- If the test tab starts failing with auth errors mid-session (token expired), `browser_navigate` to the render URL again — it re-enters with a fresh session and replays your pushes.
|
|
45
|
+
- If the `playwright` MCP server isn't in your harness at all, skip the render check and rely on `buildQjson` + the [pre-sync checklist](10-validation-and-sync.md).
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
// opencode integration for the Quick AI Kit.
|
|
3
|
+
//
|
|
4
|
+
// PLACEMENT — copy this file to the ROOT of your qjson workspace (next to .ai-kit/),
|
|
5
|
+
// renamed to `opencode.json`. opencode parses JSONC, so these comments are fine to keep.
|
|
6
|
+
// Config locations & precedence: https://opencode.ai/docs/config/#locations
|
|
7
|
+
//
|
|
8
|
+
// What this wires up:
|
|
9
|
+
// 1. instructions — always-load the kit's operating guide (it links the rest; the agent
|
|
10
|
+
// reads deeper docs on demand). opencode also auto-reads AGENTS.md on its own.
|
|
11
|
+
// 2. agent — the kit's specialist subagents; prompts pulled from the kit via {file:} so
|
|
12
|
+
// there's a single source of truth (no duplication).
|
|
13
|
+
// 3. mcp — the Playwright browser for render-checks: pushed pages rendered in a real,
|
|
14
|
+
// authenticated Studio editor, with the console errors static compilation can't see.
|
|
15
|
+
// Flow: .ai-kit/knowledge/12-render-check.md. (Claude Code gets the same server from
|
|
16
|
+
// .mcp.json at the workspace root.)
|
|
17
|
+
//
|
|
18
|
+
// SKILLS are NOT registered here. opencode auto-discovers skills from `.opencode/skills/`,
|
|
19
|
+
// `.claude/skills/`, or `.agents/skills/` (walking up to the git root) — there is no config
|
|
20
|
+
// key for a custom skill path. Activate the kit's skill by placing it at
|
|
21
|
+
// .claude/skills/quick-qjson/SKILL.md (read by BOTH opencode and Claude Code)
|
|
22
|
+
// e.g. `cp -r .ai-kit/skills/quick-qjson .claude/skills/`. See that SKILL.md.
|
|
23
|
+
"$schema": "https://opencode.ai/config.json",
|
|
24
|
+
|
|
25
|
+
// Always-on context: the operating guide (it links knowledge/reference/tools/docs).
|
|
26
|
+
"instructions": [
|
|
27
|
+
".ai-kit/AGENT_GUIDE.md"
|
|
28
|
+
],
|
|
29
|
+
|
|
30
|
+
// Playwright browser for render-checks (see knowledge/12-render-check.md). The agent opens
|
|
31
|
+
// http://127.0.0.1:<port>/render — the CLI bridge signs it into the Studio editor; no login,
|
|
32
|
+
// no token handling in the agent.
|
|
33
|
+
"mcp": {
|
|
34
|
+
"playwright": {
|
|
35
|
+
"type": "local",
|
|
36
|
+
"command": ["npx", "@playwright/mcp@latest"],
|
|
37
|
+
"enabled": true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
// Pre-approve the Playwright render-check tools so the agent isn't prompted on every browser
|
|
42
|
+
// action during the loop. (Claude Code gets the equivalent via .claude/settings.local.json,
|
|
43
|
+
// which `studio pull` merges for you.) Other tools keep their default ask-first behaviour.
|
|
44
|
+
"permission": {
|
|
45
|
+
"playwright*": "allow"
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
// Specialist subagents. `permission` is opencode's current access model (the older
|
|
49
|
+
// `tools: { read: true, ... }` object is deprecated). read/grep/glob are on by default;
|
|
50
|
+
// we explicitly allow the mutating + shell actions these agents need.
|
|
51
|
+
"agent": {
|
|
52
|
+
"quick-qjson-author": {
|
|
53
|
+
"description": "Router: reads root-level opt.V and routes to the right track author — quick-qjson-author-s for S-system pages (new / opt.V >= 2.0), quick-qjson-author-legacy for legacy V<2 pages. Owns the shared structure/containment/events flow.",
|
|
54
|
+
"mode": "subagent",
|
|
55
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
56
|
+
"prompt": "{file:./.ai-kit/agents/quick-qjson-author.md}"
|
|
57
|
+
},
|
|
58
|
+
"quick-qjson-author-s": {
|
|
59
|
+
"description": "Authors/edits .qjson pages on the S (new) style system — new pages, or opt.V >= 2.0. Design (visual AND layout) is authored in the node's S object. For legacy V<2 pages use quick-qjson-author-legacy.",
|
|
60
|
+
"mode": "subagent",
|
|
61
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
62
|
+
"prompt": "{file:./.ai-kit/agents/quick-qjson-author-s.md}"
|
|
63
|
+
},
|
|
64
|
+
"quick-qjson-author-legacy": {
|
|
65
|
+
"description": "Authors/edits .qjson pages on the legacy cssClass style system — opt.V missing or < 2.0, where S does not render. Design via O.layout (dOpt/class) + CSS utility classes. For new pages / opt.V >= 2.0 use quick-qjson-author-s.",
|
|
66
|
+
"mode": "subagent",
|
|
67
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
68
|
+
"prompt": "{file:./.ai-kit/agents/quick-qjson-author-legacy.md}"
|
|
69
|
+
},
|
|
70
|
+
"quick-styling": {
|
|
71
|
+
"description": "Styling AND layout on S-SYSTEM pages (new, or opt.V >= 2.0) via the cross-platform S Style System (S/SC); in the S system layout — grid col/direction/spacing — is also S. CSS is Web-only. For legacy V<2 pages use quick-styling-legacy.",
|
|
72
|
+
"mode": "subagent",
|
|
73
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
74
|
+
"prompt": "{file:./.ai-kit/agents/quick-styling.md}"
|
|
75
|
+
},
|
|
76
|
+
"quick-events": {
|
|
77
|
+
"description": "Writes the E (events) block: TS/QScript handlers, quick.* API, lifecycle, services. Shared across both style systems.",
|
|
78
|
+
"mode": "subagent",
|
|
79
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
80
|
+
"prompt": "{file:./.ai-kit/agents/quick-events.md}"
|
|
81
|
+
},
|
|
82
|
+
"quick-styling-legacy": {
|
|
83
|
+
"description": "Styling AND layout on LEGACY (cssClass) pages — opt.V missing or < 2.0, where S does NOT render. Owns O.layout (dOpt+compiled class) for grid/flex/spacing and CSS utility classes for visual design.",
|
|
84
|
+
"mode": "subagent",
|
|
85
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
86
|
+
"prompt": "{file:./.ai-kit/agents/quick-styling-legacy.md}"
|
|
87
|
+
},
|
|
88
|
+
"qjson-legacy-migrator": {
|
|
89
|
+
"description": "Migrates a single Quick .qjson file from the legacy system (O.layout/dOpt/Vuetify props) to the S-first style system. One file at a time, controlled per-node migration with a decision log; compiles to verify. Use only for a deliberate opt-in migration, not an incidental edit.",
|
|
90
|
+
"mode": "subagent",
|
|
91
|
+
"permission": { "edit": "allow", "bash": "allow" },
|
|
92
|
+
"prompt": "{file:./.ai-kit/agents/qjson-legacy-migrator.md}"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Component Catalog — Authoritative `T` Names & Contracts (legacy `cssClass` system)
|
|
2
|
+
|
|
3
|
+
> **Style system: legacy (`cssClass`).** For legacy pages only — root-level `opt.V` missing or `< 2.0`, where `S` does not render. Component identity (`T` names, props, events) is the same in both eras; only the `VContainer`/`VRow`/`VCol` styling note below is legacy-specific. On a new page, or one with `opt.V >= 2.0`? Use [component-catalog.md](component-catalog.md) instead.
|
|
4
|
+
>
|
|
5
|
+
> Source of truth: the Quick runtime component registry (`packages/websdk/src/components/providers/VuetifyComponents.ts`, `LocalComponents.ts`, `ChartComponents.ts`, `common/shrimp/constants/knownComps.ts`). The machine-readable list lives in [component-index.json](component-index.json). Vuetify components follow Vuetify 2 prop/event/slot semantics unless noted.
|
|
6
|
+
|
|
7
|
+
## 1. Lifecycle / system (non-visual or embedding)
|
|
8
|
+
|
|
9
|
+
| `T` | Role |
|
|
10
|
+
|-----|------|
|
|
11
|
+
| `Messaging` | Page event hub. Holds lifecycle hooks (`PreRender`, `EndRender`, `PostRender`, `Restored`) and custom events. Prop `masterPath`; can declare `ExternalProps`/`ExternalEvents`. `O.cType: "child"`. |
|
|
12
|
+
| `CustomComponent` | Embeds another `.qjson` via prop `QJsonPath`; cascades `readonly`/`disabled` to children. `O: { cType:"child", dynProps:true }`. |
|
|
13
|
+
| `RenderingComponent` | Root embedder for a qjson view (props `QJsonPath`, `readonly`, `disabled`). |
|
|
14
|
+
| `Ghost` | Empty placeholder div; used as a structural child / insertion anchor. |
|
|
15
|
+
|
|
16
|
+
## 2. Charts (Chart.js) — only three exist
|
|
17
|
+
|
|
18
|
+
| `T` | Notes |
|
|
19
|
+
|-----|-------|
|
|
20
|
+
| `Bar` | vertical/horizontal bars (`indexAxis: 'x'|'y'`) |
|
|
21
|
+
| `Line` | has `fill`, `tension`, point styling |
|
|
22
|
+
| `Doughnut` | `cutoutPercentage: 0` renders a **pie** shape |
|
|
23
|
+
|
|
24
|
+
> **There is no `Pie` runtime component.** The chart library registers exactly `{ Doughnut, Bar, Line }`. `QPieChart` is a mobile-only placeholder. Use `Doughnut` for pie charts.
|
|
25
|
+
|
|
26
|
+
Chart prop vocabulary: `labels` (array of axis/segment labels), `data` (number array), `label` (singular dataset name), `backgroundColor`/`borderColor` (array or string), `borderWidth`, `width`/`height`, axis (`xDisplay`/`yDisplay`), legend (`legendDisplay`/`legendPosition`), data labels (`labelDisplay`, ...). Charts have **no `visible` prop** — wrap in a `VCol` and toggle that. Runtime updates: mutate `components.<id>.data` then `(<any>components.<id>).update()`.
|
|
27
|
+
|
|
28
|
+
## 3. Quick-native components
|
|
29
|
+
|
|
30
|
+
`QLabel`, `Ghost`, `VContainer`, `VCol`, `VRow` (layout wrappers — note these three layout names are V-prefixed but implemented by Quick), `QFrame`, `QPhoneInput`, `QOtp`, `QMenu`, `QAnimation`, `QVideo`, `QMap`, `QRichText`, `QRichContent`, `QImgZoom`, `QLightBox`, `QDocumentViewer`, `QReCaptcha`, `QTableCell`, `QTutorial`, `QAppointmentCalendar`, `GroupBox`, `InfiniteScroll`, `LiveConnection`, `Tooltip`, `CustomAvatarComp`, `VInlineDatepicker`, `VInlineTimePicker`, `VPdfFileViewer`, `VSubElement`, `GoldenLayout`.
|
|
31
|
+
|
|
32
|
+
## 4. Vuetify components (V-prefixed)
|
|
33
|
+
|
|
34
|
+
See [component-index.json](component-index.json) `vuetify` array for the full list (80+). Common: `VBtn`, `VCard`, `VTextField`, `VTextarea`, `VSelect`, `VCombobox`, `VAutocomplete`, `VCheckbox`, `VSwitch`, `VRadio`/`VRadioGroup`, `VSlider`/`VRangeSlider`, `VDataTable`, `VDataIterator`, `VDialog`, `VIcon`, `VImg`, `VChip`, `VAlert`, `VSnackbar`, `VTabs`/`VTab`/`VTabItem`, `VStepper*`, `VExpansionPanel*`, `VPagination`, `VBreadcrumbs`, `VDivider`, `VAvatar`, `VBadge`, `VProgressCircular`/`VProgressLinear`, `VCarousel`/`VCarouselItem`, `VSkeletonLoader`, `VNavigationDrawer`, `VAppBar`, `VToolbar`, `VFooter`, `VSheet`, `VList*`, `VMenu`, `VTooltip`, `VDatePicker`/`VTimePicker`, `VFileInput`, `VRating`, `VSparkline`, `VTreeview`, `VForm`.
|
|
35
|
+
|
|
36
|
+
## 5. Special Quick props injected on every component
|
|
37
|
+
|
|
38
|
+
These are handled by the rendering layer, not plain Vuetify props:
|
|
39
|
+
|
|
40
|
+
| Prop | `T` | Meaning |
|
|
41
|
+
|------|-----|---------|
|
|
42
|
+
| `ID` | `prop` | required unique runtime id; reference as `components.<ID>`. `_Editor.eID` is a separate unique editor id (equal to ID when auto-generated, may differ after rename — not required to match) |
|
|
43
|
+
| `visible` | `prop` | show/hide (injected getter/setter; simple equality expressions allowed) |
|
|
44
|
+
| `Render` | `prop` | if falsey, the component is not rendered at all (`Render:true` + `eager:true` to pre-build dialog contents) |
|
|
45
|
+
| `qValue` | `prop` | Quick value binding; normalized to Vuetify's `value` at render. Use for inputs and to open/close dialogs (`components.dlg.qValue=true`). |
|
|
46
|
+
| `class` | `class` | CSS classes (`T:"class"`) |
|
|
47
|
+
|
|
48
|
+
> Some Vuetify components map `value` to an internal name (`VTextField`/`VExpansionPanels` → `internalValue`; `VSwitch`/`VCheckbox` → `inputValue`). Setting `qValue` handles this for you — prefer `qValue`.
|
|
49
|
+
|
|
50
|
+
## 6. Per-component criticals (verified against runtime + real files)
|
|
51
|
+
|
|
52
|
+
### `QLabel` — text is a PROP
|
|
53
|
+
```json
|
|
54
|
+
{ "T": "QLabel", "P": {
|
|
55
|
+
"ID": { "H": "lblTitle", "T": "prop" },
|
|
56
|
+
"text": { "H": "'Page Title'", "T": "prop" } },
|
|
57
|
+
"E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "lblTitle" } }
|
|
58
|
+
```
|
|
59
|
+
`text` uses `T: "prop"`. `HL` defaults to `QS`, so localized/expression text works directly: `"H": "LR('title')"`. Do **not** use `T: "text"` for QLabel.
|
|
60
|
+
|
|
61
|
+
### `VIcon` — icon name is `text` with PType `"text"` ⚠️
|
|
62
|
+
```json
|
|
63
|
+
{ "T": "VIcon", "P": {
|
|
64
|
+
"ID": { "H": "icHome", "T": "prop" },
|
|
65
|
+
"text": { "H": "'mdi-home'", "T": "text" } },
|
|
66
|
+
"E": {}, "C": {}, "O": { "cType": "slot" }, "_Editor": { "eID": "icHome" } }
|
|
67
|
+
```
|
|
68
|
+
The icon name goes in `text` with **`T: "text"`** (verified in real files, e.g. `VDataTableIconExample.qjson`). PType `text` renders as slot content, which Vuetify reads as the icon. (This corrects older docs that said `T:"prop"`.)
|
|
69
|
+
|
|
70
|
+
### `VBtn`
|
|
71
|
+
- No text prop — put a child `QLabel`/`VIcon`/`VImg` in the `default` slot.
|
|
72
|
+
- Flat style: `depressed:true`, `elevation:0`.
|
|
73
|
+
|
|
74
|
+
### `VCard`
|
|
75
|
+
- Flat style: `elevation:0`. Slots: `default` (+ Vuetify `title`/`subtitle`/`actions`).
|
|
76
|
+
|
|
77
|
+
### `VContainer` / `VRow` / `VCol`
|
|
78
|
+
- Layout wrappers (Quick-implemented) — the grid is `VContainer > VRow > VCol`. Structural props: `VContainer` has `fluid`, `noGutters`, `eager`. `VCol` carries its own `layout-chooser` (nested flex). See [../knowledge/03-layout-and-slots-legacy.md](../knowledge/03-layout-and-slots-legacy.md).
|
|
79
|
+
- **Column width:** `c:col-N` (1–12) in the `VCol`'s `O.layout.dOpt` + the matching `col-N` in the compiled `O.layout.class` (deterministic; `P.cols` alone is not) — see [layout-system.md](layout-system.md).
|
|
80
|
+
- **Do NOT rely on `P.cols` alone** — it is unreliable across editor/runtime. Use `c:col-N` in `dOpt` with the synced class.
|
|
81
|
+
- Flex direction/align/justify come from `dOpt` tokens (`fd:`/`a:`/`j:`) on the node, mirrored into the compiled `class`.
|
|
82
|
+
|
|
83
|
+
### `VTextField` / inputs
|
|
84
|
+
- `dense:true`, `outlined:true`, usually `hideDetails:true`.
|
|
85
|
+
- Masking via `format` (`T:"attr"`): e.g. `number`, `email`, `iban`, `turkishMobilePhone`, `creditcard`, `regex`, `alphaNumeric`, ... Validation via `rules` (QScript array of `quick.Quick.validation.*`).
|
|
86
|
+
|
|
87
|
+
### `VSelect` / `VCombobox` / `VAutocomplete`
|
|
88
|
+
- `items` is QScript: `[{text='A', value=1}]` (use `=`). For service data prefer raw items + `itemText`/`itemValue`/`returnObject:true`.
|
|
89
|
+
|
|
90
|
+
### `VDataTable`
|
|
91
|
+
- `headers` and static `items` are **props** (QScript `=` literals); dynamic rows assigned in a callback (`components.tbl.items = rows;`).
|
|
92
|
+
- Custom cells: scoped slot keyed `item.<columnValue>`, `cType:"scopedSlot"`; `item` is available in child bindings.
|
|
93
|
+
- `click:row` params: `"P": "index:any,row:any"` — `index` is the row data.
|
|
94
|
+
- `itemsPerPage` commonly `10`.
|
|
95
|
+
|
|
96
|
+
### `VDialog`
|
|
97
|
+
- Open/close: `components.<id>.qValue = true/false`.
|
|
98
|
+
- Add `Render:true` + `eager:true` to access inner components before opening.
|
|
99
|
+
- Non-persistent dialogs: handle `click:outside` to set `qValue=false`.
|
|
100
|
+
|
|
101
|
+
### `VPagination`
|
|
102
|
+
- `length`/`totalVisible` are string values; `input` handler's first line: `quick.this.qValue = number;` (param `"P":"number:number"`).
|
|
103
|
+
|
|
104
|
+
### `VChip`
|
|
105
|
+
- `color`: for per-row variation use static colors + sibling toggling with `visible` (so rows aren't blocked on conditional color expressions). Allowed: `default|primary|secondary|accent|success|error|info|warning`.
|
|
106
|
+
|
|
107
|
+
## 7. Valid props, events & style params per component
|
|
108
|
+
The exhaustive, authoritative per-component contract is in [component-contracts.json](component-contracts.json). For each prop it gives:
|
|
109
|
+
- `pType` — `prop` / `class` / `text` / `attr` (the qjson kind)
|
|
110
|
+
- `type` — the **value type** (`string`, `boolean`, `number`, `number | string`, `Array<any>`, `Function`, `object`, …)
|
|
111
|
+
- `options` — allowed **enum values** (quoted as they appear in `H`, e.g. `color`: `'primary'`,`'secondary'`,…)
|
|
112
|
+
- `default` — the editor default
|
|
113
|
+
|
|
114
|
+
And the component's **events** as `{ name, params?: [{name, type}] }` — the real event names plus the exact param signature to put in a handler's `P` (e.g. `VDataTable.click:row` → `index:any, row:IVDataTableClickRow`). Generated by merging the editor PIM (`ComponentPims.ts` → prop existence + PType + event names), `componentList.js` (`componentOptions` → value type + options + default), and `eventParamDict.ts` (per-event params). Use it to pick a real prop/event, the right value **type and quoting** (a `boolean` is bare `true`, not `'true'`), valid enum values, and correct handler params. Treat it as the safe subset (real prop/event, correct PType, unquoted boolean); `options` are guidance. Regenerated from the Quick runtime sources when the runtime changes.
|
|
115
|
+
|
|
116
|
+
**Style params** live in [component-styles.json](component-styles.json) — per `T`, the Style-tab (`S`) params the component supports, each with value `type` and editor `default`. Read it before writing `S` so you only set supported params (generation guidance; not hard-validated, since the editor expands composite border/shadow/font widgets into extra sub-params).
|
|
117
|
+
|
|
118
|
+
## 8. Editor names vs runtime names
|
|
119
|
+
|
|
120
|
+
The web editor may present friendlier names (e.g. "Text/Label" for `QLabel`, "Button" for `VBtn`). When **authoring the `T` field**, always use the runtime name from [component-index.json](component-index.json). When unsure whether a `T` is valid, check that file.
|