Resolve brn-dialog.service.ts conflict: drop the deprecated injectBrnDialogCtx
alias (removed on main during the pre-1.0 audit) and keep the typed
injectBrnDialogContext with the unknown default.
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 the cross-entry-point relative import (../../../src/testing/axe) in the
checkbox, collapsible and switch specs with a @spartan-ng/brain/testing path
alias, mirroring the @angular/core/testing convention. The helper stays test
only: no ng-package.json, excluded from the lib build and dependency checks, so
it is never published.
Rename the library from @spartan-ng/ui-mcp to @spartan-ng/mcp, move
libs/ui-mcp to libs/mcp, and update all workspace references. Add mcp
as a valid commitlint scope.
- Remove private flag so the package can be published
- Fix npm package extraction to preserve hyphenated names
- Run all analyzers when building accessibility overview score
- Branch blocks cache by format (text vs html) to prevent corruption
- Mark unused version parameters with underscore prefix
- Add explicit member accessibility modifiers to CacheManager fields
- Validate version strings in switchVersion to prevent path traversal
- Remove unused DOCUMENTATION_TOPICS import from docs.ts
- Key docs cache by topic+format to avoid cross-format responses
- Add AbortController timeouts to fetch calls in health.ts and utils.ts
- Remove irrelevant Brain API/Helm API copy from meta.ts instructions
- Replace collision-prone code ID with SHA-256 hash
- Relax preCodeRegex to allow whitespace between pre and code tags
* 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(sonner): add brain sonner entry
* feat(sonner): remove ngx-sonner and use @spartan-ng/brain/sonner
* docs(sonner): add brain api section
* fix(sonner): vanishing of custom icons
* feat(sonner): add toaster spec and update snapshot
* fix(sonner): filter toasts/heights by position in toast to expand toasts grouped by position
* feat(sonner): add sonner toaster config
* feat(sonner): use Directionality for dir, use afterNextRender and DOCUMENT for window access
* remove dir prop
* feat(sonner): update modifiers and type imports
* feat(sonner): update snapshot
* feat(sonner): add sonner healthcheck and migration to migrate ngx-sonner
* fix(sonner): update healthcheck guard
* feat(sonner): copy to helm
* fix(sonner): update comment
* fix(sonner): replace comment
* fix(sonner): update migration test message
* feat(sonner): replace all in migration
* feat(sonner): use injected document, update comments
* feat(sonner): use clsx
* feat(sonner): use computed for classes
* docs(sonner): update about
* feat(native-select): add native-select
* feat(native-select): add form control to native select
* fix(native-select): lint issues
* feat(native-select): remove conflicting select styles
* feat(native-select): update select icon class size and input, add primtive deps
* feat(native-select): update snapshot
* docs(native-select): update meta
* feat(native-select): split model into input, linkedSignal and output to avoid model change events
* feat(native-select): update access modifier
* feat(native-select): use model for value, but keep valueChange as separate output
* feat(navigation-menu): init brain
* feat(navigation-menu): init helm
* feat(navigation-menu): init inputs for root comp
* feat(navigation-menu): setup contexts and scaffolds comps WIP
* feat(cli): init trigger component
* feat(navigation-menu): init content comp and fix selectors
* feat(navigation-menu): create link comp and improve others
* feat(navigation-menu): create hlm directives WIP and export from index.ts
* feat(navigation-menu): start working on rendering content
* refactor(hover-card): move createHoverObservable to core
* feat(navigation-menu): init content service and rendering content WIP
* fix(hover-card): fix overlay position strategy position expression
* feat(navigation-menu): render content using angular cdk overlay WIP
* feat(navigation-menu): set delay duration on open
* feat(navigation-menu): show/hide content in all cases
* docs(navigation-menu): improve docs WIP
* feat(navigation-menu): move content related type to service class
* feat(navigation-menu): implement skip animation logic
* fix(navigation-menu): fix navigation mouse out behaviour
* docs(navigation-menu): add brain and helm api
* feat(navigation-menu): detach content on animation end
* refactor(navigation-menu): refactor setting data-motion logic
* docs(navigation-menu): add trigger chevron icon
* feat(navigation-menu): adjust content position
* docs(navigation-menu): add new badge
* feat(navigation-menu): support nested nav menu
* feat(navigation-menu): add missing orientation data attr
* feat(navigation-menu): add full support for dir and orientation
* fix(navigation-menu): apply dir to content overlay
* feat(navigation-menu): add support for tab and escape
* feat(navigation-menu): add hlm nav link
* feat(navigation-menu): close content on disabled item hover
* fix(navigation-menu): fix hover bug and rename variable
* fix(navigation-menu): add distinct hover
* fix(navigation-menu): fix animations and sub nav handling
* fix(navigation-menu): make button focusable in Safari, remove focused Observable
* feat(navigation-menu): implement keyboard focus
* feat(navigation-menu): comply with ARIA
* style: fix CSS popover and accent vars
* feat(navigation-menu): minor animation and render adjustments
* docs: write navigation menu docs WIP
* docs: remove redundant text
* docs: add navigation menu to storybook
* docs: modify nav menu example description
* docs: fix meta and title
* docs: remove accidentally added side nav content
* style: format
* fix(navigation-menu): fix token desc
* fix(tooltip): move computedPrevious to core
* fix(navigation-menu): expose isOpenDelayed as readonly
* fix(navigation-menu): rename hlmLink to hlmNavLink
* docs: update ui docs snapshot
* refactor: address lint issues
* chore: run format
* docs(navigation-menu): fix vertical menu width
* docs(navigation-menu): fix nested menu width
* fix(navigation-menu): resolve PR comments
* fix(navigation-menu): fix list styles
* fix(navigation-menu): add missing data-slot
* fix(navigation-menu): fix examples wrong href to docs
* feat(navigation-menu): add active input to link el
* feat(field): add field components
* feat(field): update nav bar
* feat(field): update responsive example code
* feat(field): update field page and example
* feat(field): fix format
* feat(field): fix review comments
* feat(field): fix format
* feat(field): add storybook and e2e test
* feat(field): fix format
* feat(field): update navigation link
* feat(field): add template cli
* feat(field): update bottom nav
* feat(field): fix review comments
* feat(autocomplete): add autocomplete component
* add example for async filter w/ new resource
* add example for form
* feat(autocomplete): update snapshot
* docs(autocomplete): rename page selector
* feat(autocomplete): change model to input, linkedSignal and output
* feat(autocomplete): add primitive dependencies for autocomplete
# Conflicts:
# libs/cli/src/generators/ui/primitive-deps.ts
* feat(autocomplete): copy hlm to cli
* docs(autocomplete): fix type
Co-authored-by: Ashley Hunter <ashley.hunter@hotmail.co.uk>
* feat(autocomplete): update inputs
Co-authored-by: Ashley Hunter <ashley.hunter@hotmail.co.uk>
* feat(autocomplete): adjust to input styles, add arrowDown to trigger options
* focus input on toggle button click
* fix(autocomplete): lint error
* feat(autocomplete): override hlm-command-search-input height
* feat(autocomplete): add loading state option to differentiate empty state
* feat(autocomplete): generate snapshot
* feat(autocomplete): use BrnPopover to trigger open/close
* remove syncing of the popover state
* docs(autocomplete): add api docs for helm
* feat(autocomplete): simplify styles by creating autocomplete specific command components
* feat(autocomplete): remove unused HlmCommand
* feat(autocomplete): add filter input for command, rename previous filter to search
* docs(autocomplete): remove unused form from async example
* feat(autocomplete): remove addition * from comments
* feat(autocomplete): generate snapshot
* feat(autocomplete): update searchChange comment
* feat(autocomplete): add inputs for loading and empty text
* feat(autocomplete): allow search input to be optional
* feat(autocomplete): add background to autocomplete
* feat(autocomplete): override command filter to always true
* feat(command): set command item to active on mouseenter, use host click listener
* feat(autocomplete): allow focus active on enter only when popover is open
* feat(autocomplete): update imports and dialog attachTo
* feat(autocomplete): add @spartan-ng/brain/autocomplete supporting value as T
* feat(autocomplete): update snapshot and remove focusActiveOnEnter from command
* feat(autocomplete): allow generic for HlmAutocomplete, add objects example with countries
* feat(autocomplete): focus first item when items change
* if ther eis not active item
* if active item is not in items
* if first item is not active item
* feat(autocomplete): use brnAutocomplete in hlm-autocomplete
* feat(autocomplete): cleanup BrnAutocomplete unused config and platform
* feat(autocomplete): move options and filter out, use only filteredOptions
* update examples
* fix(autocomplete): lint issue
* feat(autocomplete): update hlm/brain exports
* feat(autocomplete): use autocomplete list styles to set max height, update id in HlmAutocomplete
* feat(autocomplete): open popover keydown/toggle if there is a search term/options to show
* hide autocomplete list when filtered options are empty
* add aria-label input for the toggle button
* add class input for empty state
---------
Co-authored-by: Ashley Hunter <ashley.hunter@hotmail.co.uk>
* feat: remove standalone property from various directives and components in the Helm UI library
* feat: enable strictStandalone option in Angular compiler settings
* feat(date-picker): add hlm-date-picker component
* feat(date-picker): support ng form with value accessor, format date with a input function
* add date picker story
* add form/format examples
* feat(date-picker): update dateFormat function type and default formatting
* style ng-icon instead of svg
* feat(date-picker): update peerDeps
* feat(date-picker): remove todo
* feat(date-picker): define formatDate as global config
* feat(date-picker): change defaultConfig to function and use generic
* feat(date-picker): rename token file
* feat(date-picker): handle null in writeValue from FormControl
* feat(date-picker): add transformDate function to config and as input
* docs(date-picker): add transformDate config to date-picker page
* feat(date-picker): remove extra border from calendar in date-picker
* add calendarClass input to calendar component
* feat(date-picker): add date-picker component to ui generator
* docs(date-picker): change cli installation name
* fix(date-picker): lint issues
* docs(date-picker): link to used components