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.
* fix: allow undefined in value model signals for autocomplete, combobox, and select
Closes: #1387
* fix(select): guard undefined in select/select-multiple key-manager effect values
* feat: explicit check for undefined value
---------
Co-authored-by: Marc Stammerjohann <8985933+marcjulian@users.noreply.github.com>
* 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(combobox): open on enter and select active with tab
* feat(combobox): open popup with arrow down/up
* refactor(autocomplete): update isExpanded check for keydown
* feat(combobox): apply data-disabled for item for correct styles
* feat(autocomplete): apply data-disabled for item for correct styles
* feat(combobox): add custom placeholder and value template
* add placeholder to combobox-value
* add buttonId to the combobox trigger
* improve combobox trigger a11y
* fix(autocomplete): option select doesn't trigger a new searchChange event
* handle value/search changes differently
* fix(combobox): allow prefilling the search text into the input field
* feat(autocomplete): simplify autocomplete template
* feat(autocomplete): rename value accessor
* feat(autocomplete): add autocomplete-search component for free-form text
* docs(autocomplete): use field for form examples
* docs(autocomplete): add changeDetection onPush
* feat(autocomplete): add status and improve async example
* fix empty position in the example templates
* docs(autocomplete): fix lint issues and update snapshot
* refactor(autocomplete): simplify BrnAutocompleteSearchInput w/o search value control
* feat(autocomplete): debounce search input, fix form write opens options
* refactor(autocomplete): infer input type
* refactor(autocomplete): simplify selection cleared
* refactor(autocomplete): update imports
* feat(autocomplete): update snapshot
* feat(autocomplete): require select and form support
* feat(autocomplete): fix keyboard navigation and test
* feat(autocomplete): polish button type, value generic, and default values
* feat(autocomplete): compute displaySearchValue based on displayWith or transformValueToSearch
* use in write and option select
* feat(autocomplete): add generic for transformed value, add example
* docs(autocomplete): fix example type
* feat(autocomplete): update snapshot
* feat(autocomplete): remove displayWith from token as the context is not available there
---------
Co-authored-by: Merlin <merlin.moos@oldendorff.com>
* feat(autocomplete): update searchValue for form writes
* feat(autocomplete): open on ArrowUp and select last, #876
* move open/close into BrnAutocomplete
* feat(autocomplete): escape removes search when popover is closed, #876
* feat(autocomplete): update snapshot
* feat(autocomplete): change value to model in brn search input
* feat(autocomplete): update snapshot
* feat(autocomplete): add transform optio to string to config, apply for option value
* docs(autocomplete): add config example and describe both functions
* feat(autocomplete): update classes and add additional input classes for autocomplete
* feat(autocomplete): add aria-expanded to BrnAutocompleteSearchInput
* 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>