@sociallane/elements 1.0.8 → 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-frontend.php +3 -1
- package/admin/views/setup-widget-catalog.php +7 -3
- package/assets/css/tailwind.css +1 -28
- package/elements/button/button.php +29 -16
- package/elements/button/templates/render.php +8 -24
- package/includes/button-presets.php +15 -5
- package/includes/class-widget-manager.php +1 -1
- 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 +35 -22
- 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 +18 -27
- 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/templates/wrapper.php +1 -1
- package/packages/widgets/hero-overlay-single/data/view.php +1 -1
- package/packages/widgets/hero-overlay-single/templates/wrapper.php +1 -1
- package/packages/widgets/hero-overlay-slider/data/view.php +1 -1
- package/packages/widgets/hero-overlay-slider/templates/wrapper.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 +70 -9
- package/packages/widgets/widget-filter/widget-filter.php +1 -1
- package/sociallane-elements.php +6 -0
- 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 +18 -27
- 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-overlay/templates/wrapper.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
|
@@ -33,7 +33,7 @@ $steps = [
|
|
|
33
33
|
<?php
|
|
34
34
|
$is_active = ( $key === $step );
|
|
35
35
|
$is_completed = ( $s['number'] < $steps[ $step ]['number'] );
|
|
36
|
-
$dot_class = $is_active ? 'bg-primary text-white' : ( $is_completed ? 'bg-
|
|
36
|
+
$dot_class = $is_active ? 'bg-primary text-white' : ( $is_completed ? 'bg-neutral-500 text-white' : 'bg-neutral-200 text-neutral-500' );
|
|
37
37
|
?>
|
|
38
38
|
<div class="flex items-center gap-2">
|
|
39
39
|
<span class="w-8 h-8 rounded-full flex items-center justify-center text-sm font-bold <?php echo esc_attr( $dot_class ); ?>">
|
|
@@ -15,7 +15,7 @@ $enabled_count = (int) ( $data['enabled_count'] ?? 0 );
|
|
|
15
15
|
$total_count = (int) ( $data['total_count'] ?? 0 );
|
|
16
16
|
?>
|
|
17
17
|
<div class="text-center py-6">
|
|
18
|
-
<div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-
|
|
18
|
+
<div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-neutral-100 text-neutral-600 mb-6" aria-hidden="true">
|
|
19
19
|
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" /></svg>
|
|
20
20
|
</div>
|
|
21
21
|
<h2 class="text-2xl font-bold text-neutral-900 mb-2">
|
|
@@ -17,8 +17,8 @@ $all_pass = $data['all_pass'] ?? false;
|
|
|
17
17
|
<div class="space-y-4">
|
|
18
18
|
<?php foreach ( $requirements as $req ) : ?>
|
|
19
19
|
<?php $pass = ! empty( $req['pass'] ); ?>
|
|
20
|
-
<div class="flex items-center gap-3 p-4 rounded-lg <?php echo $pass ? 'bg-
|
|
21
|
-
<span class="shrink-0 w-8 h-8 rounded-full flex items-center justify-center <?php echo $pass ? 'text-
|
|
20
|
+
<div class="flex items-center gap-3 p-4 rounded-lg <?php echo $pass ? 'bg-neutral-50 dark:bg-neutral-900/20' : 'bg-neutral-50 dark:bg-neutral-900/20'; ?>">
|
|
21
|
+
<span class="shrink-0 w-8 h-8 rounded-full flex items-center justify-center <?php echo $pass ? 'text-neutral-600 bg-neutral-100' : 'text-neutral-600 bg-neutral-100'; ?>">
|
|
22
22
|
<?php if ( $pass ) : ?>
|
|
23
23
|
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" aria-hidden="true"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" /></svg>
|
|
24
24
|
<?php else : ?>
|
package/admin/views/settings.php
CHANGED
|
@@ -28,7 +28,7 @@ $grid_class = 'settings-widget-grid';
|
|
|
28
28
|
</p>
|
|
29
29
|
|
|
30
30
|
<?php if ( $saved ) : ?>
|
|
31
|
-
<div class="mb-6 p-4 bg-
|
|
31
|
+
<div class="mb-6 p-4 bg-neutral-50 border border-neutral-200 rounded-lg text-neutral-800" role="alert">
|
|
32
32
|
<?php esc_html_e( 'Settings saved.', 'sociallane-elements' ); ?>
|
|
33
33
|
</div>
|
|
34
34
|
<?php endif; ?>
|
|
@@ -202,7 +202,9 @@ npm run build</code></pre>
|
|
|
202
202
|
</summary>
|
|
203
203
|
<div class="p-5 pt-0 border-t border-neutral-200 dark:border-neutral-700">
|
|
204
204
|
<p class="mb-2"><?php esc_html_e( 'When widgets.json exists at the plugin root, the plugin runs in package mode: only widget components are loaded. The onboarding wizard, SocialLane settings page, widget preview pages, and this setup guide are not available on that installation.', 'sociallane-elements' ); ?></p>
|
|
205
|
-
<p class="mb-2"><?php esc_html_e( 'To
|
|
205
|
+
<p class="mb-2"><?php esc_html_e( 'To use full admin without removing widgets.json, add this to wp-config.php:', 'sociallane-elements' ); ?></p>
|
|
206
|
+
<pre class="bg-neutral-100 dark:bg-neutral-800 border border-neutral-200 dark:border-neutral-600 rounded-lg p-4 text-sm overflow-x-auto text-neutral-800 dark:text-neutral-200 mb-2"><code>define( 'SOCIALLANE_ELEMENTS_FULL_ADMIN', true );</code></pre>
|
|
207
|
+
<p class="mb-2"><?php esc_html_e( 'Alternatively, remove or rename widgets.json; the plugin will then use the Widget Manager and show all admin features.', 'sociallane-elements' ); ?></p>
|
|
206
208
|
</div>
|
|
207
209
|
</details>
|
|
208
210
|
</section>
|
|
@@ -16,10 +16,10 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
|
16
16
|
<p class="text-neutral-500 mb-8">
|
|
17
17
|
<?php esc_html_e( 'How to add the Widget Catalog to a page and which commands to run so visitors can browse and copy npm install commands for your components.', 'sociallane-elements' ); ?>
|
|
18
18
|
</p>
|
|
19
|
-
<div class="mb-8 p-4 bg-
|
|
19
|
+
<div class="mb-8 p-4 bg-neutral-50 border border-neutral-200 rounded-lg text-neutral-800 text-sm">
|
|
20
20
|
<strong><?php esc_html_e( 'Front-end setup page', 'sociallane-elements' ); ?></strong>
|
|
21
21
|
<?php esc_html_e( 'To give your team a page they can consult anytime, create a new page (e.g. “Widget catalog setup”), add the shortcode', 'sociallane-elements' ); ?>
|
|
22
|
-
<code class="bg-
|
|
22
|
+
<code class="bg-neutral-100 px-1 rounded">[sociallane_widget_catalog_setup]</code>
|
|
23
23
|
<?php esc_html_e( 'and publish. Anyone with the link can view the same setup guide and commands.', 'sociallane-elements' ); ?>
|
|
24
24
|
</div>
|
|
25
25
|
|
|
@@ -121,7 +121,11 @@ npm run build</code></pre>
|
|
|
121
121
|
<?php esc_html_e( 'When widgets.json exists at the plugin root, the plugin runs in package mode: only widget components are loaded. The onboarding wizard, SocialLane settings page, widget preview pages, and this setup guide are not available on that installation.', 'sociallane-elements' ); ?>
|
|
122
122
|
</p>
|
|
123
123
|
<p class="text-neutral-600 mb-2">
|
|
124
|
-
<?php esc_html_e( 'To
|
|
124
|
+
<?php esc_html_e( 'To use full admin without removing widgets.json, add to wp-config.php:', 'sociallane-elements' ); ?>
|
|
125
|
+
<code class="bg-neutral-100 px-1 rounded text-sm block mt-1">define( 'SOCIALLANE_ELEMENTS_FULL_ADMIN', true );</code>
|
|
126
|
+
</p>
|
|
127
|
+
<p class="text-neutral-600 mb-2">
|
|
128
|
+
<?php esc_html_e( 'Alternatively, remove or rename widgets.json; the plugin will then use the Widget Manager and show all admin features.', 'sociallane-elements' ); ?>
|
|
125
129
|
</p>
|
|
126
130
|
</section>
|
|
127
131
|
|
package/assets/css/tailwind.css
CHANGED
|
@@ -24,33 +24,6 @@
|
|
|
24
24
|
|--------------------------------------------------------------------------
|
|
25
25
|
*/
|
|
26
26
|
@theme {
|
|
27
|
-
/* Blue Chill (SocialLane Primary) */
|
|
28
|
-
--color-blue-chill-50: oklch(0.984 0.012 192.5);
|
|
29
|
-
--color-blue-chill-100: oklch(0.964 0.034 192.4);
|
|
30
|
-
--color-blue-chill-200: oklch(0.937 0.063 192.3);
|
|
31
|
-
--color-blue-chill-300: oklch(0.882 0.118 192.2);
|
|
32
|
-
--color-blue-chill-400: oklch(0.827 0.165 192.9);
|
|
33
|
-
--color-blue-chill-500: oklch(0.778 0.138 192.7);
|
|
34
|
-
--color-blue-chill-600: oklch(0.652 0.119 192.5);
|
|
35
|
-
--color-blue-chill-700: oklch(0.523 0.098 192.4);
|
|
36
|
-
--color-blue-chill-800: oklch(0.443 0.075 192.3);
|
|
37
|
-
--color-blue-chill-900: oklch(0.382 0.058 192.2);
|
|
38
|
-
--color-blue-chill-950: oklch(0.279 0.042 192.1);
|
|
39
|
-
|
|
40
|
-
/* Web Orange (SocialLane Secondary) */
|
|
41
|
-
|
|
42
|
-
--color-web-orange-50: oklch(0.984 0.038 95.8);
|
|
43
|
-
--color-web-orange-100: oklch(0.958 0.088 95.5);
|
|
44
|
-
--color-web-orange-200: oklch(0.912 0.158 95.2);
|
|
45
|
-
--color-web-orange-300: oklch(0.858 0.188 94.9);
|
|
46
|
-
--color-web-orange-400: oklch(0.818 0.178 85.2);
|
|
47
|
-
--color-web-orange-500: oklch(0.768 0.168 70.5);
|
|
48
|
-
--color-web-orange-600: oklch(0.652 0.158 55.2);
|
|
49
|
-
--color-web-orange-700: oklch(0.532 0.138 45.1);
|
|
50
|
-
--color-web-orange-800: oklch(0.448 0.108 48.2);
|
|
51
|
-
--color-web-orange-900: oklch(0.398 0.088 55.3);
|
|
52
|
-
--color-web-orange-950: oklch(0.268 0.068 45.5);
|
|
53
|
-
|
|
54
27
|
/* Primary - dark gray (emphasis, buttons, links) */
|
|
55
28
|
--color-primary: oklch(0.45 0 0);
|
|
56
29
|
--color-primary-light: oklch(0.65 0 0);
|
|
@@ -590,7 +563,7 @@
|
|
|
590
563
|
}
|
|
591
564
|
.sl-cta-notify-form input[type='email'],
|
|
592
565
|
.sl-cta-notify-form input[type='text'] {
|
|
593
|
-
@apply w-full px-4 py-3 text-base leading-normal font-sans bg-neutral-800 border border-neutral-600 rounded-lg text-neutral-100 placeholder:text-neutral-500 focus:outline-none focus:ring-2 focus:ring-
|
|
566
|
+
@apply w-full px-4 py-3 text-base leading-normal font-sans bg-neutral-800 border border-neutral-600 rounded-lg text-neutral-100 placeholder:text-neutral-500 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-0;
|
|
594
567
|
}
|
|
595
568
|
.sl-cta-notify-form input[type='submit'],
|
|
596
569
|
.sl-cta-notify-form button[type='submit'] {
|
|
@@ -73,12 +73,14 @@ class Button extends Widget_Base {
|
|
|
73
73
|
'label' => esc_html__( 'Style', 'sociallane-elements' ),
|
|
74
74
|
'type' => Controls_Manager::SELECT,
|
|
75
75
|
'default' => 'primary',
|
|
76
|
-
'options' =>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
'options' => function_exists( 'sociallane_get_button_preset_options' )
|
|
77
|
+
? sociallane_get_button_preset_options()
|
|
78
|
+
: [
|
|
79
|
+
'primary' => esc_html__( 'Primary', 'sociallane-elements' ),
|
|
80
|
+
'secondary' => esc_html__( 'Secondary', 'sociallane-elements' ),
|
|
81
|
+
'ghost' => esc_html__( 'Ghost', 'sociallane-elements' ),
|
|
82
|
+
'outline' => esc_html__( 'Outline', 'sociallane-elements' ),
|
|
83
|
+
],
|
|
82
84
|
]
|
|
83
85
|
);
|
|
84
86
|
|
|
@@ -88,8 +90,8 @@ class Button extends Widget_Base {
|
|
|
88
90
|
'label' => esc_html__( 'Color', 'sociallane-elements' ),
|
|
89
91
|
'type' => Controls_Manager::SELECT,
|
|
90
92
|
'default' => 'default',
|
|
91
|
-
'options' => function_exists( 'sociallane_get_button_color_options' ) ? sociallane_get_button_color_options() : [ 'default' => esc_html__( 'Default
|
|
92
|
-
'description' => esc_html__( '
|
|
93
|
+
'options' => function_exists( 'sociallane_get_button_color_options' ) ? sociallane_get_button_color_options() : [ 'default' => esc_html__( 'Default', 'sociallane-elements' ) ],
|
|
94
|
+
'description' => esc_html__( 'Uses the default theme color.', 'sociallane-elements' ),
|
|
93
95
|
]
|
|
94
96
|
);
|
|
95
97
|
|
|
@@ -140,21 +142,32 @@ class Button extends Widget_Base {
|
|
|
140
142
|
'url' => esc_url( $url_data['url'] ?? '#' ),
|
|
141
143
|
'variant' => $settings['variant'] ?? 'primary',
|
|
142
144
|
'size' => $settings['size'] ?? 'md',
|
|
143
|
-
'color' =>
|
|
145
|
+
'color' => function_exists( 'sociallane_normalize_button_color' )
|
|
146
|
+
? sociallane_normalize_button_color( (string) ( $settings['color'] ?? 'default' ) )
|
|
147
|
+
: 'default',
|
|
144
148
|
'icon' => $settings['icon'] ?? null,
|
|
145
149
|
'icon_position' => $settings['icon_position'] ?? 'right',
|
|
146
150
|
'attrs' => '',
|
|
147
151
|
];
|
|
148
152
|
|
|
149
153
|
$attrs = [];
|
|
150
|
-
if (
|
|
151
|
-
$attrs
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
if ( function_exists( 'sociallane_build_link_attrs' ) ) {
|
|
155
|
+
$button['attrs'] = sociallane_build_link_attrs( $url_data );
|
|
156
|
+
} else {
|
|
157
|
+
$rel_tokens = [];
|
|
158
|
+
if ( ! empty( $url_data['is_external'] ) ) {
|
|
159
|
+
$attrs[] = 'target="_blank"';
|
|
160
|
+
$rel_tokens[] = 'noopener';
|
|
161
|
+
$rel_tokens[] = 'noreferrer';
|
|
162
|
+
}
|
|
163
|
+
if ( ! empty( $url_data['nofollow'] ) ) {
|
|
164
|
+
$rel_tokens[] = 'nofollow';
|
|
165
|
+
}
|
|
166
|
+
if ( ! empty( $rel_tokens ) ) {
|
|
167
|
+
$attrs[] = 'rel="' . esc_attr( implode( ' ', array_values( array_unique( $rel_tokens ) ) ) ) . '"';
|
|
168
|
+
}
|
|
169
|
+
$button['attrs'] = implode( ' ', $attrs );
|
|
156
170
|
}
|
|
157
|
-
$button['attrs'] = implode( ' ', $attrs );
|
|
158
171
|
|
|
159
172
|
include __DIR__ . '/templates/render.php';
|
|
160
173
|
}
|
|
@@ -25,37 +25,21 @@ $icon = $button['icon'] ?? null;
|
|
|
25
25
|
$icon_position = $button['icon_position'] ?? 'right';
|
|
26
26
|
$attrs = $button['attrs'] ?? '';
|
|
27
27
|
$extra_class = $button['class'] ?? '';
|
|
28
|
+
// Keep color key for backward compatibility; palette is default-only.
|
|
29
|
+
if ( function_exists( 'sociallane_normalize_button_color' ) ) {
|
|
30
|
+
$color = sociallane_normalize_button_color( (string) $color );
|
|
31
|
+
} else {
|
|
32
|
+
$color = 'default';
|
|
33
|
+
}
|
|
28
34
|
|
|
29
35
|
// Variant styles: Primary, Secondary, Ghost, Outline
|
|
30
36
|
$variant_classes = [
|
|
31
|
-
'primary' => 'bg-
|
|
32
|
-
'secondary' => 'bg-
|
|
37
|
+
'primary' => 'bg-primary text-white hover:bg-primary-dark focus:ring-2 focus:ring-primary focus:ring-offset-2 dark:bg-primary-light dark:text-neutral-900 dark:hover:bg-primary',
|
|
38
|
+
'secondary' => 'bg-secondary text-white hover:bg-secondary-dark focus:ring-2 focus:ring-secondary focus:ring-offset-2 dark:bg-secondary-light dark:text-neutral-900 dark:hover:bg-secondary',
|
|
33
39
|
'ghost' => 'bg-transparent text-primary hover:bg-primary/10 focus:ring-2 focus:ring-primary focus:ring-offset-2 dark:text-primary-light dark:hover:bg-white/10 dark:focus:ring-offset-neutral-900',
|
|
34
40
|
'outline' => 'bg-transparent text-primary border border-primary hover:bg-primary hover:text-white focus:ring-2 focus:ring-primary focus:ring-offset-2 dark:text-primary-light dark:border-primary-light dark:hover:bg-primary dark:hover:text-white dark:focus:ring-offset-neutral-900',
|
|
35
41
|
];
|
|
36
42
|
|
|
37
|
-
// Optional accent color override: same style, different palette
|
|
38
|
-
$accent_classes = [
|
|
39
|
-
'primary' => [
|
|
40
|
-
'default' => null,
|
|
41
|
-
'blue-chill' => 'bg-blue-chill-500 text-white hover:bg-blue-chill-600 focus:ring-2 focus:ring-blue-chill-500 focus:ring-offset-2 dark:focus:ring-offset-neutral-900',
|
|
42
|
-
'web-orange' => 'bg-web-orange-500 text-white hover:bg-web-orange-600 focus:ring-2 focus:ring-web-orange-500 focus:ring-offset-2 dark:focus:ring-offset-neutral-900',
|
|
43
|
-
],
|
|
44
|
-
'outline' => [
|
|
45
|
-
'default' => null,
|
|
46
|
-
'blue-chill' => 'bg-transparent text-blue-chill-500 border border-blue-chill-500 hover:bg-blue-chill-500 hover:text-white focus:ring-2 focus:ring-blue-chill-500 focus:ring-offset-2 dark:text-blue-chill-300 dark:border-blue-chill-300 dark:hover:bg-blue-chill-500 dark:hover:text-white dark:focus:ring-offset-neutral-900',
|
|
47
|
-
'web-orange' => 'bg-transparent text-web-orange-500 border border-web-orange-500 hover:bg-web-orange-500 hover:text-white focus:ring-2 focus:ring-web-orange-500 focus:ring-offset-2 dark:text-web-orange-400 dark:border-web-orange-400 dark:hover:bg-web-orange-500 dark:hover:text-white dark:focus:ring-offset-neutral-900',
|
|
48
|
-
],
|
|
49
|
-
'ghost' => [
|
|
50
|
-
'default' => null,
|
|
51
|
-
'blue-chill' => 'bg-transparent text-blue-chill-500 hover:bg-blue-chill-500/10 focus:ring-2 focus:ring-blue-chill-500 focus:ring-offset-2 dark:text-blue-chill-300 dark:hover:bg-blue-chill-500/10 dark:focus:ring-offset-neutral-900',
|
|
52
|
-
'web-orange' => 'bg-transparent text-web-orange-500 hover:bg-web-orange-500/10 focus:ring-2 focus:ring-web-orange-500 focus:ring-offset-2 dark:text-web-orange-400 dark:hover:bg-web-orange-500/10 dark:focus:ring-offset-neutral-900',
|
|
53
|
-
],
|
|
54
|
-
];
|
|
55
|
-
if ( in_array( $variant, [ 'primary', 'outline', 'ghost' ], true ) && $color !== 'default' && isset( $accent_classes[ $variant ][ $color ] ) ) {
|
|
56
|
-
$variant_classes[ $variant ] = $accent_classes[ $variant ][ $color ];
|
|
57
|
-
}
|
|
58
|
-
|
|
59
43
|
$size_classes = [
|
|
60
44
|
'sm' => 'px-4 py-2 text-sm gap-1.5',
|
|
61
45
|
'md' => 'px-6 py-3 text-base gap-2',
|
|
@@ -57,15 +57,25 @@ function sociallane_parse_button_preset( string $preset ): array {
|
|
|
57
57
|
/**
|
|
58
58
|
* Get button color (accent) options for an optional "Button color" dropdown
|
|
59
59
|
*
|
|
60
|
-
*
|
|
61
|
-
* Pass the selected value as $button['color'] when rendering; default means use variant default.
|
|
60
|
+
* Default-only palette to keep button styling consistent across widgets.
|
|
62
61
|
*
|
|
63
62
|
* @return array<string, string> Option key => label
|
|
64
63
|
*/
|
|
65
64
|
function sociallane_get_button_color_options(): array {
|
|
66
65
|
return [
|
|
67
|
-
'default'
|
|
68
|
-
'blue-chill' => esc_html__( 'Blue Chilli', 'sociallane-elements' ),
|
|
69
|
-
'web-orange' => esc_html__( 'Web Orange', 'sociallane-elements' ),
|
|
66
|
+
'default' => esc_html__( 'Default', 'sociallane-elements' ),
|
|
70
67
|
];
|
|
71
68
|
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Normalize a button color key to an allowed option.
|
|
72
|
+
*
|
|
73
|
+
* @param string $color Requested button color key.
|
|
74
|
+
* @return string Allowed color key; defaults to 'default'.
|
|
75
|
+
*/
|
|
76
|
+
function sociallane_normalize_button_color( string $color ): string {
|
|
77
|
+
$color = trim( $color );
|
|
78
|
+
$options = sociallane_get_button_color_options();
|
|
79
|
+
|
|
80
|
+
return isset( $options[ $color ] ) ? $color : 'default';
|
|
81
|
+
}
|
|
@@ -592,7 +592,7 @@ class Widget_Manager {
|
|
|
592
592
|
'navigation' => 'navigation',
|
|
593
593
|
'footers' => 'footer',
|
|
594
594
|
'logos' => 'logo-grid-centered',
|
|
595
|
-
'dashboards' => 'posts
|
|
595
|
+
'dashboards' => 'grid-posts',
|
|
596
596
|
];
|
|
597
597
|
$category = $widget['category'] ?? '';
|
|
598
598
|
$fallback_slug = $category_fallbacks[ $category ] ?? '';
|
package/package.json
CHANGED
|
@@ -24,33 +24,6 @@
|
|
|
24
24
|
|--------------------------------------------------------------------------
|
|
25
25
|
*/
|
|
26
26
|
@theme {
|
|
27
|
-
/* Blue Chill (SocialLane Primary) */
|
|
28
|
-
--color-blue-chill-50: oklch(0.984 0.012 192.5);
|
|
29
|
-
--color-blue-chill-100: oklch(0.964 0.034 192.4);
|
|
30
|
-
--color-blue-chill-200: oklch(0.937 0.063 192.3);
|
|
31
|
-
--color-blue-chill-300: oklch(0.882 0.118 192.2);
|
|
32
|
-
--color-blue-chill-400: oklch(0.827 0.165 192.9);
|
|
33
|
-
--color-blue-chill-500: oklch(0.778 0.138 192.7);
|
|
34
|
-
--color-blue-chill-600: oklch(0.652 0.119 192.5);
|
|
35
|
-
--color-blue-chill-700: oklch(0.523 0.098 192.4);
|
|
36
|
-
--color-blue-chill-800: oklch(0.443 0.075 192.3);
|
|
37
|
-
--color-blue-chill-900: oklch(0.382 0.058 192.2);
|
|
38
|
-
--color-blue-chill-950: oklch(0.279 0.042 192.1);
|
|
39
|
-
|
|
40
|
-
/* Web Orange (SocialLane Secondary) */
|
|
41
|
-
|
|
42
|
-
--color-web-orange-50: oklch(0.984 0.038 95.8);
|
|
43
|
-
--color-web-orange-100: oklch(0.958 0.088 95.5);
|
|
44
|
-
--color-web-orange-200: oklch(0.912 0.158 95.2);
|
|
45
|
-
--color-web-orange-300: oklch(0.858 0.188 94.9);
|
|
46
|
-
--color-web-orange-400: oklch(0.818 0.178 85.2);
|
|
47
|
-
--color-web-orange-500: oklch(0.768 0.168 70.5);
|
|
48
|
-
--color-web-orange-600: oklch(0.652 0.158 55.2);
|
|
49
|
-
--color-web-orange-700: oklch(0.532 0.138 45.1);
|
|
50
|
-
--color-web-orange-800: oklch(0.448 0.108 48.2);
|
|
51
|
-
--color-web-orange-900: oklch(0.398 0.088 55.3);
|
|
52
|
-
--color-web-orange-950: oklch(0.268 0.068 45.5);
|
|
53
|
-
|
|
54
27
|
/* Primary - dark gray (emphasis, buttons, links) */
|
|
55
28
|
--color-primary: oklch(0.45 0 0);
|
|
56
29
|
--color-primary-light: oklch(0.65 0 0);
|
|
@@ -590,7 +563,7 @@
|
|
|
590
563
|
}
|
|
591
564
|
.sl-cta-notify-form input[type='email'],
|
|
592
565
|
.sl-cta-notify-form input[type='text'] {
|
|
593
|
-
@apply w-full px-4 py-3 text-base leading-normal font-sans bg-neutral-800 border border-neutral-600 rounded-lg text-neutral-100 placeholder:text-neutral-500 focus:outline-none focus:ring-2 focus:ring-
|
|
566
|
+
@apply w-full px-4 py-3 text-base leading-normal font-sans bg-neutral-800 border border-neutral-600 rounded-lg text-neutral-100 placeholder:text-neutral-500 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-0;
|
|
594
567
|
}
|
|
595
568
|
.sl-cta-notify-form input[type='submit'],
|
|
596
569
|
.sl-cta-notify-form button[type='submit'] {
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
+
"_vendor-gsap-W43tiS41.js": {
|
|
3
|
+
"file": "vendor-gsap-W43tiS41.js",
|
|
4
|
+
"name": "vendor-gsap"
|
|
5
|
+
},
|
|
6
|
+
"_vendor-lenis-L8jc5Amd.js": {
|
|
7
|
+
"file": "vendor-lenis-L8jc5Amd.js",
|
|
8
|
+
"name": "vendor-lenis"
|
|
9
|
+
},
|
|
2
10
|
"assets/css/tailwind.css": {
|
|
3
|
-
"file": "tailwind-
|
|
11
|
+
"file": "tailwind-BBMzypmd.css",
|
|
4
12
|
"src": "assets/css/tailwind.css",
|
|
5
13
|
"isEntry": true
|
|
6
14
|
},
|
|
7
15
|
"assets/js/animations.js": {
|
|
8
|
-
"file": "animations-
|
|
16
|
+
"file": "animations-BfenTMbz.js",
|
|
9
17
|
"name": "animations",
|
|
10
18
|
"src": "assets/js/animations.js",
|
|
11
|
-
"isEntry": true
|
|
19
|
+
"isEntry": true,
|
|
20
|
+
"imports": [
|
|
21
|
+
"_vendor-gsap-W43tiS41.js",
|
|
22
|
+
"_vendor-lenis-L8jc5Amd.js"
|
|
23
|
+
]
|
|
12
24
|
}
|
|
13
25
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as a,S as p,a as f}from"./vendor-gsap-W43tiS41.js";import{L}from"./vendor-lenis-L8jc5Amd.js";const A={"fade-up":{opacity:0,y:30},"fade-down":{opacity:0,y:-30},"fade-left":{opacity:0,x:30},"fade-right":{opacity:0,x:-30},scale:{opacity:0,scale:.95},rotate:{opacity:0,rotation:-5}};function T(t=document){t instanceof Document||t.ownerDocument,(t instanceof Document?t.body:t).querySelectorAll("[data-sl-reveal]").forEach(e=>{const r=e.getAttribute("data-sl-reveal")||"fade-up",s=parseFloat(e.getAttribute("data-sl-delay")||0),d=parseFloat(e.getAttribute("data-sl-duration")||.6),i=A[r]??A["fade-up"];a.fromTo(e,i,{opacity:1,x:0,y:0,scale:1,rotation:0,duration:d,delay:s,ease:"power2.out",scrollTrigger:{trigger:e,start:"top 85%",toggleActions:"play none none none"}})})}function k(t=document){(t instanceof Document?t.body:t).querySelectorAll("[data-sl-stagger]").forEach(e=>{const r=e.getAttribute("data-sl-stagger"),s=r?parseFloat(r):.1,d=Array.from(e.children).filter(i=>!i.hasAttribute("data-sl-stagger-skip"));d.length!==0&&a.fromTo(d,{opacity:0,y:20},{opacity:1,y:0,duration:.5,stagger:s,ease:"power2.out",scrollTrigger:{trigger:e,start:"top 85%",toggleActions:"play none none none"}})})}const q=new WeakMap;function M(t=document){(t instanceof Document?t.body:t).querySelectorAll("[data-sl-split]").forEach(e=>{const r=e.getAttribute("data-sl-split")||"words",s=parseFloat(e.getAttribute("data-sl-split-stagger")||.02);if(!e.textContent.trim())return;const i={chars:"chars",words:"words",lines:"lines"}[r]||"words",l=new p(e,{type:i,charsClass:"sl-split-char",wordsClass:"sl-split-word",linesClass:"sl-split-line"});q.set(e,l);const u=l[i]??l.chars??l.words??l.lines;!u||u.length===0||a.fromTo(u,{opacity:0,y:15},{opacity:1,y:0,duration:.5,stagger:s,ease:"power2.out",scrollTrigger:{trigger:e,start:"top 85%",toggleActions:"play none none none"}})})}function x(t=document){(t instanceof Document?t.body:t).querySelectorAll("[data-sl-pin]").forEach(e=>{const r=e.getAttribute("data-sl-pin-end")||"+=100%";f.create({trigger:e,start:"top top",end:r,pin:!0,pinSpacing:!0})})}const v=.35,E="power2.out";function F(t=document){const o=t instanceof Document?t:t.ownerDocument??document,n=t instanceof Document?o.body:t;if(!n||typeof n.querySelectorAll!="function")return;n.querySelectorAll("[data-sl-hover-reveal]").forEach(r=>{const s=r.querySelectorAll("[data-sl-hover-reveal-collapsible]");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){s.forEach(c=>{a.set(c,{height:"auto",opacity:1,transform:"none",overflow:"visible"})});return}s.forEach(c=>{a.set(c,{height:0,opacity:0,transform:"translateY(10px)",overflow:"hidden"})});let i=null,l=null;const u=()=>{l&&l.kill(),i=a.timeline({overwrite:!0}),s.forEach((c,y)=>{const D=c.scrollHeight;i.to(c,{height:D,opacity:1,transform:"translateY(0)",overflow:"visible",duration:v,ease:E},y*.05)})},w=()=>{i&&i.kill(),l=a.timeline({overwrite:!0}),s.forEach((c,y)=>{l.to(c,{height:0,opacity:0,transform:"translateY(10px)",overflow:"hidden",duration:v*.8,ease:E},y*.03)})};r.addEventListener("mouseenter",u),r.addEventListener("mouseleave",w),r.addEventListener("focusin",u),r.addEventListener("focusout",w)})}a.registerPlugin(f,p);const b=window.matchMedia("(prefers-reduced-motion: reduce)").matches,I=()=>typeof document<"u"&&document.body&&document.body.classList.contains("elementor-editor-active"),C=()=>typeof window<"u"&&window.elementorFrontend;let g=null;function h(t=document){const o=t instanceof Document?t:t?.ownerDocument??document,n=t instanceof Document?o.body:t;n&&(T(n),k(n),M(n),x(n),F(n))}function H(t){const o=t instanceof Document?t.body:t;!o||typeof o.contains!="function"||f.getAll().forEach(n=>{n.trigger&&o.contains(n.trigger)&&n.kill()})}function m(){if(b){const t=document.querySelectorAll("[data-sl-reveal], [data-sl-split], [data-sl-stagger]");a.set(t,{opacity:1,transform:"none"}),document.querySelectorAll("[data-sl-stagger]").forEach(o=>{a.set(o.children,{opacity:1,transform:"none"})});return}h(document)}function S(){if(b){m(),window.SocialLaneAnimations={gsap:a,ScrollTrigger:f,SplitText:p,lenis:null,init:m};return}I()||(g=new L({lerp:.1,smoothWheel:!0}),g.on("scroll",f.update),a.ticker.add(t=>g.raf(t*1e3)),a.ticker.lagSmoothing(0)),m(),window.SocialLaneAnimations={gsap:a,ScrollTrigger:f,SplitText:p,lenis:g,init:m,initInScope:h},C()&&window.elementorFrontend?.hooks&&window.elementorFrontend.hooks.addAction("frontend/element_ready/global",t=>{const o=t&&t[0];o&&(H(o),h(o))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",S):S();
|