@gxp-dev/mod-ui 2.0.12 → 2.0.14
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/_styles.d.ts +1 -0
- package/dist/_styles.d.ts.map +1 -0
- package/dist/_styles.js +2 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +4 -5
- package/dist/boolean.d.ts.map +1 -1
- package/dist/boolean.js +5 -6
- package/dist/builder/dependency-list-builder.d.ts +2 -0
- package/dist/builder/dependency-list-builder.js +3 -0
- package/dist/builder/element-list-builder.d.ts +2 -0
- package/dist/builder/element-list-builder.js +3 -0
- package/dist/builder/form-builder.d.ts +2 -0
- package/dist/builder/form-builder.js +3 -0
- package/dist/builder/grid-builder.d.ts +2 -0
- package/dist/builder/grid-builder.js +3 -0
- package/dist/builder/object-builder.d.ts +2 -0
- package/dist/builder/object-builder.js +3 -0
- package/dist/builder/preset-builder.d.ts +2 -0
- package/dist/builder/preset-builder.js +3 -0
- package/dist/builder/quiz-builder.d.ts +2 -0
- package/dist/builder/quiz-builder.js +3 -0
- package/dist/builder/reactive-canvas-builder.d.ts +2 -0
- package/dist/builder/reactive-canvas-builder.js +3 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +9 -10
- package/dist/cards/card-list.d.ts +2 -0
- package/dist/cards/card-list.js +3 -0
- package/dist/cards/data-table.d.ts +2 -0
- package/dist/cards/data-table.js +3 -0
- package/dist/cards/element-display.d.ts +2 -0
- package/dist/cards/element-display.js +3 -0
- package/dist/cards/element-list.d.ts +2 -0
- package/dist/cards/element-list.js +3 -0
- package/dist/cards/grid-view.d.ts +2 -0
- package/dist/cards/grid-view.js +3 -0
- package/dist/cards/info.d.ts +2 -0
- package/dist/cards/info.js +3 -0
- package/dist/cards/tab-list.d.ts +2 -0
- package/dist/cards/tab-list.js +3 -0
- package/dist/cards.d.ts.map +1 -1
- package/dist/cards.js +8 -9
- package/dist/chunks/AssetPickerFile-J5SVi2VJ.js +252 -0
- package/dist/chunks/AssetPickerFile-J5SVi2VJ.js.map +1 -0
- package/dist/chunks/AsyncSelectOption-DD4PTdGr.js +155 -0
- package/dist/chunks/AsyncSelectOption-DD4PTdGr.js.map +1 -0
- package/dist/chunks/AsyncSelectPicker-PwS8Aa6W.js +167 -0
- package/dist/chunks/AsyncSelectPicker-PwS8Aa6W.js.map +1 -0
- package/dist/chunks/AutoCompleteOption-BRUgf-NE.js +112 -0
- package/dist/chunks/AutoCompleteOption-BRUgf-NE.js.map +1 -0
- package/dist/chunks/BannerDisplay-CiuAyiqo.js +56 -0
- package/dist/chunks/BannerDisplay-CiuAyiqo.js.map +1 -0
- package/dist/chunks/BarcodeDisplay-kdnMuers.js +50 -0
- package/dist/chunks/BarcodeDisplay-kdnMuers.js.map +1 -0
- package/dist/chunks/BarcodeScannerInput-gclsYW45.js +165 -0
- package/dist/chunks/BarcodeScannerInput-gclsYW45.js.map +1 -0
- package/dist/chunks/BuildStatus-BYU2VteT.js +189 -0
- package/dist/chunks/BuildStatus-BYU2VteT.js.map +1 -0
- package/dist/chunks/ButtonAction-hCdoVUTw.js +131 -0
- package/dist/chunks/ButtonAction-hCdoVUTw.js.map +1 -0
- package/dist/chunks/ButtonGroupAction-CNKJcaR9.js +73 -0
- package/dist/chunks/ButtonGroupAction-CNKJcaR9.js.map +1 -0
- package/dist/chunks/CardListCard-BipufbBz.js +105 -0
- package/dist/chunks/CardListCard-BipufbBz.js.map +1 -0
- package/dist/chunks/CardRenderer-N4R08uDO.js +140 -0
- package/dist/chunks/CardRenderer-N4R08uDO.js.map +1 -0
- package/dist/chunks/CarouselDisplay-rn7JL3jv.js +141 -0
- package/dist/chunks/CarouselDisplay-rn7JL3jv.js.map +1 -0
- package/dist/chunks/ChartDisplay-CjXvzzQv.js +68 -0
- package/dist/chunks/ChartDisplay-CjXvzzQv.js.map +1 -0
- package/dist/chunks/ChatMessage-Bp6bw3Xo.js +215 -0
- package/dist/chunks/ChatMessage-Bp6bw3Xo.js.map +1 -0
- package/dist/chunks/CheckboxBoolean-Br3cEUia.js +79 -0
- package/dist/chunks/CheckboxBoolean-Br3cEUia.js.map +1 -0
- package/dist/chunks/CheckboxOption-CckqMgyH.js +96 -0
- package/dist/chunks/CheckboxOption-CckqMgyH.js.map +1 -0
- package/dist/chunks/CodeEditor-DOln7VTZ.js +7219 -0
- package/dist/chunks/CodeEditor-DOln7VTZ.js.map +1 -0
- package/dist/chunks/ColorPicker-qCaoBqPV.js +151 -0
- package/dist/chunks/ColorPicker-qCaoBqPV.js.map +1 -0
- package/dist/chunks/DataModelPicker-8xyYcLdo.js +95 -0
- package/dist/chunks/DataModelPicker-8xyYcLdo.js.map +1 -0
- package/dist/chunks/DataTableCard-BpsxPMb7.js +322 -0
- package/dist/chunks/DataTableCard-BpsxPMb7.js.map +1 -0
- package/dist/chunks/DatatableCard-BNMi1Bqa.js +114 -0
- package/dist/chunks/DatatableCard-BNMi1Bqa.js.map +1 -0
- package/dist/chunks/DatePicker-Cr_aYdU2.js +131 -0
- package/dist/chunks/DatePicker-Cr_aYdU2.js.map +1 -0
- package/dist/chunks/DateTimePicker-mDoHjV_R.js +160 -0
- package/dist/chunks/DateTimePicker-mDoHjV_R.js.map +1 -0
- package/dist/chunks/DependencyListBuilder-Cf8AMMJM.js +557 -0
- package/dist/chunks/DependencyListBuilder-Cf8AMMJM.js.map +1 -0
- package/dist/chunks/DialogBlock-BuZTVRb2.js +79 -0
- package/dist/chunks/DialogBlock-BuZTVRb2.js.map +1 -0
- package/dist/chunks/DropzoneFile-CTl8bEtC.js +156 -0
- package/dist/chunks/DropzoneFile-CTl8bEtC.js.map +1 -0
- package/dist/chunks/ElementDisplayCard-CgWTdKNZ.js +51 -0
- package/dist/chunks/ElementDisplayCard-CgWTdKNZ.js.map +1 -0
- package/dist/chunks/ElementListBuilder-Dcz13diI.js +275 -0
- package/dist/chunks/ElementListBuilder-Dcz13diI.js.map +1 -0
- package/dist/chunks/ElementListCard-B8oVHSqE.js +75 -0
- package/dist/chunks/ElementListCard-B8oVHSqE.js.map +1 -0
- package/dist/chunks/ElementRenderer-DUhlfnFD.js +161 -0
- package/dist/chunks/ElementRenderer-DUhlfnFD.js.map +1 -0
- package/dist/chunks/ElementsBlock-CP_rXLwA.js +52 -0
- package/dist/chunks/ElementsBlock-CP_rXLwA.js.map +1 -0
- package/dist/chunks/EmailInput-Pdtb58_R.js +83 -0
- package/dist/chunks/EmailInput-Pdtb58_R.js.map +1 -0
- package/dist/chunks/FileTree-C2NAMTsO.js +191 -0
- package/dist/chunks/FileTree-C2NAMTsO.js.map +1 -0
- package/dist/chunks/FormBuilder-D314W1mI.js +663 -0
- package/dist/chunks/FormBuilder-D314W1mI.js.map +1 -0
- package/dist/chunks/GitCodeEditor-CQnTM-xQ.js +244 -0
- package/dist/chunks/GitCodeEditor-CQnTM-xQ.js.map +1 -0
- package/dist/chunks/GridBuilder-BxaojA1u.js +380 -0
- package/dist/chunks/GridBuilder-BxaojA1u.js.map +1 -0
- package/dist/chunks/GridCard-Chdn2wRI.js +64 -0
- package/dist/chunks/GridCard-Chdn2wRI.js.map +1 -0
- package/dist/chunks/GridViewCard-BxiLP409.js +110 -0
- package/dist/chunks/GridViewCard-BxiLP409.js.map +1 -0
- package/dist/chunks/HtmlDisplay-B9AZpx_5.js +25 -0
- package/dist/chunks/HtmlDisplay-B9AZpx_5.js.map +1 -0
- package/dist/chunks/HtmlEditor-DmR-g-YR.js +1038 -0
- package/dist/chunks/HtmlEditor-DmR-g-YR.js.map +1 -0
- package/dist/chunks/IconDisplay-CXT7HaLS.js +53 -0
- package/dist/chunks/IconDisplay-CXT7HaLS.js.map +1 -0
- package/dist/chunks/IconPicker-B0sf3xsj.js +109 -0
- package/dist/chunks/IconPicker-B0sf3xsj.js.map +1 -0
- package/dist/chunks/IconPickerInline-D8b5_XxF.js +118 -0
- package/dist/chunks/IconPickerInline-D8b5_XxF.js.map +1 -0
- package/dist/chunks/IconToggleBoolean-CPIcs--Q.js +84 -0
- package/dist/chunks/IconToggleBoolean-CPIcs--Q.js.map +1 -0
- package/dist/chunks/IframeDisplay-CTQ16HhD.js +39 -0
- package/dist/chunks/IframeDisplay-CTQ16HhD.js.map +1 -0
- package/dist/chunks/ImageDisplay-CJA_mjzo.js +36 -0
- package/dist/chunks/ImageDisplay-CJA_mjzo.js.map +1 -0
- package/dist/chunks/ImageEditor-HEbjO2Db.js +70 -0
- package/dist/chunks/ImageEditor-HEbjO2Db.js.map +1 -0
- package/dist/chunks/InfoCard-1LxVfz7I.js +141 -0
- package/dist/chunks/InfoCard-1LxVfz7I.js.map +1 -0
- package/dist/chunks/InfoCard-CnnX07eL.js +92 -0
- package/dist/chunks/InfoCard-CnnX07eL.js.map +1 -0
- package/dist/chunks/IntegrationConnectorOption-Bv5geOlD.js +214 -0
- package/dist/chunks/IntegrationConnectorOption-Bv5geOlD.js.map +1 -0
- package/dist/chunks/IntegrationConnectorPicker-D_CjfiX7.js +238 -0
- package/dist/chunks/IntegrationConnectorPicker-D_CjfiX7.js.map +1 -0
- package/dist/chunks/LinkAction-Cz5utmrZ.js +59 -0
- package/dist/chunks/LinkAction-Cz5utmrZ.js.map +1 -0
- package/dist/chunks/ListCard-BK8nRz13.js +72 -0
- package/dist/chunks/ListCard-BK8nRz13.js.map +1 -0
- package/dist/chunks/ListOption-Bo64Nai8.js +97 -0
- package/dist/chunks/ListOption-Bo64Nai8.js.map +1 -0
- package/dist/chunks/MapPicker-SC23gptf.js +121 -0
- package/dist/chunks/MapPicker-SC23gptf.js.map +1 -0
- package/dist/chunks/MarkdownDisplay-Df5zuwlv.js +38 -0
- package/dist/chunks/MarkdownDisplay-Df5zuwlv.js.map +1 -0
- package/dist/chunks/MarkdownEditor-BXLLj4ol.js +93 -0
- package/dist/chunks/MarkdownEditor-BXLLj4ol.js.map +1 -0
- package/dist/chunks/ModalBlock-B1EezrzH.js +82 -0
- package/dist/chunks/ModalBlock-B1EezrzH.js.map +1 -0
- package/dist/chunks/NumberInput-DNQo57YU.js +95 -0
- package/dist/chunks/NumberInput-DNQo57YU.js.map +1 -0
- package/dist/chunks/ObjectBuilder-2gxFY61a.js +381 -0
- package/dist/chunks/ObjectBuilder-2gxFY61a.js.map +1 -0
- package/dist/chunks/PasswordInput-D9Ok_2e6.js +109 -0
- package/dist/chunks/PasswordInput-D9Ok_2e6.js.map +1 -0
- package/dist/chunks/PillSelectOption-BF_982xH.js +93 -0
- package/dist/chunks/PillSelectOption-BF_982xH.js.map +1 -0
- package/dist/chunks/PresetBuilder-bfko3eAb.js +130 -0
- package/dist/chunks/PresetBuilder-bfko3eAb.js.map +1 -0
- package/dist/chunks/ProgressBarDisplay-CnOulmUw.js +40 -0
- package/dist/chunks/ProgressBarDisplay-CnOulmUw.js.map +1 -0
- package/dist/chunks/PullRequestsList-Dg-zowrz.js +253 -0
- package/dist/chunks/PullRequestsList-Dg-zowrz.js.map +1 -0
- package/dist/chunks/QrCodeDisplay-xmSCGxgu.js +47 -0
- package/dist/chunks/QrCodeDisplay-xmSCGxgu.js.map +1 -0
- package/dist/chunks/QuizBuilder-CRhL-P6I.js +442 -0
- package/dist/chunks/QuizBuilder-CRhL-P6I.js.map +1 -0
- package/dist/chunks/RadioBoolean-DLoE2Ckl.js +95 -0
- package/dist/chunks/RadioBoolean-DLoE2Ckl.js.map +1 -0
- package/dist/chunks/RadioOption-BtElSWLx.js +110 -0
- package/dist/chunks/RadioOption-BtElSWLx.js.map +1 -0
- package/dist/chunks/RangeSliderInput-Bizx2rv5.js +82 -0
- package/dist/chunks/RangeSliderInput-Bizx2rv5.js.map +1 -0
- package/dist/chunks/ReactiveCanvasBuilder-COIZYfDx.js +459 -0
- package/dist/chunks/ReactiveCanvasBuilder-COIZYfDx.js.map +1 -0
- package/dist/chunks/ReactiveCanvasDisplay-CmStQoGO.js +49 -0
- package/dist/chunks/ReactiveCanvasDisplay-CmStQoGO.js.map +1 -0
- package/dist/chunks/RepeatableBlock-vSZem8Oa.js +140 -0
- package/dist/chunks/RepeatableBlock-vSZem8Oa.js.map +1 -0
- package/dist/chunks/RepeatableRow-CtJm_xGm.js +24 -0
- package/dist/chunks/RepeatableRow-CtJm_xGm.js.map +1 -0
- package/dist/chunks/RichTextEditor-BjUtQx6D.js +207 -0
- package/dist/chunks/RichTextEditor-BjUtQx6D.js.map +1 -0
- package/dist/chunks/SearchInput-Bc0p16ND.js +84 -0
- package/dist/chunks/SearchInput-Bc0p16ND.js.map +1 -0
- package/dist/chunks/SelectMultipleOption-qwlcwb88.js +127 -0
- package/dist/chunks/SelectMultipleOption-qwlcwb88.js.map +1 -0
- package/dist/chunks/SelectOption-Crk-kANq.js +116 -0
- package/dist/chunks/SelectOption-Crk-kANq.js.map +1 -0
- package/dist/chunks/SpriteDisplay-BQPEj5P8.js +49 -0
- package/dist/chunks/SpriteDisplay-BQPEj5P8.js.map +1 -0
- package/dist/chunks/SwitchBoolean-B9KYU4Ko.js +84 -0
- package/dist/chunks/SwitchBoolean-B9KYU4Ko.js.map +1 -0
- package/dist/chunks/TabCard-0so26E89.js +112 -0
- package/dist/chunks/TabCard-0so26E89.js.map +1 -0
- package/dist/chunks/TabListCard-DTtWVg57.js +103 -0
- package/dist/chunks/TabListCard-DTtWVg57.js.map +1 -0
- package/dist/chunks/TelInput-C14K40Ew.js +83 -0
- package/dist/chunks/TelInput-C14K40Ew.js.map +1 -0
- package/dist/chunks/TextInput-BzL0CCd5.js +83 -0
- package/dist/chunks/TextInput-BzL0CCd5.js.map +1 -0
- package/dist/chunks/TextareaInput-BY8BMgJ9.js +85 -0
- package/dist/chunks/TextareaInput-BY8BMgJ9.js.map +1 -0
- package/dist/chunks/TimePicker-C_71cBmo.js +125 -0
- package/dist/chunks/TimePicker-C_71cBmo.js.map +1 -0
- package/dist/chunks/TimezonePicker-5XokaK-n.js +113 -0
- package/dist/chunks/TimezonePicker-5XokaK-n.js.map +1 -0
- package/dist/chunks/TypeDisplay-D8R6boEc.js +77 -0
- package/dist/chunks/TypeDisplay-D8R6boEc.js.map +1 -0
- package/dist/chunks/UploadFile-CB5QsfE3.js +134 -0
- package/dist/chunks/UploadFile-CB5QsfE3.js.map +1 -0
- package/dist/chunks/UrlInput-BFGNlZTC.js +83 -0
- package/dist/chunks/UrlInput-BFGNlZTC.js.map +1 -0
- package/dist/chunks/VideoPlayerDisplay-DKnCfE05.js +41 -0
- package/dist/chunks/VideoPlayerDisplay-DKnCfE05.js.map +1 -0
- package/dist/chunks/_plugin-vue_export-helper-B3ysoDQm.js +8 -0
- package/dist/chunks/alert-BaV_rA2M.js +64 -0
- package/dist/chunks/alert-BaV_rA2M.js.map +1 -0
- package/dist/chunks/avatar-D__e2bNE.js +80 -0
- package/dist/chunks/avatar-D__e2bNE.js.map +1 -0
- package/dist/chunks/badge-4iQG4kuk.js +65 -0
- package/dist/chunks/badge-4iQG4kuk.js.map +1 -0
- package/dist/chunks/button-BAwcISlK.js +71 -0
- package/dist/chunks/button-BAwcISlK.js.map +1 -0
- package/dist/chunks/calendar-Cy0jbT6X.js +305 -0
- package/dist/chunks/calendar-Cy0jbT6X.js.map +1 -0
- package/dist/chunks/card-DAfWnvro.js +113 -0
- package/dist/chunks/card-DAfWnvro.js.map +1 -0
- package/dist/chunks/checkbox-BunQDZRV.js +45 -0
- package/dist/chunks/checkbox-BunQDZRV.js.map +1 -0
- package/dist/chunks/combobox-BrYBRIqW.js +257 -0
- package/dist/chunks/combobox-BrYBRIqW.js.map +1 -0
- package/dist/chunks/dependencyListBuilderStore-CVWhMyuq.js +237 -0
- package/dist/chunks/dependencyListBuilderStore-CVWhMyuq.js.map +1 -0
- package/dist/chunks/dialog-BoGlhUrd.js +188 -0
- package/dist/chunks/dialog-BoGlhUrd.js.map +1 -0
- package/dist/chunks/dropdown-menu-NlgvL0wb.js +347 -0
- package/dist/chunks/dropdown-menu-NlgvL0wb.js.map +1 -0
- package/dist/chunks/elementListBuilderStore-CRgJ3FaY.js +94 -0
- package/dist/chunks/elementListBuilderStore-CRgJ3FaY.js.map +1 -0
- package/dist/chunks/elements-Du8w4W8Q.js +2354 -0
- package/dist/chunks/elements-Du8w4W8Q.js.map +1 -0
- package/dist/chunks/field-frame-n5oLDNBT.js +59 -0
- package/dist/chunks/field-frame-n5oLDNBT.js.map +1 -0
- package/dist/chunks/formBuilderStore-D-G-ujKs.js +384 -0
- package/dist/chunks/formBuilderStore-D-G-ujKs.js.map +1 -0
- package/dist/chunks/gridBuilderStore-CDco4GeM.js +123 -0
- package/dist/chunks/gridBuilderStore-CDco4GeM.js.map +1 -0
- package/dist/chunks/input-tw5ZQGKQ.js +33 -0
- package/dist/chunks/input-tw5ZQGKQ.js.map +1 -0
- package/dist/chunks/label-I5voJX5E.js +40 -0
- package/dist/chunks/label-I5voJX5E.js.map +1 -0
- package/dist/chunks/objectBuilderStore-BE7Yqs0o.js +132 -0
- package/dist/chunks/objectBuilderStore-BE7Yqs0o.js.map +1 -0
- package/dist/chunks/popover-_VzKSUl8.js +156 -0
- package/dist/chunks/popover-_VzKSUl8.js.map +1 -0
- package/dist/chunks/presetBuilderStore-DK4cmCJz.js +64 -0
- package/dist/chunks/presetBuilderStore-DK4cmCJz.js.map +1 -0
- package/dist/chunks/progress-DqH3yH0e.js +58 -0
- package/dist/chunks/progress-DqH3yH0e.js.map +1 -0
- package/dist/chunks/quizBuilderStore-C1KSXs0j.js +182 -0
- package/dist/chunks/quizBuilderStore-C1KSXs0j.js.map +1 -0
- package/dist/chunks/radio-group-WeXB9v-D.js +69 -0
- package/dist/chunks/radio-group-WeXB9v-D.js.map +1 -0
- package/dist/chunks/reactiveCanvasBuilderStore-DXwaTopz.js +128 -0
- package/dist/chunks/reactiveCanvasBuilderStore-DXwaTopz.js.map +1 -0
- package/dist/chunks/registry-DF6UGvEI.js +148 -0
- package/dist/chunks/registry-DF6UGvEI.js.map +1 -0
- package/dist/chunks/rolldown-runtime-Dy4uBu1J.js +11 -0
- package/dist/chunks/select-DZcdBLiy.js +262 -0
- package/dist/chunks/select-DZcdBLiy.js.map +1 -0
- package/dist/chunks/sheet-7uxecGyn.js +202 -0
- package/dist/chunks/sheet-7uxecGyn.js.map +1 -0
- package/dist/chunks/skeleton-DG95C9ZP.js +22 -0
- package/dist/chunks/skeleton-DG95C9ZP.js.map +1 -0
- package/dist/chunks/slider-DcpAnoUx.js +106 -0
- package/dist/chunks/slider-DcpAnoUx.js.map +1 -0
- package/dist/chunks/switch--qhuMfjn.js +60 -0
- package/dist/chunks/switch--qhuMfjn.js.map +1 -0
- package/dist/chunks/table-CanciZAw.js +112 -0
- package/dist/chunks/table-CanciZAw.js.map +1 -0
- package/dist/chunks/tabs-6wUJf_yA.js +120 -0
- package/dist/chunks/tabs-6wUJf_yA.js.map +1 -0
- package/dist/chunks/textarea-lgNOfYRH.js +36 -0
- package/dist/chunks/textarea-lgNOfYRH.js.map +1 -0
- package/dist/chunks/toggle-Mpe_iE71.js +85 -0
- package/dist/chunks/toggle-Mpe_iE71.js.map +1 -0
- package/dist/chunks/useAsyncSearch-CS_CQauO.js +43 -0
- package/dist/chunks/useAsyncSearch-CS_CQauO.js.map +1 -0
- package/dist/chunks/useConnectorLoader-D1SuPu3P.js +49 -0
- package/dist/chunks/useConnectorLoader-D1SuPu3P.js.map +1 -0
- package/dist/chunks/useDisplayConditions-Dopsa2vu.js +212 -0
- package/dist/chunks/useDisplayConditions-Dopsa2vu.js.map +1 -0
- package/dist/chunks/utils-DAErOi9O.js +16 -0
- package/dist/chunks/utils-DAErOi9O.js.map +1 -0
- package/dist/code.d.ts.map +1 -1
- package/dist/code.js +6 -7
- package/dist/components/compositions/elements/display/ChartDisplay.vue.d.ts.map +1 -1
- package/dist/components/compositions/elements/display/QrCodeDisplay.vue.d.ts.map +1 -1
- package/dist/components/compositions/elements/editor/HtmlEditor.vue.d.ts.map +1 -1
- package/dist/configuration-block.d.ts.map +1 -1
- package/dist/configuration-block.js +5 -6
- package/dist/display.d.ts.map +1 -1
- package/dist/display.js +16 -17
- package/dist/editor/code-editor.d.ts +2 -0
- package/dist/editor/code-editor.js +3 -0
- package/dist/editor/html-editor.d.ts +2 -0
- package/dist/editor/html-editor.js +3 -0
- package/dist/editor/image-editor.d.ts +2 -0
- package/dist/editor/image-editor.js +3 -0
- package/dist/editor/markdown-editor.d.ts +2 -0
- package/dist/editor/markdown-editor.js +3 -0
- package/dist/editor/rich-text-editor.d.ts +2 -0
- package/dist/editor/rich-text-editor.js +3 -0
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +6 -7
- package/dist/entries/builder/dependency-list-builder.d.ts +2 -0
- package/dist/entries/builder/dependency-list-builder.d.ts.map +1 -0
- package/dist/entries/builder/element-list-builder.d.ts +2 -0
- package/dist/entries/builder/element-list-builder.d.ts.map +1 -0
- package/dist/entries/builder/form-builder.d.ts +2 -0
- package/dist/entries/builder/form-builder.d.ts.map +1 -0
- package/dist/entries/builder/grid-builder.d.ts +2 -0
- package/dist/entries/builder/grid-builder.d.ts.map +1 -0
- package/dist/entries/builder/object-builder.d.ts +2 -0
- package/dist/entries/builder/object-builder.d.ts.map +1 -0
- package/dist/entries/builder/preset-builder.d.ts +2 -0
- package/dist/entries/builder/preset-builder.d.ts.map +1 -0
- package/dist/entries/builder/quiz-builder.d.ts +2 -0
- package/dist/entries/builder/quiz-builder.d.ts.map +1 -0
- package/dist/entries/builder/reactive-canvas-builder.d.ts +2 -0
- package/dist/entries/builder/reactive-canvas-builder.d.ts.map +1 -0
- package/dist/entries/cards/card-list.d.ts +2 -0
- package/dist/entries/cards/card-list.d.ts.map +1 -0
- package/dist/entries/cards/data-table.d.ts +2 -0
- package/dist/entries/cards/data-table.d.ts.map +1 -0
- package/dist/entries/cards/element-display.d.ts +2 -0
- package/dist/entries/cards/element-display.d.ts.map +1 -0
- package/dist/entries/cards/element-list.d.ts +2 -0
- package/dist/entries/cards/element-list.d.ts.map +1 -0
- package/dist/entries/cards/grid-view.d.ts +2 -0
- package/dist/entries/cards/grid-view.d.ts.map +1 -0
- package/dist/entries/cards/info.d.ts +2 -0
- package/dist/entries/cards/info.d.ts.map +1 -0
- package/dist/entries/cards/tab-list.d.ts +2 -0
- package/dist/entries/cards/tab-list.d.ts.map +1 -0
- package/dist/entries/editor/code-editor.d.ts +2 -0
- package/dist/entries/editor/code-editor.d.ts.map +1 -0
- package/dist/entries/editor/html-editor.d.ts +2 -0
- package/dist/entries/editor/html-editor.d.ts.map +1 -0
- package/dist/entries/editor/image-editor.d.ts +2 -0
- package/dist/entries/editor/image-editor.d.ts.map +1 -0
- package/dist/entries/editor/markdown-editor.d.ts +2 -0
- package/dist/entries/editor/markdown-editor.d.ts.map +1 -0
- package/dist/entries/editor/rich-text-editor.d.ts +2 -0
- package/dist/entries/editor/rich-text-editor.d.ts.map +1 -0
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1783 -200
- package/dist/index.js.map +1 -0
- package/dist/input.d.ts.map +1 -1
- package/dist/input.js +11 -12
- package/dist/option-select.d.ts.map +1 -1
- package/dist/option-select.js +10 -11
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +12 -13
- package/package.json +98 -43
- package/src/_styles.ts +16 -0
- package/src/action.ts +2 -0
- package/src/boolean.ts +2 -0
- package/src/builder.ts +2 -0
- package/src/cards.ts +2 -0
- package/src/code.ts +2 -0
- package/src/components/compositions/elements/builder/GridBuilder.test.ts +42 -23
- package/src/components/compositions/elements/builder/ReactiveCanvasBuilder.test.ts +37 -26
- package/src/components/compositions/elements/display/ChartDisplay.vue +33 -0
- package/src/components/compositions/elements/display/QrCodeDisplay.vue +12 -1
- package/src/components/compositions/elements/editor/HtmlEditor.vue +4 -3
- package/src/configuration-block.ts +2 -0
- package/src/display.ts +2 -0
- package/src/editor.ts +2 -0
- package/src/entries/builder/dependency-list-builder.ts +3 -0
- package/src/entries/builder/element-list-builder.ts +3 -0
- package/src/entries/builder/form-builder.ts +3 -0
- package/src/entries/builder/grid-builder.ts +3 -0
- package/src/entries/builder/object-builder.ts +3 -0
- package/src/entries/builder/preset-builder.ts +3 -0
- package/src/entries/builder/quiz-builder.ts +3 -0
- package/src/entries/builder/reactive-canvas-builder.ts +3 -0
- package/src/entries/cards/card-list.ts +3 -0
- package/src/entries/cards/data-table.ts +3 -0
- package/src/entries/cards/element-display.ts +3 -0
- package/src/entries/cards/element-list.ts +3 -0
- package/src/entries/cards/grid-view.ts +3 -0
- package/src/entries/cards/info.ts +3 -0
- package/src/entries/cards/tab-list.ts +3 -0
- package/src/entries/editor/code-editor.ts +3 -0
- package/src/entries/editor/html-editor.ts +3 -0
- package/src/entries/editor/image-editor.ts +3 -0
- package/src/entries/editor/markdown-editor.ts +3 -0
- package/src/entries/editor/rich-text-editor.ts +3 -0
- package/src/file.ts +2 -0
- package/src/index.ts +4 -4
- package/src/input.ts +2 -0
- package/src/option-select.ts +2 -0
- package/src/picker.ts +2 -0
- package/src/test/setup.ts +20 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +0 -8
- package/dist/adapters/cardTypeMap.js +0 -29
- package/dist/adapters/cardTypeMap.js.map +0 -1
- package/dist/adapters/conditionMap.js +0 -106
- package/dist/adapters/conditionMap.js.map +0 -1
- package/dist/adapters/detect.js +0 -29
- package/dist/adapters/detect.js.map +0 -1
- package/dist/adapters/fieldTypeMap.js +0 -219
- package/dist/adapters/fieldTypeMap.js.map +0 -1
- package/dist/adapters/v1ToV2.js +0 -147
- package/dist/adapters/v1ToV2.js.map +0 -1
- package/dist/adapters/v2ToV1.js +0 -82
- package/dist/adapters/v2ToV1.js.map +0 -1
- package/dist/components/compositions/cards/CardListCard.js +0 -7
- package/dist/components/compositions/cards/CardListCard.js.map +0 -1
- package/dist/components/compositions/cards/CardListCard.vue_vue_type_script_setup_true_lang.js +0 -109
- package/dist/components/compositions/cards/CardListCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/DataTableCard.js +0 -7
- package/dist/components/compositions/cards/DataTableCard.js.map +0 -1
- package/dist/components/compositions/cards/DataTableCard.vue_vue_type_script_setup_true_lang.js +0 -317
- package/dist/components/compositions/cards/DataTableCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/ElementDisplayCard.js +0 -7
- package/dist/components/compositions/cards/ElementDisplayCard.js.map +0 -1
- package/dist/components/compositions/cards/ElementDisplayCard.vue_vue_type_script_setup_true_lang.js +0 -55
- package/dist/components/compositions/cards/ElementDisplayCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/ElementListCard.js +0 -7
- package/dist/components/compositions/cards/ElementListCard.js.map +0 -1
- package/dist/components/compositions/cards/ElementListCard.vue_vue_type_script_setup_true_lang.js +0 -79
- package/dist/components/compositions/cards/ElementListCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/GridViewCard.js +0 -7
- package/dist/components/compositions/cards/GridViewCard.js.map +0 -1
- package/dist/components/compositions/cards/GridViewCard.vue_vue_type_script_setup_true_lang.js +0 -109
- package/dist/components/compositions/cards/GridViewCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/InfoCard.js +0 -7
- package/dist/components/compositions/cards/InfoCard.js.map +0 -1
- package/dist/components/compositions/cards/InfoCard.vue_vue_type_script_setup_true_lang.js +0 -145
- package/dist/components/compositions/cards/InfoCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/TabListCard.js +0 -7
- package/dist/components/compositions/cards/TabListCard.js.map +0 -1
- package/dist/components/compositions/cards/TabListCard.vue_vue_type_script_setup_true_lang.js +0 -106
- package/dist/components/compositions/cards/TabListCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/cards/useDataTableData.js +0 -17
- package/dist/components/compositions/cards/useDataTableData.js.map +0 -1
- package/dist/components/compositions/elements/action/ButtonAction.js +0 -7
- package/dist/components/compositions/elements/action/ButtonAction.js.map +0 -1
- package/dist/components/compositions/elements/action/ButtonAction.vue_vue_type_script_setup_true_lang.js +0 -137
- package/dist/components/compositions/elements/action/ButtonAction.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/action/ButtonGroupAction.js +0 -7
- package/dist/components/compositions/elements/action/ButtonGroupAction.js.map +0 -1
- package/dist/components/compositions/elements/action/ButtonGroupAction.vue_vue_type_script_setup_true_lang.js +0 -73
- package/dist/components/compositions/elements/action/ButtonGroupAction.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/action/LinkAction.js +0 -7
- package/dist/components/compositions/elements/action/LinkAction.js.map +0 -1
- package/dist/components/compositions/elements/action/LinkAction.vue_vue_type_script_setup_true_lang.js +0 -59
- package/dist/components/compositions/elements/action/LinkAction.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/boolean/CheckboxBoolean.js +0 -7
- package/dist/components/compositions/elements/boolean/CheckboxBoolean.js.map +0 -1
- package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue_vue_type_script_setup_true_lang.js +0 -81
- package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/boolean/IconToggleBoolean.js +0 -7
- package/dist/components/compositions/elements/boolean/IconToggleBoolean.js.map +0 -1
- package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue_vue_type_script_setup_true_lang.js +0 -85
- package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/boolean/RadioBoolean.js +0 -7
- package/dist/components/compositions/elements/boolean/RadioBoolean.js.map +0 -1
- package/dist/components/compositions/elements/boolean/RadioBoolean.vue_vue_type_script_setup_true_lang.js +0 -98
- package/dist/components/compositions/elements/boolean/RadioBoolean.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/boolean/SwitchBoolean.js +0 -7
- package/dist/components/compositions/elements/boolean/SwitchBoolean.js.map +0 -1
- package/dist/components/compositions/elements/boolean/SwitchBoolean.vue_vue_type_script_setup_true_lang.js +0 -86
- package/dist/components/compositions/elements/boolean/SwitchBoolean.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/DependencyListBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/DependencyListBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/DependencyListBuilder.vue_vue_type_script_setup_true_lang.js +0 -571
- package/dist/components/compositions/elements/builder/DependencyListBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/ElementListBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/ElementListBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/ElementListBuilder.vue_vue_type_script_setup_true_lang.js +0 -284
- package/dist/components/compositions/elements/builder/ElementListBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/FormBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/FormBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/FormBuilder.vue_vue_type_script_setup_true_lang.js +0 -680
- package/dist/components/compositions/elements/builder/FormBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/GridBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/GridBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/GridBuilder.vue_vue_type_script_setup_true_lang.js +0 -387
- package/dist/components/compositions/elements/builder/GridBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/ObjectBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/ObjectBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/ObjectBuilder.vue_vue_type_script_setup_true_lang.js +0 -395
- package/dist/components/compositions/elements/builder/ObjectBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/PresetBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/PresetBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/PresetBuilder.vue_vue_type_script_setup_true_lang.js +0 -138
- package/dist/components/compositions/elements/builder/PresetBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/QuizBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/QuizBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/QuizBuilder.vue_vue_type_script_setup_true_lang.js +0 -456
- package/dist/components/compositions/elements/builder/QuizBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.js +0 -7
- package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.js.map +0 -1
- package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue_vue_type_script_setup_true_lang.js +0 -473
- package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/card/DatatableCard.js +0 -7
- package/dist/components/compositions/elements/card/DatatableCard.js.map +0 -1
- package/dist/components/compositions/elements/card/DatatableCard.vue_vue_type_script_setup_true_lang.js +0 -124
- package/dist/components/compositions/elements/card/DatatableCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/card/GridCard.js +0 -7
- package/dist/components/compositions/elements/card/GridCard.js.map +0 -1
- package/dist/components/compositions/elements/card/GridCard.vue_vue_type_script_setup_true_lang.js +0 -68
- package/dist/components/compositions/elements/card/GridCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/card/InfoCard.js +0 -7
- package/dist/components/compositions/elements/card/InfoCard.js.map +0 -1
- package/dist/components/compositions/elements/card/InfoCard.vue_vue_type_script_setup_true_lang.js +0 -97
- package/dist/components/compositions/elements/card/InfoCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/card/ListCard.js +0 -7
- package/dist/components/compositions/elements/card/ListCard.js.map +0 -1
- package/dist/components/compositions/elements/card/ListCard.vue_vue_type_script_setup_true_lang.js +0 -76
- package/dist/components/compositions/elements/card/ListCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/card/TabCard.js +0 -7
- package/dist/components/compositions/elements/card/TabCard.js.map +0 -1
- package/dist/components/compositions/elements/card/TabCard.vue_vue_type_script_setup_true_lang.js +0 -119
- package/dist/components/compositions/elements/card/TabCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/code/BuildStatus.js +0 -7
- package/dist/components/compositions/elements/code/BuildStatus.js.map +0 -1
- package/dist/components/compositions/elements/code/BuildStatus.vue_vue_type_script_setup_true_lang.js +0 -194
- package/dist/components/compositions/elements/code/BuildStatus.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/code/ChatMessage.js +0 -7
- package/dist/components/compositions/elements/code/ChatMessage.js.map +0 -1
- package/dist/components/compositions/elements/code/ChatMessage.vue_vue_type_script_setup_true_lang.js +0 -219
- package/dist/components/compositions/elements/code/ChatMessage.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/code/FileTree.js +0 -7
- package/dist/components/compositions/elements/code/FileTree.js.map +0 -1
- package/dist/components/compositions/elements/code/FileTree.vue_vue_type_script_setup_true_lang.js +0 -195
- package/dist/components/compositions/elements/code/FileTree.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/code/GitCodeEditor.js +0 -7
- package/dist/components/compositions/elements/code/GitCodeEditor.js.map +0 -1
- package/dist/components/compositions/elements/code/GitCodeEditor.vue_vue_type_script_setup_true_lang.js +0 -255
- package/dist/components/compositions/elements/code/GitCodeEditor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/code/PullRequestsList.js +0 -7
- package/dist/components/compositions/elements/code/PullRequestsList.js.map +0 -1
- package/dist/components/compositions/elements/code/PullRequestsList.vue_vue_type_script_setup_true_lang.js +0 -262
- package/dist/components/compositions/elements/code/PullRequestsList.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/DialogBlock.js +0 -7
- package/dist/components/compositions/elements/configuration-block/DialogBlock.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/DialogBlock.vue_vue_type_script_setup_true_lang.js +0 -85
- package/dist/components/compositions/elements/configuration-block/DialogBlock.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/ElementsBlock.js +0 -7
- package/dist/components/compositions/elements/configuration-block/ElementsBlock.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue_vue_type_script_setup_true_lang.js +0 -51
- package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/ModalBlock.js +0 -7
- package/dist/components/compositions/elements/configuration-block/ModalBlock.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/ModalBlock.vue_vue_type_script_setup_true_lang.js +0 -88
- package/dist/components/compositions/elements/configuration-block/ModalBlock.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/RepeatableBlock.js +0 -7
- package/dist/components/compositions/elements/configuration-block/RepeatableBlock.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue_vue_type_script_setup_true_lang.js +0 -141
- package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/RepeatableRow.js +0 -7
- package/dist/components/compositions/elements/configuration-block/RepeatableRow.js.map +0 -1
- package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue_vue_type_script_setup_true_lang.js +0 -24
- package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/BannerDisplay.js +0 -7
- package/dist/components/compositions/elements/display/BannerDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/BannerDisplay.vue_vue_type_script_setup_true_lang.js +0 -58
- package/dist/components/compositions/elements/display/BannerDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/BarcodeDisplay.js +0 -7
- package/dist/components/compositions/elements/display/BarcodeDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/BarcodeDisplay.vue_vue_type_script_setup_true_lang.js +0 -49
- package/dist/components/compositions/elements/display/BarcodeDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/CarouselDisplay.js +0 -7
- package/dist/components/compositions/elements/display/CarouselDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/CarouselDisplay.vue_vue_type_script_setup_true_lang.js +0 -140
- package/dist/components/compositions/elements/display/CarouselDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/ChartDisplay.js +0 -7
- package/dist/components/compositions/elements/display/ChartDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/ChartDisplay.vue_vue_type_script_setup_true_lang.js +0 -55
- package/dist/components/compositions/elements/display/ChartDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/HtmlDisplay.js +0 -7
- package/dist/components/compositions/elements/display/HtmlDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/HtmlDisplay.vue_vue_type_script_setup_true_lang.js +0 -24
- package/dist/components/compositions/elements/display/HtmlDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/IconDisplay.js +0 -7
- package/dist/components/compositions/elements/display/IconDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/IconDisplay.vue_vue_type_script_setup_true_lang.js +0 -52
- package/dist/components/compositions/elements/display/IconDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/IframeDisplay.js +0 -7
- package/dist/components/compositions/elements/display/IframeDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/IframeDisplay.vue_vue_type_script_setup_true_lang.js +0 -38
- package/dist/components/compositions/elements/display/IframeDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/ImageDisplay.js +0 -7
- package/dist/components/compositions/elements/display/ImageDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/ImageDisplay.vue_vue_type_script_setup_true_lang.js +0 -35
- package/dist/components/compositions/elements/display/ImageDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/MarkdownDisplay.js +0 -7
- package/dist/components/compositions/elements/display/MarkdownDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/MarkdownDisplay.vue_vue_type_script_setup_true_lang.js +0 -37
- package/dist/components/compositions/elements/display/MarkdownDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/ProgressBarDisplay.js +0 -7
- package/dist/components/compositions/elements/display/ProgressBarDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/ProgressBarDisplay.vue_vue_type_script_setup_true_lang.js +0 -40
- package/dist/components/compositions/elements/display/ProgressBarDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/QrCodeDisplay.js +0 -7
- package/dist/components/compositions/elements/display/QrCodeDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/QrCodeDisplay.vue_vue_type_script_setup_true_lang.js +0 -46
- package/dist/components/compositions/elements/display/QrCodeDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.js +0 -7
- package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue_vue_type_script_setup_true_lang.js +0 -54
- package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/SpriteDisplay.js +0 -7
- package/dist/components/compositions/elements/display/SpriteDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/SpriteDisplay.vue_vue_type_script_setup_true_lang.js +0 -54
- package/dist/components/compositions/elements/display/SpriteDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/TypeDisplay.js +0 -7
- package/dist/components/compositions/elements/display/TypeDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/TypeDisplay.vue_vue_type_script_setup_true_lang.js +0 -76
- package/dist/components/compositions/elements/display/TypeDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/display/VideoPlayerDisplay.js +0 -7
- package/dist/components/compositions/elements/display/VideoPlayerDisplay.js.map +0 -1
- package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue_vue_type_script_setup_true_lang.js +0 -40
- package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/editor/CodeEditor.js +0 -9
- package/dist/components/compositions/elements/editor/CodeEditor.js.map +0 -1
- package/dist/components/compositions/elements/editor/CodeEditor.vue_vue_type_script_setup_true_lang.js +0 -249
- package/dist/components/compositions/elements/editor/CodeEditor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/editor/HtmlEditor.js +0 -9
- package/dist/components/compositions/elements/editor/HtmlEditor.js.map +0 -1
- package/dist/components/compositions/elements/editor/HtmlEditor.vue_vue_type_script_setup_true_lang.js +0 -1057
- package/dist/components/compositions/elements/editor/HtmlEditor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/editor/ImageEditor.js +0 -7
- package/dist/components/compositions/elements/editor/ImageEditor.js.map +0 -1
- package/dist/components/compositions/elements/editor/ImageEditor.vue_vue_type_script_setup_true_lang.js +0 -73
- package/dist/components/compositions/elements/editor/ImageEditor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/editor/MarkdownEditor.js +0 -7
- package/dist/components/compositions/elements/editor/MarkdownEditor.js.map +0 -1
- package/dist/components/compositions/elements/editor/MarkdownEditor.vue_vue_type_script_setup_true_lang.js +0 -93
- package/dist/components/compositions/elements/editor/MarkdownEditor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/editor/RichTextEditor.js +0 -7
- package/dist/components/compositions/elements/editor/RichTextEditor.js.map +0 -1
- package/dist/components/compositions/elements/editor/RichTextEditor.vue_vue_type_script_setup_true_lang.js +0 -208
- package/dist/components/compositions/elements/editor/RichTextEditor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/file/AssetPickerFile.js +0 -7
- package/dist/components/compositions/elements/file/AssetPickerFile.js.map +0 -1
- package/dist/components/compositions/elements/file/AssetPickerFile.vue_vue_type_script_setup_true_lang.js +0 -262
- package/dist/components/compositions/elements/file/AssetPickerFile.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/file/DropzoneFile.js +0 -7
- package/dist/components/compositions/elements/file/DropzoneFile.js.map +0 -1
- package/dist/components/compositions/elements/file/DropzoneFile.vue_vue_type_script_setup_true_lang.js +0 -159
- package/dist/components/compositions/elements/file/DropzoneFile.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/file/UploadFile.js +0 -7
- package/dist/components/compositions/elements/file/UploadFile.js.map +0 -1
- package/dist/components/compositions/elements/file/UploadFile.vue_vue_type_script_setup_true_lang.js +0 -137
- package/dist/components/compositions/elements/file/UploadFile.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/BarcodeScannerInput.js +0 -7
- package/dist/components/compositions/elements/input/BarcodeScannerInput.js.map +0 -1
- package/dist/components/compositions/elements/input/BarcodeScannerInput.vue_vue_type_script_setup_true_lang.js +0 -167
- package/dist/components/compositions/elements/input/BarcodeScannerInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/EmailInput.js +0 -7
- package/dist/components/compositions/elements/input/EmailInput.js.map +0 -1
- package/dist/components/compositions/elements/input/EmailInput.vue_vue_type_script_setup_true_lang.js +0 -84
- package/dist/components/compositions/elements/input/EmailInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/NumberInput.js +0 -7
- package/dist/components/compositions/elements/input/NumberInput.js.map +0 -1
- package/dist/components/compositions/elements/input/NumberInput.vue_vue_type_script_setup_true_lang.js +0 -96
- package/dist/components/compositions/elements/input/NumberInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/PasswordInput.js +0 -7
- package/dist/components/compositions/elements/input/PasswordInput.js.map +0 -1
- package/dist/components/compositions/elements/input/PasswordInput.vue_vue_type_script_setup_true_lang.js +0 -111
- package/dist/components/compositions/elements/input/PasswordInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/RangeSliderInput.js +0 -7
- package/dist/components/compositions/elements/input/RangeSliderInput.js.map +0 -1
- package/dist/components/compositions/elements/input/RangeSliderInput.vue_vue_type_script_setup_true_lang.js +0 -83
- package/dist/components/compositions/elements/input/RangeSliderInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/SearchInput.js +0 -7
- package/dist/components/compositions/elements/input/SearchInput.js.map +0 -1
- package/dist/components/compositions/elements/input/SearchInput.vue_vue_type_script_setup_true_lang.js +0 -85
- package/dist/components/compositions/elements/input/SearchInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/TelInput.js +0 -7
- package/dist/components/compositions/elements/input/TelInput.js.map +0 -1
- package/dist/components/compositions/elements/input/TelInput.vue_vue_type_script_setup_true_lang.js +0 -84
- package/dist/components/compositions/elements/input/TelInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/TextInput.js +0 -7
- package/dist/components/compositions/elements/input/TextInput.js.map +0 -1
- package/dist/components/compositions/elements/input/TextInput.vue_vue_type_script_setup_true_lang.js +0 -84
- package/dist/components/compositions/elements/input/TextInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/TextareaInput.js +0 -7
- package/dist/components/compositions/elements/input/TextareaInput.js.map +0 -1
- package/dist/components/compositions/elements/input/TextareaInput.vue_vue_type_script_setup_true_lang.js +0 -86
- package/dist/components/compositions/elements/input/TextareaInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/input/UrlInput.js +0 -7
- package/dist/components/compositions/elements/input/UrlInput.js.map +0 -1
- package/dist/components/compositions/elements/input/UrlInput.vue_vue_type_script_setup_true_lang.js +0 -84
- package/dist/components/compositions/elements/input/UrlInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/AsyncSelectOption.js +0 -7
- package/dist/components/compositions/elements/option-select/AsyncSelectOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue_vue_type_script_setup_true_lang.js +0 -162
- package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/AutoCompleteOption.js +0 -7
- package/dist/components/compositions/elements/option-select/AutoCompleteOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue_vue_type_script_setup_true_lang.js +0 -119
- package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/CheckboxOption.js +0 -7
- package/dist/components/compositions/elements/option-select/CheckboxOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/CheckboxOption.vue_vue_type_script_setup_true_lang.js +0 -98
- package/dist/components/compositions/elements/option-select/CheckboxOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.js +0 -7
- package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue_vue_type_script_setup_true_lang.js +0 -223
- package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/ListOption.js +0 -7
- package/dist/components/compositions/elements/option-select/ListOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/ListOption.vue_vue_type_script_setup_true_lang.js +0 -98
- package/dist/components/compositions/elements/option-select/ListOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/PillSelectOption.js +0 -7
- package/dist/components/compositions/elements/option-select/PillSelectOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/PillSelectOption.vue_vue_type_script_setup_true_lang.js +0 -94
- package/dist/components/compositions/elements/option-select/PillSelectOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/RadioOption.js +0 -7
- package/dist/components/compositions/elements/option-select/RadioOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/RadioOption.vue_vue_type_script_setup_true_lang.js +0 -113
- package/dist/components/compositions/elements/option-select/RadioOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/SelectMultipleOption.js +0 -7
- package/dist/components/compositions/elements/option-select/SelectMultipleOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue_vue_type_script_setup_true_lang.js +0 -136
- package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/option-select/SelectOption.js +0 -7
- package/dist/components/compositions/elements/option-select/SelectOption.js.map +0 -1
- package/dist/components/compositions/elements/option-select/SelectOption.vue_vue_type_script_setup_true_lang.js +0 -121
- package/dist/components/compositions/elements/option-select/SelectOption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/AsyncSelectPicker.js +0 -7
- package/dist/components/compositions/elements/picker/AsyncSelectPicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue_vue_type_script_setup_true_lang.js +0 -174
- package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/ColorPicker.js +0 -7
- package/dist/components/compositions/elements/picker/ColorPicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/ColorPicker.vue_vue_type_script_setup_true_lang.js +0 -156
- package/dist/components/compositions/elements/picker/ColorPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/DataModelPicker.js +0 -7
- package/dist/components/compositions/elements/picker/DataModelPicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/DataModelPicker.vue_vue_type_script_setup_true_lang.js +0 -102
- package/dist/components/compositions/elements/picker/DataModelPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/DatePicker.js +0 -7
- package/dist/components/compositions/elements/picker/DatePicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/DatePicker.vue_vue_type_script_setup_true_lang.js +0 -136
- package/dist/components/compositions/elements/picker/DatePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/DateTimePicker.js +0 -7
- package/dist/components/compositions/elements/picker/DateTimePicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +0 -166
- package/dist/components/compositions/elements/picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/IconPicker.js +0 -7
- package/dist/components/compositions/elements/picker/IconPicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/IconPicker.vue_vue_type_script_setup_true_lang.js +0 -116
- package/dist/components/compositions/elements/picker/IconPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/IconPickerInline.js +0 -7
- package/dist/components/compositions/elements/picker/IconPickerInline.js.map +0 -1
- package/dist/components/compositions/elements/picker/IconPickerInline.vue_vue_type_script_setup_true_lang.js +0 -123
- package/dist/components/compositions/elements/picker/IconPickerInline.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.js +0 -7
- package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue_vue_type_script_setup_true_lang.js +0 -247
- package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/MapPicker.js +0 -7
- package/dist/components/compositions/elements/picker/MapPicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/MapPicker.vue_vue_type_script_setup_true_lang.js +0 -125
- package/dist/components/compositions/elements/picker/MapPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/TimePicker.js +0 -7
- package/dist/components/compositions/elements/picker/TimePicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/TimePicker.vue_vue_type_script_setup_true_lang.js +0 -126
- package/dist/components/compositions/elements/picker/TimePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/compositions/elements/picker/TimezonePicker.js +0 -7
- package/dist/components/compositions/elements/picker/TimezonePicker.js.map +0 -1
- package/dist/components/compositions/elements/picker/TimezonePicker.vue_vue_type_script_setup_true_lang.js +0 -120
- package/dist/components/compositions/elements/picker/TimezonePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/accordion/Accordion.js +0 -7
- package/dist/components/ui/accordion/Accordion.js.map +0 -1
- package/dist/components/ui/accordion/Accordion.vue_vue_type_script_setup_true_lang.js +0 -39
- package/dist/components/ui/accordion/Accordion.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/accordion/AccordionContent.js +0 -7
- package/dist/components/ui/accordion/AccordionContent.js.map +0 -1
- package/dist/components/ui/accordion/AccordionContent.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/accordion/AccordionContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/accordion/AccordionItem.js +0 -7
- package/dist/components/ui/accordion/AccordionItem.js.map +0 -1
- package/dist/components/ui/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/accordion/AccordionTrigger.js +0 -7
- package/dist/components/ui/accordion/AccordionTrigger.js.map +0 -1
- package/dist/components/ui/accordion/AccordionTrigger.vue_vue_type_script_setup_true_lang.js +0 -34
- package/dist/components/ui/accordion/AccordionTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/accordion/index.js +0 -4
- package/dist/components/ui/alert/Alert.js +0 -7
- package/dist/components/ui/alert/Alert.js.map +0 -1
- package/dist/components/ui/alert/Alert.vue_vue_type_script_setup_true_lang.js +0 -28
- package/dist/components/ui/alert/Alert.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/alert/AlertDescription.js +0 -7
- package/dist/components/ui/alert/AlertDescription.js.map +0 -1
- package/dist/components/ui/alert/AlertDescription.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/alert/AlertDescription.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/alert/AlertTitle.js +0 -7
- package/dist/components/ui/alert/AlertTitle.js.map +0 -1
- package/dist/components/ui/alert/AlertTitle.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/alert/AlertTitle.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/alert/index.js +0 -19
- package/dist/components/ui/alert/index.js.map +0 -1
- package/dist/components/ui/avatar/Avatar.js +0 -7
- package/dist/components/ui/avatar/Avatar.js.map +0 -1
- package/dist/components/ui/avatar/Avatar.vue_vue_type_script_setup_true_lang.js +0 -29
- package/dist/components/ui/avatar/Avatar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/avatar/AvatarFallback.js +0 -7
- package/dist/components/ui/avatar/AvatarFallback.js.map +0 -1
- package/dist/components/ui/avatar/AvatarFallback.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/avatar/AvatarFallback.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/avatar/AvatarImage.js +0 -7
- package/dist/components/ui/avatar/AvatarImage.js.map +0 -1
- package/dist/components/ui/avatar/AvatarImage.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/avatar/AvatarImage.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/avatar/index.js +0 -18
- package/dist/components/ui/avatar/index.js.map +0 -1
- package/dist/components/ui/badge/Badge.js +0 -7
- package/dist/components/ui/badge/Badge.js.map +0 -1
- package/dist/components/ui/badge/Badge.vue_vue_type_script_setup_true_lang.js +0 -43
- package/dist/components/ui/badge/Badge.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/badge/index.js +0 -29
- package/dist/components/ui/badge/index.js.map +0 -1
- package/dist/components/ui/button/Button.js +0 -7
- package/dist/components/ui/button/Button.js.map +0 -1
- package/dist/components/ui/button/Button.vue_vue_type_script_setup_true_lang.js +0 -43
- package/dist/components/ui/button/Button.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/button/index.js +0 -35
- package/dist/components/ui/button/index.js.map +0 -1
- package/dist/components/ui/calendar/Calendar.js +0 -7
- package/dist/components/ui/calendar/Calendar.js.map +0 -1
- package/dist/components/ui/calendar/Calendar.vue_vue_type_script_setup_true_lang.js +0 -104
- package/dist/components/ui/calendar/Calendar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarCell.js +0 -7
- package/dist/components/ui/calendar/CalendarCell.js.map +0 -1
- package/dist/components/ui/calendar/CalendarCell.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/calendar/CalendarCell.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarCellTrigger.js +0 -7
- package/dist/components/ui/calendar/CalendarCellTrigger.js.map +0 -1
- package/dist/components/ui/calendar/CalendarCellTrigger.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/calendar/CalendarCellTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGrid.js +0 -7
- package/dist/components/ui/calendar/CalendarGrid.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGrid.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/calendar/CalendarGrid.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGridBody.js +0 -7
- package/dist/components/ui/calendar/CalendarGridBody.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGridBody.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/calendar/CalendarGridBody.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGridHead.js +0 -7
- package/dist/components/ui/calendar/CalendarGridHead.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGridHead.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/calendar/CalendarGridHead.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGridRow.js +0 -7
- package/dist/components/ui/calendar/CalendarGridRow.js.map +0 -1
- package/dist/components/ui/calendar/CalendarGridRow.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/calendar/CalendarGridRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarHeadCell.js +0 -7
- package/dist/components/ui/calendar/CalendarHeadCell.js.map +0 -1
- package/dist/components/ui/calendar/CalendarHeadCell.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/calendar/CalendarHeadCell.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarHeader.js +0 -7
- package/dist/components/ui/calendar/CalendarHeader.js.map +0 -1
- package/dist/components/ui/calendar/CalendarHeader.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/calendar/CalendarHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarHeading.js +0 -7
- package/dist/components/ui/calendar/CalendarHeading.js.map +0 -1
- package/dist/components/ui/calendar/CalendarHeading.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/calendar/CalendarHeading.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarNext.js +0 -7
- package/dist/components/ui/calendar/CalendarNext.js.map +0 -1
- package/dist/components/ui/calendar/CalendarNext.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/calendar/CalendarNext.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/CalendarPrev.js +0 -7
- package/dist/components/ui/calendar/CalendarPrev.js.map +0 -1
- package/dist/components/ui/calendar/CalendarPrev.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/calendar/CalendarPrev.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/calendar/index.js +0 -12
- package/dist/components/ui/card/Card.js +0 -7
- package/dist/components/ui/card/Card.js.map +0 -1
- package/dist/components/ui/card/Card.vue_vue_type_script_setup_true_lang.js +0 -29
- package/dist/components/ui/card/Card.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/card/CardContent.js +0 -7
- package/dist/components/ui/card/CardContent.js.map +0 -1
- package/dist/components/ui/card/CardContent.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/card/CardContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/card/CardDescription.js +0 -7
- package/dist/components/ui/card/CardDescription.js.map +0 -1
- package/dist/components/ui/card/CardDescription.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/card/CardDescription.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/card/CardFooter.js +0 -7
- package/dist/components/ui/card/CardFooter.js.map +0 -1
- package/dist/components/ui/card/CardFooter.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/card/CardFooter.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/card/CardHeader.js +0 -7
- package/dist/components/ui/card/CardHeader.js.map +0 -1
- package/dist/components/ui/card/CardHeader.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/card/CardHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/card/CardTitle.js +0 -7
- package/dist/components/ui/card/CardTitle.js.map +0 -1
- package/dist/components/ui/card/CardTitle.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/card/CardTitle.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/card/index.js +0 -31
- package/dist/components/ui/card/index.js.map +0 -1
- package/dist/components/ui/checkbox/Checkbox.js +0 -7
- package/dist/components/ui/checkbox/Checkbox.js.map +0 -1
- package/dist/components/ui/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +0 -44
- package/dist/components/ui/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/checkbox/index.js +0 -1
- package/dist/components/ui/combobox/Combobox.js +0 -7
- package/dist/components/ui/combobox/Combobox.js.map +0 -1
- package/dist/components/ui/combobox/Combobox.vue_vue_type_script_setup_true_lang.js +0 -52
- package/dist/components/ui/combobox/Combobox.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxAnchor.js +0 -7
- package/dist/components/ui/combobox/ComboboxAnchor.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxAnchor.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/combobox/ComboboxAnchor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxContent.js +0 -7
- package/dist/components/ui/combobox/ComboboxContent.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxContent.vue_vue_type_script_setup_true_lang.js +0 -69
- package/dist/components/ui/combobox/ComboboxContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxEmpty.js +0 -7
- package/dist/components/ui/combobox/ComboboxEmpty.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxEmpty.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/combobox/ComboboxEmpty.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxGroup.js +0 -7
- package/dist/components/ui/combobox/ComboboxGroup.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxGroup.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/combobox/ComboboxGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxInput.js +0 -7
- package/dist/components/ui/combobox/ComboboxInput.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxInput.vue_vue_type_script_setup_true_lang.js +0 -32
- package/dist/components/ui/combobox/ComboboxInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxItem.js +0 -7
- package/dist/components/ui/combobox/ComboboxItem.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxItem.vue_vue_type_script_setup_true_lang.js +0 -34
- package/dist/components/ui/combobox/ComboboxItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxItemIndicator.js +0 -7
- package/dist/components/ui/combobox/ComboboxItemIndicator.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxItemIndicator.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/combobox/ComboboxItemIndicator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxSeparator.js +0 -7
- package/dist/components/ui/combobox/ComboboxSeparator.js.map +0 -1
- package/dist/components/ui/combobox/ComboboxSeparator.vue_vue_type_script_setup_true_lang.js +0 -27
- package/dist/components/ui/combobox/ComboboxSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/combobox/index.js +0 -9
- package/dist/components/ui/command/Command.js +0 -7
- package/dist/components/ui/command/Command.js.map +0 -1
- package/dist/components/ui/command/Command.vue_vue_type_script_setup_true_lang.js +0 -78
- package/dist/components/ui/command/Command.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandDialog.js +0 -7
- package/dist/components/ui/command/CommandDialog.js.map +0 -1
- package/dist/components/ui/command/CommandDialog.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/command/CommandDialog.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandEmpty.js +0 -7
- package/dist/components/ui/command/CommandEmpty.js.map +0 -1
- package/dist/components/ui/command/CommandEmpty.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/command/CommandEmpty.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandGroup.js +0 -7
- package/dist/components/ui/command/CommandGroup.js.map +0 -1
- package/dist/components/ui/command/CommandGroup.vue_vue_type_script_setup_true_lang.js +0 -50
- package/dist/components/ui/command/CommandGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandInput.js +0 -7
- package/dist/components/ui/command/CommandInput.js.map +0 -1
- package/dist/components/ui/command/CommandInput.vue_vue_type_script_setup_true_lang.js +0 -44
- package/dist/components/ui/command/CommandInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandItem.js +0 -7
- package/dist/components/ui/command/CommandItem.js.map +0 -1
- package/dist/components/ui/command/CommandItem.vue_vue_type_script_setup_true_lang.js +0 -53
- package/dist/components/ui/command/CommandItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandList.js +0 -7
- package/dist/components/ui/command/CommandList.js.map +0 -1
- package/dist/components/ui/command/CommandList.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/command/CommandList.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandSeparator.js +0 -7
- package/dist/components/ui/command/CommandSeparator.js.map +0 -1
- package/dist/components/ui/command/CommandSeparator.vue_vue_type_script_setup_true_lang.js +0 -32
- package/dist/components/ui/command/CommandSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/CommandShortcut.js +0 -7
- package/dist/components/ui/command/CommandShortcut.js.map +0 -1
- package/dist/components/ui/command/CommandShortcut.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/command/CommandShortcut.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/command/index.js +0 -16
- package/dist/components/ui/command/index.js.map +0 -1
- package/dist/components/ui/dialog/Dialog.js +0 -7
- package/dist/components/ui/dialog/Dialog.js.map +0 -1
- package/dist/components/ui/dialog/Dialog.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/dialog/Dialog.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogClose.js +0 -7
- package/dist/components/ui/dialog/DialogClose.js.map +0 -1
- package/dist/components/ui/dialog/DialogClose.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/dialog/DialogClose.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogContent.js +0 -7
- package/dist/components/ui/dialog/DialogContent.js.map +0 -1
- package/dist/components/ui/dialog/DialogContent.vue_vue_type_script_setup_true_lang.js +0 -49
- package/dist/components/ui/dialog/DialogContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogDescription.js +0 -7
- package/dist/components/ui/dialog/DialogDescription.js.map +0 -1
- package/dist/components/ui/dialog/DialogDescription.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/dialog/DialogDescription.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogFooter.js +0 -7
- package/dist/components/ui/dialog/DialogFooter.js.map +0 -1
- package/dist/components/ui/dialog/DialogFooter.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/dialog/DialogFooter.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogHeader.js +0 -7
- package/dist/components/ui/dialog/DialogHeader.js.map +0 -1
- package/dist/components/ui/dialog/DialogHeader.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/dialog/DialogHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogOverlay.js +0 -7
- package/dist/components/ui/dialog/DialogOverlay.js.map +0 -1
- package/dist/components/ui/dialog/DialogOverlay.vue_vue_type_script_setup_true_lang.js +0 -28
- package/dist/components/ui/dialog/DialogOverlay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogPortal.js +0 -7
- package/dist/components/ui/dialog/DialogPortal.js.map +0 -1
- package/dist/components/ui/dialog/DialogPortal.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/dialog/DialogPortal.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogTitle.js +0 -7
- package/dist/components/ui/dialog/DialogTitle.js.map +0 -1
- package/dist/components/ui/dialog/DialogTitle.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/dialog/DialogTitle.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/DialogTrigger.js +0 -7
- package/dist/components/ui/dialog/DialogTrigger.js.map +0 -1
- package/dist/components/ui/dialog/DialogTrigger.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/dialog/DialogTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dialog/index.js +0 -10
- package/dist/components/ui/dropdown-menu/DropdownMenu.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenu.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenu.vue_vue_type_script_setup_true_lang.js +0 -24
- package/dist/components/ui/dropdown-menu/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js +0 -38
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue_vue_type_script_setup_true_lang.js +0 -61
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuPortal.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuPortal.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuPortal.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/dropdown-menu/DropdownMenuPortal.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue_vue_type_script_setup_true_lang.js +0 -38
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue_vue_type_script_setup_true_lang.js +0 -27
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue_vue_type_script_setup_true_lang.js +0 -57
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang.js +0 -34
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.js +0 -7
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.js.map +0 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/dropdown-menu/index.js +0 -15
- package/dist/components/ui/field-frame/FieldFrame.js +0 -7
- package/dist/components/ui/field-frame/FieldFrame.js.map +0 -1
- package/dist/components/ui/field-frame/FieldFrame.vue_vue_type_script_setup_true_lang.js +0 -60
- package/dist/components/ui/field-frame/FieldFrame.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/field-frame/index.js +0 -1
- package/dist/components/ui/index.js +0 -160
- package/dist/components/ui/input/Input.js +0 -7
- package/dist/components/ui/input/Input.js.map +0 -1
- package/dist/components/ui/input/Input.vue_vue_type_script_setup_true_lang.js +0 -32
- package/dist/components/ui/input/Input.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/input/index.js +0 -1
- package/dist/components/ui/label/Label.js +0 -7
- package/dist/components/ui/label/Label.js.map +0 -1
- package/dist/components/ui/label/Label.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/label/Label.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/label/index.js +0 -14
- package/dist/components/ui/label/index.js.map +0 -1
- package/dist/components/ui/popover/Popover.js +0 -7
- package/dist/components/ui/popover/Popover.js.map +0 -1
- package/dist/components/ui/popover/Popover.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/popover/Popover.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/PopoverAnchor.js +0 -7
- package/dist/components/ui/popover/PopoverAnchor.js.map +0 -1
- package/dist/components/ui/popover/PopoverAnchor.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/components/ui/popover/PopoverAnchor.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/PopoverArrow.js +0 -7
- package/dist/components/ui/popover/PopoverArrow.js.map +0 -1
- package/dist/components/ui/popover/PopoverArrow.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/popover/PopoverArrow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/PopoverClose.js +0 -7
- package/dist/components/ui/popover/PopoverClose.js.map +0 -1
- package/dist/components/ui/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/PopoverContent.js +0 -7
- package/dist/components/ui/popover/PopoverContent.js.map +0 -1
- package/dist/components/ui/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js +0 -66
- package/dist/components/ui/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/PopoverPortal.js +0 -7
- package/dist/components/ui/popover/PopoverPortal.js.map +0 -1
- package/dist/components/ui/popover/PopoverPortal.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/popover/PopoverPortal.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/PopoverTrigger.js +0 -7
- package/dist/components/ui/popover/PopoverTrigger.js.map +0 -1
- package/dist/components/ui/popover/PopoverTrigger.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/popover/PopoverTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/popover/index.js +0 -7
- package/dist/components/ui/progress/Progress.js +0 -7
- package/dist/components/ui/progress/Progress.js.map +0 -1
- package/dist/components/ui/progress/Progress.vue_vue_type_script_setup_true_lang.js +0 -43
- package/dist/components/ui/progress/Progress.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/progress/index.js +0 -22
- package/dist/components/ui/progress/index.js.map +0 -1
- package/dist/components/ui/radio-group/RadioGroup.js +0 -7
- package/dist/components/ui/radio-group/RadioGroup.js.map +0 -1
- package/dist/components/ui/radio-group/RadioGroup.vue_vue_type_script_setup_true_lang.js +0 -39
- package/dist/components/ui/radio-group/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/radio-group/RadioGroupItem.js +0 -7
- package/dist/components/ui/radio-group/RadioGroupItem.js.map +0 -1
- package/dist/components/ui/radio-group/RadioGroupItem.vue_vue_type_script_setup_true_lang.js +0 -39
- package/dist/components/ui/radio-group/RadioGroupItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/radio-group/index.js +0 -2
- package/dist/components/ui/select/Select.js +0 -7
- package/dist/components/ui/select/Select.js.map +0 -1
- package/dist/components/ui/select/Select.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/select/Select.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectContent.js +0 -7
- package/dist/components/ui/select/SelectContent.js.map +0 -1
- package/dist/components/ui/select/SelectContent.vue_vue_type_script_setup_true_lang.js +0 -74
- package/dist/components/ui/select/SelectContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectGroup.js +0 -7
- package/dist/components/ui/select/SelectGroup.js.map +0 -1
- package/dist/components/ui/select/SelectGroup.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/select/SelectGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectItem.js +0 -7
- package/dist/components/ui/select/SelectItem.js.map +0 -1
- package/dist/components/ui/select/SelectItem.vue_vue_type_script_setup_true_lang.js +0 -40
- package/dist/components/ui/select/SelectItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectLabel.js +0 -7
- package/dist/components/ui/select/SelectLabel.js.map +0 -1
- package/dist/components/ui/select/SelectLabel.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/select/SelectLabel.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectScrollDownButton.js +0 -7
- package/dist/components/ui/select/SelectScrollDownButton.js.map +0 -1
- package/dist/components/ui/select/SelectScrollDownButton.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/select/SelectScrollDownButton.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectScrollUpButton.js +0 -7
- package/dist/components/ui/select/SelectScrollUpButton.js.map +0 -1
- package/dist/components/ui/select/SelectScrollUpButton.vue_vue_type_script_setup_true_lang.js +0 -31
- package/dist/components/ui/select/SelectScrollUpButton.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectSeparator.js +0 -7
- package/dist/components/ui/select/SelectSeparator.js.map +0 -1
- package/dist/components/ui/select/SelectSeparator.vue_vue_type_script_setup_true_lang.js +0 -27
- package/dist/components/ui/select/SelectSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectTrigger.js +0 -7
- package/dist/components/ui/select/SelectTrigger.js.map +0 -1
- package/dist/components/ui/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +0 -36
- package/dist/components/ui/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/SelectValue.js +0 -7
- package/dist/components/ui/select/SelectValue.js.map +0 -1
- package/dist/components/ui/select/SelectValue.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/components/ui/select/SelectValue.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/select/index.js +0 -10
- package/dist/components/ui/separator/Separator.js +0 -7
- package/dist/components/ui/separator/Separator.js.map +0 -1
- package/dist/components/ui/separator/Separator.vue_vue_type_script_setup_true_lang.js +0 -32
- package/dist/components/ui/separator/Separator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/separator/index.js +0 -1
- package/dist/components/ui/sheet/Sheet.js +0 -7
- package/dist/components/ui/sheet/Sheet.js.map +0 -1
- package/dist/components/ui/sheet/Sheet.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/sheet/Sheet.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetClose.js +0 -7
- package/dist/components/ui/sheet/SheetClose.js.map +0 -1
- package/dist/components/ui/sheet/SheetClose.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/sheet/SheetClose.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetContent.js +0 -7
- package/dist/components/ui/sheet/SheetContent.js.map +0 -1
- package/dist/components/ui/sheet/SheetContent.vue_vue_type_script_setup_true_lang.js +0 -55
- package/dist/components/ui/sheet/SheetContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetDescription.js +0 -7
- package/dist/components/ui/sheet/SheetDescription.js.map +0 -1
- package/dist/components/ui/sheet/SheetDescription.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/sheet/SheetDescription.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetFooter.js +0 -7
- package/dist/components/ui/sheet/SheetFooter.js.map +0 -1
- package/dist/components/ui/sheet/SheetFooter.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/sheet/SheetFooter.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetHeader.js +0 -7
- package/dist/components/ui/sheet/SheetHeader.js.map +0 -1
- package/dist/components/ui/sheet/SheetHeader.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/sheet/SheetHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetOverlay.js +0 -7
- package/dist/components/ui/sheet/SheetOverlay.js.map +0 -1
- package/dist/components/ui/sheet/SheetOverlay.vue_vue_type_script_setup_true_lang.js +0 -28
- package/dist/components/ui/sheet/SheetOverlay.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetPortal.js +0 -7
- package/dist/components/ui/sheet/SheetPortal.js.map +0 -1
- package/dist/components/ui/sheet/SheetPortal.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/sheet/SheetPortal.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetTitle.js +0 -7
- package/dist/components/ui/sheet/SheetTitle.js.map +0 -1
- package/dist/components/ui/sheet/SheetTitle.vue_vue_type_script_setup_true_lang.js +0 -30
- package/dist/components/ui/sheet/SheetTitle.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/SheetTrigger.js +0 -7
- package/dist/components/ui/sheet/SheetTrigger.js.map +0 -1
- package/dist/components/ui/sheet/SheetTrigger.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/sheet/SheetTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/sheet/index.js +0 -25
- package/dist/components/ui/sheet/index.js.map +0 -1
- package/dist/components/ui/skeleton/Skeleton.js +0 -7
- package/dist/components/ui/skeleton/Skeleton.js.map +0 -1
- package/dist/components/ui/skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/skeleton/index.js +0 -1
- package/dist/components/ui/slider/Slider.js +0 -7
- package/dist/components/ui/slider/Slider.js.map +0 -1
- package/dist/components/ui/slider/Slider.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/components/ui/slider/Slider.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/slider/index.js +0 -38
- package/dist/components/ui/slider/index.js.map +0 -1
- package/dist/components/ui/switch/Switch.js +0 -7
- package/dist/components/ui/switch/Switch.js.map +0 -1
- package/dist/components/ui/switch/Switch.vue_vue_type_script_setup_true_lang.js +0 -45
- package/dist/components/ui/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/switch/index.js +0 -22
- package/dist/components/ui/switch/index.js.map +0 -1
- package/dist/components/ui/table/Table.js +0 -7
- package/dist/components/ui/table/Table.js.map +0 -1
- package/dist/components/ui/table/Table.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/Table.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableBody.js +0 -7
- package/dist/components/ui/table/TableBody.js.map +0 -1
- package/dist/components/ui/table/TableBody.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableBody.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableCaption.js +0 -7
- package/dist/components/ui/table/TableCaption.js.map +0 -1
- package/dist/components/ui/table/TableCaption.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableCaption.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableCell.js +0 -7
- package/dist/components/ui/table/TableCell.js.map +0 -1
- package/dist/components/ui/table/TableCell.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableCell.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableFooter.js +0 -7
- package/dist/components/ui/table/TableFooter.js.map +0 -1
- package/dist/components/ui/table/TableFooter.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableFooter.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableHead.js +0 -7
- package/dist/components/ui/table/TableHead.js.map +0 -1
- package/dist/components/ui/table/TableHead.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableHead.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableHeader.js +0 -7
- package/dist/components/ui/table/TableHeader.js.map +0 -1
- package/dist/components/ui/table/TableHeader.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/TableRow.js +0 -7
- package/dist/components/ui/table/TableRow.js.map +0 -1
- package/dist/components/ui/table/TableRow.vue_vue_type_script_setup_true_lang.js +0 -21
- package/dist/components/ui/table/TableRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/table/index.js +0 -8
- package/dist/components/ui/tabs/Tabs.js +0 -7
- package/dist/components/ui/tabs/Tabs.js.map +0 -1
- package/dist/components/ui/tabs/Tabs.vue_vue_type_script_setup_true_lang.js +0 -37
- package/dist/components/ui/tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tabs/TabsContent.js +0 -7
- package/dist/components/ui/tabs/TabsContent.js.map +0 -1
- package/dist/components/ui/tabs/TabsContent.vue_vue_type_script_setup_true_lang.js +0 -32
- package/dist/components/ui/tabs/TabsContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tabs/TabsList.js +0 -7
- package/dist/components/ui/tabs/TabsList.js.map +0 -1
- package/dist/components/ui/tabs/TabsList.vue_vue_type_script_setup_true_lang.js +0 -33
- package/dist/components/ui/tabs/TabsList.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tabs/TabsTrigger.js +0 -7
- package/dist/components/ui/tabs/TabsTrigger.js.map +0 -1
- package/dist/components/ui/tabs/TabsTrigger.vue_vue_type_script_setup_true_lang.js +0 -34
- package/dist/components/ui/tabs/TabsTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tabs/index.js +0 -25
- package/dist/components/ui/tabs/index.js.map +0 -1
- package/dist/components/ui/textarea/Textarea.js +0 -7
- package/dist/components/ui/textarea/Textarea.js.map +0 -1
- package/dist/components/ui/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +0 -36
- package/dist/components/ui/textarea/Textarea.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/textarea/index.js +0 -1
- package/dist/components/ui/toast/Toaster.js +0 -7
- package/dist/components/ui/toast/Toaster.js.map +0 -1
- package/dist/components/ui/toast/Toaster.vue_vue_type_script_setup_true_lang.js +0 -55
- package/dist/components/ui/toast/Toaster.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/toast/index.js +0 -26
- package/dist/components/ui/toast/index.js.map +0 -1
- package/dist/components/ui/toggle/Toggle.js +0 -7
- package/dist/components/ui/toggle/Toggle.js.map +0 -1
- package/dist/components/ui/toggle/Toggle.vue_vue_type_script_setup_true_lang.js +0 -68
- package/dist/components/ui/toggle/Toggle.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/toggle/index.js +0 -24
- package/dist/components/ui/toggle/index.js.map +0 -1
- package/dist/components/ui/tooltip/Tooltip.js +0 -7
- package/dist/components/ui/tooltip/Tooltip.js.map +0 -1
- package/dist/components/ui/tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +0 -27
- package/dist/components/ui/tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipArrow.js +0 -7
- package/dist/components/ui/tooltip/TooltipArrow.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipArrow.vue_vue_type_script_setup_true_lang.js +0 -29
- package/dist/components/ui/tooltip/TooltipArrow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipContent.js +0 -7
- package/dist/components/ui/tooltip/TooltipContent.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js +0 -53
- package/dist/components/ui/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipPortal.js +0 -7
- package/dist/components/ui/tooltip/TooltipPortal.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipPortal.vue_vue_type_script_setup_true_lang.js +0 -23
- package/dist/components/ui/tooltip/TooltipPortal.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipProvider.js +0 -7
- package/dist/components/ui/tooltip/TooltipProvider.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js +0 -26
- package/dist/components/ui/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipTrigger.js +0 -7
- package/dist/components/ui/tooltip/TooltipTrigger.js.map +0 -1
- package/dist/components/ui/tooltip/TooltipTrigger.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/components/ui/tooltip/TooltipTrigger.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/components/ui/tooltip/index.js +0 -6
- package/dist/composables/useAsyncSearch.js +0 -43
- package/dist/composables/useAsyncSearch.js.map +0 -1
- package/dist/composables/useConnectorLoader.js +0 -49
- package/dist/composables/useConnectorLoader.js.map +0 -1
- package/dist/definitions/cards/CardListCard.js +0 -81
- package/dist/definitions/cards/CardListCard.js.map +0 -1
- package/dist/definitions/cards/DataTableCard.js +0 -65
- package/dist/definitions/cards/DataTableCard.js.map +0 -1
- package/dist/definitions/cards/ElementDisplayCard.js +0 -40
- package/dist/definitions/cards/ElementDisplayCard.js.map +0 -1
- package/dist/definitions/cards/ElementListCard.js +0 -62
- package/dist/definitions/cards/ElementListCard.js.map +0 -1
- package/dist/definitions/cards/GridViewCard.js +0 -83
- package/dist/definitions/cards/GridViewCard.js.map +0 -1
- package/dist/definitions/cards/InfoCard.js +0 -126
- package/dist/definitions/cards/InfoCard.js.map +0 -1
- package/dist/definitions/cards/TabListCard.js +0 -90
- package/dist/definitions/cards/TabListCard.js.map +0 -1
- package/dist/definitions/cards/index.js +0 -21
- package/dist/definitions/cards/index.js.map +0 -1
- package/dist/definitions/elements/ActionElement.js +0 -249
- package/dist/definitions/elements/ActionElement.js.map +0 -1
- package/dist/definitions/elements/BooleanElement.js +0 -150
- package/dist/definitions/elements/BooleanElement.js.map +0 -1
- package/dist/definitions/elements/BuilderElement.js +0 -114
- package/dist/definitions/elements/BuilderElement.js.map +0 -1
- package/dist/definitions/elements/CardLayoutElement.js +0 -217
- package/dist/definitions/elements/CardLayoutElement.js.map +0 -1
- package/dist/definitions/elements/CodeElement.js +0 -158
- package/dist/definitions/elements/CodeElement.js.map +0 -1
- package/dist/definitions/elements/ConfigurationBlockElement.js +0 -116
- package/dist/definitions/elements/ConfigurationBlockElement.js.map +0 -1
- package/dist/definitions/elements/DisplayElement.js +0 -263
- package/dist/definitions/elements/DisplayElement.js.map +0 -1
- package/dist/definitions/elements/EditorElement.js +0 -152
- package/dist/definitions/elements/EditorElement.js.map +0 -1
- package/dist/definitions/elements/FileElement.js +0 -119
- package/dist/definitions/elements/FileElement.js.map +0 -1
- package/dist/definitions/elements/InputElement.js +0 -224
- package/dist/definitions/elements/InputElement.js.map +0 -1
- package/dist/definitions/elements/OptionSelectElement.js +0 -244
- package/dist/definitions/elements/OptionSelectElement.js.map +0 -1
- package/dist/definitions/elements/PickerElement.js +0 -352
- package/dist/definitions/elements/PickerElement.js.map +0 -1
- package/dist/definitions/elements/index.js +0 -80
- package/dist/definitions/elements/index.js.map +0 -1
- package/dist/definitions/index.js +0 -22
- package/dist/definitions/shared/base.js +0 -18
- package/dist/definitions/shared/base.js.map +0 -1
- package/dist/engine/CardRenderer.js +0 -7
- package/dist/engine/CardRenderer.js.map +0 -1
- package/dist/engine/CardRenderer.vue_vue_type_script_setup_true_lang.js +0 -99
- package/dist/engine/CardRenderer.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/engine/ElementRenderer.js +0 -7
- package/dist/engine/ElementRenderer.js.map +0 -1
- package/dist/engine/ElementRenderer.vue_vue_type_script_setup_true_lang.js +0 -66
- package/dist/engine/ElementRenderer.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/engine/index.js +0 -7
- package/dist/engine/legacyPropRemap.js +0 -41
- package/dist/engine/legacyPropRemap.js.map +0 -1
- package/dist/engine/registry.js +0 -148
- package/dist/engine/registry.js.map +0 -1
- package/dist/engine/useCardLoader.js +0 -47
- package/dist/engine/useCardLoader.js.map +0 -1
- package/dist/engine/useDisplayConditions.js +0 -80
- package/dist/engine/useDisplayConditions.js.map +0 -1
- package/dist/engine/useElementLoader.js +0 -135
- package/dist/engine/useElementLoader.js.map +0 -1
- package/dist/engine/useFormData.js +0 -21
- package/dist/engine/useFormData.js.map +0 -1
- package/dist/lib/utils.js +0 -16
- package/dist/lib/utils.js.map +0 -1
- package/dist/node_modules/.pnpm/leaflet@1.9.4/node_modules/leaflet/dist/images/marker-icon-2x.js +0 -6
- package/dist/node_modules/.pnpm/leaflet@1.9.4/node_modules/leaflet/dist/images/marker-icon-2x.js.map +0 -1
- package/dist/node_modules/.pnpm/leaflet@1.9.4/node_modules/leaflet/dist/images/marker-icon.js +0 -6
- package/dist/node_modules/.pnpm/leaflet@1.9.4/node_modules/leaflet/dist/images/marker-icon.js.map +0 -1
- package/dist/node_modules/.pnpm/leaflet@1.9.4/node_modules/leaflet/dist/images/marker-shadow.js +0 -6
- package/dist/node_modules/.pnpm/leaflet@1.9.4/node_modules/leaflet/dist/images/marker-shadow.js.map +0 -1
- package/dist/pages/IndexPage.js +0 -7
- package/dist/pages/IndexPage.js.map +0 -1
- package/dist/pages/IndexPage.vue_vue_type_script_setup_true_lang.js +0 -76
- package/dist/pages/IndexPage.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/pages/ShowPage.js +0 -7
- package/dist/pages/ShowPage.js.map +0 -1
- package/dist/pages/ShowPage.vue_vue_type_script_setup_true_lang.js +0 -155
- package/dist/pages/ShowPage.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/stores/dependencyListBuilderStore.js +0 -237
- package/dist/stores/dependencyListBuilderStore.js.map +0 -1
- package/dist/stores/elementListBuilderStore.js +0 -94
- package/dist/stores/elementListBuilderStore.js.map +0 -1
- package/dist/stores/formBuilderStore.js +0 -217
- package/dist/stores/formBuilderStore.js.map +0 -1
- package/dist/stores/formDataStore.js +0 -51
- package/dist/stores/formDataStore.js.map +0 -1
- package/dist/stores/gridBuilderStore.js +0 -123
- package/dist/stores/gridBuilderStore.js.map +0 -1
- package/dist/stores/objectBuilderStore.js +0 -132
- package/dist/stores/objectBuilderStore.js.map +0 -1
- package/dist/stores/presetBuilderStore.js +0 -64
- package/dist/stores/presetBuilderStore.js.map +0 -1
- package/dist/stores/quizBuilderStore.js +0 -182
- package/dist/stores/quizBuilderStore.js.map +0 -1
- package/dist/stores/reactiveCanvasBuilderStore.js +0 -128
- package/dist/stores/reactiveCanvasBuilderStore.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormBuilder-D314W1mI.js","names":[],"sources":["../../src/components/compositions/elements/builder/FormBuilder.vue","../../src/components/compositions/elements/builder/FormBuilder.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * FormBuilder — visual schema builder.\n *\n * Three-pane layout:\n * - LEFT (Palette): Clickable list of element types from\n * CardElementMetadataMap. Click to append a\n * new element to the root card.\n * - MIDDLE (Canvas): Live preview via CardRenderer plus a drag-\n * sortable grid canvas. Each element block shows\n * a center-top reorder handle and a top-right\n * resize handle on hover.\n * - RIGHT (Inspector): Property panel for the selected element.\n * Every input writes through the\n * formBuilderStore.\n *\n * State is owned by `formBuilderStore` (Pinia). The builder accepts an\n * optional initial schema via `modelValue` and emits the current schema\n * through `update:modelValue` so the host page can save it like any\n * other form field.\n *\n * Drag reorder: center-top handle → pointer events snap element to new\n * index in elementList.\n * Drag resize: top-right handle → pointer events set colSpan (1–4) on\n * the element, mapping to 25/50/75/100 % of the canvas width.\n */\nimport { computed, onBeforeUnmount, onMounted, reactive, ref, watch } from \"vue\"\nimport {\n ArrowDown,\n ArrowUp,\n ChevronRight,\n ChevronsLeftRight,\n GripHorizontal,\n Info,\n LayoutList,\n Maximize2,\n Minimize2,\n PencilLine,\n Plus,\n Trash2,\n X,\n} from \"@lucide/vue\"\nimport type { CardElement } from \"@/definitions/elements\"\nimport { CardElementMetadataMap, CardElementStylesMap, getElementEditConfig } from \"@/definitions/elements\"\nimport type { EditConfigField } from \"@/definitions/shared/base\"\nimport { joinElementType, splitElementType } from \"@/definitions/shared/base\"\nimport { shouldRender } from \"@/engine/useDisplayConditions\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Switch } from \"@/components/ui/switch\"\nimport CardRenderer from \"@/engine/CardRenderer.vue\"\nimport ElementRenderer from \"@/engine/ElementRenderer.vue\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\nimport {\n useFormBuilder,\n type BuilderSchema,\n} from \"@/stores/formBuilderStore\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface FormBuilderProps {\n /** Initial / current schema. Two-way bindable via v-model. */\n modelValue?: BuilderSchema\n /**\n * Identifier used to key the formBuilderStore. Defaults to a stable\n * auto-generated id so multiple FormBuilders on the same page don't\n * collide.\n */\n builderId?: string\n label?: string\n name?: string | null\n item?: Record<string, unknown>\n classList?: string[] | string\n}\n\nconst props = withDefaults(defineProps<FormBuilderProps>(), {\n item: () => ({}),\n})\n\nconst model = defineModel<BuilderSchema | undefined>(\"modelValue\")\n\nlet nextAutoId = 0\nfunction makeAutoId(): string {\n nextAutoId += 1\n return `form-builder-${Date.now()}-${nextAutoId}`\n}\nconst fallbackId = ref<string>(makeAutoId())\n\nconst builderId = computed<string>(() => props.builderId ?? fallbackId.value)\n\n/** Controls which canvas view is active. */\nconst canvasMode = ref<\"inline\" | \"list\">(\"list\")\n\n/**\n * When non-null the canvas is \"zoomed into\" a specific card-type element.\n * Only that card's children are shown and editable. Schema storage is\n * unaffected — this is purely a UI focus state.\n */\nconst zoomedCardId = ref<string | null>(null)\nconst isZoomed = computed(() => zoomedCardId.value !== null)\nconst zoomedCardElement = computed(() =>\n zoomedCardId.value\n ? (builder.schema.value.elements[zoomedCardId.value] ?? null)\n : null,\n)\n\nfunction zoomInto(elementId: string): void {\n zoomedCardId.value = elementId\n builder.select(\"element\", elementId)\n}\n\nfunction zoomOut(): void {\n zoomedCardId.value = null\n}\n\nconst builder = useFormBuilder(builderId.value)\n\nfunction isBuilderSchema(value: unknown): value is BuilderSchema {\n if (typeof value !== \"object\" || value === null) {\n return false\n }\n const v = value as Record<string, unknown>\n return (\n typeof v.rootCardId === \"string\" &&\n typeof v.cards === \"object\" &&\n v.cards !== null &&\n typeof v.elements === \"object\" &&\n v.elements !== null\n )\n}\n\n/** Seed the store from the initial modelValue. */\nonMounted(() => {\n const seed = model.value\n if (isBuilderSchema(seed)) {\n builder.loadSchema(seed)\n }\n})\n\n/** Push schema changes back via v-model. */\nwatch(\n () => builder.schema.value,\n (next) => {\n model.value = next\n },\n { deep: true },\n)\n\nconst rootCard = computed(\n () => builder.schema.value.cards[builder.schema.value.rootCardId],\n)\n\nconst canvasRootContainerId = computed(() => builder.schema.value.rootCardId)\n\n/** Active container for the visible canvas — root unless zoomed into a card element. */\nconst activeCanvasContainerId = computed(() => zoomedCardId.value ?? canvasRootContainerId.value)\n\n/** The element list shown in the canvas — scoped to the zoomed card when active. */\nconst activeElementList = computed(() =>\n zoomedCardId.value ? getElementList(zoomedCardId.value) : rootElementList.value,\n)\n\nconst rootElementList = computed<string[]>(() => {\n const card = rootCard.value\n if (!card) {\n return []\n }\n return ((card as unknown as Record<string, unknown>).elementList as string[]) ?? []\n})\n\n/** True when an element's type starts with \"card.\" — it acts as a nested container. */\nfunction isCardElement(elementId: string): boolean {\n const el = builder.schema.value.elements[elementId]\n if (!el) return false\n return String((el as unknown as Record<string, unknown>).type ?? \"\").startsWith(\"card.\")\n}\n\n/** Returns the elementList for any container (card or card-type element). */\nfunction getElementList(containerId: string): string[] {\n const schema = builder.schema.value\n const card = schema.cards[containerId]\n if (card) return ((card as unknown as Record<string, unknown>).elementList as string[] | undefined) ?? []\n const el = schema.elements[containerId]\n if (el) return ((el as unknown as Record<string, unknown>).elementList as string[] | undefined) ?? []\n return []\n}\n\n/**\n * For inline-mode rendering: augments a card-type element with resolved\n * `nestedElements` so the composition receives actual child objects, not IDs.\n */\nfunction resolveElementForRender(elementId: string): CardElement {\n const el = builder.schema.value.elements[elementId]!\n if (!isCardElement(elementId)) return el\n const bag = el as unknown as Record<string, unknown>\n const childIds = (bag.elementList as string[] | undefined) ?? []\n const nestedElements = childIds\n .map((id) => builder.schema.value.elements[id])\n .filter(Boolean)\n return { ...el, nestedElements } as unknown as CardElement\n}\n\nconst paletteGroups = computed(() =>\n (\n Object.entries(CardElementMetadataMap) as Array<\n [\n keyof typeof CardElementMetadataMap,\n (typeof CardElementMetadataMap)[keyof typeof CardElementMetadataMap],\n ]\n >\n ).map(([type, meta]) => ({\n type,\n meta,\n styles: CardElementStylesMap[type],\n })),\n)\n\nconst expandedGroups = reactive<Record<string, boolean>>({})\n\nfunction toggleGroup(type: string): void {\n expandedGroups[type] = !expandedGroups[type]\n}\n\nconst selectedElement = computed<CardElement | null>(() => {\n const sel = builder.selection.value\n if (sel.kind !== \"element\" || !sel.id) {\n return null\n }\n return builder.schema.value.elements[sel.id] ?? null\n})\n\n/** ID of the container that owns the currently selected element. */\nconst selectedContainerId = computed<string>(() => {\n const sel = builder.selection.value\n if (sel.kind !== \"element\" || !sel.id) return canvasRootContainerId.value\n if (rootElementList.value.includes(sel.id)) return canvasRootContainerId.value\n for (const [elId, el] of Object.entries(builder.schema.value.elements)) {\n const bag = el as unknown as Record<string, unknown>\n if (typeof bag.type === \"string\" && (bag.type as string).startsWith(\"card.\")) {\n if (((bag.elementList as string[] | undefined) ?? []).includes(sel.id)) {\n return elId\n }\n }\n }\n return canvasRootContainerId.value\n})\n\nconst selectedContainerList = computed<string[]>(() => getElementList(selectedContainerId.value))\n\nconst selectedIndex = computed<number>(() => {\n const sel = builder.selection.value\n if (sel.kind !== \"element\" || !sel.id) return -1\n return selectedContainerList.value.indexOf(sel.id)\n})\n\nconst canMoveDown = computed<boolean>(() => {\n const list = selectedContainerList.value\n return selectedIndex.value >= 0 && selectedIndex.value < list.length - 1\n})\n\nfunction onStyleClick(category: keyof typeof CardElementMetadataMap, style: string): void {\n const sel = builder.selection.value\n // Priority: 1) zoomed card container, 2) selected card element, 3) root.\n let containerId: string\n if (zoomedCardId.value) {\n containerId = zoomedCardId.value\n } else if (sel.kind === \"element\" && sel.id && isCardElement(sel.id)) {\n containerId = sel.id\n } else {\n containerId = builder.schema.value.rootCardId\n }\n const newId = builder.addElement(containerId, `${category}.${style}`)\n builder.select(\"element\", newId)\n}\n\nfunction onCanvasElementClick(elementId: string): void {\n builder.select(\"element\", elementId)\n}\n\nfunction onMoveUp(): void {\n if (selectedIndex.value <= 0) return\n builder.reorderElement(selectedContainerId.value, selectedIndex.value, selectedIndex.value - 1)\n}\n\nfunction onMoveDown(): void {\n if (!canMoveDown.value) return\n builder.reorderElement(selectedContainerId.value, selectedIndex.value, selectedIndex.value + 1)\n}\n\nfunction onRemove(): void {\n const sel = builder.selection.value\n if (sel.kind === \"element\" && sel.id) {\n builder.removeElement(sel.id)\n } else if (sel.kind === \"card\" && sel.id) {\n builder.removeCard(sel.id)\n }\n}\n\nfunction onClearSelection(): void {\n builder.select(null, null)\n}\n\nfunction patchSelected(patch: Partial<CardElement>): void {\n const sel = builder.selection.value\n if (sel.kind === \"element\" && sel.id) {\n builder.updateElement(sel.id, patch)\n }\n}\n\n/**\n * Dynamically resolved list of inspector fields for the selected element.\n * Uses the category-level EditConfig and evaluates conditionParams against a\n * virtual item that includes `style` extracted from the dot-notation type so\n * conditions like `{ name: \"style\", logic: \"==\", value: \"textarea\" }` work.\n */\nconst inspectorFields = computed<Array<{ fieldName: string; spec: EditConfigField }>>(() => {\n const el = selectedElement.value\n if (!el) return []\n\n const editConfig = getElementEditConfig(el.type)\n if (!editConfig) return []\n\n const { style } = splitElementType(el.type)\n const virtualItem = { ...(el as unknown as Record<string, unknown>), style }\n\n return Object.entries(editConfig)\n .filter(([, spec]) => {\n const t = (spec as EditConfigField).type as string\n // Skip fields that need complex nested renderers in the inspector.\n if (t?.startsWith(\"configuration-block.\")) return false\n if (t?.startsWith(\"builder.\")) return false\n if (t?.startsWith(\"code.\")) return false\n return shouldRender(spec as EditConfigField, virtualItem)\n })\n .map(([fieldName, spec]) => ({ fieldName, spec: spec as EditConfigField }))\n})\n\nfunction getFieldValue(fieldName: string): unknown {\n const el = selectedElement.value as unknown as Record<string, unknown> | null\n // `style` is not stored separately — derive it from the dot-notation `type`.\n if (fieldName === \"style\" && el?.type) {\n return splitElementType(String(el.type)).style\n }\n return el?.[fieldName] ?? \"\"\n}\n\nfunction onFieldInput(fieldName: string, value: unknown): void {\n // A style change means the element type changes: \"boolean.checkbox\" → \"boolean.switch\".\n if (fieldName === \"style\") {\n const el = selectedElement.value\n if (!el) return\n const { category } = splitElementType(el.type)\n patchSelected({ type: joinElementType(category, String(value)) } as unknown as Partial<CardElement>)\n return\n }\n patchSelected({ [fieldName]: value } as Partial<CardElement>)\n}\n\n/* ------------------------------------------------------------------ */\n/* Drag-reorder + drag-resize */\n/* ------------------------------------------------------------------ */\n\nconst canvasEl = ref<HTMLElement | null>(null)\n\ninterface FormDragState {\n mode: \"reorder\" | \"resize\"\n elementId: string\n fromContainerId: string\n fromIndex: number\n startClientX: number\n startColSpan: number\n containerWidth: number\n pointerId: number\n captureTarget: HTMLElement\n}\n\nconst activeDrag = ref<FormDragState | null>(null)\nconst dropTargetIndex = ref<number | null>(null)\nconst dropContainerId = ref<string | null>(null)\n\n/** colSpan (1–4) is stored directly on the element as a builder prop. */\nfunction getColSpan(elementId: string): number {\n const el = builder.schema.value.elements[elementId] as unknown as Record<string, unknown>\n const span = el?.colSpan\n return typeof span === \"number\" && span >= 1 && span <= 4 ? span : 4\n}\n\nfunction elementGridStyle(elementId: string): Record<string, string> {\n return { gridColumn: `span ${getColSpan(elementId)}` }\n}\n\nfunction beginFormDrag(\n mode: \"reorder\" | \"resize\",\n elementId: string,\n fromContainerId: string,\n fromIndex: number,\n event: PointerEvent,\n): void {\n if (event.button !== 0) return\n event.preventDefault()\n event.stopPropagation()\n builder.select(\"element\", elementId)\n const target = event.target as HTMLElement\n try {\n target.setPointerCapture(event.pointerId)\n } catch {\n // jsdom or restricted context\n }\n activeDrag.value = {\n mode,\n elementId,\n fromContainerId,\n fromIndex,\n startClientX: event.clientX,\n startColSpan: getColSpan(elementId),\n containerWidth: canvasEl.value?.getBoundingClientRect().width ?? 0,\n pointerId: event.pointerId,\n captureTarget: target,\n }\n if (mode === \"reorder\") {\n dropTargetIndex.value = fromIndex\n dropContainerId.value = fromContainerId\n }\n window.addEventListener(\"pointermove\", onFormPointerMove)\n window.addEventListener(\"pointerup\", onFormPointerUp)\n window.addEventListener(\"pointercancel\", onFormPointerUp)\n}\n\nfunction onReorderHandlePointerDown(\n elementId: string,\n containerId: string,\n index: number,\n event: PointerEvent,\n): void {\n beginFormDrag(\"reorder\", elementId, containerId, index, event)\n}\n\nfunction onResizeHandlePointerDown(\n elementId: string,\n event: PointerEvent,\n): void {\n beginFormDrag(\"resize\", elementId, canvasRootContainerId.value, -1, event)\n}\n\nfunction onFormPointerMove(event: PointerEvent): void {\n const state = activeDrag.value\n if (!state) return\n\n if (state.mode === \"resize\") {\n const dx = event.clientX - state.startClientX\n const colW = (state.containerWidth > 0 ? state.containerWidth : 400) / 4\n const colDelta = Math.round(dx / colW)\n const newSpan = Math.max(1, Math.min(4, state.startColSpan + colDelta))\n builder.updateElement(state.elementId, { colSpan: newSpan } as unknown as Partial<CardElement>)\n return\n }\n\n const target = document.elementFromPoint(event.clientX, event.clientY)\n if (!target) return\n\n // Determine which container the pointer is over (innermost wins).\n const containerEl = (target as HTMLElement).closest(\"[data-container-id]\")\n const cId = (containerEl as HTMLElement | null)?.dataset.containerId ?? null\n dropContainerId.value = cId\n\n // Find the element block index within that container.\n let blockEl: Element | null = (target as HTMLElement).closest(\"[data-element-block-index]\")\n // Discard if the block is outside (ancestor of) the detected container.\n if (blockEl && containerEl && !containerEl.contains(blockEl)) {\n blockEl = null\n }\n if (blockEl) {\n const idx = Number.parseInt(\n (blockEl as HTMLElement).dataset.elementBlockIndex ?? \"-1\",\n 10,\n )\n if (idx >= 0) dropTargetIndex.value = idx\n } else {\n // Hovering over empty space in the container — drop at end.\n dropTargetIndex.value = cId ? getElementList(cId).length : null\n }\n}\n\nfunction onFormPointerUp(event: PointerEvent): void {\n const state = activeDrag.value\n if (!state) {\n cleanupFormDrag()\n return\n }\n try {\n state.captureTarget.releasePointerCapture(state.pointerId)\n } catch {\n // ignore\n }\n if (state.mode === \"reorder\" && dropTargetIndex.value !== null) {\n const targetContainer = dropContainerId.value ?? state.fromContainerId\n if (targetContainer !== state.fromContainerId) {\n builder.moveElement(state.fromContainerId, targetContainer, state.elementId, dropTargetIndex.value)\n } else if (dropTargetIndex.value !== state.fromIndex) {\n builder.reorderElement(state.fromContainerId, state.fromIndex, dropTargetIndex.value)\n }\n }\n cleanupFormDrag()\n void event\n}\n\nfunction cleanupFormDrag(): void {\n activeDrag.value = null\n dropTargetIndex.value = null\n dropContainerId.value = null\n window.removeEventListener(\"pointermove\", onFormPointerMove)\n window.removeEventListener(\"pointerup\", onFormPointerUp)\n window.removeEventListener(\"pointercancel\", onFormPointerUp)\n}\n\nonBeforeUnmount(() => {\n cleanupFormDrag()\n})\n\nconst outerGridColumns = computed(() =>\n selectedElement.value\n ? \"220px 1fr 280px\"\n : \"220px 1fr 2rem\",\n)\n</script>\n\n<template>\n <div\n :class=\"cn('gxp-form-builder grid gap-3 rounded-lg border bg-card', props.classList)\"\n :style=\"{ gridTemplateColumns: outerGridColumns, minHeight: '24rem', transition: 'grid-template-columns 200ms ease' }\"\n data-testid=\"form-builder\"\n :data-element-name=\"props.name ?? undefined\"\n >\n <aside\n class=\"flex flex-col gap-2 border-r p-3 overflow-y-auto\"\n data-testid=\"form-builder-palette\"\n >\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {{ props.label ?? \"Element palette\" }}\n </h4>\n <div class=\"flex flex-col gap-0.5\">\n <div\n v-for=\"entry in paletteGroups\"\n :key=\"entry.type\"\n >\n <button\n type=\"button\"\n class=\"flex w-full items-start gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors hover:bg-accent/30\"\n :data-testid=\"`form-builder-palette-${entry.type}`\"\n @click=\"toggleGroup(entry.type)\"\n >\n <ChevronRight\n class=\"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform duration-150\"\n :class=\"expandedGroups[entry.type] ? 'rotate-90' : ''\"\n />\n <span class=\"flex min-w-0 flex-col gap-0.5\">\n <span class=\"font-medium\">{{ entry.meta.displayLabel }}</span>\n <span class=\"line-clamp-2 text-[10px] text-muted-foreground\">\n {{ entry.meta.description }}\n </span>\n </span>\n </button>\n\n <div\n v-if=\"expandedGroups[entry.type]\"\n class=\"ml-5 flex flex-col gap-0.5 pb-1\"\n >\n <button\n v-for=\"styleOption in entry.styles\"\n :key=\"styleOption.value\"\n type=\"button\"\n class=\"flex items-center gap-1.5 rounded border bg-background px-2 py-1 text-left text-xs transition-colors hover:border-primary hover:bg-accent/40\"\n :data-testid=\"`form-builder-palette-${entry.type}-${styleOption.value}`\"\n @click=\"onStyleClick(entry.type, styleOption.value)\"\n >\n <Plus class=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n {{ styleOption.label }}\n </button>\n </div>\n </div>\n </div>\n </aside>\n\n <section\n class=\"flex flex-col gap-3 overflow-y-auto p-3\"\n data-testid=\"form-builder-canvas\"\n >\n <header class=\"flex flex-col gap-2\">\n <!-- Zoom breadcrumb — shown when focused into a card element -->\n <div\n v-if=\"isZoomed\"\n class=\"flex items-center gap-2 rounded-md border bg-muted/40 px-2.5 py-1.5 text-xs\"\n data-testid=\"form-builder-zoom-breadcrumb\"\n >\n <button\n type=\"button\"\n class=\"flex items-center gap-1.5 text-muted-foreground transition-colors hover:text-foreground\"\n data-testid=\"form-builder-zoom-out\"\n @click=\"zoomOut\"\n >\n <Minimize2 class=\"h-3.5 w-3.5\" />\n <span>Full form</span>\n </button>\n <span class=\"text-muted-foreground/50\">/</span>\n <span class=\"font-medium\">\n {{ (zoomedCardElement as Record<string, unknown> | null)?.label ?? 'Card' }}\n </span>\n </div>\n <div class=\"flex items-center justify-between\">\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {{ canvasMode === \"inline\" ? \"Canvas\" : isZoomed ? \"Card preview\" : \"Preview\" }}\n </h4>\n <div class=\"flex items-center gap-2\">\n <!-- Mode toggle -->\n <div class=\"flex items-center rounded-md border p-0.5\">\n <button\n type=\"button\"\n class=\"rounded px-1.5 py-0.5 transition-colors\"\n :class=\"canvasMode === 'list' ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:text-foreground'\"\n title=\"List mode — separate preview and element list\"\n data-testid=\"form-builder-mode-list\"\n @click=\"canvasMode = 'list'\"\n >\n <LayoutList class=\"h-3.5 w-3.5\" />\n </button>\n <button\n type=\"button\"\n class=\"rounded px-1.5 py-0.5 transition-colors\"\n :class=\"canvasMode === 'inline' ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:text-foreground'\"\n title=\"Inline mode — live interactive canvas\"\n data-testid=\"form-builder-mode-inline\"\n @click=\"canvasMode = 'inline'\"\n >\n <PencilLine class=\"h-3.5 w-3.5\" />\n </button>\n </div>\n <Badge variant=\"outline\" class=\"font-mono text-[10px]\">\n builder/form-builder\n </Badge>\n </div>\n </div>\n </header>\n\n <!-- ─── LIST MODE ──────────────────────────────────────────────── -->\n <template v-if=\"canvasMode === 'list'\">\n <!-- Preview section: full CardRenderer when at root, element preview when zoomed -->\n <div class=\"rounded-md border border-dashed bg-background p-3\">\n <template v-if=\"isZoomed && zoomedCardId\">\n <Suspense>\n <ElementRenderer\n :element=\"resolveElementForRender(zoomedCardId)\"\n :item=\"props.item\"\n />\n </Suspense>\n <p\n v-if=\"!activeElementList.length\"\n class=\"py-6 text-center text-xs text-muted-foreground\"\n data-testid=\"form-builder-canvas-empty\"\n >\n Click an element in the palette to add it.\n </p>\n </template>\n <template v-else-if=\"rootCard\">\n <CardRenderer\n :card=\"rootCard\"\n :item=\"props.item\"\n :elements=\"builder.schema.value.elements\"\n :cards=\"builder.schema.value.cards\"\n />\n <p\n v-if=\"rootElementList.length === 0\"\n class=\"py-6 text-center text-xs text-muted-foreground\"\n data-testid=\"form-builder-canvas-empty\"\n >\n Click an element in the palette to add it.\n </p>\n </template>\n </div>\n\n <!-- Drag-sortable grid canvas — scoped to active container -->\n <div\n ref=\"canvasEl\"\n class=\"grid gap-2 text-xs\"\n style=\"grid-template-columns: repeat(4, minmax(0, 1fr))\"\n :data-container-id=\"activeCanvasContainerId\"\n data-testid=\"form-builder-canvas-list\"\n >\n <p\n v-if=\"!activeElementList.length\"\n class=\"col-span-full py-4 text-center text-muted-foreground\"\n >\n Add elements from the palette.\n </p>\n <div\n v-for=\"(elId, index) in activeElementList\"\n :key=\"elId\"\n :data-element-block-index=\"index\"\n :data-testid=\"`form-builder-row-${elId}`\"\n class=\"group relative cursor-pointer select-none rounded border bg-background transition-colors\"\n :class=\"[\n isCardElement(elId) ? 'px-2 pb-2 pt-5' : 'px-2 pb-2 pt-5 text-center',\n builder.selection.value.kind === 'element' && builder.selection.value.id === elId\n ? 'border-primary bg-accent/30'\n : 'hover:border-primary/50',\n activeDrag?.elementId === elId && activeDrag.mode === 'reorder'\n ? 'opacity-40 ring-2 ring-primary'\n : '',\n dropContainerId === activeCanvasContainerId &&\n dropTargetIndex === index &&\n activeDrag?.mode === 'reorder' &&\n activeDrag?.elementId !== elId\n ? 'ring-2 ring-primary/60 bg-primary/5'\n : '',\n ]\"\n :style=\"elementGridStyle(elId)\"\n @click=\"onCanvasElementClick(elId)\"\n >\n <!-- Center-top reorder handle -->\n <span\n class=\"absolute left-1/2 top-0.5 -translate-x-1/2 cursor-grab touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100 active:cursor-grabbing\"\n title=\"Drag to reorder\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onReorderHandlePointerDown(elId, activeCanvasContainerId, index, e)\"\n >\n <GripHorizontal class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Top-right resize handle -->\n <span\n class=\"absolute right-0.5 top-0.5 cursor-ew-resize touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"\n :title=\"`Width: ${getColSpan(elId)}/4 — drag to resize`\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onResizeHandlePointerDown(elId, e)\"\n >\n <ChevronsLeftRight class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Non-card element: label + type badge -->\n <template v-if=\"!isCardElement(elId)\">\n <span class=\"block truncate font-medium leading-tight\">\n {{ builder.schema.value.elements[elId]?.label ?? \"(unnamed)\" }}\n </span>\n <Badge variant=\"secondary\" class=\"mt-1 font-mono text-[9px]\">\n {{ builder.schema.value.elements[elId]?.type }}\n </Badge>\n </template>\n\n <!-- Card-type element: label + nested droppable container -->\n <template v-else>\n <!-- Zoom-in button — top-left, shown on hover or when selected -->\n <button\n type=\"button\"\n class=\"absolute left-0.5 top-0.5 z-10 flex h-5 w-5 items-center justify-center rounded bg-muted/60 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:bg-muted hover:text-foreground\"\n :class=\"{ '!opacity-100': builder.selection.value.kind === 'element' && builder.selection.value.id === elId }\"\n title=\"Zoom into this card\"\n data-testid=\"form-builder-zoom-in\"\n @click.stop=\"zoomInto(elId)\"\n >\n <Maximize2 class=\"h-3 w-3\" />\n </button>\n <div>\n <span class=\"block truncate font-medium leading-tight\">\n {{ builder.schema.value.elements[elId]?.label ?? \"(unnamed)\" }}\n </span>\n <Badge variant=\"outline\" class=\"mt-1 font-mono text-[9px]\">\n {{ builder.schema.value.elements[elId]?.type }}\n </Badge>\n </div>\n <!-- Nested mini-grid for children -->\n <div\n class=\"mt-1.5 grid gap-1 rounded border border-dashed bg-muted/20 p-1\"\n style=\"grid-template-columns: repeat(4, minmax(0, 1fr))\"\n :data-container-id=\"elId\"\n @click.stop=\"onCanvasElementClick(elId)\"\n >\n <p\n v-if=\"!getElementList(elId).length\"\n class=\"col-span-full py-2 text-center text-[10px] text-muted-foreground\"\n >\n Drop elements here — or select & use palette\n </p>\n <div\n v-for=\"(childId, childIdx) in getElementList(elId)\"\n :key=\"childId\"\n :data-element-block-index=\"childIdx\"\n :data-testid=\"`form-builder-row-${childId}`\"\n class=\"group/child relative cursor-pointer select-none rounded border bg-background px-1.5 pb-1 pt-4 text-center text-[10px] transition-colors\"\n :class=\"[\n builder.selection.value.kind === 'element' && builder.selection.value.id === childId\n ? 'border-primary bg-accent/30'\n : 'hover:border-primary/50',\n activeDrag?.elementId === childId && activeDrag.mode === 'reorder'\n ? 'opacity-40 ring-2 ring-primary'\n : '',\n dropContainerId === elId &&\n dropTargetIndex === childIdx &&\n activeDrag?.mode === 'reorder' &&\n activeDrag?.elementId !== childId\n ? 'ring-2 ring-primary/60 bg-primary/5'\n : '',\n ]\"\n :style=\"elementGridStyle(childId)\"\n @click.stop=\"onCanvasElementClick(childId)\"\n >\n <span\n class=\"absolute left-1/2 top-0.5 -translate-x-1/2 cursor-grab touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover/child:opacity-100 active:cursor-grabbing\"\n title=\"Drag to reorder\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onReorderHandlePointerDown(childId, elId, childIdx, e)\"\n >\n <GripHorizontal class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n <span\n class=\"absolute right-0.5 top-0.5 cursor-ew-resize touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover/child:opacity-100\"\n :title=\"`Width: ${getColSpan(childId)}/4 — drag to resize`\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onResizeHandlePointerDown(childId, e)\"\n >\n <ChevronsLeftRight class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n <span class=\"block truncate font-medium leading-tight\">\n {{ builder.schema.value.elements[childId]?.label ?? \"(unnamed)\" }}\n </span>\n <Badge variant=\"secondary\" class=\"mt-0.5 font-mono text-[9px]\">\n {{ builder.schema.value.elements[childId]?.type }}\n </Badge>\n </div>\n </div>\n </template>\n </div>\n </div>\n </template>\n\n <!-- ─── INLINE MODE ────────────────────────────────────────────── -->\n <template v-else>\n <div class=\"rounded-md border border-dashed bg-background p-2\">\n <p\n v-if=\"activeElementList.length === 0\"\n class=\"py-6 text-center text-xs text-muted-foreground\"\n data-testid=\"form-builder-canvas-empty\"\n >\n Click an element in the palette to add it.\n </p>\n <div\n v-else\n ref=\"canvasEl\"\n class=\"grid gap-3\"\n style=\"grid-template-columns: repeat(4, minmax(0, 1fr))\"\n :data-container-id=\"activeCanvasContainerId\"\n data-testid=\"form-builder-canvas-list\"\n >\n <div\n v-for=\"(elId, index) in activeElementList\"\n :key=\"elId\"\n :data-element-block-index=\"index\"\n :data-testid=\"`form-builder-row-${elId}`\"\n class=\"group relative cursor-pointer rounded border pt-8 px-1.5 pb-1.5 transition-colors\"\n :class=\"[\n builder.selection.value.kind === 'element' && builder.selection.value.id === elId\n ? 'border-primary ring-1 ring-primary/30'\n : 'border-transparent hover:border-primary/40',\n activeDrag?.elementId === elId && activeDrag.mode === 'reorder'\n ? 'opacity-40 ring-2 ring-primary'\n : '',\n dropContainerId === activeCanvasContainerId &&\n dropTargetIndex === index &&\n activeDrag?.mode === 'reorder' &&\n activeDrag?.elementId !== elId\n ? 'ring-2 ring-primary/60 bg-primary/5'\n : '',\n ]\"\n :style=\"elementGridStyle(elId)\"\n @click=\"onCanvasElementClick(elId)\"\n >\n <!-- Center-top reorder handle -->\n <span\n class=\"absolute left-1/2 top-1 z-10 -translate-x-1/2 cursor-grab touch-none rounded-sm bg-muted/80 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100 active:cursor-grabbing\"\n title=\"Drag to reorder\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onReorderHandlePointerDown(elId, activeCanvasContainerId, index, e)\"\n >\n <GripHorizontal class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Top-right resize handle -->\n <span\n class=\"absolute right-1 top-1 z-10 cursor-ew-resize touch-none rounded-sm bg-muted/80 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"\n :title=\"`Width: ${getColSpan(elId)}/4 — drag to resize`\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onResizeHandlePointerDown(elId, e)\"\n >\n <ChevronsLeftRight class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Zoom-in button — card elements only, top-left, shown on hover or when selected -->\n <button\n v-if=\"isCardElement(elId)\"\n type=\"button\"\n class=\"absolute left-1 top-1 z-10 flex h-5 w-5 items-center justify-center rounded bg-muted/80 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:bg-muted hover:text-foreground\"\n :class=\"{ '!opacity-100': builder.selection.value.kind === 'element' && builder.selection.value.id === elId }\"\n title=\"Zoom into this card\"\n data-testid=\"form-builder-zoom-in\"\n @click.stop=\"zoomInto(elId)\"\n >\n <Maximize2 class=\"h-3.5 w-3.5\" />\n </button>\n\n <!-- Live element render — card elements get resolved nestedElements -->\n <ElementRenderer\n :element=\"resolveElementForRender(elId)\"\n :item=\"props.item\"\n />\n </div>\n </div>\n </div>\n </template>\n </section>\n\n <!-- ─── INSPECTOR (collapsed) ──────────────────────────────────────── -->\n <aside\n v-if=\"!selectedElement\"\n class=\"flex items-start justify-center border-l pt-3 overflow-hidden\"\n data-testid=\"form-builder-inspector\"\n >\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger as-child>\n <span\n class=\"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-muted-foreground\"\n tabindex=\"0\"\n aria-label=\"Select an element on the canvas to edit its properties\"\n data-testid=\"form-builder-inspector-empty\"\n >\n <Info class=\"h-4 w-4\" />\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"left\">\n Select an element on the canvas to edit its properties\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </aside>\n\n <!-- ─── INSPECTOR (expanded) ─────────────────────────────────────── -->\n <aside\n v-else\n class=\"flex flex-col gap-2 overflow-y-auto border-l p-3\"\n data-testid=\"form-builder-inspector\"\n >\n <header class=\"flex items-center justify-between\">\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Inspector\n </h4>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Clear selection\"\n @click=\"onClearSelection\"\n >\n <X class=\"h-3.5 w-3.5\" />\n </Button>\n </header>\n\n <div\n class=\"flex flex-col gap-3\"\n data-testid=\"form-builder-inspector-fields\"\n >\n <Card class=\"border-dashed\">\n <CardHeader class=\"py-2\">\n <CardTitle class=\"font-mono text-xs uppercase tracking-wide\">\n {{ selectedElement.type }}\n </CardTitle>\n </CardHeader>\n <CardContent class=\"flex flex-col gap-2 pb-3\">\n <template\n v-for=\"field in inspectorFields\"\n :key=\"field.fieldName\"\n >\n <!-- boolean switch / checkbox → toggle row -->\n <div\n v-if=\"field.spec.type?.toString().startsWith('boolean.')\"\n class=\"flex items-center justify-between rounded border bg-background px-2 py-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\" class=\"cursor-pointer\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <Switch\n :id=\"`fb-${field.fieldName}`\"\n :model-value=\"Boolean(getFieldValue(field.fieldName))\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @update:model-value=\"(v: boolean) => onFieldInput(field.fieldName, v)\"\n />\n </div>\n\n <!-- option-select → native select -->\n <div\n v-else-if=\"field.spec.type?.toString().startsWith('option-select.')\"\n class=\"flex flex-col gap-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <select\n :id=\"`fb-${field.fieldName}`\"\n class=\"flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors focus:outline-none focus:ring-1 focus:ring-ring\"\n :value=\"String(getFieldValue(field.fieldName) ?? '')\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @change=\"(e: Event) => onFieldInput(field.fieldName, (e.target as HTMLSelectElement).value)\"\n >\n <option\n v-for=\"opt in (field.spec.selectOptions as Array<{label: string; value: string}> ?? [])\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n >\n {{ opt.label }}\n </option>\n </select>\n </div>\n\n <!-- textarea -->\n <div\n v-else-if=\"field.spec.type === 'input.textarea'\"\n class=\"flex flex-col gap-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <Textarea\n :id=\"`fb-${field.fieldName}`\"\n :model-value=\"String(getFieldValue(field.fieldName) ?? '')\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @input=\"(e: Event) => onFieldInput(field.fieldName, (e.target as HTMLTextAreaElement).value)\"\n />\n </div>\n\n <!-- default: text input (covers input.*, picker.*, display.*, etc.) -->\n <div\n v-else\n class=\"flex flex-col gap-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <Input\n :id=\"`fb-${field.fieldName}`\"\n :model-value=\"String(getFieldValue(field.fieldName) ?? '')\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @input=\"(e: Event) => onFieldInput(field.fieldName, (e.target as HTMLInputElement).value)\"\n />\n </div>\n </template>\n\n <Separator v-if=\"inspectorFields.length\" class=\"my-1\" />\n\n <!-- Base fields always shown (not in every EditConfig) -->\n <div class=\"flex flex-col gap-1\">\n <Label for=\"fb-help\">Help text</Label>\n <Textarea\n id=\"fb-help\"\n :model-value=\"String(getFieldValue('helpText') ?? '')\"\n data-testid=\"form-builder-inspector-help\"\n @input=\"(e: Event) => onFieldInput('helpText', (e.target as HTMLTextAreaElement).value)\"\n />\n </div>\n <div class=\"flex items-center justify-between rounded border bg-background px-2 py-1\">\n <Label for=\"fb-disabled\">Disabled</Label>\n <Switch\n id=\"fb-disabled\"\n :model-value=\"Boolean(getFieldValue('disabled'))\"\n @update:model-value=\"(v: boolean) => onFieldInput('disabled', v)\"\n />\n </div>\n </CardContent>\n </Card>\n\n <div class=\"flex items-center gap-1\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n :disabled=\"selectedIndex <= 0\"\n data-testid=\"form-builder-move-up\"\n @click=\"onMoveUp\"\n >\n <ArrowUp class=\"h-3.5 w-3.5\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n :disabled=\"!canMoveDown\"\n data-testid=\"form-builder-move-down\"\n @click=\"onMoveDown\"\n >\n <ArrowDown class=\"h-3.5 w-3.5\" />\n </Button>\n <Button\n variant=\"destructive\"\n size=\"sm\"\n class=\"ml-auto\"\n data-testid=\"form-builder-remove\"\n @click=\"onRemove\"\n >\n <Trash2 class=\"h-3.5 w-3.5\" />\n Remove\n </Button>\n </div>\n </div>\n </aside>\n </div>\n</template>\n","<script setup lang=\"ts\">\n/**\n * FormBuilder — visual schema builder.\n *\n * Three-pane layout:\n * - LEFT (Palette): Clickable list of element types from\n * CardElementMetadataMap. Click to append a\n * new element to the root card.\n * - MIDDLE (Canvas): Live preview via CardRenderer plus a drag-\n * sortable grid canvas. Each element block shows\n * a center-top reorder handle and a top-right\n * resize handle on hover.\n * - RIGHT (Inspector): Property panel for the selected element.\n * Every input writes through the\n * formBuilderStore.\n *\n * State is owned by `formBuilderStore` (Pinia). The builder accepts an\n * optional initial schema via `modelValue` and emits the current schema\n * through `update:modelValue` so the host page can save it like any\n * other form field.\n *\n * Drag reorder: center-top handle → pointer events snap element to new\n * index in elementList.\n * Drag resize: top-right handle → pointer events set colSpan (1–4) on\n * the element, mapping to 25/50/75/100 % of the canvas width.\n */\nimport { computed, onBeforeUnmount, onMounted, reactive, ref, watch } from \"vue\"\nimport {\n ArrowDown,\n ArrowUp,\n ChevronRight,\n ChevronsLeftRight,\n GripHorizontal,\n Info,\n LayoutList,\n Maximize2,\n Minimize2,\n PencilLine,\n Plus,\n Trash2,\n X,\n} from \"@lucide/vue\"\nimport type { CardElement } from \"@/definitions/elements\"\nimport { CardElementMetadataMap, CardElementStylesMap, getElementEditConfig } from \"@/definitions/elements\"\nimport type { EditConfigField } from \"@/definitions/shared/base\"\nimport { joinElementType, splitElementType } from \"@/definitions/shared/base\"\nimport { shouldRender } from \"@/engine/useDisplayConditions\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { Switch } from \"@/components/ui/switch\"\nimport CardRenderer from \"@/engine/CardRenderer.vue\"\nimport ElementRenderer from \"@/engine/ElementRenderer.vue\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\nimport {\n useFormBuilder,\n type BuilderSchema,\n} from \"@/stores/formBuilderStore\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface FormBuilderProps {\n /** Initial / current schema. Two-way bindable via v-model. */\n modelValue?: BuilderSchema\n /**\n * Identifier used to key the formBuilderStore. Defaults to a stable\n * auto-generated id so multiple FormBuilders on the same page don't\n * collide.\n */\n builderId?: string\n label?: string\n name?: string | null\n item?: Record<string, unknown>\n classList?: string[] | string\n}\n\nconst props = withDefaults(defineProps<FormBuilderProps>(), {\n item: () => ({}),\n})\n\nconst model = defineModel<BuilderSchema | undefined>(\"modelValue\")\n\nlet nextAutoId = 0\nfunction makeAutoId(): string {\n nextAutoId += 1\n return `form-builder-${Date.now()}-${nextAutoId}`\n}\nconst fallbackId = ref<string>(makeAutoId())\n\nconst builderId = computed<string>(() => props.builderId ?? fallbackId.value)\n\n/** Controls which canvas view is active. */\nconst canvasMode = ref<\"inline\" | \"list\">(\"list\")\n\n/**\n * When non-null the canvas is \"zoomed into\" a specific card-type element.\n * Only that card's children are shown and editable. Schema storage is\n * unaffected — this is purely a UI focus state.\n */\nconst zoomedCardId = ref<string | null>(null)\nconst isZoomed = computed(() => zoomedCardId.value !== null)\nconst zoomedCardElement = computed(() =>\n zoomedCardId.value\n ? (builder.schema.value.elements[zoomedCardId.value] ?? null)\n : null,\n)\n\nfunction zoomInto(elementId: string): void {\n zoomedCardId.value = elementId\n builder.select(\"element\", elementId)\n}\n\nfunction zoomOut(): void {\n zoomedCardId.value = null\n}\n\nconst builder = useFormBuilder(builderId.value)\n\nfunction isBuilderSchema(value: unknown): value is BuilderSchema {\n if (typeof value !== \"object\" || value === null) {\n return false\n }\n const v = value as Record<string, unknown>\n return (\n typeof v.rootCardId === \"string\" &&\n typeof v.cards === \"object\" &&\n v.cards !== null &&\n typeof v.elements === \"object\" &&\n v.elements !== null\n )\n}\n\n/** Seed the store from the initial modelValue. */\nonMounted(() => {\n const seed = model.value\n if (isBuilderSchema(seed)) {\n builder.loadSchema(seed)\n }\n})\n\n/** Push schema changes back via v-model. */\nwatch(\n () => builder.schema.value,\n (next) => {\n model.value = next\n },\n { deep: true },\n)\n\nconst rootCard = computed(\n () => builder.schema.value.cards[builder.schema.value.rootCardId],\n)\n\nconst canvasRootContainerId = computed(() => builder.schema.value.rootCardId)\n\n/** Active container for the visible canvas — root unless zoomed into a card element. */\nconst activeCanvasContainerId = computed(() => zoomedCardId.value ?? canvasRootContainerId.value)\n\n/** The element list shown in the canvas — scoped to the zoomed card when active. */\nconst activeElementList = computed(() =>\n zoomedCardId.value ? getElementList(zoomedCardId.value) : rootElementList.value,\n)\n\nconst rootElementList = computed<string[]>(() => {\n const card = rootCard.value\n if (!card) {\n return []\n }\n return ((card as unknown as Record<string, unknown>).elementList as string[]) ?? []\n})\n\n/** True when an element's type starts with \"card.\" — it acts as a nested container. */\nfunction isCardElement(elementId: string): boolean {\n const el = builder.schema.value.elements[elementId]\n if (!el) return false\n return String((el as unknown as Record<string, unknown>).type ?? \"\").startsWith(\"card.\")\n}\n\n/** Returns the elementList for any container (card or card-type element). */\nfunction getElementList(containerId: string): string[] {\n const schema = builder.schema.value\n const card = schema.cards[containerId]\n if (card) return ((card as unknown as Record<string, unknown>).elementList as string[] | undefined) ?? []\n const el = schema.elements[containerId]\n if (el) return ((el as unknown as Record<string, unknown>).elementList as string[] | undefined) ?? []\n return []\n}\n\n/**\n * For inline-mode rendering: augments a card-type element with resolved\n * `nestedElements` so the composition receives actual child objects, not IDs.\n */\nfunction resolveElementForRender(elementId: string): CardElement {\n const el = builder.schema.value.elements[elementId]!\n if (!isCardElement(elementId)) return el\n const bag = el as unknown as Record<string, unknown>\n const childIds = (bag.elementList as string[] | undefined) ?? []\n const nestedElements = childIds\n .map((id) => builder.schema.value.elements[id])\n .filter(Boolean)\n return { ...el, nestedElements } as unknown as CardElement\n}\n\nconst paletteGroups = computed(() =>\n (\n Object.entries(CardElementMetadataMap) as Array<\n [\n keyof typeof CardElementMetadataMap,\n (typeof CardElementMetadataMap)[keyof typeof CardElementMetadataMap],\n ]\n >\n ).map(([type, meta]) => ({\n type,\n meta,\n styles: CardElementStylesMap[type],\n })),\n)\n\nconst expandedGroups = reactive<Record<string, boolean>>({})\n\nfunction toggleGroup(type: string): void {\n expandedGroups[type] = !expandedGroups[type]\n}\n\nconst selectedElement = computed<CardElement | null>(() => {\n const sel = builder.selection.value\n if (sel.kind !== \"element\" || !sel.id) {\n return null\n }\n return builder.schema.value.elements[sel.id] ?? null\n})\n\n/** ID of the container that owns the currently selected element. */\nconst selectedContainerId = computed<string>(() => {\n const sel = builder.selection.value\n if (sel.kind !== \"element\" || !sel.id) return canvasRootContainerId.value\n if (rootElementList.value.includes(sel.id)) return canvasRootContainerId.value\n for (const [elId, el] of Object.entries(builder.schema.value.elements)) {\n const bag = el as unknown as Record<string, unknown>\n if (typeof bag.type === \"string\" && (bag.type as string).startsWith(\"card.\")) {\n if (((bag.elementList as string[] | undefined) ?? []).includes(sel.id)) {\n return elId\n }\n }\n }\n return canvasRootContainerId.value\n})\n\nconst selectedContainerList = computed<string[]>(() => getElementList(selectedContainerId.value))\n\nconst selectedIndex = computed<number>(() => {\n const sel = builder.selection.value\n if (sel.kind !== \"element\" || !sel.id) return -1\n return selectedContainerList.value.indexOf(sel.id)\n})\n\nconst canMoveDown = computed<boolean>(() => {\n const list = selectedContainerList.value\n return selectedIndex.value >= 0 && selectedIndex.value < list.length - 1\n})\n\nfunction onStyleClick(category: keyof typeof CardElementMetadataMap, style: string): void {\n const sel = builder.selection.value\n // Priority: 1) zoomed card container, 2) selected card element, 3) root.\n let containerId: string\n if (zoomedCardId.value) {\n containerId = zoomedCardId.value\n } else if (sel.kind === \"element\" && sel.id && isCardElement(sel.id)) {\n containerId = sel.id\n } else {\n containerId = builder.schema.value.rootCardId\n }\n const newId = builder.addElement(containerId, `${category}.${style}`)\n builder.select(\"element\", newId)\n}\n\nfunction onCanvasElementClick(elementId: string): void {\n builder.select(\"element\", elementId)\n}\n\nfunction onMoveUp(): void {\n if (selectedIndex.value <= 0) return\n builder.reorderElement(selectedContainerId.value, selectedIndex.value, selectedIndex.value - 1)\n}\n\nfunction onMoveDown(): void {\n if (!canMoveDown.value) return\n builder.reorderElement(selectedContainerId.value, selectedIndex.value, selectedIndex.value + 1)\n}\n\nfunction onRemove(): void {\n const sel = builder.selection.value\n if (sel.kind === \"element\" && sel.id) {\n builder.removeElement(sel.id)\n } else if (sel.kind === \"card\" && sel.id) {\n builder.removeCard(sel.id)\n }\n}\n\nfunction onClearSelection(): void {\n builder.select(null, null)\n}\n\nfunction patchSelected(patch: Partial<CardElement>): void {\n const sel = builder.selection.value\n if (sel.kind === \"element\" && sel.id) {\n builder.updateElement(sel.id, patch)\n }\n}\n\n/**\n * Dynamically resolved list of inspector fields for the selected element.\n * Uses the category-level EditConfig and evaluates conditionParams against a\n * virtual item that includes `style` extracted from the dot-notation type so\n * conditions like `{ name: \"style\", logic: \"==\", value: \"textarea\" }` work.\n */\nconst inspectorFields = computed<Array<{ fieldName: string; spec: EditConfigField }>>(() => {\n const el = selectedElement.value\n if (!el) return []\n\n const editConfig = getElementEditConfig(el.type)\n if (!editConfig) return []\n\n const { style } = splitElementType(el.type)\n const virtualItem = { ...(el as unknown as Record<string, unknown>), style }\n\n return Object.entries(editConfig)\n .filter(([, spec]) => {\n const t = (spec as EditConfigField).type as string\n // Skip fields that need complex nested renderers in the inspector.\n if (t?.startsWith(\"configuration-block.\")) return false\n if (t?.startsWith(\"builder.\")) return false\n if (t?.startsWith(\"code.\")) return false\n return shouldRender(spec as EditConfigField, virtualItem)\n })\n .map(([fieldName, spec]) => ({ fieldName, spec: spec as EditConfigField }))\n})\n\nfunction getFieldValue(fieldName: string): unknown {\n const el = selectedElement.value as unknown as Record<string, unknown> | null\n // `style` is not stored separately — derive it from the dot-notation `type`.\n if (fieldName === \"style\" && el?.type) {\n return splitElementType(String(el.type)).style\n }\n return el?.[fieldName] ?? \"\"\n}\n\nfunction onFieldInput(fieldName: string, value: unknown): void {\n // A style change means the element type changes: \"boolean.checkbox\" → \"boolean.switch\".\n if (fieldName === \"style\") {\n const el = selectedElement.value\n if (!el) return\n const { category } = splitElementType(el.type)\n patchSelected({ type: joinElementType(category, String(value)) } as unknown as Partial<CardElement>)\n return\n }\n patchSelected({ [fieldName]: value } as Partial<CardElement>)\n}\n\n/* ------------------------------------------------------------------ */\n/* Drag-reorder + drag-resize */\n/* ------------------------------------------------------------------ */\n\nconst canvasEl = ref<HTMLElement | null>(null)\n\ninterface FormDragState {\n mode: \"reorder\" | \"resize\"\n elementId: string\n fromContainerId: string\n fromIndex: number\n startClientX: number\n startColSpan: number\n containerWidth: number\n pointerId: number\n captureTarget: HTMLElement\n}\n\nconst activeDrag = ref<FormDragState | null>(null)\nconst dropTargetIndex = ref<number | null>(null)\nconst dropContainerId = ref<string | null>(null)\n\n/** colSpan (1–4) is stored directly on the element as a builder prop. */\nfunction getColSpan(elementId: string): number {\n const el = builder.schema.value.elements[elementId] as unknown as Record<string, unknown>\n const span = el?.colSpan\n return typeof span === \"number\" && span >= 1 && span <= 4 ? span : 4\n}\n\nfunction elementGridStyle(elementId: string): Record<string, string> {\n return { gridColumn: `span ${getColSpan(elementId)}` }\n}\n\nfunction beginFormDrag(\n mode: \"reorder\" | \"resize\",\n elementId: string,\n fromContainerId: string,\n fromIndex: number,\n event: PointerEvent,\n): void {\n if (event.button !== 0) return\n event.preventDefault()\n event.stopPropagation()\n builder.select(\"element\", elementId)\n const target = event.target as HTMLElement\n try {\n target.setPointerCapture(event.pointerId)\n } catch {\n // jsdom or restricted context\n }\n activeDrag.value = {\n mode,\n elementId,\n fromContainerId,\n fromIndex,\n startClientX: event.clientX,\n startColSpan: getColSpan(elementId),\n containerWidth: canvasEl.value?.getBoundingClientRect().width ?? 0,\n pointerId: event.pointerId,\n captureTarget: target,\n }\n if (mode === \"reorder\") {\n dropTargetIndex.value = fromIndex\n dropContainerId.value = fromContainerId\n }\n window.addEventListener(\"pointermove\", onFormPointerMove)\n window.addEventListener(\"pointerup\", onFormPointerUp)\n window.addEventListener(\"pointercancel\", onFormPointerUp)\n}\n\nfunction onReorderHandlePointerDown(\n elementId: string,\n containerId: string,\n index: number,\n event: PointerEvent,\n): void {\n beginFormDrag(\"reorder\", elementId, containerId, index, event)\n}\n\nfunction onResizeHandlePointerDown(\n elementId: string,\n event: PointerEvent,\n): void {\n beginFormDrag(\"resize\", elementId, canvasRootContainerId.value, -1, event)\n}\n\nfunction onFormPointerMove(event: PointerEvent): void {\n const state = activeDrag.value\n if (!state) return\n\n if (state.mode === \"resize\") {\n const dx = event.clientX - state.startClientX\n const colW = (state.containerWidth > 0 ? state.containerWidth : 400) / 4\n const colDelta = Math.round(dx / colW)\n const newSpan = Math.max(1, Math.min(4, state.startColSpan + colDelta))\n builder.updateElement(state.elementId, { colSpan: newSpan } as unknown as Partial<CardElement>)\n return\n }\n\n const target = document.elementFromPoint(event.clientX, event.clientY)\n if (!target) return\n\n // Determine which container the pointer is over (innermost wins).\n const containerEl = (target as HTMLElement).closest(\"[data-container-id]\")\n const cId = (containerEl as HTMLElement | null)?.dataset.containerId ?? null\n dropContainerId.value = cId\n\n // Find the element block index within that container.\n let blockEl: Element | null = (target as HTMLElement).closest(\"[data-element-block-index]\")\n // Discard if the block is outside (ancestor of) the detected container.\n if (blockEl && containerEl && !containerEl.contains(blockEl)) {\n blockEl = null\n }\n if (blockEl) {\n const idx = Number.parseInt(\n (blockEl as HTMLElement).dataset.elementBlockIndex ?? \"-1\",\n 10,\n )\n if (idx >= 0) dropTargetIndex.value = idx\n } else {\n // Hovering over empty space in the container — drop at end.\n dropTargetIndex.value = cId ? getElementList(cId).length : null\n }\n}\n\nfunction onFormPointerUp(event: PointerEvent): void {\n const state = activeDrag.value\n if (!state) {\n cleanupFormDrag()\n return\n }\n try {\n state.captureTarget.releasePointerCapture(state.pointerId)\n } catch {\n // ignore\n }\n if (state.mode === \"reorder\" && dropTargetIndex.value !== null) {\n const targetContainer = dropContainerId.value ?? state.fromContainerId\n if (targetContainer !== state.fromContainerId) {\n builder.moveElement(state.fromContainerId, targetContainer, state.elementId, dropTargetIndex.value)\n } else if (dropTargetIndex.value !== state.fromIndex) {\n builder.reorderElement(state.fromContainerId, state.fromIndex, dropTargetIndex.value)\n }\n }\n cleanupFormDrag()\n void event\n}\n\nfunction cleanupFormDrag(): void {\n activeDrag.value = null\n dropTargetIndex.value = null\n dropContainerId.value = null\n window.removeEventListener(\"pointermove\", onFormPointerMove)\n window.removeEventListener(\"pointerup\", onFormPointerUp)\n window.removeEventListener(\"pointercancel\", onFormPointerUp)\n}\n\nonBeforeUnmount(() => {\n cleanupFormDrag()\n})\n\nconst outerGridColumns = computed(() =>\n selectedElement.value\n ? \"220px 1fr 280px\"\n : \"220px 1fr 2rem\",\n)\n</script>\n\n<template>\n <div\n :class=\"cn('gxp-form-builder grid gap-3 rounded-lg border bg-card', props.classList)\"\n :style=\"{ gridTemplateColumns: outerGridColumns, minHeight: '24rem', transition: 'grid-template-columns 200ms ease' }\"\n data-testid=\"form-builder\"\n :data-element-name=\"props.name ?? undefined\"\n >\n <aside\n class=\"flex flex-col gap-2 border-r p-3 overflow-y-auto\"\n data-testid=\"form-builder-palette\"\n >\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {{ props.label ?? \"Element palette\" }}\n </h4>\n <div class=\"flex flex-col gap-0.5\">\n <div\n v-for=\"entry in paletteGroups\"\n :key=\"entry.type\"\n >\n <button\n type=\"button\"\n class=\"flex w-full items-start gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors hover:bg-accent/30\"\n :data-testid=\"`form-builder-palette-${entry.type}`\"\n @click=\"toggleGroup(entry.type)\"\n >\n <ChevronRight\n class=\"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform duration-150\"\n :class=\"expandedGroups[entry.type] ? 'rotate-90' : ''\"\n />\n <span class=\"flex min-w-0 flex-col gap-0.5\">\n <span class=\"font-medium\">{{ entry.meta.displayLabel }}</span>\n <span class=\"line-clamp-2 text-[10px] text-muted-foreground\">\n {{ entry.meta.description }}\n </span>\n </span>\n </button>\n\n <div\n v-if=\"expandedGroups[entry.type]\"\n class=\"ml-5 flex flex-col gap-0.5 pb-1\"\n >\n <button\n v-for=\"styleOption in entry.styles\"\n :key=\"styleOption.value\"\n type=\"button\"\n class=\"flex items-center gap-1.5 rounded border bg-background px-2 py-1 text-left text-xs transition-colors hover:border-primary hover:bg-accent/40\"\n :data-testid=\"`form-builder-palette-${entry.type}-${styleOption.value}`\"\n @click=\"onStyleClick(entry.type, styleOption.value)\"\n >\n <Plus class=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n {{ styleOption.label }}\n </button>\n </div>\n </div>\n </div>\n </aside>\n\n <section\n class=\"flex flex-col gap-3 overflow-y-auto p-3\"\n data-testid=\"form-builder-canvas\"\n >\n <header class=\"flex flex-col gap-2\">\n <!-- Zoom breadcrumb — shown when focused into a card element -->\n <div\n v-if=\"isZoomed\"\n class=\"flex items-center gap-2 rounded-md border bg-muted/40 px-2.5 py-1.5 text-xs\"\n data-testid=\"form-builder-zoom-breadcrumb\"\n >\n <button\n type=\"button\"\n class=\"flex items-center gap-1.5 text-muted-foreground transition-colors hover:text-foreground\"\n data-testid=\"form-builder-zoom-out\"\n @click=\"zoomOut\"\n >\n <Minimize2 class=\"h-3.5 w-3.5\" />\n <span>Full form</span>\n </button>\n <span class=\"text-muted-foreground/50\">/</span>\n <span class=\"font-medium\">\n {{ (zoomedCardElement as Record<string, unknown> | null)?.label ?? 'Card' }}\n </span>\n </div>\n <div class=\"flex items-center justify-between\">\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {{ canvasMode === \"inline\" ? \"Canvas\" : isZoomed ? \"Card preview\" : \"Preview\" }}\n </h4>\n <div class=\"flex items-center gap-2\">\n <!-- Mode toggle -->\n <div class=\"flex items-center rounded-md border p-0.5\">\n <button\n type=\"button\"\n class=\"rounded px-1.5 py-0.5 transition-colors\"\n :class=\"canvasMode === 'list' ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:text-foreground'\"\n title=\"List mode — separate preview and element list\"\n data-testid=\"form-builder-mode-list\"\n @click=\"canvasMode = 'list'\"\n >\n <LayoutList class=\"h-3.5 w-3.5\" />\n </button>\n <button\n type=\"button\"\n class=\"rounded px-1.5 py-0.5 transition-colors\"\n :class=\"canvasMode === 'inline' ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:text-foreground'\"\n title=\"Inline mode — live interactive canvas\"\n data-testid=\"form-builder-mode-inline\"\n @click=\"canvasMode = 'inline'\"\n >\n <PencilLine class=\"h-3.5 w-3.5\" />\n </button>\n </div>\n <Badge variant=\"outline\" class=\"font-mono text-[10px]\">\n builder/form-builder\n </Badge>\n </div>\n </div>\n </header>\n\n <!-- ─── LIST MODE ──────────────────────────────────────────────── -->\n <template v-if=\"canvasMode === 'list'\">\n <!-- Preview section: full CardRenderer when at root, element preview when zoomed -->\n <div class=\"rounded-md border border-dashed bg-background p-3\">\n <template v-if=\"isZoomed && zoomedCardId\">\n <Suspense>\n <ElementRenderer\n :element=\"resolveElementForRender(zoomedCardId)\"\n :item=\"props.item\"\n />\n </Suspense>\n <p\n v-if=\"!activeElementList.length\"\n class=\"py-6 text-center text-xs text-muted-foreground\"\n data-testid=\"form-builder-canvas-empty\"\n >\n Click an element in the palette to add it.\n </p>\n </template>\n <template v-else-if=\"rootCard\">\n <CardRenderer\n :card=\"rootCard\"\n :item=\"props.item\"\n :elements=\"builder.schema.value.elements\"\n :cards=\"builder.schema.value.cards\"\n />\n <p\n v-if=\"rootElementList.length === 0\"\n class=\"py-6 text-center text-xs text-muted-foreground\"\n data-testid=\"form-builder-canvas-empty\"\n >\n Click an element in the palette to add it.\n </p>\n </template>\n </div>\n\n <!-- Drag-sortable grid canvas — scoped to active container -->\n <div\n ref=\"canvasEl\"\n class=\"grid gap-2 text-xs\"\n style=\"grid-template-columns: repeat(4, minmax(0, 1fr))\"\n :data-container-id=\"activeCanvasContainerId\"\n data-testid=\"form-builder-canvas-list\"\n >\n <p\n v-if=\"!activeElementList.length\"\n class=\"col-span-full py-4 text-center text-muted-foreground\"\n >\n Add elements from the palette.\n </p>\n <div\n v-for=\"(elId, index) in activeElementList\"\n :key=\"elId\"\n :data-element-block-index=\"index\"\n :data-testid=\"`form-builder-row-${elId}`\"\n class=\"group relative cursor-pointer select-none rounded border bg-background transition-colors\"\n :class=\"[\n isCardElement(elId) ? 'px-2 pb-2 pt-5' : 'px-2 pb-2 pt-5 text-center',\n builder.selection.value.kind === 'element' && builder.selection.value.id === elId\n ? 'border-primary bg-accent/30'\n : 'hover:border-primary/50',\n activeDrag?.elementId === elId && activeDrag.mode === 'reorder'\n ? 'opacity-40 ring-2 ring-primary'\n : '',\n dropContainerId === activeCanvasContainerId &&\n dropTargetIndex === index &&\n activeDrag?.mode === 'reorder' &&\n activeDrag?.elementId !== elId\n ? 'ring-2 ring-primary/60 bg-primary/5'\n : '',\n ]\"\n :style=\"elementGridStyle(elId)\"\n @click=\"onCanvasElementClick(elId)\"\n >\n <!-- Center-top reorder handle -->\n <span\n class=\"absolute left-1/2 top-0.5 -translate-x-1/2 cursor-grab touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100 active:cursor-grabbing\"\n title=\"Drag to reorder\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onReorderHandlePointerDown(elId, activeCanvasContainerId, index, e)\"\n >\n <GripHorizontal class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Top-right resize handle -->\n <span\n class=\"absolute right-0.5 top-0.5 cursor-ew-resize touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"\n :title=\"`Width: ${getColSpan(elId)}/4 — drag to resize`\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onResizeHandlePointerDown(elId, e)\"\n >\n <ChevronsLeftRight class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Non-card element: label + type badge -->\n <template v-if=\"!isCardElement(elId)\">\n <span class=\"block truncate font-medium leading-tight\">\n {{ builder.schema.value.elements[elId]?.label ?? \"(unnamed)\" }}\n </span>\n <Badge variant=\"secondary\" class=\"mt-1 font-mono text-[9px]\">\n {{ builder.schema.value.elements[elId]?.type }}\n </Badge>\n </template>\n\n <!-- Card-type element: label + nested droppable container -->\n <template v-else>\n <!-- Zoom-in button — top-left, shown on hover or when selected -->\n <button\n type=\"button\"\n class=\"absolute left-0.5 top-0.5 z-10 flex h-5 w-5 items-center justify-center rounded bg-muted/60 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:bg-muted hover:text-foreground\"\n :class=\"{ '!opacity-100': builder.selection.value.kind === 'element' && builder.selection.value.id === elId }\"\n title=\"Zoom into this card\"\n data-testid=\"form-builder-zoom-in\"\n @click.stop=\"zoomInto(elId)\"\n >\n <Maximize2 class=\"h-3 w-3\" />\n </button>\n <div>\n <span class=\"block truncate font-medium leading-tight\">\n {{ builder.schema.value.elements[elId]?.label ?? \"(unnamed)\" }}\n </span>\n <Badge variant=\"outline\" class=\"mt-1 font-mono text-[9px]\">\n {{ builder.schema.value.elements[elId]?.type }}\n </Badge>\n </div>\n <!-- Nested mini-grid for children -->\n <div\n class=\"mt-1.5 grid gap-1 rounded border border-dashed bg-muted/20 p-1\"\n style=\"grid-template-columns: repeat(4, minmax(0, 1fr))\"\n :data-container-id=\"elId\"\n @click.stop=\"onCanvasElementClick(elId)\"\n >\n <p\n v-if=\"!getElementList(elId).length\"\n class=\"col-span-full py-2 text-center text-[10px] text-muted-foreground\"\n >\n Drop elements here — or select & use palette\n </p>\n <div\n v-for=\"(childId, childIdx) in getElementList(elId)\"\n :key=\"childId\"\n :data-element-block-index=\"childIdx\"\n :data-testid=\"`form-builder-row-${childId}`\"\n class=\"group/child relative cursor-pointer select-none rounded border bg-background px-1.5 pb-1 pt-4 text-center text-[10px] transition-colors\"\n :class=\"[\n builder.selection.value.kind === 'element' && builder.selection.value.id === childId\n ? 'border-primary bg-accent/30'\n : 'hover:border-primary/50',\n activeDrag?.elementId === childId && activeDrag.mode === 'reorder'\n ? 'opacity-40 ring-2 ring-primary'\n : '',\n dropContainerId === elId &&\n dropTargetIndex === childIdx &&\n activeDrag?.mode === 'reorder' &&\n activeDrag?.elementId !== childId\n ? 'ring-2 ring-primary/60 bg-primary/5'\n : '',\n ]\"\n :style=\"elementGridStyle(childId)\"\n @click.stop=\"onCanvasElementClick(childId)\"\n >\n <span\n class=\"absolute left-1/2 top-0.5 -translate-x-1/2 cursor-grab touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover/child:opacity-100 active:cursor-grabbing\"\n title=\"Drag to reorder\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onReorderHandlePointerDown(childId, elId, childIdx, e)\"\n >\n <GripHorizontal class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n <span\n class=\"absolute right-0.5 top-0.5 cursor-ew-resize touch-none rounded-sm bg-muted/60 px-1 py-0.5 opacity-0 transition-opacity group-hover/child:opacity-100\"\n :title=\"`Width: ${getColSpan(childId)}/4 — drag to resize`\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onResizeHandlePointerDown(childId, e)\"\n >\n <ChevronsLeftRight class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n <span class=\"block truncate font-medium leading-tight\">\n {{ builder.schema.value.elements[childId]?.label ?? \"(unnamed)\" }}\n </span>\n <Badge variant=\"secondary\" class=\"mt-0.5 font-mono text-[9px]\">\n {{ builder.schema.value.elements[childId]?.type }}\n </Badge>\n </div>\n </div>\n </template>\n </div>\n </div>\n </template>\n\n <!-- ─── INLINE MODE ────────────────────────────────────────────── -->\n <template v-else>\n <div class=\"rounded-md border border-dashed bg-background p-2\">\n <p\n v-if=\"activeElementList.length === 0\"\n class=\"py-6 text-center text-xs text-muted-foreground\"\n data-testid=\"form-builder-canvas-empty\"\n >\n Click an element in the palette to add it.\n </p>\n <div\n v-else\n ref=\"canvasEl\"\n class=\"grid gap-3\"\n style=\"grid-template-columns: repeat(4, minmax(0, 1fr))\"\n :data-container-id=\"activeCanvasContainerId\"\n data-testid=\"form-builder-canvas-list\"\n >\n <div\n v-for=\"(elId, index) in activeElementList\"\n :key=\"elId\"\n :data-element-block-index=\"index\"\n :data-testid=\"`form-builder-row-${elId}`\"\n class=\"group relative cursor-pointer rounded border pt-8 px-1.5 pb-1.5 transition-colors\"\n :class=\"[\n builder.selection.value.kind === 'element' && builder.selection.value.id === elId\n ? 'border-primary ring-1 ring-primary/30'\n : 'border-transparent hover:border-primary/40',\n activeDrag?.elementId === elId && activeDrag.mode === 'reorder'\n ? 'opacity-40 ring-2 ring-primary'\n : '',\n dropContainerId === activeCanvasContainerId &&\n dropTargetIndex === index &&\n activeDrag?.mode === 'reorder' &&\n activeDrag?.elementId !== elId\n ? 'ring-2 ring-primary/60 bg-primary/5'\n : '',\n ]\"\n :style=\"elementGridStyle(elId)\"\n @click=\"onCanvasElementClick(elId)\"\n >\n <!-- Center-top reorder handle -->\n <span\n class=\"absolute left-1/2 top-1 z-10 -translate-x-1/2 cursor-grab touch-none rounded-sm bg-muted/80 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100 active:cursor-grabbing\"\n title=\"Drag to reorder\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onReorderHandlePointerDown(elId, activeCanvasContainerId, index, e)\"\n >\n <GripHorizontal class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Top-right resize handle -->\n <span\n class=\"absolute right-1 top-1 z-10 cursor-ew-resize touch-none rounded-sm bg-muted/80 px-1 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"\n :title=\"`Width: ${getColSpan(elId)}/4 — drag to resize`\"\n @click.stop\n @pointerdown.stop=\"(e: PointerEvent) => onResizeHandlePointerDown(elId, e)\"\n >\n <ChevronsLeftRight class=\"h-3 w-3 text-muted-foreground\" />\n </span>\n\n <!-- Zoom-in button — card elements only, top-left, shown on hover or when selected -->\n <button\n v-if=\"isCardElement(elId)\"\n type=\"button\"\n class=\"absolute left-1 top-1 z-10 flex h-5 w-5 items-center justify-center rounded bg-muted/80 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:bg-muted hover:text-foreground\"\n :class=\"{ '!opacity-100': builder.selection.value.kind === 'element' && builder.selection.value.id === elId }\"\n title=\"Zoom into this card\"\n data-testid=\"form-builder-zoom-in\"\n @click.stop=\"zoomInto(elId)\"\n >\n <Maximize2 class=\"h-3.5 w-3.5\" />\n </button>\n\n <!-- Live element render — card elements get resolved nestedElements -->\n <ElementRenderer\n :element=\"resolveElementForRender(elId)\"\n :item=\"props.item\"\n />\n </div>\n </div>\n </div>\n </template>\n </section>\n\n <!-- ─── INSPECTOR (collapsed) ──────────────────────────────────────── -->\n <aside\n v-if=\"!selectedElement\"\n class=\"flex items-start justify-center border-l pt-3 overflow-hidden\"\n data-testid=\"form-builder-inspector\"\n >\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger as-child>\n <span\n class=\"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-muted-foreground\"\n tabindex=\"0\"\n aria-label=\"Select an element on the canvas to edit its properties\"\n data-testid=\"form-builder-inspector-empty\"\n >\n <Info class=\"h-4 w-4\" />\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"left\">\n Select an element on the canvas to edit its properties\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </aside>\n\n <!-- ─── INSPECTOR (expanded) ─────────────────────────────────────── -->\n <aside\n v-else\n class=\"flex flex-col gap-2 overflow-y-auto border-l p-3\"\n data-testid=\"form-builder-inspector\"\n >\n <header class=\"flex items-center justify-between\">\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Inspector\n </h4>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Clear selection\"\n @click=\"onClearSelection\"\n >\n <X class=\"h-3.5 w-3.5\" />\n </Button>\n </header>\n\n <div\n class=\"flex flex-col gap-3\"\n data-testid=\"form-builder-inspector-fields\"\n >\n <Card class=\"border-dashed\">\n <CardHeader class=\"py-2\">\n <CardTitle class=\"font-mono text-xs uppercase tracking-wide\">\n {{ selectedElement.type }}\n </CardTitle>\n </CardHeader>\n <CardContent class=\"flex flex-col gap-2 pb-3\">\n <template\n v-for=\"field in inspectorFields\"\n :key=\"field.fieldName\"\n >\n <!-- boolean switch / checkbox → toggle row -->\n <div\n v-if=\"field.spec.type?.toString().startsWith('boolean.')\"\n class=\"flex items-center justify-between rounded border bg-background px-2 py-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\" class=\"cursor-pointer\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <Switch\n :id=\"`fb-${field.fieldName}`\"\n :model-value=\"Boolean(getFieldValue(field.fieldName))\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @update:model-value=\"(v: boolean) => onFieldInput(field.fieldName, v)\"\n />\n </div>\n\n <!-- option-select → native select -->\n <div\n v-else-if=\"field.spec.type?.toString().startsWith('option-select.')\"\n class=\"flex flex-col gap-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <select\n :id=\"`fb-${field.fieldName}`\"\n class=\"flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors focus:outline-none focus:ring-1 focus:ring-ring\"\n :value=\"String(getFieldValue(field.fieldName) ?? '')\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @change=\"(e: Event) => onFieldInput(field.fieldName, (e.target as HTMLSelectElement).value)\"\n >\n <option\n v-for=\"opt in (field.spec.selectOptions as Array<{label: string; value: string}> ?? [])\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n >\n {{ opt.label }}\n </option>\n </select>\n </div>\n\n <!-- textarea -->\n <div\n v-else-if=\"field.spec.type === 'input.textarea'\"\n class=\"flex flex-col gap-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <Textarea\n :id=\"`fb-${field.fieldName}`\"\n :model-value=\"String(getFieldValue(field.fieldName) ?? '')\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @input=\"(e: Event) => onFieldInput(field.fieldName, (e.target as HTMLTextAreaElement).value)\"\n />\n </div>\n\n <!-- default: text input (covers input.*, picker.*, display.*, etc.) -->\n <div\n v-else\n class=\"flex flex-col gap-1\"\n >\n <Label :for=\"`fb-${field.fieldName}`\">\n {{ field.spec.label ?? field.fieldName }}\n </Label>\n <Input\n :id=\"`fb-${field.fieldName}`\"\n :model-value=\"String(getFieldValue(field.fieldName) ?? '')\"\n :data-testid=\"`form-builder-inspector-${field.fieldName}`\"\n @input=\"(e: Event) => onFieldInput(field.fieldName, (e.target as HTMLInputElement).value)\"\n />\n </div>\n </template>\n\n <Separator v-if=\"inspectorFields.length\" class=\"my-1\" />\n\n <!-- Base fields always shown (not in every EditConfig) -->\n <div class=\"flex flex-col gap-1\">\n <Label for=\"fb-help\">Help text</Label>\n <Textarea\n id=\"fb-help\"\n :model-value=\"String(getFieldValue('helpText') ?? '')\"\n data-testid=\"form-builder-inspector-help\"\n @input=\"(e: Event) => onFieldInput('helpText', (e.target as HTMLTextAreaElement).value)\"\n />\n </div>\n <div class=\"flex items-center justify-between rounded border bg-background px-2 py-1\">\n <Label for=\"fb-disabled\">Disabled</Label>\n <Switch\n id=\"fb-disabled\"\n :model-value=\"Boolean(getFieldValue('disabled'))\"\n @update:model-value=\"(v: boolean) => onFieldInput('disabled', v)\"\n />\n </div>\n </CardContent>\n </Card>\n\n <div class=\"flex items-center gap-1\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n :disabled=\"selectedIndex <= 0\"\n data-testid=\"form-builder-move-up\"\n @click=\"onMoveUp\"\n >\n <ArrowUp class=\"h-3.5 w-3.5\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n :disabled=\"!canMoveDown\"\n data-testid=\"form-builder-move-down\"\n @click=\"onMoveDown\"\n >\n <ArrowDown class=\"h-3.5 w-3.5\" />\n </Button>\n <Button\n variant=\"destructive\"\n size=\"sm\"\n class=\"ml-auto\"\n data-testid=\"form-builder-remove\"\n @click=\"onRemove\"\n >\n <Trash2 class=\"h-3.5 w-3.5\" />\n Remove\n </Button>\n </div>\n </div>\n </aside>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
+
import { n as t } from "./utils-DAErOi9O.js";
|
|
3
|
+
import { n } from "./button-BAwcISlK.js";
|
|
4
|
+
import { o as ee, r as te, s as r } from "./card-DAfWnvro.js";
|
|
5
|
+
import { t as i } from "./input-tw5ZQGKQ.js";
|
|
6
|
+
import { l as a, n as o, s, t as c, u as l } from "./select-DZcdBLiy.js";
|
|
7
|
+
import { t as ne } from "./textarea-lgNOfYRH.js";
|
|
8
|
+
import { t as re } from "./field-frame-n5oLDNBT.js";
|
|
9
|
+
import { Fragment as ie, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, onMounted as y, openBlock as b, ref as x, renderList as S, toDisplayString as C, unref as w, watch as T, withCtx as E } from "vue";
|
|
10
|
+
import { GitBranch as ae, Loader2 as D, Save as oe } from "@lucide/vue";
|
|
11
|
+
//#region src/components/compositions/elements/code/GitCodeEditor.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
+
var O = { class: "flex flex-wrap items-center gap-2" }, k = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",
|
|
15
|
+
"data-testid": "git-code-editor-repository"
|
|
16
|
+
}, A = {
|
|
17
|
+
class: "min-w-40",
|
|
18
|
+
"data-testid": "git-code-editor-branch-wrapper"
|
|
19
|
+
}, j = {
|
|
20
|
+
key: 0,
|
|
21
|
+
class: "text-[10px] uppercase tracking-wide text-muted-foreground",
|
|
22
|
+
"data-testid": "git-code-editor-language"
|
|
23
|
+
}, M = {
|
|
24
|
+
key: 0,
|
|
25
|
+
class: "flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground",
|
|
26
|
+
"data-testid": "git-code-editor-loading"
|
|
27
|
+
}, N = /* @__PURE__ */ _({
|
|
28
|
+
__name: "GitCodeEditor",
|
|
29
|
+
props: {
|
|
30
|
+
repository: {},
|
|
31
|
+
branch: {},
|
|
32
|
+
path: {},
|
|
33
|
+
modelValue: {},
|
|
34
|
+
onLoadBranches: {},
|
|
35
|
+
onLoadFile: {},
|
|
36
|
+
onSaveFile: {},
|
|
37
|
+
language: { default: "plaintext" },
|
|
38
|
+
readonly: { type: Boolean },
|
|
39
|
+
disabled: { type: Boolean },
|
|
40
|
+
required: { type: Boolean },
|
|
41
|
+
label: { default: "Git Code Editor" },
|
|
42
|
+
hideLabel: { type: Boolean },
|
|
43
|
+
name: {},
|
|
44
|
+
id: {},
|
|
45
|
+
helpText: {},
|
|
46
|
+
errors: { default: () => [] },
|
|
47
|
+
classList: {}
|
|
48
|
+
},
|
|
49
|
+
emits: [
|
|
50
|
+
"update:modelValue",
|
|
51
|
+
"update:branch",
|
|
52
|
+
"update:path",
|
|
53
|
+
"update:language"
|
|
54
|
+
],
|
|
55
|
+
setup(e, { expose: _, emit: N }) {
|
|
56
|
+
let P = e, F = N, I = x(P.modelValue ?? ""), L = x(P.branch ?? ""), R = x(P.path ?? ""), z = x(P.language ?? "plaintext");
|
|
57
|
+
T(() => P.modelValue, (e) => {
|
|
58
|
+
e !== void 0 && e !== I.value && (I.value = e);
|
|
59
|
+
}), T(() => P.branch, (e) => {
|
|
60
|
+
e !== void 0 && e !== L.value && (L.value = e);
|
|
61
|
+
}), T(() => P.path, (e) => {
|
|
62
|
+
e !== void 0 && e !== R.value && (R.value = e);
|
|
63
|
+
}), T(() => P.language, (e) => {
|
|
64
|
+
e !== void 0 && e !== z.value && (z.value = e);
|
|
65
|
+
});
|
|
66
|
+
function B(e) {
|
|
67
|
+
let t = e ?? "";
|
|
68
|
+
I.value = t, F("update:modelValue", t);
|
|
69
|
+
}
|
|
70
|
+
function V(e) {
|
|
71
|
+
L.value = e, F("update:branch", e);
|
|
72
|
+
}
|
|
73
|
+
function H(e) {
|
|
74
|
+
let t = e === void 0 ? "" : String(e);
|
|
75
|
+
R.value = t, F("update:path", t);
|
|
76
|
+
}
|
|
77
|
+
let U = x([]), W = x(!1), G = x(null);
|
|
78
|
+
async function K() {
|
|
79
|
+
if (P.onLoadBranches) {
|
|
80
|
+
W.value = !0, G.value = null;
|
|
81
|
+
try {
|
|
82
|
+
let e = await P.onLoadBranches();
|
|
83
|
+
U.value = Array.isArray(e) ? e : [];
|
|
84
|
+
} catch (e) {
|
|
85
|
+
G.value = e instanceof Error ? e.message : String(e), U.value = [];
|
|
86
|
+
} finally {
|
|
87
|
+
W.value = !1;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
let q = x(!1), J = x(null), Y = 0;
|
|
92
|
+
async function X() {
|
|
93
|
+
if (!P.onLoadFile || !R.value || !L.value) return;
|
|
94
|
+
let e = ++Y;
|
|
95
|
+
q.value = !0, J.value = null;
|
|
96
|
+
try {
|
|
97
|
+
let t = await P.onLoadFile(R.value, L.value);
|
|
98
|
+
if (e !== Y) return;
|
|
99
|
+
let n = t?.content ?? "";
|
|
100
|
+
I.value = n, F("update:modelValue", n), t?.language && (z.value = t.language, F("update:language", t.language));
|
|
101
|
+
} catch (t) {
|
|
102
|
+
if (e !== Y) return;
|
|
103
|
+
J.value = t instanceof Error ? t.message : String(t);
|
|
104
|
+
} finally {
|
|
105
|
+
e === Y && (q.value = !1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
T([L, R], () => {
|
|
109
|
+
X();
|
|
110
|
+
});
|
|
111
|
+
let Z = x(!1), Q = x(null);
|
|
112
|
+
async function $() {
|
|
113
|
+
if (P.onSaveFile && !(!R.value || !L.value)) {
|
|
114
|
+
Z.value = !0, Q.value = null;
|
|
115
|
+
try {
|
|
116
|
+
await P.onSaveFile(R.value, L.value, I.value);
|
|
117
|
+
} catch (e) {
|
|
118
|
+
Q.value = e instanceof Error ? e.message : String(e);
|
|
119
|
+
} finally {
|
|
120
|
+
Z.value = !1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
let se = u(() => {
|
|
125
|
+
let e = new Set(U.value);
|
|
126
|
+
return L.value && e.add(L.value), Array.from(e);
|
|
127
|
+
}), ce = u(() => {
|
|
128
|
+
let e = [...P.errors ?? []];
|
|
129
|
+
return J.value && e.push(J.value), Q.value && e.push(Q.value), e;
|
|
130
|
+
}), le = u(() => !!P.onSaveFile);
|
|
131
|
+
return y(() => {
|
|
132
|
+
K(), X();
|
|
133
|
+
}), _({
|
|
134
|
+
reload: X,
|
|
135
|
+
save: $
|
|
136
|
+
}), (u, _) => (b(), d(w(re), {
|
|
137
|
+
label: e.label,
|
|
138
|
+
required: e.required,
|
|
139
|
+
"hide-label": e.hideLabel,
|
|
140
|
+
for: e.id,
|
|
141
|
+
"help-text": e.helpText,
|
|
142
|
+
errors: ce.value,
|
|
143
|
+
class: v(w(t)(P.classList))
|
|
144
|
+
}, {
|
|
145
|
+
default: E(() => [g(w(r), {
|
|
146
|
+
"data-element-name": P.name ?? void 0,
|
|
147
|
+
"data-testid": "git-code-editor"
|
|
148
|
+
}, {
|
|
149
|
+
default: E(() => [g(w(te), { class: "flex flex-col gap-2 border-b py-3" }, {
|
|
150
|
+
default: E(() => [m("div", O, [
|
|
151
|
+
P.repository ? (b(), p("div", k, [g(w(ae), { class: "size-3.5" }), m("span", null, C(P.repository), 1)])) : f("", !0),
|
|
152
|
+
m("div", A, [g(w(l), {
|
|
153
|
+
"model-value": L.value,
|
|
154
|
+
disabled: e.disabled || e.readonly || W.value,
|
|
155
|
+
"onUpdate:modelValue": _[0] ||= (e) => V(String(e ?? ""))
|
|
156
|
+
}, {
|
|
157
|
+
default: E(() => [g(w(o), {
|
|
158
|
+
"data-testid": "git-code-editor-branch-trigger",
|
|
159
|
+
"aria-label": "Branch"
|
|
160
|
+
}, {
|
|
161
|
+
default: E(() => [g(w(c), { placeholder: "Select branch" })]),
|
|
162
|
+
_: 1
|
|
163
|
+
}), g(w(a), null, {
|
|
164
|
+
default: E(() => [(b(!0), p(ie, null, S(se.value, (e) => (b(), d(w(s), {
|
|
165
|
+
key: e,
|
|
166
|
+
value: e,
|
|
167
|
+
"data-testid": `git-code-editor-branch-${e}`
|
|
168
|
+
}, {
|
|
169
|
+
default: E(() => [h(C(e), 1)]),
|
|
170
|
+
_: 2
|
|
171
|
+
}, 1032, ["value", "data-testid"]))), 128))]),
|
|
172
|
+
_: 1
|
|
173
|
+
})]),
|
|
174
|
+
_: 1
|
|
175
|
+
}, 8, ["model-value", "disabled"])]),
|
|
176
|
+
g(w(i), {
|
|
177
|
+
"model-value": R.value,
|
|
178
|
+
placeholder: "path/to/file",
|
|
179
|
+
class: "flex-1 min-w-48",
|
|
180
|
+
disabled: e.disabled || e.readonly,
|
|
181
|
+
"data-testid": "git-code-editor-path-input",
|
|
182
|
+
"onUpdate:modelValue": H
|
|
183
|
+
}, null, 8, ["model-value", "disabled"]),
|
|
184
|
+
le.value ? (b(), d(w(n), {
|
|
185
|
+
key: 1,
|
|
186
|
+
type: "button",
|
|
187
|
+
variant: "default",
|
|
188
|
+
size: "sm",
|
|
189
|
+
disabled: Z.value || e.disabled || e.readonly || !R.value || !L.value,
|
|
190
|
+
"data-testid": "git-code-editor-save",
|
|
191
|
+
onClick: $
|
|
192
|
+
}, {
|
|
193
|
+
default: E(() => [Z.value ? (b(), d(w(D), {
|
|
194
|
+
key: 0,
|
|
195
|
+
class: "size-4 animate-spin"
|
|
196
|
+
})) : (b(), d(w(oe), {
|
|
197
|
+
key: 1,
|
|
198
|
+
class: "size-4"
|
|
199
|
+
})), m("span", null, C(Z.value ? "Saving…" : "Save"), 1)]),
|
|
200
|
+
_: 1
|
|
201
|
+
}, 8, ["disabled"])) : f("", !0)
|
|
202
|
+
]), z.value ? (b(), p("p", j, C(z.value), 1)) : f("", !0)]),
|
|
203
|
+
_: 1
|
|
204
|
+
}), g(w(ee), { class: "p-0" }, {
|
|
205
|
+
default: E(() => [q.value ? (b(), p("div", M, [g(w(D), { class: "size-4 animate-spin" }), _[1] ||= m("span", null, "Loading file…", -1)])) : f("", !0), g(w(ne), {
|
|
206
|
+
id: e.id,
|
|
207
|
+
"model-value": I.value,
|
|
208
|
+
readonly: e.readonly || q.value,
|
|
209
|
+
disabled: e.disabled,
|
|
210
|
+
required: e.required,
|
|
211
|
+
rows: 16,
|
|
212
|
+
spellcheck: "false",
|
|
213
|
+
class: "min-h-64 rounded-none border-0 font-mono text-xs focus-visible:ring-0 focus-visible:ring-offset-0",
|
|
214
|
+
"data-element-name": P.name ?? void 0,
|
|
215
|
+
"data-testid": "git-code-editor-textarea",
|
|
216
|
+
"onUpdate:modelValue": B
|
|
217
|
+
}, null, 8, [
|
|
218
|
+
"id",
|
|
219
|
+
"model-value",
|
|
220
|
+
"readonly",
|
|
221
|
+
"disabled",
|
|
222
|
+
"required",
|
|
223
|
+
"data-element-name"
|
|
224
|
+
])]),
|
|
225
|
+
_: 1
|
|
226
|
+
})]),
|
|
227
|
+
_: 1
|
|
228
|
+
}, 8, ["data-element-name"])]),
|
|
229
|
+
_: 1
|
|
230
|
+
}, 8, [
|
|
231
|
+
"label",
|
|
232
|
+
"required",
|
|
233
|
+
"hide-label",
|
|
234
|
+
"for",
|
|
235
|
+
"help-text",
|
|
236
|
+
"errors",
|
|
237
|
+
"class"
|
|
238
|
+
]));
|
|
239
|
+
}
|
|
240
|
+
}), P = /* @__PURE__ */ e({ default: () => F }), F = N;
|
|
241
|
+
//#endregion
|
|
242
|
+
export { P as n, F as t };
|
|
243
|
+
|
|
244
|
+
//# sourceMappingURL=GitCodeEditor-CQnTM-xQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitCodeEditor-CQnTM-xQ.js","names":[],"sources":["../../src/components/compositions/elements/code/GitCodeEditor.vue","../../src/components/compositions/elements/code/GitCodeEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven git code editor composition. Wraps a textarea editor\n * with a branch switcher, file-path input, and a save button. The\n * composition makes no HTTP calls — the consumer supplies Promise-\n * returning callbacks for loading branches, loading a file, and\n * (optionally) saving it.\n *\n * <GitCodeEditor\n * repository=\"gramercy/plugins\"\n * v-model:branch=\"branch\"\n * v-model:path=\"path\"\n * v-model=\"content\"\n * :on-load-branches=\"loadBranches\"\n * :on-load-file=\"loadFile\"\n * :on-save-file=\"saveFile\"\n * />\n */\nimport { computed, onMounted, ref, watch } from \"vue\"\nimport { GitBranch, Loader2, Save } from \"@lucide/vue\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardHeader } from \"@/components/ui/card\"\nimport { FieldFrame } from \"@/components/ui/field-frame\"\nimport { Input } from \"@/components/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface GitCodeEditorLoadedFile {\n content: string\n language?: string\n}\n\nexport interface GitCodeEditorProps {\n /** Repository identifier (display only). */\n repository?: string\n /** Current branch (v-modelable). */\n branch?: string\n /** Current file path (v-modelable). */\n path?: string\n /** File content (v-modelable via modelValue). */\n modelValue?: string\n /** Lists the branches for the branch selector. */\n onLoadBranches?: () => Promise<string[]>\n /** REQUIRED loader for the current (path, branch). */\n onLoadFile?: (\n path: string,\n branch: string,\n ) => Promise<GitCodeEditorLoadedFile>\n /** Optional save callback. When omitted, the save button is hidden. */\n onSaveFile?: (path: string, branch: string, content: string) => Promise<void>\n /** Syntax hint. Default plaintext; overridden by `onLoadFile`'s response. */\n language?: string\n readonly?: boolean\n disabled?: boolean\n required?: boolean\n label?: string\n hideLabel?: boolean\n name?: string | null\n id?: string\n helpText?: string\n errors?: string[]\n classList?: string[] | string\n}\n\nconst props = withDefaults(defineProps<GitCodeEditorProps>(), {\n errors: () => [],\n language: \"plaintext\",\n label: \"Git Code Editor\",\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n \"update:branch\": [value: string]\n \"update:path\": [value: string]\n \"update:language\": [value: string]\n}>()\n\nconst content = ref<string>(props.modelValue ?? \"\")\nconst branchRef = ref<string>(props.branch ?? \"\")\nconst pathRef = ref<string>(props.path ?? \"\")\nconst languageRef = ref<string>(props.language ?? \"plaintext\")\n\nwatch(\n () => props.modelValue,\n (next) => {\n if (next !== undefined && next !== content.value) {\n content.value = next\n }\n },\n)\nwatch(\n () => props.branch,\n (next) => {\n if (next !== undefined && next !== branchRef.value) {\n branchRef.value = next\n }\n },\n)\nwatch(\n () => props.path,\n (next) => {\n if (next !== undefined && next !== pathRef.value) {\n pathRef.value = next\n }\n },\n)\nwatch(\n () => props.language,\n (next) => {\n if (next !== undefined && next !== languageRef.value) {\n languageRef.value = next\n }\n },\n)\n\nfunction updateContent(next: string | undefined): void {\n const value = next ?? \"\"\n content.value = value\n emit(\"update:modelValue\", value)\n}\n\nfunction updateBranch(next: string): void {\n branchRef.value = next\n emit(\"update:branch\", next)\n}\n\nfunction updatePath(next: string | number | undefined): void {\n const v = next === undefined ? \"\" : String(next)\n pathRef.value = v\n emit(\"update:path\", v)\n}\n\n// --- branches loader -------------------------------------------------\nconst branches = ref<string[]>([])\nconst branchesLoading = ref<boolean>(false)\nconst branchesError = ref<string | null>(null)\n\nasync function loadBranches(): Promise<void> {\n if (!props.onLoadBranches) {\n return\n }\n branchesLoading.value = true\n branchesError.value = null\n try {\n const next = await props.onLoadBranches()\n branches.value = Array.isArray(next) ? next : []\n } catch (err) {\n branchesError.value = err instanceof Error ? err.message : String(err)\n branches.value = []\n } finally {\n branchesLoading.value = false\n }\n}\n\n// --- file loader -----------------------------------------------------\nconst fileLoading = ref<boolean>(false)\nconst fileError = ref<string | null>(null)\nlet fileToken = 0\n\nasync function loadFile(): Promise<void> {\n if (!props.onLoadFile) {\n return\n }\n if (!pathRef.value || !branchRef.value) {\n return\n }\n const myToken = ++fileToken\n fileLoading.value = true\n fileError.value = null\n try {\n const result = await props.onLoadFile(pathRef.value, branchRef.value)\n if (myToken !== fileToken) {\n return\n }\n const next = result?.content ?? \"\"\n content.value = next\n emit(\"update:modelValue\", next)\n if (result?.language) {\n languageRef.value = result.language\n emit(\"update:language\", result.language)\n }\n } catch (err) {\n if (myToken !== fileToken) {\n return\n }\n fileError.value = err instanceof Error ? err.message : String(err)\n } finally {\n if (myToken === fileToken) {\n fileLoading.value = false\n }\n }\n}\n\nwatch([branchRef, pathRef], () => {\n void loadFile()\n})\n\n// --- save ------------------------------------------------------------\nconst saving = ref<boolean>(false)\nconst saveError = ref<string | null>(null)\n\nasync function save(): Promise<void> {\n if (!props.onSaveFile) {\n return\n }\n if (!pathRef.value || !branchRef.value) {\n return\n }\n saving.value = true\n saveError.value = null\n try {\n await props.onSaveFile(pathRef.value, branchRef.value, content.value)\n } catch (err) {\n saveError.value = err instanceof Error ? err.message : String(err)\n } finally {\n saving.value = false\n }\n}\n\nconst branchOptions = computed<string[]>(() => {\n const all = new Set(branches.value)\n if (branchRef.value) {\n all.add(branchRef.value)\n }\n return Array.from(all)\n})\n\nconst allErrors = computed<string[]>(() => {\n const out = [...(props.errors ?? [])]\n if (fileError.value) {\n out.push(fileError.value)\n }\n if (saveError.value) {\n out.push(saveError.value)\n }\n return out\n})\n\nconst showSave = computed<boolean>(() => Boolean(props.onSaveFile))\n\nonMounted(() => {\n void loadBranches()\n void loadFile()\n})\n\ndefineExpose({ reload: loadFile, save })\n</script>\n\n<template>\n <FieldFrame\n :label=\"label\"\n :required=\"required\"\n :hide-label=\"hideLabel\"\n :for=\"id\"\n :help-text=\"helpText\"\n :errors=\"allErrors\"\n :class=\"cn(props.classList)\"\n >\n <Card\n :data-element-name=\"props.name ?? undefined\"\n data-testid=\"git-code-editor\"\n >\n <CardHeader class=\"flex flex-col gap-2 border-b py-3\">\n <div class=\"flex flex-wrap items-center gap-2\">\n <div\n v-if=\"props.repository\"\n class=\"flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground\"\n data-testid=\"git-code-editor-repository\"\n >\n <GitBranch class=\"size-3.5\" />\n <span>{{ props.repository }}</span>\n </div>\n\n <div class=\"min-w-40\" data-testid=\"git-code-editor-branch-wrapper\">\n <Select\n :model-value=\"branchRef\"\n :disabled=\"disabled || readonly || branchesLoading\"\n @update:model-value=\"(v) => updateBranch(String(v ?? ''))\"\n >\n <SelectTrigger\n data-testid=\"git-code-editor-branch-trigger\"\n :aria-label=\"'Branch'\"\n >\n <SelectValue placeholder=\"Select branch\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem\n v-for=\"b in branchOptions\"\n :key=\"b\"\n :value=\"b\"\n :data-testid=\"`git-code-editor-branch-${b}`\"\n >\n {{ b }}\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n <Input\n :model-value=\"pathRef\"\n placeholder=\"path/to/file\"\n class=\"flex-1 min-w-48\"\n :disabled=\"disabled || readonly\"\n data-testid=\"git-code-editor-path-input\"\n @update:model-value=\"updatePath\"\n />\n\n <Button\n v-if=\"showSave\"\n type=\"button\"\n variant=\"default\"\n size=\"sm\"\n :disabled=\"\n saving || disabled || readonly || !pathRef || !branchRef\n \"\n data-testid=\"git-code-editor-save\"\n @click=\"save\"\n >\n <Loader2 v-if=\"saving\" class=\"size-4 animate-spin\" />\n <Save v-else class=\"size-4\" />\n <span>{{ saving ? \"Saving…\" : \"Save\" }}</span>\n </Button>\n </div>\n <p\n v-if=\"languageRef\"\n class=\"text-[10px] uppercase tracking-wide text-muted-foreground\"\n data-testid=\"git-code-editor-language\"\n >\n {{ languageRef }}\n </p>\n </CardHeader>\n <CardContent class=\"p-0\">\n <div\n v-if=\"fileLoading\"\n class=\"flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground\"\n data-testid=\"git-code-editor-loading\"\n >\n <Loader2 class=\"size-4 animate-spin\" />\n <span>Loading file…</span>\n </div>\n <Textarea\n :id=\"id\"\n :model-value=\"content\"\n :readonly=\"readonly || fileLoading\"\n :disabled=\"disabled\"\n :required=\"required\"\n :rows=\"16\"\n spellcheck=\"false\"\n class=\"min-h-64 rounded-none border-0 font-mono text-xs focus-visible:ring-0 focus-visible:ring-offset-0\"\n :data-element-name=\"props.name ?? undefined\"\n data-testid=\"git-code-editor-textarea\"\n @update:model-value=\"updateContent\"\n />\n </CardContent>\n </Card>\n </FieldFrame>\n</template>\n","<script setup lang=\"ts\">\n/**\n * Props-driven git code editor composition. Wraps a textarea editor\n * with a branch switcher, file-path input, and a save button. The\n * composition makes no HTTP calls — the consumer supplies Promise-\n * returning callbacks for loading branches, loading a file, and\n * (optionally) saving it.\n *\n * <GitCodeEditor\n * repository=\"gramercy/plugins\"\n * v-model:branch=\"branch\"\n * v-model:path=\"path\"\n * v-model=\"content\"\n * :on-load-branches=\"loadBranches\"\n * :on-load-file=\"loadFile\"\n * :on-save-file=\"saveFile\"\n * />\n */\nimport { computed, onMounted, ref, watch } from \"vue\"\nimport { GitBranch, Loader2, Save } from \"@lucide/vue\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardHeader } from \"@/components/ui/card\"\nimport { FieldFrame } from \"@/components/ui/field-frame\"\nimport { Input } from \"@/components/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface GitCodeEditorLoadedFile {\n content: string\n language?: string\n}\n\nexport interface GitCodeEditorProps {\n /** Repository identifier (display only). */\n repository?: string\n /** Current branch (v-modelable). */\n branch?: string\n /** Current file path (v-modelable). */\n path?: string\n /** File content (v-modelable via modelValue). */\n modelValue?: string\n /** Lists the branches for the branch selector. */\n onLoadBranches?: () => Promise<string[]>\n /** REQUIRED loader for the current (path, branch). */\n onLoadFile?: (\n path: string,\n branch: string,\n ) => Promise<GitCodeEditorLoadedFile>\n /** Optional save callback. When omitted, the save button is hidden. */\n onSaveFile?: (path: string, branch: string, content: string) => Promise<void>\n /** Syntax hint. Default plaintext; overridden by `onLoadFile`'s response. */\n language?: string\n readonly?: boolean\n disabled?: boolean\n required?: boolean\n label?: string\n hideLabel?: boolean\n name?: string | null\n id?: string\n helpText?: string\n errors?: string[]\n classList?: string[] | string\n}\n\nconst props = withDefaults(defineProps<GitCodeEditorProps>(), {\n errors: () => [],\n language: \"plaintext\",\n label: \"Git Code Editor\",\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n \"update:branch\": [value: string]\n \"update:path\": [value: string]\n \"update:language\": [value: string]\n}>()\n\nconst content = ref<string>(props.modelValue ?? \"\")\nconst branchRef = ref<string>(props.branch ?? \"\")\nconst pathRef = ref<string>(props.path ?? \"\")\nconst languageRef = ref<string>(props.language ?? \"plaintext\")\n\nwatch(\n () => props.modelValue,\n (next) => {\n if (next !== undefined && next !== content.value) {\n content.value = next\n }\n },\n)\nwatch(\n () => props.branch,\n (next) => {\n if (next !== undefined && next !== branchRef.value) {\n branchRef.value = next\n }\n },\n)\nwatch(\n () => props.path,\n (next) => {\n if (next !== undefined && next !== pathRef.value) {\n pathRef.value = next\n }\n },\n)\nwatch(\n () => props.language,\n (next) => {\n if (next !== undefined && next !== languageRef.value) {\n languageRef.value = next\n }\n },\n)\n\nfunction updateContent(next: string | undefined): void {\n const value = next ?? \"\"\n content.value = value\n emit(\"update:modelValue\", value)\n}\n\nfunction updateBranch(next: string): void {\n branchRef.value = next\n emit(\"update:branch\", next)\n}\n\nfunction updatePath(next: string | number | undefined): void {\n const v = next === undefined ? \"\" : String(next)\n pathRef.value = v\n emit(\"update:path\", v)\n}\n\n// --- branches loader -------------------------------------------------\nconst branches = ref<string[]>([])\nconst branchesLoading = ref<boolean>(false)\nconst branchesError = ref<string | null>(null)\n\nasync function loadBranches(): Promise<void> {\n if (!props.onLoadBranches) {\n return\n }\n branchesLoading.value = true\n branchesError.value = null\n try {\n const next = await props.onLoadBranches()\n branches.value = Array.isArray(next) ? next : []\n } catch (err) {\n branchesError.value = err instanceof Error ? err.message : String(err)\n branches.value = []\n } finally {\n branchesLoading.value = false\n }\n}\n\n// --- file loader -----------------------------------------------------\nconst fileLoading = ref<boolean>(false)\nconst fileError = ref<string | null>(null)\nlet fileToken = 0\n\nasync function loadFile(): Promise<void> {\n if (!props.onLoadFile) {\n return\n }\n if (!pathRef.value || !branchRef.value) {\n return\n }\n const myToken = ++fileToken\n fileLoading.value = true\n fileError.value = null\n try {\n const result = await props.onLoadFile(pathRef.value, branchRef.value)\n if (myToken !== fileToken) {\n return\n }\n const next = result?.content ?? \"\"\n content.value = next\n emit(\"update:modelValue\", next)\n if (result?.language) {\n languageRef.value = result.language\n emit(\"update:language\", result.language)\n }\n } catch (err) {\n if (myToken !== fileToken) {\n return\n }\n fileError.value = err instanceof Error ? err.message : String(err)\n } finally {\n if (myToken === fileToken) {\n fileLoading.value = false\n }\n }\n}\n\nwatch([branchRef, pathRef], () => {\n void loadFile()\n})\n\n// --- save ------------------------------------------------------------\nconst saving = ref<boolean>(false)\nconst saveError = ref<string | null>(null)\n\nasync function save(): Promise<void> {\n if (!props.onSaveFile) {\n return\n }\n if (!pathRef.value || !branchRef.value) {\n return\n }\n saving.value = true\n saveError.value = null\n try {\n await props.onSaveFile(pathRef.value, branchRef.value, content.value)\n } catch (err) {\n saveError.value = err instanceof Error ? err.message : String(err)\n } finally {\n saving.value = false\n }\n}\n\nconst branchOptions = computed<string[]>(() => {\n const all = new Set(branches.value)\n if (branchRef.value) {\n all.add(branchRef.value)\n }\n return Array.from(all)\n})\n\nconst allErrors = computed<string[]>(() => {\n const out = [...(props.errors ?? [])]\n if (fileError.value) {\n out.push(fileError.value)\n }\n if (saveError.value) {\n out.push(saveError.value)\n }\n return out\n})\n\nconst showSave = computed<boolean>(() => Boolean(props.onSaveFile))\n\nonMounted(() => {\n void loadBranches()\n void loadFile()\n})\n\ndefineExpose({ reload: loadFile, save })\n</script>\n\n<template>\n <FieldFrame\n :label=\"label\"\n :required=\"required\"\n :hide-label=\"hideLabel\"\n :for=\"id\"\n :help-text=\"helpText\"\n :errors=\"allErrors\"\n :class=\"cn(props.classList)\"\n >\n <Card\n :data-element-name=\"props.name ?? undefined\"\n data-testid=\"git-code-editor\"\n >\n <CardHeader class=\"flex flex-col gap-2 border-b py-3\">\n <div class=\"flex flex-wrap items-center gap-2\">\n <div\n v-if=\"props.repository\"\n class=\"flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground\"\n data-testid=\"git-code-editor-repository\"\n >\n <GitBranch class=\"size-3.5\" />\n <span>{{ props.repository }}</span>\n </div>\n\n <div class=\"min-w-40\" data-testid=\"git-code-editor-branch-wrapper\">\n <Select\n :model-value=\"branchRef\"\n :disabled=\"disabled || readonly || branchesLoading\"\n @update:model-value=\"(v) => updateBranch(String(v ?? ''))\"\n >\n <SelectTrigger\n data-testid=\"git-code-editor-branch-trigger\"\n :aria-label=\"'Branch'\"\n >\n <SelectValue placeholder=\"Select branch\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem\n v-for=\"b in branchOptions\"\n :key=\"b\"\n :value=\"b\"\n :data-testid=\"`git-code-editor-branch-${b}`\"\n >\n {{ b }}\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n <Input\n :model-value=\"pathRef\"\n placeholder=\"path/to/file\"\n class=\"flex-1 min-w-48\"\n :disabled=\"disabled || readonly\"\n data-testid=\"git-code-editor-path-input\"\n @update:model-value=\"updatePath\"\n />\n\n <Button\n v-if=\"showSave\"\n type=\"button\"\n variant=\"default\"\n size=\"sm\"\n :disabled=\"\n saving || disabled || readonly || !pathRef || !branchRef\n \"\n data-testid=\"git-code-editor-save\"\n @click=\"save\"\n >\n <Loader2 v-if=\"saving\" class=\"size-4 animate-spin\" />\n <Save v-else class=\"size-4\" />\n <span>{{ saving ? \"Saving…\" : \"Save\" }}</span>\n </Button>\n </div>\n <p\n v-if=\"languageRef\"\n class=\"text-[10px] uppercase tracking-wide text-muted-foreground\"\n data-testid=\"git-code-editor-language\"\n >\n {{ languageRef }}\n </p>\n </CardHeader>\n <CardContent class=\"p-0\">\n <div\n v-if=\"fileLoading\"\n class=\"flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground\"\n data-testid=\"git-code-editor-loading\"\n >\n <Loader2 class=\"size-4 animate-spin\" />\n <span>Loading file…</span>\n </div>\n <Textarea\n :id=\"id\"\n :model-value=\"content\"\n :readonly=\"readonly || fileLoading\"\n :disabled=\"disabled\"\n :required=\"required\"\n :rows=\"16\"\n spellcheck=\"false\"\n class=\"min-h-64 rounded-none border-0 font-mono text-xs focus-visible:ring-0 focus-visible:ring-offset-0\"\n :data-element-name=\"props.name ?? undefined\"\n data-testid=\"git-code-editor-textarea\"\n @update:model-value=\"updateContent\"\n />\n </CardContent>\n </Card>\n </FieldFrame>\n</template>\n"],"mappings":"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"}
|