@sociallane/elements 1.0.9 → 1.0.10
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/admin/views/onboarding.php +1 -1
- package/admin/views/partials/step-complete.php +1 -1
- package/admin/views/partials/step-requirements.php +2 -2
- package/admin/views/settings.php +1 -1
- package/admin/views/setup-widget-catalog.php +2 -2
- package/assets/css/tailwind.css +1 -28
- package/elements/button/button.php +13 -9
- package/elements/button/templates/render.php +8 -24
- package/includes/button-presets.php +15 -5
- package/package.json +1 -1
- package/packages/core/assets/css/tailwind.css +1 -28
- package/packages/core/assets/dist/.vite/manifest.json +15 -3
- package/packages/core/assets/dist/animations-BfenTMbz.js +1 -0
- package/packages/core/assets/dist/tailwind-BBMzypmd.css +1 -0
- package/packages/core/assets/dist/vendor-gsap-W43tiS41.js +37 -0
- package/packages/core/assets/dist/vendor-lenis-L8jc5Amd.js +1 -0
- package/packages/core/includes/helpers.php +3 -0
- package/packages/core/package.json +1 -1
- package/packages/core/vite.config.js +25 -5
- package/packages/widgets/bento-grid/data/view.php +8 -8
- package/packages/widgets/bento-grid/templates/partials/tcsr-row1-left.php +1 -1
- package/packages/widgets/bento-grid/templates/partials/two-row-deploys.php +1 -1
- package/packages/widgets/bento-grid/templates/partials/two-row-overview.php +1 -1
- package/packages/widgets/bento-grid/templates/partials/two-row-security.php +1 -1
- package/packages/widgets/bento-grid-4/data/view.php +8 -8
- package/packages/widgets/bento-grid-4/templates/partials/tcsr-row1-left.php +1 -1
- package/packages/widgets/bento-grid-4/templates/partials/two-row-deploys.php +1 -1
- package/packages/widgets/bento-grid-4/templates/partials/two-row-overview.php +1 -1
- package/packages/widgets/bento-grid-4/templates/partials/two-row-security.php +1 -1
- package/packages/widgets/bento-grid-5/data/view.php +8 -8
- package/packages/widgets/bento-grid-5/templates/partials/tcsr-row1-left.php +1 -1
- package/packages/widgets/bento-grid-5/templates/partials/two-row-deploys.php +1 -1
- package/packages/widgets/bento-grid-5/templates/partials/two-row-overview.php +1 -1
- package/packages/widgets/bento-grid-5/templates/partials/two-row-security.php +1 -1
- package/packages/widgets/bento-grid-6/data/view.php +8 -8
- package/packages/widgets/bento-grid-6/templates/partials/tcsr-row1-left.php +1 -1
- package/packages/widgets/bento-grid-6/templates/partials/two-row-deploys.php +1 -1
- package/packages/widgets/bento-grid-6/templates/partials/two-row-overview.php +1 -1
- package/packages/widgets/bento-grid-6/templates/partials/two-row-security.php +1 -1
- package/packages/widgets/bento-portfolio/data/view.php +3 -3
- package/packages/widgets/bento-portfolio/templates/partials/portfolio-card.php +2 -2
- package/packages/widgets/bento-portfolio-4/data/view.php +3 -3
- package/packages/widgets/bento-portfolio-4/templates/partials/portfolio-card.php +2 -2
- package/packages/widgets/bento-portfolio-5/data/view.php +3 -3
- package/packages/widgets/bento-portfolio-5/templates/partials/portfolio-card.php +2 -2
- package/packages/widgets/bento-portfolio-6/data/view.php +3 -3
- package/packages/widgets/bento-portfolio-6/templates/partials/portfolio-card.php +2 -2
- package/packages/widgets/blog-grid/data/view.php +1 -1
- package/packages/widgets/card-hover-reveal/data/view.php +1 -1
- package/packages/widgets/content-block/data/view.php +4 -4
- package/packages/widgets/cta-banner/data/view.php +3 -3
- package/packages/widgets/cta-banner/templates/wrapper.php +2 -2
- package/packages/widgets/cta-split/data/view.php +4 -4
- package/packages/widgets/faq-centered/data/view.php +7 -7
- package/packages/widgets/faq-centered/templates/partials/accordion.php +4 -4
- package/packages/widgets/faq-split/data/view.php +7 -7
- package/packages/widgets/faq-split/templates/partials/accordion.php +4 -4
- package/packages/widgets/faq-stacked/data/view.php +7 -7
- package/packages/widgets/faq-stacked/templates/partials/accordion.php +4 -4
- package/packages/widgets/feature-grid/data/view.php +8 -8
- package/packages/widgets/feature-grid-centered/data/view.php +8 -8
- package/packages/widgets/feature-list/data/view.php +4 -4
- package/packages/widgets/feature-list-cta/data/view.php +6 -6
- package/packages/widgets/feature-list-cta/templates/partials/feature-item.php +1 -1
- package/packages/widgets/footer/data/view.php +4 -4
- package/packages/widgets/footer-brand/data/view.php +15 -15
- package/packages/widgets/footer-links-contact/data/view.php +2 -2
- package/packages/widgets/form-contact/data/view.php +4 -4
- package/packages/widgets/grid-team/data/view.php +4 -4
- package/packages/widgets/grid-team/templates/partials/team-card.php +1 -1
- package/packages/widgets/hero-announcement/data/view.php +1 -1
- package/packages/widgets/hero-centered-image/data/view.php +1 -1
- package/packages/widgets/hero-centered-image/templates/wrapper.php +1 -1
- package/packages/widgets/hero-collage/data/view.php +3 -3
- package/packages/widgets/hero-overlay/data/view.php +1 -1
- package/packages/widgets/hero-overlay-single/data/view.php +1 -1
- package/packages/widgets/hero-overlay-slider/data/view.php +1 -1
- package/packages/widgets/hero-saas-centered/data/view.php +5 -5
- package/packages/widgets/hero-saas-split/data/view.php +5 -5
- package/packages/widgets/hero-saas-stacked/data/view.php +5 -5
- package/packages/widgets/hero-split/data/view.php +3 -3
- package/packages/widgets/hero-stacked-image/templates/wrapper.php +4 -4
- package/packages/widgets/intro-text/data/view.php +3 -3
- package/packages/widgets/logo-grid-centered/data/view.php +4 -4
- package/packages/widgets/logo-grid-row/data/view.php +4 -4
- package/packages/widgets/logo-grid-split/data/view.php +4 -4
- package/packages/widgets/nav-centered/data/view.php +8 -8
- package/packages/widgets/nav-compact/data/view.php +8 -8
- package/packages/widgets/nav-default/data/view.php +8 -8
- package/packages/widgets/nav-floating/data/view.php +8 -8
- package/packages/widgets/nav-minimal/data/view.php +8 -8
- package/packages/widgets/newsletter/data/view.php +5 -5
- package/packages/widgets/newsletter-card/data/view.php +5 -5
- package/packages/widgets/newsletter-section/data/view.php +5 -5
- package/packages/widgets/outreach-dashboard/data/view.php +2 -2
- package/packages/widgets/outreach-dashboard/templates/partials/card-meetings.php +1 -1
- package/packages/widgets/page-hero-center/data/view.php +3 -3
- package/packages/widgets/page-hero-left/data/view.php +3 -3
- package/packages/widgets/pipeline-dashboard/data/view.php +3 -3
- package/packages/widgets/posts-grid/data/view.php +6 -6
- package/packages/widgets/posts-grid/templates/partials/card.php +3 -3
- package/packages/widgets/posts-grid-overlay/data/view.php +6 -6
- package/packages/widgets/posts-grid-overlay/templates/partials/card.php +3 -3
- package/packages/widgets/pricing-table/data/view.php +2 -2
- package/packages/widgets/sales-dashboard/data/view.php +3 -3
- package/packages/widgets/sales-dashboard/templates/partials/card-competitors.php +1 -1
- package/packages/widgets/sales-dashboard/templates/partials/card-feature.php +6 -6
- package/packages/widgets/section-stats/data/view.php +3 -3
- package/packages/widgets/section-stats/templates/partials/stat-card.php +1 -1
- package/packages/widgets/simple-page-hero/data/view.php +3 -3
- package/packages/widgets/social-proof/data/view.php +5 -5
- package/packages/widgets/social-proof/templates/partials/layout-trust.php +2 -2
- package/packages/widgets/social-proof/templates/partials/stat-card.php +1 -1
- package/packages/widgets/social-proof-trust/data/view.php +12 -12
- package/packages/widgets/social-proof-trust/templates/partials/layout-trust.php +2 -2
- package/packages/widgets/social-proof-trust/templates/partials/stat-card.php +1 -1
- package/packages/widgets/testimonials-bento/data/view.php +1 -1
- package/packages/widgets/testimonials-grid/data/view.php +1 -1
- package/packages/widgets/testimonials-masonry/data/view.php +1 -1
- package/packages/widgets/widget-filter/data/view.php +1 -1
- package/packages/widgets/widget-filter/templates/wrapper.php +63 -2
- package/packages/widgets/widget-filter/widget-filter.php +1 -1
- package/vite.config.js +25 -5
- package/widgets/bento-grid/data/view.php +8 -8
- package/widgets/bento-grid/templates/partials/tcsr-row1-left.php +1 -1
- package/widgets/bento-grid/templates/partials/two-row-deploys.php +1 -1
- package/widgets/bento-grid/templates/partials/two-row-overview.php +1 -1
- package/widgets/bento-grid/templates/partials/two-row-security.php +1 -1
- package/widgets/bento-portfolio/data/view.php +3 -3
- package/widgets/bento-portfolio/templates/partials/portfolio-card.php +2 -2
- package/widgets/blog-grid/data/view.php +1 -1
- package/widgets/card-hover-reveal/data/view.php +1 -1
- package/widgets/content-block/data/view.php +4 -4
- package/widgets/cta-banner/data/view.php +3 -3
- package/widgets/cta-banner/templates/wrapper.php +2 -2
- package/widgets/cta-split/data/view.php +4 -4
- package/widgets/faq/data/view.php +7 -7
- package/widgets/faq/templates/partials/accordion.php +4 -4
- package/widgets/feature-grid/data/view.php +8 -8
- package/widgets/feature-list/data/view.php +4 -4
- package/widgets/feature-list-cta/data/view.php +6 -6
- package/widgets/feature-list-cta/templates/partials/feature-item.php +1 -1
- package/widgets/footer/data/view.php +4 -4
- package/widgets/footer-brand/data/view.php +15 -15
- package/widgets/footer-links-contact/data/view.php +2 -2
- package/widgets/form-contact/data/view.php +4 -4
- package/widgets/grid-posts/data/view.php +6 -6
- package/widgets/grid-posts/templates/partials/card.php +3 -3
- package/widgets/grid-team/data/view.php +4 -4
- package/widgets/grid-team/templates/partials/team-card.php +1 -1
- package/widgets/grid-testimonials/data/view.php +1 -1
- package/widgets/hero-announcement/data/view.php +1 -1
- package/widgets/hero-centered-image/data/view.php +1 -1
- package/widgets/hero-centered-image/templates/wrapper.php +1 -1
- package/widgets/hero-collage/data/view.php +3 -3
- package/widgets/hero-overlay/data/view.php +1 -1
- package/widgets/hero-saas/data/view.php +5 -5
- package/widgets/hero-split/data/view.php +3 -3
- package/widgets/hero-stacked-image/templates/wrapper.php +4 -4
- package/widgets/intro-text/data/view.php +2 -2
- package/widgets/logo-grid/data/view.php +4 -4
- package/widgets/newsletter/data/view.php +5 -5
- package/widgets/outreach-dashboard/data/view.php +2 -2
- package/widgets/outreach-dashboard/templates/partials/card-meetings.php +1 -1
- package/widgets/pipeline-dashboard/data/view.php +3 -3
- package/widgets/pricing-table/data/view.php +2 -2
- package/widgets/sales-dashboard/data/view.php +3 -3
- package/widgets/sales-dashboard/templates/partials/card-competitors.php +1 -1
- package/widgets/sales-dashboard/templates/partials/card-feature.php +6 -6
- package/widgets/section-stats/data/view.php +3 -3
- package/widgets/section-stats/templates/partials/stat-card.php +1 -1
- package/widgets/simple-page-hero/data/view.php +3 -3
- package/widgets/social-proof/data/view.php +12 -12
- package/widgets/social-proof/templates/partials/layout-trust.php +2 -2
- package/widgets/social-proof/templates/partials/stat-card.php +1 -1
- package/packages/core/assets/dist/animations-BySooxN8.js +0 -37
- package/packages/core/assets/dist/tailwind-BMzFIA_O.css +0 -1
|
@@ -29,7 +29,7 @@ $cls = $view['classes'];
|
|
|
29
29
|
<div class="lg:max-w-xl">
|
|
30
30
|
<header class="<?php echo $has_heading ? '' : 'sr-only'; ?>" id="<?php echo esc_attr( $section_id ); ?>">
|
|
31
31
|
<?php if ( $view['show_eyebrow'] && $view['eyebrow'] !== '' ) : ?>
|
|
32
|
-
<p class="<?php echo esc_attr( $cls['eyebrow'] ?? '' ); ?> text-sm text-
|
|
32
|
+
<p class="<?php echo esc_attr( $cls['eyebrow'] ?? '' ); ?> text-sm text-neutral-200 font-normal uppercase tracking-wider mb-3">
|
|
33
33
|
<?php echo $view['eyebrow']; ?>
|
|
34
34
|
</p>
|
|
35
35
|
<?php endif; ?>
|
|
@@ -44,7 +44,7 @@ $cls = $view['classes'];
|
|
|
44
44
|
<?php endif; ?>
|
|
45
45
|
|
|
46
46
|
<?php if ( $view['show_description'] && $view['description'] !== '' ) : ?>
|
|
47
|
-
<p class="<?php echo esc_attr( $cls['description'] ?? '' ); ?> mt-4 text-lg md:text-xl text-
|
|
47
|
+
<p class="<?php echo esc_attr( $cls['description'] ?? '' ); ?> mt-4 text-lg md:text-xl text-neutral-200 leading-relaxed">
|
|
48
48
|
<?php echo $view['description']; ?>
|
|
49
49
|
</p>
|
|
50
50
|
<?php endif; ?>
|
|
@@ -19,7 +19,7 @@ $classes = $view['classes'] ?? [];
|
|
|
19
19
|
?>
|
|
20
20
|
<div class="flex flex-col gap-3">
|
|
21
21
|
<?php if ( ! empty( $stat['icon']['value'] ) ) : ?>
|
|
22
|
-
<div class="social-proof-stat-icon <?php echo esc_attr( $classes['icon'] ?? 'text-
|
|
22
|
+
<div class="social-proof-stat-icon <?php echo esc_attr( $classes['icon'] ?? 'text-neutral-600' ); ?> shrink-0 [&_.e-icon]:w-8 [&_.e-icon]:h-8 [&_svg]:fill-current" aria-hidden="true">
|
|
23
23
|
<?php \Elementor\Icons_Manager::render_icon( $stat['icon'], [ 'aria-hidden' => 'true', 'class' => 'w-8 h-8' ] ); ?>
|
|
24
24
|
</div>
|
|
25
25
|
<?php endif; ?>
|
|
@@ -87,7 +87,7 @@ function prepare_testimonials_bento_view( array $settings, string $widget_id ):
|
|
|
87
87
|
|
|
|
88
88
|
*/
|
|
89
89
|
$classes = [
|
|
90
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
90
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
91
91
|
'headline' => 'text-neutral-900 dark:text-white',
|
|
92
92
|
'subtitle' => 'text-neutral-600 dark:text-neutral-300',
|
|
93
93
|
'card' => 'bg-white dark:bg-neutral-800 rounded-xl border border-neutral-200 dark:border-neutral-700',
|
|
@@ -84,7 +84,7 @@ function prepare_testimonials_grid_view( array $settings, string $widget_id ): a
|
|
|
84
84
|
|
|
|
85
85
|
*/
|
|
86
86
|
$classes = [
|
|
87
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
87
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
88
88
|
'headline' => 'text-neutral-900 dark:text-white',
|
|
89
89
|
'subtitle' => 'text-neutral-600 dark:text-neutral-300',
|
|
90
90
|
'card' => 'bg-white dark:bg-neutral-800 rounded-xl border border-neutral-200 dark:border-neutral-700',
|
|
@@ -84,7 +84,7 @@ function prepare_testimonials_masonry_view( array $settings, string $widget_id )
|
|
|
84
84
|
|
|
|
85
85
|
*/
|
|
86
86
|
$classes = [
|
|
87
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
87
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
88
88
|
'headline' => 'text-neutral-900 dark:text-white',
|
|
89
89
|
'subtitle' => 'text-neutral-600 dark:text-neutral-300',
|
|
90
90
|
'card' => 'bg-white dark:bg-neutral-800 rounded-xl border border-neutral-200 dark:border-neutral-700',
|
|
@@ -490,7 +490,7 @@ function prepare_widget_filter_view( array $settings, string $widget_id ): array
|
|
|
490
490
|
$grid_class = $grid_columns[ $columns ] ?? $grid_columns['3'];
|
|
491
491
|
|
|
492
492
|
// Animation
|
|
493
|
-
$animation = sociallane_animation_view_data( $settings, [ 'headline' => true
|
|
493
|
+
$animation = sociallane_animation_view_data( $settings, [ 'headline' => true ] );
|
|
494
494
|
|
|
495
495
|
// Theme classes (light + dark)
|
|
496
496
|
$classes = [
|
|
@@ -23,7 +23,6 @@ if ( empty( $view ) ) {
|
|
|
23
23
|
|
|
24
24
|
$anim = $view['animation'] ?? [];
|
|
25
25
|
$section_attrs = sociallane_section_animation_attrs( $anim );
|
|
26
|
-
$stagger_attrs = sociallane_stagger_attrs( $anim );
|
|
27
26
|
$block_id = 'widget-filter-' . $view['widget_id'];
|
|
28
27
|
$categories = $view['categories'];
|
|
29
28
|
$categories_visible = $view['categories_visible'] ?? $categories;
|
|
@@ -212,6 +211,67 @@ $filter_inactive_classes = ! empty( $classes['filter_inactive'] ) ? explode( ' '
|
|
|
212
211
|
});
|
|
213
212
|
}
|
|
214
213
|
|
|
214
|
+
function animateCardsOnLoad() {
|
|
215
|
+
var grid = block.querySelector('[data-widget-cards-grid]');
|
|
216
|
+
if (!grid || grid.dataset.cardsAnimated === 'yes') return;
|
|
217
|
+
|
|
218
|
+
var cardNodes = grid.querySelectorAll('.widget-filter__card');
|
|
219
|
+
if (!cardNodes.length) return;
|
|
220
|
+
|
|
221
|
+
grid.dataset.cardsAnimated = 'yes';
|
|
222
|
+
|
|
223
|
+
var prefersReducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
224
|
+
if (prefersReducedMotion) return;
|
|
225
|
+
|
|
226
|
+
var cards = Array.prototype.slice.call(cardNodes);
|
|
227
|
+
var gsapApi = window.SocialLaneAnimations && window.SocialLaneAnimations.gsap;
|
|
228
|
+
var staggerEach = cards.length > 36 ? 0.01 : 0.018;
|
|
229
|
+
var maxAnimatedCards = 48;
|
|
230
|
+
|
|
231
|
+
if (gsapApi && typeof gsapApi.fromTo === 'function') {
|
|
232
|
+
gsapApi.fromTo(
|
|
233
|
+
cards.slice(0, maxAnimatedCards),
|
|
234
|
+
{ opacity: 0, y: 14, willChange: 'transform,opacity', force3D: true },
|
|
235
|
+
{
|
|
236
|
+
opacity: 1,
|
|
237
|
+
y: 0,
|
|
238
|
+
duration: 0.38,
|
|
239
|
+
stagger: staggerEach,
|
|
240
|
+
ease: 'power2.out',
|
|
241
|
+
clearProps: 'opacity,transform,willChange',
|
|
242
|
+
}
|
|
243
|
+
);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
cards.slice(0, maxAnimatedCards).forEach(function(card, index) {
|
|
248
|
+
card.style.opacity = '0';
|
|
249
|
+
card.style.transform = 'translate3d(0, 14px, 0)';
|
|
250
|
+
card.style.willChange = 'transform, opacity';
|
|
251
|
+
card.style.transition = 'opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1), transform 0.38s cubic-bezier(0.22, 1, 0.36, 1)';
|
|
252
|
+
card.style.transitionDelay = String(index * staggerEach) + 's';
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
requestAnimationFrame(function() {
|
|
256
|
+
requestAnimationFrame(function() {
|
|
257
|
+
cards.slice(0, maxAnimatedCards).forEach(function(card) {
|
|
258
|
+
card.style.opacity = '1';
|
|
259
|
+
card.style.transform = 'translate3d(0, 0, 0)';
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
setTimeout(function() {
|
|
265
|
+
cards.slice(0, maxAnimatedCards).forEach(function(card) {
|
|
266
|
+
card.style.transition = '';
|
|
267
|
+
card.style.transitionDelay = '';
|
|
268
|
+
card.style.willChange = '';
|
|
269
|
+
card.style.opacity = '';
|
|
270
|
+
card.style.transform = '';
|
|
271
|
+
});
|
|
272
|
+
}, 1200);
|
|
273
|
+
}
|
|
274
|
+
|
|
215
275
|
block.querySelectorAll('[data-add-to-collection]').forEach(function(cb) {
|
|
216
276
|
cb.addEventListener('change', function() {
|
|
217
277
|
var pkg = cb.getAttribute('data-npm-package');
|
|
@@ -249,6 +309,7 @@ $filter_inactive_classes = ! empty( $classes['filter_inactive'] ) ? explode( ' '
|
|
|
249
309
|
|
|
250
310
|
renderCollection();
|
|
251
311
|
updateCount();
|
|
312
|
+
animateCardsOnLoad();
|
|
252
313
|
|
|
253
314
|
// Hover preview: show iframe on card hover, keep detail page link
|
|
254
315
|
var hoverPreview = block.querySelector('[data-hover-preview]');
|
|
@@ -528,7 +589,7 @@ $filter_inactive_classes = ! empty( $classes['filter_inactive'] ) ? explode( ' '
|
|
|
528
589
|
<?php if ( ! empty( $widgets ) ) : ?>
|
|
529
590
|
<div
|
|
530
591
|
class="grid <?php echo esc_attr( $view['grid_class'] ); ?> gap-4 sm:gap-6"
|
|
531
|
-
|
|
592
|
+
data-widget-cards-grid
|
|
532
593
|
role="list"
|
|
533
594
|
aria-label="<?php esc_attr_e( 'Available widgets', 'sociallane-elements' ); ?>"
|
|
534
595
|
>
|
|
@@ -47,7 +47,7 @@ class Widget_Filter extends Widget_Base {
|
|
|
47
47
|
|
|
48
48
|
protected function register_controls(): void {
|
|
49
49
|
$this->register_content_section();
|
|
50
|
-
$this->register_animation_controls( true
|
|
50
|
+
$this->register_animation_controls( true );
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
private function register_content_section(): void {
|
package/vite.config.js
CHANGED
|
@@ -56,6 +56,8 @@ function watchTailwindContent() {
|
|
|
56
56
|
|
|
57
57
|
export default defineConfig(({ mode }) => {
|
|
58
58
|
const isDev = mode === 'development';
|
|
59
|
+
const isProd = mode === 'production';
|
|
60
|
+
const isWatchMode = process.argv.includes('--watch');
|
|
59
61
|
|
|
60
62
|
return {
|
|
61
63
|
plugins: [tailwindcss(), watchTailwindContent()],
|
|
@@ -64,24 +66,42 @@ export default defineConfig(({ mode }) => {
|
|
|
64
66
|
outDir: 'assets/dist',
|
|
65
67
|
manifest: true,
|
|
66
68
|
emptyOutDir: true,
|
|
67
|
-
watch:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
watch: isWatchMode
|
|
70
|
+
? {
|
|
71
|
+
usePolling: true,
|
|
72
|
+
interval: 300,
|
|
73
|
+
}
|
|
74
|
+
: null,
|
|
71
75
|
rollupOptions: {
|
|
72
76
|
input: {
|
|
73
77
|
tailwind: resolve(__dirname, 'assets/css/tailwind.css'),
|
|
74
78
|
animations: resolve(__dirname, 'assets/js/animations.js'),
|
|
75
79
|
},
|
|
80
|
+
treeshake: 'recommended',
|
|
76
81
|
output: {
|
|
82
|
+
manualChunks(id) {
|
|
83
|
+
const normalizedId = id.replace(/\\/g, '/');
|
|
84
|
+
if (!normalizedId.includes('/node_modules/')) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (normalizedId.includes('/node_modules/gsap/')) {
|
|
88
|
+
return 'vendor-gsap';
|
|
89
|
+
}
|
|
90
|
+
if (normalizedId.includes('/node_modules/lenis/')) {
|
|
91
|
+
return 'vendor-lenis';
|
|
92
|
+
}
|
|
93
|
+
return 'vendor';
|
|
94
|
+
},
|
|
77
95
|
entryFileNames: '[name]-[hash].js',
|
|
78
96
|
chunkFileNames: '[name]-[hash].js',
|
|
79
97
|
assetFileNames: '[name]-[hash][extname]',
|
|
80
98
|
},
|
|
81
99
|
},
|
|
82
|
-
minify: 'esbuild',
|
|
100
|
+
minify: isProd ? 'esbuild' : false,
|
|
101
|
+
cssMinify: isProd,
|
|
83
102
|
cssCodeSplit: true,
|
|
84
103
|
sourcemap: isDev,
|
|
104
|
+
reportCompressedSize: isProd,
|
|
85
105
|
target: 'es2020',
|
|
86
106
|
},
|
|
87
107
|
|
|
@@ -129,15 +129,15 @@ function prepare_bento_grid_view( array $settings, string $widget_id ): array {
|
|
|
129
129
|
|
|
130
130
|
// Light/dark: section and cards
|
|
131
131
|
$classes = [
|
|
132
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
133
|
-
'eyebrow' => 'text-
|
|
134
|
-
'headline' => 'text-
|
|
135
|
-
'card' => 'bg-white dark:bg-
|
|
136
|
-
'card_title' => 'text-
|
|
137
|
-
'card_desc' => 'text-
|
|
138
|
-
'metric_val' => 'text-
|
|
132
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
133
|
+
'eyebrow' => 'text-neutral-900 dark:text-neutral-200',
|
|
134
|
+
'headline' => 'text-neutral-900 dark:text-neutral-200',
|
|
135
|
+
'card' => 'bg-white dark:bg-neutral-900 rounded-2xl border border-neutral-200 dark:border-neutral-700 dark:shadow-none',
|
|
136
|
+
'card_title' => 'text-neutral-900 dark:text-neutral-200 font-bold',
|
|
137
|
+
'card_desc' => 'text-neutral-900 dark:text-neutral-200',
|
|
138
|
+
'metric_val' => 'text-neutral-900 dark:text-neutral-200',
|
|
139
139
|
'metric_change' => 'text-primary dark:text-neutral-200',
|
|
140
|
-
'code_bg' => 'bg-
|
|
140
|
+
'code_bg' => 'bg-neutral-900 dark:bg-neutral-900 text-neutral-200',
|
|
141
141
|
'badge' => 'bg-primary/20 dark:bg-primary-light/20 text-primary dark:text-primary-light text-xs font-medium px-2.5 py-1 rounded-full',
|
|
142
142
|
];
|
|
143
143
|
|
|
@@ -34,7 +34,7 @@ $tabs = $data['tabs'] ?? [];
|
|
|
34
34
|
<div class="p-5 md:p-6 flex-1 flex flex-col">
|
|
35
35
|
<?php if ( ( $data['project'] ?? '' ) !== '' ) : ?>
|
|
36
36
|
<div class="flex items-center gap-2 mb-4">
|
|
37
|
-
<span class="w-2 h-2 rounded-full bg-
|
|
37
|
+
<span class="w-2 h-2 rounded-full bg-neutral-500 shrink-0" aria-hidden="true"></span>
|
|
38
38
|
<span class="<?php echo esc_attr( $cls['card_title'] ); ?> text-sm font-semibold"><?php echo $data['project']; ?></span>
|
|
39
39
|
</div>
|
|
40
40
|
<?php if ( ( $data['project_meta'] ?? '' ) !== '' ) : ?>
|
|
@@ -26,7 +26,7 @@ $items = $data['items'] ?? [];
|
|
|
26
26
|
<a href="<?php echo esc_url( $item['href'] ); ?>" <?php echo $item['attrs']; ?> class="group flex items-start justify-between gap-3 rounded-lg p-2 -m-2 hover:bg-neutral-100 dark:hover:bg-neutral-700/50 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-[#21283B]">
|
|
27
27
|
<div class="min-w-0 flex-1">
|
|
28
28
|
<div class="flex items-center gap-2 flex-wrap">
|
|
29
|
-
<span class="shrink-0 w-2 h-2 rounded-full <?php echo $item['status'] === 'success' ? 'bg-
|
|
29
|
+
<span class="shrink-0 w-2 h-2 rounded-full <?php echo $item['status'] === 'success' ? 'bg-neutral-500' : 'bg-neutral-400 dark:bg-neutral-500'; ?>" aria-hidden="true"></span>
|
|
30
30
|
<span class="<?php echo esc_attr( $cls['card_title'] ); ?> text-sm font-semibold"><?php echo $item['label']; ?></span>
|
|
31
31
|
<?php if ( $item['badge'] !== '' ) : ?>
|
|
32
32
|
<span class="<?php echo esc_attr( $cls['badge'] ); ?>"><?php echo $item['badge']; ?></span>
|
|
@@ -27,7 +27,7 @@ $tabs = $data['tabs'] ?? [];
|
|
|
27
27
|
<div class="p-5 md:p-6 flex-1 flex flex-col">
|
|
28
28
|
<?php if ( ( $data['project'] ?? '' ) !== '' ) : ?>
|
|
29
29
|
<div class="flex items-center gap-2 mb-4">
|
|
30
|
-
<span class="w-2 h-2 rounded-full bg-
|
|
30
|
+
<span class="w-2 h-2 rounded-full bg-neutral-500 shrink-0" aria-hidden="true"></span>
|
|
31
31
|
<span class="<?php echo esc_attr( $cls['card_title'] ); ?> text-sm font-semibold"><?php echo $data['project']; ?></span>
|
|
32
32
|
</div>
|
|
33
33
|
<?php if ( ( $data['project_meta'] ?? '' ) !== '' ) : ?>
|
|
@@ -36,7 +36,7 @@ $avatar2 = $data['avatar2'] ?? null;
|
|
|
36
36
|
<?php if ( $avatar2 && ! empty( $avatar2['url'] ) ) : ?>
|
|
37
37
|
<span class="relative inline-block">
|
|
38
38
|
<img src="<?php echo esc_url( $avatar2['url'] ); ?>" alt="" class="w-10 h-10 rounded-full border-2 border-white dark:border-[#21283B] object-cover" loading="lazy" width="40" height="40" />
|
|
39
|
-
<span class="absolute bottom-0 right-0 w-3 h-3 bg-
|
|
39
|
+
<span class="absolute bottom-0 right-0 w-3 h-3 bg-neutral-500 rounded-full border-2 border-white dark:border-[#21283B]" aria-hidden="true"></span>
|
|
40
40
|
</span>
|
|
41
41
|
<?php endif; ?>
|
|
42
42
|
</div>
|
|
@@ -89,10 +89,10 @@ function prepare_bento_portfolio_view( array $settings, string $widget_id ): arr
|
|
|
89
89
|
|
|
90
90
|
$animation = sociallane_animation_view_data( $settings, [ 'headline' => true, 'stagger' => true ] );
|
|
91
91
|
$classes = [
|
|
92
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
93
|
-
'eyebrow' => 'text-
|
|
92
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
93
|
+
'eyebrow' => 'text-neutral-900 dark:text-neutral-200 uppercase tracking-wider text-sm font-normal',
|
|
94
94
|
'headline' => 'text-neutral-900 dark:text-neutral-200',
|
|
95
|
-
'subtitle' => 'text-
|
|
95
|
+
'subtitle' => 'text-neutral-900 leading-8 dark:text-neutral-200',
|
|
96
96
|
'card' => 'bg-white dark:bg-[#21283B] rounded-2xl border border-neutral-200 dark:border-neutral-700/50 shadow-sm dark:shadow-none overflow-hidden',
|
|
97
97
|
'card_title' => 'text-neutral-900 leading-relaxed dark:text-neutral-200 font-normal',
|
|
98
98
|
'card_desc' => 'text-neutral-600 dark:text-neutral-400',
|
|
@@ -42,7 +42,7 @@ $align_row = [ 'left' => 'justify-between', 'center' => 'justify-center',
|
|
|
42
42
|
|
|
43
43
|
<div class="absolute inset-0 bg-gradient-to-t from-black/60 via-black/0 to-transparent pointer-events-none" aria-hidden="true"></div>
|
|
44
44
|
|
|
45
|
-
<div class="absolute inset-0 pointer-events-none opacity-0 group-hover/card:opacity-100 transition-opacity duration-300 ease-out bg-[linear-gradient(to_top,var(--color-
|
|
45
|
+
<div class="absolute inset-0 pointer-events-none opacity-0 group-hover/card:opacity-100 transition-opacity duration-300 ease-out bg-[linear-gradient(to_top,var(--color-neutral-950)_0%,transparent_50%)]" aria-hidden="true"></div>
|
|
46
46
|
|
|
47
47
|
<?php if ( $show_category && $category_label !== '' ) : ?>
|
|
48
48
|
<div class="absolute top-0 left-0 p-4 md:p-5">
|
|
@@ -69,7 +69,7 @@ $align_row = [ 'left' => 'justify-between', 'center' => 'justify-center',
|
|
|
69
69
|
<a
|
|
70
70
|
href="<?php echo esc_url( $link_href ); ?>"
|
|
71
71
|
<?php echo $link_attrs; ?>
|
|
72
|
-
class="group shrink-0 h-10 md:h-12 rounded-full bg-
|
|
72
|
+
class="group shrink-0 h-10 md:h-12 rounded-full bg-neutral-950 dark:bg-neutral-300 dark:border-neutral-300/30 dark:text-neutral-950 text-neutral-300 border border-neutral-300/30 inline-flex items-center justify-end overflow-hidden transition-[max-width] duration-300 ease-out max-w-[2.5rem] md:max-w-[3rem] hover:max-w-[14rem] focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-neutral-900 pl-2 pr-2 md:pl-3 md:pr-3 hover:pl-4 hover:pr-4 md:hover:pl-5 md:hover:pr-5"
|
|
73
73
|
aria-label="<?php esc_attr_e( 'View project', 'sociallane-elements' ); ?>"
|
|
74
74
|
>
|
|
75
75
|
<span class="whitespace-nowrap overflow-hidden max-w-0 opacity-0 group-hover:max-w-[8rem] group-hover:opacity-100 transition-[max-width,opacity] duration-500 ease-out text-sm md:text-base font-medium mr-1.5 md:mr-2">
|
|
@@ -49,7 +49,7 @@ function prepare_blog_grid_view( array $settings, string $widget_id ): array {
|
|
|
49
49
|
'card_title' => 'text-neutral-900 dark:text-neutral-100',
|
|
50
50
|
'meta' => 'text-neutral-500 dark:text-neutral-400',
|
|
51
51
|
'excerpt' => 'text-neutral-600 dark:text-neutral-300',
|
|
52
|
-
'read_more' => 'text-
|
|
52
|
+
'read_more' => 'text-neutral-600 dark:text-neutral-300',
|
|
53
53
|
'tag_bg' => 'bg-neutral-900/70 dark:bg-neutral-950/80',
|
|
54
54
|
'tag_text' => 'text-white dark:text-white',
|
|
55
55
|
'cta_button' => 'bg-neutral-200 text-neutral-900 hover:bg-neutral-300 dark:bg-neutral-700 dark:text-neutral-100 dark:hover:bg-neutral-600 focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
@@ -117,7 +117,7 @@ function prepare_card_hover_reveal_view( array $settings, string $widget_id ): a
|
|
|
117
117
|
'section' => 'bg-white dark:bg-neutral-900',
|
|
118
118
|
'headline' => 'text-neutral-900 dark:text-white',
|
|
119
119
|
'header_cta' => 'inline-flex items-center gap-2 px-4 py-2.5 rounded-lg bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-white font-medium hover:bg-neutral-200 dark:hover:bg-neutral-700 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 transition-colors',
|
|
120
|
-
'bar_bg' => 'bg-
|
|
120
|
+
'bar_bg' => 'bg-neutral-900/60 border-t border-white-100/10 dark:bg-neutral-900/70 dark:border-white-100/10 backdrop-blur-sm',
|
|
121
121
|
'title' => 'text-white font-bold',
|
|
122
122
|
'description' => 'text-white/90',
|
|
123
123
|
'cta_focus' => 'focus:ring-white focus:ring-offset-2 focus:ring-offset-neutral-900 dark:focus:ring-offset-neutral-950',
|
|
@@ -84,10 +84,10 @@ function prepare_content_block_view( array $settings, string $widget_id ): array
|
|
|
84
84
|
$animation = sociallane_animation_view_data( $settings, [ 'headline' => true ] );
|
|
85
85
|
|
|
86
86
|
$classes = [
|
|
87
|
-
'section' => 'bg-neutral-100 text-
|
|
88
|
-
'text' => 'text-
|
|
89
|
-
'subtext' => 'text-
|
|
90
|
-
'eyebrow' => 'text-
|
|
87
|
+
'section' => 'bg-neutral-100 text-neutral-950 dark:bg-neutral-900',
|
|
88
|
+
'text' => 'text-neutral-950 dark:text-neutral-200',
|
|
89
|
+
'subtext' => 'text-neutral-950 dark:text-neutral-200',
|
|
90
|
+
'eyebrow' => 'text-neutral-950 dark:text-primary-light',
|
|
91
91
|
];
|
|
92
92
|
|
|
93
93
|
// First block title id for aria-labelledby (used when any block has a title)
|
|
@@ -70,13 +70,13 @@ function prepare_cta_banner_view( array $settings, string $widget_id ): array {
|
|
|
70
70
|
|
|
71
71
|
// Dark slate overlay (matches design: #313D4D feel), white text, teal/cyan icons
|
|
72
72
|
$classes = [
|
|
73
|
-
'overlay' => 'bg-
|
|
73
|
+
'overlay' => 'bg-neutral-900 dark:bg-neutral-950',
|
|
74
74
|
'headline' => 'text-white dark:text-white',
|
|
75
75
|
'description' => 'text-white/90 dark:text-neutral-200',
|
|
76
76
|
'contact' => 'text-white dark:text-white',
|
|
77
|
-
'icon' => 'text-
|
|
77
|
+
'icon' => 'text-neutral-300 dark:text-neutral-400',
|
|
78
78
|
'separator' => 'text-white/50 dark:text-neutral-400',
|
|
79
|
-
'cta_focus' => 'focus:ring-white focus:ring-offset-
|
|
79
|
+
'cta_focus' => 'focus:ring-white focus:ring-offset-neutral-900 dark:focus:ring-offset-neutral-950',
|
|
80
80
|
];
|
|
81
81
|
|
|
82
82
|
return [
|
|
@@ -84,7 +84,7 @@ $has_heading = $has_headline || $has_description;
|
|
|
84
84
|
<?php if ( ! empty( $view['phone'] ) ) : ?>
|
|
85
85
|
<a
|
|
86
86
|
href="<?php echo esc_url( $view['phone']['url'] ); ?>"
|
|
87
|
-
class="<?php echo esc_attr( $view['classes']['contact'] ); ?> inline-flex items-center gap-2 hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-
|
|
87
|
+
class="<?php echo esc_attr( $view['classes']['contact'] ); ?> inline-flex items-center gap-2 hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-neutral-900 dark:focus:ring-offset-neutral-950 rounded transition-opacity"
|
|
88
88
|
aria-label="<?php echo esc_attr( sprintf( /* translators: phone number */ __( 'Call %s', 'sociallane-elements' ), $view['phone']['label'] ) ); ?>"
|
|
89
89
|
>
|
|
90
90
|
<svg class="w-5 h-5 shrink-0 <?php echo esc_attr( $view['classes']['icon'] ); ?>" fill="currentColor" viewBox="0 0 20 20" aria-hidden="true">
|
|
@@ -101,7 +101,7 @@ $has_heading = $has_headline || $has_description;
|
|
|
101
101
|
<?php if ( ! empty( $view['email'] ) ) : ?>
|
|
102
102
|
<a
|
|
103
103
|
href="<?php echo esc_url( $view['email']['url'] ); ?>"
|
|
104
|
-
class="<?php echo esc_attr( $view['classes']['contact'] ); ?> inline-flex items-center gap-2 hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-
|
|
104
|
+
class="<?php echo esc_attr( $view['classes']['contact'] ); ?> inline-flex items-center gap-2 hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-neutral-900 dark:focus:ring-offset-neutral-950 rounded transition-opacity"
|
|
105
105
|
aria-label="<?php echo esc_attr( sprintf( /* translators: email address */ __( 'Email %s', 'sociallane-elements' ), $view['email']['label'] ) ); ?>"
|
|
106
106
|
>
|
|
107
107
|
<svg class="w-5 h-5 shrink-0 <?php echo esc_attr( $view['classes']['icon'] ); ?>" fill="currentColor" viewBox="0 0 20 20" aria-hidden="true">
|
|
@@ -58,13 +58,13 @@ function prepare_cta_split_view( array $settings, string $widget_id ): array {
|
|
|
58
58
|
|
|
59
59
|
// Dark slate left panel (#2E3E4C), white headline, lighter grey description, teal contact (#34D399)
|
|
60
60
|
$classes = [
|
|
61
|
-
'panel' => 'bg-
|
|
61
|
+
'panel' => 'bg-neutral-900 dark:bg-neutral-950',
|
|
62
62
|
'headline' => 'text-white dark:text-white',
|
|
63
63
|
'description' => 'text-white/90 dark:text-neutral-200',
|
|
64
|
-
'contact' => 'text-
|
|
65
|
-
'icon' => 'text-
|
|
64
|
+
'contact' => 'text-neutral-400 dark:text-neutral-400',
|
|
65
|
+
'icon' => 'text-neutral-400 dark:text-neutral-400 shrink-0',
|
|
66
66
|
'separator' => 'text-white/50 dark:text-neutral-400',
|
|
67
|
-
'focus_ring' => 'focus:ring-
|
|
67
|
+
'focus_ring' => 'focus:ring-neutral-400 focus:ring-offset-2 focus:ring-offset-neutral-900 dark:focus:ring-offset-neutral-950',
|
|
68
68
|
];
|
|
69
69
|
|
|
70
70
|
return [
|
|
@@ -68,15 +68,15 @@ function prepare_faq_view( array $settings, string $widget_id ): array {
|
|
|
68
68
|
|
|
69
69
|
// Light/dark mode classes (all color/theme here — templates only echo these)
|
|
70
70
|
$classes = [
|
|
71
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
72
|
-
'title' => 'text-
|
|
73
|
-
'description' => 'text-
|
|
74
|
-
'item_border' => 'border-neutral-200 dark:border-
|
|
71
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
72
|
+
'title' => 'text-neutral-900 dark:text-neutral-200',
|
|
73
|
+
'description' => 'text-neutral-900 dark:text-neutral-200',
|
|
74
|
+
'item_border' => 'border-neutral-200 dark:border-neutral-100/0',
|
|
75
75
|
'item_bg' => 'bg-transparent',
|
|
76
|
-
'question' => 'text-
|
|
77
|
-
'answer' => 'text-
|
|
76
|
+
'question' => 'text-neutral-900 dark:text-neutral-200',
|
|
77
|
+
'answer' => 'text-neutral-900 dark:text-neutral-200',
|
|
78
78
|
'summary_focus'=> 'focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
79
|
-
'chevron' => 'bg-
|
|
79
|
+
'chevron' => 'bg-neutral-300 dark:bg-neutral-800 text-neutral-600 dark:text-neutral-300',
|
|
80
80
|
];
|
|
81
81
|
|
|
82
82
|
// Schema for FAQPage (for SEO JSON-LD)
|
|
@@ -18,12 +18,12 @@ if ( ! is_array( $view ?? null ) || ! is_array( $view['items'] ?? null ) || empt
|
|
|
18
18
|
|
|
19
19
|
$items = $view['items'];
|
|
20
20
|
$faq_classes = is_array( $view['classes'] ?? null ) ? $view['classes'] : [
|
|
21
|
-
'item_border' => 'border-neutral-200 dark:border-
|
|
21
|
+
'item_border' => 'border-neutral-200 dark:border-neutral-100/0',
|
|
22
22
|
'item_bg' => 'bg-transparent',
|
|
23
|
-
'question' => 'text-
|
|
24
|
-
'answer' => 'text-
|
|
23
|
+
'question' => 'text-neutral-900 dark:text-neutral-200',
|
|
24
|
+
'answer' => 'text-neutral-900 dark:text-neutral-200',
|
|
25
25
|
'summary_focus' => 'focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
26
|
-
'chevron' => 'bg-
|
|
26
|
+
'chevron' => 'bg-neutral-300 dark:bg-neutral-800 text-neutral-600 dark:text-neutral-300',
|
|
27
27
|
];
|
|
28
28
|
$elements_path = defined( 'SOCIALLANE_ELEMENTS_PATH' ) ? SOCIALLANE_ELEMENTS_PATH . 'elements' : '';
|
|
29
29
|
$stagger_attrs = isset( $stagger_attrs ) ? $stagger_attrs : '';
|
|
@@ -92,14 +92,14 @@ function prepare_feature_grid_view( array $settings, string $widget_id ): array
|
|
|
92
92
|
|
|
|
93
93
|
*/
|
|
94
94
|
$classes = [
|
|
95
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
96
|
-
'headline' => 'text-
|
|
97
|
-
'subtitle' => 'text-
|
|
98
|
-
'eyebrow' => 'text-
|
|
99
|
-
'description' => 'text-
|
|
100
|
-
'title' => 'text-
|
|
101
|
-
'link' => 'text-
|
|
102
|
-
'icon_box' => 'bg-
|
|
95
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
96
|
+
'headline' => 'text-neutral-900 dark:text-neutral-200',
|
|
97
|
+
'subtitle' => 'text-neutral-900 dark:text-neutral-200',
|
|
98
|
+
'eyebrow' => 'text-neutral-900 dark:text-neutral-200',
|
|
99
|
+
'description' => 'text-neutral-900 dark:text-neutral-200',
|
|
100
|
+
'title' => 'text-neutral-900 dark:text-neutral-200',
|
|
101
|
+
'link' => 'text-neutral-900 dark:text-neutral-200 hover:underline focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
102
|
+
'icon_box' => 'bg-neutral-400 dark:bg-neutral-700 text-neutral-900 rounded-lg',
|
|
103
103
|
'icon' => 'w-6 h-6 text-white',
|
|
104
104
|
];
|
|
105
105
|
|
|
@@ -37,10 +37,10 @@ function prepare_feature_list_view( array $settings, string $widget_id ): array
|
|
|
37
37
|
|
|
38
38
|
// Light background (#F8F8F8), title dark grey, list items lighter grey, checkmark teal
|
|
39
39
|
$classes = [
|
|
40
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
41
|
-
'title' => 'text-
|
|
42
|
-
'item' => 'text-
|
|
43
|
-
'icon' => 'text-
|
|
40
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-900',
|
|
41
|
+
'title' => 'text-neutral-800 dark:text-neutral-100 font-bold font-heading',
|
|
42
|
+
'item' => 'text-neutral-600 dark:text-neutral-300',
|
|
43
|
+
'icon' => 'text-neutral-500 dark:text-neutral-400 shrink-0',
|
|
44
44
|
];
|
|
45
45
|
|
|
46
46
|
return [
|
|
@@ -62,13 +62,13 @@ function prepare_feature_list_cta_view( array $settings, string $widget_id ): ar
|
|
|
62
62
|
|
|
63
63
|
// Light/dark: dual classes for Nav theme switcher (elementor-widget-structure, widget-utility-classes)
|
|
64
64
|
$classes = [
|
|
65
|
-
'section' => 'bg-neutral-100 dark:bg-
|
|
66
|
-
'headline' => 'text-
|
|
67
|
-
'subtitle' => 'text-
|
|
68
|
-
'card_title' => 'text-
|
|
69
|
-
'card_desc' => 'text-neutral-600 dark:text-
|
|
65
|
+
'section' => 'bg-neutral-100 dark:bg-neutral-950',
|
|
66
|
+
'headline' => 'text-neutral-950 dark:text-white',
|
|
67
|
+
'subtitle' => 'text-neutral-950 dark:text-neutral-100/50',
|
|
68
|
+
'card_title' => 'text-neutral-950 dark:text-neutral-300',
|
|
69
|
+
'card_desc' => 'text-neutral-600 dark:text-neutral-100/50',
|
|
70
70
|
'link' => 'text-primary dark:text-primary-light hover:underline focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
71
|
-
'icon' => 'text-primary dark:text-
|
|
71
|
+
'icon' => 'text-primary dark:text-neutral-300',
|
|
72
72
|
];
|
|
73
73
|
|
|
74
74
|
return [
|
|
@@ -20,7 +20,7 @@ $classes = $view['classes'] ?? [];
|
|
|
20
20
|
?>
|
|
21
21
|
<article class="flex flex-col items-center text-center">
|
|
22
22
|
<?php if ( ! empty( $feature['icon']['value'] ) ) : ?>
|
|
23
|
-
<div class="<?php echo esc_attr( $classes['icon'] ?? 'text-
|
|
23
|
+
<div class="<?php echo esc_attr( $classes['icon'] ?? 'text-neutral-300' ); ?> mb-4 [&_.e-icon]:w-12 [&_.e-icon]:h-12" aria-hidden="true">
|
|
24
24
|
<?php \Elementor\Icons_Manager::render_icon( $feature['icon'], [ 'aria-hidden' => 'true', 'class' => 'w-12 h-12' ] ); ?>
|
|
25
25
|
</div>
|
|
26
26
|
<?php endif; ?>
|
|
@@ -105,12 +105,12 @@ function prepare_footer_view( array $settings, string $widget_id ): array {
|
|
|
105
105
|
|
|
|
106
106
|
*/
|
|
107
107
|
$classes = [
|
|
108
|
-
'section' => 'bg-neutral-200 dark:bg-
|
|
109
|
-
'cta_heading' => 'text-
|
|
108
|
+
'section' => 'bg-neutral-200 dark:bg-neutral-900',
|
|
109
|
+
'cta_heading' => 'text-neutral-900 dark:text-neutral-200',
|
|
110
110
|
'cta_primary_class'=> 'focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
111
111
|
'cta_secondary_class' => 'border-neutral-300 dark:border-neutral-500 text-neutral-900 dark:text-white hover:bg-neutral-900 dark:hover:bg-neutral-100 hover:text-white dark:hover:text-neutral-900 focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
112
|
-
'col_heading' => 'text-
|
|
113
|
-
'link' => 'text-
|
|
112
|
+
'col_heading' => 'text-neutral-900 dark:text-neutral-200 font-bold uppercase tracking-wider text-sm',
|
|
113
|
+
'link' => 'text-neutral-600 dark:text-neutral-200 hover:text-neutral-900 dark:hover:text-neutral-100 transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
114
114
|
'copyright' => 'text-neutral-600 dark:text-neutral-400 text-sm',
|
|
115
115
|
'divider' => 'border-neutral-200 dark:border-neutral-700',
|
|
116
116
|
'select_bg' => 'bg-neutral-100 dark:bg-neutral-800 text-neutral-700 dark:text-neutral-300 border-neutral-200 dark:border-neutral-600 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900',
|
|
@@ -91,21 +91,21 @@ function prepare_footer_brand_view( array $settings, string $widget_id ): array
|
|
|
91
91
|
|
|
92
92
|
// Light/dark: dual classes for Nav theme switcher (elementor-widget-structure, widget-utility-classes)
|
|
93
93
|
$classes = [
|
|
94
|
-
'section' => 'bg-white dark:bg-gradient-to-t from-
|
|
95
|
-
'col_heading' => 'text-neutral-900 dark:text-
|
|
96
|
-
'link' => 'text-neutral-600 dark:text-
|
|
97
|
-
'copyright' => 'text-neutral-600 dark:text-
|
|
98
|
-
'divider' => 'border-neutral-200 dark:border-
|
|
99
|
-
'description' => 'text-neutral-600 dark:text-
|
|
100
|
-
'logo_text' => 'text-neutral-900 dark:text-
|
|
101
|
-
'social_icon' => 'text-neutral-600 dark:text-
|
|
102
|
-
'social_href' => 'text-neutral-600 dark:text-
|
|
103
|
-
'social_attrs' => 'text-neutral-600 dark:text-
|
|
104
|
-
'social_aria_label' => 'text-neutral-600 dark:text-
|
|
105
|
-
'social_icon' => 'text-neutral-600 dark:text-
|
|
106
|
-
'social_href' => 'text-neutral-600 dark:text-
|
|
107
|
-
'social_attrs' => 'text-neutral-600 dark:text-
|
|
108
|
-
'social_aria_label' => 'text-neutral-600 dark:text-
|
|
94
|
+
'section' => 'bg-white dark:bg-gradient-to-t from-neutral-900 dark:via-neutral-950 dark:to-neutral-950',
|
|
95
|
+
'col_heading' => 'text-neutral-900 dark:text-neutral-200 font-normal font-heading uppercase tracking-wider text-sm',
|
|
96
|
+
'link' => 'text-neutral-600 dark:text-neutral-200 hover:text-neutral-900 dark:hover:text-white transition-colors',
|
|
97
|
+
'copyright' => 'text-neutral-600 dark:text-neutral-200 text-sm',
|
|
98
|
+
'divider' => 'border-neutral-200 dark:border-neutral-200',
|
|
99
|
+
'description' => 'text-neutral-600 dark:text-neutral-200 text-sm leading-relaxed',
|
|
100
|
+
'logo_text' => 'text-neutral-900 dark:text-neutral-200',
|
|
101
|
+
'social_icon' => 'text-neutral-600 dark:text-neutral-200',
|
|
102
|
+
'social_href' => 'text-neutral-600 dark:text-neutral-200',
|
|
103
|
+
'social_attrs' => 'text-neutral-600 dark:text-neutral-200',
|
|
104
|
+
'social_aria_label' => 'text-neutral-600 dark:text-neutral-200',
|
|
105
|
+
'social_icon' => 'text-neutral-600 dark:text-neutral-200',
|
|
106
|
+
'social_href' => 'text-neutral-600 dark:text-neutral-200',
|
|
107
|
+
'social_attrs' => 'text-neutral-600 dark:text-neutral-200',
|
|
108
|
+
'social_aria_label' => 'text-neutral-600 dark:text-neutral-200',
|
|
109
109
|
];
|
|
110
110
|
|
|
111
111
|
return [
|