@chaibuilder/sdk 4.0.0-beta.4 → 4.0.0-beta.41
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/README.md +72 -50
- package/dist/{2SSKDMRQ-Difo_1pg.js → 2SSKDMRQ-CdpXONNF.js} +3 -3
- package/dist/{2SSKDMRQ-CopJgtZb.cjs → 2SSKDMRQ-Dq_oq6gn.cjs} +1 -1
- package/dist/{AP7HFJJL-BPuPBqj4.js → AP7HFJJL-CZb0rAxI.js} +1 -1
- package/dist/{AP7HFJJL-DYxDgaOs.cjs → AP7HFJJL-Do14BULM.cjs} +1 -1
- package/dist/{IconPicker-B2-oriq2.js → IconPicker-CvZSjXc6.js} +2 -2
- package/dist/{IconPicker-C0oycHbs.cjs → IconPicker-DUN9bxmQ.cjs} +1 -1
- package/dist/STRINGS-BExFecZW.js +8 -0
- package/dist/STRINGS-FNnfjF5H.cjs +1 -0
- package/dist/{WDYDFRGG-DbejaRPK.cjs → WDYDFRGG-DfczfcZ8.cjs} +1 -1
- package/dist/{WDYDFRGG-KK8pkcW1.js → WDYDFRGG-Dxa2zFdt.js} +4 -4
- package/dist/{actions-registery-y_ENc8zj.js → actions-registery-CMKfEXxX.js} +3397 -3202
- package/dist/actions-registery-CqhNZFV3.cjs +481 -0
- package/dist/actions.cjs +1 -1
- package/dist/actions.d.ts +0 -158
- package/dist/actions.js +3 -3
- package/dist/{active-in-another-tab-DkR2HWI4.js → active-in-another-tab-BREv3Xj8.js} +5 -5
- package/dist/{active-in-another-tab-Cu_ASKtx.cjs → active-in-another-tab-C9o276yY.cjs} +1 -1
- package/dist/{add-new-language-page-CBY0RR6q.js → add-new-language-page-C4PSVDV5.js} +4 -4
- package/dist/{add-new-language-page-BXuwluuU.cjs → add-new-language-page-jHLJjrl1.cjs} +1 -1
- package/dist/{add-new-page-C_PzKby8.cjs → add-new-page-BPPMxBYi.cjs} +1 -1
- package/dist/add-new-page-DomZuT16.js +31 -0
- package/dist/{ai-panel-content--YM01Aly.js → ai-panel-content-CsmUoTCg.js} +6 -6
- package/dist/{ai-panel-content-rRmJdH7L.cjs → ai-panel-content-DlS51Qef.cjs} +1 -1
- package/dist/ai-panel-default-lang-BRVlAMMU.js +317 -0
- package/dist/ai-panel-default-lang-DVKDEnbe.cjs +3 -0
- package/dist/ai-panel-other-lang-B-2xJz2W.cjs +1 -0
- package/dist/ai-panel-other-lang-BPVS6lO_.js +132 -0
- package/dist/{ai-prompt-input-DueQYNf-.js → ai-prompt-input-B0FMhaLB.js} +30 -34
- package/dist/{ai-prompt-input-N9PcYCFa.cjs → ai-prompt-input-CY2pBPzO.cjs} +1 -1
- package/dist/{ai-translation-prompt-B36F3d7K.js → ai-translation-prompt-6LlaU9LO.js} +2 -2
- package/dist/{ai-translation-prompt-IAdWMNZb.cjs → ai-translation-prompt-BwhKmgC3.cjs} +1 -1
- package/dist/apply-binding-BuwI_Uf5.cjs +41 -0
- package/dist/apply-binding-RQRSIe56.js +942 -0
- package/dist/change-password-modal-BlSTfit6.js +137 -0
- package/dist/change-password-modal-wbCcGfDM.cjs +1 -0
- package/dist/{code-display-DloSPyPr.cjs → code-display-BR-gij5j.cjs} +1 -1
- package/dist/{code-display-Ck81Id9K.js → code-display-DdWcOQ_i.js} +1 -1
- package/dist/code-editor-BC_saYAw.cjs +1 -0
- package/dist/code-editor-Be5VT6om.js +57 -0
- package/dist/{continue-editing-in-this-client-DmGFLHXw.cjs → continue-editing-in-this-client-Bs_3q1hH.cjs} +1 -1
- package/dist/{continue-editing-in-this-client-Dm9cCj7K.js → continue-editing-in-this-client-Z1rBUPU8.js} +3 -3
- package/dist/core-czmLeR0h.cjs +1 -0
- package/dist/core-nSRy3D7z.js +54 -0
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +285 -103
- package/dist/core.js +71 -42
- package/dist/{css-import-modal-9P_0uNa4.js → css-import-modal-DMZRgpy0.js} +8 -8
- package/dist/{css-import-modal-Rh1QAVxo.cjs → css-import-modal-QaTHJ7CT.cjs} +1 -1
- package/dist/delete-page-BoP3I06P.js +84 -0
- package/dist/delete-page-CjXYHAsS.cjs +1 -0
- package/dist/{design-token-usage-MNYsFlPG.js → design-token-usage-DFanW2r-.js} +26 -26
- package/dist/{design-token-usage-CXglXgcJ.cjs → design-token-usage-kEPgi-3C.cjs} +1 -1
- package/dist/{digital-asset-manager-CqCWBO0s.js → digital-asset-manager-BbI7Ye34.js} +6 -6
- package/dist/digital-asset-manager-N8tcW28y.cjs +1 -0
- package/dist/{duplicate-page-DzZByALW.cjs → duplicate-page-B-4nFU4j.cjs} +1 -1
- package/dist/{duplicate-page-BknLfqr0.js → duplicate-page-C6y7FdRQ.js} +7 -7
- package/dist/{dynamic-page-selector-WA007Sni.cjs → dynamic-page-selector-Cq4U-49i.cjs} +1 -1
- package/dist/{dynamic-page-selector-DoW7OyUB.js → dynamic-page-selector-DQCWphi0.js} +16 -16
- package/dist/fonts/bungee/Bungee-Regular.woff2 +0 -0
- package/dist/fonts/dm_sans/dm-sans-variable.woff2 +0 -0
- package/dist/fonts/geist/Geist-VariableFont_wght.ttf +0 -0
- package/dist/fonts/geist/Geist-VariableFont_wght.woff2 +0 -0
- package/dist/fonts/geist/geist-variable.woff2 +0 -0
- package/dist/fonts/geist-mono/GeistMono-VariableFont_wght.woff2 +0 -0
- package/dist/fonts/inter/inter-latin.woff2 +0 -0
- package/dist/fonts/inter/inter-variable.woff2 +1449 -0
- package/dist/fonts/lato/lato-variable.woff2 +0 -0
- package/dist/fonts/lavishly_yours/lavishly-yours.woff2 +11 -0
- package/dist/fonts/merriweather/merriweather-variable.woff2 +11 -0
- package/dist/fonts/montserrat/montserrat-variable.woff2 +0 -0
- package/dist/fonts/nunito_sans/nunito-sans-variable.woff2 +11 -0
- package/dist/fonts/open_sans/open-sans-variable.woff2 +0 -0
- package/dist/fonts/oswald/oswald-variable.woff2 +0 -0
- package/dist/fonts/playfair_display/playfair-display-variable.woff2 +11 -0
- package/dist/fonts/poppins/poppins-variable.woff2 +0 -0
- package/dist/fonts/raleway/raleway-variable.woff2 +0 -0
- package/dist/fonts/roboto/roboto-variable.woff2 +11 -0
- package/dist/fonts/source_sans_3/source-sans-3-variable.woff2 +11 -0
- package/dist/fonts/ubuntu/ubuntu-variable.woff2 +0 -0
- package/dist/fonts-B3UYxuJI.js +25 -0
- package/dist/fonts-D5fTqvSS.cjs +1 -0
- package/dist/{get-chai-builder-tailwind-config-BFePCEIS.cjs → get-chai-builder-tailwind-config-7CxFxEYL.cjs} +1 -1
- package/dist/{get-chai-builder-tailwind-config-BXf_xLHk.js → get-chai-builder-tailwind-config-DC4sDOYK.js} +5 -5
- package/dist/{get-chai-builder-theme-BApShjRz.cjs → get-chai-builder-theme-B5RkBTsB.cjs} +1 -1
- package/dist/{get-chai-builder-theme-DDVRJQ6Z.js → get-chai-builder-theme-BpuwSLeS.js} +1 -1
- package/dist/{image-compression-DsZ1oqpb.js → image-compression-DPFITwOL.js} +2 -2
- package/dist/image-compression-UaU7Bwqe.cjs +1 -0
- package/dist/{image-editor-CqwaVxO2.cjs → image-editor-565A0NpE.cjs} +1 -1
- package/dist/{image-editor-CQnNtak2.js → image-editor-Dz_HQ0I8.js} +1 -1
- package/dist/index-3pEi7VzS.cjs +5 -0
- package/dist/index-C3CV1lXL.cjs +160 -0
- package/dist/index-CDVuf3C1.js +5118 -0
- package/dist/{index-rAcNbjk_.js → index-wBr2Ml98.js} +6152 -6102
- package/dist/{json-diff-viewer-CLuUHiPU.cjs → json-diff-viewer-CMYFM6D6.cjs} +7 -7
- package/dist/{json-diff-viewer-CMvGUvJ2.js → json-diff-viewer-DG7a5-2B.js} +87 -85
- package/dist/{lang-panel-CnwTb05j.js → lang-panel-BvGiJJ8s.js} +26 -26
- package/dist/lang-panel-D97iJH-l.cjs +1 -0
- package/dist/library-blocks/bento/agency-showcase/agency-showcase.html +175 -0
- package/dist/library-blocks/bento/agency-showcase/agency-showcase.webp +0 -0
- package/dist/library-blocks/bento/creative-portfolio/creative-portfolio.html +116 -0
- package/dist/library-blocks/bento/creative-portfolio/creative-portfolio.webp +0 -0
- package/dist/library-blocks/bento/product-features/product-features.html +159 -0
- package/dist/library-blocks/bento/product-features/product-features.webp +0 -0
- package/dist/library-blocks/bento/saas-dashboard/saas-dashboard.html +182 -0
- package/dist/library-blocks/bento/saas-dashboard/saas-dashboard.webp +0 -0
- package/dist/library-blocks/bento/startup-metrics/startup-metrics.html +170 -0
- package/dist/library-blocks/bento/startup-metrics/startup-metrics.webp +0 -0
- package/dist/library-blocks/blocks-list.json +149 -0
- package/dist/library-blocks/feature/agency-services/agency-services.html +194 -0
- package/dist/library-blocks/feature/agency-services/agency-services.webp +0 -0
- package/dist/library-blocks/feature/consulting-firm/consulting-firm.html +219 -0
- package/dist/library-blocks/feature/consulting-firm/consulting-firm.webp +0 -0
- package/dist/library-blocks/feature/design-studio/design-studio.html +190 -0
- package/dist/library-blocks/feature/design-studio/design-studio.webp +0 -0
- package/dist/library-blocks/feature/freelancer-toolkit/freelancer-toolkit.html +195 -0
- package/dist/library-blocks/feature/freelancer-toolkit/freelancer-toolkit.webp +0 -0
- package/dist/library-blocks/feature/marketing-agency/marketing-agency.html +212 -0
- package/dist/library-blocks/feature/marketing-agency/marketing-agency.webp +0 -0
- package/dist/library-blocks/footer/creative-agency/creative-agency.html +64 -0
- package/dist/library-blocks/footer/creative-agency/creative-agency.webp +0 -0
- package/dist/library-blocks/footer/minimal-portfolio/minimal-portfolio.html +106 -0
- package/dist/library-blocks/footer/minimal-portfolio/minimal-portfolio.webp +0 -0
- package/dist/library-blocks/footer/saas-startup/saas-startup.html +117 -0
- package/dist/library-blocks/footer/saas-startup/saas-startup.webp +0 -0
- package/dist/library-blocks/hero/creative-agency/creative-agency.html +117 -0
- package/dist/library-blocks/hero/creative-agency/creative-agency.webp +0 -0
- package/dist/library-blocks/hero/developer-focused/developer-focused.html +124 -0
- package/dist/library-blocks/hero/developer-focused/developer-focused.webp +0 -0
- package/dist/library-blocks/hero/minimal-saas/minimal-saas.html +98 -0
- package/dist/library-blocks/hero/minimal-saas/minimal-saas.webp +0 -0
- package/dist/library-blocks/hero/portfolio-showcase/portfolio-showcase.html +148 -0
- package/dist/library-blocks/hero/portfolio-showcase/portfolio-showcase.webp +0 -0
- package/dist/library-blocks/hero/startup-landing/startup-landing.html +130 -0
- package/dist/library-blocks/hero/startup-landing/startup-landing.webp +0 -0
- package/dist/library-blocks/navbar/creative-agency/creative-agency.html +139 -0
- package/dist/library-blocks/navbar/creative-agency/creative-agency.webp +0 -0
- package/dist/library-blocks/navbar/minimal-portfolio/minimal-portfolio.html +164 -0
- package/dist/library-blocks/navbar/minimal-portfolio/minimal-portfolio.webp +0 -0
- package/dist/library-blocks/navbar/saas-startup/saas-startup.html +129 -0
- package/dist/library-blocks/navbar/saas-startup/saas-startup.webp +0 -0
- package/dist/manage-design-tokens-4Gu6TMKZ.js +446 -0
- package/dist/manage-design-tokens-Do9Kptp3.cjs +1 -0
- package/dist/manage-design-tokens-modal-Btbdgoun.cjs +1 -0
- package/dist/manage-design-tokens-modal-CkyFE8NW.js +161 -0
- package/dist/{mark-as-template-DBLshWb5.js → mark-as-template-Djhnj93U.js} +11 -11
- package/dist/{mark-as-template-CpWEBJGd.cjs → mark-as-template-QPJ0DqxL.cjs} +1 -1
- package/dist/{nested-path-selector-content-C2sD9dkq.cjs → nested-path-selector-content-BcmSxXxL.cjs} +1 -1
- package/dist/{nested-path-selector-content-6OBJ8LG8.js → nested-path-selector-content-DkPIHcVj.js} +2 -2
- package/dist/{no-language-page-content-CzENgtnu.js → no-language-page-content-DTq-5StU.js} +9 -9
- package/dist/{no-language-page-content-BvPDdccK.cjs → no-language-page-content-ZQz4Kr0-.cjs} +1 -1
- package/dist/{no-language-page-dialog-CbYI2cVg.js → no-language-page-dialog-2rA-YBbC.js} +2 -2
- package/dist/{no-language-page-dialog-CgW4yJBC.cjs → no-language-page-dialog-BsLkwJID.cjs} +1 -1
- package/dist/{page-creator-Cc83uQqw.js → page-creator-Dzpc0_dN.js} +143 -143
- package/dist/page-creator-lcDUpPjh.cjs +1 -0
- package/dist/{page-lock-CT7SmQqp.cjs → page-lock-B2GU-1YM.cjs} +1 -1
- package/dist/{page-lock-BJUkyxdh.js → page-lock-ulFtdOkt.js} +2 -2
- package/dist/{page-locked-dialog-DsEbWRed.js → page-locked-dialog-B9VpkvhN.js} +22 -22
- package/dist/page-locked-dialog-CJ53Z6sQ.cjs +1 -0
- package/dist/page-manager-new-CkoS0B1i.cjs +1 -0
- package/dist/page-manager-new-OoC8W7Yn.js +408 -0
- package/dist/{page-manager-search-and-filter-Bfm0j1gg.cjs → page-manager-search-and-filter-BosoN3wg.cjs} +1 -1
- package/dist/{page-manager-search-and-filter-zq-LfhQ1.js → page-manager-search-and-filter-JfSTGlvp.js} +30 -29
- package/dist/{page-revisions-content-D38G2tJM.js → page-revisions-content-DsFh5itr.js} +133 -122
- package/dist/page-revisions-content-Dtd-t1N3.cjs +1 -0
- package/dist/pages.cjs +1 -1
- package/dist/pages.d.ts +330 -96
- package/dist/pages.js +23 -19
- package/dist/plugin-BSjgGgwo.js +248 -0
- package/dist/plugin-DHpuZZXz.cjs +22 -0
- package/dist/publish-pages-content-C7oS7pkz.cjs +1 -0
- package/dist/{publish-pages-content-CS7f41Ac.js → publish-pages-content-DJc7iu8d.js} +39 -39
- package/dist/{register-chai-top-bar-ESJHs5s-.js → register-chai-top-bar-D6GjnauV.js} +87 -87
- package/dist/register-chai-top-bar-DyW9GPzV.cjs +1 -0
- package/dist/render.cjs +2 -2
- package/dist/render.d.ts +20 -18
- package/dist/render.js +133 -132
- package/dist/{rte-widget-modal-BKNx2wln.cjs → rte-widget-modal-BKQaoxh9.cjs} +1 -1
- package/dist/{rte-widget-modal-D6Zik0Ta.js → rte-widget-modal-BdBYmqgs.js} +10 -10
- package/dist/runtime-client.cjs +1 -0
- package/dist/runtime-client.d.ts +158 -0
- package/dist/runtime-client.js +32 -0
- package/dist/runtime.cjs +11 -1
- package/dist/runtime.d.ts +153 -270
- package/dist/runtime.js +107 -71
- package/dist/{save-to-lib-WwOzbgiF.js → save-to-lib-5nwSdZ9R.js} +153 -147
- package/dist/save-to-lib-D0WdH4lq.cjs +1 -0
- package/dist/sdk.css +1 -1
- package/dist/{selected-block-display-B1SG_UXw.js → selected-block-display-D8ROZHHv.js} +12 -12
- package/dist/{selected-block-display-BOgnQRLF.cjs → selected-block-display-DjYeUPdU.cjs} +1 -1
- package/dist/{seo-panel-BkOgRoWd.js → seo-panel-BbyRNAEo.js} +27 -27
- package/dist/seo-panel-DRjSxmk5.cjs +2 -0
- package/dist/shared-json-ld-BbNLdzCO.cjs +1 -0
- package/dist/{shared-json-ld-uka9TOgA.js → shared-json-ld-EPbpTI9V.js} +88 -88
- package/dist/{slug-input-Cyd6NR6J.cjs → slug-input-CIzxXknM.cjs} +1 -1
- package/dist/{slug-input-DHLmUNrH.js → slug-input-DSbJecNr.js} +8 -8
- package/dist/supabase-actions.cjs +1 -1
- package/dist/supabase-actions.d.ts +45 -0
- package/dist/supabase-actions.js +380 -275
- package/dist/{take-over-request-Ca0X-qyf.js → take-over-request-BOGDk0H4.js} +13 -13
- package/dist/take-over-request-BXntCMdj.cjs +1 -0
- package/dist/{translation-warning-modal-pSZVKcNW.cjs → translation-warning-modal-DhJaOyLo.cjs} +1 -1
- package/dist/{translation-warning-modal-DrpFeI83.js → translation-warning-modal-reVr0L9e.js} +9 -9
- package/dist/types.cjs +1 -0
- package/dist/types.d.ts +756 -0
- package/dist/types.js +1 -0
- package/dist/{unmark-as-template-BMqgelv-.js → unmark-as-template-BM85Y7WK.js} +11 -11
- package/dist/{unmark-as-template-DF1Ms4VN.cjs → unmark-as-template-DOPyeU7R.cjs} +1 -1
- package/dist/unpublish-page-DHfds-1-.js +28 -0
- package/dist/{unpublish-page-Bsq2yEqQ.cjs → unpublish-page-Dz028Bzp.cjs} +1 -1
- package/dist/unpublished-partials-modal-BO5ZZdTw.js +52 -0
- package/dist/unpublished-partials-modal-CMqQa9-m.cjs +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.ts +6 -6
- package/dist/utils.js +2 -2
- package/dist/web-blocks.cjs +1 -1
- package/dist/web-blocks.js +360 -351
- package/dist/{web-preview-kres0aG7.cjs → web-preview-5MzixBt5.cjs} +1 -1
- package/dist/{web-preview-D6h1L2nV.js → web-preview-BNjG8s8A.js} +2 -2
- package/package.json +34 -35
- package/dist/actions-registery-JdxhXhT6.cjs +0 -418
- package/dist/add-new-page-DJLJFLAd.js +0 -31
- package/dist/ai-panel-default-lang-BZl0tPYo.js +0 -341
- package/dist/ai-panel-default-lang-D2zhXvKP.cjs +0 -3
- package/dist/ai-panel-other-lang-Bfjk2CYZ.js +0 -162
- package/dist/ai-panel-other-lang-Y4bEKHoG.cjs +0 -1
- package/dist/apply-binding-BvWfJCSZ.js +0 -841
- package/dist/apply-binding-IsUf6UWJ.cjs +0 -1
- package/dist/code-editor-Bb7JumZy.js +0 -51
- package/dist/code-editor-DQB8lAOk.cjs +0 -1
- package/dist/core-Dr7QYemB.js +0 -56
- package/dist/core-Y0lXLwkq.cjs +0 -1
- package/dist/delete-design-token-BG8yHcS5.cjs +0 -1
- package/dist/delete-design-token-COvR4G1S.js +0 -40
- package/dist/delete-page-CNucxe4P.js +0 -71
- package/dist/delete-page-DAvEjHwF.cjs +0 -1
- package/dist/digital-asset-manager-CB5MRBcW.cjs +0 -1
- package/dist/fonts/GeistMonoVF.woff +0 -0
- package/dist/fonts/GeistVF.woff +0 -0
- package/dist/fonts-B-Xt29pe.cjs +0 -1
- package/dist/fonts-DRly3Wzd.js +0 -78
- package/dist/image-compression-DZ9WMmyn.cjs +0 -1
- package/dist/index-B-rSiAp_.cjs +0 -1
- package/dist/index-C0-pgg_p.cjs +0 -5
- package/dist/index-C99FhuF1.cjs +0 -160
- package/dist/index-Dno42B0a.js +0 -4734
- package/dist/index-Dxfyt4d4.js +0 -39
- package/dist/lang-panel-fDCYm5Jm.cjs +0 -1
- package/dist/manage-design-tokens-BsSZE9Vs.js +0 -241
- package/dist/manage-design-tokens-BvH5KTJX.cjs +0 -1
- package/dist/page-creator-g8GqgcKH.cjs +0 -1
- package/dist/page-locked-dialog-Co5b9XIZ.cjs +0 -1
- package/dist/page-manager-new-5rFP5DyQ.js +0 -395
- package/dist/page-manager-new-BOkJImo2.cjs +0 -1
- package/dist/page-revisions-content-ag-MHBGr.cjs +0 -1
- package/dist/plugin-BGlQf0iy.cjs +0 -22
- package/dist/plugin-C-ht41UZ.js +0 -245
- package/dist/publish-pages-content-BiX-GMLw.cjs +0 -1
- package/dist/register-chai-top-bar-BqwKw4uy.cjs +0 -1
- package/dist/save-to-lib-ffjCZYJ5.cjs +0 -1
- package/dist/seo-panel-FjS1UF_y.cjs +0 -2
- package/dist/shared-json-ld-yJkXjENy.cjs +0 -1
- package/dist/take-over-request-CmpJVe9T.cjs +0 -1
- package/dist/theme-panel-footer-BUXIu252.js +0 -26
- package/dist/theme-panel-footer-CKO9YYwZ.cjs +0 -1
- package/dist/unpublish-page-BJ0Bsvt2.js +0 -28
|
@@ -3,7 +3,7 @@ import * as o from "react";
|
|
|
3
3
|
import { useMemo as i, useState as u } from "react";
|
|
4
4
|
import { useAtom as R } from "jotai";
|
|
5
5
|
import { atomWithStorage as U } from "jotai/utils";
|
|
6
|
-
import { jsx as
|
|
6
|
+
import { jsx as a, jsxs as g } from "react/jsx-runtime";
|
|
7
7
|
import { cva as S } from "class-variance-authority";
|
|
8
8
|
import { clsx as j } from "clsx";
|
|
9
9
|
import { twMerge as H } from "tailwind-merge";
|
|
@@ -13,6 +13,56 @@ import { useTranslation as G } from "react-i18next";
|
|
|
13
13
|
function l(...e) {
|
|
14
14
|
return H(j(e));
|
|
15
15
|
}
|
|
16
|
+
const _ = o.forwardRef(
|
|
17
|
+
({ className: e, type: t, ...r }, s) => /* @__PURE__ */ a(
|
|
18
|
+
"input",
|
|
19
|
+
{
|
|
20
|
+
type: t,
|
|
21
|
+
className: l(
|
|
22
|
+
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
23
|
+
e
|
|
24
|
+
),
|
|
25
|
+
ref: s,
|
|
26
|
+
...r
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
);
|
|
30
|
+
_.displayName = "Input";
|
|
31
|
+
const W = S(
|
|
32
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
33
|
+
{
|
|
34
|
+
variants: {
|
|
35
|
+
variant: {
|
|
36
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
37
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
38
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
39
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
40
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
41
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
42
|
+
},
|
|
43
|
+
size: {
|
|
44
|
+
default: "h-9 px-4 py-2",
|
|
45
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
46
|
+
lg: "h-10 rounded-md px-8",
|
|
47
|
+
icon: "h-9 w-9"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
defaultVariants: {
|
|
51
|
+
variant: "default",
|
|
52
|
+
size: "default"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
), C = o.forwardRef(
|
|
56
|
+
({ className: e, variant: t, size: r, asChild: s = !1, ...n }, h) => /* @__PURE__ */ a(
|
|
57
|
+
s ? $ : "button",
|
|
58
|
+
{
|
|
59
|
+
className: l(W({ variant: t, size: r, className: e })),
|
|
60
|
+
ref: h,
|
|
61
|
+
...n
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
C.displayName = "Button";
|
|
16
66
|
const p = {}, de = (e, t) => {
|
|
17
67
|
p[e] = {
|
|
18
68
|
id: e,
|
|
@@ -36,7 +86,7 @@ const p = {}, de = (e, t) => {
|
|
|
36
86
|
{}
|
|
37
87
|
), y = {}, me = (e, t) => {
|
|
38
88
|
E(y, e) && console.warn(`Add block tab with id ${e} already registered`), N(y, e, { id: e, ...t });
|
|
39
|
-
}, pe = () => i(() => w(y), []), f = {},
|
|
89
|
+
}, pe = () => i(() => w(y), []), f = {}, q = (e, t) => {
|
|
40
90
|
if (f[e])
|
|
41
91
|
throw new Error(`Flag ${e} already exists`);
|
|
42
92
|
f[e] = { key: e, value: !1, ...t };
|
|
@@ -44,21 +94,21 @@ const p = {}, de = (e, t) => {
|
|
|
44
94
|
Object.entries(e).forEach(([t, r]) => {
|
|
45
95
|
if (f[t])
|
|
46
96
|
throw new Error(`Flag ${t} already exists`);
|
|
47
|
-
|
|
97
|
+
q(t, r);
|
|
48
98
|
});
|
|
49
|
-
}, ve = () => f,
|
|
50
|
-
const [t] = R(
|
|
99
|
+
}, ve = () => f, B = U("chai-feature-flags", []), J = (e) => {
|
|
100
|
+
const [t] = R(B);
|
|
51
101
|
return t.includes(e);
|
|
52
102
|
}, be = (e) => {
|
|
53
|
-
const [t, r] = R(
|
|
103
|
+
const [t, r] = R(B);
|
|
54
104
|
return () => {
|
|
55
105
|
t.includes(e) ? r(t.filter((n) => n !== e)) : r([...t, e]);
|
|
56
106
|
};
|
|
57
|
-
}, xe = ({ flagKey: e, children: t }) =>
|
|
107
|
+
}, xe = ({ flagKey: e, children: t }) => J(e) ? t : null;
|
|
58
108
|
let A = {};
|
|
59
|
-
const
|
|
109
|
+
const Ce = (e, t) => {
|
|
60
110
|
A[e] = { ...t, id: e };
|
|
61
|
-
},
|
|
111
|
+
}, ye = (e) => A[e], we = () => w(A), K = S(
|
|
62
112
|
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
|
|
63
113
|
{
|
|
64
114
|
variants: {
|
|
@@ -71,68 +121,18 @@ const ye = (e, t) => {
|
|
|
71
121
|
variant: "default"
|
|
72
122
|
}
|
|
73
123
|
}
|
|
74
|
-
),
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
({ className: e, ...t }, r) => /* @__PURE__ */
|
|
124
|
+
), L = o.forwardRef(({ className: e, variant: t, ...r }, s) => /* @__PURE__ */ a("div", { ref: s, role: "alert", className: l(K({ variant: t }), e), ...r }));
|
|
125
|
+
L.displayName = "Alert";
|
|
126
|
+
const X = o.forwardRef(
|
|
127
|
+
({ className: e, ...t }, r) => /* @__PURE__ */ a("h5", { ref: r, className: l("mb-1 font-medium leading-none tracking-tight", e), ...t })
|
|
78
128
|
);
|
|
79
|
-
|
|
80
|
-
const L = o.forwardRef(
|
|
81
|
-
({ className: e, ...t }, r) => /* @__PURE__ */ s("div", { ref: r, className: l("text-sm [&_p]:leading-relaxed", e), ...t })
|
|
82
|
-
);
|
|
83
|
-
L.displayName = "AlertDescription";
|
|
84
|
-
const X = S(
|
|
85
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
86
|
-
{
|
|
87
|
-
variants: {
|
|
88
|
-
variant: {
|
|
89
|
-
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
90
|
-
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
91
|
-
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
92
|
-
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
93
|
-
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
94
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
95
|
-
},
|
|
96
|
-
size: {
|
|
97
|
-
default: "h-9 px-4 py-2",
|
|
98
|
-
sm: "h-8 rounded-md px-3 text-xs",
|
|
99
|
-
lg: "h-10 rounded-md px-8",
|
|
100
|
-
icon: "h-9 w-9"
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
defaultVariants: {
|
|
104
|
-
variant: "default",
|
|
105
|
-
size: "default"
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
), C = o.forwardRef(
|
|
109
|
-
({ className: e, variant: t, size: r, asChild: a = !1, ...n }, h) => /* @__PURE__ */ s(
|
|
110
|
-
a ? $ : "button",
|
|
111
|
-
{
|
|
112
|
-
className: l(X({ variant: t, size: r, className: e })),
|
|
113
|
-
ref: h,
|
|
114
|
-
...n
|
|
115
|
-
}
|
|
116
|
-
)
|
|
117
|
-
);
|
|
118
|
-
C.displayName = "Button";
|
|
129
|
+
X.displayName = "AlertTitle";
|
|
119
130
|
const I = o.forwardRef(
|
|
120
|
-
({ className: e,
|
|
121
|
-
"input",
|
|
122
|
-
{
|
|
123
|
-
type: t,
|
|
124
|
-
className: l(
|
|
125
|
-
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
126
|
-
e
|
|
127
|
-
),
|
|
128
|
-
ref: a,
|
|
129
|
-
...r
|
|
130
|
-
}
|
|
131
|
-
)
|
|
131
|
+
({ className: e, ...t }, r) => /* @__PURE__ */ a("div", { ref: r, className: l("text-sm [&_p]:leading-relaxed", e), ...t })
|
|
132
132
|
);
|
|
133
|
-
I.displayName = "
|
|
133
|
+
I.displayName = "AlertDescription";
|
|
134
134
|
const Y = ({ close: e, onSelect: t, mode: r = "image" }) => {
|
|
135
|
-
const [
|
|
135
|
+
const [s, n] = u(""), [h, v] = u(!1), [P, b] = u(!1), [F, c] = u(null), D = async (x) => {
|
|
136
136
|
if (!x.trim()) {
|
|
137
137
|
b(!1), c("Please enter a URL");
|
|
138
138
|
return;
|
|
@@ -146,27 +146,27 @@ const Y = ({ close: e, onSelect: t, mode: r = "image" }) => {
|
|
|
146
146
|
}
|
|
147
147
|
}, { t: d } = G();
|
|
148
148
|
return /* @__PURE__ */ g("div", { className: "flex w-96 flex-col gap-4 p-4", children: [
|
|
149
|
-
/* @__PURE__ */
|
|
150
|
-
F && /* @__PURE__ */ g(
|
|
151
|
-
/* @__PURE__ */
|
|
152
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ a("h2", { className: "text-xl font-semibold", children: d(`${r.charAt(0).toUpperCase() + r.slice(1)} Manager`) }),
|
|
150
|
+
F && /* @__PURE__ */ g(L, { variant: "destructive", children: [
|
|
151
|
+
/* @__PURE__ */ a(z, { className: "h-4 w-4" }),
|
|
152
|
+
/* @__PURE__ */ a(I, { children: F })
|
|
153
153
|
] }),
|
|
154
154
|
/* @__PURE__ */ g("div", { className: "flex flex-col gap-4", children: [
|
|
155
|
-
/* @__PURE__ */
|
|
156
|
-
|
|
155
|
+
/* @__PURE__ */ a(
|
|
156
|
+
_,
|
|
157
157
|
{
|
|
158
158
|
placeholder: d(`Enter ${r} URL`),
|
|
159
|
-
value:
|
|
159
|
+
value: s,
|
|
160
160
|
onChange: (x) => n(x.target.value),
|
|
161
|
-
onKeyUp: () => D(
|
|
161
|
+
onKeyUp: () => D(s)
|
|
162
162
|
}
|
|
163
163
|
),
|
|
164
164
|
/* @__PURE__ */ g("div", { className: "flex justify-end gap-2", children: [
|
|
165
|
-
/* @__PURE__ */
|
|
166
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ a(C, { variant: "outline", onClick: e, children: d("Cancel") }),
|
|
166
|
+
/* @__PURE__ */ a(
|
|
167
167
|
C,
|
|
168
168
|
{
|
|
169
|
-
onClick: () => t({ id: "dam-id", url:
|
|
169
|
+
onClick: () => t({ id: "dam-id", url: s, width: 600, height: 400, description: "This is image description" }),
|
|
170
170
|
disabled: !P || h,
|
|
171
171
|
children: d("Insert")
|
|
172
172
|
}
|
|
@@ -193,7 +193,7 @@ const Ne = (e) => {
|
|
|
193
193
|
}, Be = (e) => i(
|
|
194
194
|
() => V(w(m), (t) => t.position === e),
|
|
195
195
|
[e, m]
|
|
196
|
-
), Q = () => /* @__PURE__ */
|
|
196
|
+
), Q = () => /* @__PURE__ */ a("div", {}), O = {
|
|
197
197
|
component: Q
|
|
198
198
|
}, Le = (e) => {
|
|
199
199
|
O.component = e;
|
|
@@ -202,23 +202,23 @@ export {
|
|
|
202
202
|
y as A,
|
|
203
203
|
C as B,
|
|
204
204
|
m as C,
|
|
205
|
-
|
|
205
|
+
L as D,
|
|
206
206
|
l as E,
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
I as F,
|
|
208
|
+
W as G,
|
|
209
209
|
xe as I,
|
|
210
210
|
p as R,
|
|
211
211
|
ue as a,
|
|
212
212
|
ge as b,
|
|
213
213
|
me as c,
|
|
214
214
|
pe as d,
|
|
215
|
-
|
|
215
|
+
q as e,
|
|
216
216
|
he as f,
|
|
217
217
|
ve as g,
|
|
218
|
-
|
|
218
|
+
J as h,
|
|
219
219
|
be as i,
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
Ce as j,
|
|
221
|
+
ye as k,
|
|
222
222
|
we as l,
|
|
223
223
|
Ae as m,
|
|
224
224
|
Te as n,
|
|
@@ -233,5 +233,5 @@ export {
|
|
|
233
233
|
Be as w,
|
|
234
234
|
Le as x,
|
|
235
235
|
Ie as y,
|
|
236
|
-
|
|
236
|
+
_ as z
|
|
237
237
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const i=require("lodash-es"),n=require("react"),B=require("jotai"),P=require("jotai/utils"),a=require("react/jsx-runtime"),L=require("class-variance-authority"),D=require("clsx"),q=require("tailwind-merge"),H=require("@radix-ui/react-slot"),V=require("@radix-ui/react-icons"),U=require("react-i18next");function $(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const u=$(n);function o(...e){return q.twMerge(D.clsx(e))}const y=u.forwardRef(({className:e,type:t,...r},s)=>a.jsx("input",{type:t,className:o("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:s,...r}));y.displayName="Input";const M=L.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),p=u.forwardRef(({className:e,variant:t,size:r,asChild:s=!1,...l},b)=>{const g=s?H.Slot:"button";return a.jsx(g,{className:o(M({variant:t,size:r,className:e})),ref:b,...l})});p.displayName="Button";const d={},z=(e,t)=>{d[e]={id:e,component:t,type:"widget"}},G=(e,t)=>{d[e]={id:e,component:t,type:"field"}},W=(e,t)=>{d[e]={id:e,component:t,type:"template"}},J=e=>Object.values(d).filter(t=>t.type===e).reduce((t,r)=>(t[r.id]=r.component,t),{}),m={},K=(e,t)=>{i.has(m,e)&&console.warn(`Add block tab with id ${e} already registered`),i.set(m,e,{id:e,...t})},X=()=>n.useMemo(()=>i.values(m),[]),v={},_=(e,t)=>{if(v[e])throw new Error(`Flag ${e} already exists`);v[e]={key:e,value:!1,...t}},Y=e=>{Object.entries(e).forEach(([t,r])=>{if(v[t])throw new Error(`Flag ${t} already exists`);_(t,r)})},Q=()=>v,j=P.atomWithStorage("chai-feature-flags",[]),E=e=>{const[t]=B.useAtom(j);return t.includes(e)},Z=e=>{const[t,r]=B.useAtom(j);return()=>{t.includes(e)?r(t.filter(l=>l!==e)):r([...t,e])}},ee=({flagKey:e,children:t})=>E(e)?t:null;let S={};const te=(e,t)=>{S[e]={...t,id:e}},re=e=>S[e],ae=()=>i.values(S),se=L.cva("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),T=u.forwardRef(({className:e,variant:t,...r},s)=>a.jsx("div",{ref:s,role:"alert",className:o(se({variant:t}),e),...r}));T.displayName="Alert";const ne=u.forwardRef(({className:e,...t},r)=>a.jsx("h5",{ref:r,className:o("mb-1 font-medium leading-none tracking-tight",e),...t}));ne.displayName="AlertTitle";const A=u.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:o("text-sm [&_p]:leading-relaxed",e),...t}));A.displayName="AlertDescription";const ie=({close:e,onSelect:t,mode:r="image"})=>{const[s,l]=n.useState(""),[b,g]=n.useState(!1),[k,C]=n.useState(!1),[w,f]=n.useState(null),O=async x=>{if(!x.trim()){C(!1),f("Please enter a URL");return}try{g(!0),f(null),C(!0),f(null)}catch{C(!1),f("Error validating URL")}finally{g(!1)}},{t:h}=U.useTranslation();return a.jsxs("div",{className:"flex w-96 flex-col gap-4 p-4",children:[a.jsx("h2",{className:"text-xl font-semibold",children:h(`${r.charAt(0).toUpperCase()+r.slice(1)} Manager`)}),w&&a.jsxs(T,{variant:"destructive",children:[a.jsx(V.ExclamationTriangleIcon,{className:"h-4 w-4"}),a.jsx(A,{children:w})]}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx(y,{placeholder:h(`Enter ${r} URL`),value:s,onChange:x=>l(x.target.value),onKeyUp:()=>O(s)}),a.jsxs("div",{className:"flex justify-end gap-2",children:[a.jsx(p,{variant:"outline",onClick:e,children:h("Cancel")}),a.jsx(p,{onClick:()=>t({id:"dam-id",url:s,width:600,height:400,description:"This is image description"}),disabled:!k||b,children:h("Insert")})]})]})]})},I={component:ie},oe=e=>{I.component=e},le=()=>n.useMemo(()=>I.component,[]);let N=async e=>e;const ce=e=>{N=e},ue=async e=>await N(e);let F=null;const de=e=>{F=e},ge=()=>n.useMemo(()=>F,[]),fe=()=>{F=null},c={},he=(e,t)=>{i.has(c,e)&&console.warn(`Panel ${e} already registered. Overriding...`),i.set(c,e,{id:e,...t})},pe=e=>n.useMemo(()=>i.filter(i.values(c),t=>t.position===e),[e,c]),me=()=>a.jsx("div",{}),R={component:me},ve=e=>{R.component=e},be=()=>n.useMemo(()=>R.component,[]);exports.ADD_BLOCK_TABS=m;exports.Alert=T;exports.AlertDescription=A;exports.Button=p;exports.CHAI_BUILDER_PANELS=c;exports.IfChaiFeatureFlag=ee;exports.Input=y;exports.RJSF_EXTENSIONS=d;exports.buttonVariants=M;exports.cn=o;exports.getChaiLibrary=re;exports.getPreImportHTML=ue;exports.registerChaiAddBlockTab=K;exports.registerChaiBlockSettingField=G;exports.registerChaiBlockSettingTemplate=W;exports.registerChaiBlockSettingWidget=z;exports.registerChaiFeatureFlag=_;exports.registerChaiFeatureFlags=Y;exports.registerChaiLibrary=te;exports.registerChaiMediaManager=oe;exports.registerChaiPreImportHTMLHook=ce;exports.registerChaiSaveToLibrary=de;exports.registerChaiSidebarPanel=he;exports.registerChaiTopBar=ve;exports.resetSaveToLibrary=fe;exports.useChaiAddBlockTabs=X;exports.useChaiBlockSettingComponents=J;exports.useChaiFeatureFlag=E;exports.useChaiFeatureFlags=Q;exports.useChaiLibraries=ae;exports.useChaiSidebarPanels=pe;exports.useMediaManagerComponent=le;exports.useSaveToLibraryComponent=ge;exports.useToggleChaiFeatureFlag=Z;exports.useTopBarComponent=be;
|
package/dist/render.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("./plugin-DHpuZZXz.cjs"),d=require("./apply-binding-BuwI_Uf5.cjs"),m=require("react/jsx-runtime"),t=require("lodash-es"),g=require("react"),I=require("./core-czmLeR0h.cjs"),F=require("@mhsdesign/jit-browser-tailwindcss"),j=require("@tailwindcss/aspect-ratio"),q=require("@tailwindcss/container-queries"),K=require("@tailwindcss/forms"),M=require("@tailwindcss/typography"),x=require("./get-chai-builder-theme-B5RkBTsB.cjs");async function O(e){const a={pageProps:e.pageProps,block:e.block,lang:e.lang,draft:e.draft,inBuilder:!1},n=await e.dataProvider(a);return t.has(n,"$metadata")&&t.isFunction(e.dataProviderMetadataCallback)&&e.dataProviderMetadataCallback(e.block,n.$metadata),e.children({...t.omit(n,"$metadata")})}const N=()=>m.jsx("div",{}),H=e=>{const{block:a,lang:n,fallbackLang:s,children:i,externalData:l,blocks:o,draft:r,pageProps:c,dataProviderMetadataCallback:f}=e,p=I.getRegisteredChaiBlock(a._type),u=t.get(p,"component",null),k=t.get(e.repeaterData,"index",-1),P=t.get(e.repeaterData,"dataKey",""),B=n===s?"":n??"",y=d.applyBindingToBlockProps(d.applyLanguage(a,B,p),l??{},{index:k,key:P}),h=d.getBlockTagAttributes(a,!1),$=D(o,a._id,d.getBlockRuntimeProps(a._type)),w=t.has(p,"dataProvider")&&t.isFunction(p.dataProvider),C={...y,...h,...$},v={blockProps:{},inBuilder:!1,lang:n||s||"en",draft:r??!1,pageData:l??{},...C};let _=t.get(C,"_show",!0);if(t.isString(_)&&_.startsWith("{{")&&(_=d.resolveBinding(_,l)!=="false"),t.isNull(u)||!_)return null;if(w){const b=t.get(p,"suspenseFallback",N);return m.jsx(g.Suspense,{fallback:g.createElement(b),children:m.jsx(O,{lang:n??"",pageProps:c,block:C,dataProvider:p.dataProvider,...f?{dataProviderMetadataCallback:f}:{},draft:r??!1,children:S=>g.createElement(u,{...v,...S,children:i({_id:a._id,_type:a._type,...t.isArray(y.repeaterItems)?{repeaterItems:d.applyLimit(y.repeaterItems,a),$repeaterItemsKey:y.$repeaterItemsKey,repeaterTotalItems:y.repeaterTotalItems??-1}:{}})})})})}return m.jsx(g.Suspense,{children:g.createElement(u,{...v,children:i({_id:a._id,_type:a._type,...t.isArray(y.repeaterItems)?{repeaterItems:d.applyLimit(y.repeaterItems,a),$repeaterItemsKey:y.$repeaterItemsKey,repeaterTotalItems:y.repeaterTotalItems??-1}:{}})})})},E=e=>{const{blocks:a,parent:n,repeaterData:s,type:i}=e;let l=t.uniqBy(t.filter(a,r=>t.has(r,"_id")&&(t.isEmpty(n)?!r._parent:r._parent===n)),"_id");const o=r=>t.filter(a,c=>c._parent===r).length>0;return(i==="Heading"||i==="Paragraph"||i==="Link"||i==="Span")&&(l=d.adjustSpacingInContentBlocks(l)),t.map(l,(r,c)=>r?g.createElement(H,{...e,key:r._id?`${r._id}-${c}`:`block-${c}`,block:r},({_id:f,_type:p,repeaterItems:u,$repeaterItemsKey:k})=>p==="Repeater"?t.isArray(u)&&u.map((P,B)=>g.createElement(E,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}-${c}-${B}`,repeaterData:{index:B,dataKey:k}})):o(f)?g.createElement(E,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}-${c}`,repeaterData:s,type:r._type}):null):null)},D=(e,a,n)=>t.isEmpty(n)?{}:Object.entries(n).reduce((s,[i,l])=>{const o=[];let r=t.find(e,{_id:a});for(;r;)o.push(r),r=t.find(e,{_id:r._parent});const c=t.find(o,{_type:l.block});return c&&(s[i]=t.get(c,t.get(l,"prop"),null)),s},{});function J(e){if(t.isEmpty(e.lang)&&!t.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");if(t.isEmpty(e.blocks))return null;const a=e.lang??"en",n=e.fallbackLang??a;return m.jsx(E,{...e,lang:a,fallbackLang:n})}async function W(e){const a=await e.dataProvider;return t.has(a,"$metadata")&&t.isFunction(e.dataProviderMetadataCallback)&&e.dataProviderMetadataCallback(e.block,a.$metadata),e.children({...t.omit(a,"$metadata")})}const V=()=>m.jsx("div",{}),U=async e=>{const{block:a,lang:n,fallbackLang:s,children:i,externalData:l,blocks:o,draft:r,pageProps:c,dataProviderMetadataCallback:f,dataProviders:p}=e,u=I.getRegisteredChaiBlock(a._type),k=t.get(u,"component",null),P=t.get(e.repeaterData,"index",-1),B=t.get(e.repeaterData,"dataKey",""),y=n===s?"":n??"en",h=d.applyBindingToBlockProps(d.applyLanguage(a,y,u),l??{},{index:P,key:B}),$=d.getBlockTagAttributes(a,!1),w=D(o,a._id,d.getBlockRuntimeProps(a._type)),C=t.has(u,"dataProvider")&&t.isFunction(u.dataProvider),v={...h,...$,...w},_={blockProps:{},inBuilder:!1,lang:n||s||"en",draft:r??!1,pageData:l??{},...v},b=t.get(v,"_show",!0);if(t.isNull(k)||!b)return null;if(C){const S=t.get(p,a._id,Promise.resolve({})),R=t.get(u,"suspenseFallback",V);return m.jsx(g.Suspense,{fallback:g.createElement(R),children:m.jsx(W,{lang:n??"",pageProps:c,block:v,dataProvider:S,...f?{dataProviderMetadataCallback:f}:{},draft:r??!1,children:A=>g.createElement(k,{..._,...A,children:i({_id:a._id,_type:a._type,...t.isArray(h.repeaterItems)?{repeaterItems:d.applyLimit(h.repeaterItems,a),$repeaterItemsKey:h.$repeaterItemsKey,repeaterTotalItems:h.repeaterTotalItems??-1}:{}})})})})}return g.createElement(k,{..._,children:i({_id:a._id,_type:a._type,...t.isArray(h.repeaterItems)?{repeaterItems:d.applyLimit(h.repeaterItems,a),$repeaterItemsKey:h.$repeaterItemsKey,repeaterTotalItems:h.repeaterTotalItems??-1}:{}})})},T=async e=>{const{blocks:a,parent:n,repeaterData:s,type:i}=e;let l=t.uniqBy(t.filter(a,r=>t.has(r,"_id")&&(t.isEmpty(n)?!r._parent:r._parent===n)),"_id");const o=r=>t.filter(a,c=>c._parent===r).length>0;return(i==="Heading"||i==="Paragraph"||i==="Link")&&(l=d.adjustSpacingInContentBlocks(l)),t.map(l,r=>r?g.createElement(U,{...e,dataProviders:e.dataProviders,key:r._id,block:r},({_id:c,_type:f,repeaterItems:p,$repeaterItemsKey:u})=>f==="Repeater"?t.isArray(p)&&p.map((k,P)=>g.createElement(T,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}-${P}`,repeaterData:{index:P,dataKey:u}})):o(c)?g.createElement(T,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}`,repeaterData:s,type:r._type}):null):null)};async function G(e){if(t.isEmpty(e.lang)&&!t.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");if(t.isEmpty(e.blocks))return null;const a=e.lang??"en",n=e.fallbackLang??a;if(e.dataProviders)return m.jsx(T,{...e,lang:a,fallbackLang:n,dataProviders:e.dataProviders});const i=e.blocks.filter(l=>{const o=I.getRegisteredChaiBlock(l._type);return!!(t.has(o,"dataProvider")&&t.isFunction(o.dataProvider))}).reduce((l,o)=>{const r=I.getRegisteredChaiBlock(o._type);if(!r||!r.dataProvider)return l;const c={pageProps:e.pageProps,block:o,lang:e.lang,draft:e.draft,inBuilder:!1};return l[o._id]=Promise.resolve(r.dataProvider(c)),l},{});return m.jsx(T,{...e,lang:a,fallbackLang:n,dataProviders:i})}function Q(e,a){const n=e.filter(s=>s._type==="GlobalBlock"||s._type==="PartialBlock");for(let s=0;s<n.length;s++){const i=n[s],l=t.get(i,"partialBlockId",t.get(i,"globalBlock",""));if(l==="")continue;let o=t.cloneDeep(t.get(a,l,[]));i._parent&&(o==null?void 0:o.length)>0&&(o=o.map(c=>(t.isEmpty(c._parent)&&(c._parent=i._parent),c)));const r=e.indexOf(i);e.splice(r,1,...o)}return e}const z=e=>{if(!e)return[];try{return JSON.parse(X(e)).filter(n=>!n._type.startsWith("@chai"))}catch{return[{_type:"Paragraph",_id:"error",content:"Invalid JSON. Please check the JSON string."}]}};function X(e){const a=/(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;return e.replace(a,n=>{const s=decodeURIComponent(n),i=s.indexOf("public");return i!==-1?s.substring(i+6):s})}async function Y(e,a=[],n=!1){return await F.createTailwindcss({tailwindConfig:{darkMode:"class",safelist:a,theme:{extend:{...x.getChaiBuilderTheme(),keyframes:{"accordion-down":{from:{height:"0"},to:{height:"var(--radix-accordion-content-height)"}},"accordion-up":{from:{height:"var(--radix-accordion-content-height)"},to:{height:"0"}}},animation:{"accordion-down":"accordion-down 0.2s ease-out","accordion-up":"accordion-up 0.2s ease-out"}}},plugins:[K,M,j,q,x.chaiBuilderPlugin],corePlugins:{preflight:n}}}).generateStylesFromContent(` ${n?"@tailwind base;":""}
|
|
2
2
|
@tailwind components;
|
|
3
|
-
@tailwind utilities;`,e)}const Z=(e,a)=>{const n=JSON.stringify(e).replace(/#styles:([^"]*)/g,(s,i)=>`#styles:${i.replace(
|
|
3
|
+
@tailwind utilities;`,e)}const Z=(e,a)=>{const n=JSON.stringify(e).replace(/#styles:([^"]*)/g,(s,i)=>`#styles:${i.replace(/^,/g," ")}`.replace(/#styles:/g,""));return Y([n],[],a)},ee=async(e,a=!1)=>await Z(e,a);exports.getChaiThemeCssVariables=L.getChaiThemeCssVariables;exports.getThemeFontsCSSImport=L.getThemeFontsCSSImport;exports.getThemeFontsLinkMarkup=L.getThemeFontsLinkMarkup;exports.applyChaiDataBinding=d.applyChaiDataBinding;exports.applyDesignTokens=d.applyDesignTokens;exports.convertHTMLToChaiBlocks=d.getBlocksFromHTML;exports.AsyncRenderChaiBlocks=G;exports.RenderChaiBlocks=J;exports.convertToBlocks=z;exports.getMergedPartialBlocks=Q;exports.getStylesForBlocks=ee;
|
package/dist/render.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { JSX } from 'react/jsx-runtime';
|
|
|
2
2
|
|
|
3
3
|
export declare const applyChaiDataBinding: (block: Record<string, string>, pageExternalData: Record<string, any>) => Record<string, string>;
|
|
4
4
|
|
|
5
|
-
export declare const applyDesignTokens: (blocks: ChaiBlock[], designTokens:
|
|
5
|
+
export declare const applyDesignTokens: (blocks: ChaiBlock[], designTokens: ChaiDesignTokens) => ChaiBlock[];
|
|
6
6
|
|
|
7
7
|
export declare function AsyncRenderChaiBlocks(props: RenderChaiBlocksProps): Promise<JSX.Element | null>;
|
|
8
8
|
|
|
@@ -10,23 +10,31 @@ declare type ChaiBlock<T = Record<string, any>> = {
|
|
|
10
10
|
_id: string;
|
|
11
11
|
_name?: string;
|
|
12
12
|
_parent?: string | null | undefined;
|
|
13
|
-
_type: string;
|
|
14
13
|
_libBlock?: string;
|
|
14
|
+
_type: string;
|
|
15
|
+
partialBlockId?: string;
|
|
15
16
|
} & T;
|
|
16
17
|
|
|
17
|
-
declare
|
|
18
|
+
declare interface ChaiDesignTokens {
|
|
19
|
+
[uniqueId: string]: {
|
|
20
|
+
name: string;
|
|
21
|
+
value: string;
|
|
22
|
+
archived?: boolean;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare type ChaiFontByUrl = {
|
|
18
27
|
family: string;
|
|
19
28
|
url: string;
|
|
20
29
|
fallback: string;
|
|
21
30
|
};
|
|
22
31
|
|
|
23
|
-
declare
|
|
32
|
+
declare type ChaiPageProps<T = Record<string, any>> = {
|
|
24
33
|
slug: string;
|
|
25
34
|
searchParams?: Record<string, string>;
|
|
26
|
-
|
|
27
|
-
}
|
|
35
|
+
} & T;
|
|
28
36
|
|
|
29
|
-
declare type
|
|
37
|
+
declare type ChaiTheme = {
|
|
30
38
|
fontFamily: {
|
|
31
39
|
heading: string;
|
|
32
40
|
body: string;
|
|
@@ -52,7 +60,6 @@ declare type ChaiThemeValues = {
|
|
|
52
60
|
"card-foreground": [HexColor, HexColor];
|
|
53
61
|
popover: [HexColor, HexColor];
|
|
54
62
|
"popover-foreground": [HexColor, HexColor];
|
|
55
|
-
[key: string]: [HexColor, HexColor];
|
|
56
63
|
};
|
|
57
64
|
};
|
|
58
65
|
|
|
@@ -69,14 +76,9 @@ export declare const convertHTMLToChaiBlocks: (html: string) => ChaiBlock[];
|
|
|
69
76
|
*/
|
|
70
77
|
export declare const convertToBlocks: (chaiFormatContent: string) => ChaiBlock[];
|
|
71
78
|
|
|
72
|
-
declare
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
value: string;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export declare const getChaiThemeCssVariables: (chaiTheme: ChaiThemeValues) => string;
|
|
79
|
+
export declare const getChaiThemeCssVariables: ({ theme }: {
|
|
80
|
+
theme: ChaiTheme;
|
|
81
|
+
}) => string;
|
|
80
82
|
|
|
81
83
|
export declare function getMergedPartialBlocks(blocks: ChaiBlock[], partials: Record<string, ChaiBlock[]>): ChaiBlock[];
|
|
82
84
|
|
|
@@ -88,9 +90,9 @@ export declare function getMergedPartialBlocks(blocks: ChaiBlock[], partials: Re
|
|
|
88
90
|
*/
|
|
89
91
|
export declare const getStylesForBlocks: (blocks: ChaiBlock[], includeBaseStyles?: boolean) => Promise<string>;
|
|
90
92
|
|
|
91
|
-
export declare const getThemeFontsCSSImport: (fonts:
|
|
93
|
+
export declare const getThemeFontsCSSImport: (fonts: ChaiFontByUrl[]) => string;
|
|
92
94
|
|
|
93
|
-
export declare const getThemeFontsLinkMarkup: (fonts:
|
|
95
|
+
export declare const getThemeFontsLinkMarkup: (fonts: ChaiFontByUrl[]) => string;
|
|
94
96
|
|
|
95
97
|
declare type HexColor = string;
|
|
96
98
|
|