Skip to content

merging fork back to main - #49

Open
goodidea-kp wants to merge 85 commits into
thedodd:masterfrom
goodidea-kp:master
Open

merging fork back to main#49
goodidea-kp wants to merge 85 commits into
thedodd:masterfrom
goodidea-kp:master

Conversation

@goodidea-kp

Copy link
Copy Markdown

No description provided.

goodidea-kp and others added 30 commits October 28, 2025 09:08
Introduced a new example page for the calendar component powered by `bulma-calendar`. Updated routes and catalog documentation to support the new example. Adjusted the YAML configuration and component module references accordingly.
- Adjust initialization formatting for `navbar`, `modal`, and other components.
- Consolidate formatting options in `rustfmt.toml` and replace deprecated fields.
- Simplify inlined closures and external function signatures for readability.
- Prefix unused variables with `_` in `modal`, `autocomplete`, and other components.
- Correct module reference path in `calendar` example.
Refactor unused variable bindings and update module reference paths
- Introduce `docs-pages` workflow for publishing documentation to GitHub Pages.
- Update Cargo.toml with `documentation` link and `docs.rs` metadata.
- Enable `doc_cfg` and `doc_auto_cfg` features for enhanced doc generation.
- Adjust CI workflow to build documentation with all features.
- Update `release.yaml` to use the latest checkout and
Add GitHub Pages workflow and enhance documentation configuration
* Remove `docs-pages` GitHub Pages workflow

* Add `bread_crumbs` component example page

* Rename `bread_crumbs_example` module to `bread_crumbs_example_page` for consistency with other example pages

