Commit Graph

20 Commits

Author SHA1 Message Date
Patrick c7fb7469d6 fix: restore overlay dismissal semantics 2026-06-13 14:32:40 -04:00
Patrick ba74c53c97 refactor: split dialog and overlay primitives 2026-06-13 14:32:40 -04:00
Patrick 179ec6af8f fix: coordinate overlay lifecycle with animations
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.
2026-06-13 14:32:40 -04:00
Youssef Chaygani c5afdcdabf fix: allow undefined in value model signals for autocomplete, combobox, and select (#1423)
* 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>
2026-06-08 12:17:50 +02:00
Marc Stammerjohann 3d0ee7f634 feat(combobox): add forceInvalid and invalid example 2026-06-02 13:42:40 +02:00
Marc Stammerjohann 124606c782 fix(combobox): is empty based ony visible items only, ignores search value, closes #1365 2026-06-01 18:46:27 +02:00
Marc Stammerjohann 643803d2c1 feat(combobox): show clear also for search value 2026-06-01 18:30:54 +02:00
Marc Stammerjohann c3a2c84cfa feat(combobox): add closeOnSelect input and config, closes #1330 2026-05-28 13:12:55 +02:00
Marc Stammerjohann 4d14653aa1 fix: combobox width adaption in popup mode and remove last item selected (#1348)
* fix(combobox): skip update input width when its inside the combobox content

* fix(combobox): replace selcted.pop to avoid side effects, closes #1318
2026-05-05 10:14:22 +02:00
Marc Stammerjohann f585b9e2e5 feat: track autocomplete/combox/select input/trigger width (#1336)
* feat(select): track trigger width changes

* feat(combobox): track input width changes

* feat(autocomplete): track input width changes

* feat: update snapshot

* feat: use injectElementSize to track input/trigger width changes

* feat: add getBoundingClientRect() as fallback for potential offsetWidth = 0 in safari

* feat: update snapshot
2026-04-30 15:00:36 +02:00
Sammy Mohamed 3f743e19f7 feat: better form control integration (#1053)
* 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>
2026-03-31 12:41:44 +02:00
Marc Stammerjohann 575300682f feat: better keyboard nav for combobox, add custom placeholder/value for combobox popup trigger (#1278)
* 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
2026-03-24 10:44:30 +01:00
Sefat Anam fe963b4061 fix: autocomplete and combo-box popover content width (#1258)
contains fix for [BUG] Wrong autocomplete popover content width #1253
2026-03-08 12:01:19 +01:00
Marc Stammerjohann a69b945b3b fix: autocomplete selection trigger search change, combobox prefill search into input (#1190)
* 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
2026-02-05 17:22:04 +01:00
Marc Stammerjohann 647ca1dd6b fix(combobox): popup clear button removes search input (#1189)
* docs(combobox): remove unused mode input

* fix(combobox): typo

* docs(combobox): remove showClear from disabled example

* feat(combobox): handle clear button different for popup mode

* show clear button in popup mode only when search is entered
* clear search in popup mode
2026-02-05 15:06:05 +01:00
Marc Stammerjohann 2c9335e088 feat: add autoHighlight combobox autocomplete (#1171)
* feat(combobox): add autoHighlight option and examples

* docs(combobox): self closing for combobox-input

* feat(autocomplete): add autoHighlight option and examples
2026-01-30 15:58:04 +01:00
Marc Stammerjohann 3522f9a6b4 feat(combobox): expose search as model and add async examples (#1144)
* feat(combobox): change search to model and expose for async

* add async examples
* use field for form examples
* add combobox status directives

* docs(combobox): fix lint
2026-01-19 17:56:36 +01:00
Marc Stammerjohann ae2b21c434 fix(combobox): set brnComboboxTrigger type to button, avoid form subm… (#1139)
* fix(combobox): set brnComboboxTrigger type to button, avoid form submission

* fix(combobox): update selector
2026-01-16 13:22:07 +01:00
Marc Stammerjohann c85db63cc8 feat(combobox): sync remove changes to form (#1135)
* feat(combobox): sync remove changes to form

* add inputs to hostDirectives

* feat(combobox): add modifier and return type to methods
2026-01-14 20:04:56 +01:00
Marc Stammerjohann 546aab9be2 feat: add combobox primitive (#1127)
* feat(combobox): add combobox primitive

* feat(combobox): add combobox primitive deps

* docs(combobox): add more combobox examples

* feat(combobox): sort changeDetection

* feat(combobox): lint compliant

* fix(combobox): rename class input

* feat(combobox): add combobox multiple selection w/ chips

* add support for BrnComboboxBase
* add multiple examples
* add button icon-xs size

* feat(combobox): add brn combobox trigger to handle disabled

* fix(combobox): lint issues

* feat(combobox): reset search and close popover on selection in multiple popover

* applies when a search term is available

* fix(combobox): lint issue

* fix(combobox): skip anchor when inside a combobox content

* fix(combobox): use brn popover trigger

* docs(combobox): clean up combobox preview code

* test(combobox): update story and e2e test

* docs(command): show combobox example

* docs(combobox): add new flag

* chore(cli): generate combobox

* feat(combobox): add isItemEqualToValue function

* docs(combobox): add config section w/ filter and object options

* feat(combobox): update snapshot

* docs(combobox): remove duplicate formGroup
2026-01-14 10:25:31 +01:00