Releases: WinkIntel/bootstrap-svelte
Release list
Bootstrap Svelte 2.1.0
A compatible feature and bug-fix release for 2.x consumers, covering issues #29 and #31.
Changes
- Add optional
Offcanvas.RoottriggerElementsreferences for consumer-controlled buttons, links, and SVG elements. An owning enabled primary press no longer causes premature outside dismissal or a spurious static-backdroponHidePreventedevent. - Ownership follows the current references, supports null lists and entries, and ignores detached elements. Disabled, non-primary, unrelated, and stacked-overlay behavior is preserved. Includes API documentation and an interactive example.
- Fix
collapseAriacleanup and reactive reattachment overwriting consumer-owned ARIA attributes and roles. Cleanup restores prior values only while the current value still matches the attachment's write.
Compatibility and installation
No new breaking changes for 2.x consumers. Svelte peer requirement: ^5.29.0.
pnpm add @winkintel/bootstrap-svelte@^2.1.0 bootstrapPublished to npm with the latest dist-tag. Consumers remaining on 1.x can install the companion 1.1.0 release using @^1.1.0 or @maintenance.
Consumers upgrading from 1.x to 2.x should follow the 2.0 migration guide.
Implemented and reviewed in #35 and #37. Full comparison: v2.0.0...v2.1.0
Bootstrap Svelte 1.1.0
A compatible maintenance release for 1.x consumers, backporting issues #29 and #31 without the 2.0 Navbar or breakpoint changes.
Changes
- Add optional
Offcanvas.RoottriggerElementsreferences for consumer-controlled buttons, links, and SVG elements. An owning enabled primary press no longer causes premature outside dismissal or a spurious static-backdroponHidePreventedevent. - Ownership follows the current references, supports null lists and entries, and ignores detached elements. Disabled, non-primary, unrelated, and stacked-overlay behavior is preserved. Includes API documentation and an interactive example.
- Fix
collapseAriacleanup and reactive reattachment overwriting consumer-owned ARIA attributes and roles. Cleanup restores prior values only while the current value still matches the attachment's write.
Compatibility and installation
No breaking changes for 1.x consumers. Existing 1.x Navbar and responsive-breakpoint behavior is retained. Svelte peer requirement: ^5.29.0.
pnpm add @winkintel/bootstrap-svelte@^1.1.0 bootstrapPublished to npm with the maintenance dist-tag. You can also install @winkintel/bootstrap-svelte@maintenance; the default npm latest tag remains on 2.x.
Implemented and reviewed in #36 and #38. Full comparison: v1.0.12...v1.1.0
Bootstrap Svelte 2.0.0
Breaking changes and migration
Version 2.0.0 completes the Navbar and Offcanvas fixes for #26, #27, and #33. Read the 1.x to 2.0 migration guide before upgrading.
- Navbar with omitted
expandOnBreakpoint, or explicit"xs", now stays inline at every width, including SSR. UseexpandOnBreakpoint={false}for collapsible navigation at every width, or a named breakpoint such as"lg"for responsive navigation. Offcanvas.RootProps['showOnBreakpoint']now accepts onlysm,md,lg,xl, andxxl. RemoveshowOnBreakpoint="xs". Legacy untypedxsvalues fall back to an ordinary standalone overlay or inherit the parent Navbar's mode.- For a default Navbar containing an Offcanvas with its own named breakpoint, move the breakpoint to Navbar and omit it on Offcanvas so the toggler and panel share the same responsive mode.
Fixes
- Navbar-owned togglers no longer dismiss an Offcanvas on mousedown before toggling it again on click. Unrelated outside presses retain their normal backdrop behavior.
- Navbar togglers automatically track rendered Collapse/Offcanvas panel IDs in
aria-controls, while preserving consumer overrides and handling ID changes and panel removal. - Runtime breakpoint changes replace stale media-query subscriptions and synchronize CSS, ARIA, panel visibility, backdrop behavior, and body scroll locks.
- Explicit Offcanvas visibility survives responsive changes; toggler-opened state clears on entering inline mode. A nested panel's own breakpoint no longer becomes an undismissable overlay because its parent is inline.
- Legacy Offcanvas
xsvalues no longer emit the unsupportedoffcanvas-xsclass or force standalone panels open on phones.
Install
pnpm add @winkintel/bootstrap-svelte@2.0.0 bootstrapThe Svelte peer requirement remains ^5.29.0. Continue supplying Bootstrap 5 CSS in the consuming application.
Package and validation
- Published
@winkintel/bootstrap-svelte@2.0.0with thelatestdist-tag and signed npm provenance. - Tagged publish workflow and main CI passed.
- Local validation: 2,050 tests passed, zero Svelte/TypeScript errors or warnings, lint, build, publint, and package-content checks passed.
- A fresh Svelte/Vite consumer installed the exact npm version, passed svelte-check with zero errors or warnings, and built successfully.
1.x support
The codex/maintenance-1.x branch starts at v1.0.12. Follow-up issues #29 and #31 remain outside this release and can be implemented compatibly for both release lines.
Full changelog: v1.0.12...v2.0.0
Bootstrap Svelte 1.0.12
What's changed
- Changed
Offcanvaspanels withuseBackdrop={false}to ignore outside mousedown, fixing navbar togglers whose second pointer click reopened the panel instead of closing it (#24). Escape, dismiss buttons, navbar togglers, and theisShownprop continue to close the panel. - Fixed clearing or replacing
showOnBreakpointso stale media queries no longer control visibility or backdrop behavior. - Preserved explicit visibility changes made while responsive breakpoints match, synchronized body scroll locks across inline and overlay modes, and retained parent navbar breakpoints for nested offcanvas panels.
- Added regression coverage for navbar toggling, dismissal behavior, mixed-backdrop stacking, scroll-lock transitions, and responsive breakpoint clearing/replacement.
Package
- Published
@winkintel/bootstrap-svelte@1.0.12to npm with thelatestdist-tag.
Validation
- Pull-request checks and post-merge
mainCI passed. - The npm trusted-publishing dry run and real OIDC publish workflow passed.
- A clean Svelte/Vite consumer installed the exact npm version, passed
svelte-checkwith zero errors and warnings, and produced a production build.
Full Changelog: v1.0.11...v1.0.12
Bootstrap Svelte 1.0.11
What's changed
- Fixed
Modalthrowing “Maximum update depth exceeded” on Svelte 5.56.5 and newer, which could leave the modal unable to close from its buttons (#22). - Reworked
Modal.Titleregistration to use an ordered, per-instance registry. Dialog labelling now follows the first mounted title, falls back when that title unmounts, and handles ID changes without reordering. - Added regression coverage for the README quick-start flow and multi-title labelling lifecycles.
- Updated the development Svelte version to
5.57.0; the peer range remains^5.29.0.
Package
- Published
@winkintel/bootstrap-svelte@1.0.11to npm with thelatestdist-tag.
Validation
- Pull-request checks and post-merge
mainCI passed. - The npm trusted-publishing dry run and real OIDC publish workflow passed.
- A clean Svelte/Vite consumer installed the exact npm version, passed
svelte-checkwith zero errors and warnings, and produced a production build.
Full Changelog: v1.0.10...v1.0.11
Bootstrap Svelte 1.0.10
What's changed
- Added static Markdown alternates and
Accept: text/markdowncontent negotiation for the documentation site without adding runtime functions. - Added
/llms.txt,/llms-full.txt,/agents.md,/sitemap.xml,/robots.txt, and a real Markdown/HTML 404 response for agents and crawlers. - Added About, Contact, Privacy, SvelteKit integration, and Sveltestrap comparison pages, plus canonical/social metadata, JSON-LD, breadcrumbs, and updated site navigation.
- Improved the homepage's component inventory, install examples, headings, and first-component navigation.
- Expanded documentation syntax highlighting with explicit Svelte, HTML, JavaScript, CSS, SCSS, and Bash language support.
- Corrected form-documentation composition and strengthened generated Markdown/static-output regression coverage.
Package
- Published
@winkintel/bootstrap-svelte@1.0.10to npm with thelatestdist-tag. - Preserved the existing documentation-only
v1.0.9GitHub release in the changelog history.
Validation
- Pull-request and post-merge
mainCI passed. - Local lint, type checking, all 1,930 unit tests, production/package builds,
npm pack --dry-run, and the complete static-output crawl passed. - The npm trusted-publishing dry run and real OIDC publish workflow passed.
- A clean Svelte/Vite consumer installed the exact npm version, passed
svelte-checkwith zero errors/warnings, and produced a production build. - The protected Vercel preview passed live SCSS highlighting, Markdown-fence, version-metadata, and browser-runtime checks.
Full Changelog: v1.0.9...v1.0.10
Bootstrap Svelte 1.0.9
What's changed
- Redesigned the showcase landing page and documentation chrome with a new responsive navigation shell, install action, component index, live hero demo, and updated visual system (#17).
- Updated the syntax highlighter with a language label and icon-based copy action.
- Scoped documentation table styling to API/reference sections so live component demos retain their stock Bootstrap appearance.
- Added visible focus treatment and reduced-motion safeguards for the new showcase interactions.
Validation
- Pull-request CI and Vercel preview checks passed.
- Post-merge
mainCI passed lint, type check, tests, build, and npm package-content inspection.
Distribution
This is a showcase/documentation-only GitHub release. The component package was not published to npm; @winkintel/bootstrap-svelte remains at 1.0.8.
Full Changelog: v1.0.8...v1.0.9
Bootstrap Svelte 1.0.8
What's changed
- Removed the Bootstrap JavaScript bundle from the showcase so the documentation site exercises only Bootstrap Svelte's component behavior and Popper integration (#14).
- Rebuilt the showcase color-mode dropdown with Bootstrap Svelte components and added guards against Bootstrap data-API markup returning to live routes.
- Added Dropdown dismissal with Escape from toggles, items, form controls, custom content, and portaled menus, including focus restoration and layered bubble-path isolation (#15).
- Added Tab-out dismissal that follows
autoCloserules, preserved consumeronkeydownhandlers, and expanded keyboard documentation and regression coverage.
Validation
- PR and post-merge CI passed.
- 89 test files / 1,723 tests passed.
- Lint, type-check, package build,
publint, and npm package dry run passed. - Trusted-publishing dry run and production npm publish passed.
- A clean Svelte/Vite consumer installed
@winkintel/bootstrap-svelte@1.0.8; type-check and production build passed with representative Alert, Button, Card, and Dropdown imports plus Bootstrap CSS.
Install
npm install @winkintel/bootstrap-svelte@1.0.8Full Changelog: v1.0.7...v1.0.8
Bootstrap Svelte 1.0.7
What's changed
- Updated Svelte, SvelteKit, Vite, Vitest, ESLint, Prettier, and related development dependencies.
- Updated
bezier-easingand derived its easing-function type from the package factory return type for compatibility with current typings. - Reformatted Badge and Toast type unions for the updated formatter.
Validation
- PR and post-merge CI passed.
- 88 test files / 1,701 tests passed.
- Lint, type-check, package build,
publint, and npm package dry run passed. - Trusted-publishing dry run and production npm publish passed.
- A clean Svelte/Vite consumer installed
@winkintel/bootstrap-svelte@1.0.7; type-check and production build passed.
Full Changelog: v1.0.6...v1.0.7
Bootstrap Svelte 1.0.6
Highlights
- Hardened stateful components against malformed inputs, disabled interactions, interrupted transitions, dynamic registration, and stacked-overlay races.
- Corrected Form bindings, server-rendered accessibility relationships, Bootstrap class normalization, and shared CSS/scrollbar utility behavior.
- Improved Carousel, Dropdown, Modal, Navbar, Offcanvas, Pagination, Scrollspy, and Tooltip lifecycle and interaction handling.
- Consolidated weak tests and added focused regression coverage for the production issues fixed in this release.
Breaking type correction
Specialized Form input components now accept only their matching type literal. Mismatched types that were previously accepted but overridden no longer type-check.
Validation
- Local lint and Svelte/TypeScript checks passed.
- Local tests: 88 files / 1,701 tests passed.
- Local production build,
publint, andnpm pack --dry-runpassed; the package contains 475 files. - Refreshed PR CI and post-merge
mainCI passed. - Trusted-publishing dry run and production publish passed.
- Clean Vite/Svelte consumer installed
@winkintel/bootstrap-svelte@1.0.6; type-check and production build passed.
Full changelog: v1.0.5...v1.0.6