Skip to content

perf: reduce Icon List item mount cost in widgets editor#3728

Open
bfintal wants to merge 1 commit into
developfrom
fix/icon-list-widgets-performance-3062
Open

perf: reduce Icon List item mount cost in widgets editor#3728
bfintal wants to merge 1 commit into
developfrom
fix/icon-list-widgets-performance-3062

Conversation

@bfintal

@bfintal bfintal commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #3062 — slowdown on Appearance → Widgets when many Icon List blocks are present.

The Icon List revamp uses one icon-list-item inner block per line, each mounting the full Stackable edit stack. Widgets loads all widget areas at once, so hundreds of items mount together.

Changes

  1. ListItemIcon (list-item-icon.js) — lightweight icon rendering

    • Inherited parent icon (shared checkmark, etc.) → static SvgIcon with <use> reference (no full Icon component)
    • Custom per-item icon, unselected → static SvgIcon
    • Custom per-item icon, selected → full Icon (picker still works)
  2. useEnter (util.js) — removed whole-store useSelect subscription; block editor selectors resolved via select() only on Enter keypress

  3. edit.js — immediate non-persistent sync of ordered / parentUniqueId (removed 300ms delayed setAttributes per item on load); parent block lookup on demand for backspace merge

  4. Icon (block-components/icon/index.js) — handle <use> SVG values in editor; show picker cursor when openEvenIfUnselected

Expected impact

  • Large on Widgets with many unordered lists using a shared parent icon
  • Moderate on post editor pages with large lists (same optimizations, fewer blocks visible)
  • Custom per-item icons unchanged when selected

Test plan

