diff --git a/docs/ui-visual-contract-0.8.json b/docs/ui-visual-contract-0.8.json index a81ef0ff..8f7c7a60 100644 --- a/docs/ui-visual-contract-0.8.json +++ b/docs/ui-visual-contract-0.8.json @@ -46,16 +46,16 @@ "packages/ui/components/HeroActions.wrn": "c5720efe2ce7f6c114eb2ea4ccc3e8102a1099078ba23fd13770eddeb6aec640", "packages/ui/components/Image.wrn": "8113441bf90ab0d1d8618d477125ad339021f39e853db89d656c72c492e7a20b", "packages/ui/components/InputGroup.wrn": "7347865ff9b90dde690cf0753adc753a91d2ae599e92405f47e5b35806f58e06", - "packages/ui/components/InputNumber.wrn": "3850f1cbcd314367e17244c644f1115e5ecddc7dc8248aa33fee88936c2981db", + "packages/ui/components/InputNumber.wrn": "0ec020084f3e556d438f8264d61f836cfab4951c52d4df60e4944fb734fb38a9", "packages/ui/components/Kbd.wrn": "5afaabbb15902bd8fb82cb4155cf6cbfff55600927b54d564d27e2dd8b752386", "packages/ui/components/LayoutSplitter.wrn": "6bd6812e364420ed5d3439862116c58d0b011b298679005795bdccdbb7455066", "packages/ui/components/LegendIndicator.wrn": "6a7607b27a17196f899132eb952203a1073e4077365a94935f485e700cbac665", "packages/ui/components/Link.wrn": "b986abcc66bc0b1c6296f3ff4e560812e35d89cc680d5251d7a3883e68c1d053", - "packages/ui/components/List.wrn": "11e07bbf25956c9b0116ac100c2deda0455d5e1679bfc3395450ea3a8bf23f22", + "packages/ui/components/List.wrn": "9bfa9613f388e5b126fc27d505e8165d7aa4a058e72132b755585464e116490e", "packages/ui/components/ListGroup.wrn": "37e2ec61ceab20ed020a834da03208c493702b41abcf586816e29f2e50d8ee11", - "packages/ui/components/Map.wrn": "2e2335a8ef3da51519478ccbc380adeb37c97ae84336c4e94d4d0ceb857f391e", + "packages/ui/components/Map.wrn": "9023a7a188480b24222a3910d26f6926918470369a1ab610f841c31a6120b9aa", "packages/ui/components/MarketingSectionHeader.wrn": "7d6ffcc01a9331474475ea57ca58598be757abd9428b66bdfaf6f3603c5b145b", - "packages/ui/components/Marquee.wrn": "59c6b30bfa4d3a2084a7454c856dcd2f24d20d67c559cb2434f466f418c6cd87", + "packages/ui/components/Marquee.wrn": "2a88c8bd8378469add26b0d937adccac4aa9f2c2005393010298e8e4fa89693e", "packages/ui/components/MegaMenu.wrn": "8a9a9b348ca1c5e182914ff55d981a91f47a49c52ef5e5efd8e4cb6e56361a43", "packages/ui/components/MetricCard.wrn": "6451182739298691908f68258c0250cce2a78b0dc27c97115579ece30d7d9f92", "packages/ui/components/MetricGrid.wrn": "6018a98c10628ed240ed236ed916c0ff60994d192c3aadafd10bc876be0f9364", @@ -72,7 +72,7 @@ "packages/ui/components/RangeSlider.wrn": "90ef35ceb94899dfd6e07ef3f3a88f2fb49c8dfe4596def67fe39fd9911d73c7", "packages/ui/components/Rating.wrn": "a2d74dc748fc7d98892684c760518b87fa65411b1102e3611252b87245b3ffcb", "packages/ui/components/Scrollspy.wrn": "76d1c17580c8d460f1222ce97585bdcac9779141f2f30d5460c84ff9f75413d8", - "packages/ui/components/SearchBox.wrn": "ab6a78b88aef494b85a87470d4392303d9d1937a5327f1c8aa8d910f1b1829c7", + "packages/ui/components/SearchBox.wrn": "717f7647fabd762f8ed60a7c3306eac3ddb83c0da292a53c76d91886c2b8f94f", "packages/ui/components/Section.wrn": "33eb8a82a2102229c2b1f64cec497e9e8e70b67adab8dbe396be860fccbb699c", "packages/ui/components/SectionHeader.wrn": "8eecf2ea7a93139512260e3d46ca2a1afeb341b8bd46b7c30baa6e2c75e25d10", "packages/ui/components/Sidebar.wrn": "03f1bbce75ca6d50ed940e62df39c539610e89eadd2064fe24abc7d5470f98bf", @@ -82,9 +82,9 @@ "packages/ui/components/StrongPassword.wrn": "9559756cacd10d613aea7a4ab9845a011f7f2f4613f82f83c87ab5fd2bad2ea9", "packages/ui/components/StyledIcon.wrn": "4a4504e357dee9dd0418edbe85fc90b824ccdb3752123a2125da95b77bf0b336", "packages/ui/components/Tabs.wrn": "e38336d28876caa4e97da32a569749e3803b030284a85ce9f35fa788e51cc5b0", - "packages/ui/components/TextLink.wrn": "30782039293eb36d63b7b3a4f32a71a47177a3a68c7e90184be7cf7b4385eb19", + "packages/ui/components/TextLink.wrn": "6e18906337cd3d30c2a0122593d249bde8f7cedc697b90ae388e2bd0e8eff3e1", "packages/ui/components/TimePicker.wrn": "b3f24767448cb04ddd56e06540b52e5cc32ea21ed4acd2a5eb4f7e46f8617aba", - "packages/ui/components/Timeline.wrn": "eaa6764b9e62c28cb6919ac1e86d3ebe9abc3cd8036091cdb703540dbfc33873", + "packages/ui/components/Timeline.wrn": "686a37ebc62732842846d004491336970db94945bca942f226097d863e159d1c", "packages/ui/components/Toaster.wrn": "288b2b370f65bf823e8d2a6f8c8cf66972332b8174303d33ebe8546d5e1d52c4", "packages/ui/components/ToggleCount.wrn": "ee706b191fcfc01dd7bde0ddba1940af400ed2d01b639016134699963b1000ab", "packages/ui/components/TogglePassword.wrn": "c644436c3435b8a9b39c6b7a9f75671b76ca74f273952ce5c032ca169b0470e5", diff --git a/packages/cli/src/update.ts b/packages/cli/src/update.ts index 6d79fb18..e68d2b87 100644 --- a/packages/cli/src/update.ts +++ b/packages/cli/src/update.ts @@ -2098,6 +2098,23 @@ const MIGRATIONS: Migration[] = [ // start painting where they previously rendered as nothing. }, }, + { + version: "0.8.7", + id: "0.8.7-ui-component-depth", + description: + "Removes superseded UI scaffolds and moves the remaining utility-styled components to self-contained wire-* BEM styles.", + apply() { + // AdvancedDatePicker -> DatePicker; AdvancedRangeSlider -> RangeSlider; + // FileUpload -> FileInput + FileUploadProgress (or @wrnexus/uploader); + // Toast and ToastNotifications -> Toaster. + // + // List, InputNumber, Marquee, TextLink, Map, SearchBox and Timeline no + // longer render Tailwind utility class names. Application CSS selecting + // those internal utilities must move to the component's wire-* BEM + // classes or its data-size/data-variant attributes. List now emits + // select for non-link items as well as navigation items. + }, + }, ]; /** Release tooling uses this to require an explicit migration entry per version. */ diff --git a/packages/ui/README.md b/packages/ui/README.md index 14e79db6..5ddddced 100644 --- a/packages/ui/README.md +++ b/packages/ui/README.md @@ -118,16 +118,12 @@ are `.wrn` files rendered server-side. The framework serves this stylesheet once at `/__wrnexus/ui.css`, so pages get all component styles from a single request. -### Tailwind and motion +### Component styles and motion -Components use static Tailwind utility classes alongside the shared `.wire-*` -layer. If the package is consumed by a separate Tailwind build, include its -component sources so every utility is generated: - -```css -@import "tailwindcss"; -@source "../node_modules/@wrnexus/ui/components/*.wrn"; -``` +Components own their BEM styles in local `style {}` blocks and do not require a +Tailwind scan. `ui.css` supplies only global tokens, resets, and shared +primitives. Applications can still use Tailwind independently in their own +source files. The shared stylesheet gives all component boundaries consistent, GPU-friendly entry and interaction motion. Override `--wire-motion-fast`, diff --git a/packages/ui/components/InputNumber.wrn b/packages/ui/components/InputNumber.wrn index f6e62742..4671f82f 100644 --- a/packages/ui/components/InputNumber.wrn +++ b/packages/ui/components/InputNumber.wrn @@ -418,19 +418,20 @@ component InputNumber { data-value='{currentValue}' data-invalid='{isInvalid() ? "true" : "false"}' data-disabled='{disabled ? "true" : "false"}' + data-full-width='{fullWidth ? "true" : "false"}' style='--input-number-accent: {componentColor()};' - class='relative flex flex-col gap-1.5 text-[var(--wire-color-text)] {fullWidth ? "w-full" : variant === "compact" ? "w-fit max-w-full" : "w-full max-w-sm"} {disabled ? "opacity-60" : ""} {class}' + class='wire-input-number {class}' > {#if label !== "" && variant !== "labeled" && variant !== "seat"} @@ -439,14 +440,14 @@ component InputNumber { {#if description !== "" && variant !== "labeled" && variant !== "seat"}
{description}
{/if}{helpText}
{/if}{description}
+{description}
{/if}