Conversation
BREAKING CHANGE: @bsf/force-ui now targets Tailwind CSS v4, which is CSS-first. The JS `withTW()` helper is deprecated in favor of a shipped CSS theme, and consumers must update their CSS entry + PostCSS setup. - Add src/theme/theme.css: @theme port of all design tokens + the `not-rtl` custom variant (@custom-variant) and a `border-0.5` utility. Spacing/size/leading/z-index/fraction-widths are omitted — v4's dynamic utility scale reproduces them at identical values (verified by compile). - src/tailwind.css: @tailwind directives -> @import "tailwindcss" + theme. - postcss.config.cjs: tailwindcss + autoprefixer -> @tailwindcss/postcss. - package.json: v2.0.0; tailwindcss ^4.3.2; add @tailwindcss/postcss; drop @tailwindcss/container-queries, autoprefixer, tailwindcss-scoped- preflight; expose ./theme.css export. - vite.config.ts: emit theme.css to dist on build. - withTW.js: mark @deprecated (kept as legacy @config shim, removed in 3.0.0). - Delete tailwind.config.js (v4 auto-detects sources; not auto-loaded). - Rename renamed-in-v4 utilities across component/story source: shadow-sm->shadow-xs, outline-none->outline-hidden, rounded-sm->rounded-xs, bare rounded->rounded-sm, bare shadow->shadow-sm. - README: add v2.0.0 migration guide (before/after + removed-keys table). Refs #1830 / SUR-397
List every @theme token shipped in theme.css (162 tokens across colors, shadows, font-size and letter-spacing), grouped by category in a collapsible section, so developers can see exactly which variables to override. Generated from src/theme/theme.css. Refs #1830 / SUR-397
Issues found while migrating SureRank/SureRank Pro onto 2.0.0:
- theme.css: add per-side border-*-0.5 and divide-{x,y}-0.5 utilities
(v3's borderWidth {0.5} theme key generated these variants; without
them, border-style falls back to the browser 'medium' width because
preflight is excluded).
- Move the v3 important prefix to the v4 suffix in remaining component
and story classes (!x -> x!); v4 does not recognize the prefix form.
- Bump tailwind-merge to ^3 — v2 predates the v4 trailing-! syntax and
can drop such classes when merging.
- README: add consumer upgrade checklist and WordPress/webpack notes
(standalone PostCSS pass for the Tailwind entry, no @layer inside
wp-admin, preflight-off border compat, space-* selector change).
Refs #1830 / SUR-397
…v4-migration [SUR-397] [ForceUI] Migrate TailwindCSS v3.x.x to v4.x.x
This reverts merge commit 5e8cd34 (-m 1) so the upcoming EditorInput release ships without the breaking Tailwind v4 changes. Re-apply after release by reverting this commit.
Adds an optional triggerRegex prop that overrides the built-in mention-suggestion matcher so consumers can allow the trigger without a leading space (e.g. inside quoted JSON-LD string values). When omitted, the existing trigger-based matcher is used - zero behavior change. Related to brainstormforce/surerank#2600
The storybook test-runner's axe pass runs on the final story state. The open combobox popup has pre-existing aria-required-parent/children and aria-valid-attr-value violations unrelated to the triggerRegex feature, so the new interaction stories now dismiss the menu after asserting.
Selecting an option in multiple mode no longer closes the dropdown, and clicking an already-selected option deselects it. Escape and outside click (useDismiss) still close the list; single mode still closes on select. Updated MultiSelect and InlineSearchMulti story play tests to assert the keep-open and toggle behavior.
Flipping `multiple` to true while a single value was already selected crashed the component: `SelectItem`'s `multipleChecked` called `.some()` on a non-array value and `handleMultiSelect` spread it, so opening the dropdown or picking a second option threw a TypeError. Add a `toValuesArray()` helper and route every multi-value path through it (badge rendering, toggle/close handlers, placeholder checks, inline search backspace). In single mode a non-empty array now falls back to its first entry so `render()`/children never receive an array; an empty array is passed through unchanged to preserve existing output. Also add the missing `multiple`/`render`/`children`/`by` memo dependencies that kept stale single-mode closures alive after a mode flip. Adds a ToggleMultipleAtRuntime story covering the flip in both directions.
…ditor-input #2600 - Support smart tags in Custom JSON-LD string values
- restore trigger refocus behind inlineSearch so type-to-filter, arrow nav and Backspace-removes-badge survive a pick - clear selectedIndex when the deselected option was highlighted - drop onClose from SelectFunctionChildren type - add indx to isChecked deps - stories: re-query options after each click, badge key by `by` value, assert typing filters right after a pick in inlineSearch
…eep-open #490 - Select: multiple mode closes the dropdown after every selection
imnavanath
approved these changes
Aug 11, 2026
| * | ||
| * @param {SelectOptionValue | SelectOptionValue[] | null | undefined} value - Current select value. | ||
| * @return {SelectOptionValue[]} Array of selected values. | ||
| * @since x.x.x |
Contributor
There was a problem hiding this comment.
This should be changed to version?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Screenshots | Video with voice-over
Link to Figma (If applicable)
How has this been tested?
Checklist: