Replace fixed close delays with lifecycle-driven disposal so overlays remain responsive.
Wait only for exit animations that actually start and centralize Escape, backdrop, and
outside-pointer dismissal.
BREAKING CHANGE: remove the closeDelay input and configuration option. Remove explicit delay
values; closed-state exit animations are now detected automatically.
Replace Jest with Vitest across the workspace. The brain and helm Angular suites
now run in a real browser (Playwright/Chromium via Vitest browser mode) so they
exercise real layout, focus, pointer events and computed styles that jsdom could
not. The cli, tools, mcp, registry and cli-smoke suites run on Vitest's node
environment.
- Add per-project vite configs and switch test targets to @nx/vitest:test
- Convert jest APIs to vi.* and jest module mocks to vi.mock with importOriginal
- Replace jest-axe with a browser-native axe-core helper and toHaveNoViolations
- Regenerate snapshots in vitest format (content unchanged, format-only)
- Remove all jest packages, configs, the preset and the @nx/jest target default
- Install Playwright Chromium in the CI unit job for the browser suites
Also fixes a brain avatar test that asserted inside a fire-and-forget setTimeout,
which passed vacuously under jsdom and only surfaced once a real browser loaded
the image.
* feat(native-select): add style support, rtl example, add forceInvalid
* fix(native-select): center icon correctly considering the text-xs/relaxed for default size
* feat(sonner): add style support
* fix(select): trigger icon placement when no value/placeholder is available
* feat(field): add style support, add rtl example
* fix(field): rename to spartan-*
* docs(sonner): remove duration
* docs(field): fix translation value
* fix(sonner): merge toast options to keep the default styles
* feat: better form control integration
- general a11y described by service
- hint and error stories
- datepicker value type
- mock resizeObserver causing select failure
- form desciption test failures
* feat: autocomplete and combobox
- re-implemented form integration based on latest implementation
* fix: error state
* fix: formatting
* chore: update snapshot
* fix: format
* fix: update snapshot
* fix: autocomplete stories
* fix: test
* fix: remove not needed effects
* fix: call onTouched when autocomplete focus out
* fix: evaluate only error state in field
* fix: fix slider classes and field integration
* fix: set correct error styles to input group
* feat: add native select field control support
* fix: implement field control
* fix: emit touched when blurred for combobox
* fix: add invalid support for combobox multiple
* fix: fix autcomplete search and input styles
* feat: improve control state data attributes and hlm-error
- render hlm-error if error presetn
- add touched, dirty and matches-spartan-invalid attributes
* feat: apply field control as host directive
* test: fix some control error stories WIP
* fix: lint issues w/ type imports and sort order
* chore: remove form-field package as it is replaced by field
* chore: update snapshot
* fix: fix autocomplete providers array and error story
* fix: fix select, field error and input group
* docs: fix reactive forms examples WIP
* feat: add healthcheck and migration for hlm-form-field to hlm-field
* fix: add value accessor to date-picker multi
* docs: update field for/id
* fix: fix checkbox and rename CVA providers
* fix: add and fix tests
* docs(field): update headings
* feat(autocomplete): add inputId
* feat(combobox): add input/button id
* chore: update snapshot
* docs(date-picker): use hlm field
* docs(field): add native-select example, simplify selectId
* docs: use hlm-field for date-picker blocks
* feat: update form field usage in autocomplete story
* fix(input): unit test and remove unused ngControl
* fix: comment out missing errorState in select
* feat: remove ng-* classes
* feat: remove unused code
* fix: comment out error in unit tests
* feat: set label for attribute automatically
* refactor: rename variable
* docs: add brain input and textarea docs
* fix: apply button styles in storybook
* fix: fix select test and add missing attributes
* feat: add attributes to switch
* fix: fix field e2e tests and lint errors
* chore: fix format
* fix: add optional chain
* feat(select): add controls and aria labels to brn-select-trigger
* fix: update default value for select demo
* docs(select): add form example
* chore: update snapshot
* fix(select): add optional chain for aria-invalid
* feat(select): update e2e test form attributes
* fix(input): form unit test
* fix(select): update unit test template, add HlmFieldControlDescribedBy to select trigger button
* fix(combobox): use new combobox template for unit test
* add hlmFieldControlDescribedBy to combobox trigger button
* chore: remove console log from unit test
* fix(checkbox): use buttonName instead of id
* fix: lint issue w/ import
* test: fix unit tests
* docs: add field date picker preview
* docs: fix blocks and reactive forms
* docs: improve control, field and forms docs
* feat: add provider for error matcher
* chore: rename var
* fix: replace aria-invalid in registry styles
* feat: move state to brn, add to combo tigger
* chore: format
* feat(combobox): apply form attributes on brnComboboxTrigger
* remove need for applyControlState
* chore: update snapshot
* docs: update container width for the responsive select demo
* fix: remove aria invalid and fix chips focus styles
* feat(field): move HlmFieldControlDescribedBy and HlmFieldA11yService into brain package
* chore: update snapshot
* feat(field): update id input handling, update styles
* docs: update form examples to required
* feat: add forceInvalid to brn-field and brn-checkbox
* allow overrides to data-invalid and data-matches-spartan-invalid
* fix: add error if ngControl.control is not defined
---------
Co-authored-by: Merlin <merlin.moos@oldendorff.com>
Co-authored-by: Toni Škobić <toni.skobic@gmail.com>
Co-authored-by: Marc Stammerjohann <8985933+marcjulian@users.noreply.github.com>
* feat(select): refactor select brain/helm
* refactor(select): comment out select
* feat(select): add more examples
* feat(select): add placeholder input to hlmSelectValue
* feat(select): add placeholder text for select value and custom placeholder
* feat(select): add select values
* feat(select): add select-value-template
* feat(select): handle scroll up/down elements
* feat(pagination): use hlm-select
* feat: update snapshot
* fix: lint
* fix(select): update hidden access
* feat(select): update on ai review
* feat(select): add migration and healthcheck
* feat(select): set active item on open, either first or the selected value
* for multiple the last value
* feat(select): make scroll up/down smoother and add showScroll to select content
* feat(calendar): change selectof for month/year select
* feat(select): remove unused importAlias from select migration
* feat(select): dogfeed migration
* fix(select): use placeholder from brn-select
* feat(select): improve keyboard navigations
* open on enter
* select active item on tab
* feat(select): more dogfeeding of the migration, fix placeholder replacement
* fix(select): healthcheck test, as BrnSelectImports is removed w/ brnSelect migration
* fix: lint
* feat(select): improve a11y and update tests
* feat(select): update snapshot
* fix(select): allow empty string to be resolved
* docs: remove form soon component
* docs: rename components page selector and page
* chore: remove unused ng-signal-forms
* docs: add reactive forms page and demo
* docs: add exact to link, mark forms as new
* docs: use signal input and resource for code block
* docs: add form and reset section
* docs: add validation and displaying error section
* feat(select): add select separator
* docs: add different input field types demos
* docs: revert code block signals
* docs: center form text
* docs: replace wip badge w/ text, as the badge is not aligned correctly to the text
* fix(select): remove tailwindcss class from brn
* fix(select): adds mising token exports
* docs: select 3rd party call about section
* fix: improved select text overflow styling
* fix: section intro spacing
* docs(select): 3rd party link
- format
* chore: rename prettier config
* chore: configure tailwind to sort hlm and cva functions
* docs: add sorting classes section to installation guide
* explain how to sort classes in hlm and cva functions
* update TailwindCSS to Tailwind CSS
* chore: format hlm and cva tailwind classes
* feat: remove standalone property from various directives and components in the Helm UI library
* feat: enable strictStandalone option in Angular compiler settings