* Rename `bread_crumbs_example` module to `bread_crumbs_example_page` for consistency with other example pages
…he catalog and comments for clarification (#18)
* Bump Yew-related dependencies and update package version to 0.4.2

* Refactor: Replace `#[function_component]` with `#[component]` across all components and bump Yew to 0.22.0

- Updated Yew from version 0.21.0 to 0.22.0.
- Replaced the `#[function_component]` attribute with the `#[component]` attribute for all components to align with the updated API.
- Adjusted `yew-router` to version 0.19 for compatibility.
- Updated the `ybc` dependency to use a local path reference.

* Bump Yew to 0.22 in basic example dependencies
- Introduced `<dialog>`-based modal controller for `Modal` and `ModalCard` components.
- Added support for controlled and uncontrolled modal states.
- Replaced `ModalCloser` with `ModalController`.
- Updated modal examples to leverage the new context-based controller.
- Upgraded `web-sys` and `derive_more` dependencies to support new features.
- Updated catalog YAML to document changes in modal usage and API.
- Bumped crate version to `0.4.3`.
- Introduced controlled and uncontrolled state management for `Tabs`, `Accordion`, `Navbar`, and `Panel` components.
- Added ARIA attributes for better accessibility, including labels and roles for interactive elements.
- Improved keyboard navigation and event handling for components such as `TabItem`, `AccordionItem`, and `NavbarDropdown`.
- Updated responsive and interactive behaviors across components to align with accessibility standards.
…lete` component

- Introduce new accessibility attributes (`aria-*`, `role`, `tabindex`) for `Button` and `Delete` components.
- Replace Font Awesome modal close buttons with `Delete` components for consistency.
…`ybc-catalog`, and example projects (#23)

- Upgrade `yew` to 0.23.0 with CSR feature.
- Update `yew-router` to 0.20.0.
- Adjust exports for `router`-dependent features.
- Bump package versions for `ybc` (0.4.5) and `ybc-catalog` (0.1.1).
* Fix ModalCard title/body overflowing the viewport for long content

.modal-card-title has flex-shrink:0 in Bulma with no min-width override,
so a long unbroken string (a hostname, an ARN) in the title forces
modal-card-head wider than the card instead of wrapping; centering then
pushes the whole dialog off-screen on both sides. Add min-width:0 on the
head/title, overflow-wrap on the title, and overflow-x on the body as a
backstop for wide table content, in the same DIALOG_STYLE block that
already patches other Bulma/<dialog> quirks per instance.

* Bump version from 0.4.5 to 0.4.6
* Fix ModalCard title/body overflowing the viewport for long content

.modal-card-title has flex-shrink:0 in Bulma with no min-width override,
so a long unbroken string (a hostname, an ARN) in the title forces
modal-card-head wider than the card instead of wrapping; centering then
pushes the whole dialog off-screen on both sides. Add min-width:0 on the
head/title, overflow-wrap on the title, and overflow-x on the body as a
backstop for wide table content, in the same DIALOG_STYLE block that
already patches other Bulma/<dialog> quirks per instance.

* Bump version from 0.4.5 to 0.4.6
The first fix (#24) only addressed .modal-card-title's flex-shrink:0 by
adding min-width:0 — which doesn't actually override flex-shrink:0 (an
explicit "never shrink" declaration, not the default min-width:auto floor
that min-width:0 fixes). The title kept clipping instead of wrapping.

Three problems fixed here, verified against a standalone repro of the
actual DOM/CSS at both desktop and mobile widths:

1. .modal-card-title needs flex-shrink:1 (not just min-width:0) to actually
   participate in shrinking so overflow-wrap can wrap it.
2. Bulma centers .modal-card/.modal-content via `margin: 0 auto` (desktop)
   or a fixed side margin (mobile), which fights this component's own
   flexbox centering (align-items/justify-content on the dialog) once
   content can't shrink to fit. Reset margin to 0 so flexbox is the only
   positioning mechanism.
3. A CSS-variable-based per-instance width override only takes effect
   inside Bulma's own min-width:769px media query; below that breakpoint
   it's silently ignored. Cap with max-width (not width) using
   calc(100vw - 2rem) so the card can never exceed the viewport at any
   breakpoint.
Bulma `.panel-tabs` is filter navigation, not a WAI-ARIA tablist widget:
it has no roving tabindex / arrow-key contract and no linked tabpanels, and
its children are plain links rather than role="tab". Emitting role="tablist"
therefore trips axe `aria-required-children` (critical) on every consumer.
Render it as a labelled role="navigation" region instead. The real accessible
tablist widget remains available via Tabs/TabItem/TabPanel in tabs.rs.

Bumps to 0.4.7.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Neither component exposed the HTML maxlength attribute, so a consuming
app had no way to cap input length client-side even when the backend
enforces one (e.g. a DB column's varchar length) -- the only feedback
was a server round-trip after the fact. Optional (#[prop_or_default]),
so existing call sites are unaffected.
* - Add `TabsProvider` component and enhance Tabs functionality
  - Introduce `TabsProvider` for managing tab state context and `Tabs`, `TabItem`, `TabPanel` coordination.
  - Update `Tabs` to support both controlled and uncontrolled modes with inheritance from `TabsProvider`.
- Add example for Tabs component and custom tab styling.
  - Enhance `basic` example with a new section demonstrating `TabsProvider` integration.
  - Add `TabsProvider`-backed `Tabs` example and implement custom SCSS for high-contrast styling.
- Add `repro_example` module and update routes.
  - Integrate `ReproRoute` for example routing.
  - Create minimal reproducible case for desync bug using nested `Switch` and `Tabs`.
- Add development script.
  - Introduce `scripts_dev_serve.sh` for running `trunk serve` at port `8124`.

* Bump version to 0.4.9 in Cargo.toml
…ode (#30)

* fix(calendar): guard bulma-calendar destroy() against a removed DOM node

detach_date_picker called bulma-calendar's destroy(), which internally does
document.getElementById(id).remove(). When a Yew component hosting a Calendar
unmounts, Yew removes the DOM node before this cleanup effect runs, so
getElementById returns null and .remove() throws an uncaught TypeError
(observed navigating away from a page with a date picker). The instance is
being discarded regardless, so wrap destroy() in try/catch and swallow a
teardown-time failure. Bump to 0.4.10.

* chore: cargo fmt (pre-existing drift in tabs.rs, blocks CI fmt check)

* chore: drop unused JsCast import in calendar.rs
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.

1 participant