Commit Graph

41 Commits

Author SHA1 Message Date
Ashley Hunter 35f1a92586 fix: avoid emitting on destroyed overlay/dialog outputs
Destroying a host while its overlay/dialog is open ran the onDestroy
forceClose(), which emits on closed$/stateChanged$. The subscriptions
forwarded those to the component outputs after the directive was destroyed,
logging NG0953 in dev mode. Set a destroyed flag (registered before the
forceClose teardown) and skip the emits once it is set.
2026-06-16 23:41:50 +01:00
Ashley Hunter 0c3b653902 Merge origin/main into fix/overlay-lifecycle
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.
2026-06-16 23:22:47 +01:00
Ashley Hunter f533fa426c refactor(dialog): remove deprecated injectBrnDialogCtx
Drop the deprecated `injectBrnDialogCtx` in favour of `injectBrnDialogContext`, which the helm
dialog, docs app and storybook already use exclusively. Removing it before 1.0 avoids carrying the
alias on the stable line. The `BrnDialogContext` type it returned stays - it is still used inside
the service.
2026-06-14 23:43:51 +01:00
Patrick c7f2e0ce09 fix: address overlay review feedback 2026-06-13 15:36:28 -04:00
Patrick 803614a7bb test: update overlay api snapshots 2026-06-13 14:48:23 -04:00
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
Ashley Hunter bbf5dfadc7 feat(popover): add style support and rtl example
Make BrnDialog overlays inherit the trigger's ambient direction so popover renders RTL.

