@toototech/webbuilder-plugins 0.1.0
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/LICENSE +1 -0
- package/README.md +3 -0
- package/dist/basic/cssScope.d.ts +3 -0
- package/dist/basic/index.d.ts +81 -0
- package/dist/basic/injectStyle.d.ts +20 -0
- package/dist/basic/plugin.d.ts +19 -0
- package/dist/basic/publisher.d.ts +4 -0
- package/dist/basic/registries/interactive/accordion/index.d.ts +3 -0
- package/dist/basic/registries/interactive/backButton/index.d.ts +3 -0
- package/dist/basic/registries/interactive/button/index.d.ts +10 -0
- package/dist/basic/registries/interactive/countUp/index.d.ts +9 -0
- package/dist/basic/registries/interactive/customCode/index.d.ts +3 -0
- package/dist/basic/registries/interactive/index.d.ts +2 -0
- package/dist/basic/registries/interactive/inquiryForm/index.d.ts +3 -0
- package/dist/basic/registries/interactive/klaviyoSubscribe/index.d.ts +3 -0
- package/dist/basic/registries/interactive/popup/index.d.ts +5 -0
- package/dist/basic/registries/interactive/salesmartlyChatButton/index.d.ts +10 -0
- package/dist/basic/registries/interactive/search/index.d.ts +10 -0
- package/dist/basic/registries/interactive/socialShare/index.d.ts +33 -0
- package/dist/basic/registries/interactive/tabs/index.d.ts +3 -0
- package/dist/basic/registries/layout/container/index.d.ts +19 -0
- package/dist/basic/registries/layout/divider/index.d.ts +7 -0
- package/dist/basic/registries/layout/grid/index.d.ts +11 -0
- package/dist/basic/registries/layout/index.d.ts +2 -0
- package/dist/basic/registries/layout/layoutBase/index.d.ts +10 -0
- package/dist/basic/registries/layout/section/index.d.ts +3 -0
- package/dist/basic/registries/layout/sectionGridBlock/index.d.ts +3 -0
- package/dist/basic/registries/layout/spacer/index.d.ts +7 -0
- package/dist/basic/registries/media/banner/index.d.ts +11 -0
- package/dist/basic/registries/media/carousel/index.d.ts +6 -0
- package/dist/basic/registries/media/flipbook/index.d.ts +5 -0
- package/dist/basic/registries/media/icon/index.d.ts +3 -0
- package/dist/basic/registries/media/image/index.d.ts +3 -0
- package/dist/basic/registries/media/index.d.ts +2 -0
- package/dist/basic/registries/media/industryTabs/index.d.ts +3 -0
- package/dist/basic/registries/media/marquee/index.d.ts +4 -0
- package/dist/basic/registries/media/ourSolutions/helpers.d.ts +289 -0
- package/dist/basic/registries/media/ourSolutions/index.d.ts +4 -0
- package/dist/basic/registries/media/ourSolutions/script.d.ts +1 -0
- package/dist/basic/registries/media/ourSolutions/style.d.ts +1 -0
- package/dist/basic/registries/media/pdfViewer/index.d.ts +3 -0
- package/dist/basic/registries/media/productCategories/index.d.ts +4 -0
- package/dist/basic/registries/media/tabMediaGallery/index.d.ts +3 -0
- package/dist/basic/registries/media/video/index.d.ts +12 -0
- package/dist/basic/registries/navigation/footer/index.d.ts +10 -0
- package/dist/basic/registries/navigation/index.d.ts +2 -0
- package/dist/basic/registries/navigation/languageSwitcher/index.d.ts +6 -0
- package/dist/basic/registries/navigation/logo/index.d.ts +9 -0
- package/dist/basic/registries/navigation/navbar/constants.d.ts +38 -0
- package/dist/basic/registries/navigation/navbar/factories.d.ts +848 -0
- package/dist/basic/registries/navigation/navbar/helpers.d.ts +12 -0
- package/dist/basic/registries/navigation/navbar/index.d.ts +4 -0
- package/dist/basic/registries/navigation/navbar/registerMegaTypes.d.ts +2 -0
- package/dist/basic/registries/navigation/navbar/registerMenuTypes.d.ts +2 -0
- package/dist/basic/registries/navigation/navbar/registerRootTypes.d.ts +2 -0
- package/dist/basic/registries/navigation/navbar/script.d.ts +1 -0
- package/dist/basic/registries/navigation/navbar/style.d.ts +1 -0
- package/dist/basic/registries/navigation/socialLinks/index.d.ts +3 -0
- package/dist/basic/registries/section/allApplications/index.d.ts +3 -0
- package/dist/basic/registries/section/cardCarouselSection/index.d.ts +3 -0
- package/dist/basic/registries/section/caseSpotlight/index.d.ts +3 -0
- package/dist/basic/registries/section/companyScale/index.d.ts +3 -0
- package/dist/basic/registries/section/customizationGrid/index.d.ts +3 -0
- package/dist/basic/registries/section/factoryMap/index.d.ts +3 -0
- package/dist/basic/registries/section/focaHistoryTimeline/index.d.ts +3 -0
- package/dist/basic/registries/section/historyTimeline/index.d.ts +3 -0
- package/dist/basic/registries/section/homeBannerCarousel/index.d.ts +4 -0
- package/dist/basic/registries/section/hotspotShowcase/index.d.ts +30 -0
- package/dist/basic/registries/section/index.d.ts +2 -0
- package/dist/basic/registries/section/map/index.d.ts +4 -0
- package/dist/basic/registries/section/milestoneCardStrip/index.d.ts +3 -0
- package/dist/basic/registries/section/moreCardCarousel/index.d.ts +3 -0
- package/dist/basic/registries/section/ourAdvantages/index.d.ts +4 -0
- package/dist/basic/registries/section/overviewSplit/index.d.ts +3 -0
- package/dist/basic/registries/section/processTimeline/index.d.ts +3 -0
- package/dist/basic/registries/section/productCardStrip/index.d.ts +3 -0
- package/dist/basic/registries/section/resourceSection/index.d.ts +6 -0
- package/dist/basic/registries/section/responsiveHeroCarousel/index.d.ts +4 -0
- package/dist/basic/registries/section/serviceIconGrid/index.d.ts +4 -0
- package/dist/basic/registries/section/servicesCarousel/index.d.ts +4 -0
- package/dist/basic/registries/section/servicesShowcase/index.d.ts +4 -0
- package/dist/basic/registries/section/servicesThb/index.d.ts +4 -0
- package/dist/basic/registries/section/solutionList/index.d.ts +4 -0
- package/dist/basic/registries/section/staticPinMap/index.d.ts +4 -0
- package/dist/basic/registries/section/statsCards/index.d.ts +3 -0
- package/dist/basic/registries/section/swiperRuntime.d.ts +3 -0
- package/dist/basic/registries/shared/sharedTraits.d.ts +37 -0
- package/dist/basic/registries/types.d.ts +5 -0
- package/dist/basic/registries/typography/heading/index.d.ts +8 -0
- package/dist/basic/registries/typography/index.d.ts +2 -0
- package/dist/basic/registries/typography/textEditor/index.d.ts +6 -0
- package/dist/basic/registryManifest.d.ts +9 -0
- package/dist/basic/styleHelpers.d.ts +29 -0
- package/dist/basic/svgIcon.d.ts +11 -0
- package/dist/basic/traitBridge.d.ts +20 -0
- package/dist/basic/traitFactory.d.ts +106 -0
- package/dist/basic.js +1146 -0
- package/dist/cms/cmsFactory.d.ts +164 -0
- package/dist/cms/dynamicRenderPipeline.d.ts +12 -0
- package/dist/cms/index.d.ts +31 -0
- package/dist/cms/plugin.d.ts +12 -0
- package/dist/cms/publisher.d.ts +7 -0
- package/dist/cms/registries/dynamic/cms/constants.d.ts +16 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/bindings.d.ts +78 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/breadcrumbBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/conditionalBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/datetimeBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/htmlBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/imageBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/linkBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/seoBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/textBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/blocks/tocBlock.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/constants.d.ts +19 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/helpers.d.ts +52 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/registerBlock.d.ts +57 -0
- package/dist/cms/registries/dynamic/cms/dynamicField/styles.d.ts +7 -0
- package/dist/cms/registries/dynamic/cms/media/previewMediaTrait.d.ts +7 -0
- package/dist/cms/registries/dynamic/cms/menu/siteMenuAttrs.d.ts +11 -0
- package/dist/cms/registries/dynamic/cms/menuTree/menuTreeAttrs.d.ts +8 -0
- package/dist/cms/registries/dynamic/cms/post/styles.d.ts +6 -0
- package/dist/cms/registries/dynamic/cms/product/detail.styles.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/product/detailV2.styles.d.ts +1 -0
- package/dist/cms/registries/dynamic/cms/product/previewProductTrait.d.ts +6 -0
- package/dist/cms/registries/dynamic/cms/product/styles.d.ts +6 -0
- package/dist/cms/registries/dynamic/dataProvider.d.ts +45 -0
- package/dist/cms/registries/dynamic/loopGrid/paginationStyles.d.ts +5 -0
- package/dist/cms/registries/dynamic/loopGrid/preview.d.ts +16 -0
- package/dist/cms/registries/dynamic/loopGrid/publisher.d.ts +3 -0
- package/dist/cms/registries/dynamic/loopGrid/types.d.ts +97 -0
- package/dist/cms/registries/navigation/navbarThb/index.d.ts +3 -0
- package/dist/cms/registries/navigation/navbarThb/script.d.ts +1 -0
- package/dist/cms/registries/navigation/navbarThb/style.d.ts +1 -0
- package/dist/cms.js +4535 -0
- package/dist/global-settings/components/FontFamilySelect.vue.d.ts +29 -0
- package/dist/global-settings/components/FontManagerPanel.vue.d.ts +37 -0
- package/dist/global-settings/index.d.ts +8 -0
- package/dist/global-settings/plugin.d.ts +3 -0
- package/dist/global-settings/publisher.d.ts +15 -0
- package/dist/global-settings/runtime/canvasInjection.d.ts +13 -0
- package/dist/global-settings/runtime/panelDraftSave.d.ts +17 -0
- package/dist/global-settings/runtime/settingsSource.d.ts +4 -0
- package/dist/global-settings/useFontManager.d.ts +38 -0
- package/dist/global-settings/useGoogleFonts.d.ts +20 -0
- package/dist/global-settings/vue.d.ts +1 -0
- package/dist/global-settings.js +66 -0
- package/dist/i18n/I18nPanel.vue.d.ts +23 -0
- package/dist/i18n/i18n.d.ts +25 -0
- package/dist/i18n/index.d.ts +7 -0
- package/dist/i18n/languageOrder.d.ts +9 -0
- package/dist/i18n/plugin.d.ts +21 -0
- package/dist/i18n/types.d.ts +101 -0
- package/dist/i18n/useWebBuilderI18n.d.ts +164 -0
- package/dist/i18n/vue.d.ts +1 -0
- package/dist/i18n-BYR3l48y.js +959 -0
- package/dist/i18n.js +929 -0
- package/dist/index-CxJlLwvG.js +35378 -0
- package/dist/index-DWfJ4PBm.js +5724 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +12 -0
- package/dist/layout-template/components/LayoutPanel.vue.d.ts +37 -0
- package/dist/layout-template/components/TemplateRulesPanel.vue.d.ts +41 -0
- package/dist/layout-template/config/layoutSharedResources.d.ts +9 -0
- package/dist/layout-template/config/templateSharedResources.d.ts +28 -0
- package/dist/layout-template/index.d.ts +9 -0
- package/dist/layout-template/plugin.d.ts +13 -0
- package/dist/layout-template/runtime/storageAdapter.d.ts +49 -0
- package/dist/layout-template/utils/layoutProjectData.d.ts +15 -0
- package/dist/layout-template/utils/layoutRulePages.d.ts +19 -0
- package/dist/layout-template/utils/layoutSettings.d.ts +45 -0
- package/dist/layout-template/utils/templateRules.d.ts +52 -0
- package/dist/layout-template/vue.d.ts +2 -0
- package/dist/layout-template.js +435 -0
- package/dist/layoutSettings-D4SYUMri.js +252 -0
- package/dist/plugin-BPA8qlaC.js +40 -0
- package/dist/plugin-C0PrxrIe.js +228 -0
- package/dist/plugin-DQshk1sY.js +361 -0
- package/dist/plugin-DebyCjXx.js +191 -0
- package/dist/plugin-Dr6TOtyH.js +73 -0
- package/dist/publisher/index.d.ts +5 -0
- package/dist/publisher/publisherAssets.d.ts +9 -0
- package/dist/publisher/publisherComponents.d.ts +7 -0
- package/dist/publisher/publisherPlugins.d.ts +12 -0
- package/dist/publisher-C6VWXq8u.js +25 -0
- package/dist/publisher.js +1711 -0
- package/dist/solar-BsElUqfQ.js +29843 -0
- package/dist/style.css +1181 -0
- package/dist/templateSharedResources-D1u7eFIs.js +89 -0
- package/dist/types-DNbok59z.js +2359 -0
- package/dist/useFontManager-CdrLq1eG.js +336 -0
- package/dist/vue.d.ts +3 -0
- package/dist/vue.js +2171 -0
- package/package.json +77 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 产品卡片 class 样式。
|
|
3
|
+
* - 编辑器:通过 GrapesJS model defaults.styles 注入
|
|
4
|
+
* - 发布:由 cmsFactory / ssgRenderer 注入到 <head>
|
|
5
|
+
*/
|
|
6
|
+
export declare const PRODUCT_CARD_CSS = "\n .wb-product-list { position: relative; display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: 20px; row-gap: 72px; align-items: start; }\n .wb-product-list__grid { grid-column: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 20px; row-gap: 72px; align-items: start; min-width: 0; }\n .wb-product-datasheet { grid-column: 2; display: none; min-width: 0; overflow-x: auto; }\n .wb-product-datasheet-page-title { display: none; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-list__grid,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-list__grid { display: none; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet { display: block; }\n\n .wb-product-list[data-list-mode=\"datasheet\"],\n .wb-product-list[data-wb-list-mode=\"datasheet\"] {\n display: block;\n width: min(100%, 1540px);\n margin: 0 auto;\n padding: 0;\n color: #101014;\n font-family: inherit;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-page-title,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-page-title {\n display: block;\n margin: 0 0 24px;\n color: #101014;\n font-size: 56px;\n line-height: 1.05;\n font-weight: 800;\n letter-spacing: 0;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-list__toolbar,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-list__toolbar,\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter-backdrop,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter-backdrop,\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-list-pagination,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-list-pagination,\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-list-loadmore,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-list-loadmore {\n display: none;\n }\n\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter-drawer,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter-drawer {\n position: relative;\n top: auto;\n width: 100%;\n max-height: none;\n margin: 0 0 96px;\n padding: 30px 30px 34px;\n border-radius: 8px;\n background: #f7f7f8;\n box-shadow: none;\n transform: none;\n z-index: 20;\n display: block;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__header,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin: 0 0 20px;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__title,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__title {\n margin: 0;\n color: #101014;\n font-size: 22px;\n line-height: 1.2;\n font-weight: 700;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__close,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__close,\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__footer,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__footer {\n display: none;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__body,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__body {\n position: relative;\n overflow: visible;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__all-products,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__all-products {\n position: absolute;\n top: -48px;\n right: 0;\n width: auto;\n min-height: 28px;\n padding: 0;\n border: none;\n background: transparent;\n color: #2454f4;\n font-size: 0;\n line-height: 1;\n font-weight: 700;\n cursor: pointer;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__all-products::before,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__all-products::before {\n display: none;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__all-products::after,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__all-products::after {\n content: \"Reset All\";\n font-size: 16px;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__groups,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__groups {\n display: grid;\n grid-template-columns: repeat(4, minmax(220px, 1fr));\n gap: 20px 16px;\n align-items: start;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__group,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__group {\n position: relative;\n padding: 0;\n border: none;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control {\n position: relative;\n min-width: 0;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__toggle,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__toggle {\n width: 100%;\n min-height: 62px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 0 22px;\n border: 1px solid #e3e5ea;\n border-radius: 8px;\n background: #fff;\n color: #111318;\n font-size: 17px;\n line-height: 1.2;\n font-weight: 700;\n letter-spacing: 0;\n text-align: left;\n cursor: pointer;\n box-shadow: 0 1px 1px rgba(16, 24, 40, 0.02);\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__toggle,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__toggle,\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__toggle:focus-visible,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__toggle:focus-visible {\n border-color: #2454f4;\n outline: none;\n box-shadow: 0 0 0 2px rgba(36, 84, 244, 0.18);\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__toggle,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__toggle {\n border-radius: 8px 8px 0 0;\n background: #2454f4;\n border-color: #2454f4;\n color: #fff;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__summary-value,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__summary-value {\n color: #2454f4;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__summary-value,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__summary-value {\n color: #fff;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__chevron,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__chevron {\n width: 12px;\n height: 12px;\n border-right: 1.8px solid currentColor;\n border-bottom: 1.8px solid currentColor;\n transform: rotate(45deg);\n flex: 0 0 auto;\n margin-top: -4px;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__chevron,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__chevron {\n transform: rotate(225deg);\n margin-top: 4px;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__panel,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__panel {\n display: none;\n position: absolute;\n left: 0;\n top: 100%;\n width: 100%;\n min-width: 300px;\n padding: 22px;\n border: 1px solid #e2e5ea;\n border-top: 0;\n border-radius: 0 0 8px 8px;\n background: #fff;\n box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);\n z-index: 50;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__panel,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__control.is-open .wb-product-datasheet-filter__panel {\n display: block;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__range-fields,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__range-fields {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n gap: 12px;\n align-items: center;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__range-input,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__range-input {\n position: relative;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__range-input input,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__range-input input {\n width: 100%;\n height: 40px;\n padding: 0 44px 0 12px;\n border: 1px solid #dfe3ea;\n border-radius: 5px;\n background: #fff;\n color: #111318;\n font-size: 16px;\n line-height: 1;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__unit,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__unit {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #9aa0aa;\n font-size: 16px;\n pointer-events: none;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__dash,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__dash {\n color: #101014;\n font-size: 16px;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__actions,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__actions {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n gap: 16px;\n margin-top: 26px;\n padding-top: 20px;\n border-top: 1px solid #edf0f4;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__action,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__action {\n min-height: 46px;\n border: 1px solid #dfe3ea;\n border-radius: 5px;\n background: #fff;\n color: #101014;\n font-size: 16px;\n font-weight: 700;\n cursor: pointer;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__action--primary,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__action--primary {\n border-color: #2454f4;\n background: #2454f4;\n color: #fff;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__options,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__options {\n display: grid;\n gap: 10px;\n max-height: 260px;\n overflow-y: auto;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__option,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__option {\n display: flex;\n align-items: center;\n gap: 9px;\n color: #111318;\n font-size: 15px;\n line-height: 1.35;\n cursor: pointer;\n }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-filter__option input,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-filter__option input {\n width: 16px;\n height: 16px;\n margin: 0;\n accent-color: #2454f4;\n }\n\n .wb-product-datasheet__summary { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0 0 26px; }\n .wb-product-datasheet__title { margin: 0; font-size: 30px; line-height: 1.2; font-weight: 750; color: #101014; }\n .wb-product-datasheet__meta { display: flex; align-items: center; gap: 18px; margin-top: 8px; color: #101014; font-size: 18px; line-height: 1.45; font-weight: 600; }\n .wb-product-datasheet__selected { color: #2454f4; font-weight: 600; }\n .wb-product-datasheet__export { min-width: 154px; min-height: 44px; border: 1px solid #d1d5db; background: #fff; color: #101014; font-size: 16px; font-weight: 700; cursor: pointer; }\n .wb-product-datasheet__export:disabled { cursor: not-allowed; opacity: 0.45; }\n .wb-product-datasheet__table { min-width: 940px; overflow-x: auto; }\n .wb-product-datasheet__header,\n .wb-product-datasheet__row { display: grid; grid-template-columns: 72px minmax(230px, 1.45fr) repeat(var(--wb-datasheet-field-count, 5), minmax(160px, 1fr)); align-items: stretch; }\n .wb-product-datasheet__header { background: #3152ed; color: #fff; font-weight: 800; }\n .wb-product-datasheet__body { max-height: 640px; overflow-y: auto; scrollbar-color: #2b2f38 #e8e8ea; scrollbar-width: thin; }\n .wb-product-datasheet__body::-webkit-scrollbar { width: 6px; }\n .wb-product-datasheet__body::-webkit-scrollbar-track { background: #e8e8ea; }\n .wb-product-datasheet__body::-webkit-scrollbar-thumb { background: #2b2f38; border-radius: 999px; }\n .wb-product-datasheet__row { background: #fff; }\n .wb-product-datasheet__row:nth-child(even) { background: #f6f6f7; }\n .wb-product-datasheet__row.is-selected,\n .wb-product-datasheet__row:has(input:checked) { background: #f2f5ff; }\n .wb-product-datasheet__cell { display: flex; align-items: center; min-height: 62px; padding: 12px 22px; color: #3f3f46; font-size: 18px; line-height: 1.35; white-space: nowrap; }\n .wb-product-datasheet__header .wb-product-datasheet__cell { color: #fff; font-weight: 700; }\n .wb-product-datasheet__checkbox { justify-content: center; padding-inline: 10px; }\n .wb-product-datasheet__checkbox input { width: 18px; height: 18px; margin: 0; accent-color: #2454f4; }\n .wb-product-datasheet__designation-link { color: #2454f4; font-weight: 800; text-decoration: underline; }\n .wb-product-list__toolbar { display: none; }\n .wb-product-list__count { font-size: 15px; line-height: 1.6; color: #121821; }\n .wb-product-list__filter-btn { border: none; background: transparent; padding: 0; display: inline-flex; align-items: center; gap: 10px; color: #121821; font-size: 18px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; }\n .wb-product-list__filter-icon { position: relative; width: 16px; height: 14px; display: inline-block; }\n .wb-product-list__filter-badge { display: none; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: currentColor; color: #fff; font-size: 11px; line-height: 1; }\n .wb-product-list__filter-btn.is-active .wb-product-list__filter-badge { background: #fff; color: #121821; }\n .wb-product-filter-backdrop { display: none; position: fixed; inset: 0; background: rgba(17, 24, 39, 0.38); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.25s ease; z-index: 998; }\n .wb-product-filter-backdrop.is-open { opacity: 1; visibility: visible; pointer-events: auto; }\n .wb-product-filter-drawer { grid-column: 1; grid-row: 1; position: sticky; top: 24px; width: 100%; max-height: calc(100vh - 48px); padding: 0 16px 0 0; background: transparent; transform: none; z-index: 1; display: flex; flex-direction: column; }\n .wb-product-filter-drawer.is-open { transform: none; }\n .wb-product-filter__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 28px; }\n .wb-product-filter__title { margin: 0; font-size: 28px; line-height: 1.15; font-weight: 600; color: #121821; }\n .wb-product-filter__close { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #d1d5db; border-radius: 999px; background: #fff; color: #111827; font-size: 24px; line-height: 1; cursor: pointer; }\n .wb-product-filter__body { flex: 1; min-height: 0; overflow-y: auto; }\n .wb-product-filter__all-products { width: 100%; display: flex; align-items: center; gap: 10px; padding: 0 0 18px; border: none; border-bottom: 1px solid #e5e7eb; background: transparent; color: #121821; font-size: 14px; line-height: 1.5; text-align: left; cursor: pointer; }\n .wb-product-filter__all-products::before { content: \"\"; width: 10px; height: 10px; border: 1px solid #8a949e; box-sizing: border-box; }\n .wb-product-filter__groups { display: flex; flex-direction: column; gap: 0; }\n .wb-product-filter__group { padding: 24px 0; border-bottom: 1px solid #e5e7eb; }\n .wb-product-filter__group:last-child { border-bottom: none; padding-bottom: 0; }\n .wb-product-filter__group-header { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0; border: none; background: transparent; color: #111827; cursor: pointer; }\n .wb-product-filter__group-title { font-size: 14px; line-height: 1.5; font-weight: 600; text-align: left; }\n .wb-product-filter__group-toggle { font-size: 18px; line-height: 1; font-weight: 400; }\n .wb-product-filter__group-options { display: grid; gap: 10px; padding-top: 16px; }\n .wb-product-filter__group.is-collapsed .wb-product-filter__group-options { display: none; }\n .wb-product-filter__option { display: flex; align-items: center; gap: 8px; font-size: 13px; line-height: 1.45; color: #111827; cursor: pointer; }\n .wb-product-filter__option input { width: 12px; height: 12px; margin: 0; cursor: pointer; accent-color: #ffe600; }\n .wb-product-filter__range { display: flex; flex-direction: column; gap: 8px; padding: 2px 0 6px; }\n .wb-product-filter__range-title { font-size: 13px; line-height: 1.45; font-weight: 500; color: #111827; }\n .wb-product-filter__range-fields { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; }\n .wb-product-filter__range-fields input { width: 100%; min-width: 0; height: 34px; padding: 0 9px; border: 1px solid #d8dde6; border-radius: 4px; background: #fff; color: #111827; font-size: 13px; }\n .wb-product-filter__empty { margin: 0; font-size: 14px; line-height: 1.7; color: #6b7280; }\n .wb-product-filter__footer { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding-top: 28px; }\n .wb-product-filter__footer-btn { min-height: 56px; border-radius: 0; border: 1px solid #111827; background: #fff; color: #111827; font-size: 16px; font-weight: 600; letter-spacing: 0.04em; cursor: pointer; text-transform: uppercase; }\n .wb-product-filter__footer-btn--primary { background: #111827; color: #fff; }\n .wb-product-card { position: relative; overflow: hidden; border-radius: 0; background: #fff; min-width: 0; }\n .wb-product-card-img-wrap { overflow: hidden; aspect-ratio: 296 / 360; }\n .wb-product-card-img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 8px; transition: transform 0.3s ease; }\n .wb-product-card:hover .wb-product-card-img { transform: scale(1.05); }\n .wb-product-card-body { padding: 16px 0 0; }\n .wb-product-card-name { font-weight: 500; font-size: 16px; color: #1a1a2e; line-height: 1.35; margin: 0 0 8px; overflow: hidden; text-overflow: ellipsis; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }\n .wb-product-card-link { display: inline; color: inherit; font: inherit; line-height: inherit; text-decoration: none; }\n .wb-product-card-link::after { content: \"\"; position: absolute; inset: 0; z-index: 1; cursor: pointer; }\n .wb-product-list-pagination { grid-column: 2; display: flex; justify-content: center; gap: 8px; padding: 16px 0; }\n .wb-product-list-page-btn,\n .wb-product-list-pagination > a,\n .wb-product-list-pagination > button,\n .wb-product-list-pagination > span { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 14px; color: #333; cursor: pointer; user-select: none; transition: all 0.2s; text-decoration: none; }\n .wb-product-list-page-btn:hover,\n .wb-product-list-pagination > a:hover,\n .wb-product-list-pagination > button:hover { border-color: #264FAA; color: #264FAA; }\n .wb-product-list-page-btn.active,\n .wb-product-list-pagination > a.active,\n .wb-product-list-pagination > button.active,\n .wb-product-list-pagination > span.active { background: #264FAA; border-color: #264FAA; color: #fff; }\n .wb-product-list-loadmore { grid-column: 2; display: flex; justify-content: center; padding: 12px 0 0; }\n .wb-product-list-loadmore__btn { min-width: 168px; min-height: 44px; padding: 0 20px; border: 1px solid #111827; background: #fff; color: #111827; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; }\n .wb-product-list-loadmore__btn:hover { background: #111827; color: #fff; }\n @media (max-width: 1023px) {\n .wb-product-list { grid-template-columns: minmax(0, 1fr); column-gap: 8px; row-gap: 28px; }\n .wb-product-list__grid { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 8px; row-gap: 28px; }\n .wb-product-datasheet { grid-column: 1 / -1; }\n .wb-product-datasheet__summary { align-items: flex-start; flex-direction: column; }\n .wb-product-datasheet__title { font-size: 24px; }\n .wb-product-datasheet__table { min-width: 760px; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-page-title,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-page-title { font-size: 42px; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__groups,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n .wb-product-list__toolbar { grid-column: 1 / -1; display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: 12px; padding-bottom: 4px; border-bottom: none; }\n .wb-product-list__count { display: none; }\n .wb-product-filter-backdrop { display: block; }\n .wb-product-filter-drawer { position: fixed; top: 0; right: 0; bottom: 0; grid-column: auto; grid-row: auto; width: min(440px, 100vw); max-height: none; padding: 28px 22px 24px; background: #fff; transform: translateX(100%); transition: transform 0.28s ease; z-index: 999; }\n .wb-product-filter-drawer.is-open { transform: translateX(0); }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter-drawer,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter-drawer { position: relative; inset: auto; width: 100%; max-height: none; margin: 0 0 72px; padding: 26px 22px 30px; background: #f7f7f8; transform: none; transition: none; z-index: 20; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter-drawer.is-open,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter-drawer.is-open { transform: none; }\n .wb-product-filter__header { margin-bottom: 20px; }\n .wb-product-filter__title { font-size: 30px; }\n .wb-product-filter__close { display: inline-flex; }\n .wb-product-filter__body { padding-top: 16px; border-top: 1px solid #e5e7eb; }\n .wb-product-filter__all-products { padding-bottom: 16px; }\n .wb-product-filter__group { padding: 22px 0; }\n .wb-product-filter__footer { display: grid; }\n .wb-product-list-pagination,\n .wb-product-list-loadmore { grid-column: 1 / -1; }\n }\n @media (max-width: 767px) {\n .wb-product-list { grid-template-columns: minmax(0, 1fr); column-gap: 8px; row-gap: 28px; }\n .wb-product-list__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 8px; row-gap: 28px; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter__groups,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter__groups { grid-template-columns: minmax(0, 1fr); }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-datasheet-page-title,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-datasheet-page-title { font-size: 34px; }\n .wb-product-datasheet__meta { font-size: 15px; flex-wrap: wrap; }\n .wb-product-datasheet__cell { font-size: 15px; min-height: 54px; padding-inline: 16px; }\n .wb-product-list__filter-btn { justify-content: center; }\n .wb-product-filter-drawer { width: 100vw; padding: 22px 18px 20px; }\n .wb-product-list[data-list-mode=\"datasheet\"] .wb-product-filter-drawer,\n .wb-product-list[data-wb-list-mode=\"datasheet\"] .wb-product-filter-drawer { width: 100%; padding: 22px 16px 28px; margin-bottom: 54px; }\n .wb-product-filter__title { font-size: 28px; }\n .wb-product-filter__group { padding-bottom: 22px; }\n .wb-product-filter__group-options { gap: 12px; padding-top: 14px; }\n .wb-product-filter__footer { grid-template-columns: minmax(0, 1fr); }\n .wb-product-filter__footer-btn { min-height: 48px; font-size: 14px; }\n .wb-product-card-body { padding: 10px 0 0; }\n .wb-product-card-name {\n font-size: 15px;\n }\n .wb-product-list-pagination { flex-wrap: wrap; }\n .wb-product-list-page-btn { min-width: 34px; height: 34px; font-size: 13px; }\n }\n @media (max-width: 360px) {\n .wb-product-list__grid { grid-template-columns: minmax(0, 1fr); }\n }\n";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
type LoadPage = (params: any) => Promise<any>;
|
|
2
|
+
type LoadList = (params?: any) => Promise<any>;
|
|
3
|
+
export interface WebBuilderDynamicDataProvider {
|
|
4
|
+
pages: {
|
|
5
|
+
loadList: LoadPage;
|
|
6
|
+
loadDraft: (params: any) => Promise<any>;
|
|
7
|
+
loadHistoryDetail: (id: number) => Promise<any>;
|
|
8
|
+
};
|
|
9
|
+
posts: {
|
|
10
|
+
loadPage: LoadPage;
|
|
11
|
+
loadDetail: (id: number) => Promise<any>;
|
|
12
|
+
};
|
|
13
|
+
postCategories: {
|
|
14
|
+
loadList: LoadList;
|
|
15
|
+
};
|
|
16
|
+
faqCategories: {
|
|
17
|
+
loadList: LoadList;
|
|
18
|
+
};
|
|
19
|
+
faqItems: {
|
|
20
|
+
loadList: LoadList;
|
|
21
|
+
};
|
|
22
|
+
productCategoryContent: {
|
|
23
|
+
loadDetail: (categoryId: number) => Promise<any>;
|
|
24
|
+
};
|
|
25
|
+
media: {
|
|
26
|
+
loadPage: LoadPage;
|
|
27
|
+
};
|
|
28
|
+
mediaCategories: {
|
|
29
|
+
loadList: LoadList;
|
|
30
|
+
};
|
|
31
|
+
products: {
|
|
32
|
+
loadPage: LoadPage;
|
|
33
|
+
loadDetail: (id: number) => Promise<any>;
|
|
34
|
+
loadSimpleList: LoadList;
|
|
35
|
+
};
|
|
36
|
+
productCategories: {
|
|
37
|
+
loadList: LoadList;
|
|
38
|
+
};
|
|
39
|
+
tenant: {
|
|
40
|
+
getEffectiveTenantId: () => string | number | null | undefined;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export declare const getWebBuilderDynamicDataProvider: () => WebBuilderDynamicDataProvider;
|
|
44
|
+
export declare const setWebBuilderDynamicDataProvider: (provider: WebBuilderDynamicDataProvider) => (() => void);
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const LOOP_GRID_PAGINATION_CSS = "\n.wb-loop-grid-pagination{grid-column:1/-1;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;padding:28px 0 4px;}\n.wb-loop-grid-pagination>a,.wb-loop-grid-pagination>button,.wb-loop-grid-pagination>span{display:inline-flex;align-items:center;justify-content:center;width:22px;min-width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:#1b2a33;font-size:14px;font-weight:400;line-height:1;text-decoration:none;box-sizing:border-box;box-shadow:none;}\n.wb-loop-grid-pagination svg{display:block;width:18px;height:18px;}\n.wb-loop-grid-pagination>a,.wb-loop-grid-pagination>button{cursor:pointer;}\n.wb-loop-grid-pagination>a:hover,.wb-loop-grid-pagination>button:hover{color:#2847f3;background:transparent;}\n.wb-loop-grid-pagination>a.active,.wb-loop-grid-pagination>button.active,.wb-loop-grid-pagination>span.active,.wb-loop-grid-pagination>a.is-active,.wb-loop-grid-pagination>button.is-active,.wb-loop-grid-pagination>span.is-active{background:#2847f3;color:#fff;font-weight:500;}\n";
|
|
2
|
+
export declare const LOOP_GRID_PAGINATION_STYLE = "\n <style data-wb-loop-grid-pagination-style>\n \n.wb-loop-grid-pagination{grid-column:1/-1;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;padding:28px 0 4px;}\n.wb-loop-grid-pagination>a,.wb-loop-grid-pagination>button,.wb-loop-grid-pagination>span{display:inline-flex;align-items:center;justify-content:center;width:22px;min-width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:#1b2a33;font-size:14px;font-weight:400;line-height:1;text-decoration:none;box-sizing:border-box;box-shadow:none;}\n.wb-loop-grid-pagination svg{display:block;width:18px;height:18px;}\n.wb-loop-grid-pagination>a,.wb-loop-grid-pagination>button{cursor:pointer;}\n.wb-loop-grid-pagination>a:hover,.wb-loop-grid-pagination>button:hover{color:#2847f3;background:transparent;}\n.wb-loop-grid-pagination>a.active,.wb-loop-grid-pagination>button.active,.wb-loop-grid-pagination>span.active,.wb-loop-grid-pagination>a.is-active,.wb-loop-grid-pagination>button.is-active,.wb-loop-grid-pagination>span.is-active{background:#2847f3;color:#fff;font-weight:500;}\n\n </style>\n";
|
|
3
|
+
export declare const LOOP_GRID_PREV_ICON = "<svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>";
|
|
4
|
+
export declare const LOOP_GRID_NEXT_ICON = "<svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>";
|
|
5
|
+
export declare const LOOP_GRID_PAGINATION_SCRIPT: string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type FilterState, type LoopGridComponentSchema, type LoopGridRecord } from './types.js';
|
|
2
|
+
export interface LoopGridPreviewTemplate {
|
|
3
|
+
html: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
css?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LoopGridPreviewData {
|
|
8
|
+
items: LoopGridRecord[];
|
|
9
|
+
pageNo?: number;
|
|
10
|
+
total?: number;
|
|
11
|
+
totalPages?: number;
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function renderLoopGridPreview(schemaInput: LoopGridComponentSchema, itemTemplate?: LoopGridPreviewTemplate | null, previewData?: LoopGridPreviewData | null): string;
|
|
16
|
+
export declare function mergeFilterState(currentFilterState: FilterState, incomingFilterState?: Partial<FilterState>): FilterState;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export type LoopGridSourceType = 'posts' | 'products' | 'media' | 'context';
|
|
2
|
+
export type LoopGridQueryMode = 'manual';
|
|
3
|
+
export type LoopGridOrderBy = 'date' | 'title' | 'menuOrder' | 'price' | 'popularity' | 'rand' | 'custom';
|
|
4
|
+
export type LoopGridOrder = 'asc' | 'desc';
|
|
5
|
+
export type LoopGridPaginationMode = 'none' | 'numbers';
|
|
6
|
+
export interface QueryConfig {
|
|
7
|
+
sourceType: LoopGridSourceType;
|
|
8
|
+
queryMode: LoopGridQueryMode;
|
|
9
|
+
category: string[];
|
|
10
|
+
contextCollection?: string;
|
|
11
|
+
orderBy: LoopGridOrderBy;
|
|
12
|
+
order: LoopGridOrder;
|
|
13
|
+
}
|
|
14
|
+
export interface LayoutConfig {
|
|
15
|
+
columns: number;
|
|
16
|
+
itemsPerPage: number;
|
|
17
|
+
columnGap: number;
|
|
18
|
+
rowGap: number;
|
|
19
|
+
loopCarousel?: boolean;
|
|
20
|
+
carouselItemWidth?: number;
|
|
21
|
+
carouselArrowPosition?: number;
|
|
22
|
+
horizontalScroll?: boolean;
|
|
23
|
+
scrollItemWidth?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface ResponsiveLayoutConfig {
|
|
26
|
+
columns?: number;
|
|
27
|
+
columnGap?: number;
|
|
28
|
+
rowGap?: number;
|
|
29
|
+
mediaQuery?: string;
|
|
30
|
+
horizontalScroll?: boolean;
|
|
31
|
+
scrollItemWidth?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface PaginationConfig {
|
|
34
|
+
mode: LoopGridPaginationMode;
|
|
35
|
+
pageLimit: number;
|
|
36
|
+
}
|
|
37
|
+
export interface FilterState {
|
|
38
|
+
taxonomy: string[];
|
|
39
|
+
tag: string[];
|
|
40
|
+
category: string[];
|
|
41
|
+
author: string[];
|
|
42
|
+
search?: string;
|
|
43
|
+
currentPage: number;
|
|
44
|
+
extras?: Record<string, unknown>;
|
|
45
|
+
}
|
|
46
|
+
export interface LoopGridComponentSchema {
|
|
47
|
+
type: 'loop-grid';
|
|
48
|
+
version: 1;
|
|
49
|
+
gridId: string;
|
|
50
|
+
filterKey: string;
|
|
51
|
+
itemTemplateId: string;
|
|
52
|
+
loopItemType: string;
|
|
53
|
+
loopItemTemplateResourceId: string;
|
|
54
|
+
emptyTemplateId?: string;
|
|
55
|
+
providerKey: string;
|
|
56
|
+
query: QueryConfig;
|
|
57
|
+
layout: LayoutConfig;
|
|
58
|
+
responsiveLayout?: Record<string, ResponsiveLayoutConfig>;
|
|
59
|
+
pagination: PaginationConfig;
|
|
60
|
+
emptyState: {
|
|
61
|
+
nothingFoundText: string;
|
|
62
|
+
};
|
|
63
|
+
filterState: FilterState;
|
|
64
|
+
advanced: {
|
|
65
|
+
hostRenderMode: 'mock' | 'ssr' | 'client';
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export interface LoopGridTemplateDefinition {
|
|
69
|
+
id: string;
|
|
70
|
+
label: string;
|
|
71
|
+
kind: 'item' | 'empty';
|
|
72
|
+
accentColor?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface LoopGridRecord {
|
|
75
|
+
id: string;
|
|
76
|
+
type: LoopGridSourceType;
|
|
77
|
+
fields?: Record<string, unknown>;
|
|
78
|
+
title: string;
|
|
79
|
+
subtitle?: string;
|
|
80
|
+
excerpt?: string;
|
|
81
|
+
taxonomy?: string;
|
|
82
|
+
image?: string;
|
|
83
|
+
meta?: string;
|
|
84
|
+
price?: string;
|
|
85
|
+
badge?: string;
|
|
86
|
+
href?: string;
|
|
87
|
+
}
|
|
88
|
+
export declare const LOOP_GRID_SCHEMA_VERSION = 1;
|
|
89
|
+
export declare const DEFAULT_LOOP_GRID_SCHEMA: LoopGridComponentSchema;
|
|
90
|
+
export declare function parseCsvList(value: unknown): string[];
|
|
91
|
+
export declare function serializeCsvList(items: string[]): string;
|
|
92
|
+
export declare function parseNumber(value: unknown, fallback: number, options?: {
|
|
93
|
+
min?: number;
|
|
94
|
+
max?: number;
|
|
95
|
+
}): number;
|
|
96
|
+
export declare function encodeLoopGridSchema(schema: LoopGridComponentSchema): string;
|
|
97
|
+
export declare function createLoopGridId(seed?: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const navbarThbScript: (this: HTMLElement) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NAVBAR_THB_STYLES = "\n /* \u2500\u2500 CSS Variables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header {\n --primary-blue: #3C53E8;\n --dark-blue: #080E2B;\n --text-dark: #0C1029;\n --text-gray: #666;\n --transition: 0.2s ease-in-out;\n --header-height: 64px;\n --thb-mobile-header-height: 60px;\n --thb-header-bg: transparent;\n --thb-header-scroll-bg: #fff;\n --thb-header-link-color: var(--text-dark);\n --thb-header-scroll-link-color: var(--text-dark);\n --thb-logo-height: 36px;\n --thb-mobile-logo-height: 32px;\n --thb-gutter: 40px;\n --thb-mobile-gutter: 20px;\n --thb-nav-gap: 40px;\n --dropdown-menu-offset: 8px;\n --megamenu-offset: 8px;\n --dropdown-menu-radius: 8px;\n --megamenu-radius: 8px;\n }\n\n /* \u2500\u2500 Page Width Grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header .page-width {\n --content-max: 1240px;\n --gutter: var(--thb-gutter);\n display: grid;\n grid-template-columns:\n minmax(var(--gutter), 1fr)\n minmax(0, var(--content-max))\n minmax(var(--gutter), 1fr);\n }\n .site-header .page-width > * {\n grid-column: 2;\n }\n\n /* \u2500\u2500 Links \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header a {\n text-decoration: none;\n }\n .site-header input {\n min-width: 0;\n }\n\n /* \u2500\u2500 Logo \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__logo {\n display: flex;\n align-items: center;\n gap: 2px;\n }\n .site-header__logo a {\n display: flex;\n align-items: center;\n }\n .site-header__logo img {\n height: var(--thb-logo-height);\n width: auto;\n display: block;\n }\n\n /* \u2500\u2500 Header Base \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header {\n background: var(--thb-header-scroll-bg);\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n transition: background var(--transition), box-shadow var(--transition);\n }\n .site-header--fixed-transparent {\n background: var(--thb-header-bg);\n position: fixed;\n }\n .site-header--sticky {\n background: var(--thb-header-scroll-bg);\n position: sticky;\n }\n .site-header--scrolled {\n background: var(--thb-header-scroll-bg);\n box-shadow: 0 0 0 1px rgba(2, 5, 27, 0.09);\n }\n\n /* \u2500\u2500 Primary Nav \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__nav {\n display: flex;\n height: var(--header-height);\n align-items: center;\n justify-content: space-between;\n gap: 24px;\n }\n .site-header__nav-list {\n display: flex;\n gap: var(--thb-nav-gap);\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .site-header__nav-list.wb-menu-tree {\n width: auto;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-nav {\n width: auto;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list {\n display: flex;\n flex-direction: row;\n gap: var(--thb-nav-gap);\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-item {\n position: relative;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu {\n position: absolute;\n left: 50%;\n top: 100%;\n transform: translate(-50%, 8px);\n min-width: 200px;\n background: #fff;\n border-radius: var(--megamenu-radius);\n padding: 10px;\n box-shadow: 0 8px 30px rgba(12, 16, 41, 0.08);\n display: grid;\n gap: 4px;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity var(--transition), visibility var(--transition), transform var(--transition);\n z-index: 1200;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item:hover > .wb-menu-tree-submenu,\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item:focus-within > .wb-menu-tree-submenu {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translate(-50%, 0);\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) {\n width: 790px;\n min-width: 0;\n padding: 20px;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 28px;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item:first-child {\n grid-column: span 2;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item:first-child > .wb-menu-tree-submenu {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n column-gap: 28px;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-submenu .wb-menu-tree-submenu {\n position: static;\n display: grid;\n gap: 4px;\n margin-top: 12px;\n padding: 0;\n background: transparent;\n box-shadow: none;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-link {\n font-size: 14px;\n display: block;\n line-height: var(--header-height);\n color: var(--thb-header-link-color);\n font-weight: 400;\n transition: color var(--transition);\n white-space: nowrap;\n text-decoration: none;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-submenu .wb-menu-tree-link {\n line-height: 1.2;\n padding: 10px;\n border-radius: 6px;\n color: #1d1d1d;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-submenu .wb-menu-tree-link:hover {\n background: #F3F3F3;\n color: #1d1d1d;\n opacity: 1;\n }\n .site-header--scrolled .site-header__nav-list.wb-menu-tree .wb-menu-tree-link {\n color: var(--thb-header-scroll-link-color);\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-link:hover {\n color: var(--thb-header-link-color);\n opacity: 0.82;\n }\n .site-header--scrolled .site-header__nav-list.wb-menu-tree .wb-menu-tree-link:hover {\n color: var(--thb-header-scroll-link-color);\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-icon {\n display: none;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item > .wb-menu-tree-link {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 16px;\n padding-inline: 16px 4px;\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 700;\n line-height: 24px;\n background: transparent;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item > .wb-menu-tree-link::after {\n content: '\u203A';\n margin-left: auto;\n color: #666;\n font-size: 28px;\n line-height: 1;\n font-weight: 300;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item > .wb-menu-tree-link .wb-menu-tree-text {\n \n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item > .wb-menu-tree-link .wb-menu-tree-icon {\n order: 3;\n display: block;\n width: 100%;\n height: auto;\n max-height: 448px;\n aspect-ratio: 1 / 1;\n object-fit: contain;\n padding: 28px;\n margin-top: 18px;\n background: #F3F3F3;\n border-radius: 10px;\n }\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item > .wb-menu-tree-link .wb-menu-tree-icon[src=''],\n .site-header__nav-list.wb-menu-tree .wb-menu-tree-list > .wb-menu-tree-item > .wb-menu-tree-submenu:has(.wb-menu-tree-submenu) > .wb-menu-tree-item > .wb-menu-tree-link .wb-menu-tree-icon:not([src]) {\n display: none;\n }\n .site-header__nav-item--has-dropdown {\n position: relative;\n }\n .site-header__nav-link {\n font-size: 14px;\n display: block;\n line-height: var(--header-height);\n color: var(--thb-header-link-color);\n font-weight: 400;\n transition: color var(--transition);\n white-space: nowrap;\n }\n .site-header--scrolled .site-header__nav-link {\n color: var(--thb-header-scroll-link-color);\n }\n .site-header__nav-link:hover {\n color: var(--thb-header-link-color);\n opacity: 0.82;\n }\n .site-header--scrolled .site-header__nav-link:hover {\n color: var(--thb-header-scroll-link-color);\n }\n .site-header--menu-left .site-header__nav-list {\n margin-right: auto;\n }\n .site-header--menu-right .site-header__nav-list {\n margin-left: auto;\n }\n .site-header__nav-link--active {\n color: var(--thb-header-link-color);\n font-weight: 600;\n }\n .site-header--scrolled .site-header__nav-link--active {\n color: var(--thb-header-scroll-link-color);\n }\n\n /* \u2500\u2500 Dropdown Wrap \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__dropdown-wrap {\n position: absolute;\n left: 50%;\n top: 100%;\n transform: translate(-50%, 8px);\n padding-top: var(--dropdown-menu-offset);\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity var(--transition), visibility var(--transition), transform var(--transition);\n z-index: 1200;\n }\n .site-header__nav-item--has-dropdown:hover > .site-header__dropdown-wrap,\n .site-header__nav-item--has-dropdown:focus-within > .site-header__dropdown-wrap {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translate(-50%, 0);\n }\n\n /* \u2500\u2500 Dropdown \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__dropdown {\n min-width: 200px;\n background: #fff;\n border-radius: var(--megamenu-radius);\n padding: 10px;\n box-shadow: 0 8px 30px rgba(12, 16, 41, 0.08);\n display: grid;\n gap: 4px;\n }\n .site-header__dropdown--right {\n min-width: 180px;\n }\n .site-header__dropdown-link {\n display: block;\n white-space: nowrap;\n padding: 10px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 400;\n color: #1d1d1d;\n line-height: 1.2;\n transition: background var(--transition), color var(--transition);\n }\n .site-header__dropdown-link--active,\n .site-header__dropdown-link:hover {\n background: #F3F3F3;\n }\n\n /* \u2500\u2500 Mega Menu \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__dropdown--mega {\n width: 790px;\n min-width: 0;\n padding: 0;\n }\n .site-header__mega {\n display: grid;\n align-items: stretch;\n gap: 28px;\n padding: 20px;\n grid-template-columns: minmax(0, 1.15fr) 240px;\n }\n .site-header__mega-col {\n flex: 1 1 0;\n min-width: 0;\n }\n .site-header__mega-col--right {\n padding-left: 0;\n }\n .site-header__mega-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 16px;\n font-weight: 700;\n color: #1d1d1d;\n line-height: 24px;\n margin-bottom: 32px;\n padding-inline: 16px 4px;\n }\n .site-header__mega-head--empty {\n height: 24px;\n margin-bottom: 32px;\n }\n .site-header__mega-head i {\n font-size: 30px;\n color: #1d1d1d;\n opacity: 0.75;\n font-weight: normal;\n font-style: normal;\n }\n .site-header__mega-list {\n display: grid;\n row-gap: 10px;\n }\n .site-header__mega-list--split {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n column-gap: 16px;\n }\n .site-header__mega-item {\n display: block;\n padding: 10px;\n border-radius: 4px;\n font-size: 14px;\n font-weight: normal;\n color: #222222;\n line-height: 1.32;\n transition: background var(--transition), color var(--transition);\n }\n .site-header__mega-item--active,\n .site-header__mega-item:hover {\n background: #F3F3F3;\n color: #1d1d1d;\n }\n .site-header__mega-media {\n border-radius: 6px;\n background: #F3F4F6;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n aspect-ratio: 1 / 1;\n min-height: 0;\n padding: 0;\n margin-inline: 16px 0;\n }\n .site-header__mega-media img {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: contain;\n }\n\n /* \u2500\u2500 Actions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__actions {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-shrink: 0;\n }\n .site-header__search {\n background: #fff;\n border-radius: 20px;\n padding: 0 14px;\n display: flex;\n align-items: center;\n width: 160px;\n height: 36px;\n box-shadow: 0 0 0 1px #CDCDCD inset;\n gap: 8px;\n color: #999;\n transition: all var(--transition);\n }\n .site-header__search:has(:focus-within) {\n box-shadow: 0 0 0 1px var(--primary-blue) inset;\n }\n .site-header__search svg {\n flex: 0 0 auto;\n }\n .site-header__search input {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n font-family: inherit;\n color: var(--text-dark);\n }\n\n /* \u2500\u2500 CTA Button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header .btn--consult {\n background: var(--primary-blue);\n color: #fff;\n border-radius: 999px;\n font-size: 14px;\n height: 36px;\n padding: 0 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n transition: background var(--transition), transform var(--transition);\n font-family: inherit;\n font-weight: 500;\n cursor: pointer;\n border: none;\n text-decoration: none;\n }\n .site-header .btn--consult:hover {\n background: #2a3fc9;\n }\n\n /* \u2500\u2500 Hamburger \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__hamburger {\n display: none;\n flex-direction: column;\n gap: 3px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n }\n .site-header__hamburger span {\n display: block;\n width: 17px;\n height: 3px;\n transform: scaleY(0.5);\n background: var(--thb-header-link-color);\n border-radius: 2px;\n transition: all var(--transition);\n transform-origin: center;\n }\n .site-header--scrolled .site-header__hamburger span {\n background: var(--thb-header-scroll-link-color);\n }\n .site-header__hamburger--open span:nth-child(1) {\n transform: translateY(6px) rotate(45deg) scaleY(0.5);\n }\n .site-header__hamburger--open span:nth-child(2) {\n opacity: 0;\n }\n .site-header__hamburger--open span:nth-child(3) {\n transform: translateY(-6px) rotate(-45deg) scaleY(0.5);\n }\n\n /* \u2500\u2500 Mobile Search Trigger \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header__mobile-search {\n display: none;\n }\n\n /* \u2500\u2500 Site Search Overlay (mobile only) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header .site-search {\n display: none;\n }\n\n /* \u2500\u2500 Mobile Nav (hidden by default) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header .nav-mobile {\n display: none;\n }\n .site-header .nav-mobile--open {\n display: flex;\n }\n\n /* \u2500\u2500 Tablet (\u2264 1024px) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n @media (max-width: 1024px) {\n .site-header .page-width {\n --gutter: min(28px, var(--thb-gutter));\n }\n .site-header__nav-list {\n gap: 24px;\n }\n }\n\n /* \u2500\u2500 Mobile (\u2264 767px) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n @media (max-width: 767px) {\n .site-header .page-width {\n --gutter: var(--thb-mobile-gutter);\n }\n .site-header {\n z-index: 1500;\n }\n .site-header__nav {\n height: var(--thb-mobile-header-height);\n gap: 12px;\n }\n .site-header__nav-list {\n display: none;\n }\n .site-header__nav-list.wb-menu-tree {\n display: none !important;\n }\n .site-header__search {\n display: none;\n }\n .site-header .btn--consult {\n display: none;\n }\n .site-header__dropdown-wrap {\n display: none;\n }\n .site-header__actions {\n order: 1;\n width: 40px;\n flex: 0 0 40px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 0;\n }\n .site-header__logo {\n order: 2;\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n }\n .site-header__logo img {\n width: auto;\n height: var(--thb-mobile-logo-height);\n }\n .site-header__hamburger {\n display: flex;\n margin: 0;\n }\n .site-header__mobile-search {\n order: 3;\n width: 40px;\n height: 40px;\n flex: 0 0 40px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 0;\n padding: 0;\n background: transparent;\n color: var(--thb-header-link-color);\n cursor: pointer;\n }\n .site-header--scrolled .site-header__mobile-search {\n color: var(--thb-header-scroll-link-color);\n }\n .site-header__mobile-search svg,\n .site-header .nav-mobile__back svg {\n width: 24px;\n height: 24px;\n display: block;\n stroke: currentColor;\n }\n\n /* \u2500\u2500 Mobile Nav \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header .nav-mobile {\n position: fixed;\n top: var(--thb-mobile-header-height);\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1400;\n background: rgba(255, 255, 255, 0.98);\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transform: translateY(-12px);\n transition: opacity 0.26s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.32s;\n will-change: opacity, transform;\n flex-direction: column;\n }\n .site-header .nav-mobile--open {\n display: flex;\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translateY(0);\n transition: opacity 0.26s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;\n }\n .site-header .nav-mobile__content {\n position: relative;\n height: 100%;\n overflow: hidden;\n isolation: isolate;\n }\n .site-header .nav-mobile__panel {\n position: absolute;\n inset: 0;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n display: grid;\n align-content: start;\n gap: 28px;\n padding: 44px 20px 56px;\n background: #fff;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transform: translateX(0);\n transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease, visibility 0s linear 0.34s;\n will-change: transform, opacity;\n }\n .site-header .nav-mobile__panel.is-active {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translateX(0);\n transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease, visibility 0s;\n }\n .site-header .nav-mobile__panel.is-entering-from-right {\n opacity: 0;\n visibility: visible;\n pointer-events: none;\n transform: translateX(44px);\n }\n .site-header .nav-mobile__panel.is-entering-from-left {\n opacity: 0;\n visibility: visible;\n pointer-events: none;\n transform: translateX(-44px);\n }\n .site-header .nav-mobile__panel.is-exiting-to-left {\n opacity: 0;\n visibility: visible;\n pointer-events: none;\n transform: translateX(-36px);\n }\n .site-header .nav-mobile__panel.is-exiting-to-right {\n opacity: 0;\n visibility: visible;\n pointer-events: none;\n transform: translateX(36px);\n }\n .site-header .nav-mobile__heading {\n margin: 0;\n color: #0f172a;\n font-size: 26px;\n line-height: 1.15;\n font-weight: 700;\n }\n .site-header .nav-mobile__heading-row {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .site-header .nav-mobile__back {\n width: 40px;\n height: 40px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 0;\n padding: 0;\n background: transparent;\n color: #111827;\n cursor: pointer;\n }\n .site-header .nav-mobile__list {\n display: grid;\n gap: 8px;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .site-header .nav-mobile__list > li {\n display: flex;\n align-items: stretch;\n gap: 8px;\n }\n .site-header .nav-mobile__link,\n .site-header .nav-mobile__viewall,\n .site-header .nav-mobile__feature-link {\n color: #111827;\n text-decoration: none;\n }\n .site-header .nav-mobile__link {\n flex: 1;\n min-height: 52px;\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 0;\n font-size: 18px;\n line-height: 1.35;\n font-weight: 400;\n }\n .site-header .nav-mobile__expand {\n flex: 0 0 44px;\n min-height: 52px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 0;\n padding: 0;\n background: transparent;\n color: #111827;\n cursor: pointer;\n }\n .site-header .nav-mobile__entry-icon {\n flex: 0 0 auto;\n font-size: 20px;\n line-height: 1;\n transition: transform 0.22s ease;\n }\n .site-header .nav-mobile img,\n .site-header .nav-mobile [data-cms-bind-src] {\n display: none !important;\n }\n .site-header .nav-mobile__expand:hover .nav-mobile__entry-icon,\n .site-header .nav-mobile__expand:focus-visible .nav-mobile__entry-icon {\n transform: rotate(90deg);\n }\n .site-header .nav-mobile__viewall,\n .site-header .nav-mobile__feature-link {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 500;\n }\n .site-header .nav-mobile__feature {\n display: grid;\n gap: 14px;\n }\n .site-header .nav-mobile__feature-card {\n display: block;\n overflow: hidden;\n border-radius: 14px;\n background: #f3f4f6;\n }\n .site-header .nav-mobile__feature-card img {\n width: 100%;\n height: auto;\n display: block;\n }\n\n /* \u2500\u2500 Site Search Overlay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n .site-header .site-search {\n position: fixed;\n inset: 0;\n z-index: 1600;\n display: flex;\n flex-direction: column;\n background: #fff;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transform: translateY(-8px);\n transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0.22s;\n }\n .site-header .site-search--open {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translateY(0);\n transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s;\n }\n .site-header .site-search__bar {\n display: flex;\n align-items: center;\n gap: 8px;\n height: var(--thb-mobile-header-height);\n padding: 0 12px 0 16px;\n border-bottom: 1px solid #e8e8e8;\n background: #fff;\n }\n .site-header .site-search__form {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 40px;\n padding: 0 12px;\n border-radius: 999px;\n background: #f2f3f5;\n }\n .site-header .site-search__icon {\n color: #999;\n font-size: 15px;\n flex: 0 0 auto;\n }\n .site-header .site-search__input {\n flex: 1;\n min-width: 0;\n border: 0;\n outline: 0;\n background: transparent;\n font-size: 15px;\n font-family: inherit;\n color: var(--text-dark);\n padding: 0;\n height: 100%;\n }\n .site-header .site-search__input::placeholder {\n color: #999;\n }\n .site-header .site-search__clear {\n flex: 0 0 auto;\n width: 24px;\n height: 24px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 0;\n padding: 0;\n background: transparent;\n color: #666;\n cursor: pointer;\n }\n .site-header .site-search__clear svg {\n width: 20px;\n height: 20px;\n }\n .site-header .site-search__close {\n flex: 0 0 auto;\n height: 40px;\n padding: 0 6px;\n border: 0;\n background: transparent;\n color: var(--primary-blue);\n font: inherit;\n font-size: 15px;\n cursor: pointer;\n }\n .site-header .site-search__body {\n flex: 1 1 auto;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n padding: 16px 20px 40px;\n }\n }\n";
|