Commit Graph

24 Commits

Author SHA1 Message Date
mehrabix 2e3059c8a2 feat(drawer): add drawer component with brain primitive and helm styling 2026-06-13 21:31:07 +03:30
SOG-web fc90194a71 refactor(mcp): rename ui-mcp to mcp and apply code quality fixes
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
2026-05-21 20:28:56 +01: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 0f2fe5e21c feat(native-select): add new primitive (#1214)
* 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
2026-02-19 12:38:39 +01:00
Phuong Tran Dong f171bfe3d9 feat(field): add new field component (#956)
* 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
2025-10-28 11:45:36 +01:00
moosme 7bd9eb62b1 feat(resizable): add resziable (#871)
* feat(resizable): add resizable #120

* feat(resizable): add docs

* feat(resizable): remove deps

* feat(resizable): add generator

* fix(tabs): performance

* fix: flickering

* fix: lint

* fix: add descr

* fix: run format and add descr

* fix: remove module

---------

Co-authored-by: Merlin <merlin.moos@oldendorff.com>
2025-10-24 13:27:05 +02:00
Merlin f28b52adc6 feat(item): add item
# Conflicts:
#	apps/app/src/app/shared/layout/side-nav/side-nav-content.ts
#	libs/tools/src/generators/helm-secondary-entrypoint/generator.ts
2025-10-22 15:40:02 +02:00
Phuong Tran Dong 3e8b235069 feat(empty): add empty component (#925)
* feat(empty): add empty component

* feat(empty): fix page navigation

* feat(empty): fix unit test

* feat(empty): fix review comments

* feat(empty): fix lint
2025-10-15 09:52:16 +02:00
Phuong Tran Dong 1dc22594d2 feat(button-group): add new button-group component (#917)
* feat(button-group): add new button-group component

* feat(button-group): fix lint

* feat(button-group): fix format and snapshot

* feat(button-group): fix e2e test

* feat(button-group): fix review comments

* feat(button-group): fix example imports

* feat(button-group): fix review comments and apply suggestion

* feat(button-group): update template

* feat(button-group): remove role from separator

* feat(button-group): fix snapshot

* feat(button-group): remove unnessesary margin for button group separator
2025-10-13 17:05:48 +02:00
Merlin Moos 6ac2ac661b feat(kbd): add kbd 2025-10-06 23:36:48 +02:00
Merlin Moos 55e4fc9c87 Merge remote-tracking branch 'origin/main' into input-group 2025-09-30 22:17:23 +02:00
Merlin 40698f5dbd feat(input-group): add input group #598 2025-09-24 16:02:44 +02:00
Merlin 10ee70ab86 Merge remote-tracking branch 'origin/main' into sidebar 2025-09-15 21:58:10 +02:00
Marc Stammerjohann 79ed97dbc4 feat: autocomplete (#853)
* 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>
2025-09-09 22:39:32 +02:00
Merlin Moos c87ba101a8 feat(sidebar): initial sidebar #497 2025-08-23 10:08:32 +02:00
Robin Goetz e864f2553d fix(cli): make sure to use the right separator regardless of OS (#744)
closes #723
2025-07-06 19:07:43 +02:00
Marc Stammerjohann 5e8f93dcf3 docs(sonner): polishing (#694) 2025-05-26 12:06:31 -04:00
Marc Stammerjohann ef8aaa9bf0 feat: add input-otp (#639) 2025-04-10 20:14:53 +02:00
Jakub Sapała 23b13891e7 feat: toggle-group component (#634)
* feat(toggle-group): first draft with existing brn toggle group functionalities

* chore(toggle-group): add toggle-group to scope & template

* chore: move toggle-group functionality to new brn & hlm

* fix: fix error at format and lint

* fix: fix remaining eslint error

* fix: update spartan-ng/brain version for toggle-group

* fix: resolve format issue in the toggle-group

* fix(toggle-group): resolve e2e errors

* feat(toggle-group): add healthcheck migrate toggle-group

* feat(toggle-group): add argTypes in toggle-group storybook & fix format issues

* chore: delete unnecessary comments

* chore: nightly release 2025-04-02 ⚡

* chore: nightly release 2025-04-03 ⚡

* chore: nightly release 2025-04-04 ⚡

* chore: update toggle-group dependencies

---------

Co-authored-by: Leonidas <leonidas@spartan.ng>
2025-04-08 08:53:47 +02:00
Phuong Tran Dong e5675a429b feat(breadcrumb): add breadcrumb component (#499) 2024-11-26 14:38:05 +01:00
Josue Morales d814deb084 feat(form-field): add new component and directives (#294)
- feat(hlm-error): new directive to handle error

- feat(hlm-hint): new directive to handle extra info

- feat(error-state): add service to show error depends on the dirty or touched state
2024-06-28 16:08:32 -05:00
Ben Snyder 694e0e442c feat(repo): update vite to 5.2.x, @analogjs/* to 1.2.x, and update various supporting packages (#264)
* feat(nx): upgrade nx to version 18.3.3

* feat(repo): update vite to 5.2.x, @analogjs/* to 1.2.x, and update various supporting packages

* feat(repo): adjust tsconfig to use @spartan-ng/app/* over ~/*
2024-04-23 19:58:33 +02:00
Clara Castillo d61d51908e feat(sonner): new hlm toaster component (#205)
* feat: add hlm sonner toaster

* fix: toaster styles

* feat(sonner): add sonner story

* feat(sonner): add sonner to sidenav

* feat(sonner): better usage insights

* feat(sonner): add hlm toaster generator

* fix(sonner): jest config
2024-03-26 16:40:36 +01:00
robingotz 0f4d9b5ec0 build: upgrade to analog v1 & enable esm & upgrade angular 17.3
also includes other small fixes to the project like
making sure the docs page works and builds correctly
2024-03-15 13:39:08 -04:00