Closes #1409
2026-06-09 20:13:40 +01:00
Marc Stammerjohann 05d4fb327e fix: dialog backdrop classes (#1353)
* fix(dialog): set default backdrop/panelClasses through options correctly

* fix(dialog): allow set state open directly and open only in browser

* avoids "Error: Expecting instance of DOM Element"

* feat(dialog): store effect ref

* feat(dialog): call cssClassesToArray only once

* feat(dialog): don't store ref off effect, clean up automatically
2026-05-12 14:33:17 +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
Merlin d449115b68 fix: comment 2026-02-19 12:53:32 +01:00
Merlin 577e25c4a9 fix: open subscriptions 2026-02-17 14:38:39 +01:00
Merlin a5cbe86939 fix: resolve comments 2026-02-11 10:21:39 +01:00
Merlin 9aa9877c78 fix: greptile 2026-02-10 14:59:58 +01:00
Merlin 1d52f603ec fix(dialog): naming 2026-02-10 14:21:52 +01:00
Merlin fa69912370 fix(dialog): dynamic value disableClose #882 2026-02-10 14:18:58 +01:00
Max Hovens 5cb9c6db31 fix(dialog): fix alert dialog e2e test and add additional default options (#1073)
Closes #1072
2025-12-16 13:53:41 +01:00
Max Hovens 73379a1042 feat(dialog): allow setting default options for dynamically created dialogs (#1056)
Closes #1044
2025-12-09 16:26:26 +01:00
Felix Hagemans 5337e83a4b fix(dialog): only prevent closing overlay if the overlays in question are nested 2025-12-08 08:20:33 +01:00
Marc Stammerjohann 29192af454 feat: improve dialog, alert-dialog, sheet and popover (#1059)
* feat(dialog): change dialogs to directive

* docs(popover): add name to  popover template selector

* feat(dialog): simplify dialog overlay

* feat(dialog): use BrnDialogTitle as hostDirective, add data-slot

* feat(dialog): use hostDirectives, change components to directives

* add data-slot

* feat(alert-dialog): use directives, add data-slot

* feat(sheet): use directives, add data-slot

* feat(dialog): add hlm trigger directive

* feat(popover): remove unused popover-close

* feat(popover): add hlm-popover

* feat: update snapshot and selectors

* feat(dialog): add healthcheck and migration

* feat(popover): expose more inputs/outputs

* feat(dialog): dogfeeding healthcheck and migration

* feat(dialog): add types to inputs

* feat(popover): expose more inputs

* feat(dialog): use hlmDialogTrigger

* feat(dialog): remove unused importAlias

* feat(dialog): add input types
2025-12-04 10:20:12 +01:00
Marc Stammerjohann c74e74b343 feat: dropdown menu polishing (#1017)
* refactor(dropdown-menu): change components to directes if possible

* update input types

# Conflicts:
#	libs/helm/menu/src/lib/hlm-menu-bar.ts
#	libs/helm/menu/src/lib/hlm-menu-group.ts
#	libs/helm/menu/src/lib/hlm-menu-label.ts
#	libs/helm/menu/src/lib/hlm-menu-separator.ts
#	libs/helm/menu/src/lib/hlm-menu-shortcut.ts
#	libs/helm/menu/src/lib/hlm-menu.ts
#	libs/helm/menu/src/lib/hlm-sub-menu.ts

* docs(dropdown-menu): update imports

* docs(dropdown-menu): add checkboxes and radio-group examples

* feat(dropdown-menu): update styles, add data-slot

* feat(dropdown-menu): update snapshot

* fix(dropdown-menu): update storybook sideOffset args

# Conflicts:
#	apps/ui-storybook/.storybook/tailwind.css

* feat(menubar): generate helm menubar entrypoint

* feat(dropdown-menu): generate helm dropdown-menu entrypoint

* feat(context-menu): generate helm context-menu entrypoint

* docs: add about section

* feat(dropdown-menu): move menu-align to core, update type imports

* fix(dropdown-menu): lint issues

* feat(dropdown-menu): update snapshot

* feat(cli): remove context and menubar special case in ui cli

* feat(cli): load importAlias in healthcheck and pass to fix context

* feat(cli): pass importAlias to healtcheck detect too

* add components.json to healthcheck generator test
* return default importAlias in case components.json is missing/invalid

* feat(cli): add hlm-menu healtcheck and update imports

* docs(context-menu): update preview

* feat(dropdown-menu): simplify radio and checkbox selector by removing item

* feat(dropdown-menu): add migration for hlm-menu and tests

* feat(dropdown-menu): add more migration and tests, skip menu components

* feat(dropdown-menu): allow trigger to select not only button (like hlm-avatar)

* feat(cli): handle more menu imports

* docs(dropdown-menu): dogfooding healthcheck migration

* docs(dropdown-menu): improve dropdown side/alignment

* feat(dropdown-menu): avoid icon color overwrite

* docs: remove old menu import

* feat(dropdown-menu): remove helm/brain menu package

* docs: update api primitives

* docs: add new flag to menu components

* fix(dialog): resolving dialog change detection issues (#2)

* fix(dialog): resolving dialog change detection issues

* refactor: removing unused code

* fix: updating snapshot

* refactor: improving type safety

* feat(dropdown-menu): add disabled prop to menu-item, change selector to button

* docs: remove resolved comment

---------

Co-authored-by: Ashley Hunter <ashley.hunter@hotmail.co.uk>
2025-11-25 11:29:36 +01:00
Merlin Moos 4160d4a350 Merge remote-tracking branch 'origin/main' into component-template
# Conflicts:
#	libs/brain/alert-dialog/src/lib/brn-alert-dialog-overlay.ts
#	libs/brain/alert-dialog/src/lib/brn-alert-dialog.ts
#	libs/brain/avatar/src/lib/brn-avatar.ts
#	libs/brain/dialog/src/lib/brn-dialog-overlay.ts
#	libs/brain/dialog/src/lib/brn-dialog.ts
#	libs/brain/popover/src/lib/brn-popover.ts
#	libs/brain/radio-group/src/lib/brn-radio.ts
#	libs/brain/select/src/lib/brn-select-value.ts
#	libs/brain/sheet/src/lib/brn-sheet-overlay.ts
#	libs/brain/sheet/src/lib/brn-sheet.ts
#	libs/brain/tooltip/src/lib/brn-tooltip-content.ts
#	libs/helm/accordion/src/lib/hlm-accordion-content.ts
#	libs/helm/alert-dialog/src/lib/hlm-alert-dialog-content.ts
#	libs/helm/alert-dialog/src/lib/hlm-alert-dialog-footer.ts
#	libs/helm/alert-dialog/src/lib/hlm-alert-dialog-header.ts
#	libs/helm/alert-dialog/src/lib/hlm-alert-dialog.ts
#	libs/helm/avatar/src/lib/hlm-avatar.ts
#	libs/helm/carousel/src/lib/hlm-carousel-content.ts
#	libs/helm/carousel/src/lib/hlm-carousel-item.ts
#	libs/helm/carousel/src/lib/hlm-carousel-next.ts
#	libs/helm/carousel/src/lib/hlm-carousel-previous.ts
#	libs/helm/carousel/src/lib/hlm-carousel.ts
#	libs/helm/dialog/src/lib/hlm-dialog-content.ts
#	libs/helm/dialog/src/lib/hlm-dialog.ts
#	libs/helm/sheet/src/lib/hlm-sheet.ts
#	tools/eslint-rules/index.ts
2025-11-12 23:38:47 +01:00
Merlin Moos fd3229abe6 fix: add order 2025-11-12 23:08:18 +01:00
Ashley Hunter 87715502c4 build: eslint rule for styles and encapsulation 2025-11-12 21:33:40 +00:00
Merlin 6d60dc9d7d feat: add lint rule template last 2025-11-12 15:05:31 +01:00
Merlin 9e34f79ded refactor: consistent type import 2025-09-29 14:42:31 +02:00
moosme adf55dbdd3 refactor: polish imports (#890)
Co-authored-by: Merlin <merlin.moos@oldendorff.com>
2025-09-27 17:52:14 -04:00
moosme 2090ea8305 feat: add caption layout to calendar and date picker (#861) 2025-09-23 09:01:26 +02:00
Marc Stammerjohann c4e03a5622 feat: dialog polishing (#836)
* feat(dialog): update styles and sort classes

# Conflicts:
#	libs/helm/dialog/src/lib/hlm-dialog-close.ts
#	libs/helm/dialog/src/lib/hlm-dialog-content.ts

* fix(dialog): control dialog close button height w/ flex

* button size was 16x24px w/ an icon of 16x16px
* using flex changes the sizes of the button to 16x16px

* feat(dialog): add --radiux-xs styles used by shadcn/ui

* fix(dialog): use outline-none for close button again

* docs(dialog): update example headings, form field and preview

# Conflicts:
#	apps/app/src/app/pages/(components)/components/(dialog)/dialog.preview.ts

* docs(dialog): update bottom nav

* feat(dialog): replace mutable state using computed + signal w/ linkedSignal

* fix(dialog): remove [&_ng-icon]:pointer-events-none to fix e2e tests

* fix(dialog): use duration-200 for state open and closed

* fix(dialog): apply same styles like hlm-alert-dialog-content

* fix(dialog): center dialog on mobile using mx-auto

* justify-self-center is not applied in firefox/safari - parent container needs to be display grid
2025-09-01 19:11:21 +02:00
moosme 5def645d0c Id generation (#864)
* chore: nightly release 2025-08-24 ⚡

* chore: nightly release 2025-08-25 ⚡

* chore: nightly release 2025-08-26 ⚡

* chore: nightly release 2025-08-27 ⚡

* chore: nightly release 2025-08-28 ⚡

* feat: start component id by 1 #863

---------

Co-authored-by: Leonidas <leonidas@spartan.ng>
2025-08-31 18:21:00 +02:00
Ashley Hunter b1ed68e0d0 refactor: use the latest angular naming conventions (#766)
* refactor: use the latest angular naming conventions

* build: merge

* docs: fixing unexpected component rename

Co-authored-by: Ajit Panigrahi <ajitzero@gmail.com>

* build: fix generated code

* build: fixing build

* build: fix directive

* feat: adding helm migration

* build: health check detection improvements

* build: checking file type

* build: fix formatting

---------

Co-authored-by: Ajit Panigrahi <ajitzero@gmail.com>
2025-07-30 22:32:02 +02:00
MerlinMoos ced805c807 fix: make access modifier consistent #755 (#758)
* fix: make access modifier consistent #755

* fix: run format

* fix: resolve build issues

---------

Co-authored-by: Merlin Moos <merlin.moos@oldendorff.com>
2025-07-22 17:43:20 +02:00
Omer Gronich ab2f782c10 fix(dialog): update state handling and aria attributes for dialog triggers (#760) 2025-07-15 18:22:34 +02:00
Jeevan fb3d95a340 Remove standalone property (#701)
* feat: remove standalone property from various directives and components in the Helm UI library

* feat: enable strictStandalone option in Angular compiler settings
2025-06-10 22:00:48 +02:00
Marc Stammerjohann 493eba8263 feat(date-picker): autoCloseOnSelect option and open/close programmatically (#626)
* feat(date-picker): autoCloseOnSelect option and open/close programmatically, closes #597

* feat(date-picker): hlm to cli

* feat(date-picker): transform autoCloseOnSelect, add to date-picker form example
2025-03-27 00:47:34 +01:00
Marc Stammerjohann 0395d751ac feat(dialog): add more dialog options to BrnDialogDefaultOptions (#610)
* feat(dialog): add more dialog options to BrnDialogDefaultOptions

* change closeDelay to 100 default
* use closeDelay input value
* use defaultOptions values for input signal defaults

* feat(dialog): remove state from default options

* state open w/ initial page load throws errors with OutputRef and dialog position is wrong

* feat(dialog): replace mutable signals with default options

* fix default options scrollStrategy type
* expose default options for alert dialog and popover

* refactor(dialog): remove closeDelay 100 as it is the default value

* remove unused imports

* refactor(dialog): copy hlm changes to cli
2025-02-25 21:44:50 +01:00
Benjamin Heiss 7569501e82 refactor(dialog,sheet,popover): migrate to signals (#599) 2025-02-18 14:57:15 +01:00
Ashley Hunter 74d4016e1f refactor: move core to brain (#548)
* refactor: move core to brain

* refactor: migrating core imports

* refactor: updating deps

* refactor: updating generator

* refactor: fixing import

* refactor: updating cli

* refactor: updating templates

* fix: merge latest changes

* fix: tests
2025-01-08 23:12:22 +01:00
Ashley Hunter 5313d244ec build: rxjs 6 support (#525)
* build: rxjs 6 support lint rule

* build: rxjs 6 support

* build: rxjs 6 support
2024-12-11 16:00:32 +01:00
Ashley Hunter be4a87dc87 refactor: migrating remaining brain libraries to secondary entrypoints (#523)
* refactor: migrating remaining brain libraries to secondary entrypoints

* refactor: migrating remaining brain libraries to secondary entrypoints
2024-12-10 18:40:46 +01:00