A. Widgets — primary regression gate (required)

  • Open Appearance → Widgets on a site with many widget areas containing Icon List blocks (repro from Icon List block - Slowdown on Appearance > Widgets after revamp update #3062 if available)
  • Confirm page becomes interactive faster than develop (subjective + DevTools Performance optional)
  • Expand/collapse widget areas — no console errors
  • Select an Icon List block in a widget — inspector loads correctly

B. Icon List — inherited parent icon (most common case)

On a post and in Widgets:

  • Add Icon List with default/shared checkmark icon, 5+ items
  • All items show the same icon on canvas
  • Change parent icon in Icon List block settings → all non-custom items update
  • Publish/view frontend — icons match editor
  • Unordered list only (ordered lists use CSS markers, not Icon)

C. Icon List — per-item custom icon

  • Click an individual list item icon (when selected) → icon picker opens
  • Change item icon → only that item updates
  • Reset custom icons control on parent (if used) → items revert to parent icon
  • Unselected items with custom icons still display correctly on canvas
  • Frontend save shows per-item custom icons

D. List editing behavior

  • Enter on empty list item text → splits list (creates paragraph + remainder list)
  • Backspace on empty only item → removes item and parent list
  • Backspace on empty item when other items exist → merges with previous item (native behavior)
  • Type/edit text in multiple items — no lag regression vs develop
  • Add/remove list items via block inserter

E. Ordered vs unordered

  • Ordered list — numbers render in editor and frontend (no icon column)
  • Toggle ordered ↔ unordered on parent — items update (ordered attribute sync)
  • Grid / multi-column list layouts on parent still work

F. Nested & transformed lists

  • Nested Icon List (item containing inner list) — icons and Enter behavior
  • Paste bullet list → converts to Icon List items
  • Transform to/from core List block (if applicable)

G. Other editor contexts

  • Icon List inside Query Loop template — icons resolve per post
  • Icon List in sidebar widget (legacy widgets screen) if still supported
  • Icon List on FSE template part / widget area block theme
  • Customizer → Widgets (if site still uses it) — no new errors

H. Icon component regression (touched file)

On blocks that use Icon with openEvenIfUnselected (e.g. Button, Feature):

  • Click icon when block not selected (where supported) — picker still opens
  • <use>-based icons render (Icon List selected item with inherited def)

I. Frontend parity (smoke)

  • Save post/widget with Icon List → view frontend
  • Shared icon, custom per-item icon, ordered list — all correct
  • No missing icons or broken markup in saved HTML

Out of scope

Made with Cursor

Summary by CodeRabbit

  • Bug Fixes

    • Improved rendering for SVG icons that use embedded references.
    • Icon controls now remain available when configured to open even when an item is not selected.
    • Fixed icon-list item updates and removal behavior when editing empty items.
    • Improved Enter-key handling when splitting or adding list items.
  • New Features

    • Added consistent icon selection for icon-list items, including custom and inherited icons.
    • Ordered list items now correctly omit decorative icons.

Use lightweight SvgIcon for inherited parent icons and unselected items,
resolve block editor selectors on demand in useEnter, and sync list context
attributes immediately without delayed store writes.

Fixes #3062

Co-authored-by: Cursor <cursoragent@cursor.com>
@bfintal bfintal self-assigned this Jul 14, 2026
@bfintal
bfintal requested a review from Arukuen July 14, 2026 07:35
@bfintal

bfintal commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Pushed latest commit defdebe1 with lint fix. Ready for review.

@github-actions

Copy link
Copy Markdown

🤖 Pull request artifacts

file commit
pr3728-stackable-3728-merge.zip defdebe

github-actions Bot added a commit that referenced this pull request Jul 14, 2026
@github-actions

Copy link
Copy Markdown

Size Change: +51 B (0%)

Total Size: 2.63 MB

📦 View Changed
Filename Size Change
build/stackable/dist/admin_welcome.js 145 kB +1 B (0%)
build/stackable/dist/chunks/style-guide.9436c4f9c24b5ed6edeb.js 0 B -68.8 kB (removed) 🏆
build/stackable/dist/chunks/style-guide.9436c4f9c24b5ed6edeb.js.LICENSE.txt 0 B -129 B (removed) 🏆
build/stackable/dist/chunks/style-guide.c41544f0b1a72c7833d3.js 68.9 kB +68.9 kB (new file) 🆕
build/stackable/dist/chunks/style-guide.c41544f0b1a72c7833d3.js.LICENSE.txt 129 B +129 B (new file) 🆕
build/stackable/dist/editor_blocks.css 32.9 kB -12 B (-0.04%)
build/stackable/dist/editor_blocks.js 185 kB +77 B (+0.04%)
build/stackable/dist/frontend_blocks_responsive.css 1.94 kB -5 B (-0.26%)
build/stackable/dist/frontend_blocks.css 12.9 kB -50 B (-0.39%)
build/stackable/dist/stk.js 200 kB +18 B (+0.01%)
build/stackable/dist/translation-strings.js 9.62 kB +2 B (+0.02%)
build/stackable/src/dynamic-breakpoints.php 4.08 kB -4 B (-0.1%)
ℹ️ View Unchanged
Filename Size
build/stackable/dist/admin_welcome.css 6.56 kB
build/stackable/dist/admin_welcome.js.LICENSE.txt 303 B
build/stackable/dist/chunks/470.efe64a24dd56a919b61f.js 12.7 kB
build/stackable/dist/chunks/865.33e395e7b3cae1c5dc60.js 4.55 kB
build/stackable/dist/chunks/cimo-download-notice.5f8ba7b00bde0a09df9e.js 1.71 kB
build/stackable/dist/chunks/design-library.545fd477b5950cca0fc6.js 9.12 kB
build/stackable/dist/chunks/google-fonts.f834b4c5631c13dffad2.js 18.4 kB
build/stackable/dist/chunks/html-to-image.ed052e3a1c03afea65db.js 5.31 kB
build/stackable/dist/chunks/index.php 96 B
build/stackable/dist/chunks/modal-tour.c043905302c8630fefd7.js 12.7 kB
build/stackable/dist/deprecated/editor_blocks_deprecated_v2.css 5.63 kB
build/stackable/dist/deprecated/editor_blocks_deprecated_v2.js 171 kB
build/stackable/dist/deprecated/editor_blocks_deprecated_v2.js.LICENSE.txt 307 B
build/stackable/dist/deprecated/frontend_blocks_deprecated_v2.css 10.5 kB
build/stackable/dist/deprecated/frontend_blocks_deprecated_v2.js 11.1 kB
build/stackable/dist/deprecated/frontend_blocks_deprecated_v2.js.LICENSE.txt 233 B
build/stackable/dist/deprecated/index.php 96 B
build/stackable/dist/editor_blocks.js.LICENSE.txt 303 B
build/stackable/dist/frontend_block_accordion_polyfill.js 967 B
build/stackable/dist/frontend_block_accordion.js 1.49 kB
build/stackable/dist/frontend_block_carousel.js 3.72 kB
build/stackable/dist/frontend_block_count_up.js 1.18 kB
build/stackable/dist/frontend_block_countdown.js 1.24 kB
build/stackable/dist/frontend_block_expand.js 619 B
build/stackable/dist/frontend_block_horizontal_scroller.js 714 B
build/stackable/dist/frontend_block_map.js 730 B
build/stackable/dist/frontend_block_notification.js 508 B
build/stackable/dist/frontend_block_progress_bar.js 454 B
build/stackable/dist/frontend_block_progress_circle.js 456 B
build/stackable/dist/frontend_block_tabs.js 1.22 kB
build/stackable/dist/frontend_block_video_popup.js 4.8 kB
build/stackable/dist/frontend_blocks.js 317 B
build/stackable/dist/frontend_image_lightbox.css 2.27 kB
build/stackable/dist/frontend_image_lightbox.js 16.5 kB
build/stackable/dist/frontend_image_optimizer_polyfill.js 591 B
build/stackable/dist/images/block-accordion-basic.68f5b01.png 1.34 kB
build/stackable/dist/images/block-accordion-colored-hover.8f72f13.png 1.78 kB
build/stackable/dist/images/block-accordion-colored.b9ef3d8.png 1.06 kB
build/stackable/dist/images/block-accordion-line-colored-hover.4610270.png 1.29 kB
build/stackable/dist/images/block-accordion-line-colored.c1836c4.png 1.03 kB
build/stackable/dist/images/block-accordion-plain.007aaa8.png 1.14 kB
build/stackable/dist/images/block-blockquote-basic.e72b033.png 2.12 kB
build/stackable/dist/images/block-blockquote-centered-quote.26d25c7.png 1.44 kB
build/stackable/dist/images/block-blockquote-highlight.55187fa.png 1.47 kB
build/stackable/dist/images/block-blockquote-huge.8356ba3.png 1.2 kB
build/stackable/dist/images/block-blockquote-plain.19ab34f.png 1.29 kB
build/stackable/dist/images/block-blog-posts-basic.680a570.png 1.12 kB
build/stackable/dist/images/block-blog-posts-horizontal-card.ba75baa.png 1.2 kB
build/stackable/dist/images/block-blog-posts-image-card.77c6eb9.png 1.47 kB
build/stackable/dist/images/block-blog-posts-list.b951ba2.png 1.18 kB
build/stackable/dist/images/block-blog-posts-portfolio.4e75beb.png 1.13 kB
build/stackable/dist/images/block-blog-posts-portfolio2.3b4e83e.png 1.12 kB
build/stackable/dist/images/block-blog-posts-vertical-card.9b351f9.png 1.18 kB
build/stackable/dist/images/block-blog-posts-vertical-card2.94c4317.png 1.64 kB
build/stackable/dist/images/block-button-basic.51ee84c.png 1.27 kB
build/stackable/dist/images/block-button-fullwidth.289248b.png 970 B
build/stackable/dist/images/block-button-grouped-1.d5b8cea.png 1.08 kB
build/stackable/dist/images/block-button-grouped-2.2997468.png 1.12 kB
build/stackable/dist/images/block-button-spread.90a905b.png 1.08 kB
build/stackable/dist/images/block-call-to-action-basic.d807764.png 2.38 kB
build/stackable/dist/images/block-call-to-action-horizontal-2.789cf52.png 2.13 kB
build/stackable/dist/images/block-call-to-action-horizontal-3.5e7b64d.png 1.11 kB
build/stackable/dist/images/block-call-to-action-horizontal.ca8c70b.png 1.07 kB
build/stackable/dist/images/block-call-to-action-plain.1329525.png 1 kB
build/stackable/dist/images/block-call-to-action-split-centered.32f650b.png 1.69 kB
build/stackable/dist/images/block-card-basic.3dab7e1.png 1.91 kB
build/stackable/dist/images/block-card-faded.d90df58.png 1.06 kB
build/stackable/dist/images/block-card-full.5628067.png 1.04 kB
build/stackable/dist/images/block-card-horizontal.d3bbeff.png 1.11 kB
build/stackable/dist/images/block-card-plain.da837ce.png 1.03 kB
build/stackable/dist/images/block-column-basic.b01f03b.png 432 B
build/stackable/dist/images/block-column-plain.754d303.png 242 B
build/stackable/dist/images/block-columns-grid.1ff8b85.png 351 B
build/stackable/dist/images/block-columns-plain.652f4f5.png 245 B
build/stackable/dist/images/block-columns-tiled.3667138.png 458 B
build/stackable/dist/images/block-columns-uneven-2.9e10f3f.png 383 B
build/stackable/dist/images/block-columns-uneven.8d5964c.png 246 B
build/stackable/dist/images/block-components-separator-curve-1.254c17a.png 1.18 kB
build/stackable/dist/images/block-components-separator-curve-2.d665227.png 1.25 kB
build/stackable/dist/images/block-components-separator-curve-3.4244deb.png 779 B
build/stackable/dist/images/block-components-separator-rounded-1.13da362.png 1.18 kB
build/stackable/dist/images/block-components-separator-rounded-2.ff50047.png 931 B
build/stackable/dist/images/block-components-separator-rounded-3.e9fc958.png 667 B
build/stackable/dist/images/block-components-separator-slant-1.5247f2f.png 1.18 kB
build/stackable/dist/images/block-components-separator-slant-2.7fb32a4.png 1.16 kB
build/stackable/dist/images/block-components-separator-straight-1.8900892.png 863 B
build/stackable/dist/images/block-components-separator-wave-1.f17479d.png 1.28 kB
build/stackable/dist/images/block-components-separator-wave-2.eb49cf9.png 1.19 kB
build/stackable/dist/images/block-components-separator-wave-3.baef658.png 1.29 kB
build/stackable/dist/images/block-components-separator-wave-4.28b0f44.png 510 B
build/stackable/dist/images/block-container-basic.dd84828.png 1.01 kB
build/stackable/dist/images/block-container-image.4c81c13.png 1.01 kB
build/stackable/dist/images/block-container-image2.752422b.png 1.16 kB
build/stackable/dist/images/block-container-image3.f995a65.png 1.86 kB
build/stackable/dist/images/block-container-plain.34d3d43.png 966 B
build/stackable/dist/images/block-count-up-abstract.67823c9.png 1.34 kB
build/stackable/dist/images/block-count-up-boxed.985f72c.png 2.18 kB
build/stackable/dist/images/block-count-up-plain-2.9e90150.png 1.41 kB
build/stackable/dist/images/block-count-up-plain.0a13db2.png 1.4 kB
build/stackable/dist/images/block-count-up-side.ec8c2dd.png 1.32 kB
build/stackable/dist/images/block-design-library-preview.f1220a2.jpg 18.1 kB
build/stackable/dist/images/block-divider-asterisks.019c81a.png 1.17 kB
build/stackable/dist/images/block-divider-bar.4f8f364.png 947 B
build/stackable/dist/images/block-divider-basic.ea69f9d.png 873 B
build/stackable/dist/images/block-divider-dots.8407764.png 1.03 kB
build/stackable/dist/images/block-feature-basic.d5c6217.png 2.31 kB
build/stackable/dist/images/block-feature-grid-basic.c2975a9.png 1.62 kB
build/stackable/dist/images/block-feature-grid-horizontal.d6e2e24.png 1.95 kB
build/stackable/dist/images/block-feature-grid-large-mid.e0e8e0a.png 1.82 kB
build/stackable/dist/images/block-feature-grid-plain.c733275.png 1.24 kB
build/stackable/dist/images/block-feature-grid-zigzag.306f879.png 1.87 kB
build/stackable/dist/images/block-feature-half.7d450d0.png 1.08 kB
build/stackable/dist/images/block-feature-overlap-shape.7dec2f3.png 1.94 kB
build/stackable/dist/images/block-feature-overlap-shape2.44a52d2.png 2.04 kB
build/stackable/dist/images/block-feature-overlap-shape3.cd36866.png 2.55 kB
build/stackable/dist/images/block-feature-overlap-shape4.a6a8039.png 1.82 kB
build/stackable/dist/images/block-feature-overlap-shape5.911477a.png 1.85 kB
build/stackable/dist/images/block-feature-overlap.eecca61.png 1.16 kB
build/stackable/dist/images/block-feature-overlap2.d656224.png 1.73 kB
build/stackable/dist/images/block-feature-overlap3.fac5ae2.png 1.24 kB
build/stackable/dist/images/block-feature-overlap4.fb5f612.png 1.32 kB
build/stackable/dist/images/block-feature-overlap5.64c2bc0.png 1.21 kB
build/stackable/dist/images/block-feature-plain.8af805e.png 1.12 kB
build/stackable/dist/images/block-header-basic.3ade30c.png 1.07 kB
build/stackable/dist/images/block-header-center-overlay.e78fa5b.png 1.63 kB
build/stackable/dist/images/block-header-half-overlay.6e52b0b.png 1.08 kB
build/stackable/dist/images/block-header-half.55c4824.png 1.06 kB
build/stackable/dist/images/block-header-huge.a2ab3b3.png 1.81 kB
build/stackable/dist/images/block-header-plain.b02346e.png 1.03 kB
build/stackable/dist/images/block-header-side-overlay.38f09f6.png 1.14 kB
build/stackable/dist/images/block-image-box-basic.f0c950a.png 1.79 kB
build/stackable/dist/images/block-image-box-box.941daff.png 1.32 kB
build/stackable/dist/images/block-image-box-captioned.d153775.png 1.14 kB
build/stackable/dist/images/block-image-box-fade.e40838a.png 1.76 kB
build/stackable/dist/images/block-image-box-line.3dfcfff.png 2.6 kB
build/stackable/dist/images/block-image-box-plain.17f7c1e.png 1.6 kB
build/stackable/dist/images/block-map-aubergine.a0d1ec8.png 5.03 kB
build/stackable/dist/images/block-map-dark.d22258f.png 3.74 kB
build/stackable/dist/images/block-map-default.f277d0b.png 6.74 kB
build/stackable/dist/images/block-map-night.b489d95.png 9.43 kB
build/stackable/dist/images/block-map-retro.6e9e18c.png 5.43 kB
build/stackable/dist/images/block-map-silver.28c1a66.png 4.93 kB
build/stackable/dist/images/block-notification-basic.c622a4c.png 1.45 kB
build/stackable/dist/images/block-notification-bordered.9ce3a4b.png 1.06 kB
build/stackable/dist/images/block-notification-large-icon.222b1ce.png 2.01 kB
build/stackable/dist/images/block-notification-outlined.f5db8f6.png 1.05 kB
build/stackable/dist/images/block-notification-plain.ffbc0a7.png 1.02 kB
build/stackable/dist/images/block-number-box-background.5d2e597.png 2.52 kB
build/stackable/dist/images/block-number-box-basic.48056c0.png 2.77 kB
build/stackable/dist/images/block-number-box-faded.36e0ec4.png 1.52 kB
build/stackable/dist/images/block-number-box-heading.ebb5529.png 2.01 kB
build/stackable/dist/images/block-number-box-heading2.e3a9fdd.png 1.96 kB
build/stackable/dist/images/block-number-box-plain.7879145.png 1.55 kB
build/stackable/dist/images/block-pricing-box-basic.274f7b9.png 2.16 kB
build/stackable/dist/images/block-pricing-box-colored.b4279c7.png 1.78 kB
build/stackable/dist/images/block-pricing-box-compact.c67635e.png 2.27 kB
build/stackable/dist/images/block-pricing-box-plain.b5adaa7.png 1.37 kB
build/stackable/dist/images/block-pricing-box-sectioned.f376238.png 2.02 kB
build/stackable/dist/images/block-team-member-basic.cd0961b.png 2.2 kB
build/stackable/dist/images/block-team-member-half.bd51006.png 1.74 kB
build/stackable/dist/images/block-team-member-horizontal.09870f5.png 2.01 kB
build/stackable/dist/images/block-team-member-overlay.2bcdb9d.png 2.4 kB
build/stackable/dist/images/block-team-member-plain.3203ea6.png 1.29 kB
build/stackable/dist/images/block-testimonial-background.5d6565d.png 2.21 kB
build/stackable/dist/images/block-testimonial-basic.cc376c2.png 3.15 kB
build/stackable/dist/images/block-testimonial-basic2.2f9f6ac.png 2.19 kB
build/stackable/dist/images/block-testimonial-bubble.2008575.png 1.77 kB
build/stackable/dist/images/block-testimonial-plain.478ddbc.png 1.27 kB
build/stackable/dist/images/block-testimonial-vertical-inverse.a8a8da4.png 2.42 kB
build/stackable/dist/images/block-testimonial-vertical.ef92405.png 2.28 kB
build/stackable/dist/images/block-text-plain.c150f04.png 342 B
build/stackable/dist/images/block-text-side-title-1.f3774a5.png 361 B
build/stackable/dist/images/block-text-side-title-2.b87a180.png 331 B
build/stackable/dist/images/components-button-controls-basic.ab5e9f1.png 1.11 kB
build/stackable/dist/images/components-button-controls-ghost.d3d7b9a.png 1.18 kB
build/stackable/dist/images/components-button-controls-link.dba9a28.png 939 B
build/stackable/dist/images/components-button-controls-plain.c779ddf.png 963 B
build/stackable/dist/images/components-columns-width-control-2-1-grid.afd9a92.png 350 B
build/stackable/dist/images/components-columns-width-control-2-1-uneven.6cd9789.png 415 B
build/stackable/dist/images/components-columns-width-control-2-1.acc91e5.png 408 B
build/stackable/dist/images/components-columns-width-control-2-2-grid.fb0db0a.png 320 B
build/stackable/dist/images/components-columns-width-control-2-2-uneven.343b32f.png 352 B
build/stackable/dist/images/components-columns-width-control-2-2.07b68cc.png 282 B
build/stackable/dist/images/components-columns-width-control-2-3-grid.49f9601.png 304 B
build/stackable/dist/images/components-columns-width-control-2-3-uneven.2f83bb9.png 311 B
build/stackable/dist/images/components-columns-width-control-2-3.014c061.png 270 B
build/stackable/dist/images/components-columns-width-control-3-1-grid.74f65ec.png 319 B
build/stackable/dist/images/components-columns-width-control-3-1-uneven.e06e928.png 313 B
build/stackable/dist/images/components-columns-width-control-3-1.40b83bd.png 288 B
build/stackable/dist/images/components-columns-width-control-3-2-grid.3a3415f.png 395 B
build/stackable/dist/images/components-columns-width-control-3-2-uneven.16d95c7.png 390 B
build/stackable/dist/images/components-columns-width-control-3-2.d6c2e1a.png 280 B
build/stackable/dist/images/components-columns-width-control-3-3-grid.dc0bc99.png 371 B
build/stackable/dist/images/components-columns-width-control-3-3-uneven.1563189.png 383 B
build/stackable/dist/images/components-columns-width-control-3-3.5463833.png 353 B
build/stackable/dist/images/components-columns-width-control-3-4-grid.a51c65c.png 344 B
build/stackable/dist/images/components-columns-width-control-3-4-uneven.c30113e.png 361 B
build/stackable/dist/images/components-columns-width-control-3-4.f094a43.png 350 B
build/stackable/dist/images/components-columns-width-control-4-1-grid.8273e1a.png 387 B
build/stackable/dist/images/components-columns-width-control-4-1-uneven.6ac045a.png 384 B
build/stackable/dist/images/components-columns-width-control-4-1.cd295e6.png 484 B
build/stackable/dist/images/components-columns-width-control-4-2-grid.b0b7a8e.png 325 B
build/stackable/dist/images/components-columns-width-control-4-2-uneven.24ee9ad.png 309 B
build/stackable/dist/images/components-columns-width-control-4-2.38a83ef.png 312 B
build/stackable/dist/images/components-columns-width-control-4-3-grid.92b740b.png 377 B
build/stackable/dist/images/components-columns-width-control-4-3-uneven.1e31bb8.png 353 B
build/stackable/dist/images/components-columns-width-control-4-3.dc1bfc0.png 435 B
build/stackable/dist/images/components-design-separator-control-curve-1.254c17a.png 1.18 kB
build/stackable/dist/images/components-design-separator-control-curve-2.d665227.png 1.25 kB
build/stackable/dist/images/components-design-separator-control-curve-3.4244deb.png 779 B
build/stackable/dist/images/components-design-separator-control-rounded-1.13da362.png 1.18 kB
build/stackable/dist/images/components-design-separator-control-rounded-2.ff50047.png 931 B
build/stackable/dist/images/components-design-separator-control-rounded-3.e9fc958.png 667 B
build/stackable/dist/images/components-design-separator-control-slant-1.5247f2f.png 1.18 kB
build/stackable/dist/images/components-design-separator-control-slant-2.7fb32a4.png 1.16 kB
build/stackable/dist/images/components-design-separator-control-straight-1.8900892.png 863 B
build/stackable/dist/images/components-design-separator-control-wave-1.f17479d.png 1.28 kB
build/stackable/dist/images/components-design-separator-control-wave-2.eb49cf9.png 1.19 kB
build/stackable/dist/images/components-design-separator-control-wave-3.baef658.png 1.29 kB
build/stackable/dist/images/components-design-separator-control-wave-4.28b0f44.png 510 B
build/stackable/dist/images/components-icon-controls-outlined.d293bf5.png 1.26 kB
build/stackable/dist/images/components-icon-controls-plain.d0d9e7b.png 473 B
build/stackable/dist/images/components-icon-controls-shaped.3f56d80.png 1.03 kB
build/stackable/dist/images/components-image-shape-control-blob1.52fa507.png 1.66 kB
build/stackable/dist/images/components-image-shape-control-circle.355575c.png 1.6 kB
build/stackable/dist/images/components-image-shape-control-default.a1e033f.png 853 B
build/stackable/dist/images/components-image-shape-control-square.b0df757.png 887 B
build/stackable/dist/images/components-pro-control-pro-icon.114d653.png 7.13 kB
build/stackable/dist/images/higher-order-with-design-layout-selector-basic.3ade30c.png 1.07 kB
build/stackable/dist/images/index.php 96 B
build/stackable/dist/images/lazy-components-design-library-maps.0f15487.webp 34.2 kB
build/stackable/dist/images/lazy-components-style-guide-hero-bg.c55e339.webp 80.4 kB
build/stackable/dist/images/lazy-components-style-guide-media-text.c06b506.webp 32.6 kB
build/stackable/dist/images/lazy-components-style-guide-profile.5f2c46d.webp 25.5 kB
build/stackable/dist/images/src-welcome-cimo-icon.b7e3f36.png 1.28 kB
build/stackable/dist/images/src-welcome-interactions-icon.cc1be03.png 613 B
build/stackable/dist/index.php 96 B
build/stackable/dist/stk.js.LICENSE.txt 303 B
build/stackable/freemius.php 1.3 kB
build/stackable/freemius/assets/css/admin/account.css 1.25 kB
build/stackable/freemius/assets/css/admin/add-ons.css 2.08 kB
build/stackable/freemius/assets/css/admin/affiliation.css 513 B
build/stackable/freemius/assets/css/admin/checkout.css 420 B
build/stackable/freemius/assets/css/admin/clone-resolution.css 523 B
build/stackable/freemius/assets/css/admin/common.css 1.52 kB
build/stackable/freemius/assets/css/admin/connect.css 2.41 kB
build/stackable/freemius/assets/css/admin/debug.css 474 B
build/stackable/freemius/assets/css/admin/dialog-boxes.css 2.4 kB
build/stackable/freemius/assets/css/admin/gdpr-optin-notice.css 158 B
build/stackable/freemius/assets/css/admin/index.php 96 B
build/stackable/freemius/assets/css/admin/optout.css 1.03 kB
build/stackable/freemius/assets/css/admin/plugins.css 249 B
build/stackable/freemius/assets/css/customizer.css 788 B
build/stackable/freemius/assets/css/index.php 96 B
build/stackable/freemius/assets/img/index.php 96 B
build/stackable/freemius/assets/img/plugin-icon.png 7.56 kB
build/stackable/freemius/assets/img/stackable-ultimate-gutenberg-blocks.png 3.67 kB
build/stackable/freemius/assets/img/theme-icon.png 8.91 kB
build/stackable/freemius/assets/index.php 96 B
build/stackable/freemius/assets/js/index.php 96 B
build/stackable/freemius/assets/js/jquery.form.js 327 B
build/stackable/freemius/assets/js/nojquery.ba-postmessage.js 1.18 kB
build/stackable/freemius/assets/js/postmessage.js 764 B
build/stackable/freemius/assets/js/pricing/14fb1bd5b7c41648488b06147f50a0dc.svg 8.5 kB
build/stackable/freemius/assets/js/pricing/27b5a722a5553d9de0170325267fccec.png 5.37 kB
build/stackable/freemius/assets/js/pricing/45da596e2b512ffc3bb638baaf0fdc4e.png 3.39 kB
build/stackable/freemius/assets/js/pricing/178afa6030e76635dbe835e111d2c507.png 5.05 kB
build/stackable/freemius/assets/js/pricing/4375c4a3ddc6f637c2ab9a2d7220f91e.png 7.56 kB
build/stackable/freemius/assets/js/pricing/a34e046aee1702a5690679750a7f4d0f.svg 10.1 kB
build/stackable/freemius/assets/js/pricing/b09d0b38b627c2fa564d050f79f2f064.svg 2.33 kB
build/stackable/freemius/assets/js/pricing/c03f665db27af43971565560adfba594.png 5.2 kB
build/stackable/freemius/assets/js/pricing/cb5fc4f6ec7ada72e986f6e7dde365bf.png 8.33 kB
build/stackable/freemius/assets/js/pricing/d65812c447b4523b42d59018e1c0bb53.png 29.3 kB
build/stackable/freemius/assets/js/pricing/f3aac72a8e63997d6bb888f816457e9b.png 5.08 kB
build/stackable/freemius/assets/js/pricing/fde48e4609a6ddc11d639fc2421f2afd.png 8.91 kB
build/stackable/freemius/assets/js/pricing/freemius-pricing.js 83.3 kB
build/stackable/freemius/assets/js/pricing/freemius-pricing.js.LICENSE.txt 395 B
build/stackable/freemius/assets/js/pricing/index.php 96 B
build/stackable/freemius/composer.json 562 B
build/stackable/freemius/config.php 3.28 kB
build/stackable/freemius/includes/class-freemius-abstract.php 2.33 kB
build/stackable/freemius/includes/class-freemius.php 167 kB
build/stackable/freemius/includes/class-fs-admin-notices.php 2.12 kB
build/stackable/freemius/includes/class-fs-api.php 5.13 kB
build/stackable/freemius/includes/class-fs-garbage-collector.php 3.56 kB
build/stackable/freemius/includes/class-fs-hook-snapshot.php 517 B
build/stackable/freemius/includes/class-fs-lock.php 840 B
build/stackable/freemius/includes/class-fs-logger.php 4.92 kB
build/stackable/freemius/includes/class-fs-options.php 2.81 kB
build/stackable/freemius/includes/class-fs-plugin-updater.php 13 kB
build/stackable/freemius/includes/class-fs-security.php 803 B
build/stackable/freemius/includes/class-fs-storage.php 3.68 kB
build/stackable/freemius/includes/class-fs-user-lock.php 722 B
build/stackable/freemius/includes/customizer/class-fs-customizer-support-section.php 1 kB
build/stackable/freemius/includes/customizer/class-fs-customizer-upsell-control.php 1.74 kB
build/stackable/freemius/includes/customizer/index.php 96 B
build/stackable/freemius/includes/debug/class-fs-debug-bar-panel.php 702 B
build/stackable/freemius/includes/debug/debug-bar-start.php 590 B
build/stackable/freemius/includes/debug/index.php 96 B
build/stackable/freemius/includes/entities/class-fs-affiliate-terms.php 1.27 kB
build/stackable/freemius/includes/entities/class-fs-affiliate.php 523 B
build/stackable/freemius/includes/entities/class-fs-billing.php 587 B
build/stackable/freemius/includes/entities/class-fs-entity.php 1.05 kB
build/stackable/freemius/includes/entities/class-fs-payment.php 1.21 kB
build/stackable/freemius/includes/entities/class-fs-plugin-info.php 400 B
build/stackable/freemius/includes/entities/class-fs-plugin-license.php 1.82 kB
build/stackable/freemius/includes/entities/class-fs-plugin-plan.php 1.02 kB
build/stackable/freemius/includes/entities/class-fs-plugin-tag.php 550 B
build/stackable/freemius/includes/entities/class-fs-plugin.php 1.07 kB
build/stackable/freemius/includes/entities/class-fs-pricing.php 895 B
build/stackable/freemius/includes/entities/class-fs-scope-entity.php 339 B
build/stackable/freemius/includes/entities/class-fs-site.php 1.89 kB
build/stackable/freemius/includes/entities/class-fs-subscription.php 933 B
build/stackable/freemius/includes/entities/class-fs-user.php 812 B
build/stackable/freemius/includes/entities/index.php 96 B
build/stackable/freemius/includes/fs-core-functions.php 8.03 kB
build/stackable/freemius/includes/fs-essential-functions.php 4.22 kB
build/stackable/freemius/includes/fs-html-escaping-functions.php 915 B
build/stackable/freemius/includes/fs-plugin-info-dialog.php 13.9 kB
build/stackable/freemius/includes/index.php 96 B
build/stackable/freemius/includes/l10n.php 510 B
build/stackable/freemius/includes/managers/class-fs-admin-menu-manager.php 5.53 kB
build/stackable/freemius/includes/managers/class-fs-admin-notice-manager.php 3.72 kB
build/stackable/freemius/includes/managers/class-fs-cache-manager.php 1.55 kB
build/stackable/freemius/includes/managers/class-fs-checkout-manager.php 2.37 kB
build/stackable/freemius/includes/managers/class-fs-clone-manager.php 11.1 kB
build/stackable/freemius/includes/managers/class-fs-contact-form-manager.php 871 B
build/stackable/freemius/includes/managers/class-fs-debug-manager.php 3.39 kB
build/stackable/freemius/includes/managers/class-fs-gdpr-manager.php 1.38 kB
build/stackable/freemius/includes/managers/class-fs-key-value-storage.php 2.49 kB
build/stackable/freemius/includes/managers/class-fs-license-manager.php 883 B
build/stackable/freemius/includes/managers/class-fs-option-manager.php 2.47 kB
build/stackable/freemius/includes/managers/class-fs-permission-manager.php 3.88 kB
build/stackable/freemius/includes/managers/class-fs-plan-manager.php 1.01 kB
build/stackable/freemius/includes/managers/class-fs-plugin-manager.php 1.74 kB
build/stackable/freemius/includes/managers/index.php 96 B
build/stackable/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php 168 B
build/stackable/freemius/includes/sdk/Exceptions/EmptyArgumentException.php 164 B
build/stackable/freemius/includes/sdk/Exceptions/Exception.php 656 B
build/stackable/freemius/includes/sdk/Exceptions/index.php 96 B
build/stackable/freemius/includes/sdk/Exceptions/InvalidArgumentException.php 162 B
build/stackable/freemius/includes/sdk/Exceptions/OAuthException.php 196 B
build/stackable/freemius/includes/sdk/FreemiusBase.php 2.21 kB
build/stackable/freemius/includes/sdk/FreemiusWordPress.php 6.16 kB
build/stackable/freemius/includes/sdk/index.php 96 B
build/stackable/freemius/includes/sdk/LICENSE.txt 6.8 kB
build/stackable/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php 652 B
build/stackable/freemius/includes/supplements/fs-essential-functions-2.2.1.php 515 B
build/stackable/freemius/includes/supplements/fs-migration-2.5.1.php 463 B
build/stackable/freemius/includes/supplements/index.php 96 B
build/stackable/freemius/index.php 96 B
build/stackable/freemius/languages/freemius-cs_CZ.mo 14.8 kB
build/stackable/freemius/languages/freemius-da_DK.mo 12.6 kB
build/stackable/freemius/languages/freemius-de_DE.mo 24.4 kB
build/stackable/freemius/languages/freemius-es_ES.mo 19.3 kB
build/stackable/freemius/languages/freemius-fr_FR.mo 17.2 kB
build/stackable/freemius/languages/freemius-he_IL.mo 13.2 kB
build/stackable/freemius/languages/freemius-hu_HU.mo 10.4 kB
build/stackable/freemius/languages/freemius-it_IT.mo 21 kB
build/stackable/freemius/languages/freemius-ja.mo 16.7 kB
build/stackable/freemius/languages/freemius-nl_NL.mo 17.2 kB
build/stackable/freemius/languages/freemius-ru_RU.mo 16.3 kB
build/stackable/freemius/languages/freemius-ta.mo 19.2 kB
build/stackable/freemius/languages/freemius-zh_CN.mo 24.1 kB
build/stackable/freemius/languages/freemius.pot 16.5 kB
build/stackable/freemius/languages/index.php 96 B
build/stackable/freemius/LICENSE.txt 12.1 kB
build/stackable/freemius/README.md 4.01 kB
build/stackable/freemius/require.php 682 B
build/stackable/freemius/start.php 5.84 kB
build/stackable/freemius/templates/account.php 12.1 kB
build/stackable/freemius/templates/account/billing.php 4.15 kB
build/stackable/freemius/templates/account/index.php 96 B
build/stackable/freemius/templates/account/partials/activate-license-button.php 863 B
build/stackable/freemius/templates/account/partials/addon.php 4.35 kB
build/stackable/freemius/templates/account/partials/deactivate-license-button.php 614 B
build/stackable/freemius/templates/account/partials/disconnect-button.php 1.66 kB
build/stackable/freemius/templates/account/partials/index.php 96 B
build/stackable/freemius/templates/account/partials/site.php 3.85 kB
build/stackable/freemius/templates/account/payments.php 754 B
build/stackable/freemius/templates/add-ons.php 5.01 kB
build/stackable/freemius/templates/add-trial-to-pricing.php 500 B
build/stackable/freemius/templates/admin-notice.php 961 B
build/stackable/freemius/templates/ajax-loader.php 184 B
build/stackable/freemius/templates/api-connectivity-message-js.php 498 B
build/stackable/freemius/templates/auto-installation.php 2.53 kB
build/stackable/freemius/templates/checkout.php 375 B
build/stackable/freemius/templates/checkout/frame.php 2.53 kB
build/stackable/freemius/templates/checkout/index.php 96 B
build/stackable/freemius/templates/checkout/process-redirect.php 1.53 kB
build/stackable/freemius/templates/checkout/redirect.php 1.31 kB
build/stackable/freemius/templates/clone-resolution-js.php 1.24 kB
build/stackable/freemius/templates/connect.php 10.3 kB
build/stackable/freemius/templates/connect/index.php 96 B
build/stackable/freemius/templates/connect/permission.php 679 B
build/stackable/freemius/templates/connect/permissions-group.php 873 B
build/stackable/freemius/templates/contact.php 1.83 kB
build/stackable/freemius/templates/debug.php 8.43 kB
build/stackable/freemius/templates/debug/api-calls.php 1.81 kB
build/stackable/freemius/templates/debug/index.php 96 B
build/stackable/freemius/templates/debug/logger.php 950 B
build/stackable/freemius/templates/debug/plugins-themes-sync.php 854 B
build/stackable/freemius/templates/debug/scheduled-crons.php 1.41 kB
build/stackable/freemius/templates/email.php 545 B
build/stackable/freemius/templates/forms/affiliation.php 5.4 kB
build/stackable/freemius/templates/forms/data-debug-mode.php 2.33 kB
build/stackable/freemius/templates/forms/deactivation/contact.php 458 B
build/stackable/freemius/templates/forms/deactivation/form.php 6.07 kB
build/stackable/freemius/templates/forms/deactivation/index.php 96 B
build/stackable/freemius/templates/forms/deactivation/retry-skip.php 601 B
build/stackable/freemius/templates/forms/email-address-update.php 3.02 kB
build/stackable/freemius/templates/forms/index.php 96 B
build/stackable/freemius/templates/forms/license-activation.php 7.56 kB
build/stackable/freemius/templates/forms/optout.php 2.65 kB
build/stackable/freemius/templates/forms/premium-versions-upgrade-handler.php 2.36 kB
build/stackable/freemius/templates/forms/premium-versions-upgrade-metadata.php 682 B
build/stackable/freemius/templates/forms/resend-key.php 2.39 kB
build/stackable/freemius/templates/forms/subscription-cancellation.php 3.17 kB
build/stackable/freemius/templates/forms/trial-start.php 2.01 kB
build/stackable/freemius/templates/forms/user-change.php 2.77 kB
build/stackable/freemius/templates/gdpr-optin-js.php 912 B
build/stackable/freemius/templates/index.php 96 B
build/stackable/freemius/templates/js/index.php 96 B
build/stackable/freemius/templates/js/jquery.content-change.php 649 B
build/stackable/freemius/templates/js/open-license-activation.php 537 B
build/stackable/freemius/templates/js/permissions.php 3.7 kB
build/stackable/freemius/templates/js/style-premium-theme.php 731 B
build/stackable/freemius/templates/partials/index.php 46 B
build/stackable/freemius/templates/partials/network-activation.php 1.14 kB
build/stackable/freemius/templates/plugin-icon.php 361 B
build/stackable/freemius/templates/plugin-info/description.php 869 B
build/stackable/freemius/templates/plugin-info/features.php 1.14 kB
build/stackable/freemius/templates/plugin-info/index.php 96 B
build/stackable/freemius/templates/plugin-info/screenshots.php 450 B
build/stackable/freemius/templates/pricing.php 1.52 kB
build/stackable/freemius/templates/secure-https-header.php 616 B
build/stackable/freemius/templates/sticky-admin-notice-js.php 694 B
build/stackable/freemius/templates/tabs-capture-js.php 860 B
build/stackable/freemius/templates/tabs.php 2.14 kB
build/stackable/index.php 96 B
build/stackable/languages/index.php 96 B
build/stackable/languages/stackable-ultimate-gutenberg-blocks.pot 54 kB
build/stackable/plugin.php 3.7 kB
build/stackable/readme.txt 14.5 kB
build/stackable/src/admin.php 657 B
build/stackable/src/block-components/alignment/index.php 1.11 kB
build/stackable/src/block-components/index.php 96 B
build/stackable/src/block/accordion/block.json 383 B
build/stackable/src/block/accordion/index.php 1.65 kB
build/stackable/src/block/blockquote/block.json 324 B
build/stackable/src/block/blockquote/index.php 96 B
build/stackable/src/block/button-group/block.json 447 B
build/stackable/src/block/button-group/index.php 96 B
build/stackable/src/block/button/block.json 339 B
build/stackable/src/block/button/index.php 96 B
build/stackable/src/block/call-to-action/block.json 423 B
build/stackable/src/block/call-to-action/index.php 96 B
build/stackable/src/block/card/block.json 405 B
build/stackable/src/block/card/index.php 96 B
build/stackable/src/block/carousel/block.json 300 B
build/stackable/src/block/carousel/index.php 290 B
build/stackable/src/block/column/block.json 357 B
build/stackable/src/block/column/index.php 96 B
build/stackable/src/block/columns/block.json 392 B
build/stackable/src/block/columns/index.php 464 B
build/stackable/src/block/count-up/block.json 357 B
build/stackable/src/block/count-up/index.php 293 B
build/stackable/src/block/countdown/block.json 315 B
build/stackable/src/block/countdown/index.php 292 B
build/stackable/src/block/design-library/block.json 350 B
build/stackable/src/block/design-library/index.php 96 B
build/stackable/src/block/divider/block.json 250 B
build/stackable/src/block/divider/index.php 96 B
build/stackable/src/block/expand/block.json 397 B
build/stackable/src/block/expand/index.php 288 B
build/stackable/src/block/feature-grid/block.json 413 B
build/stackable/src/block/feature-grid/index.php 96 B
build/stackable/src/block/feature/block.json 397 B
build/stackable/src/block/feature/index.php 96 B
build/stackable/src/block/heading/block.json 327 B
build/stackable/src/block/heading/index.php 96 B
build/stackable/src/block/hero/block.json 383 B
build/stackable/src/block/hero/index.php 96 B
build/stackable/src/block/horizontal-scroller/block.json 354 B
build/stackable/src/block/horizontal-scroller/index.php 305 B
build/stackable/src/block/icon-box/block.json 359 B
build/stackable/src/block/icon-box/index.php 96 B
build/stackable/src/block/icon-button/block.json 346 B
build/stackable/src/block/icon-button/index.php 96 B
build/stackable/src/block/icon-label/block.json 342 B
build/stackable/src/block/icon-label/deprecated.php 546 B
build/stackable/src/block/icon-label/index.php 96 B
build/stackable/src/block/icon-list-item/block.json 345 B
build/stackable/src/block/icon-list-item/index.php 96 B
build/stackable/src/block/icon-list/block.json 401 B
build/stackable/src/block/icon-list/index.php 96 B
build/stackable/src/block/icon/block.json 327 B
build/stackable/src/block/icon/index.php 96 B
build/stackable/src/block/image-box/block.json 403 B
build/stackable/src/block/image-box/index.php 96 B
build/stackable/src/block/image/block.json 315 B
build/stackable/src/block/image/index.php 96 B
build/stackable/src/block/index.php 96 B
build/stackable/src/block/map/block.json 326 B
build/stackable/src/block/map/index.php 459 B
build/stackable/src/block/notification/block.json 424 B
build/stackable/src/block/notification/index.php 289 B
build/stackable/src/block/number-box/block.json 337 B
build/stackable/src/block/number-box/index.php 96 B
build/stackable/src/block/posts/block.json 475 B
build/stackable/src/block/posts/index.php 5.46 kB
build/stackable/src/block/price/block.json 373 B
build/stackable/src/block/price/index.php 96 B
build/stackable/src/block/pricing-box/block.json 435 B
build/stackable/src/block/pricing-box/index.php 96 B
build/stackable/src/block/progress-bar/block.json 330 B
build/stackable/src/block/progress-bar/index.php 518 B
build/stackable/src/block/progress-circle/block.json 333 B
build/stackable/src/block/progress-circle/index.php 518 B
build/stackable/src/block/separator/block.json 323 B
build/stackable/src/block/separator/index.php 96 B
build/stackable/src/block/spacer/block.json 222 B
build/stackable/src/block/spacer/index.php 96 B
build/stackable/src/block/subtitle/block.json 316 B
build/stackable/src/block/subtitle/index.php 96 B
build/stackable/src/block/tab-content/block.json 269 B
build/stackable/src/block/tab-content/index.php 96 B
build/stackable/src/block/tab-labels/block.json 270 B
build/stackable/src/block/tab-labels/index.php 96 B
build/stackable/src/block/table-of-contents/block.json 343 B
build/stackable/src/block/table-of-contents/index.php 265 B
build/stackable/src/block/tabs/block.json 385 B
build/stackable/src/block/tabs/index.php 287 B
build/stackable/src/block/team-member/block.json 410 B
build/stackable/src/block/team-member/index.php 96 B
build/stackable/src/block/testimonial/block.json 393 B
build/stackable/src/block/testimonial/index.php 96 B
build/stackable/src/block/text/block.json 329 B
build/stackable/src/block/text/index.php 96 B
build/stackable/src/block/timeline/block.json 322 B
build/stackable/src/block/timeline/index.php 551 B
build/stackable/src/block/video-popup/block.json 414 B
build/stackable/src/block/video-popup/index.php 1.33 kB
build/stackable/src/blocks.php 1.04 kB
build/stackable/src/compatibility/blocksy/index.php 1.99 kB
build/stackable/src/compatibility/ewww.php 580 B
build/stackable/src/compatibility/index.php 179 B
build/stackable/src/compatibility/neve/index.php 416 B
build/stackable/src/compatibility/woocommerce.php 721 B
build/stackable/src/components/__experimental-multi-post-picker-control/index.php 762 B
build/stackable/src/components/index.php 96 B
build/stackable/src/css-optimize.php 4.98 kB
build/stackable/src/deprecated/block-defaults.php 794 B
build/stackable/src/deprecated/block-defaults/custom-block-styles.php 4.83 kB
build/stackable/src/deprecated/block-defaults/index.php 96 B
build/stackable/src/deprecated/editor-settings.php 441 B
build/stackable/src/deprecated/font-awesome-version.php 433 B
build/stackable/src/deprecated/global-color-schemes.php 617 B
build/stackable/src/deprecated/index.php 96 B
build/stackable/src/deprecated/native-global-colors.php 1.18 kB
build/stackable/src/deprecated/navigation-panel-pre-enabled.php 449 B
build/stackable/src/deprecated/v2/block/accordion/block.json 187 B
build/stackable/src/deprecated/v2/block/accordion/index.php 96 B
build/stackable/src/deprecated/v2/block/blockquote/block.json 143 B
build/stackable/src/deprecated/v2/block/blockquote/index.php 96 B
build/stackable/src/deprecated/v2/block/blog-posts/attributes.php 2.9 kB
build/stackable/src/deprecated/v2/block/blog-posts/block.json 222 B
build/stackable/src/deprecated/v2/block/blog-posts/deprecated.php 1.82 kB
build/stackable/src/deprecated/v2/block/blog-posts/index.php 5.68 kB
build/stackable/src/deprecated/v2/block/blog-posts/util.php 663 B
build/stackable/src/deprecated/v2/block/button/block.json 163 B
build/stackable/src/deprecated/v2/block/button/index.php 96 B
build/stackable/src/deprecated/v2/block/call-to-action/block.json 216 B
build/stackable/src/deprecated/v2/block/call-to-action/index.php 96 B
build/stackable/src/deprecated/v2/block/card/block.json 208 B
build/stackable/src/deprecated/v2/block/card/index.php 96 B
build/stackable/src/deprecated/v2/block/column/block.json 222 B
build/stackable/src/deprecated/v2/block/column/index.php 96 B
build/stackable/src/deprecated/v2/block/columns/block.json 228 B
build/stackable/src/deprecated/v2/block/columns/index.php 96 B
build/stackable/src/deprecated/v2/block/container/block.json 207 B
build/stackable/src/deprecated/v2/block/container/index.php 96 B
build/stackable/src/deprecated/v2/block/count-up/block.json 217 B
build/stackable/src/deprecated/v2/block/count-up/index.php 96 B
build/stackable/src/deprecated/v2/block/divider/block.json 150 B
build/stackable/src/deprecated/v2/block/divider/index.php 96 B
build/stackable/src/deprecated/v2/block/expand/block.json 220 B
build/stackable/src/deprecated/v2/block/expand/index.php 96 B
build/stackable/src/deprecated/v2/block/feature-grid/block.json 188 B
build/stackable/src/deprecated/v2/block/feature-grid/index.php 96 B
build/stackable/src/deprecated/v2/block/feature/block.json 161 B
build/stackable/src/deprecated/v2/block/feature/index.php 96 B
build/stackable/src/deprecated/v2/block/header/block.json 191 B
build/stackable/src/deprecated/v2/block/header/index.php 96 B
build/stackable/src/deprecated/v2/block/heading/block.json 184 B
build/stackable/src/deprecated/v2/block/heading/index.php 96 B
build/stackable/src/deprecated/v2/block/icon-list/block.json 214 B
build/stackable/src/deprecated/v2/block/icon-list/index.php 96 B
build/stackable/src/deprecated/v2/block/icon/block.json 186 B
build/stackable/src/deprecated/v2/block/icon/index.php 96 B
build/stackable/src/deprecated/v2/block/image-box/block.json 199 B
build/stackable/src/deprecated/v2/block/image-box/index.php 96 B
build/stackable/src/deprecated/v2/block/index.php 96 B
build/stackable/src/deprecated/v2/block/notification/block.json 209 B
build/stackable/src/deprecated/v2/block/notification/index.php 96 B
build/stackable/src/deprecated/v2/block/number-box/block.json 196 B
build/stackable/src/deprecated/v2/block/number-box/index.php 96 B
build/stackable/src/deprecated/v2/block/pricing-box/block.json 167 B
build/stackable/src/deprecated/v2/block/pricing-box/index.php 96 B
build/stackable/src/deprecated/v2/block/separator/block.json 184 B
build/stackable/src/deprecated/v2/block/separator/index.php 96 B
build/stackable/src/deprecated/v2/block/spacer/block.json 147 B
build/stackable/src/deprecated/v2/block/spacer/index.php 96 B
build/stackable/src/deprecated/v2/block/team-member/block.json 186 B
build/stackable/src/deprecated/v2/block/team-member/index.php 96 B
build/stackable/src/deprecated/v2/block/testimonial/block.json 167 B
build/stackable/src/deprecated/v2/block/testimonial/index.php 96 B
build/stackable/src/deprecated/v2/block/text/block.json 190 B
build/stackable/src/deprecated/v2/block/text/index.php 96 B
build/stackable/src/deprecated/v2/block/video-popup/block.json 250 B
build/stackable/src/deprecated/v2/block/video-popup/index.php 96 B
build/stackable/src/deprecated/v2/blocks.php 1.95 kB
build/stackable/src/deprecated/v2/design-library/index.php 96 B
build/stackable/src/deprecated/v2/design-library/init.php 1.33 kB
build/stackable/src/deprecated/v2/disabled-blocks.php 831 B
build/stackable/src/deprecated/v2/global-settings.php 308 B
build/stackable/src/deprecated/v2/index.php 96 B
build/stackable/src/deprecated/v2/init.php 3.28 kB
build/stackable/src/deprecated/v2/optimization-settings.php 1.06 kB
build/stackable/src/design-library/index.php 96 B
build/stackable/src/design-library/init.php 2.7 kB
build/stackable/src/editor-settings.php 1.82 kB
build/stackable/src/fonts.php 1.92 kB
build/stackable/src/global-settings.php 7.73 kB
build/stackable/src/icons.php 602 B
build/stackable/src/index.php 96 B
build/stackable/src/init.php 5.76 kB
build/stackable/src/jetpack.php 781 B
build/stackable/src/kses.php 1.41 kB
build/stackable/src/lightbox/index.php 427 B
build/stackable/src/multisite.php 1.31 kB
build/stackable/src/plugins/global-settings/block-styles/index.php 927 B
build/stackable/src/plugins/global-settings/buttons-and-icons/index.php 1.49 kB
build/stackable/src/plugins/global-settings/color-schemes/deprecated/index.php 306 B
build/stackable/src/plugins/global-settings/color-schemes/index.php 5.12 kB
build/stackable/src/plugins/global-settings/index.php 96 B
build/stackable/src/plugins/global-settings/preset-controls/index.php 2.5 kB
build/stackable/src/plugins/global-settings/spacing-and-borders/index.php 1.48 kB
build/stackable/src/plugins/index.php 96 B
build/stackable/src/plugins/theme-block-style-inheritance/index.php 4.79 kB
build/stackable/src/pro.php 1.61 kB
build/stackable/src/stk-block-types.php 3.97 kB
build/stackable/src/styles/block-design-system.php 870 B
build/stackable/src/styles/index.php 96 B
build/stackable/src/unique-id.php 567 B
build/stackable/src/welcome/freemius.php 478 B
build/stackable/src/welcome/getting-started.php 717 B
build/stackable/src/welcome/images/align-left.svg 180 B
build/stackable/src/welcome/images/arrow-left.svg 422 B
build/stackable/src/welcome/images/arrow-right.svg 478 B
build/stackable/src/welcome/images/arrow-up-right.svg 330 B
build/stackable/src/welcome/images/banner-bg.svg 3.2 kB
build/stackable/src/welcome/images/book-open.svg 202 B
build/stackable/src/welcome/images/check.svg 383 B
build/stackable/src/welcome/images/cimo-icon.png 3.92 kB
build/stackable/src/welcome/images/divider.svg 912 B
build/stackable/src/welcome/images/docs.svg 308 B
build/stackable/src/welcome/images/gambit-logo-small.png 3.08 kB
build/stackable/src/welcome/images/headphones.svg 228 B
build/stackable/src/welcome/images/index.php 96 B
build/stackable/src/welcome/images/info.svg 216 B
build/stackable/src/welcome/images/interactions-icon.png 816 B
build/stackable/src/welcome/images/pro-icon.svg 381 B
build/stackable/src/welcome/images/quick-buttons-arrow.svg 496 B
build/stackable/src/welcome/images/settings-icon-essential.svg 277 B
build/stackable/src/welcome/images/settings-icon-section.svg 258 B
build/stackable/src/welcome/images/settings-icon-special.svg 260 B
build/stackable/src/welcome/images/smile.svg 233 B
build/stackable/src/welcome/images/stackable-icon.png 4.55 kB
build/stackable/src/welcome/images/stackable-icon.svg 336 B
build/stackable/src/welcome/images/stackable-logo.png 24.8 kB
build/stackable/src/welcome/images/stackable-logo.svg 1.43 kB
build/stackable/src/welcome/images/star.svg 216 B
build/stackable/src/welcome/images/tutorials.svg 320 B
build/stackable/src/welcome/images/user.svg 304 B
build/stackable/src/welcome/index.php 4.96 kB
build/stackable/src/welcome/news.php 1.3 kB
build/stackable/src/welcome/notification-rate.php 808 B
build/stackable/src/welcome/notification.php 1.82 kB
build/stackable/src/welcome/updates.php 646 B
build/stackable/src/welcome/useful-plugins.php 2.74 kB

compressed-size-action

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5b964c4e-e8d4-4443-a3b2-0b47ac90b736

📥 Commits

Reviewing files that changed from the base of the PR and between 79ef4c6 and defdebe.

📒 Files selected for processing (4)
  • src/block-components/icon/index.js
  • src/block/icon-list-item/edit.js
  • src/block/icon-list-item/list-item-icon.js
  • src/block/icon-list-item/util.js

📝 Walkthrough

Walkthrough

The PR updates SVG <use> handling and cursor visibility in Icon, extracts list-item icon rendering into ListItemIcon, and changes icon-list editor synchronization, merge removal, and Enter-key selector access.

Changes

Icon list editor flow

Layer / File(s) Summary
SVG icon normalization and cursor rendering
src/block-components/icon/index.js
SVG strings containing <use are preserved directly, and stk--show-cursor also applies when openEvenIfUnselected is enabled.
Dedicated list-item icon rendering
src/block/icon-list-item/list-item-icon.js, src/block/icon-list-item/edit.js
ListItemIcon resolves custom or inherited icons, remounts when the source changes, configures the picker, and updates icon attributes.
Editor synchronization and keyboard interactions
src/block/icon-list-item/edit.js, src/block/icon-list-item/util.js
Context values now synchronize attributes immediately, empty-item removal derives current block-editor IDs, and Enter handling reads selectors at keydown time.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested reviewers: arukuen

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately describes the main performance change in the Widgets editor.
Linked Issues check ✅ Passed The changes address the reported Widgets slowdown by reducing Icon List mount cost and removing expensive subscriptions.
Out of Scope Changes check ✅ Passed The SVG and list-item edits support the performance work and do not introduce unrelated scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/icon-list-widgets-performance-3062

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Arukuen

Arukuen commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

The change includes the removal of the 300ms timeout for an immediate syncing. The fix persists against #3333.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Icon List block - Slowdown on Appearance > Widgets after revamp update

2 participants