@lenne.tech/ng-base 18.1.3 → 22.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +55 -0
- package/LICENSE +2 -2
- package/README.md +237 -44
- package/fesm2022/lenne.tech-ng-base-ai.mjs +771 -0
- package/fesm2022/lenne.tech-ng-base-ai.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-auth-provide.mjs +945 -0
- package/fesm2022/lenne.tech-ng-base-auth-provide.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-auth.mjs +454 -0
- package/fesm2022/lenne.tech-ng-base-auth.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs +825 -0
- package/fesm2022/lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs +351 -0
- package/fesm2022/lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-capture-engine-TkjMDdqj.mjs +1046 -0
- package/fesm2022/lenne.tech-ng-base-bug-capture-engine-TkjMDdqj.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-constants-Brm2KGHi.mjs +4 -0
- package/fesm2022/lenne.tech-ng-base-bug-constants-Brm2KGHi.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-messages-BsP4fRQU.mjs +179 -0
- package/fesm2022/lenne.tech-ng-base-bug-messages-BsP4fRQU.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-provide.mjs +26 -0
- package/fesm2022/lenne.tech-ng-base-bug-provide.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-report-Tzlhe1Cm.mjs +62 -0
- package/fesm2022/lenne.tech-ng-base-bug-report-Tzlhe1Cm.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug-server.mjs +818 -0
- package/fesm2022/lenne.tech-ng-base-bug-server.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-bug.mjs +196 -0
- package/fesm2022/lenne.tech-ng-base-bug.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-files-ui.mjs +445 -0
- package/fesm2022/lenne.tech-ng-base-files-ui.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-files.mjs +474 -0
- package/fesm2022/lenne.tech-ng-base-files.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-server.mjs +408 -0
- package/fesm2022/lenne.tech-ng-base-server.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-share.mjs +76 -0
- package/fesm2022/lenne.tech-ng-base-share.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-sync.mjs +1096 -0
- package/fesm2022/lenne.tech-ng-base-sync.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-testing.mjs +171 -0
- package/fesm2022/lenne.tech-ng-base-testing.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-ui-provide.mjs +124 -0
- package/fesm2022/lenne.tech-ng-base-ui-provide.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-ui.mjs +34645 -0
- package/fesm2022/lenne.tech-ng-base-ui.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base-utils.mjs +287 -0
- package/fesm2022/lenne.tech-ng-base-utils.mjs.map +1 -0
- package/fesm2022/lenne.tech-ng-base.mjs +615 -910
- package/fesm2022/lenne.tech-ng-base.mjs.map +1 -1
- package/i18n/auth/de.json +17 -0
- package/i18n/auth/en.json +17 -0
- package/i18n/bug/de.json +85 -0
- package/i18n/bug/en.json +85 -0
- package/i18n/de.json +8 -0
- package/i18n/en.json +8 -0
- package/i18n/files/de.json +27 -0
- package/i18n/files/en.json +27 -0
- package/i18n/share/de.json +8 -0
- package/i18n/share/en.json +8 -0
- package/i18n/ui/de.json +38 -0
- package/i18n/ui/en.json +38 -0
- package/package.json +127 -58
- package/types/lenne.tech-ng-base-ai.d.ts +845 -0
- package/types/lenne.tech-ng-base-auth-provide.d.ts +604 -0
- package/types/lenne.tech-ng-base-auth.d.ts +320 -0
- package/types/lenne.tech-ng-base-bug-provide.d.ts +272 -0
- package/types/lenne.tech-ng-base-bug-rolldown-runtime-C25Le4-w.d.ts +1 -0
- package/types/lenne.tech-ng-base-bug-server.d.ts +316 -0
- package/types/lenne.tech-ng-base-bug.d.ts +202 -0
- package/types/lenne.tech-ng-base-files-ui.d.ts +116 -0
- package/types/lenne.tech-ng-base-files.d.ts +288 -0
- package/types/lenne.tech-ng-base-server.d.ts +262 -0
- package/types/lenne.tech-ng-base-share.d.ts +21 -0
- package/types/lenne.tech-ng-base-sync.d.ts +380 -0
- package/types/lenne.tech-ng-base-testing.d.ts +327 -0
- package/types/lenne.tech-ng-base-ui-provide.d.ts +65 -0
- package/types/lenne.tech-ng-base-ui.d.ts +7744 -0
- package/types/lenne.tech-ng-base-utils.d.ts +150 -0
- package/types/lenne.tech-ng-base.d.ts +503 -0
- package/ui/styles/components/accordion.css +3 -0
- package/ui/styles/components/alert-dialog.css +4 -0
- package/ui/styles/components/alert.css +3 -0
- package/ui/styles/components/aspect-ratio.css +3 -0
- package/ui/styles/components/attachment.css +4 -0
- package/ui/styles/components/autocomplete.css +4 -0
- package/ui/styles/components/avatar.css +3 -0
- package/ui/styles/components/badge.css +3 -0
- package/ui/styles/components/breadcrumb.css +3 -0
- package/ui/styles/components/bubble.css +3 -0
- package/ui/styles/components/button-group.css +3 -0
- package/ui/styles/components/button.css +3 -0
- package/ui/styles/components/calendar.css +5 -0
- package/ui/styles/components/card.css +3 -0
- package/ui/styles/components/checkbox.css +3 -0
- package/ui/styles/components/code-block.css +4 -0
- package/ui/styles/components/collapsible.css +3 -0
- package/ui/styles/components/combobox.css +5 -0
- package/ui/styles/components/command.css +5 -0
- package/ui/styles/components/context-menu.css +3 -0
- package/ui/styles/components/date-picker.css +7 -0
- package/ui/styles/components/dialog.css +4 -0
- package/ui/styles/components/drawer.css +3 -0
- package/ui/styles/components/dropdown-menu.css +3 -0
- package/ui/styles/components/empty.css +3 -0
- package/ui/styles/components/field.css +5 -0
- package/ui/styles/components/hover-card.css +3 -0
- package/ui/styles/components/index.css +91 -0
- package/ui/styles/components/input-group.css +6 -0
- package/ui/styles/components/input-otp.css +3 -0
- package/ui/styles/components/input.css +3 -0
- package/ui/styles/components/item.css +4 -0
- package/ui/styles/components/kbd.css +3 -0
- package/ui/styles/components/label.css +3 -0
- package/ui/styles/components/lt-breadcrumb.css +3 -0
- package/ui/styles/components/lt-bug-attachments.css +5 -0
- package/ui/styles/components/lt-bug-journey-timeline.css +5 -0
- package/ui/styles/components/lt-bug-report-dialog.css +15 -0
- package/ui/styles/components/lt-bug-report.css +4 -0
- package/ui/styles/components/lt-color-mode-button.css +3 -0
- package/ui/styles/components/lt-confirm-dialog.css +4 -0
- package/ui/styles/components/lt-data-view.css +5 -0
- package/ui/styles/components/lt-date-picker.css +3 -0
- package/ui/styles/components/lt-date-time-picker.css +5 -0
- package/ui/styles/components/lt-enter-action.css +2 -0
- package/ui/styles/components/lt-footer.css +3 -0
- package/ui/styles/components/lt-form-field.css +4 -0
- package/ui/styles/components/lt-header.css +5 -0
- package/ui/styles/components/lt-imports.css +21 -0
- package/ui/styles/components/lt-navigation-menu.css +3 -0
- package/ui/styles/components/lt-notice.css +3 -0
- package/ui/styles/components/lt-overlay-defaults.css +3 -0
- package/ui/styles/components/lt-page-card.css +3 -0
- package/ui/styles/components/lt-page-title.css +2 -0
- package/ui/styles/components/lt-password-input.css +4 -0
- package/ui/styles/components/lt-readonly-field.css +2 -0
- package/ui/styles/components/lt-select.css +4 -0
- package/ui/styles/components/lt-text-field.css +5 -0
- package/ui/styles/components/lt-toolbar-item.css +2 -0
- package/ui/styles/components/lt-toolbar.css +3 -0
- package/ui/styles/components/lt-tus-upload-component.css +5 -0
- package/ui/styles/components/marker.css +3 -0
- package/ui/styles/components/menubar.css +3 -0
- package/ui/styles/components/message-scroller.css +4 -0
- package/ui/styles/components/message.css +3 -0
- package/ui/styles/components/native-select.css +3 -0
- package/ui/styles/components/navigation-menu.css +3 -0
- package/ui/styles/components/pagination.css +4 -0
- package/ui/styles/components/popover.css +3 -0
- package/ui/styles/components/progress.css +3 -0
- package/ui/styles/components/questionnaire.css +4 -0
- package/ui/styles/components/radio-group.css +3 -0
- package/ui/styles/components/resizable.css +3 -0
- package/ui/styles/components/select.css +3 -0
- package/ui/styles/components/separator.css +3 -0
- package/ui/styles/components/sheet.css +4 -0
- package/ui/styles/components/sidebar.css +9 -0
- package/ui/styles/components/skeleton.css +3 -0
- package/ui/styles/components/slider.css +3 -0
- package/ui/styles/components/sonner.css +4 -0
- package/ui/styles/components/spinner.css +3 -0
- package/ui/styles/components/switch.css +3 -0
- package/ui/styles/components/table.css +3 -0
- package/ui/styles/components/tabs.css +4 -0
- package/ui/styles/components/textarea.css +3 -0
- package/ui/styles/components/toggle-group.css +4 -0
- package/ui/styles/components/toggle.css +3 -0
- package/ui/styles/components/tooltip.css +3 -0
- package/ui/styles/components/trace.css +3 -0
- package/ui/styles/components/typography.css +3 -0
- package/ui/styles/components/utils.css +2 -0
- package/ui/styles/core.css +137 -0
- package/ui/styles/palette.css +94 -0
- package/ui/styles/theme.css +14 -0
- package/ui/styles/transitions.css +131 -0
- package/base-cms/index.d.ts +0 -5
- package/base-cms/interfaces/base-cms-module-config.interface.d.ts +0 -16
- package/base-cms/pages/base-cms/base-cms.component.d.ts +0 -92
- package/base-cms/public-api.d.ts +0 -5
- package/base-components/components/breadcrumb/breadcrumb.component.d.ts +0 -10
- package/base-components/components/change-password/change-password.component.d.ts +0 -24
- package/base-components/components/checkbox/checkbox.component.d.ts +0 -12
- package/base-components/components/delete-account/delete-account.component.d.ts +0 -15
- package/base-components/components/fab-button/fab-button.component.d.ts +0 -16
- package/base-components/components/input/input.component.d.ts +0 -27
- package/base-components/components/loading-bar/loading-bar.component.d.ts +0 -17
- package/base-components/components/model-form/model-form-base.component.d.ts +0 -64
- package/base-components/components/model-form/model-form.component.d.ts +0 -139
- package/base-components/components/model-form-sub/model-form-sub.component.d.ts +0 -56
- package/base-components/components/model-table/model-table.component.d.ts +0 -115
- package/base-components/components/refence-input/refence-input.component.d.ts +0 -84
- package/base-components/components/select/select.component.d.ts +0 -25
- package/base-components/components/skeleton-loader/skeleton-loader.component.d.ts +0 -10
- package/base-components/components/tags/tags.component.d.ts +0 -60
- package/base-components/components/textarea/textarea.component.d.ts +0 -21
- package/base-components/components/toast/toast.component.d.ts +0 -19
- package/base-components/components/upload-image/upload-image.component.d.ts +0 -111
- package/base-components/directives/back-button.directive.d.ts +0 -9
- package/base-components/directives/context-menu.directive.d.ts +0 -22
- package/base-components/directives/sort.directive.d.ts +0 -15
- package/base-components/directives/stop-propagation.directive.d.ts +0 -10
- package/base-components/index.d.ts +0 -5
- package/base-components/pipes/ellipses.pipe.d.ts +0 -10
- package/base-components/public-api.d.ts +0 -26
- package/base-prototype/index.d.ts +0 -5
- package/base-prototype/pages/email-verification/email-verification.component.d.ts +0 -18
- package/base-prototype/pages/forgot-password/forgot-password.component.d.ts +0 -26
- package/base-prototype/pages/login/login.component.d.ts +0 -33
- package/base-prototype/pages/profile/profile.component.d.ts +0 -24
- package/base-prototype/pages/register/register.component.d.ts +0 -31
- package/base-prototype/pages/set-password/set-password.component.d.ts +0 -29
- package/base-prototype/public-api.d.ts +0 -9
- package/esm2022/base-cms/interfaces/base-cms-module-config.interface.mjs +0 -3
- package/esm2022/base-cms/lenne.tech-ng-base-base-cms.mjs +0 -5
- package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +0 -238
- package/esm2022/base-cms/public-api.mjs +0 -8
- package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +0 -23
- package/esm2022/base-components/components/change-password/change-password.component.mjs +0 -97
- package/esm2022/base-components/components/checkbox/checkbox.component.mjs +0 -38
- package/esm2022/base-components/components/delete-account/delete-account.component.mjs +0 -59
- package/esm2022/base-components/components/fab-button/fab-button.component.mjs +0 -24
- package/esm2022/base-components/components/input/input.component.mjs +0 -75
- package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +0 -37
- package/esm2022/base-components/components/model-form/model-form-base.component.mjs +0 -145
- package/esm2022/base-components/components/model-form/model-form.component.mjs +0 -591
- package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +0 -117
- package/esm2022/base-components/components/model-table/model-table.component.mjs +0 -478
- package/esm2022/base-components/components/refence-input/refence-input.component.mjs +0 -278
- package/esm2022/base-components/components/select/select.component.mjs +0 -62
- package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +0 -33
- package/esm2022/base-components/components/tags/tags.component.mjs +0 -227
- package/esm2022/base-components/components/textarea/textarea.component.mjs +0 -79
- package/esm2022/base-components/components/toast/toast.component.mjs +0 -69
- package/esm2022/base-components/components/upload-image/upload-image.component.mjs +0 -346
- package/esm2022/base-components/directives/back-button.directive.mjs +0 -25
- package/esm2022/base-components/directives/context-menu.directive.mjs +0 -112
- package/esm2022/base-components/directives/sort.directive.mjs +0 -61
- package/esm2022/base-components/directives/stop-propagation.directive.mjs +0 -24
- package/esm2022/base-components/lenne.tech-ng-base-base-components.mjs +0 -5
- package/esm2022/base-components/pipes/ellipses.pipe.mjs +0 -23
- package/esm2022/base-components/public-api.mjs +0 -30
- package/esm2022/base-prototype/lenne.tech-ng-base-base-prototype.mjs +0 -5
- package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +0 -60
- package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +0 -78
- package/esm2022/base-prototype/pages/login/login.component.mjs +0 -114
- package/esm2022/base-prototype/pages/profile/profile.component.mjs +0 -87
- package/esm2022/base-prototype/pages/register/register.component.mjs +0 -100
- package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +0 -91
- package/esm2022/base-prototype/public-api.mjs +0 -11
- package/esm2022/lenne.tech-ng-base.mjs +0 -5
- package/esm2022/public-api.mjs +0 -25
- package/esm2022/shared/classes/auth.class.mjs +0 -14
- package/esm2022/shared/classes/basic-user.class.mjs +0 -49
- package/esm2022/shared/classes/graphql-enum.class.mjs +0 -10
- package/esm2022/shared/classes/graphql-meta.class.mjs +0 -345
- package/esm2022/shared/classes/graphql-type.class.mjs +0 -14
- package/esm2022/shared/classes/helper.class.mjs +0 -307
- package/esm2022/shared/classes/sort.class.mjs +0 -38
- package/esm2022/shared/classes/standard.class.mjs +0 -40
- package/esm2022/shared/decorators/debounce.decorator.mjs +0 -12
- package/esm2022/shared/enums/comparison-operator.enum.mjs +0 -16
- package/esm2022/shared/enums/graphql-request-type.enum.mjs +0 -10
- package/esm2022/shared/enums/logical-operator.enum.mjs +0 -10
- package/esm2022/shared/enums/skeleton-type.enum.mjs +0 -7
- package/esm2022/shared/enums/sort-order.enum.mjs +0 -6
- package/esm2022/shared/enums/toast-type.enum.mjs +0 -8
- package/esm2022/shared/functions/ws-client.function.mjs +0 -39
- package/esm2022/shared/interfaces/base-module-config.interface.mjs +0 -3
- package/esm2022/shared/interfaces/breadcrumb.interface.mjs +0 -2
- package/esm2022/shared/interfaces/can-component-deactivate.interface.mjs +0 -2
- package/esm2022/shared/interfaces/cms-enum-values.interface.mjs +0 -2
- package/esm2022/shared/interfaces/cms-field-config.interface.mjs +0 -2
- package/esm2022/shared/interfaces/cms-model-config.interface.mjs +0 -2
- package/esm2022/shared/interfaces/cms-table-field.interface.mjs +0 -2
- package/esm2022/shared/interfaces/combined-filter-input.interface.mjs +0 -2
- package/esm2022/shared/interfaces/compress-options.interface.mjs +0 -2
- package/esm2022/shared/interfaces/cropping-options.interface.mjs +0 -2
- package/esm2022/shared/interfaces/field-object.interface.mjs +0 -2
- package/esm2022/shared/interfaces/field.interface.mjs +0 -2
- package/esm2022/shared/interfaces/filter-input.interface.mjs +0 -2
- package/esm2022/shared/interfaces/find-args.interface.mjs +0 -2
- package/esm2022/shared/interfaces/graphql-crud-type.interface.mjs +0 -2
- package/esm2022/shared/interfaces/graphql-fields-object.interface.mjs +0 -2
- package/esm2022/shared/interfaces/graphql-options.interface.mjs +0 -2
- package/esm2022/shared/interfaces/graphql-plus-options.interfacen.mjs +0 -2
- package/esm2022/shared/interfaces/graphql-type-collection.interface.mjs +0 -2
- package/esm2022/shared/interfaces/login-config.interface.mjs +0 -2
- package/esm2022/shared/interfaces/register-config.interface.mjs +0 -2
- package/esm2022/shared/interfaces/single-filter-input.interface.mjs +0 -2
- package/esm2022/shared/interfaces/sort-input.interface.mjs +0 -2
- package/esm2022/shared/interfaces/time-components.interface.mjs +0 -2
- package/esm2022/shared/interfaces/toast.interface.mjs +0 -2
- package/esm2022/shared/lenne.tech-ng-base-shared.mjs +0 -5
- package/esm2022/shared/public-api.mjs +0 -74
- package/esm2022/shared/services/auth.service.mjs +0 -152
- package/esm2022/shared/services/breadcrumb.service.mjs +0 -69
- package/esm2022/shared/services/cms.service.mjs +0 -82
- package/esm2022/shared/services/file.service.mjs +0 -86
- package/esm2022/shared/services/forms.service.mjs +0 -61
- package/esm2022/shared/services/graphql-meta.service.mjs +0 -132
- package/esm2022/shared/services/graphql-plus.service.mjs +0 -93
- package/esm2022/shared/services/graphql.service.mjs +0 -510
- package/esm2022/shared/services/image.service.mjs +0 -102
- package/esm2022/shared/services/loader.service.mjs +0 -78
- package/esm2022/shared/services/navigation.service.mjs +0 -38
- package/esm2022/shared/services/scroll.service.mjs +0 -207
- package/esm2022/shared/services/storage.service.mjs +0 -149
- package/esm2022/shared/services/toast.service.mjs +0 -39
- package/esm2022/shared/services/user.service.mjs +0 -160
- package/esm2022/shared/services/ws.service.mjs +0 -17
- package/esm2022/shared/types/graphql-fields.type.mjs +0 -2
- package/esm2022/shared/types/storage.type.mjs +0 -2
- package/esm2022/shared/validators/email.validator.mjs +0 -7
- package/esm2022/shared/validators/match.validator.mjs +0 -22
- package/esm2022/shared/validators/secure-password.validator.mjs +0 -7
- package/esm2022/src/base.module.mjs +0 -64
- package/esm2022/src/decorators/auto-unsubscribe.decorator.mjs +0 -23
- package/esm2022/src/directives/lazy-load.directive.mjs +0 -48
- package/esm2022/src/directives/match-height.directive.mjs +0 -92
- package/esm2022/src/directives/resizable.directive.mjs +0 -92
- package/esm2022/src/factories/apollo-options.factory.mjs +0 -108
- package/esm2022/src/functions/extract-files.function.mjs +0 -87
- package/esm2022/src/guards/auth.guard.mjs +0 -91
- package/esm2022/src/guards/can-deactivate.guard.mjs +0 -16
- package/esm2022/src/guards/logout.guard.mjs +0 -34
- package/esm2022/src/pipes/date-ago.pipe.mjs +0 -64
- package/esm2022/src/pipes/safe-html.pipe.mjs +0 -22
- package/esm2022/src/services/fullscreen.service.mjs +0 -51
- package/esm2022/src/services/seo.service.mjs +0 -117
- package/esm2022/src/services/theme.service.mjs +0 -44
- package/fesm2022/lenne.tech-ng-base-base-cms.mjs +0 -251
- package/fesm2022/lenne.tech-ng-base-base-cms.mjs.map +0 -1
- package/fesm2022/lenne.tech-ng-base-base-components.mjs +0 -2917
- package/fesm2022/lenne.tech-ng-base-base-components.mjs.map +0 -1
- package/fesm2022/lenne.tech-ng-base-base-prototype.mjs +0 -505
- package/fesm2022/lenne.tech-ng-base-base-prototype.mjs.map +0 -1
- package/fesm2022/lenne.tech-ng-base-shared.mjs +0 -2863
- package/fesm2022/lenne.tech-ng-base-shared.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/public-api.d.ts +0 -17
- package/shared/classes/auth.class.d.ts +0 -10
- package/shared/classes/basic-user.class.d.ts +0 -27
- package/shared/classes/graphql-enum.class.d.ts +0 -7
- package/shared/classes/graphql-meta.class.d.ts +0 -66
- package/shared/classes/graphql-type.class.d.ts +0 -13
- package/shared/classes/helper.class.d.ts +0 -99
- package/shared/classes/sort.class.d.ts +0 -12
- package/shared/classes/standard.class.d.ts +0 -32
- package/shared/decorators/debounce.decorator.d.ts +0 -1
- package/shared/enums/comparison-operator.enum.d.ts +0 -14
- package/shared/enums/graphql-request-type.enum.d.ts +0 -8
- package/shared/enums/logical-operator.enum.d.ts +0 -8
- package/shared/enums/skeleton-type.enum.d.ts +0 -5
- package/shared/enums/sort-order.enum.d.ts +0 -4
- package/shared/enums/toast-type.enum.d.ts +0 -6
- package/shared/functions/ws-client.function.d.ts +0 -5
- package/shared/index.d.ts +0 -5
- package/shared/interfaces/base-module-config.interface.d.ts +0 -61
- package/shared/interfaces/breadcrumb.interface.d.ts +0 -4
- package/shared/interfaces/can-component-deactivate.interface.d.ts +0 -7
- package/shared/interfaces/cms-enum-values.interface.d.ts +0 -4
- package/shared/interfaces/cms-field-config.interface.d.ts +0 -45
- package/shared/interfaces/cms-model-config.interface.d.ts +0 -14
- package/shared/interfaces/cms-table-field.interface.d.ts +0 -10
- package/shared/interfaces/combined-filter-input.interface.d.ts +0 -9
- package/shared/interfaces/compress-options.interface.d.ts +0 -15
- package/shared/interfaces/cropping-options.interface.d.ts +0 -12
- package/shared/interfaces/field-object.interface.d.ts +0 -6
- package/shared/interfaces/field.interface.d.ts +0 -5
- package/shared/interfaces/filter-input.interface.d.ts +0 -9
- package/shared/interfaces/find-args.interface.d.ts +0 -11
- package/shared/interfaces/graphql-crud-type.interface.d.ts +0 -7
- package/shared/interfaces/graphql-fields-object.interface.d.ts +0 -6
- package/shared/interfaces/graphql-options.interface.d.ts +0 -11
- package/shared/interfaces/graphql-plus-options.interfacen.d.ts +0 -9
- package/shared/interfaces/graphql-type-collection.interface.d.ts +0 -7
- package/shared/interfaces/login-config.interface.d.ts +0 -6
- package/shared/interfaces/register-config.interface.d.ts +0 -4
- package/shared/interfaces/single-filter-input.interface.d.ts +0 -11
- package/shared/interfaces/sort-input.interface.d.ts +0 -5
- package/shared/interfaces/time-components.interface.d.ts +0 -6
- package/shared/interfaces/toast.interface.d.ts +0 -8
- package/shared/public-api.d.ts +0 -65
- package/shared/services/auth.service.d.ts +0 -44
- package/shared/services/breadcrumb.service.d.ts +0 -32
- package/shared/services/cms.service.d.ts +0 -27
- package/shared/services/file.service.d.ts +0 -22
- package/shared/services/forms.service.d.ts +0 -14
- package/shared/services/graphql-meta.service.d.ts +0 -45
- package/shared/services/graphql-plus.service.d.ts +0 -27
- package/shared/services/graphql.service.d.ts +0 -71
- package/shared/services/image.service.d.ts +0 -27
- package/shared/services/loader.service.d.ts +0 -32
- package/shared/services/navigation.service.d.ts +0 -15
- package/shared/services/scroll.service.d.ts +0 -85
- package/shared/services/storage.service.d.ts +0 -49
- package/shared/services/toast.service.d.ts +0 -15
- package/shared/services/user.service.d.ts +0 -77
- package/shared/services/ws.service.d.ts +0 -8
- package/shared/types/graphql-fields.type.d.ts +0 -5
- package/shared/types/storage.type.d.ts +0 -4
- package/shared/validators/email.validator.d.ts +0 -1
- package/shared/validators/match.validator.d.ts +0 -4
- package/shared/validators/secure-password.validator.d.ts +0 -1
- package/src/base.module.d.ts +0 -16
- package/src/decorators/auto-unsubscribe.decorator.d.ts +0 -5
- package/src/directives/lazy-load.directive.d.ts +0 -17
- package/src/directives/match-height.directive.d.ts +0 -20
- package/src/directives/resizable.directive.d.ts +0 -26
- package/src/factories/apollo-options.factory.d.ts +0 -16
- package/src/functions/extract-files.function.d.ts +0 -15
- package/src/guards/auth.guard.d.ts +0 -27
- package/src/guards/can-deactivate.guard.d.ts +0 -10
- package/src/guards/logout.guard.d.ts +0 -16
- package/src/pipes/date-ago.pipe.d.ts +0 -34
- package/src/pipes/safe-html.pipe.d.ts +0 -13
- package/src/services/fullscreen.service.d.ts +0 -18
- package/src/services/seo.service.d.ts +0 -61
- package/src/services/theme.service.d.ts +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lenne.tech-ng-base-ui.mjs","names":["i1","defaultConfig","i1","LtColorModeService","i1","i1","i1","i1","i1","i1","defaultConfig","i1","i1","i1","i1.HlmCard","i2.HlmCardContent","i3.HlmTableContainer","i3.HlmTable","i3.HlmTBody","i3.HlmTd","i3.HlmTh","i3.HlmTHead","i3.HlmTr","i4.HlmToggleGroup","i5.HlmToggleGroupItem","inputGroupAddonVariants","i1.HlmButton","i1","i2","i1.HlmInput","i1","i2","i1.HlmTextarea","getDefaultConfig","i1.HlmInputGroup","i2.HlmInputGroupAddon","i3.HlmInputGroupButton","i4.HlmInputGroupInput","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i2.HlmSelect","i3.HlmSelectContent","i4.HlmSelectGroup","i5.HlmSelectItem","i6.HlmSelectPortal","i7.HlmSelectTrigger","i8.HlmSelectValue","i9.HlmButton","i1","i2.HlmSelect","i3.HlmSelectContent","i4.HlmSelectGroup","i5.HlmSelectItem","i6.HlmSelectPortal","i7.HlmSelectTrigger","i8.HlmSelectValue","i9.HlmButton","i1","i2.HlmSelect","i3.HlmSelectContent","i4.HlmSelectGroup","i5.HlmSelectItem","i6.HlmSelectPortal","i7.HlmSelectTrigger","i8.HlmSelectValue","i9.HlmButton","i1","i2.HlmButton","i1","i1","i1","getDefaultConfig","i1","i2.HlmPopover","i3.HlmPopoverContent","i4.HlmPopoverPortal","i1.HlmInputGroup","i2.HlmInputGroupAddon","i3.HlmInputGroupButton","i4.HlmInputGroupInput","i1","i2.HlmPopover","i3.HlmPopoverContent","i4.HlmPopoverPortal","i1.HlmButton","getDefaultConfig","i1.HlmInputGroup","i2.HlmInputGroupAddon","i3.HlmInputGroupButton","i4.HlmInputGroupInput","i1","i2.HlmPopover","i3.HlmPopoverContent","i4.HlmPopoverPortal","i1.HlmInputGroup","i2.HlmInputGroupAddon","i3.HlmInputGroupButton","i4.HlmInputGroupInput","i1","i2.HlmPopover","i3.HlmPopoverContent","i4.HlmPopoverPortal","i5.HlmMonthYearCalendar","i1","i1","i1.HlmLabel","i1","i1.HlmField","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1.HlmSheet","i2.HlmSheetContent","i3.HlmSheetHeader","i4.HlmSheetPortal","i5.HlmSheetTitle","i1.HlmCard","i2.HlmCardContent","i3.HlmCardDescription","i4.HlmCardFooter","i5.HlmCardHeader","i6.HlmCardTitle","i1","i1","i1","i1","i1","i1","i1","i1","i1","i2.HlmInputGroup","i3.HlmInputGroupAddon","i4.HlmInputGroupButton","i5.HlmInputGroupInput","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1.HlmCombobox","i2.HlmComboboxContent","i3.HlmComboboxEmpty","i4.HlmComboboxInput","i5.HlmComboboxItem","i6.HlmComboboxList","i7.HlmComboboxPortal","i8.HlmSelect","i9.HlmSelectContent","i10.HlmSelectItem","i11.HlmSelectPortal","i12.HlmSelectTrigger","i13.HlmSelectValue","i1","i1","i1","i1","i1","i1","i1.HlmButton","i1","i2.HlmButton","i1","i1","i1","i1","i1.HlmButton","i1","i1","i1","i1","i1","i2.HlmInputGroup","i3.HlmInputGroupAddon","i4.HlmInputGroupButton","i5.HlmInputGroupInput","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1.HlmButton","i1","i1","i1","i1","i1.HlmDialog","i2.HlmDialogContent","i3.HlmDialogDescription","i4.HlmDialogHeader","i5.HlmDialogPortal","i6.HlmDialogTitle","i1","i1","i1.HlmInputGroup","i2.HlmInputGroupAddon","i1","i1","i1","defaultConfig","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1.HlmDropdownMenuFocusOnHover","i1","i1","i2.HlmDropdownMenuFocusOnHover","i1.HlmDropdownMenuFocusOnHover","i1","defaultConfig","i1","i1","i1","i1","i1","i1","defaultConfig","i1","i1","defaultConfig","i1","i1","i1.HlmButton","i2","i1","i1","i1","i1","i1","i1","defaultConfig","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i1","i2","i1","i1","i1","i1.HlmSheet","i2.HlmSheetContent","i3.HlmSheetDescription","i4.HlmSheetHeader","i5.HlmSheetPortal","i6.HlmSheetTitle","i1.HlmInput","i1","i1","i1.HlmSkeleton","i1.HlmSeparator","i1.HlmButton","i1","i1","i2.HlmButton","i1","i1","i1","i1"],"sources":["../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb.ts","../../../projects/ng-base/ui/src/lib/helm/utils/lib/hlm.ts","../../../projects/ng-base/ui/src/lib/helm/utils/lib/provide-spartan-hlm.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb-ellipsis.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb-item.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb-link.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb-list.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb-page.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/lib/hlm-breadcrumb-separator.ts","../../../projects/ng-base/ui/src/lib/helm/breadcrumb/index.ts","../tmp-esm2022/ui/lib/i18n/de.json","../tmp-esm2022/ui/lib/i18n/en.json","../../../projects/ng-base/ui/src/lib/lt/i18n.ts","../../../projects/ng-base/ui/src/lib/lt/breadcrumb.ts","../../../projects/ng-base/ui/src/lib/lt/breadcrumb.html","../../../projects/ng-base/ui/src/lib/helm/button/lib/hlm-button.token.ts","../../../projects/ng-base/ui/src/lib/helm/button/lib/hlm-button.ts","../../../projects/ng-base/ui/src/lib/helm/button/index.ts","../../../projects/ng-base/ui/src/lib/lt/color-mode-button.ts","../../../projects/ng-base/ui/src/lib/lt/color-mode-button.html","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-overlay.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-close.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-content.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-description.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-footer.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-header.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-portal.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-title.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/lib/hlm-dialog.service.ts","../../../projects/ng-base/ui/src/lib/helm/dialog/index.ts","../../../projects/ng-base/ui/src/lib/lt/overlay-ref.ts","../../../projects/ng-base/ui/src/lib/lt/confirm-dialog.ts","../../../projects/ng-base/ui/src/lib/lt/confirm-dialog.html","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card.token.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card-action.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card-content.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card-description.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card-footer.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card-header.ts","../../../projects/ng-base/ui/src/lib/helm/card/lib/hlm-card-title.ts","../../../projects/ng-base/ui/src/lib/helm/card/index.ts","../../../projects/ng-base/ui/src/lib/helm/table/lib/hlm-table.ts","../../../projects/ng-base/ui/src/lib/helm/table/index.ts","../../../projects/ng-base/ui/src/lib/helm/toggle-group/lib/hlm-toggle-group.token.ts","../../../projects/ng-base/ui/src/lib/helm/toggle-group/lib/hlm-toggle-group.ts","../../../projects/ng-base/ui/src/lib/helm/toggle/lib/hlm-toggle.ts","../../../projects/ng-base/ui/src/lib/helm/toggle/index.ts","../../../projects/ng-base/ui/src/lib/helm/toggle-group/lib/hlm-toggle-group-item.ts","../../../projects/ng-base/ui/src/lib/helm/toggle-group/index.ts","../../../projects/ng-base/ui/src/lib/lt/data-view.ts","../../../projects/ng-base/ui/src/lib/lt/data-view.html","../../../projects/ng-base/ui/src/lib/helm/input-group/lib/hlm-input-group.ts","../../../projects/ng-base/ui/src/lib/helm/input-group/lib/hlm-input-group-addon.ts","../../../projects/ng-base/ui/src/lib/helm/input-group/lib/hlm-input-group-button.ts","../../../projects/ng-base/ui/src/lib/helm/input/lib/hlm-input.ts","../../../projects/ng-base/ui/src/lib/helm/input/index.ts","../../../projects/ng-base/ui/src/lib/helm/input-group/lib/hlm-input-group-input.ts","../../../projects/ng-base/ui/src/lib/helm/input-group/lib/hlm-input-group-text.ts","../../../projects/ng-base/ui/src/lib/helm/textarea/lib/hlm-textarea.ts","../../../projects/ng-base/ui/src/lib/helm/textarea/index.ts","../../../projects/ng-base/ui/src/lib/helm/input-group/lib/hlm-input-group-textarea.ts","../../../projects/ng-base/ui/src/lib/helm/input-group/index.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker-multi.token.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-multi-input.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-scroll-down.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-scroll-up.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-content.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-group.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-item.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-label.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-multiple.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-placeholder.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-portal.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-separator.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-value.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-value-template.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-values.ts","../../../projects/ng-base/ui/src/lib/helm/select/lib/hlm-select-values-content.ts","../../../projects/ng-base/ui/src/lib/helm/select/index.ts","../../../projects/ng-base/ui/src/lib/helm/calendar/lib/hlm-calendar.ts","../../../projects/ng-base/ui/src/lib/helm/calendar/lib/hlm-calendar-multi.ts","../../../projects/ng-base/ui/src/lib/helm/calendar/lib/hlm-calendar-range.ts","../../../projects/ng-base/ui/src/lib/helm/calendar/lib/hlm-month-year-calendar.ts","../../../projects/ng-base/ui/src/lib/helm/calendar/index.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover-content.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover-description.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover-header.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover-portal.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover-title.ts","../../../projects/ng-base/ui/src/lib/helm/popover/lib/hlm-popover-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/popover/index.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker.token.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker-anchor.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker-input.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker-multi.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-picker-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-range-picker.token.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-range-input.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-date-range-picker.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-month-year-picker.token.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-month-year-input.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/lib/hlm-month-year-picker.ts","../../../projects/ng-base/ui/src/lib/helm/date-picker/index.ts","../../../projects/ng-base/ui/src/lib/lt/control.ts","../../../projects/ng-base/ui/src/lib/lt/date-utils.ts","../../../projects/ng-base/ui/src/lib/lt/date-picker.ts","../../../projects/ng-base/ui/src/lib/lt/date-picker.html","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-content.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-description.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-error.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-group.ts","../../../projects/ng-base/ui/src/lib/helm/label/lib/hlm-label.ts","../../../projects/ng-base/ui/src/lib/helm/label/index.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-label.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-legend.ts","../../../projects/ng-base/ui/src/lib/helm/separator/lib/hlm-separator.ts","../../../projects/ng-base/ui/src/lib/helm/separator/index.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-separator.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-set.ts","../../../projects/ng-base/ui/src/lib/helm/field/lib/hlm-field-title.ts","../../../projects/ng-base/ui/src/lib/helm/field/index.ts","../../../projects/ng-base/ui/src/lib/lt/form-field.ts","../../../projects/ng-base/ui/src/lib/lt/form-field.html","../../../projects/ng-base/ui/src/lib/lt/date-time-picker.ts","../../../projects/ng-base/ui/src/lib/lt/date-time-picker.html","../../../projects/ng-base/ui/src/lib/lt/enter-action.ts","../../../projects/ng-base/ui/src/lib/lt/footer.ts","../../../projects/ng-base/ui/src/lib/lt/footer.html","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-overlay.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-close.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-content.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-description.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-footer.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-header.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-portal.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-title.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/lib/hlm-sheet-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/sheet/index.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu-content.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu-item.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu-link.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu-list.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu-portal.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/lib/hlm-navigation-menu-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/navigation-menu/index.ts","../../../projects/ng-base/ui/src/lib/lt/navigation-menu.ts","../../../projects/ng-base/ui/src/lib/lt/navigation-menu.html","../../../projects/ng-base/ui/src/lib/lt/header.ts","../../../projects/ng-base/ui/src/lib/lt/header.html","../../../projects/ng-base/ui/src/lib/helm/alert/lib/hlm-alert.ts","../../../projects/ng-base/ui/src/lib/helm/alert/lib/hlm-alert-action.ts","../../../projects/ng-base/ui/src/lib/helm/alert/lib/hlm-alert-description.ts","../../../projects/ng-base/ui/src/lib/helm/alert/lib/hlm-alert-title.ts","../../../projects/ng-base/ui/src/lib/helm/alert/index.ts","../../../projects/ng-base/ui/src/lib/lt/notice.ts","../../../projects/ng-base/ui/src/lib/lt/notice.html","../../../projects/ng-base/ui/src/lib/lt/page-card.ts","../../../projects/ng-base/ui/src/lib/lt/page-card.html","../../../projects/ng-base/ui/src/lib/lt/page-title.ts","../../../projects/ng-base/ui/src/lib/lt/page-title.html","../../../projects/ng-base/ui/src/lib/lt/password-input.ts","../../../projects/ng-base/ui/src/lib/lt/password-input.html","../../../projects/ng-base/ui/src/lib/lt/readonly-field.ts","../../../projects/ng-base/ui/src/lib/lt/readonly-field.html","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-chip-remove.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-chip.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-chip-input.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-chips.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-content.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-empty.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-group.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-input.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-item.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-label.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-list.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-multiple.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-placeholder.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-portal.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-separator.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-status.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-value.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-value-template.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/lib/hlm-combobox-values.ts","../../../projects/ng-base/ui/src/lib/helm/combobox/index.ts","../../../projects/ng-base/ui/src/lib/lt/select.ts","../../../projects/ng-base/ui/src/lib/lt/select.html","../../../projects/ng-base/ui/src/lib/lt/text-field.ts","../../../projects/ng-base/ui/src/lib/lt/text-field.html","../../../projects/ng-base/ui/src/lib/lt/toolbar-item.ts","../../../projects/ng-base/ui/src/lib/lt/toolbar.ts","../../../projects/ng-base/ui/src/lib/lt/imports.ts","../../../projects/ng-base/ui/src/lib/lt/overlay.ts","../../../projects/ng-base/ui/src/lib/lt/overlay-defaults.ts","../../../projects/ng-base/ui/src/lib/lt/transitions.ts","../../../projects/ng-base/ui/src/lib/helm/accordion/lib/hlm-accordion.ts","../../../projects/ng-base/ui/src/lib/helm/accordion/lib/hlm-accordion-content.ts","../../../projects/ng-base/ui/src/lib/helm/accordion/lib/hlm-accordion-content-lazy.ts","../../../projects/ng-base/ui/src/lib/helm/accordion/lib/hlm-accordion-item.ts","../../../projects/ng-base/ui/src/lib/helm/accordion/lib/hlm-accordion-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/accordion/index.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-overlay.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-action.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-cancel.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-content.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-description.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-footer.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-header.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-media.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-portal.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-title.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/lib/hlm-alert-dialog-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/alert-dialog/index.ts","../../../projects/ng-base/ui/src/lib/helm/aspect-ratio/lib/hlm-aspect-ratio.ts","../../../projects/ng-base/ui/src/lib/helm/aspect-ratio/index.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-action.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-actions.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-content.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-description.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-group.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-media.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-title.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/lib/hlm-attachment-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/attachment/index.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-content.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-empty.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-group.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-input.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-item.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-label.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-list.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-portal.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-search.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-separator.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/lib/hlm-autocomplete-status.ts","../../../projects/ng-base/ui/src/lib/helm/autocomplete/index.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/lib/hlm-avatar.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/lib/hlm-avatar-badge.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/lib/hlm-avatar-fallback.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/lib/hlm-avatar-group.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/lib/hlm-avatar-group-count.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/lib/hlm-avatar-image.ts","../../../projects/ng-base/ui/src/lib/helm/avatar/index.ts","../../../projects/ng-base/ui/src/lib/helm/badge/lib/hlm-badge.ts","../../../projects/ng-base/ui/src/lib/helm/badge/index.ts","../../../projects/ng-base/ui/src/lib/helm/bubble/lib/hlm-bubble.ts","../../../projects/ng-base/ui/src/lib/helm/bubble/lib/hlm-bubble-content.ts","../../../projects/ng-base/ui/src/lib/helm/bubble/lib/hlm-bubble-group.ts","../../../projects/ng-base/ui/src/lib/helm/bubble/lib/hlm-bubble-reactions.ts","../../../projects/ng-base/ui/src/lib/helm/bubble/index.ts","../../../projects/ng-base/ui/src/lib/helm/button-group/lib/hlm-button-group.ts","../../../projects/ng-base/ui/src/lib/helm/button-group/lib/hlm-button-group-separator.ts","../../../projects/ng-base/ui/src/lib/helm/button-group/lib/hlm-button-group-text.ts","../../../projects/ng-base/ui/src/lib/helm/button-group/index.ts","../../../projects/ng-base/ui/src/lib/helm/checkbox/lib/hlm-checkbox.ts","../../../projects/ng-base/ui/src/lib/helm/checkbox/index.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-actions.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-line.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-content.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-copy-button.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-footer.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-header.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/lib/hlm-code-block-title.ts","../../../projects/ng-base/ui/src/lib/helm/code-block/index.ts","../../../projects/ng-base/ui/src/lib/helm/collapsible/lib/hlm-collapsible.ts","../../../projects/ng-base/ui/src/lib/helm/collapsible/lib/hlm-collapsible-content.ts","../../../projects/ng-base/ui/src/lib/helm/collapsible/lib/hlm-collapsible-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/collapsible/index.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-dialog.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-empty.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-empty-state.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-group.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-group-label.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-input.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-item.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-list.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-separator.ts","../../../projects/ng-base/ui/src/lib/helm/command/lib/hlm-command-shortcut.ts","../../../projects/ng-base/ui/src/lib/helm/command/index.ts","../../../projects/ng-base/ui/src/lib/helm/context-menu/lib/hlm-context-menu-token.ts","../../../projects/ng-base/ui/src/lib/helm/context-menu/lib/hlm-context-menu-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/context-menu/index.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-overlay.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-close.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-content.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-description.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-footer.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-header.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-portal.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-title.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/lib/hlm-drawer-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/drawer/index.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-focus-on-hover.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-checkbox.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-checkbox-indicator.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-group.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-item.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-item-sub-indicator.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-label.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-radio.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-radio-indicator.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-separator.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-shortcut.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-sub.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-token.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-sub-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/lib/hlm-dropdown-menu-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/dropdown-menu/index.ts","../../../projects/ng-base/ui/src/lib/helm/empty/lib/hlm-empty.ts","../../../projects/ng-base/ui/src/lib/helm/empty/lib/hlm-empty-content.ts","../../../projects/ng-base/ui/src/lib/helm/empty/lib/hlm-empty-description.ts","../../../projects/ng-base/ui/src/lib/helm/empty/lib/hlm-empty-header.ts","../../../projects/ng-base/ui/src/lib/helm/empty/lib/hlm-empty-media.ts","../../../projects/ng-base/ui/src/lib/helm/empty/lib/hlm-empty-title.ts","../../../projects/ng-base/ui/src/lib/helm/empty/index.ts","../../../projects/ng-base/ui/src/lib/helm/hover-card/lib/hlm-hover-card.ts","../../../projects/ng-base/ui/src/lib/helm/hover-card/lib/hlm-hover-card-content.ts","../../../projects/ng-base/ui/src/lib/helm/hover-card/lib/hlm-hover-card-portal.ts","../../../projects/ng-base/ui/src/lib/helm/hover-card/lib/hlm-hover-card-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/hover-card/index.ts","../../../projects/ng-base/ui/src/lib/helm/input-otp/lib/hlm-input-otp.ts","../../../projects/ng-base/ui/src/lib/helm/input-otp/lib/hlm-input-otp-fake-caret.ts","../../../projects/ng-base/ui/src/lib/helm/input-otp/lib/hlm-input-otp-group.ts","../../../projects/ng-base/ui/src/lib/helm/input-otp/lib/hlm-input-otp-separator.ts","../../../projects/ng-base/ui/src/lib/helm/input-otp/lib/hlm-input-otp-slot.ts","../../../projects/ng-base/ui/src/lib/helm/input-otp/index.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-token.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-actions.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-content.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-description.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-footer.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-group.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-header.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-media.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-separator.ts","../../../projects/ng-base/ui/src/lib/helm/item/lib/hlm-item-title.ts","../../../projects/ng-base/ui/src/lib/helm/item/index.ts","../../../projects/ng-base/ui/src/lib/helm/kbd/lib/hlm-kbd.ts","../../../projects/ng-base/ui/src/lib/helm/kbd/lib/hlm-kbd-group.ts","../../../projects/ng-base/ui/src/lib/helm/kbd/index.ts","../../../projects/ng-base/ui/src/lib/helm/marker/lib/hlm-marker.ts","../../../projects/ng-base/ui/src/lib/helm/marker/lib/hlm-marker-content.ts","../../../projects/ng-base/ui/src/lib/helm/marker/lib/hlm-marker-icon.ts","../../../projects/ng-base/ui/src/lib/helm/marker/index.ts","../../../projects/ng-base/ui/src/lib/helm/menubar/lib/hlm-menubar.ts","../../../projects/ng-base/ui/src/lib/helm/menubar/lib/hlm-menubar-token.ts","../../../projects/ng-base/ui/src/lib/helm/menubar/lib/hlm-menubar-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/menubar/index.ts","../../../projects/ng-base/ui/src/lib/helm/message/lib/hlm-message.ts","../../../projects/ng-base/ui/src/lib/helm/message/lib/hlm-message-avatar.ts","../../../projects/ng-base/ui/src/lib/helm/message/lib/hlm-message-content.ts","../../../projects/ng-base/ui/src/lib/helm/message/lib/hlm-message-footer.ts","../../../projects/ng-base/ui/src/lib/helm/message/lib/hlm-message-group.ts","../../../projects/ng-base/ui/src/lib/helm/message/lib/hlm-message-header.ts","../../../projects/ng-base/ui/src/lib/helm/message/index.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/lib/hlm-message-scroller.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/lib/hlm-message-scroller-button.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/lib/hlm-message-scroller-content.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/lib/hlm-message-scroller-item.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/lib/hlm-message-scroller-provider.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/lib/hlm-message-scroller-viewport.ts","../../../projects/ng-base/ui/src/lib/helm/message-scroller/index.ts","../../../projects/ng-base/ui/src/lib/helm/native-select/lib/hlm-native-select.ts","../../../projects/ng-base/ui/src/lib/helm/native-select/lib/hlm-native-select-opt-group.ts","../../../projects/ng-base/ui/src/lib/helm/native-select/lib/hlm-native-select-option.ts","../../../projects/ng-base/ui/src/lib/helm/native-select/index.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination-content.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination-ellipsis.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination-item.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination-link.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination.token.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination-next.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/lib/hlm-pagination-previous.ts","../../../projects/ng-base/ui/src/lib/helm/pagination/index.ts","../../../projects/ng-base/ui/src/lib/helm/progress/lib/hlm-progress.ts","../../../projects/ng-base/ui/src/lib/helm/progress/lib/hlm-progress-indicator.ts","../../../projects/ng-base/ui/src/lib/helm/progress/index.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-actions.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-choice.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-choice-description.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-choices.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-description.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-error.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-input.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-item.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-next.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-previous.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-progress.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-skip.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-submit.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/lib/hlm-questionnaire-title.ts","../../../projects/ng-base/ui/src/lib/helm/questionnaire/index.ts","../../../projects/ng-base/ui/src/lib/helm/radio-group/lib/hlm-radio.ts","../../../projects/ng-base/ui/src/lib/helm/radio-group/lib/hlm-radio-group.ts","../../../projects/ng-base/ui/src/lib/helm/radio-group/lib/hlm-radio-indicator.ts","../../../projects/ng-base/ui/src/lib/helm/radio-group/index.ts","../../../projects/ng-base/ui/src/lib/helm/resizable/lib/hlm-resizable-group.ts","../../../projects/ng-base/ui/src/lib/helm/resizable/lib/hlm-resizable-handle.ts","../../../projects/ng-base/ui/src/lib/helm/resizable/lib/hlm-resizable-panel.ts","../../../projects/ng-base/ui/src/lib/helm/resizable/index.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar.token.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar.service.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-content.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-footer.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-group.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-group-action.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-group-content.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-group-label.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-header.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-input.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-inset.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-action.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-badge.ts","../../../projects/ng-base/ui/src/lib/helm/tooltip/lib/hlm-tooltip.ts","../../../projects/ng-base/ui/src/lib/helm/tooltip/index.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-button.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-item.ts","../../../projects/ng-base/ui/src/lib/helm/skeleton/lib/hlm-skeleton.ts","../../../projects/ng-base/ui/src/lib/helm/skeleton/index.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-skeleton.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-sub.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-sub-button.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-menu-sub-item.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-rail.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-separator.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/lib/hlm-sidebar-wrapper.ts","../../../projects/ng-base/ui/src/lib/helm/sidebar/index.ts","../../../projects/ng-base/ui/src/lib/helm/slider/lib/hlm-slider.ts","../../../projects/ng-base/ui/src/lib/helm/slider/index.ts","../../../projects/ng-base/ui/src/lib/helm/sonner/lib/hlm-toaster.ts","../../../projects/ng-base/ui/src/lib/helm/sonner/index.ts","../../../projects/ng-base/ui/src/lib/helm/spinner/lib/hlm-spinner.ts","../../../projects/ng-base/ui/src/lib/helm/spinner/index.ts","../../../projects/ng-base/ui/src/lib/helm/switch/lib/hlm-switch-thumb.ts","../../../projects/ng-base/ui/src/lib/helm/switch/lib/hlm-switch.ts","../../../projects/ng-base/ui/src/lib/helm/switch/index.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/lib/hlm-tabs.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/lib/hlm-tabs-content.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/lib/hlm-tabs-content-lazy.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/lib/hlm-tabs-list.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/lib/hlm-tabs-paginated-list.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/lib/hlm-tabs-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/tabs/index.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-collapsible.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-collapsible-content.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-collapsible-trigger.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-description.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-icon.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-line.ts","../../../projects/ng-base/ui/src/lib/helm/trace/lib/hlm-trace-title.ts","../../../projects/ng-base/ui/src/lib/helm/trace/index.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-blockquote.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-code.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-h1.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-h2.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-h3.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-h4.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-large.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-lead.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-muted.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-p.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-small.ts","../../../projects/ng-base/ui/src/lib/helm/typography/lib/hlm-ul.ts","../../../projects/ng-base/ui/src/lib/helm/typography/index.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\n\n@Directive({\n\tselector: '[hlmBreadcrumb]',\n\texportAs: 'hlmBreadcrumb',\n\thost: {\n\t\t'data-slot': 'breadcrumb',\n\t\trole: 'navigation',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t},\n})\nexport class HlmBreadcrumb {\n\tpublic readonly ariaLabel = input<string>('breadcrumb', { alias: 'aria-label' });\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n\tDestroyRef,\n\teffect,\n\tElementRef,\n\tHostAttributeToken,\n\tinject,\n\tInjector,\n\tNgZone,\n\tPLATFORM_ID,\n\trunInInjectionContext,\n} from '@angular/core';\nimport { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function hlm(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n\n// Global map to track class managers per element\nconst elementClassManagers = new WeakMap<HTMLElement, ElementClassManager>();\n// Global mutation observer for all elements\nlet globalObserver: MutationObserver | null = null;\nconst observedElements = new Set<HTMLElement>();\n\ninterface ElementClassManager {\n\telement: HTMLElement;\n\tsources: Map<number, { classes: Set<string>; order: number }>;\n\tbaseClasses: Set<string>;\n\tisUpdating: boolean;\n\tnextOrder: number;\n\thasInitialized: boolean;\n\trestoreRafId: number | null;\n\t/** Transitions are suppressed until the first effect writes correct classes */\n\ttransitionsSuppressed: boolean;\n\t/** Original inline transition value to restore after suppression (empty string = none was set) */\n\tpreviousTransition: string;\n\t/** Original inline transition priority to preserve !important when restoring */\n\tpreviousTransitionPriority: string;\n}\n\nlet sourceCounter = 0;\n\n/**\n * This function dynamically adds and removes classes for a given element without requiring\n * the a class binding (e.g. `[class]=\"...\"`) which may interfere with other class bindings.\n *\n * 1. This will merge the existing classes on the element with the new classes.\n * 2. It will also remove any classes that were previously added by this function but are no longer present in the new classes.\n * 3. Multiple calls to this function on the same element will be merged efficiently.\n */\nexport function classes(computed: () => ClassValue[] | string, options: ClassesOptions = {}) {\n\trunInInjectionContext(options.injector ?? inject(Injector), () => {\n\t\tconst elementRef = options.elementRef ?? inject(ElementRef);\n\t\tconst platformId = inject(PLATFORM_ID);\n\t\tconst destroyRef = inject(DestroyRef);\n\t\tconst baseClasses = inject(new HostAttributeToken('class'), { optional: true });\n\n\t\tconst element = elementRef.nativeElement;\n\n\t\t// Create unique identifier for this source\n\t\tconst sourceId = sourceCounter++;\n\n\t\t// Get or create the class manager for this element\n\t\tlet manager = elementClassManagers.get(element);\n\n\t\tif (!manager) {\n\t\t\t// Initialize base classes from variation (host attribute 'class')\n\t\t\tconst initialBaseClasses = new Set<string>();\n\n\t\t\tif (baseClasses) {\n\t\t\t\ttoClassList(baseClasses).forEach((cls) => initialBaseClasses.add(cls));\n\t\t\t}\n\n\t\t\tmanager = {\n\t\t\t\telement,\n\t\t\t\tsources: new Map(),\n\t\t\t\tbaseClasses: initialBaseClasses,\n\t\t\t\tisUpdating: false,\n\t\t\t\tnextOrder: 0,\n\t\t\t\thasInitialized: false,\n\t\t\t\trestoreRafId: null,\n\t\t\t\ttransitionsSuppressed: false,\n\t\t\t\tpreviousTransition: '',\n\t\t\t\tpreviousTransitionPriority: '',\n\t\t\t};\n\t\t\telementClassManagers.set(element, manager);\n\n\t\t\t// Setup global observer if needed and register this element. Created outside the zone so\n\t\t\t// class mutations don't trigger app-wide change detection (and loop if CD writes a class).\n\t\t\tinject(NgZone).runOutsideAngular(() => setupGlobalObserver(platformId));\n\t\t\tobservedElements.add(element);\n\n\t\t\t// Suppress transitions until the first effect writes correct classes and\n\t\t\t// the browser has painted them. This prevents CSS transition animations\n\t\t\t// during hydration when classes change from SSR state to client state.\n\t\t\tif (isPlatformBrowser(platformId)) {\n\t\t\t\tmanager.previousTransition = element.style.getPropertyValue('transition');\n\t\t\t\tmanager.previousTransitionPriority = element.style.getPropertyPriority('transition');\n\t\t\t\telement.style.setProperty('transition', 'none', 'important');\n\t\t\t\tmanager.transitionsSuppressed = true;\n\t\t\t}\n\t\t}\n\n\t\t// Assign order once at registration time\n\t\tconst sourceOrder = manager.nextOrder++;\n\n\t\tfunction updateClasses(): void {\n\t\t\t// Get the new classes from the computed function\n\t\t\tconst newClasses = toClassList(computed());\n\n\t\t\t// Update this source's classes, keeping the original order\n\t\t\tmanager!.sources.set(sourceId, {\n\t\t\t\tclasses: new Set(newClasses),\n\t\t\t\torder: sourceOrder,\n\t\t\t});\n\n\t\t\t// Update the element\n\t\t\tupdateElement(manager!);\n\n\t\t\t// Re-enable transitions after the first effect writes correct classes.\n\t\t\t// Deferred to next animation frame so the browser paints the class change\n\t\t\t// with transitions disabled first, then re-enables them.\n\t\t\tif (manager!.transitionsSuppressed) {\n\t\t\t\tmanager!.transitionsSuppressed = false;\n\t\t\t\tmanager!.restoreRafId = requestAnimationFrame(() => {\n\t\t\t\t\tmanager!.restoreRafId = null;\n\t\t\t\t\trestoreTransitionSuppression(manager!);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Register cleanup with DestroyRef\n\t\tdestroyRef.onDestroy(() => {\n\t\t\tif (manager!.restoreRafId !== null) {\n\t\t\t\tcancelAnimationFrame(manager!.restoreRafId);\n\t\t\t\tmanager!.restoreRafId = null;\n\t\t\t}\n\n\t\t\tif (manager!.transitionsSuppressed) {\n\t\t\t\tmanager!.transitionsSuppressed = false;\n\t\t\t\trestoreTransitionSuppression(manager!);\n\t\t\t}\n\n\t\t\t// Remove this source from the manager\n\t\t\tmanager!.sources.delete(sourceId);\n\n\t\t\t// If no more sources, clean up the manager\n\t\t\tif (manager!.sources.size === 0) {\n\t\t\t\tcleanupManager(element);\n\t\t\t} else {\n\t\t\t\t// Update element without this source's classes\n\t\t\t\tupdateElement(manager!);\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * We need this effect to track changes to the computed classes. Ideally, we would use\n\t\t * afterRenderEffect here, but that doesn't run in SSR contexts, so we use a standard\n\t\t * effect which works in both browser and SSR.\n\t\t */\n\t\teffect(updateClasses);\n\t});\n}\n\nfunction restoreTransitionSuppression(manager: ElementClassManager): void {\n\tconst prev = manager.previousTransition;\n\tif (prev) {\n\t\tmanager.element.style.setProperty('transition', prev, manager.previousTransitionPriority || undefined);\n\t} else {\n\t\tmanager.element.style.removeProperty('transition');\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types\nfunction setupGlobalObserver(platformId: Object): void {\n\tif (isPlatformBrowser(platformId) && !globalObserver) {\n\t\t// Create single global observer that watches the entire document\n\t\tglobalObserver = new MutationObserver((mutations) => {\n\t\t\tfor (const mutation of mutations) {\n\t\t\t\tif (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n\t\t\t\t\tconst element = mutation.target as HTMLElement;\n\t\t\t\t\tconst manager = elementClassManagers.get(element);\n\n\t\t\t\t\t// Only process elements we're managing\n\t\t\t\t\tif (manager && observedElements.has(element)) {\n\t\t\t\t\t\tif (manager.isUpdating) continue; // Ignore changes we're making\n\n\t\t\t\t\t\t// Update base classes to include any externally added classes\n\t\t\t\t\t\tconst currentClasses = toClassList(element.className);\n\t\t\t\t\t\tconst allSourceClasses = new Set<string>();\n\n\t\t\t\t\t\t// Collect all classes from all sources\n\t\t\t\t\t\tfor (const source of manager.sources.values()) {\n\t\t\t\t\t\t\tfor (const className of source.classes) {\n\t\t\t\t\t\t\t\tallSourceClasses.add(className);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Any classes not from sources become new base classes\n\t\t\t\t\t\tmanager.baseClasses.clear();\n\n\t\t\t\t\t\tfor (const className of currentClasses) {\n\t\t\t\t\t\t\tif (!allSourceClasses.has(className)) {\n\t\t\t\t\t\t\t\tmanager.baseClasses.add(className);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tupdateElement(manager);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Start observing the entire document for class attribute changes\n\t\tglobalObserver.observe(document, {\n\t\t\tattributes: true,\n\t\t\tattributeFilter: ['class'],\n\t\t\tsubtree: true, // Watch all descendants\n\t\t});\n\t}\n}\n\nfunction updateElement(manager: ElementClassManager): void {\n\tif (manager.isUpdating) return; // Prevent recursive updates\n\n\tmanager.isUpdating = true;\n\n\t// Handle initialization: capture base classes after first source registration\n\tif (!manager.hasInitialized && manager.sources.size > 0) {\n\t\t// Get current classes on element (may include SSR classes)\n\t\tconst currentClasses = toClassList(manager.element.className);\n\n\t\t// Get all classes that will be applied by sources\n\t\tconst allSourceClasses = new Set<string>();\n\t\tfor (const source of manager.sources.values()) {\n\t\t\tsource.classes.forEach((className) => allSourceClasses.add(className));\n\t\t}\n\n\t\t// Only consider classes as \"base\" if they're not produced by any source\n\t\t// This prevents SSR-rendered classes from being preserved as base classes\n\t\tcurrentClasses.forEach((className) => {\n\t\t\tif (!allSourceClasses.has(className)) {\n\t\t\t\tmanager.baseClasses.add(className);\n\t\t\t}\n\t\t});\n\n\t\tmanager.hasInitialized = true;\n\t}\n\n\t// Get classes from all sources, sorted by registration order (later takes precedence)\n\tconst sortedSources = Array.from(manager.sources.entries()).sort(([, a], [, b]) => a.order - b.order);\n\n\tconst allSourceClasses: string[] = [];\n\tfor (const [, source] of sortedSources) {\n\t\tallSourceClasses.push(...source.classes);\n\t}\n\n\t// Combine base classes with all source classes, ensuring base classes take precedence\n\tconst classesToApply =\n\t\tallSourceClasses.length > 0 || manager.baseClasses.size > 0\n\t\t\t? hlm([...allSourceClasses, ...manager.baseClasses])\n\t\t\t: '';\n\n\t// Apply the classes to the element\n\tif (manager.element.className !== classesToApply) {\n\t\tmanager.element.className = classesToApply;\n\t}\n\n\tmanager.isUpdating = false;\n}\n\nfunction cleanupManager(element: HTMLElement): void {\n\t// Remove from global tracking\n\tobservedElements.delete(element);\n\telementClassManagers.delete(element);\n\n\t// If no more elements being tracked, cleanup global observer\n\tif (observedElements.size === 0 && globalObserver) {\n\t\tglobalObserver.disconnect();\n\t\tglobalObserver = null;\n\t}\n}\n\ninterface ClassesOptions {\n\telementRef?: ElementRef<HTMLElement>;\n\tinjector?: Injector;\n}\n\n// Cache for parsed class lists to avoid repeated string operations\nconst classListCache = new Map<string, string[]>();\n\nfunction toClassList(className: string | ClassValue[]): string[] {\n\t// For simple string inputs, use cache to avoid repeated parsing\n\tif (typeof className === 'string' && classListCache.has(className)) {\n\t\treturn classListCache.get(className)!;\n\t}\n\n\tconst result = clsx(className)\n\t\t.split(' ')\n\t\t.filter((c) => c.length > 0);\n\n\t// Cache string results, but limit cache size to prevent memory growth\n\tif (typeof className === 'string' && classListCache.size < 1000) {\n\t\tclassListCache.set(className, result);\n\t}\n\n\treturn result;\n}\n","import { OVERLAY_DEFAULT_CONFIG } from '@angular/cdk/overlay';\nimport { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\n/**\n * Provides default configuration for Spartan Helm components.\n *\n * This utility configures the Angular CDK overlay to disable the `usePopover`\n * behavior introduced in Angular 21, which causes CDK overlay-based components\n * (sheets, dialogs, tooltips, etc.) to render above `position: fixed` elements\n * like `<hlm-toaster>`.\n *\n * @returns {EnvironmentProviders} Environment providers to be added to the application config.\n *\n * @example\n * ```ts\n * // app.config.ts\n * import { provideSpartanHlm } from '@spartan-ng/helm/utils';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideSpartanHlm(),\n * // ... other providers\n * ],\n * };\n * ```\n */\nexport function provideSpartanHlm(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([\n\t\t{\n\t\t\tprovide: OVERLAY_DEFAULT_CONFIG,\n\t\t\tuseValue: { usePopover: false },\n\t\t},\n\t]);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideEllipsis } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-breadcrumb-ellipsis',\n\texportAs: 'hlmBreadcrumbEllipsis',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideEllipsis })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'breadcrumb-ellipsis',\n\t\trole: 'presentation',\n\t},\n\ttemplate: `\n\t\t<ng-icon name=\"lucideEllipsis\" />\n\t\t<span class=\"sr-only\">{{ srOnlyText() }}</span>\n\t`,\n})\nexport class HlmBreadcrumbEllipsis {\n\t/** Screen reader only text for the ellipsis */\n\tpublic readonly srOnlyText = input<string>('More');\n\n\tconstructor() {\n\t\tclasses(() => 'size-5 [&>ng-icon]:text-[length:--spacing(4)] flex items-center justify-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmBreadcrumbItem]',\n\texportAs: 'hlmBreadcrumbItem',\n\thost: {\n\t\t'data-slot': 'breadcrumb-item',\n\t},\n})\nexport class HlmBreadcrumbItem {\n\tconstructor() {\n\t\tclasses(() => 'gap-1.5 inline-flex items-center');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmBreadcrumbLink]',\n\texportAs: 'hlmBreadcrumbLink',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: RouterLink,\n\t\t\tinputs: [\n\t\t\t\t'target',\n\t\t\t\t'queryParams',\n\t\t\t\t'fragment',\n\t\t\t\t'queryParamsHandling',\n\t\t\t\t'state',\n\t\t\t\t'info',\n\t\t\t\t'relativeTo',\n\t\t\t\t'preserveFragment',\n\t\t\t\t'skipLocationChange',\n\t\t\t\t'replaceUrl',\n\t\t\t\t'routerLink: link',\n\t\t\t],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'breadcrumb-link',\n\t},\n})\nexport class HlmBreadcrumbLink {\n\t/** The link to navigate to the page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\n\tconstructor() {\n\t\tclasses(() => 'hover:text-foreground transition-colors');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmBreadcrumbList]',\n\texportAs: 'hlmBreadcrumbList',\n\thost: {\n\t\t'data-slot': 'breadcrumb-list',\n\t},\n})\nexport class HlmBreadcrumbList {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center wrap-break-word');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmBreadcrumbPage]',\n\texportAs: 'hlmBreadcrumbPage',\n\thost: {\n\t\t'data-slot': 'breadcrumb-page',\n\t\trole: 'link',\n\t\t'aria-disabled': 'true',\n\t\t'aria-current': 'page',\n\t},\n})\nexport class HlmBreadcrumbPage {\n\tconstructor() {\n\t\tclasses(() => 'text-foreground font-normal');\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronRight } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: '[hlmBreadcrumbSeparator]',\n\texportAs: 'hlmBreadcrumbSeparator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'breadcrumb-separator',\n\t\trole: 'presentation',\n\t\t'aria-hidden': 'true',\n\t},\n\ttemplate: `\n\t\t<ng-content>\n\t\t\t<ng-icon name=\"lucideChevronRight\" />\n\t\t</ng-content>\n\t`,\n})\nexport class HlmBreadcrumbSeparator {\n\tconstructor() {\n\t\tclasses(() => '[&>ng-icon]:text-[length:--spacing(3.5)] [&>ng-icon]:flex');\n\t}\n}\n","import { HlmBreadcrumb } from './lib/hlm-breadcrumb';\nimport { HlmBreadcrumbEllipsis } from './lib/hlm-breadcrumb-ellipsis';\nimport { HlmBreadcrumbItem } from './lib/hlm-breadcrumb-item';\nimport { HlmBreadcrumbLink } from './lib/hlm-breadcrumb-link';\nimport { HlmBreadcrumbList } from './lib/hlm-breadcrumb-list';\nimport { HlmBreadcrumbPage } from './lib/hlm-breadcrumb-page';\nimport { HlmBreadcrumbSeparator } from './lib/hlm-breadcrumb-separator';\n\nexport * from './lib/hlm-breadcrumb';\nexport * from './lib/hlm-breadcrumb-ellipsis';\nexport * from './lib/hlm-breadcrumb-item';\nexport * from './lib/hlm-breadcrumb-link';\nexport * from './lib/hlm-breadcrumb-list';\nexport * from './lib/hlm-breadcrumb-page';\nexport * from './lib/hlm-breadcrumb-separator';\n\nexport const HlmBreadcrumbImports = [\n\tHlmBreadcrumb,\n\tHlmBreadcrumbEllipsis,\n\tHlmBreadcrumbSeparator,\n\tHlmBreadcrumbItem,\n\tHlmBreadcrumbLink,\n\tHlmBreadcrumbPage,\n\tHlmBreadcrumbList,\n] as const;\n","","","import { inject } from '@angular/core';\nimport { LtI18nService } from '@lenne.tech/ng-base';\n\nimport de from '../i18n/de.json';\nimport en from '../i18n/en.json';\n\n/** The `lt.ui.*` texts (also shipped as `i18n/ui/{de,en}.json`). */\nexport const LT_UI_MESSAGES = { de, en } as const;\n\n/** `LtI18nService` with the `lt.ui.*` texts registered; for the ui components and services (injection context). */\nexport function injectLtUiI18n(): LtI18nService {\n const i18n = inject(LtI18nService);\n i18n.registerLibraryMessages('ui', LT_UI_MESSAGES);\n return i18n;\n}\n","import { Component, computed, input } from '@angular/core';\n\nimport { HlmBreadcrumb, HlmBreadcrumbItem, HlmBreadcrumbLink, HlmBreadcrumbList, HlmBreadcrumbPage, HlmBreadcrumbSeparator } from '../helm/breadcrumb';\nimport { injectLtUiI18n } from './i18n';\n\n/** One breadcrumb entry; the last one is the current page (no link). */\nexport interface LtBreadcrumbItem {\n label: string;\n /** Router link (string or commands). */\n link?: string | unknown[];\n}\n\n/**\n * Breadcrumb trail on Spartan's breadcrumb (`nav[aria-label]`, `aria-current=\"page\"` on the last item).\n * The separators sit inside the list items and are hidden from assistive technology. Needs the router (`RouterLink`).\n */\n@Component({\n selector: 'lt-breadcrumb',\n imports: [HlmBreadcrumb, HlmBreadcrumbItem, HlmBreadcrumbLink, HlmBreadcrumbList, HlmBreadcrumbPage, HlmBreadcrumbSeparator],\n templateUrl: './breadcrumb.html',\n})\nexport class LtBreadcrumb {\n private readonly i18n = injectLtUiI18n();\n\n /** Entries from the root to the current page. */\n readonly items = input.required<LtBreadcrumbItem[]>();\n /** Accessible name of the `nav` (default `lt.ui.breadcrumb`). */\n readonly label = input<string>();\n\n protected readonly navLabel = computed(() => this.label() || this.i18n.t('lt.ui.breadcrumb'));\n}\n","<nav hlmBreadcrumb [aria-label]=\"navLabel()\">\n <ol hlmBreadcrumbList>\n @for (item of items(); track $index; let last = $last) {\n <li hlmBreadcrumbItem>\n @if (last) {\n <span hlmBreadcrumbPage>{{ item.label }}</span>\n } @else {\n @if (item.link) {\n <a hlmBreadcrumbLink [link]=\"item.link\">{{ item.label }}</a>\n } @else {\n <span>{{ item.label }}</span>\n }\n <span hlmBreadcrumbSeparator></span>\n }\n </li>\n }\n </ol>\n</nav>\n","import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport type { ButtonVariants } from './hlm-button';\n\nexport interface BrnButtonConfig {\n\tvariant: ButtonVariants['variant'];\n\tsize: ButtonVariants['size'];\n}\n\nconst defaultConfig: BrnButtonConfig = {\n\tvariant: 'default',\n\tsize: 'default',\n};\n\nconst BrnButtonConfigToken = new InjectionToken<BrnButtonConfig>('BrnButtonConfig');\n\nexport function provideBrnButtonConfig(config: Partial<BrnButtonConfig>): ValueProvider {\n\treturn { provide: BrnButtonConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectBrnButtonConfig(): BrnButtonConfig {\n\treturn inject(BrnButtonConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, input, signal } from '@angular/core';\nimport { BrnButton } from '@spartan-ng/brain/button';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\nimport { injectBrnButtonConfig } from './hlm-button.token';\n\nexport const buttonVariants = cva(\n\t\"focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px data-[matches-spartan-invalid=true]:ring-3 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/button inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground hover:bg-primary/80',\n\t\t\t\toutline: 'border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs',\n\t\t\t\tsecondary: 'bg-secondary text-secondary-foreground aria-expanded:bg-secondary aria-expanded:text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]',\n\t\t\t\tghost: 'hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground',\n\t\t\t\tdestructive: 'bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30',\n\t\t\t\tlink: 'text-primary underline-offset-4 hover:underline',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\n\t\t\t\txs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)]\",\n\t\t\t\tsm: 'h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5',\n\t\t\t\tlg: 'h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\n\t\t\t\ticon: 'size-9',\n\t\t\t\t'icon-xs': \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)]\",\n\t\t\t\t'icon-sm': 'size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md',\n\t\t\t\t'icon-lg': 'size-10',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t},\n);\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n\n@Directive({\n\tselector: 'button[hlmBtn], a[hlmBtn]',\n\texportAs: 'hlmBtn',\n\thostDirectives: [{ directive: BrnButton, inputs: ['disabled'] }],\n\thost: { 'data-slot': 'button' },\n})\nexport class HlmButton {\n\tprivate readonly _config = injectBrnButtonConfig();\n\n\tprivate readonly _additionalClasses = signal<ClassValue>('');\n\n\tpublic readonly variant = input<ButtonVariants['variant']>(this._config.variant);\n\n\tpublic readonly size = input<ButtonVariants['size']>(this._config.size);\n\n\tconstructor() {\n\t\tclasses(() => [buttonVariants({ variant: this.variant(), size: this.size() }), this._additionalClasses()]);\n\t}\n\n\tsetClass(classes: string): void {\n\t\tthis._additionalClasses.set(classes);\n\t}\n}\n","import { HlmButton } from './lib/hlm-button';\n\nexport * from './lib/hlm-button';\nexport * from './lib/hlm-button.token';\n\nexport const HlmButtonImports = [HlmButton] as const;\n","import { Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideMoon, lucideSun } from '@ng-icons/lucide';\n\nimport { HlmButton } from '../helm/button';\nimport { LtColorModeService } from '@lenne.tech/ng-base/ui/provide';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Icon button that toggles light/dark (Lucide sun/moon, ghost `hlmBtn`).\n *\n * Accessibility: a toggle button with a constant label (`lt.ui.darkMode`) and `aria-pressed` for the dark state, as the\n * WAI-ARIA toggle button pattern recommends. The label is also the tooltip (`title`).\n */\n@Component({\n selector: 'lt-color-mode-button',\n imports: [HlmButton, NgIcon],\n providers: [provideIcons({ lucideMoon, lucideSun })],\n templateUrl: './color-mode-button.html',\n})\nexport class LtColorModeButton {\n protected readonly colorMode = inject(LtColorModeService);\n protected readonly i18n = injectLtUiI18n();\n\n /** Button size (`icon`, `icon-sm`, `icon-lg`). */\n readonly size = input<'icon' | 'icon-lg' | 'icon-sm'>('icon');\n\n protected readonly dark = computed(() => this.colorMode.resolved() === 'dark');\n}\n","<button\n hlmBtn\n type=\"button\"\n variant=\"ghost\"\n [size]=\"size()\"\n [attr.aria-label]=\"i18n.t('lt.ui.darkMode')\"\n [attr.aria-pressed]=\"dark()\"\n [attr.title]=\"i18n.t('lt.ui.darkMode')\"\n (click)=\"colorMode.toggle()\"\n>\n <ng-icon [name]=\"dark() ? 'lucideMoon' : 'lucideSun'\" />\n</button>\n","import { computed, Directive, effect, input, untracked } from '@angular/core';\nimport { injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlay } from '@spartan-ng/brain/dialog';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\nexport const hlmDialogOverlayClass = hlm('data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 isolate bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs');\n\n@Directive({\n\tselector: '[hlmDialogOverlay],hlm-dialog-overlay',\n\texportAs: 'hlmDialogOverlay',\n\thostDirectives: [BrnDialogOverlay],\n})\nexport class HlmDialogOverlay {\n\tprivate readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() => hlm(hlmDialogOverlayClass, this.userClass()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst newClass = this._computedClass();\n\t\t\tuntracked(() => this._classSettable?.setClassToCustomElement(newClass));\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { BrnDialog, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { HlmDialogOverlay } from './hlm-dialog-overlay';\n\n@Component({\n\tselector: 'hlm-dialog',\n\texportAs: 'hlmDialog',\n\timports: [HlmDialogOverlay],\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => HlmDialog),\n\t\t},\n\t\tprovideBrnDialogDefaultOptions({\n\t\t\t// add custom options here\n\t\t}),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<hlm-dialog-overlay />\n\t\t<ng-content />\n\t`,\n})\nexport class HlmDialog extends BrnDialog {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[hlmDialogClose]',\n\texportAs: 'hlmDialogClose',\n\thostDirectives: [BrnDialogClose],\n\thost: { 'data-slot': 'dialog-close' },\n})\nexport class HlmDialogClose {}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport type { ComponentType } from '@angular/cdk/portal';\nimport { NgComponentOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\nimport { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';\nimport { HlmButton } from '../../button';\n\nimport { classes } from '../../utils';\nimport { HlmDialogClose } from './hlm-dialog-close';\n\ntype HlmDialogContentContext = {\n\t$component?: ComponentType<unknown>;\n\t$dynamicComponentClass?: string;\n\t$showCloseButton?: boolean;\n\t$closeLabel?: string;\n};\n\n@Component({\n\tselector: 'hlm-dialog-content',\n\texportAs: 'hlmDialogContent',\n\timports: [NgComponentOutlet, HlmButton, HlmDialogClose, NgIcon],\n\tproviders: [provideIcons({ lucideX })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'dialog-content',\n\t\t'[attr.data-state]': 'state()',\n\t},\n\ttemplate: `\n\t\t@if (component) {\n\t\t\t<ng-container [ngComponentOutlet]=\"component\" />\n\t\t} @else {\n\t\t\t<ng-content />\n\t\t}\n\n\t\t@if (showCloseButton()) {\n\t\t\t<button hlmBtn variant=\"ghost\" size=\"icon-sm\" class=\"absolute end-4 top-4\" hlmDialogClose>\n\t\t\t\t<span class=\"sr-only\">{{ closeLabel() }}</span>\n\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t</button>\n\t\t}\n\t`,\n})\nexport class HlmDialogContent {\n\tprivate readonly _dialogRef = inject(BrnDialogRef);\n\tprivate readonly _dialogContext = injectBrnDialogContext<HlmDialogContentContext | null>({ optional: true });\n\n\tpublic readonly showCloseButton = input<boolean, BooleanInput>(this._dialogContext?.$showCloseButton ?? true, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly closeLabel = input<string>(this._dialogContext?.$closeLabel ?? 'Close');\n\n\tpublic readonly state = computed(() => this._dialogRef?.state() ?? 'closed');\n\n\tpublic readonly component = this._dialogContext?.$component;\n\tprivate readonly _dynamicComponentClass = this._dialogContext?.$dynamicComponentClass;\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-xl p-6 text-sm ring-1 duration-100 sm:max-w-md relative mx-auto w-[calc(100vw-2rem)] outline-none sm:mx-0',\n\t\t\tthis._dynamicComponentClass,\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDialogDescription]',\n\texportAs: 'hlmDialogDescription',\n\thostDirectives: [BrnDialogDescription],\n\thost: { 'data-slot': 'dialog-description' },\n})\nexport class HlmDialogDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDialogFooter],hlm-dialog-footer',\n\texportAs: 'hlmDialogFooter',\n\thost: { 'data-slot': 'dialog-footer' },\n})\nexport class HlmDialogFooter {\n\tconstructor() {\n\t\tclasses(() => 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDialogHeader],hlm-dialog-header',\n\texportAs: 'hlmDialogHeader',\n\thost: { 'data-slot': 'dialog-header' },\n})\nexport class HlmDialogHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogContent } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[hlmDialogPortal]',\n\texportAs: 'hlmDialogPortal',\n\thostDirectives: [{ directive: BrnDialogContent, inputs: ['context', 'class'] }],\n})\nexport class HlmDialogPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDialogTitle]',\n\texportAs: 'hlmDialogTitle',\n\thostDirectives: [BrnDialogTitle],\n\thost: { 'data-slot': 'dialog-title' },\n})\nexport class HlmDialogTitle {\n\tconstructor() {\n\t\tclasses(() => 'leading-none font-medium');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTrigger } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[hlmDialogTrigger],button[hlmDialogTriggerFor]',\n\texportAs: 'hlmDialogTrigger',\n\thostDirectives: [{ directive: BrnDialogTrigger, inputs: ['id', 'brnDialogTriggerFor: hlmDialogTriggerFor', 'type'] }],\n\thost: { 'data-slot': 'dialog-trigger' },\n})\nexport class HlmDialogTrigger {}\n","import type { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, type TemplateRef } from '@angular/core';\nimport {\n\ttype BrnDialogOptions,\n\ttype BrnDialogRef,\n\tBrnDialogService,\n\tcssClassesToArray,\n} from '@spartan-ng/brain/dialog';\nimport { HlmDialogContent } from './hlm-dialog-content';\nimport { hlmDialogOverlayClass } from './hlm-dialog-overlay';\n\nexport type HlmDialogOptions<DialogContext = unknown> = BrnDialogOptions & {\n\tcontentClass?: string;\n\tshowCloseButton?: boolean;\n\tcloseLabel?: string;\n\tcontext?: DialogContext;\n};\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class HlmDialogService {\n\tprivate readonly _brnDialogService = inject(BrnDialogService);\n\n\tpublic open<TResult = unknown, TContext = unknown>(\n\t\tcomponent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\toptions?: Partial<HlmDialogOptions<TContext>>,\n\t): BrnDialogRef<TResult> {\n\t\tconst mergedOptions = {\n\t\t\t...(options ?? {}),\n\t\t\tbackdropClass: cssClassesToArray(`${hlmDialogOverlayClass} ${options?.backdropClass ?? ''}`),\n\t\t\tcontext: {\n\t\t\t\t...(options?.context && typeof options.context === 'object' ? options.context : {}),\n\t\t\t\t$component: component,\n\t\t\t\t$dynamicComponentClass: options?.contentClass,\n\t\t\t\t$showCloseButton: options?.showCloseButton,\n\t\t\t\t$closeLabel: options?.closeLabel,\n\t\t\t},\n\t\t};\n\n\t\treturn this._brnDialogService.open<unknown, TResult>(\n\t\t\tHlmDialogContent,\n\t\t\tundefined,\n\t\t\tmergedOptions.context,\n\t\t\tmergedOptions,\n\t\t);\n\t}\n}\n","import { HlmDialog } from './lib/hlm-dialog';\nimport { HlmDialogClose } from './lib/hlm-dialog-close';\nimport { HlmDialogContent } from './lib/hlm-dialog-content';\nimport { HlmDialogDescription } from './lib/hlm-dialog-description';\nimport { HlmDialogFooter } from './lib/hlm-dialog-footer';\nimport { HlmDialogHeader } from './lib/hlm-dialog-header';\nimport { HlmDialogOverlay } from './lib/hlm-dialog-overlay';\nimport { HlmDialogPortal } from './lib/hlm-dialog-portal';\nimport { HlmDialogTitle } from './lib/hlm-dialog-title';\nimport { HlmDialogTrigger } from './lib/hlm-dialog-trigger';\n\nexport * from './lib/hlm-dialog';\nexport * from './lib/hlm-dialog-close';\nexport * from './lib/hlm-dialog-content';\nexport * from './lib/hlm-dialog-description';\nexport * from './lib/hlm-dialog-footer';\nexport * from './lib/hlm-dialog-header';\nexport * from './lib/hlm-dialog-overlay';\nexport * from './lib/hlm-dialog-portal';\nexport * from './lib/hlm-dialog-title';\nexport * from './lib/hlm-dialog-trigger';\nexport * from './lib/hlm-dialog.service';\n\nexport const HlmDialogImports = [\n\tHlmDialog,\n\tHlmDialogContent,\n\tHlmDialogDescription,\n\tHlmDialogFooter,\n\tHlmDialogHeader,\n\tHlmDialogOverlay,\n\tHlmDialogPortal,\n\tHlmDialogTitle,\n\tHlmDialogTrigger,\n\tHlmDialogClose,\n] as const;\n","import { inject, InjectionToken } from '@angular/core';\n\nimport type { LtOverlayRef } from './overlay';\n\n/** Data passed with `LtOverlayOptions.data` (read it with {@link injectLtOverlayData}). */\nexport const LT_OVERLAY_DATA = new InjectionToken<unknown>('LT_OVERLAY_DATA');\n\n/** Handle of the overlay the injecting component runs in (read it with {@link injectLtOverlayRef}). */\nexport const LT_OVERLAY_REF = new InjectionToken<LtOverlayRef<unknown>>('LT_OVERLAY_REF');\n\n/**\n * Data of the overlay the calling component was opened in by `LtOverlayService.open()`. Call it in an injection\n * context (field initializer or constructor).\n */\nexport function injectLtOverlayData<D>(): D {\n return inject(LT_OVERLAY_DATA) as D;\n}\n\n/**\n * Handle of the overlay the calling component was opened in, so the component can close itself with a result.\n *\n * @example\n * readonly overlay = injectLtOverlayRef<boolean>();\n * save() { this.overlay.close(true); }\n */\nexport function injectLtOverlayRef<R>(): LtOverlayRef<R> {\n return inject(LT_OVERLAY_REF) as LtOverlayRef<R>;\n}\n","import { Component, computed } from '@angular/core';\n\nimport { HlmButton } from '../helm/button';\nimport { HlmDialogDescription, HlmDialogFooter, HlmDialogHeader, HlmDialogTitle } from '../helm/dialog';\nimport type { LtConfirmOptions } from './overlay';\nimport { injectLtOverlayData, injectLtOverlayRef } from './overlay-ref';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Content of `LtOverlayService.confirm()` (`role=\"alertdialog\"`, labelled by the title, described by the\n * description). Cancel resolves `false`, confirm `true`; destructive questions start with focus on cancel.\n */\n@Component({\n selector: 'lt-confirm-dialog',\n imports: [HlmButton, HlmDialogDescription, HlmDialogFooter, HlmDialogHeader, HlmDialogTitle],\n host: { class: 'grid gap-6' },\n templateUrl: './confirm-dialog.html',\n})\nexport class LtConfirmDialog {\n protected readonly options = injectLtOverlayData<LtConfirmOptions>();\n protected readonly ref = injectLtOverlayRef<boolean>();\n private readonly i18n = injectLtUiI18n();\n\n protected readonly cancelLabel = computed(() => this.options.cancelLabel ?? this.i18n.t('lt.ui.cancel'));\n protected readonly confirmLabel = computed(() => this.options.confirmLabel ?? this.i18n.t('lt.ui.confirm'));\n}\n","<div hlmDialogHeader>\n <h2 hlmDialogTitle>{{ options.title }}</h2>\n @if (options.description) {\n <p hlmDialogDescription>{{ options.description }}</p>\n }\n</div>\n<div hlmDialogFooter>\n <button hlmBtn type=\"button\" variant=\"outline\" data-lt-confirm=\"cancel\" (click)=\"ref.close(false)\">{{ cancelLabel() }}</button>\n <button hlmBtn type=\"button\" [variant]=\"options.destructive ? 'destructive' : 'default'\" data-lt-confirm=\"confirm\" (click)=\"ref.close(true)\">\n {{ confirmLabel() }}\n </button>\n</div>\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport type HlmCardConfig = {\n\tsize: 'sm' | 'default';\n};\n\nconst defaultConfig: HlmCardConfig = {\n\tsize: 'default',\n};\n\nconst HlmCardConfigToken = new InjectionToken<HlmCardConfig>('HlmCardConfig');\n\nexport function provideHlmCardConfig(config: Partial<HlmCardConfig>): ValueProvider {\n\treturn { provide: HlmCardConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmCardConfig(): HlmCardConfig {\n\treturn inject(HlmCardConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmCardConfig, injectHlmCardConfig } from './hlm-card.token';\n\n@Directive({\n\tselector: '[hlmCard],hlm-card',\n\texportAs: 'hlmCard',\n\thost: {\n\t\t'data-slot': 'card',\n\t\t'[attr.data-size]': 'size()',\n\t},\n})\nexport class HlmCard {\n\tprivate readonly _defaultConfig = injectHlmCardConfig();\n\tpublic readonly size = input<HlmCardConfig['size']>(this._defaultConfig.size);\n\n\tconstructor() {\n\t\tclasses(() => 'ring-foreground/10 bg-card text-card-foreground gap-(--card-spacing) overflow-hidden rounded-xl py-(--card-spacing) text-sm shadow-xs ring-1 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCardAction]',\n\texportAs: 'hlmCardAction',\n\thost: { 'data-slot': 'card-action' },\n})\nexport class HlmCardAction {\n\tconstructor() {\n\t\tclasses(() => 'col-start-2 row-span-2 row-start-1 self-start justify-self-end');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCardContent]',\n\texportAs: 'hlmCardContent',\n\thost: { 'data-slot': 'card-content' },\n})\nexport class HlmCardContent {\n\tconstructor() {\n\t\tclasses(() => 'px-(--card-spacing)');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCardDescription]',\n\texportAs: 'hlmCardDescription',\n\thost: { 'data-slot': 'card-description' },\n})\nexport class HlmCardDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground text-sm');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCardFooter],hlm-card-footer',\n\texportAs: 'hlmCardFooter',\n\thost: { 'data-slot': 'card-footer' },\n})\nexport class HlmCardFooter {\n\tconstructor() {\n\t\tclasses(() => 'rounded-b-xl px-(--card-spacing) [.border-t]:pt-(--card-spacing) flex items-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCardHeader],hlm-card-header',\n\texportAs: 'hlmCardHeader',\n\thost: { 'data-slot': 'card-header' },\n})\nexport class HlmCardHeader {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'gap-1 rounded-t-xl px-(--card-spacing) [.border-b]:pb-(--card-spacing) group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCardTitle]',\n\texportAs: 'hlmCardTitle',\n\thost: { 'data-slot': 'card-title' },\n})\nexport class HlmCardTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-base leading-normal font-medium group-data-[size=sm]/card:text-sm');\n\t}\n}\n","import { HlmCard } from './lib/hlm-card';\nimport { HlmCardAction } from './lib/hlm-card-action';\nimport { HlmCardContent } from './lib/hlm-card-content';\nimport { HlmCardDescription } from './lib/hlm-card-description';\nimport { HlmCardFooter } from './lib/hlm-card-footer';\nimport { HlmCardHeader } from './lib/hlm-card-header';\nimport { HlmCardTitle } from './lib/hlm-card-title';\n\nexport * from './lib/hlm-card';\nexport * from './lib/hlm-card-action';\nexport * from './lib/hlm-card-content';\nexport * from './lib/hlm-card-description';\nexport * from './lib/hlm-card-footer';\nexport * from './lib/hlm-card-header';\nexport * from './lib/hlm-card-title';\n\nexport const HlmCardImports = [\n\tHlmCard,\n\tHlmCardAction,\n\tHlmCardContent,\n\tHlmCardDescription,\n\tHlmCardFooter,\n\tHlmCardHeader,\n\tHlmCardTitle,\n] as const;\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'div[hlmTableContainer]',\n\texportAs: 'hlmTableContainer',\n\thost: { 'data-slot': 'table-container' },\n})\nexport class HlmTableContainer {\n\tconstructor() {\n\t\tclasses(() => 'relative w-full overflow-x-auto');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <table> element.\n */\n@Directive({\n\tselector: 'table[hlmTable]',\n\texportAs: 'hlmTable',\n\thost: { 'data-slot': 'table' },\n})\nexport class HlmTable {\n\tconstructor() {\n\t\tclasses(() => 'w-full caption-bottom text-sm');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <thead> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'thead[hlmTHead],thead[hlmTableHeader]',\n\texportAs: 'hlmTHead',\n\thost: { 'data-slot': 'table-header' },\n})\nexport class HlmTHead {\n\tconstructor() {\n\t\tclasses(() => '[&_tr]:border-b');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tbody> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'tbody[hlmTBody],tbody[hlmTableBody]',\n\texportAs: 'hlmTBody',\n\thost: { 'data-slot': 'table-body' },\n})\nexport class HlmTBody {\n\tconstructor() {\n\t\tclasses(() => '[&_tr:last-child]:border-0');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tfoot> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'tfoot[hlmTFoot],tfoot[hlmTableFooter]',\n\texportAs: 'hlmTFoot',\n\thost: { 'data-slot': 'table-footer' },\n})\nexport class HlmTFoot {\n\tconstructor() {\n\t\tclasses(() => 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tr> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'tr[hlmTr],tr[hlmTableRow]',\n\texportAs: 'hlmTr',\n\thost: { 'data-slot': 'table-row' },\n})\nexport class HlmTr {\n\tconstructor() {\n\t\tclasses(() => 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <th> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'th[hlmTh],th[hlmTableHead]',\n\texportAs: 'hlmTh',\n\thost: { 'data-slot': 'table-head' },\n})\nexport class HlmTh {\n\tconstructor() {\n\t\tclasses(() => 'text-foreground h-10 px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <td> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'td[hlmTd],td[hlmTableCell]',\n\texportAs: 'hlmTd',\n\thost: { 'data-slot': 'table-cell' },\n})\nexport class HlmTd {\n\tconstructor() {\n\t\tclasses(() => 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0');\n\t}\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <caption> element\n * within an HlmTable context.\n */\n@Directive({\n\tselector: 'caption[hlmCaption],caption[hlmTableCaption]',\n\texportAs: 'hlmCaption',\n\thost: { 'data-slot': 'table-caption' },\n})\nexport class HlmCaption {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground mt-4 text-sm');\n\t}\n}\n","import {\n\tHlmCaption,\n\tHlmTable,\n\tHlmTableContainer,\n\tHlmTBody,\n\tHlmTd,\n\tHlmTFoot,\n\tHlmTh,\n\tHlmTHead,\n\tHlmTr,\n} from './lib/hlm-table';\n\nexport * from './lib/hlm-table';\n\nexport const HlmTableImports = [\n\tHlmCaption,\n\tHlmTableContainer,\n\tHlmTable,\n\tHlmTBody,\n\tHlmTd,\n\tHlmTFoot,\n\tHlmTh,\n\tHlmTHead,\n\tHlmTr,\n] as const;\n","import { type ExistingProvider, InjectionToken, type Type, inject } from '@angular/core';\nimport type { HlmToggleGroup } from './hlm-toggle-group';\n\nexport const HlmToggleGroupToken = new InjectionToken<HlmToggleGroup>('HlmToggleGroupToken');\n\nexport function injectHlmToggleGroup(): HlmToggleGroup {\n\treturn inject(HlmToggleGroupToken);\n}\n\nexport function provideHlmToggleGroup(toggleGroup: Type<HlmToggleGroup>): ExistingProvider {\n\treturn { provide: HlmToggleGroupToken, useExisting: toggleGroup };\n}\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { Directive, input, numberAttribute } from '@angular/core';\nimport { BrnToggleGroup } from '@spartan-ng/brain/toggle-group';\nimport { ToggleVariants } from '../../toggle';\nimport { classes } from '../../utils';\nimport { provideHlmToggleGroup } from './hlm-toggle-group.token';\n\n@Directive({\n\tselector: '[hlmToggleGroup],hlm-toggle-group',\n\texportAs: 'hlmToggleGroup',\n\tproviders: [provideHlmToggleGroup(HlmToggleGroup)],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnToggleGroup,\n\t\t\tinputs: ['type', 'value', 'nullable', 'disabled'],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'toggle-group',\n\t\t'[attr.data-variant]': 'variant()',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-spacing]': 'spacing()',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t\t'[style.--gap]': 'spacing()',\n\t},\n})\nexport class HlmToggleGroup {\n\tpublic readonly variant = input<ToggleVariants['variant']>('default');\n\tpublic readonly size = input<ToggleVariants['size']>('default');\n\tpublic readonly spacing = input<number, NumberInput>(0, { transform: numberAttribute });\n\tpublic readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-vertical:flex-col data-vertical:items-stretch',\n\t\t);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnToggle } from '@spartan-ng/brain/toggle';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nexport const toggleVariants = cva(\n\t\"hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-transparent',\n\t\t\t\toutline: 'border-input hover:bg-muted border bg-transparent shadow-xs',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 min-w-9 px-2.5',\n\t\t\t\tsm: 'h-8 min-w-8 px-2.5',\n\t\t\t\tlg: 'h-10 min-w-10 px-2.5',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t},\n);\nexport type ToggleVariants = VariantProps<typeof toggleVariants>;\n\n@Directive({\n\tselector: 'button[hlmToggle]',\n\texportAs: 'hlmToggle',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnToggle,\n\t\t\tinputs: ['id', 'value', 'disabled', 'state', 'aria-label', 'type'],\n\t\t\toutputs: ['stateChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'toggle',\n\t},\n})\nexport class HlmToggle {\n\tpublic readonly variant = input<ToggleVariants['variant']>('default');\n\tpublic readonly size = input<ToggleVariants['size']>('default');\n\tconstructor() {\n\t\tclasses(() =>\n\t\t\ttoggleVariants({\n\t\t\t\tvariant: this.variant(),\n\t\t\t\tsize: this.size(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import { HlmToggle } from './lib/hlm-toggle';\n\nexport * from './lib/hlm-toggle';\n\nexport const HlmToggleImports = [HlmToggle] as const;\n","import { computed, Directive, input } from '@angular/core';\nimport { BrnToggleGroupItem } from '@spartan-ng/brain/toggle-group';\nimport { toggleVariants, ToggleVariants } from '../../toggle';\nimport { classes } from '../../utils';\nimport { injectHlmToggleGroup } from './hlm-toggle-group.token';\n\n@Directive({\n\tselector: 'button[hlmToggleGroupItem]',\n\texportAs: 'hlmToggleGroupItem',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnToggleGroupItem,\n\t\t\tinputs: ['id', 'value', 'disabled', 'state', 'aria-label', 'type'],\n\t\t\toutputs: ['stateChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'toggle-group-item',\n\t\t'[attr.data-variant]': '_variant()',\n\t\t'[attr.data-size]': '_size()',\n\t\t'[attr.data-spacing]': '_toggleGroup.spacing()',\n\t},\n})\nexport class HlmToggleGroupItem {\n\tprotected readonly _toggleGroup = injectHlmToggleGroup();\n\n\tpublic readonly variant = input<ToggleVariants['variant']>('default');\n\tpublic readonly size = input<ToggleVariants['size']>('default');\n\n\tprotected readonly _variant = computed(() => this._toggleGroup.variant() || this.variant());\n\tprotected readonly _size = computed(() => this._toggleGroup.size() || this.size());\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-s-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-e-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-s-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-s group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t',\n\t\t\ttoggleVariants({\n\t\t\t\tvariant: this._variant(),\n\t\t\t\tsize: this._size(),\n\t\t\t}),\n\t\t]);\n\t}\n}\n","import { HlmToggleGroup } from './lib/hlm-toggle-group';\nimport { HlmToggleGroupItem } from './lib/hlm-toggle-group-item';\n\nexport * from './lib/hlm-toggle-group';\nexport * from './lib/hlm-toggle-group-item';\nexport * from './lib/hlm-toggle-group.token';\n\nexport const HlmToggleGroupImports = [HlmToggleGroup, HlmToggleGroupItem] as const;\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, computed, contentChild, contentChildren, Directive, inject, input, model, TemplateRef } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideLayoutGrid, lucideTable } from '@ng-icons/lucide';\n\nimport { HlmCardImports } from '../helm/card';\nimport { HlmTableImports } from '../helm/table';\nimport { HlmToggleGroupImports } from '../helm/toggle-group';\nimport { injectLtUiI18n } from './i18n';\n\n/** Column of an {@link LtDataView} table. */\nexport interface LtDataViewColumn<T> {\n /** Header text. */\n header: string;\n /** Property or accessor for the cell value. */\n key: keyof T | ((row: T) => unknown);\n /** Right-align (numbers). */\n numeric?: boolean;\n}\n\n/** View mode. */\nexport type LtDataViewMode = 'table' | 'tiles';\n\n/** Template context of `ng-template[ltDataViewTile]`. */\nexport interface LtDataViewTileContext<T> {\n $implicit: T;\n index: number;\n}\n\n/** Template context of `ng-template[ltDataViewCell]`. */\nexport interface LtDataViewCellContext<T> {\n $implicit: T;\n column: LtDataViewColumn<T>;\n /** The cell value (`key` applied to the item). */\n value: unknown;\n}\n\n/**\n * Tile of an {@link LtDataView} (`let-item`, `let-index=\"index\"`).\n *\n * @example <ng-template ltDataViewTile let-item><lt-page-card [title]=\"item.name\" /></ng-template>\n */\n@Directive({\n selector: 'ng-template[ltDataViewTile]',\n})\nexport class LtDataViewTile {\n readonly template = inject<TemplateRef<LtDataViewTileContext<unknown>>>(TemplateRef);\n}\n\n/**\n * Table cell of an {@link LtDataView} (`let-item`, `let-value=\"value\"`, `let-column=\"column\"`). Name the column by its\n * `key` (or `header`) to override one column; without a name it applies to every column without an own template.\n *\n * @example <ng-template ltDataViewCell=\"status\" let-value=\"value\"><span hlmBadge>{{ value }}</span></ng-template>\n */\n@Directive({\n selector: 'ng-template[ltDataViewCell]',\n})\nexport class LtDataViewCell {\n readonly template = inject<TemplateRef<LtDataViewCellContext<unknown>>>(TemplateRef);\n /** Column `key` (property name) or `header`; empty for all columns. */\n readonly ltDataViewCell = input<string>('');\n}\n\n/**\n * List of records as table or tiles (switchable, preference two-way via `[(mode)]`), with empty state. Tiles render\n * the `ng-template[ltDataViewTile]` per item; table cells can be overridden with `ng-template[ltDataViewCell]`.\n *\n * - Table: Spartan table with a visually hidden `caption` (`label`), `th scope=\"col\"`, numeric columns right-aligned\n * with tabular figures, empty values as `–`.\n * - Tiles: a responsive CSS grid (`ul`/`li`, labelled by `label`); without a tile template every item shows its columns\n * as a small card.\n * - View switch: a toggle group (`lt.ui.tableView` / `lt.ui.tileView`, `aria-pressed`); hide it with `[showViewSwitch]`.\n */\n@Component({\n selector: 'lt-data-view',\n imports: [HlmCardImports, HlmTableImports, HlmToggleGroupImports, NgIcon, NgTemplateOutlet],\n providers: [provideIcons({ lucideLayoutGrid, lucideTable })],\n host: { class: 'block' },\n templateUrl: './data-view.html',\n})\nexport class LtDataView<T extends object> {\n protected readonly i18n = injectLtUiI18n();\n\n readonly columns = input.required<LtDataViewColumn<T>[]>();\n /** Text when `items` is empty (default `lt.ui.noData`). */\n readonly emptyText = input<string>();\n readonly items = input.required<readonly T[]>();\n /** Accessible label of the table / list. */\n readonly label = input.required<string>();\n readonly mode = model<LtDataViewMode>('table');\n /** Show the table/tiles switch (default `true`). */\n readonly showViewSwitch = input(true, { transform: booleanAttribute });\n /** Track items by this key (default: index). */\n readonly trackBy = input<keyof T>();\n\n /** Tile template (`let-item`). */\n protected readonly tileTemplate = contentChild(LtDataViewTile);\n private readonly cellTemplates = contentChildren(LtDataViewCell);\n\n /** Cell template per column index (own template first, then the unnamed one). */\n protected readonly columnTemplates = computed(() => {\n const templates = this.cellTemplates();\n const fallback = templates.find((template) => !template.ltDataViewCell());\n return this.columns().map((column) => {\n const name = typeof column.key === 'function' ? null : String(column.key);\n const own = templates.find((template) => {\n const target = template.ltDataViewCell();\n return !!target && (target === name || target === column.header);\n });\n return (own ?? fallback)?.template ?? null;\n });\n });\n\n protected readonly emptyMessage = computed(() => this.emptyText() || this.i18n.t('lt.ui.noData'));\n\n protected trackItem(item: T, index: number): unknown {\n const key = this.trackBy();\n return key ? item[key] : index;\n }\n\n protected cellValue(item: T, column: LtDataViewColumn<T>): unknown {\n return typeof column.key === 'function' ? column.key(item) : item[column.key];\n }\n\n protected cellText(item: T, column: LtDataViewColumn<T>): string {\n const value = this.cellValue(item, column);\n return value === null || value === undefined || value === '' ? '–' : String(value);\n }\n\n protected onModeChange(mode: unknown): void {\n if (mode === 'table' || mode === 'tiles') {\n this.mode.set(mode);\n }\n }\n}\n","<div class=\"flex flex-col gap-3\">\n @if (showViewSwitch()) {\n <div class=\"flex justify-end\">\n <div\n hlmToggleGroup\n type=\"single\"\n variant=\"outline\"\n size=\"sm\"\n [nullable]=\"false\"\n [value]=\"mode()\"\n [attr.aria-label]=\"i18n.t('lt.ui.viewMode')\"\n (valueChange)=\"onModeChange($event)\"\n >\n <button hlmToggleGroupItem value=\"table\" [aria-label]=\"i18n.t('lt.ui.tableView')\" [attr.title]=\"i18n.t('lt.ui.tableView')\">\n <ng-icon name=\"lucideTable\" />\n </button>\n <button hlmToggleGroupItem value=\"tiles\" [aria-label]=\"i18n.t('lt.ui.tileView')\" [attr.title]=\"i18n.t('lt.ui.tileView')\">\n <ng-icon name=\"lucideLayoutGrid\" />\n </button>\n </div>\n </div>\n }\n\n @if (items().length === 0) {\n <p class=\"text-muted-foreground rounded-lg border border-dashed px-4 py-8 text-center text-sm\" role=\"status\">{{ emptyMessage() }}</p>\n } @else if (mode() === 'table') {\n <div hlmTableContainer>\n <table hlmTable>\n <caption class=\"sr-only\">\n {{\n label()\n }}\n </caption>\n <thead hlmTHead>\n <tr hlmTr>\n @for (column of columns(); track $index) {\n <!-- Static classes: they outrank the helm alignment, also in the SSR markup. -->\n @if (column.numeric) {\n <th hlmTh scope=\"col\" class=\"text-end\">{{ column.header }}</th>\n } @else {\n <th hlmTh scope=\"col\">{{ column.header }}</th>\n }\n }\n </tr>\n </thead>\n <tbody hlmTBody>\n @for (item of items(); track trackItem(item, $index)) {\n <tr hlmTr>\n @for (column of columns(); track $index; let col = $index) {\n @if (column.numeric) {\n <td hlmTd class=\"text-end tabular-nums\">\n <ng-container [ngTemplateOutlet]=\"cell\" [ngTemplateOutletContext]=\"{ item, column, col }\" />\n </td>\n } @else {\n <td hlmTd>\n <ng-container [ngTemplateOutlet]=\"cell\" [ngTemplateOutletContext]=\"{ item, column, col }\" />\n </td>\n }\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n } @else {\n <ul class=\"grid grid-cols-[repeat(auto-fill,minmax(min(16rem,100%),1fr))] gap-4\" role=\"list\" [attr.aria-label]=\"label()\">\n @for (item of items(); track trackItem(item, $index); let index = $index) {\n <li class=\"min-w-0\">\n @if (tileTemplate(); as tile) {\n <ng-container [ngTemplateOutlet]=\"tile.template\" [ngTemplateOutletContext]=\"{ $implicit: item, index }\" />\n } @else {\n <div hlmCard size=\"sm\" class=\"h-full\">\n <div hlmCardContent>\n <dl class=\"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-sm\">\n @for (column of columns(); track $index) {\n <dt class=\"text-muted-foreground\">{{ column.header }}</dt>\n <dd class=\"min-w-0 font-medium break-words\" [class.tabular-nums]=\"!!column.numeric\">{{ cellText(item, column) }}</dd>\n }\n </dl>\n </div>\n </div>\n }\n </li>\n }\n </ul>\n }\n</div>\n\n<ng-template #cell let-item=\"item\" let-column=\"column\" let-col=\"col\">\n @if (columnTemplates()[col]; as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item, column, value: cellValue(item, column) }\" />\n } @else {\n {{ cellText(item, column) }}\n }\n</ng-template>\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmInputGroup],hlm-input-group',\n\texportAs: 'hlmInputGroup',\n\thost: {\n\t\t'data-slot': 'input-group',\n\t\trole: 'group',\n\t},\n})\nexport class HlmInputGroup {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/20 has-[[data-slot][data-matches-spartan-invalid=true]]:border-destructive dark:has-[[data-slot][data-matches-spartan-invalid=true]]:ring-destructive/40 h-9 rounded-md border shadow-xs transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][data-matches-spartan-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto',\n\t\t);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst inputGroupAddonVariants = cva(\n\t\"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex cursor-text items-center justify-center select-none\",\n\t{\n\t\tvariants: {\n\t\t\talign: {\n\t\t\t\t'inline-start': 'ps-2 has-[>button]:-ms-1 has-[>kbd]:ms-[-0.15rem] order-first',\n\t\t\t\t'inline-end': 'pe-2 has-[>button]:-me-1 has-[>kbd]:me-[-0.15rem] order-last',\n\t\t\t\t'block-start': 'px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start',\n\t\t\t\t'block-end': 'px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\talign: 'inline-start',\n\t\t},\n\t},\n);\n\ntype InputGroupAddonVariants = VariantProps<typeof inputGroupAddonVariants>;\n\n@Directive({\n\tselector: '[hlmInputGroupAddon],hlm-input-group-addon',\n\texportAs: 'hlmInputGroupAddon',\n\thost: {\n\t\trole: 'group',\n\t\t'data-slot': 'input-group-addon',\n\t\t'[attr.data-align]': 'align()',\n\t},\n})\nexport class HlmInputGroupAddon {\n\tpublic readonly align = input<InputGroupAddonVariants['align']>('inline-start');\n\n\tconstructor() {\n\t\tclasses(() => inputGroupAddonVariants({ align: this.align() }));\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { HlmButton, provideBrnButtonConfig } from '../../button';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst inputGroupAddonVariants = cva('gap-2 text-sm flex items-center shadow-none', {\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)]\",\n\t\t\tsm: '',\n\t\t\t'icon-xs': 'size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>ng-icon]:p-0',\n\t\t\t'icon-sm': 'size-8 p-0 has-[>ng-icon]:p-0',\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: 'xs',\n\t},\n});\n\ntype InputGroupAddonVariants = VariantProps<typeof inputGroupAddonVariants>;\n\n@Directive({\n\tselector: 'button[hlmInputGroupButton]',\n\texportAs: 'hlmInputGroupButton',\n\tproviders: [\n\t\tprovideBrnButtonConfig({\n\t\t\tvariant: 'ghost',\n\t\t}),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: HlmButton,\n\t\t\tinputs: ['variant'],\n\t\t},\n\t],\n\thost: {\n\t\t'[attr.data-size]': 'size()',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class HlmInputGroupButton {\n\tpublic readonly size = input<InputGroupAddonVariants['size']>('xs');\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n\tconstructor() {\n\t\tclasses(() => inputGroupAddonVariants({ size: this.size() }));\n\t}\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BrnFieldControl, BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { BrnInput } from '@spartan-ng/brain/input';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmInput]',\n\texportAs: 'hlmInput',\n\thostDirectives: [{ directive: BrnInput, inputs: ['id', 'forceInvalid'] }, BrnFieldControlDescribedBy],\n\thost: {\n\t\t'data-slot': 'input',\n\t\t'[attr.aria-invalid]': '_ltAttr()',\n\t\t'[attr.data-invalid]': '_ltAttr()',\n\t},\n})\nexport class HlmInput {\n\tprivate readonly _ltBrn = inject(BrnInput);\n\tprivate readonly _ltField = inject(BrnFieldControl, { optional: true });\n\t/** lenne.Tech: invalid only in the error state (touched or submitted), like the red border. */\n\tprotected readonly _ltInvalid = computed(() => this._ltBrn.forceInvalid() || !!this._ltField?.spartanInvalid());\n\t/** Changes with every raw-validity change, so this binding always writes after the host directive's (see generate-helm.mjs). */\n\tprotected readonly _ltAttr = computed(() => {\n\t\tconst raw = !!this._ltField?.invalid();\n\t\treturn this._ltInvalid() ? (raw ? 'true' : true) : raw ? null : undefined;\n\t});\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t);\n\t}\n}\n","import { HlmInput } from './lib/hlm-input';\n\nexport * from './lib/hlm-input';\n\nexport const HlmInputImports = [HlmInput] as const;\n","import { Directive } from '@angular/core';\nimport { HlmInput } from '../../input';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'input[hlmInputGroupInput]',\n\texportAs: 'hlmInputGroupInput',\n\thostDirectives: [HlmInput],\n\thost: { 'data-slot': 'input-group-control' },\n})\nexport class HlmInputGroupInput {\n\tconstructor() {\n\t\tclasses(() => `rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent flex-1`);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmInputGroupText],hlm-input-group-text',\n\texportAs: 'hlmInputGroupText',\n})\nexport class HlmInputGroupText {\n\tconstructor() {\n\t\tclasses(() => \"text-muted-foreground gap-2 text-sm [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center [&_ng-icon]:pointer-events-none\");\n\t}\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BrnFieldControl, BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { BrnTextarea } from '@spartan-ng/brain/textarea';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTextarea]',\n\texportAs: 'hlmTextarea',\n\thostDirectives: [{ directive: BrnTextarea, inputs: ['id', 'forceInvalid'] }, BrnFieldControlDescribedBy],\n\thost: {\n\t\t'data-slot': 'textarea',\n\t\t'[attr.aria-invalid]': '_ltAttr()',\n\t\t'[attr.data-invalid]': '_ltAttr()',\n\t},\n})\nexport class HlmTextarea {\n\tprivate readonly _ltBrn = inject(BrnTextarea);\n\tprivate readonly _ltField = inject(BrnFieldControl, { optional: true });\n\t/** lenne.Tech: invalid only in the error state (touched or submitted), like the red border. */\n\tprotected readonly _ltInvalid = computed(() => this._ltBrn.forceInvalid() || !!this._ltField?.spartanInvalid());\n\t/** Changes with every raw-validity change, so this binding always writes after the host directive's (see generate-helm.mjs). */\n\tprotected readonly _ltAttr = computed(() => {\n\t\tconst raw = !!this._ltField?.invalid();\n\t\treturn this._ltInvalid() ? (raw ? 'true' : true) : raw ? null : undefined;\n\t});\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 rounded-md border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t);\n\t}\n}\n","import { HlmTextarea } from './lib/hlm-textarea';\n\nexport * from './lib/hlm-textarea';\n\nexport const HlmTextareaImports = [HlmTextarea] as const;\n","import { Directive } from '@angular/core';\nimport { HlmTextarea } from '../../textarea';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'textarea[hlmInputGroupTextarea]',\n\texportAs: 'hlmInputGroupTextarea',\n\thostDirectives: [HlmTextarea],\n\thost: { 'data-slot': 'input-group-control' },\n})\nexport class HlmInputGroupTextarea {\n\tconstructor() {\n\t\tclasses(() => 'rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 data-[matches-spartan-invalid=true]:ring-0 dark:bg-transparent flex-1 resize-none');\n\t}\n}\n","import { HlmInputGroup } from './lib/hlm-input-group';\nimport { HlmInputGroupAddon } from './lib/hlm-input-group-addon';\nimport { HlmInputGroupButton } from './lib/hlm-input-group-button';\nimport { HlmInputGroupInput } from './lib/hlm-input-group-input';\nimport { HlmInputGroupText } from './lib/hlm-input-group-text';\nimport { HlmInputGroupTextarea } from './lib/hlm-input-group-textarea';\n\nexport * from './lib/hlm-input-group';\nexport * from './lib/hlm-input-group-addon';\nexport * from './lib/hlm-input-group-button';\nexport * from './lib/hlm-input-group-input';\nexport * from './lib/hlm-input-group-text';\nexport * from './lib/hlm-input-group-textarea';\n\nexport const HlmInputGroupImports = [\n\tHlmInputGroup,\n\tHlmInputGroupAddon,\n\tHlmInputGroupButton,\n\tHlmInputGroupInput,\n\tHlmInputGroupText,\n\tHlmInputGroupTextarea,\n] as const;\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport interface HlmDatePickerMultiConfig<T> {\n\t/**\n\t * If true, the date picker will close when the max selection of dates is reached.\n\t */\n\tautoCloseOnMaxSelection: boolean;\n\n\t/**\n\t * Defines how the date should be displayed in the UI.\n\t *\n\t * @param dates\n\t * @returns formatted date\n\t */\n\tformatDates: (dates: T[]) => string;\n\n\t/**\n\t * Defines how the dates should be displayed while the input is focused,\n\t * i.e. the format the user is expected to type in.\n\t *\n\t * @param dates\n\t * @returns formatted dates in the input/edit format\n\t */\n\tformatInputDates: (dates: T[]) => string;\n\n\t/**\n\t * Defines how the date should be transformed before saving to model/form.\n\t *\n\t * @param dates\n\t * @returns transformed date\n\t */\n\ttransformDates: (dates: T[]) => T[];\n\n\t/**\n\t * Parse a user-entered string into a date.\n\t *\n\t * @param value the raw string from the input\n\t * @returns the parsed date, or `null` when the value can't be parsed\n\t */\n\tparseDate: (value: string) => T[] | null;\n}\n\nfunction getDefaultConfig<T>(): HlmDatePickerMultiConfig<T> {\n\treturn {\n\t\tformatDates: (dates) => dates.map((date) => (date instanceof Date ? date.toDateString() : `${date}`)).join(', '),\n\t\tformatInputDates: (dates) =>\n\t\t\tdates\n\t\t\t\t.map((date) => {\n\t\t\t\t\tif (!(date instanceof Date)) return `${date}`;\n\n\t\t\t\t\tconst day = String(date.getDate()).padStart(2, '0');\n\t\t\t\t\tconst month = String(date.getMonth() + 1).padStart(2, '0');\n\t\t\t\t\tconst year = date.getFullYear();\n\n\t\t\t\t\treturn `${day}/${month}/${year}`;\n\t\t\t\t})\n\t\t\t\t.join(', '),\n\t\ttransformDates: (dates) => dates,\n\t\tautoCloseOnMaxSelection: false,\n\t\tparseDate: (value) => {\n\t\t\tif (typeof value !== 'string') return null;\n\n\t\t\tconst parts = value.split(',').map((v) => v.trim());\n\t\t\tconst result: Date[] = [];\n\n\t\t\tfor (const part of parts) {\n\t\t\t\tconst match = part.match(/^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/);\n\t\t\t\tif (!match) return null;\n\n\t\t\t\tconst day = Number(match[1]);\n\t\t\t\tconst month = Number(match[2]);\n\t\t\t\tconst year = Number(match[3]);\n\n\t\t\t\tif (month < 1 || month > 12) return null;\n\t\t\t\tif (day < 1 || day > 31) return null;\n\n\t\t\t\tconst date = new Date(year, month - 1, day);\n\n\t\t\t\tif (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tresult.push(date);\n\t\t\t}\n\n\t\t\treturn result as T[];\n\t\t},\n\t};\n}\n\nconst HlmDatePickerMultiConfigToken = new InjectionToken<HlmDatePickerMultiConfig<unknown>>('HlmDatePickerMultiConfig');\n\nexport function provideHlmDatePickerMultiConfig<T>(config: Partial<HlmDatePickerMultiConfig<T>>): ValueProvider {\n\treturn { provide: HlmDatePickerMultiConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDatePickerMultiConfig<T>(): HlmDatePickerMultiConfig<T> {\n\tconst injectedConfig = inject(HlmDatePickerMultiConfigToken, { optional: true });\n\treturn injectedConfig ? (injectedConfig as HlmDatePickerMultiConfig<T>) : getDefaultConfig();\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCalendar, lucideX } from '@ng-icons/lucide';\nimport {\n\tBrnDateInput,\n\ttype BrnDatePickerTriggerBase,\n\tprovideBrnDatePickerTrigger,\n} from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl } from '@spartan-ng/brain/field';\nimport { HlmInputGroup, HlmInputGroupImports } from '../../input-group';\nimport { injectHlmDatePickerMultiConfig } from './hlm-date-picker-multi.token';\n\n@Component({\n\tselector: 'hlm-date-multi-input',\n\texportAs: 'hlmDateMultiInput',\n\timports: [HlmInputGroupImports, NgIcon],\n\tproviders: [provideIcons({ lucideCalendar, lucideX }), provideBrnDatePickerTrigger(HlmDateMultiInput)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [HlmInputGroup],\n\ttemplate: `\n\t\t<input\n\t\t\t#input\n\t\t\thlmInputGroupInput\n\t\t\t[value]=\"_inputValue()\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-touched]=\"_touched?.() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n\t\t\t(click)=\"_handleClick()\"\n\t\t\t(keydown.arrowDown)=\"_open()\"\n\t\t\t(keydown.enter)=\"_handleEnter($event)\"\n\t\t\t(input)=\"_handleInputChange($event)\"\n\t\t\t(focus)=\"_handleFocus()\"\n\t\t\t(blur)=\"_handleBlur()\"\n\t\t/>\n\t\t<hlm-input-group-addon align=\"inline-end\">\n\t\t\t@if (_showClearButton()) {\n\t\t\t\t<button\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t[attr.aria-label]=\"clearAriaLabel()\"\n\t\t\t\t\t(click)=\"_clear()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button\n\t\t\t\thlmInputGroupButton\n\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t[attr.aria-label]=\"calendarAriaLabel()\"\n\t\t\t\t(click)=\"_popover().open()\"\n\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t>\n\t\t\t\t<ng-icon name=\"lucideCalendar\" />\n\t\t\t</button>\n\t\t</hlm-input-group-addon>\n\t`,\n})\nexport class HlmDateMultiInput<T> extends BrnDateInput<T[]> implements BrnDatePickerTriggerBase {\n\tprivate readonly _config = injectHlmDatePickerMultiConfig<T>();\n\tprivate readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\n\tprivate readonly _invalid = this._fieldControl?.invalid;\n\tprotected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\tprotected readonly _dirty = this._fieldControl?.dirty;\n\tprotected readonly _touched = this._fieldControl?.touched;\n\n\tprotected readonly _ariaInvalid = computed(() => (this._invalid?.() ? 'true' : null));\n\t/**\n\t * Parses input text into dates. Return `null` for invalid input - the\n\t * picker's dates are cleared while the text is preserved so the user can\n\t * fix it.\n\t *\n\t * Defaults to `parseDate` from `HlmDatePickerMultiConfig`.\n\t */\n\tpublic readonly parseDate = input<(value: string) => T[] | null>(this._config.parseDate);\n\n\t/**\n\t * Formats the current dates into the input/edit format shown while the\n\t * input is focused. On blur the picker's display format is restored.\n\t *\n\t * Defaults to `formatInputDates` from `HlmDatePickerMultiConfig`.\n\t */\n\tpublic readonly formatInputDates = input<(dates: T[]) => string>(this._config.formatInputDates);\n\n\tprotected override parseValue(value: string): T[] | null {\n\t\treturn this.parseDate()(value);\n\t}\n\n\tprotected override formatInputValue(value: T[]): string {\n\t\treturn this.formatInputDates()(value);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopover, provideBrnPopoverConfig, provideBrnPopoverDefaultOptions } from '@spartan-ng/brain/popover';\nimport { BrnSelect } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelect],hlm-select',\n\texportAs: 'hlmSelect',\n\tproviders: [\n\t\tprovideBrnPopoverConfig({\n\t\t\talign: 'start',\n\t\t\tsideOffset: 6,\n\t\t}),\n\t\tprovideBrnPopoverDefaultOptions({ role: null }),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnSelect,\n\t\t\tinputs: ['disabled', 'value', 'isItemEqualToValue', 'itemToString'],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'closeOnOutsidePointerEvents', 'sideOffset', 'state', 'offsetX', 'scrollStrategy'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'select' },\n})\nexport class HlmSelect {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnSelectScrollDown } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-select-scroll-down',\n\texportAs: 'hlmSelectScrollDown',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronDown })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnSelectScrollDown],\n\ttemplate: `\n\t\t<ng-icon name=\"lucideChevronDown\" />\n\t`,\n})\nexport class HlmSelectScrollDown {\n\tconstructor() {\n\t\tclasses(() => \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] sticky bottom-0 w-full data-hidden:hidden\");\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronUp } from '@ng-icons/lucide';\nimport { BrnSelectScrollUp } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-select-scroll-up',\n\texportAs: 'hlmSelectScrollUp',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronUp })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnSelectScrollUp],\n\ttemplate: `\n\t\t<ng-icon name=\"lucideChevronUp\" />\n\t`,\n})\nexport class HlmSelectScrollUp {\n\tconstructor() {\n\t\tclasses(() => \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] sticky top-0 w-full data-hidden:hidden\");\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnSelectContent, BrnSelectList } from '@spartan-ng/brain/select';\nimport { classes, hlm } from '../../utils';\nimport { HlmSelectScrollDown } from './hlm-select-scroll-down';\nimport { HlmSelectScrollUp } from './hlm-select-scroll-up';\n\n@Component({\n\tselector: 'hlm-select-content',\n\texportAs: 'hlmSelectContent',\n\timports: [HlmSelectScrollUp, HlmSelectScrollDown, BrnSelectList],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnSelectContent],\n\ttemplate: `\n\t\t@if (showScroll()) {\n\t\t\t<hlm-select-scroll-up />\n\t\t}\n\n\t\t<div brnSelectList [class]=\"_computedListboxClasses()\">\n\t\t\t<ng-content />\n\t\t</div>\n\n\t\t@if (showScroll()) {\n\t\t\t<hlm-select-scroll-down />\n\t\t}\n\t`,\n})\nexport class HlmSelectContent {\n\tprotected readonly _computedListboxClasses = computed(() => hlm('flex flex-col'));\n\n\tpublic readonly showScroll = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\tclasses(() => 'bg-popover no-scrollbar text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 max-h-72 min-w-36 flex-col rounded-md shadow-md ring-1 duration-100 relative flex w-(--brn-select-width) overflow-x-hidden overflow-y-auto');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSelectGroup } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelectGroup],hlm-select-group',\n\texportAs: 'hlmSelectGroup',\n\thostDirectives: [{ directive: BrnSelectGroup }],\n\thost: { 'data-slot': 'select-group' },\n})\nexport class HlmSelectGroup {\n\tconstructor() {\n\t\tclasses(() => 'scroll-my-1 p-1');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { BrnSelectItem } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-select-item',\n\texportAs: 'hlmSelectItem',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnSelectItem, inputs: ['id', 'disabled', 'value'] }],\n\thost: { 'data-slot': 'select-item' },\n\ttemplate: `\n\t\t<ng-content />\n\t\t@if (_active()) {\n\t\t\t<ng-icon name=\"lucideCheck\" class=\"absolute end-2 flex items-center justify-center text-[length:--spacing(4)]\" aria-hidden=\"true\" />\n\t\t}\n\t`,\n})\nexport class HlmSelectItem {\n\tprivate readonly _brnSelectItem = inject(BrnSelectItem);\n\n\tprotected readonly _active = this._brnSelectItem.active;\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSelectLabel } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelectLabel],hlm-select-label',\n\texportAs: 'hlmSelectLabel',\n\thostDirectives: [{ directive: BrnSelectLabel, inputs: ['id'] }],\n\thost: { 'data-slot': 'select-label' },\n})\nexport class HlmSelectLabel {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground px-2 py-1.5 text-xs flex');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopover, provideBrnPopoverConfig, provideBrnPopoverDefaultOptions } from '@spartan-ng/brain/popover';\nimport { BrnSelectMultiple } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelectMultiple],hlm-select-multiple',\n\texportAs: 'hlmSelectMultiple',\n\tproviders: [\n\t\tprovideBrnPopoverConfig({\n\t\t\talign: 'start',\n\t\t\tsideOffset: 6,\n\t\t}),\n\t\tprovideBrnPopoverDefaultOptions({ role: null }),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnSelectMultiple,\n\t\t\tinputs: ['disabled', 'value', 'isItemEqualToValue', 'itemToString'],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'closeOnOutsidePointerEvents', 'sideOffset', 'state', 'offsetX', 'scrollStrategy'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'select' },\n})\nexport class HlmSelectMultiple {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSelectPlaceholder } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelectPlaceholder],hlm-select-placeholder',\n\texportAs: 'hlmSelectPlaceholder',\n\thostDirectives: [BrnSelectPlaceholder],\n\thost: { 'data-slot': 'select-placeholder' },\n})\nexport class HlmSelectPlaceholder {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"gap-2 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center data-hidden:hidden [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverContent } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmSelectPortal]',\n\texportAs: 'hlmSelectPortal',\n\thostDirectives: [{ directive: BrnPopoverContent, inputs: ['context', 'class'] }],\n})\nexport class HlmSelectPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnSelectSeparator } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelectSeparator],hlm-select-separator',\n\texportAs: 'hlmSelectSeparator',\n\thostDirectives: [{ directive: BrnSelectSeparator, inputs: ['orientation'] }],\n\thost: { 'data-slot': 'select-separator' },\n})\nexport class HlmSelectSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-border -mx-1 my-1 h-px pointer-events-none');\n\t}\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { BrnSelectTrigger } from '@spartan-ng/brain/select';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-select-trigger',\n\texportAs: 'hlmSelectTrigger',\n\timports: [NgIcon, BrnSelectTrigger, BrnFieldControlDescribedBy],\n\tproviders: [provideIcons({ lucideChevronDown })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<button\n\t\t\tbrnSelectTrigger\n\t\t\tbrnFieldControlDescribedBy\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[id]=\"buttonId()\"\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[aria-invalid]=\"ariaInvalidInput()\"\n\t\t\t[attr.data-size]=\"size()\"\n\t\t\tdata-slot=\"select-trigger\"\n\t\t>\n\t\t\t<ng-content />\n\t\t\t<ng-icon name=\"lucideChevronDown\" class=\"text-muted-foreground text-[length:--spacing(4)] ms-auto\" />\n\t\t</button>\n\t`,\n})\nexport class HlmSelectTrigger {\n\tprivate static _id = 0;\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 gap-1.5 rounded-md border bg-transparent py-2 ps-2.5 pe-2 text-sm shadow-xs transition-[color,box-shadow] focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:gap-1.5 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n\t\t\tthis.userClass(),\n\t\t),\n\t);\n\n\tpublic readonly buttonId = input<string>(`hlm-select-trigger-${HlmSelectTrigger._id++}`);\n\n\tpublic readonly size = input<'default' | 'sm'>('default');\n\n\t/** Whether to force the trigger into an invalid state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Manual override for aria-invalid. When not set, auto-detects from the parent autocomplete error state. */\n\tpublic readonly ariaInvalidInput = input<boolean | undefined, BooleanInput>(undefined, {\n\t\ttransform: (v: BooleanInput) => (v === '' || v === undefined ? undefined : booleanAttribute(v)),\n\t\talias: 'aria-invalid',\n\t});\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnSelectValue } from '@spartan-ng/brain/select';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSelectValue],hlm-select-value',\n\texportAs: 'hlmSelectValue',\n\thostDirectives: [{ directive: BrnSelectValue, inputs: ['placeholder'] }],\n\thost: { '[attr.data-slot]': '!_hidden() ? \"select-value\" : null' },\n})\nexport class HlmSelectValue {\n\tprivate readonly _brnSelectValue = inject(BrnSelectValue);\n\n\tprotected readonly _hidden = this._brnSelectValue.hidden;\n\n\tconstructor() {\n\t\tclasses(() => 'data-hidden:hidden');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSelectValueTemplate } from '@spartan-ng/brain/select';\n\n@Directive({\n\tselector: '[hlmSelectValueTemplate]',\n\texportAs: 'hlmSelectValueTemplate',\n\thostDirectives: [BrnSelectValueTemplate],\n})\nexport class HlmSelectValueTemplate {}\n","import { Directive } from '@angular/core';\nimport { BrnSelectValues } from '@spartan-ng/brain/select';\n\n@Directive({ selector: '[hlmSelectValues]', exportAs: 'hlmSelectValues', hostDirectives: [BrnSelectValues] })\nexport class HlmSelectValues {}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({ selector: '[hlmSelectValuesContent],hlm-select-values-content', exportAs: 'hlmSelectValuesContent' })\nexport class HlmSelectValuesContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex');\n\t}\n}\n","import { HlmSelect } from './lib/hlm-select';\nimport { HlmSelectContent } from './lib/hlm-select-content';\nimport { HlmSelectGroup } from './lib/hlm-select-group';\nimport { HlmSelectItem } from './lib/hlm-select-item';\nimport { HlmSelectLabel } from './lib/hlm-select-label';\nimport { HlmSelectMultiple } from './lib/hlm-select-multiple';\nimport { HlmSelectPlaceholder } from './lib/hlm-select-placeholder';\nimport { HlmSelectPortal } from './lib/hlm-select-portal';\nimport { HlmSelectScrollDown } from './lib/hlm-select-scroll-down';\nimport { HlmSelectScrollUp } from './lib/hlm-select-scroll-up';\nimport { HlmSelectSeparator } from './lib/hlm-select-separator';\nimport { HlmSelectTrigger } from './lib/hlm-select-trigger';\nimport { HlmSelectValue } from './lib/hlm-select-value';\nimport { HlmSelectValueTemplate } from './lib/hlm-select-value-template';\nimport { HlmSelectValues } from './lib/hlm-select-values';\nimport { HlmSelectValuesContent } from './lib/hlm-select-values-content';\n\nexport * from './lib/hlm-select';\nexport * from './lib/hlm-select-content';\nexport * from './lib/hlm-select-group';\nexport * from './lib/hlm-select-item';\nexport * from './lib/hlm-select-label';\nexport * from './lib/hlm-select-multiple';\nexport * from './lib/hlm-select-placeholder';\nexport * from './lib/hlm-select-portal';\nexport * from './lib/hlm-select-scroll-down';\nexport * from './lib/hlm-select-scroll-up';\nexport * from './lib/hlm-select-separator';\nexport * from './lib/hlm-select-trigger';\nexport * from './lib/hlm-select-value';\nexport * from './lib/hlm-select-value-template';\nexport * from './lib/hlm-select-values';\nexport * from './lib/hlm-select-values-content';\n\nexport const HlmSelectImports = [\n\tHlmSelect,\n\tHlmSelectContent,\n\tHlmSelectGroup,\n\tHlmSelectItem,\n\tHlmSelectLabel,\n\tHlmSelectMultiple,\n\tHlmSelectPlaceholder,\n\tHlmSelectPortal,\n\tHlmSelectScrollDown,\n\tHlmSelectScrollUp,\n\tHlmSelectSeparator,\n\tHlmSelectTrigger,\n\tHlmSelectValue,\n\tHlmSelectValues,\n\tHlmSelectValuesContent,\n\tHlmSelectValueTemplate,\n] as const;\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { BrnCalendar, BrnCalendarImports, injectBrnCalendarI18n } from '@spartan-ng/brain/calendar';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { buttonVariants, HlmButtonImports } from '../../button';\nimport { HlmSelectImports } from '../../select';\nimport { classes, hlm } from '../../utils';\n\n@Component({\n\tselector: 'hlm-calendar',\n\texportAs: 'hlmCalendar',\n\timports: [BrnCalendarImports, NgIcon, HlmSelectImports, NgTemplateOutlet, HlmButtonImports],\n\tviewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCalendar,\n\t\t\tinputs: ['min', 'max', 'disabled', 'date', 'dateDisabled', 'weekStartsOn', 'highlightDays', 'defaultFocusedDate'],\n\t\t\toutputs: ['dateChange'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'calendar' },\n\ttemplate: `\n\t\t<div class=\"inline-flex flex-col gap-4\">\n\t\t\t<!-- Header -->\n\t\t\t<div class=\"flex w-full items-center justify-between gap-1.5\">\n\t\t\t\t<ng-template #month>\n\t\t\t\t\t<hlm-select brnCalendarMonthSelect class=\"order-1\">\n\t\t\t\t\t\t<hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n\t\t\t\t\t\t\t<hlm-select-value />\n\t\t\t\t\t\t</hlm-select-trigger>\n\t\t\t\t\t\t<hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n\t\t\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t\t\t@for (month of _i18n.config().months(); track month) {\n\t\t\t\t\t\t\t\t\t<hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</hlm-select-group>\n\t\t\t\t\t\t</hlm-select-content>\n\t\t\t\t\t</hlm-select>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #year>\n\t\t\t\t\t<hlm-select brnCalendarYearSelect class=\"order-3\">\n\t\t\t\t\t\t<hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n\t\t\t\t\t\t\t<hlm-select-value />\n\t\t\t\t\t\t</hlm-select-trigger>\n\t\t\t\t\t\t<hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n\t\t\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t\t\t@for (year of _i18n.config().years(); track year) {\n\t\t\t\t\t\t\t\t\t<hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</hlm-select-group>\n\t\t\t\t\t\t</hlm-select-content>\n\t\t\t\t\t</hlm-select>\n\t\t\t\t</ng-template>\n\t\t\t\t@let heading = _heading();\n\n\t\t\t\t<button\n\t\t\t\t\tbrnCalendarPreviousButton\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\thlmBtn\n\t\t\t\t\tclass=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\n\t\t\t\t@switch (captionLayout()) {\n\t\t\t\t\t@case ('dropdown') {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"month\" />\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"year\" />\n\t\t\t\t\t}\n\t\t\t\t\t@case ('dropdown-months') {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"month\" />\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n\t\t\t\t\t}\n\t\t\t\t\t@case ('dropdown-years') {\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"year\" />\n\t\t\t\t\t}\n\t\t\t\t\t@case ('label') {\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t<button\n\t\t\t\t\tbrnCalendarNextButton\n\t\t\t\t\thlmBtn\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n\t\t\t\t<thead aria-hidden=\"true\">\n\t\t\t\t\t<tr class=\"flex\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t*brnCalendarWeekday=\"let weekday\"\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\tclass=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ _i18n.config().formatWeekdayName(weekday) }}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\n\t\t\t\t<tbody role=\"rowgroup\">\n\t\t\t\t\t<tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n\t\t\t\t\t\t@for (date of week; track _dateAdapter.getTime(date)) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tbrnCalendarCell\n\t\t\t\t\t\t\t\tclass=\"group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n\t\t\t\t\t\t\t\t\t{{ _dateAdapter.getDate(date) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t`,\n})\nexport class HlmCalendar<T> {\n\t/** Access the calendar i18n */\n\tprotected readonly _i18n = injectBrnCalendarI18n();\n\n\t/** Access the date time adapter */\n\tprotected readonly _dateAdapter = injectDateAdapter<T>();\n\n\t/** Show dropdowns to navigate between months or years. */\n\tpublic readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n\t/** Access the calendar directive */\n\tprivate readonly _calendar = inject(BrnCalendar);\n\n\t/** Get the heading for the current month and year */\n\tprotected readonly _heading = computed(() => {\n\t\tconst config = this._i18n.config();\n\t\tconst date = this._calendar.focusedDate();\n\n\t\treturn {\n\t\t\theader: config.formatHeader(this._dateAdapter.getMonth(date), this._dateAdapter.getYear(date)),\n\t\t\tmonth: config.formatMonth(this._dateAdapter.getMonth(date)),\n\t\t\tyear: config.formatYear(this._dateAdapter.getYear(date)),\n\t\t};\n\t});\n\n\tprotected readonly _btnClass = hlm(\n\t\tbuttonVariants({ variant: 'ghost', size: 'icon' }),\n\t\t'data-[today=true]:bg-muted group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:bg-muted/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70',\n\t\t'data-[outside=true]:opacity-50',\n\t\t\"data-[highlighted]:before:content-['']\",\n\t\t'data-[highlighted]:before:absolute',\n\t\t'data-[highlighted]:before:bottom-1',\n\t\t'data-[highlighted]:before:start-1/2',\n\t\t'data-[highlighted]:before:h-1',\n\t\t'data-[highlighted]:before:w-1',\n\t\t'data-[highlighted]:before:-translate-x-1/2',\n\t\t'data-[highlighted]:before:rounded-full',\n\t\t'data-[highlighted]:before:bg-destructive',\n\t);\n\n\tprotected readonly _selectClass = 'gap-0 px-1.5 py-2 [&>ng-icon]:ms-1';\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n\t\t);\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { BrnCalendarImports, BrnCalendarMulti, injectBrnCalendarI18n } from '@spartan-ng/brain/calendar';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { buttonVariants, HlmButtonImports } from '../../button';\nimport { HlmSelectImports } from '../../select';\nimport { classes, hlm } from '../../utils';\n\n@Component({\n\tselector: 'hlm-calendar-multi',\n\texportAs: 'hlmCalendarMulti',\n\timports: [BrnCalendarImports, NgIcon, NgTemplateOutlet, HlmSelectImports, HlmButtonImports],\n\tviewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCalendarMulti,\n\t\t\tinputs: [\n\t\t\t\t'min',\n\t\t\t\t'max',\n\t\t\t\t'minSelection',\n\t\t\t\t'maxSelection',\n\t\t\t\t'disabled',\n\t\t\t\t'date',\n\t\t\t\t'dateDisabled',\n\t\t\t\t'weekStartsOn',\n\t\t\t\t'highlightDays',\n\t\t\t\t'defaultFocusedDate',\n\t\t\t],\n\t\t\toutputs: ['dateChange'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'calendar' },\n\ttemplate: `\n\t\t<div class=\"inline-flex flex-col space-y-4\">\n\t\t\t<!-- Header -->\n\t\t\t<div class=\"flex w-full items-center justify-between gap-1.5\">\n\t\t\t\t<ng-template #month>\n\t\t\t\t\t<hlm-select brnCalendarMonthSelect class=\"order-1\">\n\t\t\t\t\t\t<hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n\t\t\t\t\t\t\t<hlm-select-value />\n\t\t\t\t\t\t</hlm-select-trigger>\n\t\t\t\t\t\t<hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n\t\t\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t\t\t@for (month of _i18n.config().months(); track month) {\n\t\t\t\t\t\t\t\t\t<hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</hlm-select-group>\n\t\t\t\t\t\t</hlm-select-content>\n\t\t\t\t\t</hlm-select>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #year>\n\t\t\t\t\t<hlm-select brnCalendarYearSelect class=\"order-3\">\n\t\t\t\t\t\t<hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n\t\t\t\t\t\t\t<hlm-select-value />\n\t\t\t\t\t\t</hlm-select-trigger>\n\t\t\t\t\t\t<hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n\t\t\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t\t\t@for (year of _i18n.config().years(); track year) {\n\t\t\t\t\t\t\t\t\t<hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</hlm-select-group>\n\t\t\t\t\t\t</hlm-select-content>\n\t\t\t\t\t</hlm-select>\n\t\t\t\t</ng-template>\n\t\t\t\t@let heading = _heading();\n\n\t\t\t\t<button\n\t\t\t\t\tbrnCalendarPreviousButton\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\thlmBtn\n\t\t\t\t\tclass=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\n\t\t\t\t@switch (captionLayout()) {\n\t\t\t\t\t@case ('dropdown') {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"month\" />\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"year\" />\n\t\t\t\t\t}\n\t\t\t\t\t@case ('dropdown-months') {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"month\" />\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n\t\t\t\t\t}\n\t\t\t\t\t@case ('dropdown-years') {\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"year\" />\n\t\t\t\t\t}\n\t\t\t\t\t@case ('label') {\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t<button\n\t\t\t\t\tbrnCalendarNextButton\n\t\t\t\t\thlmBtn\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<table class=\"w-full border-collapse\" brnCalendarGrid>\n\t\t\t\t<thead aria-hidden=\"true\">\n\t\t\t\t\t<tr class=\"flex\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t*brnCalendarWeekday=\"let weekday\"\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\tclass=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ _i18n.config().formatWeekdayName(weekday) }}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\n\t\t\t\t<tbody role=\"rowgroup\">\n\t\t\t\t\t<tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n\t\t\t\t\t\t@for (date of week; track _dateAdapter.getTime(date)) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tbrnCalendarCell\n\t\t\t\t\t\t\t\tclass=\"group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n\t\t\t\t\t\t\t\t\t{{ _dateAdapter.getDate(date) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t`,\n})\nexport class HlmCalendarMulti<T> {\n\t/** Show dropdowns to navigate between months or years. */\n\tpublic readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n\t/** Access the calendar i18n */\n\tprotected readonly _i18n = injectBrnCalendarI18n();\n\n\t/** Access the date time adapter */\n\tprotected readonly _dateAdapter = injectDateAdapter<T>();\n\n\t/** Access the calendar directive */\n\tprivate readonly _calendar = inject(BrnCalendarMulti);\n\n\t/** Get the heading for the current month and year */\n\tprotected readonly _heading = computed(() => {\n\t\tconst config = this._i18n.config();\n\t\tconst date = this._calendar.focusedDate();\n\n\t\treturn {\n\t\t\theader: config.formatHeader(this._dateAdapter.getMonth(date), this._dateAdapter.getYear(date)),\n\t\t\tmonth: config.formatMonth(this._dateAdapter.getMonth(date)),\n\t\t\tyear: config.formatYear(this._dateAdapter.getYear(date)),\n\t\t};\n\t});\n\n\tprotected readonly _btnClass = hlm(\n\t\tbuttonVariants({ variant: 'ghost', size: 'icon' }),\n\t\t'data-[today=true]:bg-muted group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:bg-muted/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70',\n\t\t'data-[outside=true]:opacity-50',\n\t\t\"data-[highlighted]:before:content-['']\",\n\t\t'data-[highlighted]:before:absolute',\n\t\t'data-[highlighted]:before:bottom-1',\n\t\t'data-[highlighted]:before:start-1/2',\n\t\t'data-[highlighted]:before:h-1',\n\t\t'data-[highlighted]:before:w-1',\n\t\t'data-[highlighted]:before:-translate-x-1/2',\n\t\t'data-[highlighted]:before:rounded-full',\n\t\t'data-[highlighted]:before:bg-destructive',\n\t);\n\n\tprotected readonly _selectClass = 'gap-0 px-1.5 py-2 [&>ng-icon]:ms-1';\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n\t\t);\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { BrnCalendarImports, BrnCalendarRange, injectBrnCalendarI18n } from '@spartan-ng/brain/calendar';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { buttonVariants, HlmButtonImports } from '../../button';\nimport { HlmSelectImports } from '../../select';\nimport { classes, hlm } from '../../utils';\n\n@Component({\n\tselector: 'hlm-calendar-range',\n\texportAs: 'hlmCalendarRange',\n\timports: [BrnCalendarImports, NgIcon, HlmSelectImports, NgTemplateOutlet, HlmButtonImports],\n\tviewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCalendarRange,\n\t\t\tinputs: [\n\t\t\t\t'min',\n\t\t\t\t'max',\n\t\t\t\t'disabled',\n\t\t\t\t'startDate',\n\t\t\t\t'endDate',\n\t\t\t\t'dateDisabled',\n\t\t\t\t'weekStartsOn',\n\t\t\t\t'highlightDays',\n\t\t\t\t'defaultFocusedDate',\n\t\t\t],\n\t\t\toutputs: ['endDateChange', 'startDateChange'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'calendar' },\n\ttemplate: `\n\t\t<div class=\"inline-flex flex-col space-y-4\">\n\t\t\t<!-- Header -->\n\t\t\t<div class=\"flex w-full items-center justify-between gap-1.5\">\n\t\t\t\t<ng-template #month>\n\t\t\t\t\t<hlm-select brnCalendarMonthSelect class=\"order-1\">\n\t\t\t\t\t\t<hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n\t\t\t\t\t\t\t<hlm-select-value />\n\t\t\t\t\t\t</hlm-select-trigger>\n\t\t\t\t\t\t<hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n\t\t\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t\t\t@for (month of _i18n.config().months(); track month) {\n\t\t\t\t\t\t\t\t\t<hlm-select-item [value]=\"month\">{{ month }}</hlm-select-item>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</hlm-select-group>\n\t\t\t\t\t\t</hlm-select-content>\n\t\t\t\t\t</hlm-select>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #year>\n\t\t\t\t\t<hlm-select brnCalendarYearSelect class=\"order-3\">\n\t\t\t\t\t\t<hlm-select-trigger size=\"sm\" [class]=\"_selectClass\">\n\t\t\t\t\t\t\t<hlm-select-value />\n\t\t\t\t\t\t</hlm-select-trigger>\n\t\t\t\t\t\t<hlm-select-content *hlmSelectPortal class=\"max-h-80\">\n\t\t\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t\t\t@for (year of _i18n.config().years(); track year) {\n\t\t\t\t\t\t\t\t\t<hlm-select-item [value]=\"year\">{{ year }}</hlm-select-item>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</hlm-select-group>\n\t\t\t\t\t\t</hlm-select-content>\n\t\t\t\t\t</hlm-select>\n\t\t\t\t</ng-template>\n\t\t\t\t@let heading = _heading();\n\n\t\t\t\t<button\n\t\t\t\t\tbrnCalendarPreviousButton\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\thlmBtn\n\t\t\t\t\tclass=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\n\t\t\t\t@switch (captionLayout()) {\n\t\t\t\t\t@case ('dropdown') {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"month\" />\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"year\" />\n\t\t\t\t\t}\n\t\t\t\t\t@case ('dropdown-months') {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"month\" />\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-4 text-sm font-medium\">{{ heading.year }}</div>\n\t\t\t\t\t}\n\t\t\t\t\t@case ('dropdown-years') {\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-2 text-sm font-medium\">{{ heading.month }}</div>\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"year\" />\n\t\t\t\t\t}\n\t\t\t\t\t@case ('label') {\n\t\t\t\t\t\t<div brnCalendarHeader class=\"order-5 text-sm font-medium\">{{ heading.header }}</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t<button\n\t\t\t\t\tbrnCalendarNextButton\n\t\t\t\t\thlmBtn\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n\t\t\t\t<thead aria-hidden=\"true\">\n\t\t\t\t\t<tr class=\"flex\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t*brnCalendarWeekday=\"let weekday\"\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\tclass=\"text-muted-foreground flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal select-none\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"_i18n.config().labelWeekday(weekday)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ _i18n.config().formatWeekdayName(weekday) }}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\n\t\t\t\t<tbody role=\"rowgroup\">\n\t\t\t\t\t<tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n\t\t\t\t\t\t@for (date of week; track _dateAdapter.getTime(date)) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tbrnCalendarCell\n\t\t\t\t\t\t\t\tclass=\"group/day has-[button[data-range-start=true]]:bg-muted has-[button[data-range-start=true]]:after:bg-muted has-[button[data-range-end=true]]:bg-muted has-[button[data-range-end=true]]:after:bg-muted relative isolate z-0 aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none has-[button[data-range-end=true]]:rounded-e-(--cell-radius) has-[button[data-range-end=true]]:after:absolute has-[button[data-range-end=true]]:after:inset-y-0 has-[button[data-range-end=true]]:after:start-0 has-[button[data-range-end=true]]:after:w-4 has-[button[data-range-start=true]]:rounded-s-(--cell-radius) has-[button[data-range-start=true]]:after:absolute has-[button[data-range-start=true]]:after:inset-y-0 has-[button[data-range-start=true]]:after:end-0 has-[button[data-range-start=true]]:after:w-4 [&:first-child[data-selected=true]_button]:rounded-s-(--cell-radius) [&:last-child[data-selected=true]_button]:rounded-e-(--cell-radius)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n\t\t\t\t\t\t\t\t\t{{ _dateAdapter.getDate(date) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t`,\n})\nexport class HlmCalendarRange<T> {\n\t/** Show dropdowns to navigate between months or years. */\n\tpublic readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n\t/** Access the calendar i18n */\n\tprotected readonly _i18n = injectBrnCalendarI18n();\n\n\t/** Access the date time adapter */\n\tprotected readonly _dateAdapter = injectDateAdapter<T>();\n\n\t/** Access the calendar directive */\n\tprivate readonly _calendar = inject(BrnCalendarRange);\n\n\t/** Get the heading for the current month and year */\n\tprotected readonly _heading = computed(() => {\n\t\tconst config = this._i18n.config();\n\t\tconst date = this._calendar.focusedDate();\n\n\t\treturn {\n\t\t\theader: config.formatHeader(this._dateAdapter.getMonth(date), this._dateAdapter.getYear(date)),\n\t\t\tmonth: config.formatMonth(this._dateAdapter.getMonth(date)),\n\t\t\tyear: config.formatYear(this._dateAdapter.getYear(date)),\n\t\t};\n\t});\n\n\tprotected readonly _btnClass = hlm(\n\t\tbuttonVariants({ variant: 'ghost', size: 'icon' }),\n\t\t'data-[today=true]:bg-muted group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:bg-muted/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-e-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-s-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70',\n\t\t'data-[outside=true]:opacity-50',\n\t\t\"data-[highlighted]:before:content-['']\",\n\t\t'data-[highlighted]:before:absolute',\n\t\t'data-[highlighted]:before:bottom-1',\n\t\t'data-[highlighted]:before:start-1/2',\n\t\t'data-[highlighted]:before:h-1',\n\t\t'data-[highlighted]:before:w-1',\n\t\t'data-[highlighted]:before:-translate-x-1/2',\n\t\t'data-[highlighted]:before:rounded-full',\n\t\t'data-[highlighted]:before:bg-destructive',\n\t);\n\n\tprotected readonly _selectClass = 'gap-0 px-1.5 py-2 [&>ng-icon]:ms-1';\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { BrnCalendarImports, BrnMonthYearCalendar, injectBrnCalendarI18n } from '@spartan-ng/brain/calendar';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { buttonVariants, HlmButtonImports } from '../../button';\nimport { classes, hlm } from '../../utils';\n\n@Component({\n\tselector: 'hlm-month-year-calendar',\n\texportAs: 'hlmMonthYearCalendar',\n\timports: [BrnCalendarImports, NgIcon, HlmButtonImports],\n\tviewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnMonthYearCalendar,\n\t\t\tinputs: ['min', 'max', 'disabled', 'date', 'defaultFocusedDate', 'view'],\n\t\t\toutputs: ['dateChange'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'month-year-calendar' },\n\ttemplate: `\n\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t<!-- Header -->\n\t\t\t<div class=\"flex w-full items-center justify-between gap-1.5\">\n\t\t\t\t<button\n\t\t\t\t\tbrnMonthYearCalendarPreviousButton\n\t\t\t\t\thlmBtn\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"order-first size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\n\t\t\t\t<button\n\t\t\t\t\thlmBtn\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"h-(--cell-size) py-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t\tbrnMonthYearCalendarHeader\n\t\t\t\t>\n\t\t\t\t\t{{ _heading() }}\n\t\t\t\t</button>\n\n\t\t\t\t<button\n\t\t\t\t\tbrnMonthYearCalendarNextButton\n\t\t\t\t\thlmBtn\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"order-last size-(--cell-size) p-0 select-none aria-disabled:opacity-50\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<!-- Grid -->\n\t\t\t@switch (_picker.view()) {\n\t\t\t\t@case ('year') {\n\t\t\t\t\t<div brnMonthYearCalendarGrid class=\"grid grid-cols-4 gap-2\">\n\t\t\t\t\t\t@for (year of _picker.years(); track _dateAdapter.getYear(year)) {\n\t\t\t\t\t\t\t<button brnMonthYearCalendarYearButton [date]=\"year\" [class]=\"_btnClass\">\n\t\t\t\t\t\t\t\t{{ _i18n.config().formatYear(_dateAdapter.getYear(year)) }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@case ('month') {\n\t\t\t\t\t<div brnMonthYearCalendarGrid class=\"grid grid-cols-4 gap-2\">\n\t\t\t\t\t\t@for (month of _picker.months(); track _dateAdapter.getMonth(month)) {\n\t\t\t\t\t\t\t<button brnMonthYearCalendarMonthButton [date]=\"month\" [class]=\"_btnClass\">\n\t\t\t\t\t\t\t\t{{ _i18n.config().months()[_dateAdapter.getMonth(month)] }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n})\nexport class HlmMonthYearCalendar<T> {\n\t/** Access the calendar i18n */\n\tprotected readonly _i18n = injectBrnCalendarI18n();\n\n\t/** Access the date adapter */\n\tprotected readonly _dateAdapter = injectDateAdapter<T>();\n\n\t/** Access the picker directive */\n\tprotected readonly _picker = inject(BrnMonthYearCalendar<T>);\n\n\t/** The heading for the current view. */\n\tprotected readonly _heading = computed(() => {\n\t\tconst config = this._i18n.config();\n\n\t\tif (this._picker.view() === 'month') {\n\t\t\treturn config.formatYear(this._dateAdapter.getYear(this._picker.focusedDate()));\n\t\t}\n\n\t\tconst { start, end } = this._picker.yearRange();\n\t\treturn `${config.formatYear(start)} – ${config.formatYear(end)}`;\n\t});\n\n\tprotected readonly _btnClass = hlm(\n\t\tbuttonVariants({ variant: 'ghost' }),\n\t\t'data-[today=true]:bg-muted',\n\t\t'data-[selected=true]:bg-primary data-[selected=true]:text-primary-foreground data-[selected=true]:hover:bg-primary data-[selected=true]:hover:text-primary-foreground',\n\t\t'data-[focused=true]:border-ring data-[focused=true]:ring-ring/50 data-[focused=true]:ring-[3px]',\n\t\t'aria-disabled:pointer-events-none aria-disabled:opacity-50',\n\t\t'h-(--cell-size)',\n\t);\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] group/calendar bg-background block in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent',\n\t\t);\n\t}\n}\n","import { HlmCalendar } from './lib/hlm-calendar';\nimport { HlmCalendarMulti } from './lib/hlm-calendar-multi';\nimport { HlmCalendarRange } from './lib/hlm-calendar-range';\nimport { HlmMonthYearCalendar } from './lib/hlm-month-year-calendar';\n\nexport * from './lib/hlm-calendar';\nexport * from './lib/hlm-calendar-multi';\nexport * from './lib/hlm-calendar-range';\nexport * from './lib/hlm-month-year-calendar';\n\nexport const HlmCalendarImports = [HlmCalendar, HlmCalendarMulti, HlmCalendarRange, HlmMonthYearCalendar] as const;\n","import { Directive } from '@angular/core';\nimport { BrnPopover } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmPopover],hlm-popover',\n\texportAs: 'hlmPopover',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: [\n\t\t\t\t'align',\n\t\t\t\t'aria-modal',\n\t\t\t\t'attachTo',\n\t\t\t\t'autoFocus',\n\t\t\t\t'closeOnOutsidePointerEvents',\n\t\t\t\t'offsetX',\n\t\t\t\t'scrollStrategy',\n\t\t\t\t'sideOffset',\n\t\t\t\t'state',\n\t\t\t],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'popover' },\n})\nexport class HlmPopover {}\n","import { Directive, inject } from '@angular/core';\nimport { BrnOverlayRef } from '@spartan-ng/brain/overlay';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmPopoverContent],hlm-popover-content',\n\texportAs: 'hlmPopoverContent',\n\thost: {\n\t\t'data-slot': 'popover-content',\n\t\t'[attr.data-state]': 'state()',\n\t},\n})\nexport class HlmPopoverContent {\n\tprivate readonly _overlayRef = inject(BrnOverlayRef);\n\tpublic state = this._overlayRef.state;\n\n\tconstructor() {\n\t\tclasses(() => 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 gap-4 rounded-md p-4 text-sm shadow-md ring-1 duration-100 relative flex w-72 flex-col outline-none');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmPopoverDescription]',\n\texportAs: 'hlmPopoverDescription',\n\thost: { 'data-slot': 'popover-description' },\n})\nexport class HlmPopoverDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmPopoverHeader],hlm-popover-header',\n\texportAs: 'hlmPopoverHeader',\n\thost: { 'data-slot': 'popover-header' },\n})\nexport class HlmPopoverHeader {\n\tconstructor() {\n\t\tclasses(() => 'flex flex-col gap-1 text-sm');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverContent } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmPopoverPortal]',\n\texportAs: 'hlmPopoverPortal',\n\thostDirectives: [{ directive: BrnPopoverContent, inputs: ['context', 'class'] }],\n})\nexport class HlmPopoverPortal {}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmPopoverTitle]',\n\texportAs: 'hlmPopoverTitle',\n\thost: { 'data-slot': 'popover-title' },\n})\nexport class HlmPopoverTitle {\n\tconstructor() {\n\t\tclasses(() => 'font-medium');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverTrigger } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: 'button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]',\n\texportAs: 'hlmPopoverTrigger',\n\thostDirectives: [\n\t\t{ directive: BrnPopoverTrigger, inputs: ['id', 'brnPopoverTriggerFor: hlmPopoverTriggerFor', 'type'] },\n\t],\n\thost: { 'data-slot': 'popover-trigger' },\n})\nexport class HlmPopoverTrigger {}\n","import { HlmPopover } from './lib/hlm-popover';\nimport { HlmPopoverContent } from './lib/hlm-popover-content';\nimport { HlmPopoverDescription } from './lib/hlm-popover-description';\nimport { HlmPopoverHeader } from './lib/hlm-popover-header';\nimport { HlmPopoverPortal } from './lib/hlm-popover-portal';\nimport { HlmPopoverTitle } from './lib/hlm-popover-title';\nimport { HlmPopoverTrigger } from './lib/hlm-popover-trigger';\n\nexport * from './lib/hlm-popover';\nexport * from './lib/hlm-popover-content';\nexport * from './lib/hlm-popover-description';\nexport * from './lib/hlm-popover-header';\nexport * from './lib/hlm-popover-portal';\nexport * from './lib/hlm-popover-title';\nexport * from './lib/hlm-popover-trigger';\n\nexport const HlmPopoverImports = [\n\tHlmPopover,\n\tHlmPopoverContent,\n\tHlmPopoverDescription,\n\tHlmPopoverHeader,\n\tHlmPopoverPortal,\n\tHlmPopoverTitle,\n\tHlmPopoverTrigger,\n] as const;\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport interface HlmDatePickerConfig<T> {\n\t/**\n\t * If true, the date picker will close when a date is selected.\n\t */\n\tautoCloseOnSelect: boolean;\n\n\t/**\n\t * Defines how the date should be displayed in the UI.\n\t *\n\t * @param date\n\t * @returns formatted date\n\t */\n\tformatDate: (date: T) => string;\n\n\t/**\n\t * Defines how the date should be displayed while the input is focused,\n\t * i.e. the format the user is expected to type in.\n\t *\n\t * @param date\n\t * @returns formatted date in the input/edit format\n\t */\n\tformatInputDate: (date: T) => string;\n\n\t/**\n\t * Defines how the date should be transformed before saving to model/form.\n\t *\n\t * @param date\n\t * @returns transformed date\n\t */\n\ttransformDate: (date: T) => T;\n\n\t/**\n\t * Parse a user-entered string into a date.\n\t *\n\t * @param value the raw string from the input\n\t * @returns the parsed date, or `null` when the value can't be parsed\n\t */\n\tparseDate: (value: string) => T | null;\n}\n\nfunction getDefaultConfig<T>(): HlmDatePickerConfig<T> {\n\treturn {\n\t\tformatDate: (date) => (date instanceof Date ? date.toDateString() : `${date}`),\n\t\tformatInputDate: (date) => (date instanceof Date ? date.toDateString() : `${date}`),\n\t\ttransformDate: (date) => date,\n\t\tparseDate: (value) => {\n\t\t\tconst date = new Date(value);\n\t\t\treturn isNaN(date.getTime()) ? null : (date as T);\n\t\t},\n\t\tautoCloseOnSelect: false,\n\t};\n}\n\nconst HlmDatePickerConfigToken = new InjectionToken<HlmDatePickerConfig<unknown>>('HlmDatePickerConfig');\n\nexport function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerConfig<T>>): ValueProvider {\n\treturn { provide: HlmDatePickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDatePickerConfig<T>(): HlmDatePickerConfig<T> {\n\tconst injectedConfig = inject(HlmDatePickerConfigToken, { optional: true });\n\treturn injectedConfig ? (injectedConfig as HlmDatePickerConfig<T>) : getDefaultConfig();\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tforwardRef,\n\tinput,\n\tlinkedSignal,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { type BrnDatePickerBase, BrnDatePickerTriggerToken, provideBrnDatePicker } from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport type { BrnOverlayState } from '@spartan-ng/brain/overlay';\nimport { BrnPopover, type BrnPopoverAlign } from '@spartan-ng/brain/popover';\nimport { HlmCalendar } from '../../calendar';\nimport { HlmPopoverImports } from '../../popover';\nimport { injectHlmDatePickerConfig } from './hlm-date-picker.token';\n\nexport const HLM_DATE_PICKER_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmDatePicker),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'hlm-date-picker',\n\texportAs: 'hlmDatePicker',\n\timports: [HlmPopoverImports, HlmCalendar],\n\tproviders: [HLM_DATE_PICKER_VALUE_ACCESSOR, provideBrnDatePicker(HlmDatePicker), provideBrnLabelable(HlmDatePicker)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnFieldControl],\n\thost: { class: 'block' },\n\ttemplate: `\n\t\t<hlm-popover [align]=\"align()\" sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_onStateChange($event)\">\n\t\t\t<ng-content />\n\n\t\t\t<hlm-popover-content class=\"w-fit p-0\" *hlmPopoverPortal=\"let ctx\">\n\t\t\t\t<ng-content select=\"[hlmDatePickerHeader]\" />\n\t\t\t\t<hlm-calendar\n\t\t\t\t\tclass=\"rounded-none border-0\"\n\t\t\t\t\t[captionLayout]=\"captionLayout()\"\n\t\t\t\t\t[date]=\"_mutableDate()\"\n\t\t\t\t\t[defaultFocusedDate]=\"_mutableDate() ?? defaultFocusedDate()\"\n\t\t\t\t\t[min]=\"minDate()\"\n\t\t\t\t\t[max]=\"maxDate()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t\t(dateChange)=\"_handleChange($event)\"\n\t\t\t\t/>\n\t\t\t\t<ng-content select=\"[hlmDatePickerFooter]\" />\n\t\t\t</hlm-popover-content>\n\t\t</hlm-popover>\n\t`,\n})\nexport class HlmDatePicker<T> implements BrnDatePickerBase<T>, ControlValueAccessor {\n\tprivate readonly _config = injectHlmDatePickerConfig<T>();\n\n\tpublic readonly popover = viewChild.required(BrnPopover);\n\n\tprivate readonly _trigger = contentChild(BrnDatePickerTriggerToken);\n\n\tpublic readonly align = input<BrnPopoverAlign>('center');\n\n\t/** Show dropdowns to navigate between months or years. */\n\tpublic readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n\t/** The minimum date that can be selected. */\n\tpublic readonly minDate = input<T>();\n\n\t/** The maximum date that can be selected. */\n\tpublic readonly maxDate = input<T>();\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The selected value. */\n\tpublic readonly date = input<T>();\n\n\t/** The date the calendar focuses on first open when no date is selected. */\n\tpublic readonly defaultFocusedDate = input<T>();\n\n\tprotected readonly _mutableDate = linkedSignal(this.date);\n\n\t/** If true, the date picker will close when a date is selected. */\n\tpublic readonly autoCloseOnSelect = input<boolean, BooleanInput>(this._config.autoCloseOnSelect, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Defines how the date should be displayed in the UI. */\n\tpublic readonly formatDate = input<(date: T) => string>(this._config.formatDate);\n\n\t/** Defines how the date should be transformed before saving to model/form. */\n\tpublic readonly transformDate = input<(date: T) => T>(this._config.transformDate);\n\n\tprotected readonly _popoverState = signal<BrnOverlayState | null>(null);\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\t/** @internal The disabled state as a readonly signal */\n\tpublic readonly disabledState = this._disabled.asReadonly();\n\n\tpublic readonly formattedDate = computed(() => {\n\t\tconst date = this._mutableDate();\n\t\treturn date ? this.formatDate()(date) : undefined;\n\t});\n\n\tpublic readonly dateChange = output<T | null>();\n\n\tpublic readonly labelableId = computed(() => this._trigger()?.triggerId());\n\n\tpublic readonly hasDate = computed(() => !!this._mutableDate());\n\n\t/** @internal The current raw value, used by inputs to reformat on focus. */\n\tpublic readonly value = computed(() => this._mutableDate() ?? null);\n\n\tprotected _onChange?: ChangeFn<T | null>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected _onStateChange(state: BrnOverlayState) {\n\t\tthis._popoverState.set(state);\n\t\tif (state === 'closed') this._onTouched?.();\n\t}\n\n\tprotected _handleChange(value: T | undefined) {\n\t\tif (this._disabled()) return;\n\t\tthis.updateDate(value ?? null);\n\n\t\tif (this.autoCloseOnSelect()) {\n\t\t\tthis._popoverState.set('closed');\n\t\t}\n\t}\n\n\t/**\n\t * Commit a date to the picker. Updates the internal model, notifies form\n\t * controls, and emits `dateChange`. Unlike `_handleChange`, this does not\n\t * close the popover - it's intended to be called from a text input that\n\t * is parsing user-entered values while typing.\n\t */\n\tpublic updateDate(value: T | null) {\n\t\tif (this._disabled()) return;\n\t\tconst transformedDate = value != null ? this.transformDate()(value) : undefined;\n\n\t\tthis._mutableDate.set(transformedDate);\n\t\tthis._onChange?.(transformedDate ?? null);\n\t\tthis.dateChange.emit(transformedDate ?? null);\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\tpublic writeValue(value: T | null): void {\n\t\tthis._mutableDate.set(value ? this.transformDate()(value) : undefined);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T | null>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic touched(): void {\n\t\tthis._onTouched?.();\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n\n\tpublic open() {\n\t\tthis._popoverState.set('open');\n\t}\n\n\tpublic close() {\n\t\tthis._popoverState.set('closed');\n\t}\n\n\tpublic reset() {\n\t\tthis._mutableDate.set(undefined);\n\t\tthis._onChange?.(null);\n\t\tthis.dateChange.emit(null);\n\t}\n}\n","import { Directive, effect, ElementRef, inject, input, linkedSignal } from '@angular/core';\nimport { BrnOverlay } from '@spartan-ng/brain/overlay';\nimport { BrnPopover } from '@spartan-ng/brain/popover';\n\n@Directive({ selector: '[hlmDatePickerAnchor]', exportAs: 'hlmDatePickerAnchor' })\nexport class HlmDatePickerAnchor {\n\tprivate readonly _host = inject(ElementRef, { host: true });\n\tprivate readonly _brnOverlay = inject(BrnOverlay, { optional: true });\n\n\tpublic readonly hlmDatePickerAnchorForInput = input<BrnPopover | undefined>(undefined, {\n\t\talias: 'hlmDatePickerAnchorFor',\n\t});\n\n\tpublic readonly hlmDatePickerAnchorFor = linkedSignal(this.hlmDatePickerAnchorForInput);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.hlmDatePickerAnchorFor()?.setOrigin(this._host.nativeElement);\n\t\t});\n\n\t\tthis._brnOverlay?.setOrigin(this._host.nativeElement);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCalendar, lucideX } from '@ng-icons/lucide';\nimport {\n\tBrnDateInput,\n\ttype BrnDatePickerTriggerBase,\n\tprovideBrnDatePickerTrigger,\n} from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl } from '@spartan-ng/brain/field';\nimport { HlmInputGroup, HlmInputGroupImports } from '../../input-group';\nimport { injectHlmDatePickerConfig } from './hlm-date-picker.token';\n\n@Component({\n\tselector: 'hlm-date-picker-input',\n\texportAs: 'hlmDatePickerInput',\n\timports: [HlmInputGroupImports, NgIcon],\n\tproviders: [provideIcons({ lucideCalendar, lucideX }), provideBrnDatePickerTrigger(HlmDatePickerInput)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [HlmInputGroup],\n\ttemplate: `\n\t\t<input\n\t\t\t#input\n\t\t\thlmInputGroupInput\n\t\t\t[value]=\"_inputValue()\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-touched]=\"_touched?.() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n\t\t\t(click)=\"_handleClick()\"\n\t\t\t(keydown.arrowDown)=\"_open()\"\n\t\t\t(keydown.enter)=\"_handleEnter($event)\"\n\t\t\t(input)=\"_handleInputChange($event)\"\n\t\t\t(focus)=\"_handleFocus()\"\n\t\t\t(blur)=\"_handleBlur()\"\n\t\t/>\n\t\t<hlm-input-group-addon align=\"inline-end\">\n\t\t\t@if (_showClearButton()) {\n\t\t\t\t<button\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t[attr.aria-label]=\"clearAriaLabel()\"\n\t\t\t\t\t(click)=\"_clear()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button\n\t\t\t\thlmInputGroupButton\n\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t[attr.aria-label]=\"calendarAriaLabel()\"\n\t\t\t\t(click)=\"_popover().open()\"\n\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t>\n\t\t\t\t<ng-icon name=\"lucideCalendar\" />\n\t\t\t</button>\n\t\t</hlm-input-group-addon>\n\t`,\n})\nexport class HlmDatePickerInput<T> extends BrnDateInput<T> implements BrnDatePickerTriggerBase {\n\tprivate readonly _config = injectHlmDatePickerConfig<T>();\n\tprivate readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\n\tprivate readonly _invalid = this._fieldControl?.invalid;\n\tprotected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\tprotected readonly _dirty = this._fieldControl?.dirty;\n\tprotected readonly _touched = this._fieldControl?.touched;\n\n\tprotected readonly _ariaInvalid = computed(() => (this._invalid?.() ? 'true' : null));\n\n\t/**\n\t * Parses input text into a date value. Return `null` for invalid\n\t * input - the picker's date is cleared while the text is preserved so\n\t * the user can fix it.\n\t *\n\t * Defaults to `parseDate` from `HlmDatePickerConfig`.\n\t */\n\tpublic readonly parseDate = input<(value: string) => T | null>(this._config.parseDate);\n\n\t/**\n\t * Formats the current date into the input/edit format shown while the\n\t * input is focused. On blur the picker's display format is restored.\n\t *\n\t * Defaults to `formatInputDate` from `HlmDatePickerConfig`.\n\t */\n\tpublic readonly formatInputDate = input<(date: T) => string>(this._config.formatInputDate);\n\n\tprotected parseValue(value: string): T | null {\n\t\treturn this.parseDate()(value);\n\t}\n\n\tprotected formatInputValue(value: T): string {\n\t\treturn this.formatInputDate()(value);\n\t}\n}\n","import type { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tforwardRef,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { type BrnDatePickerBase, BrnDatePickerTriggerToken, provideBrnDatePicker } from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport type { BrnOverlayState } from '@spartan-ng/brain/overlay';\nimport { BrnPopover, type BrnPopoverAlign } from '@spartan-ng/brain/popover';\nimport { HlmCalendarMulti } from '../../calendar';\nimport { HlmPopoverImports } from '../../popover';\nimport { injectHlmDatePickerMultiConfig } from './hlm-date-picker-multi.token';\n\nexport const HLM_DATE_PICKER_MULTI_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmDatePickerMulti),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'hlm-date-picker-multi',\n\texportAs: 'hlmDatePickerMulti',\n\timports: [HlmPopoverImports, HlmCalendarMulti],\n\tproviders: [\n\t\tHLM_DATE_PICKER_MULTI_VALUE_ACCESSOR,\n\t\tprovideBrnDatePicker(HlmDatePickerMulti),\n\t\tprovideBrnLabelable(HlmDatePickerMulti),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnFieldControl],\n\thost: { class: 'block' },\n\ttemplate: `\n\t\t<hlm-popover [align]=\"align()\" sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_onStateChange($event)\">\n\t\t\t<ng-content />\n\n\t\t\t<hlm-popover-content class=\"w-fit p-0\" *hlmPopoverPortal=\"let ctx\">\n\t\t\t\t<ng-content select=\"[hlmDatePickerHeader]\" />\n\t\t\t\t<hlm-calendar-multi\n\t\t\t\t\tclass=\"rounded-none border-0\"\n\t\t\t\t\t[date]=\"_mutableDate()\"\n\t\t\t\t\t[captionLayout]=\"captionLayout()\"\n\t\t\t\t\t[min]=\"minDate()\"\n\t\t\t\t\t[max]=\"maxDate()\"\n\t\t\t\t\t[minSelection]=\"minSelection()\"\n\t\t\t\t\t[maxSelection]=\"maxSelection()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t\t(dateChange)=\"_handleChange($event)\"\n\t\t\t\t/>\n\t\t\t\t<ng-content select=\"[hlmDatePickerFooter]\" />\n\t\t\t</hlm-popover-content>\n\t\t</hlm-popover>\n\t`,\n})\nexport class HlmDatePickerMulti<T> implements BrnDatePickerBase<T[]>, ControlValueAccessor {\n\tprivate readonly _config = injectHlmDatePickerMultiConfig<T>();\n\n\tpublic readonly popover = viewChild.required(BrnPopover);\n\n\tprivate readonly _trigger = contentChild(BrnDatePickerTriggerToken);\n\n\tpublic readonly align = input<BrnPopoverAlign>('center');\n\n\t/** Show dropdowns to navigate between months or years. */\n\tpublic readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n\t/** The minimum date that can be selected.*/\n\tpublic readonly minDate = input<T>();\n\n\t/** The maximum date that can be selected. */\n\tpublic readonly maxDate = input<T>();\n\n\t/** The minimum selectable dates. */\n\tpublic readonly minSelection = input<number, NumberInput>(undefined, {\n\t\ttransform: numberAttribute,\n\t});\n\n\t/** The maximum selectable dates. */\n\tpublic readonly maxSelection = input<number, NumberInput>(undefined, {\n\t\ttransform: numberAttribute,\n\t});\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The selected value. */\n\tpublic readonly date = input<T[]>();\n\n\tprotected readonly _mutableDate = linkedSignal(this.date);\n\n\t/** If true, the date picker will close when the max selection of dates is reached. */\n\tpublic readonly autoCloseOnMaxSelection = input<boolean, BooleanInput>(this._config.autoCloseOnMaxSelection, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Defines how the date should be displayed in the UI. */\n\tpublic readonly formatDates = input<(date: T[]) => string>(this._config.formatDates);\n\n\t/** Defines how the date should be transformed before saving to model/form. */\n\tpublic readonly transformDates = input<(date: T[]) => T[]>(this._config.transformDates);\n\n\tprotected readonly _popoverState = signal<BrnOverlayState | null>(null);\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\t/** @internal The disabled state as a readonly signal */\n\tpublic readonly disabledState = this._disabled.asReadonly();\n\n\tpublic readonly formattedDate = computed(() => {\n\t\tconst dates = this._mutableDate();\n\t\treturn dates ? this.formatDates()(dates) : undefined;\n\t});\n\n\tpublic readonly dateChange = output<T[]>();\n\n\tpublic readonly labelableId = computed(() => this._trigger()?.triggerId());\n\n\tpublic readonly hasDate = computed(() => !!this._mutableDate()?.length);\n\n\t/** @internal The current raw value, used by inputs to reformat on focus. */\n\tpublic readonly value = computed(() => this._mutableDate() ?? null);\n\n\tprotected _onChange?: ChangeFn<T[]>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected _onStateChange(state: BrnOverlayState) {\n\t\tthis._popoverState.set(state);\n\t\tif (state === 'closed') this._onTouched?.();\n\t}\n\n\tprotected _handleChange(value: T[] | undefined) {\n\t\tif (value === undefined) return;\n\n\t\tif (this._disabled()) return;\n\t\tconst transformedDate = value !== undefined ? this.transformDates()(value) : value;\n\n\t\tthis._mutableDate.set(transformedDate);\n\t\tthis._onChange?.(transformedDate);\n\t\tthis.dateChange.emit(transformedDate);\n\n\t\tif (this.autoCloseOnMaxSelection() && this._mutableDate()?.length === this.maxSelection()) {\n\t\t\tthis._popoverState.set('closed');\n\t\t}\n\t}\n\n\t/**\n\t * Commit dates to the picker. Updates the internal model, notifies form\n\t * controls, and emits `dateChange`. Intended to be called from a text input\n\t * that parses user-entered values. Pass `null` to clear the selection.\n\t */\n\tpublic updateDate(value: T[] | null) {\n\t\tif (this._disabled()) return;\n\t\tconst transformedDate = value ? this.transformDates()(value) : undefined;\n\n\t\tthis._mutableDate.set(transformedDate);\n\t\tthis._onChange?.(transformedDate ?? []);\n\t\tthis.dateChange.emit(transformedDate ?? []);\n\t}\n\n\tpublic touched(): void {\n\t\tthis._onTouched?.();\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\tpublic writeValue(value: T[] | null): void {\n\t\tthis._mutableDate.set(value ? this.transformDates()(value) : undefined);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T[]>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n\n\tpublic open() {\n\t\tthis._popoverState.set('open');\n\t}\n\n\tpublic close() {\n\t\tthis._popoverState.set('closed');\n\t}\n\n\tpublic reset() {\n\t\tthis._mutableDate.set(undefined);\n\t\tthis._onChange?.([]);\n\t\tthis.dateChange.emit([]);\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport {\n\ttype BrnDatePickerTriggerBase,\n\tinjectBrnDatePicker,\n\tprovideBrnDatePickerTrigger,\n} from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl, BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { ButtonVariants, HlmButtonImports } from '../../button';\nimport { HlmPopoverTrigger } from '../../popover';\nimport { hlm } from '../../utils';\nimport { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-date-picker-trigger',\n\texportAs: 'hlmDatePickerTrigger',\n\timports: [HlmButtonImports, HlmPopoverTrigger, NgIcon, BrnFieldControlDescribedBy],\n\tproviders: [provideIcons({ lucideChevronDown }), provideBrnDatePickerTrigger(HlmDatePickerTrigger)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'date-picker-trigger' },\n\ttemplate: `\n\t\t<button\n\t\t\t[id]=\"buttonId()\"\n\t\t\ttype=\"button\"\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-touched]=\"_touched?.() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n\t\t\thlmBtn\n\t\t\t[variant]=\"variant()\"\n\t\t\thlmPopoverTrigger\n\t\t\t[hlmPopoverTriggerFor]=\"_popover()\"\n\t\t\tbrnFieldControlDescribedBy\n\t\t\t[attr.data-placeholder]=\"_isPlaceholder() ? '' : null\"\n\t\t>\n\t\t\t<span class=\"truncate\">\n\t\t\t\t@if (_formattedDate(); as formattedDate) {\n\t\t\t\t\t{{ formattedDate }}\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-content />\n\t\t\t\t}\n\t\t\t</span>\n\n\t\t\t@if (showTrigger()) {\n\t\t\t\t<ng-icon name=\"lucideChevronDown\" />\n\t\t\t}\n\t\t</button>\n\t`,\n})\nexport class HlmDatePickerTrigger implements BrnDatePickerTriggerBase {\n\tprivate static _nextId = 0;\n\n\tprivate readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\tprivate readonly _datePicker = injectBrnDatePicker();\n\n\tprivate readonly _invalid = this._fieldControl?.invalid;\n\tprotected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\tprotected readonly _dirty = this._fieldControl?.dirty;\n\tprotected readonly _touched = this._fieldControl?.touched;\n\n\tprotected readonly _ariaInvalid = computed(() => (this._invalid?.() ? 'true' : null));\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm('data-placeholder:text-muted-foreground justify-between', this.userClass()),\n\t);\n\n\tprotected readonly _isPlaceholder = computed(() => !this._datePicker.hasDate());\n\n\t/** The id of the button that opens the date picker. */\n\tpublic readonly buttonId = input<string>(`hlm-date-picker-${++HlmDatePickerTrigger._nextId}`);\n\n\t/** @internal The id of the button that opens the date picker, used for labeling. */\n\tpublic readonly triggerId = this.buttonId;\n\n\t/** Forces the invalid state visually, regardless of form control state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tpublic readonly variant = input<ButtonVariants['variant']>('outline');\n\n\tpublic readonly showTrigger = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\tprotected readonly _popover = this._datePicker.popover;\n\tprotected readonly _disabled = this._datePicker.disabledState;\n\tprotected readonly _formattedDate = this._datePicker.formattedDate;\n}\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport interface HlmDateRangePickerConfig<T> {\n\t/**\n\t * If true, the date picker will close when the max selection of dates is reached.\n\t */\n\tautoCloseOnEndSelection: boolean;\n\n\t/**\n\t * Defines how the date should be displayed in the UI.\n\t *\n\t * @param dates\n\t * @returns formatted date\n\t */\n\tformatDates: (dates: [T | null, T | null]) => string;\n\n\t/**\n\t * Defines how the range should be displayed while the input is focused,\n\t * i.e. the format the user is expected to type in.\n\t *\n\t * @param dates\n\t * @returns formatted range in the input/edit format\n\t */\n\tformatInputDates: (dates: [T | null, T | null]) => string;\n\n\t/**\n\t * Defines how the date should be transformed before saving to model/form.\n\t *\n\t * @param dates\n\t * @returns transformed date\n\t */\n\ttransformDates: (dates: [T, T]) => [T, T];\n\n\t/**\n\t * Parse a user-entered string into a date range.\n\t *\n\t * @param value the raw string from the input\n\t * @returns the parsed range, or `null` when the value can't be parsed\n\t */\n\tparseDate: (value: string) => [T, T] | null;\n}\n\nfunction getDefaultConfig<T>(): HlmDateRangePickerConfig<T> {\n\treturn {\n\t\tformatDates: (dates) =>\n\t\t\tdates\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.map((date) => (date instanceof Date ? date.toDateString() : `${date}`))\n\t\t\t\t.join(' - '),\n\t\tformatInputDates: (dates) =>\n\t\t\tdates\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.map((date) => (date instanceof Date ? date.toDateString() : `${date}`))\n\t\t\t\t.join(' - '),\n\t\ttransformDates: (dates) => dates,\n\t\tautoCloseOnEndSelection: false,\n\t\tparseDate: (value) => {\n\t\t\tif (typeof value !== 'string') return null;\n\n\t\t\tconst parts = value.split(' - ').map((part) => part.trim());\n\t\t\tif (parts.length === 0 || parts.length > 2) return null;\n\n\t\t\tconst start = new Date(parts[0]);\n\t\t\tif (isNaN(start.getTime())) return null;\n\n\t\t\tconst end = parts.length === 2 ? new Date(parts[1]) : start;\n\n\t\t\treturn [start, isNaN(end.getTime()) ? start : end] as [T, T];\n\t\t},\n\t};\n}\n\nconst HlmDateRangePickerConfigToken = new InjectionToken<HlmDateRangePickerConfig<unknown>>('HlmDateRangePickerConfig');\n\nexport function provideHlmDateRangePickerConfig<T>(config: Partial<HlmDateRangePickerConfig<T>>): ValueProvider {\n\treturn { provide: HlmDateRangePickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDateRangePickerConfig<T>(): HlmDateRangePickerConfig<T> {\n\tconst injectedConfig = inject(HlmDateRangePickerConfigToken, { optional: true });\n\treturn injectedConfig ? (injectedConfig as HlmDateRangePickerConfig<T>) : getDefaultConfig();\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCalendar, lucideX } from '@ng-icons/lucide';\nimport {\n\tBrnDateInput,\n\ttype BrnDatePickerTriggerBase,\n\tprovideBrnDatePickerTrigger,\n} from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl } from '@spartan-ng/brain/field';\nimport { HlmInputGroup, HlmInputGroupImports } from '../../input-group';\nimport { injectHlmDateRangePickerConfig } from './hlm-date-range-picker.token';\n\n@Component({\n\tselector: 'hlm-date-range-input',\n\texportAs: 'hlmDateRangeInput',\n\timports: [HlmInputGroupImports, NgIcon],\n\tproviders: [provideIcons({ lucideCalendar, lucideX }), provideBrnDatePickerTrigger(HlmDateRangeInput)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [HlmInputGroup],\n\ttemplate: `\n\t\t<input\n\t\t\t#input\n\t\t\thlmInputGroupInput\n\t\t\t[value]=\"_inputValue()\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-touched]=\"_touched?.() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n\t\t\t(click)=\"_handleClick()\"\n\t\t\t(keydown.arrowDown)=\"_open()\"\n\t\t\t(keydown.enter)=\"_handleEnter($event)\"\n\t\t\t(input)=\"_handleInputChange($event)\"\n\t\t\t(focus)=\"_handleFocus()\"\n\t\t\t(blur)=\"_handleBlur()\"\n\t\t/>\n\t\t<hlm-input-group-addon align=\"inline-end\">\n\t\t\t@if (_showClearButton()) {\n\t\t\t\t<button\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t[attr.aria-label]=\"clearAriaLabel()\"\n\t\t\t\t\t(click)=\"_clear()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button\n\t\t\t\thlmInputGroupButton\n\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t[attr.aria-label]=\"calendarAriaLabel()\"\n\t\t\t\t(click)=\"_popover().open()\"\n\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t>\n\t\t\t\t<ng-icon name=\"lucideCalendar\" />\n\t\t\t</button>\n\t\t</hlm-input-group-addon>\n\t`,\n})\nexport class HlmDateRangeInput<T> extends BrnDateInput<[T, T]> implements BrnDatePickerTriggerBase {\n\tprivate readonly _config = injectHlmDateRangePickerConfig<T>();\n\tprivate readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\n\tprivate readonly _invalid = this._fieldControl?.invalid;\n\tprotected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\tprotected readonly _dirty = this._fieldControl?.dirty;\n\tprotected readonly _touched = this._fieldControl?.touched;\n\n\tprotected readonly _ariaInvalid = computed(() => (this._invalid?.() ? 'true' : null));\n\n\t/**\n\t * Parses input text into a date range. Return `null` for invalid\n\t * input - the picker's range is cleared while the text is preserved so\n\t * the user can fix it.\n\t *\n\t * Defaults to `parseDate` from `HlmDateRangePickerConfig`.\n\t */\n\tpublic readonly parseDate = input<(value: string) => [T, T] | null>(this._config.parseDate);\n\n\t/**\n\t * Formats the current range into the input/edit format shown while the\n\t * input is focused. On blur the picker's display format is restored.\n\t *\n\t * Defaults to `formatInputDates` from `HlmDateRangePickerConfig`.\n\t */\n\tpublic readonly formatInputDates = input<(dates: [T | null, T | null]) => string>(this._config.formatInputDates);\n\n\tprotected override parseValue(value: string): [T, T] | null {\n\t\treturn this.parseDate()(value);\n\t}\n\n\tprotected override formatInputValue(value: [T, T]): string {\n\t\treturn this.formatInputDates()(value);\n\t}\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tforwardRef,\n\tinput,\n\tlinkedSignal,\n\toutput,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { type BrnDatePickerBase, BrnDatePickerTriggerToken, provideBrnDatePicker } from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport type { BrnOverlayState } from '@spartan-ng/brain/overlay';\nimport { BrnPopover, type BrnPopoverAlign } from '@spartan-ng/brain/popover';\nimport { HlmCalendarRange } from '../../calendar';\nimport { HlmPopoverImports } from '../../popover';\nimport { injectHlmDateRangePickerConfig } from './hlm-date-range-picker.token';\n\nexport const HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmDateRangePicker),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'hlm-date-range-picker',\n\texportAs: 'hlmDateRangePicker',\n\timports: [HlmPopoverImports, HlmCalendarRange],\n\tproviders: [\n\t\tHLM_DATE_RANGE_PICKER_VALUE_ACCESSOR,\n\t\tprovideBrnDatePicker(HlmDateRangePicker),\n\t\tprovideBrnLabelable(HlmDateRangePicker),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnFieldControl],\n\thost: { class: 'block' },\n\ttemplate: `\n\t\t<hlm-popover [align]=\"align()\" sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_onStateChange($event)\">\n\t\t\t<ng-content />\n\n\t\t\t<hlm-popover-content class=\"w-fit p-0\" *hlmPopoverPortal=\"let ctx\">\n\t\t\t\t<ng-content select=\"[hlmDatePickerHeader]\" />\n\t\t\t\t<hlm-calendar-range\n\t\t\t\t\tclass=\"rounded-none border-0\"\n\t\t\t\t\t[startDate]=\"_start()\"\n\t\t\t\t\t[captionLayout]=\"captionLayout()\"\n\t\t\t\t\t[endDate]=\"_end()\"\n\t\t\t\t\t[min]=\"minDate()\"\n\t\t\t\t\t[max]=\"maxDate()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t\t(startDateChange)=\"_handleStartDayChange($event)\"\n\t\t\t\t\t(endDateChange)=\"_handleEndDateChange($event)\"\n\t\t\t\t/>\n\t\t\t\t<ng-content select=\"[hlmDatePickerFooter]\" />\n\t\t\t</hlm-popover-content>\n\t\t</hlm-popover>\n\t`,\n})\nexport class HlmDateRangePicker<T> implements BrnDatePickerBase<[T, T]>, ControlValueAccessor {\n\tprivate readonly _config = injectHlmDateRangePickerConfig<T>();\n\n\tpublic readonly popover = viewChild.required(BrnPopover);\n\n\tprivate readonly _trigger = contentChild(BrnDatePickerTriggerToken);\n\n\tpublic readonly align = input<BrnPopoverAlign>('center');\n\n\t/** Show dropdowns to navigate between months or years. */\n\tpublic readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n\t/** The minimum date that can be selected.*/\n\tpublic readonly minDate = input<T>();\n\n\t/** The maximum date that can be selected. */\n\tpublic readonly maxDate = input<T>();\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The selected value. */\n\tpublic readonly date = input<[T, T]>();\n\n\tprotected readonly _mutableDate = linkedSignal(this.date);\n\n\tprotected readonly _start = linkedSignal(() => this._mutableDate()?.[0]);\n\tprotected readonly _end = linkedSignal(() => this._mutableDate()?.[1]);\n\n\t/** If true, the date picker will close when the end date is selected */\n\tpublic readonly autoCloseOnEndSelection = input<boolean, BooleanInput>(this._config.autoCloseOnEndSelection, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Defines how the date should be displayed in the UI. */\n\tpublic readonly formatDates = input<(dates: [T | null, T | null]) => string>(this._config.formatDates);\n\n\t/** Defines how the date should be transformed before saving to model/form. */\n\tpublic readonly transformDates = input<(date: [T, T]) => [T, T]>(this._config.transformDates);\n\n\tprotected readonly _popoverState = signal<BrnOverlayState | null>(null);\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\t/** @internal The disabled state as a readonly signal */\n\tpublic readonly disabledState = this._disabled.asReadonly();\n\n\tpublic readonly formattedDate = computed(() => {\n\t\tconst start = this._start();\n\t\tconst end = this._end();\n\t\treturn start || end ? this.formatDates()([start ?? null, end ?? null]) : undefined;\n\t});\n\n\tpublic readonly dateChange = output<[T, T] | null>();\n\n\tpublic readonly labelableId = computed(() => this._trigger()?.triggerId());\n\n\tpublic readonly hasDate = computed(() => !!this._start() || !!this._end());\n\n\t/** @internal The current raw value, used by inputs to reformat on focus. */\n\tpublic readonly value = computed(() => this._mutableDate() ?? null);\n\n\tprotected _onChange?: ChangeFn<[T, T] | null>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected _onStateChange(state: BrnOverlayState) {\n\t\tthis._popoverState.set(state);\n\t\tif (state === 'closed') {\n\t\t\tthis._onClose();\n\t\t\tthis._onTouched?.();\n\t\t}\n\t}\n\n\tprotected _handleStartDayChange(value: T | undefined) {\n\t\tthis._start.set(value);\n\t}\n\n\tprotected _handleEndDateChange(value: T | undefined): void {\n\t\tthis._end.set(value);\n\t\tif (this._disabled()) return;\n\n\t\tconst start = this._start();\n\t\tif (start && value) {\n\t\t\tconst transformedDates = this.transformDates()([start, value]);\n\t\t\tthis._mutableDate.set(transformedDates);\n\t\t\tthis.dateChange.emit(transformedDates);\n\t\t\tthis._onChange?.(transformedDates);\n\n\t\t\tif (this.autoCloseOnEndSelection()) {\n\t\t\t\tthis._popoverState.set('closed');\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Commit a range to the picker. Updates the internal model, notifies form\n\t * controls, and emits `dateChange`. Intended to be called from a text input\n\t * that parses user-entered values. Pass `null` to clear the range.\n\t */\n\tpublic updateDate(value: [T, T] | null) {\n\t\tif (this._disabled()) return;\n\n\t\tif (!value) {\n\t\t\tthis._mutableDate.set(undefined);\n\t\t\tthis._start.set(undefined);\n\t\t\tthis._end.set(undefined);\n\t\t\tthis._onChange?.(null);\n\t\t\tthis.dateChange.emit(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformedDates = this.transformDates()(value);\n\t\tthis._mutableDate.set(transformedDates);\n\t\tthis._start.set(transformedDates[0]);\n\t\tthis._end.set(transformedDates[1]);\n\t\tthis._onChange?.(transformedDates);\n\t\tthis.dateChange.emit(transformedDates);\n\t}\n\n\tpublic touched(): void {\n\t\tthis._onTouched?.();\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\tpublic writeValue(value: [T, T] | null): void {\n\t\tuntracked(() => {\n\t\t\tif (!value) {\n\t\t\t\tthis._mutableDate.set(undefined);\n\t\t\t} else {\n\t\t\t\tthis._mutableDate.set(this.transformDates()(value));\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<[T, T] | null>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n\n\tpublic open() {\n\t\tthis._popoverState.set('open');\n\t}\n\n\tpublic close() {\n\t\tthis._popoverState.set('closed');\n\t}\n\n\tpublic reset() {\n\t\tthis._mutableDate.set(undefined);\n\t\tthis._start.set(undefined);\n\t\tthis._end.set(undefined);\n\t\tthis._onChange?.(null);\n\t\tthis.dateChange.emit(null);\n\t}\n\n\tprotected _onClose(): void {\n\t\tconst dates = this._mutableDate();\n\t\tif (this._start() && !this._end() && dates) {\n\t\t\tthis._start.set(dates[0]);\n\t\t\tthis._end.set(dates[1]);\n\t\t}\n\t}\n}\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport interface HlmMonthYearPickerConfig<T> {\n\t/**\n\t * If true, the date picker will close when a date is selected.\n\t */\n\tautoCloseOnSelect: boolean;\n\n\t/**\n\t * Defines how the date should be displayed in the UI.\n\t *\n\t * @param date\n\t * @returns formatted date\n\t */\n\tformatDate: (date: T) => string;\n\n\t/**\n\t * Defines how the date should be displayed while the input is focused,\n\t * i.e. the format the user is expected to type in.\n\t *\n\t * @param date\n\t * @returns formatted date in the input/edit format\n\t */\n\tformatInputDate: (date: T) => string;\n\n\t/**\n\t * Defines how the date should be transformed before saving to model/form.\n\t *\n\t * @param date\n\t * @returns transformed date\n\t */\n\ttransformDate: (date: T) => T;\n\n\t/**\n\t * Parse a user-entered string into a date.\n\t *\n\t * @param value the raw string from the input\n\t * @returns the parsed date, or `null` when the value can't be parsed\n\t */\n\tparseDate: (value: string) => T | null;\n}\n\nconst mmYYYY = <T>(date: T) => {\n\tif (!(date instanceof Date)) return `${date}`;\n\n\tconst month = String(date.getMonth() + 1).padStart(2, '0');\n\tconst year = date.getFullYear();\n\n\treturn `${month}/${year}`;\n};\n\nfunction getDefaultConfig<T>(): HlmMonthYearPickerConfig<T> {\n\treturn {\n\t\tformatDate: mmYYYY,\n\t\tformatInputDate: mmYYYY,\n\t\ttransformDate: (date) => date,\n\t\tparseDate: (value) => {\n\t\t\tif (typeof value !== 'string') return null;\n\n\t\t\tconst match = value.match(/^(\\d{2})\\/(\\d{4})$/);\n\t\t\tif (!match) return null;\n\n\t\t\tconst month = Number(match[1]);\n\t\t\tconst year = Number(match[2]);\n\n\t\t\tif (month < 1 || month > 12) return null;\n\n\t\t\tconst date = new Date(year, month - 1, 1);\n\n\t\t\treturn date as T;\n\t\t},\n\t\tautoCloseOnSelect: false,\n\t};\n}\n\nconst HlmMonthYearPickerConfigToken = new InjectionToken<HlmMonthYearPickerConfig<unknown>>('HlmMonthYearPickerConfig');\n\nexport function provideHlmMonthYearPickerConfig<T>(config: Partial<HlmMonthYearPickerConfig<T>>): ValueProvider {\n\treturn { provide: HlmMonthYearPickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmMonthYearPickerConfig<T>(): HlmMonthYearPickerConfig<T> {\n\tconst injectedConfig = inject(HlmMonthYearPickerConfigToken, { optional: true });\n\treturn injectedConfig ? (injectedConfig as HlmMonthYearPickerConfig<T>) : getDefaultConfig();\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCalendar, lucideX } from '@ng-icons/lucide';\nimport {\n\tBrnDateInput,\n\ttype BrnDatePickerTriggerBase,\n\tprovideBrnDatePickerTrigger,\n} from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl } from '@spartan-ng/brain/field';\nimport { HlmInputGroup, HlmInputGroupImports } from '../../input-group';\nimport { injectHlmMonthYearPickerConfig } from './hlm-month-year-picker.token';\n\n@Component({\n\tselector: 'hlm-month-year-input',\n\texportAs: 'hlmMonthYearInput',\n\timports: [HlmInputGroupImports, NgIcon],\n\tproviders: [provideIcons({ lucideCalendar, lucideX }), provideBrnDatePickerTrigger(HlmMonthYearInput)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [HlmInputGroup],\n\ttemplate: `\n\t\t<input\n\t\t\t#input\n\t\t\thlmInputGroupInput\n\t\t\t[value]=\"_inputValue()\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid()\"\n\t\t\t[attr.data-touched]=\"_touched?.() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n\t\t\t(click)=\"_handleClick()\"\n\t\t\t(keydown.arrowDown)=\"_open()\"\n\t\t\t(keydown.enter)=\"_handleEnter($event)\"\n\t\t\t(input)=\"_handleInputChange($event)\"\n\t\t\t(focus)=\"_handleFocus()\"\n\t\t\t(blur)=\"_handleBlur()\"\n\t\t/>\n\t\t<hlm-input-group-addon align=\"inline-end\">\n\t\t\t@if (_showClearButton()) {\n\t\t\t\t<button\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t[attr.aria-label]=\"clearAriaLabel()\"\n\t\t\t\t\t(click)=\"_clear()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button\n\t\t\t\thlmInputGroupButton\n\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t[attr.aria-label]=\"calendarAriaLabel()\"\n\t\t\t\t(click)=\"_popover().open()\"\n\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t>\n\t\t\t\t<ng-icon name=\"lucideCalendar\" />\n\t\t\t</button>\n\t\t</hlm-input-group-addon>\n\t`,\n})\nexport class HlmMonthYearInput<T> extends BrnDateInput<T> implements BrnDatePickerTriggerBase {\n\tprivate readonly _config = injectHlmMonthYearPickerConfig<T>();\n\tprivate readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\n\tprivate readonly _invalid = this._fieldControl?.invalid;\n\tprotected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\tprotected readonly _dirty = this._fieldControl?.dirty;\n\tprotected readonly _touched = this._fieldControl?.touched;\n\n\tprotected readonly _ariaInvalid = computed(() => (this._invalid?.() ? 'true' : null));\n\n\t/**\n\t * Parses input text into a date value. Return `null` for invalid\n\t * input - the picker's date is cleared while the text is preserved so\n\t * the user can fix it.\n\t *\n\t * Defaults to `parseDate` from `HlmMonthYearPickerConfig`.\n\t */\n\tpublic readonly parseDate = input<(value: string) => T | null>(this._config.parseDate);\n\n\t/**\n\t * Formats the current date into the input/edit format shown while the\n\t * input is focused. On blur the picker's display format is restored.\n\t *\n\t * Defaults to `formatInputDate` from `HlmMonthYearPickerConfig`.\n\t */\n\tpublic readonly formatInputDate = input<(date: T) => string>(this._config.formatInputDate);\n\n\tprotected override parseValue(value: string): T | null {\n\t\treturn this.parseDate()(value);\n\t}\n\n\tprotected override formatInputValue(value: T): string {\n\t\treturn this.formatInputDate()(value);\n\t}\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tforwardRef,\n\tinput,\n\tlinkedSignal,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { type BrnDatePickerBase, BrnDatePickerTriggerToken, provideBrnDatePicker } from '@spartan-ng/brain/date-picker';\nimport { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport type { BrnOverlayState } from '@spartan-ng/brain/overlay';\nimport { BrnPopover, type BrnPopoverAlign } from '@spartan-ng/brain/popover';\nimport { HlmCalendarImports } from '../../calendar';\nimport { HlmPopoverImports } from '../../popover';\nimport { injectHlmMonthYearPickerConfig } from './hlm-month-year-picker.token';\n\nexport const HLM_MONTH_YEAR_PICKER_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmMonthYearPicker),\n\tmulti: true,\n};\n@Component({\n\tselector: 'hlm-month-year-picker',\n\texportAs: 'hlmMonthYearPicker',\n\timports: [HlmPopoverImports, HlmCalendarImports],\n\tproviders: [\n\t\tHLM_MONTH_YEAR_PICKER_VALUE_ACCESSOR,\n\t\tprovideBrnDatePicker(HlmMonthYearPicker),\n\t\tprovideBrnLabelable(HlmMonthYearPicker),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnFieldControl],\n\thost: { class: 'block' },\n\ttemplate: `\n\t\t<hlm-popover [align]=\"align()\" sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_onStateChange($event)\">\n\t\t\t<ng-content />\n\n\t\t\t<hlm-popover-content class=\"w-fit p-0\" *hlmPopoverPortal=\"let ctx\">\n\t\t\t\t<ng-content select=\"[hlmDatePickerHeader]\" />\n\t\t\t\t<hlm-month-year-calendar\n\t\t\t\t\tclass=\"rounded-none border-0\"\n\t\t\t\t\t[date]=\"_mutableDate()\"\n\t\t\t\t\t[defaultFocusedDate]=\"_mutableDate() ?? defaultFocusedDate()\"\n\t\t\t\t\t[min]=\"minDate()\"\n\t\t\t\t\t[max]=\"maxDate()\"\n\t\t\t\t\t[disabled]=\"_disabled()\"\n\t\t\t\t\t(dateChange)=\"_handleChange($event)\"\n\t\t\t\t/>\n\t\t\t\t<ng-content select=\"[hlmDatePickerFooter]\" />\n\t\t\t</hlm-popover-content>\n\t\t</hlm-popover>\n\t`,\n})\nexport class HlmMonthYearPicker<T> implements BrnDatePickerBase<T>, ControlValueAccessor {\n\tprivate readonly _config = injectHlmMonthYearPickerConfig<T>();\n\n\tpublic readonly popover = viewChild.required(BrnPopover);\n\n\tprivate readonly _trigger = contentChild(BrnDatePickerTriggerToken);\n\n\tpublic readonly align = input<BrnPopoverAlign>('center');\n\n\t/** The minimum date that can be selected.*/\n\tpublic readonly minDate = input<T>();\n\n\t/** The maximum date that can be selected. */\n\tpublic readonly maxDate = input<T>();\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The selected value. */\n\tpublic readonly date = input<T>();\n\n\t/** The date the calendar focuses on first open when no date is selected. */\n\tpublic readonly defaultFocusedDate = input<T>();\n\n\tprotected readonly _mutableDate = linkedSignal(this.date);\n\n\t/** If true, the date picker will close when a date is selected. */\n\tpublic readonly autoCloseOnSelect = input<boolean, BooleanInput>(this._config.autoCloseOnSelect, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Defines how the date should be displayed in the UI. */\n\tpublic readonly formatDate = input<(date: T) => string>(this._config.formatDate);\n\n\t/** Defines how the date should be transformed before saving to model/form. */\n\tpublic readonly transformDate = input<(date: T) => T>(this._config.transformDate);\n\n\tprotected readonly _popoverState = signal<BrnOverlayState | null>(null);\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\t/** @internal The disabled state as a readonly signal */\n\tpublic readonly disabledState = this._disabled.asReadonly();\n\n\tpublic readonly formattedDate = computed(() => {\n\t\tconst date = this._mutableDate();\n\t\treturn date ? this.formatDate()(date) : undefined;\n\t});\n\n\tpublic readonly dateChange = output<T | null>();\n\n\tpublic readonly labelableId = computed(() => this._trigger()?.triggerId());\n\n\tpublic readonly hasDate = computed(() => !!this._mutableDate());\n\n\t/** @internal The current raw value, used by inputs to reformat on focus. */\n\tpublic readonly value = computed(() => this._mutableDate() ?? null);\n\n\tprotected _onChange?: ChangeFn<T | null>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected _onStateChange(state: BrnOverlayState) {\n\t\tthis._popoverState.set(state);\n\t\tif (state === 'closed') this._onTouched?.();\n\t}\n\n\tprotected _handleChange(value: T | undefined) {\n\t\tif (this._disabled()) return;\n\t\tthis.updateDate(value ?? null);\n\n\t\tif (this.autoCloseOnSelect()) {\n\t\t\tthis._popoverState.set('closed');\n\t\t}\n\t}\n\n\t/**\n\t * Commit a date to the picker. Updates the internal model, notifies form\n\t * controls, and emits `dateChange`. Unlike `_handleChange`, this does not\n\t * close the popover - it's intended to be called from a text input that\n\t * is parsing user-entered values while typing.\n\t */\n\tpublic updateDate(value: T | null) {\n\t\tif (this._disabled()) return;\n\t\tconst transformedDate = value != null ? this.transformDate()(value) : undefined;\n\n\t\tthis._mutableDate.set(transformedDate);\n\t\tthis._onChange?.(transformedDate ?? null);\n\t\tthis.dateChange.emit(transformedDate ?? null);\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\tpublic writeValue(value: T | null): void {\n\t\tthis._mutableDate.set(value ? this.transformDate()(value) : undefined);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T | null>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic touched(): void {\n\t\tthis._onTouched?.();\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n\n\tpublic open() {\n\t\tthis._popoverState.set('open');\n\t}\n\n\tpublic close() {\n\t\tthis._popoverState.set('closed');\n\t}\n\n\tpublic reset() {\n\t\tthis._mutableDate.set(undefined);\n\t\tthis._onChange?.(null);\n\t\tthis.dateChange.emit(null);\n\t}\n}\n","import { HlmDateMultiInput } from './lib/hlm-date-multi-input';\nimport { HlmDatePicker } from './lib/hlm-date-picker';\nimport { HlmDatePickerAnchor } from './lib/hlm-date-picker-anchor';\nimport { HlmDatePickerInput } from './lib/hlm-date-picker-input';\nimport { HlmDatePickerMulti } from './lib/hlm-date-picker-multi';\nimport { HlmDatePickerTrigger } from './lib/hlm-date-picker-trigger';\nimport { HlmDateRangeInput } from './lib/hlm-date-range-input';\nimport { HlmDateRangePicker } from './lib/hlm-date-range-picker';\nimport { HlmMonthYearInput } from './lib/hlm-month-year-input';\nimport { HlmMonthYearPicker } from './lib/hlm-month-year-picker';\n\nexport * from './lib/hlm-date-multi-input';\nexport * from './lib/hlm-date-picker';\nexport * from './lib/hlm-date-picker-anchor';\nexport * from './lib/hlm-date-picker-input';\nexport * from './lib/hlm-date-picker-multi';\nexport * from './lib/hlm-date-picker-multi.token';\nexport * from './lib/hlm-date-picker-trigger';\nexport * from './lib/hlm-date-picker.token';\nexport * from './lib/hlm-date-range-input';\nexport * from './lib/hlm-date-range-picker';\nexport * from './lib/hlm-date-range-picker.token';\nexport * from './lib/hlm-month-year-input';\nexport * from './lib/hlm-month-year-picker';\nexport * from './lib/hlm-month-year-picker.token';\n\nexport const HlmDatePickerImports = [\n\tHlmDatePicker,\n\tHlmDatePickerAnchor,\n\tHlmDatePickerInput,\n\tHlmDatePickerMulti,\n\tHlmDateMultiInput,\n\tHlmDateRangeInput,\n\tHlmDateRangePicker,\n\tHlmDatePickerTrigger,\n\tHlmMonthYearPicker,\n\tHlmMonthYearInput,\n] as const;\n","import { afterRenderEffect, type Provider } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n/*\n * Internal helpers of the lt form controls (not part of the public API).\n */\n\nconst idCounters = new Map<string, number>();\n\n/** Next unique element id `lt-<name>-<n>` (one counter per name). */\nexport function nextLtId(name: string): string {\n const next = (idCounters.get(name) ?? 0) + 1;\n idCounters.set(name, next);\n return `lt-${name}-${next}`;\n}\n\n/**\n * View provider that hides a Signal Forms `[formField]` on the lt control's host from the Spartan primitives inside\n * the control. Without it the inner `hlmInput` / select / date picker would pick up the `NgControl` of the host and\n * write their own `aria-invalid` (validity without the touched state), competing with the control's own state.\n */\nexport const LT_NO_NG_CONTROL: Provider = { provide: NgControl, useValue: null };\n\n/**\n * Keeps `aria-invalid` on an inner element in sync with `invalid`.\n *\n * Spartan's input primitives own `aria-invalid` through a host binding that writes `null` on its first pass, which wipes\n * a template binding on the same element. Writing after render makes the lt control the only writer.\n */\nexport function ltSyncAriaInvalid(target: () => Element | null | undefined, invalid: () => boolean): void {\n afterRenderEffect({\n write: () => {\n const element = target();\n if (!element) {\n return;\n }\n if (invalid()) {\n element.setAttribute('aria-invalid', 'true');\n } else {\n element.removeAttribute('aria-invalid');\n }\n },\n });\n}\n\n/** First human readable message of a Signal Forms error list, or `null`. */\nexport function ltFirstErrorMessage(errors: readonly { message?: string }[] | null | undefined): string | null {\n return errors?.find((error) => !!error.message)?.message ?? null;\n}\n\n/** Transform of string inputs that Signal Forms may bind (`undefined` / `null` become `''`). */\nexport function ltOptionalString(value: unknown): string {\n return typeof value === 'string' ? value : value === null || value === undefined ? '' : String(value);\n}\n","import { type Provider } from '@angular/core';\nimport { type BrnCalendarI18n, BrnCalendarI18nService, BrnCalendarI18nToken } from '@spartan-ng/brain/calendar';\nimport { injectLtUiI18n } from './i18n';\n\n/*\n * Date helpers of the lt date pickers: German format `dd.MM.yyyy`, local dates (no time zone conversion).\n */\n\n/** Local midnight of `date`. */\nexport function ltStartOfDay(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n\n/** Whether `a` and `b` are the same local day. */\nexport function ltIsSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean {\n return !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\n\n/** `dd.MM.yyyy`. */\nexport function ltFormatDate(date: Date): string {\n return `${pad(date.getDate())}.${pad(date.getMonth() + 1)}.${String(date.getFullYear()).padStart(4, '0')}`;\n}\n\n/** `HH:mm` (24 h). */\nexport function ltFormatTime(date: Date): string {\n return `${pad(date.getHours())}:${pad(date.getMinutes())}`;\n}\n\n/**\n * Parse a typed or scanned date (local midnight), or `null` when it is no real calendar date.\n *\n * Accepted: `d.M.yyyy`, `d.M.yy` (20yy), `ddMMyyyy`, `ddMMyy` and ISO `yyyy-MM-dd`.\n */\nexport function ltParseDate(value: string): Date | null {\n const text = value.trim();\n let day: number;\n let month: number;\n let year: number;\n let match: RegExpMatchArray | null;\n if ((match = text.match(/^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2}|\\d{4})$/))) {\n [day, month, year] = [Number(match[1]), Number(match[2]), Number(match[3])];\n if (match[3]!.length === 2) {\n year += 2000;\n }\n } else if ((match = text.match(/^(\\d{2})(\\d{2})(\\d{2}|\\d{4})$/))) {\n [day, month, year] = [Number(match[1]), Number(match[2]), Number(match[3])];\n if (match[3]!.length === 2) {\n year += 2000;\n }\n } else if ((match = text.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/))) {\n [year, month, day] = [Number(match[1]), Number(match[2]), Number(match[3])];\n } else {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\n\n/** Parse `HH:mm` into hours and minutes, or `null`. */\nexport function ltParseTime(value: string): { hours: number; minutes: number } | null {\n const match = value.trim().match(/^(\\d{1,2}):(\\d{2})(?::\\d{2}(?:\\.\\d+)?)?$/);\n if (!match) {\n return null;\n }\n const hours = Number(match[1]);\n const minutes = Number(match[2]);\n return hours < 24 && minutes < 60 ? { hours, minutes } : null;\n}\n\n/** Whether `date` (a day) lies within `min`/`max` (compared by day). */\nexport function ltIsDayInRange(date: Date, min: Date | undefined, max: Date | undefined): boolean {\n const day = ltStartOfDay(date).getTime();\n return (!min || day >= ltStartOfDay(min).getTime()) && (!max || day <= ltStartOfDay(max).getTime());\n}\n\n/**\n * Calendar texts for the active locale (month and weekday names via `Intl`, week starts on Monday except for English,\n * navigation labels from `lt.ui.previousMonth` / `lt.ui.nextMonth`).\n */\nexport function provideLtCalendarI18n(): Provider {\n return {\n provide: BrnCalendarI18nToken,\n useFactory: () => {\n const i18n = injectLtUiI18n();\n const service = new BrnCalendarI18nService();\n service.use(ltCalendarI18n(i18n.locale(), (key) => i18n.t(key)));\n return service;\n },\n };\n}\n\n/** Spartan calendar i18n for `locale`. */\nexport function ltCalendarI18n(locale: string, t: (key: string) => string): Partial<BrnCalendarI18n> {\n const weekday = (index: number, style: 'long' | 'short') => new Intl.DateTimeFormat(locale, { weekday: style }).format(new Date(2024, 0, 7 + index));\n const months = Array.from({ length: 12 }, (_, month) => new Intl.DateTimeFormat(locale, { month: 'long' }).format(new Date(2024, month, 1)));\n return {\n firstDayOfWeek: () => (locale.startsWith('en') ? 0 : 1),\n formatHeader: (month, year) => new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(new Date(year, month, 1)),\n formatMonth: (month) => new Intl.DateTimeFormat(locale, { month: 'short' }).format(new Date(2024, month, 1)),\n formatWeekdayName: (index) => weekday(index, 'short').slice(0, 2),\n formatYear: (year) => String(year),\n labelNext: () => t('lt.ui.nextMonth'),\n labelPrevious: () => t('lt.ui.previousMonth'),\n labelWeekday: (index) => weekday(index, 'long'),\n months: () => months as ReturnType<BrnCalendarI18n['months']>,\n };\n}\n\nfunction pad(value: number): string {\n return String(value).padStart(2, '0');\n}\n","import { afterRenderEffect, booleanAttribute, Component, computed, ElementRef, inject, input, model, output, signal } from '@angular/core';\nimport { FORM_FIELD, type FormValueControl } from '@angular/forms/signals';\n\nimport { HlmDatePicker, HlmDatePickerInput } from '../helm/date-picker';\nimport { LT_NO_NG_CONTROL, nextLtId } from './control';\nimport { ltFormatDate, ltIsDayInRange, ltParseDate, ltStartOfDay, provideLtCalendarI18n } from './date-utils';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Date picker (Spartan date picker, German format by default, min/max). Value is a `Date` (local midnight) or `null`.\n *\n * - Type the date (`dd.MM.yyyy`, also `d.M.yy`, `ddMMyyyy` or ISO `yyyy-MM-dd`; ENTER or leaving the field commits),\n * or open the calendar with the calendar button / ↓. Dates outside `min`/`max` are rejected (the value becomes\n * `null`, the text stays for correction) and disabled in the calendar.\n * - Label: wrap it in `lt-form-field` (`for` = `id`), which also wires hint/error via `aria-describedby`; `label` sets\n * an accessible label without a visible one.\n * - Signal Forms: a `FormValueControl<Date | null>` (`[formField]`; `min`/`max`/`disabled`/`required` follow the field,\n * `invalid` shows once touched).\n * - The calendar follows the active `LtI18nService` locale (month/weekday names, Monday first except for English).\n */\n@Component({\n selector: 'lt-date-picker',\n imports: [HlmDatePicker, HlmDatePickerInput],\n viewProviders: [LT_NO_NG_CONTROL, provideLtCalendarI18n()],\n // The id belongs to the inner input: drop a static `id` attribute from the host (no duplicate ids).\n host: { class: 'block', '[attr.id]': 'null', '(focusout)': 'onFocusOut($event)' },\n templateUrl: './date-picker.html',\n})\nexport class LtDatePicker implements FormValueControl<Date | null> {\n protected readonly i18n = injectLtUiI18n();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly formField = inject(FORM_FIELD, { optional: true, self: true });\n private readonly generatedId = nextLtId('date-picker');\n private readonly blurred = signal(false);\n\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Display format (default `dd.MM.yyyy`). */\n readonly formatDate = input<(date: Date) => string>(ltFormatDate);\n readonly id = input<string>();\n /** Marks the date invalid (`aria-invalid`); with Signal Forms it shows once touched. */\n readonly invalid = input(false, { transform: booleanAttribute });\n /** Accessible label when no visible label (`lt-form-field`) is linked. */\n readonly label = input<string>();\n readonly max = input<Date>();\n readonly min = input<Date>();\n /** Parser of typed text (default: German formats and ISO, see above). */\n readonly parseDate = input<(value: string) => Date | null>(ltParseDate);\n /** Placeholder (default `lt.ui.dateFormat`, e.g. `TT.MM.JJJJ`). */\n readonly placeholder = input<string>();\n readonly required = input(false, { transform: booleanAttribute });\n /** Touched state (bound by Signal Forms). */\n readonly touched = input(false, { transform: booleanAttribute });\n readonly value = model<Date | null>(null);\n /** Focus left the picker (marks a Signal Forms field as touched). */\n readonly touch = output<void>();\n\n protected readonly inputId = computed(() => this.id() || this.generatedId);\n protected readonly placeholderText = computed(() => this.placeholder() ?? this.i18n.t('lt.ui.dateFormat'));\n protected readonly showInvalid = computed(() => this.invalid() && (!this.formField || this.touched() || this.blurred()));\n protected readonly startOfDay = ltStartOfDay;\n /** Parser that also rejects dates outside min/max. */\n protected readonly parse = computed(() => {\n const parseDate = this.parseDate();\n const min = this.min();\n const max = this.max();\n return (text: string): Date | null => {\n const date = parseDate(text);\n return date && ltIsDayInRange(date, min, max) ? ltStartOfDay(date) : null;\n };\n });\n\n constructor() {\n // The text input lives inside Spartan's date picker input; its own `aria-invalid` binding only knows NgControl.\n afterRenderEffect({\n write: () => {\n const element = this.inputElement();\n if (!element) {\n return;\n }\n toggleAttribute(element, 'aria-invalid', this.showInvalid() ? 'true' : null);\n toggleAttribute(element, 'aria-required', this.required() ? 'true' : null);\n },\n });\n }\n\n /** Focus the text input. */\n focus(options?: FocusOptions): void {\n this.inputElement()?.focus(options);\n }\n\n protected onDateChange(date: Date | null): void {\n this.value.set(date ? ltStartOfDay(date) : null);\n }\n\n protected onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget;\n if (next instanceof Node && this.host.nativeElement.contains(next)) {\n return;\n }\n this.blurred.set(true);\n this.touch.emit();\n }\n\n private inputElement(): HTMLInputElement | null {\n return this.host.nativeElement.querySelector<HTMLInputElement>(`input[id=\"${this.inputId()}\"]`);\n }\n}\n\nfunction toggleAttribute(element: Element, name: string, value: string | null): void {\n if (value === null) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value);\n }\n}\n","@if (label()) {\n <label class=\"sr-only\" [for]=\"inputId()\">{{ label() }}</label>\n}\n<hlm-date-picker\n [date]=\"value() ?? undefined\"\n [minDate]=\"min()\"\n [maxDate]=\"max()\"\n [disabled]=\"disabled()\"\n [formatDate]=\"formatDate()\"\n [transformDate]=\"startOfDay\"\n [autoCloseOnSelect]=\"true\"\n (dateChange)=\"onDateChange($event)\"\n>\n <hlm-date-picker-input\n [inputId]=\"inputId()\"\n [placeholder]=\"placeholderText()\"\n [parseDate]=\"parse()\"\n [formatInputDate]=\"formatDate()\"\n [forceInvalid]=\"showInvalid()\"\n [clearAriaLabel]=\"i18n.t('lt.ui.clearDate')\"\n [calendarAriaLabel]=\"i18n.t('lt.ui.openCalendar')\"\n />\n</hlm-date-picker>\n","import { Directive, input } from '@angular/core';\nimport { BrnField } from '@spartan-ng/brain/field';\nimport { classes } from '../../utils';\nimport { cva, VariantProps } from 'class-variance-authority';\n\nconst fieldVariants = cva('data-[matches-spartan-invalid=true]:text-destructive gap-3 group/field flex w-full', {\n\tvariants: {\n\t\torientation: {\n\t\t\tvertical: 'flex-col *:w-full [&>.sr-only]:w-auto',\n\t\t\thorizontal: [\n\t\t\t\t'flex-row items-center',\n\t\t\t\t'*:data-[slot=field-label]:flex-auto',\n\t\t\t\t'has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n\t\t\t],\n\t\t\tresponsive: [\n\t\t\t\t'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto [&>.sr-only]:w-auto',\n\t\t\t\t'@md/field-group:*:data-[slot=field-label]:flex-auto',\n\t\t\t\t'@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n\t\t\t],\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\torientation: 'vertical',\n\t},\n});\n\nexport type FieldVariants = VariantProps<typeof fieldVariants>;\n\n@Directive({\n\tselector: '[hlmField],hlm-field',\n\texportAs: 'hlmField',\n\thostDirectives: [{ directive: BrnField, inputs: ['data-invalid', 'forceInvalid'] }],\n\thost: {\n\t\trole: 'group',\n\t\t'data-slot': 'field',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t},\n})\nexport class HlmField {\n\tpublic readonly orientation = input<FieldVariants['orientation']>('vertical');\n\n\tconstructor() {\n\t\tclasses(() => fieldVariants({ orientation: this.orientation() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmFieldContent],hlm-field-content',\n\texportAs: 'hlmFieldContent',\n\thost: { 'data-slot': 'field-content' },\n})\nexport class HlmFieldContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-1 group/field-content flex flex-1 flex-col leading-snug');\n\t}\n}\n","import { Directive, effect, EffectRef, inject, input, OnDestroy } from '@angular/core';\nimport { BrnFieldA11yService } from '@spartan-ng/brain/field';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmFieldDescription],hlm-field-description',\n\texportAs: 'hlmFieldDescription',\n\thost: {\n\t\t'data-slot': 'field-description',\n\t\t'[attr.id]': 'id()',\n\t},\n})\nexport class HlmFieldDescription implements OnDestroy {\n\tprivate static _id = 0;\n\n\tprivate readonly _a11y = inject(BrnFieldA11yService, { optional: true, host: true });\n\n\tpublic readonly id = input<string>(`hlm-field-description-${HlmFieldDescription._id++}`);\n\n\tprivate _registeredId?: string;\n\n\tprivate readonly _cleanup: EffectRef | null = this._a11y\n\t\t? effect(() => {\n\t\t\t\tconst a11y = this._a11y;\n\t\t\t\tif (!a11y) return;\n\n\t\t\t\tconst id = this.id();\n\t\t\t\tif (this._registeredId && this._registeredId !== id) {\n\t\t\t\t\ta11y.unregisterDescription(this._registeredId);\n\t\t\t\t}\n\n\t\t\t\tif (this._registeredId !== id) {\n\t\t\t\t\ta11y.registerDescription(id);\n\t\t\t\t\tthis._registeredId = id;\n\t\t\t\t}\n\t\t\t})\n\t\t: null;\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'text-muted-foreground text-start text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance',\n\t\t\t'last:mt-0 nth-last-2:-mt-1',\n\t\t\t'[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n\t\t]);\n\t}\n\n\tngOnDestroy() {\n\t\tthis._cleanup?.destroy();\n\n\t\tif (this._registeredId) {\n\t\t\tthis._a11y?.unregisterDescription(this._registeredId);\n\t\t}\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\tEffectRef,\n\tinject,\n\tinput,\n\tOnDestroy,\n} from '@angular/core';\nimport { BrnField, BrnFieldA11yService } from '@spartan-ng/brain/field';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-field-error',\n\texportAs: 'hlmFieldError',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\trole: 'alert',\n\t\t'data-slot': 'field-error',\n\t\t'[attr.id]': 'id()',\n\t\t'[hidden]': '!_display()',\n\t},\n\ttemplate: `\n\t\t@if (_display()) {\n\t\t\t<ng-content />\n\t\t}\n\t`,\n})\nexport class HlmFieldError implements OnDestroy {\n\tprivate static _id = 0;\n\n\tprivate readonly _field = inject(BrnField, { optional: true });\n\tprivate readonly _a11y = inject(BrnFieldA11yService, { optional: true, host: true });\n\n\tprivate _registeredId?: string | undefined;\n\n\tprivate readonly _hasParentField = !!this._field;\n\n\t/** The unique ID for the field error. If none is supplied, it will be auto-generated. */\n\tpublic readonly id = input<string>(`hlm-field-error-${HlmFieldError._id++}`);\n\n\t/**\n\t * The name of the specific validator error key to match (e.g. 'required').\n\t * When omitted, the error is shown if any validation error is present.\n\t */\n\tpublic readonly validator = input<string>();\n\n\t/** Forces the error message to be visible regardless of the control's validation state. */\n\tpublic readonly forceShow = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tprotected readonly _display = computed(() => !this._hasParentField || this.forceShow() || this._hasError());\n\n\tprotected readonly _hasError = computed(() => {\n\t\tconst errors = this._field?.errors();\n\t\tif (!errors) return false;\n\n\t\tconst validator = this.validator();\n\t\tconst spartanInvalid = this._field?.controlState()?.spartanInvalid;\n\n\t\tif (!spartanInvalid) return false;\n\n\t\treturn validator ? validator in errors : Object.keys(errors).length > 0;\n\t});\n\n\tprivate readonly _cleanup: EffectRef | null = this._a11y\n\t\t? effect(() => {\n\t\t\t\tconst a11y = this._a11y;\n\t\t\t\tif (!a11y) return;\n\n\t\t\t\tconst id = this.id();\n\t\t\t\tconst hasError = this._hasError();\n\n\t\t\t\tif (this._registeredId && (this._registeredId !== id || !hasError)) {\n\t\t\t\t\ta11y.unregisterError(this._registeredId);\n\t\t\t\t\tthis._registeredId = undefined;\n\t\t\t\t}\n\n\t\t\t\tif (hasError && this._registeredId !== id) {\n\t\t\t\t\ta11y.registerError(id);\n\t\t\t\t\tthis._registeredId = id;\n\t\t\t\t}\n\t\t\t})\n\t\t: null;\n\n\tconstructor() {\n\t\tclasses(() => 'text-destructive text-sm font-normal');\n\t}\n\n\tngOnDestroy() {\n\t\tthis._cleanup?.destroy();\n\n\t\tif (this._registeredId) {\n\t\t\tthis._a11y?.unregisterError(this._registeredId);\n\t\t}\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmFieldGroup],hlm-field-group',\n\texportAs: 'hlmFieldGroup',\n\thost: { 'data-slot': 'field-group' },\n})\nexport class HlmFieldGroup {\n\tconstructor() {\n\t\tclasses(() => 'gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnLabel } from '@spartan-ng/brain/label';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmLabel]',\n\texportAs: 'hlmLabel',\n\thostDirectives: [{ directive: BrnLabel, inputs: ['id', 'for'] }],\n\thost: { 'data-slot': 'label' },\n})\nexport class HlmLabel {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed',\n\t\t);\n\t}\n}\n","import { HlmLabel } from './lib/hlm-label';\n\nexport * from './lib/hlm-label';\n\nexport const HlmLabelImports = [HlmLabel] as const;\n","import { Directive } from '@angular/core';\nimport { HlmLabel } from '../../label';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmFieldLabel],hlm-field-label',\n\texportAs: 'hlmFieldLabel',\n\thostDirectives: [HlmLabel],\n\thost: { 'data-slot': 'field-label' },\n})\nexport class HlmFieldLabel {\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3 group/field-label peer/field-label flex w-fit',\n\t\t\t'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',\n\t\t]);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'legend[hlmFieldLegend]',\n\texportAs: 'hlmFieldLegend',\n\thost: {\n\t\t'data-slot': 'field-legend',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmFieldLegend {\n\tpublic readonly variant = input<'label' | 'legend'>('legend');\n\n\tconstructor() {\n\t\tclasses(() => 'mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSeparator } from '@spartan-ng/brain/separator';\nimport { classes } from '../../utils';\n\nexport const hlmSeparatorClass =\n\t'inline-flex shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch';\n\n@Directive({\n\tselector: '[hlmSeparator],hlm-separator',\n\texportAs: 'hlmSeparator',\n\thostDirectives: [{ directive: BrnSeparator, inputs: ['orientation', 'decorative'] }],\n\thost: {\n\t\t'data-slot': 'separator',\n\t},\n})\nexport class HlmSeparator {\n\tconstructor() {\n\t\tclasses(() => hlmSeparatorClass);\n\t}\n}\n","import { HlmSeparator } from './lib/hlm-separator';\n\nexport * from './lib/hlm-separator';\n\nexport const HlmSeparatorImports = [HlmSeparator] as const;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { HlmSeparator } from '../../separator';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-field-separator',\n\texportAs: 'hlmFieldSeparator',\n\timports: [HlmSeparator],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'field-separator' },\n\ttemplate: `\n\t\t<hlm-separator class=\"absolute inset-0 top-1/2\" />\n\t\t<span\n\t\t\tdata-slot=\"field-separator-content\"\n\t\t\tclass=\"text-muted-foreground px-2 bg-background relative mx-auto block w-fit\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</span>\n\t`,\n})\nexport class HlmFieldSeparator {\n\tconstructor() {\n\t\tclasses(() => '-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'fieldset[hlmFieldSet]',\n\texportAs: 'hlmFieldSet',\n\thost: { 'data-slot': 'field-set' },\n})\nexport class HlmFieldSet {\n\tconstructor() {\n\t\tclasses(() => 'gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmFieldTitle],hlm-field-title',\n\texportAs: 'hlmFieldTitle',\n\thost: { 'data-slot': 'field-label' },\n})\nexport class HlmFieldTitle {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center');\n\t}\n}\n","import { HlmField } from './lib/hlm-field';\nimport { HlmFieldContent } from './lib/hlm-field-content';\nimport { HlmFieldDescription } from './lib/hlm-field-description';\nimport { HlmFieldError } from './lib/hlm-field-error';\nimport { HlmFieldGroup } from './lib/hlm-field-group';\nimport { HlmFieldLabel } from './lib/hlm-field-label';\nimport { HlmFieldLegend } from './lib/hlm-field-legend';\nimport { HlmFieldSeparator } from './lib/hlm-field-separator';\nimport { HlmFieldSet } from './lib/hlm-field-set';\nimport { HlmFieldTitle } from './lib/hlm-field-title';\n\nexport * from './lib/hlm-field';\nexport * from './lib/hlm-field-content';\nexport * from './lib/hlm-field-description';\nexport * from './lib/hlm-field-error';\nexport * from './lib/hlm-field-group';\nexport * from './lib/hlm-field-label';\nexport * from './lib/hlm-field-legend';\nexport * from './lib/hlm-field-separator';\nexport * from './lib/hlm-field-set';\nexport * from './lib/hlm-field-title';\n\nexport const HlmFieldImports = [\n\tHlmField,\n\tHlmFieldContent,\n\tHlmFieldDescription,\n\tHlmFieldError,\n\tHlmFieldGroup,\n\tHlmFieldLabel,\n\tHlmFieldLegend,\n\tHlmFieldSeparator,\n\tHlmFieldSet,\n\tHlmFieldTitle,\n] as const;\n","import { booleanAttribute, Component, computed, effect, inject, input } from '@angular/core';\nimport { BrnFieldA11yService } from '@spartan-ng/brain/field';\n\nimport { HlmField, HlmFieldDescription, HlmFieldError } from '../helm/field';\nimport { HlmLabel } from '../helm/label';\n\n/**\n * Label, control, hint and error of one form field (on Spartan's `field`). Project the control; give it the `id`\n * passed as `for`. The error is announced (`role=\"alert\"`) and wired via `aria-describedby` by `LtTextField`;\n * for own controls set `aria-describedby=\"<for>-hint <for>-error\"` and `aria-invalid`.\n *\n * Projected Spartan controls (`hlmInput`, `hlm-select-trigger`, the date picker input, `lt-select`, `lt-date-picker`,\n * `lt-password-input` …) get `aria-describedby` automatically: the field registers `<for>-hint` and `<for>-error` with\n * Spartan's field a11y service. The label has the id `<for>-label`; the required asterisk is hidden from assistive\n * technology (set `required` on the control as well).\n *\n * @example\n * <lt-form-field for=\"email\" label=\"E-Mail\" [error]=\"emailError()\">\n * <input hlmInput id=\"email\" type=\"email\" autocomplete=\"email\" [formField]=\"form.email\" />\n * </lt-form-field>\n */\n@Component({\n selector: 'lt-form-field',\n imports: [HlmFieldDescription, HlmFieldError, HlmLabel],\n hostDirectives: [{ directive: HlmField, inputs: ['orientation'] }],\n templateUrl: './form-field.html',\n})\nexport class LtFormField {\n private readonly a11y = inject(BrnFieldA11yService);\n\n /**\n * Ids of further elements that describe the control (unit, prefix …); registered for `aria-describedby` together with\n * the hint (errors come last).\n */\n readonly describedBy = input<readonly string[]>([]);\n /** Error message (shown when set). */\n readonly error = input<string | null | undefined>();\n /** Id of the projected control. */\n readonly for = input.required<string>();\n readonly hint = input<string>();\n readonly label = input.required<string>();\n /** Marks the label as required (visual asterisk; set `required` on the control too). */\n readonly required = input(false, { transform: booleanAttribute });\n\n protected readonly labelId = computed(() => `${this.for()}-label`);\n protected readonly hintId = computed(() => `${this.for()}-hint`);\n protected readonly errorId = computed(() => `${this.for()}-error`);\n\n constructor() {\n effect((onCleanup) => {\n const ids = this.describedBy();\n ids.forEach((id) => this.a11y.registerDescription(id));\n onCleanup(() => ids.forEach((id) => this.a11y.unregisterDescription(id)));\n });\n effect((onCleanup) => {\n if (!this.hint()) {\n return;\n }\n const id = this.hintId();\n this.a11y.registerDescription(id);\n onCleanup(() => this.a11y.unregisterDescription(id));\n });\n effect((onCleanup) => {\n if (!this.error()) {\n return;\n }\n const id = this.errorId();\n this.a11y.registerError(id);\n onCleanup(() => this.a11y.unregisterError(id));\n });\n }\n}\n","<label hlmLabel data-slot=\"field-label\" class=\"w-fit leading-snug\" [id]=\"labelId()\" [for]=\"for()\" [class.text-destructive]=\"!!error()\">\n {{ label() }}\n @if (required()) {\n <span class=\"text-destructive\" aria-hidden=\"true\">*</span>\n }\n</label>\n<ng-content />\n@if (hint()) {\n <p hlmFieldDescription [id]=\"hintId()\">{{ hint() }}</p>\n}\n@if (error()) {\n <hlm-field-error [id]=\"errorId()\" forceShow>{{ error() }}</hlm-field-error>\n}\n","import { booleanAttribute, Component, computed, ElementRef, inject, input, linkedSignal, model, numberAttribute, output, signal, viewChild } from '@angular/core';\nimport { FORM_FIELD, type FormValueControl } from '@angular/forms/signals';\n\nimport { HlmInput } from '../helm/input';\nimport { LT_NO_NG_CONTROL, ltSyncAriaInvalid, nextLtId } from './control';\nimport { LtDatePicker } from './date-picker';\nimport { ltFormatTime, ltIsSameDay, ltParseTime, ltStartOfDay } from './date-utils';\nimport { LtFormField } from './form-field';\nimport { injectLtUiI18n } from './i18n';\n\nconst MINUTES_PER_DAY = 24 * 60;\n\n/**\n * Date and time picker (own, Spartan has none): the date picker plus a time input (`HH:mm`, step in minutes).\n * Value is a `Date` with the chosen time (local) or `null`.\n *\n * - The date part is an {@link LtDatePicker} with the given `id` (so a wrapping `lt-form-field` labels it); the time is\n * a native `<input type=\"time\">` (keyboard and scanner friendly) labelled \"<label> – Uhrzeit\".\n * - The time snaps to `minuteStep`; the combined value is clamped into `min`/`max` (the time input gets `min`/`max`\n * on those days). Without a time, a picked date starts at 00:00; a time without a date keeps the value `null`.\n * - Signal Forms: a `FormValueControl<Date | null>` (`[formField]`).\n */\n@Component({\n selector: 'lt-date-time-picker',\n imports: [HlmInput, LtDatePicker],\n viewProviders: [LT_NO_NG_CONTROL],\n // The id belongs to the inner date input: drop a static `id` attribute from the host (no duplicate ids).\n host: { class: 'block', '[attr.id]': 'null', '(focusout)': 'onFocusOut($event)' },\n templateUrl: './date-time-picker.html',\n})\nexport class LtDateTimePicker implements FormValueControl<Date | null> {\n private readonly i18n = injectLtUiI18n();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly formField = inject(FORM_FIELD, { optional: true, self: true });\n private readonly parentField = inject(LtFormField, { optional: true });\n private readonly generatedId = nextLtId('date-time-picker');\n private readonly timeInput = viewChild<ElementRef<HTMLInputElement>>('time');\n private readonly blurred = signal(false);\n\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly id = input<string>();\n /** Marks the value invalid (`aria-invalid`); with Signal Forms it shows once touched. */\n readonly invalid = input(false, { transform: booleanAttribute });\n /** Accessible label when no visible label (`lt-form-field`) is linked. */\n readonly label = input<string>();\n readonly max = input<Date>();\n readonly min = input<Date>();\n /** Minute step of the time input (default 1). */\n readonly minuteStep = input(1, { transform: numberAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n /** Touched state (bound by Signal Forms). */\n readonly touched = input(false, { transform: booleanAttribute });\n readonly value = model<Date | null>(null);\n /** Focus left the picker (marks a Signal Forms field as touched). */\n readonly touch = output<void>();\n\n protected readonly dateId = computed(() => this.id() || this.generatedId);\n protected readonly timeId = computed(() => `${this.dateId()}-time`);\n protected readonly timeLabel = computed(() => {\n const base = this.label() || this.parentField?.label();\n return base ? `${base} – ${this.i18n.t('lt.ui.time')}` : this.i18n.t('lt.ui.time');\n });\n protected readonly showInvalid = computed(() => this.invalid() && (!this.formField || this.touched() || this.blurred()));\n protected readonly step = computed(() => Math.max(1, Math.floor(this.minuteStep() || 1)));\n protected readonly datePart = computed(() => {\n const value = this.value();\n return value ? ltStartOfDay(value) : null;\n });\n protected readonly minDay = computed(() => {\n const min = this.min();\n return min ? ltStartOfDay(min) : undefined;\n });\n protected readonly maxDay = computed(() => {\n const max = this.max();\n return max ? ltStartOfDay(max) : undefined;\n });\n /** Time text; follows the value and keeps a time typed before a date was picked. */\n protected readonly timeText = linkedSignal(() => {\n const value = this.value();\n return value ? ltFormatTime(value) : '';\n });\n protected readonly timeMin = computed(() => {\n const min = this.min();\n return min && ltIsSameDay(this.datePart(), min) ? ltFormatTime(min) : null;\n });\n protected readonly timeMax = computed(() => {\n const max = this.max();\n return max && ltIsSameDay(this.datePart(), max) ? ltFormatTime(max) : null;\n });\n\n constructor() {\n ltSyncAriaInvalid(() => this.timeInput()?.nativeElement, this.showInvalid);\n }\n\n /** Focus the date input. */\n focus(options?: FocusOptions): void {\n this.host.nativeElement.querySelector<HTMLInputElement>(`input[id=\"${this.dateId()}\"]`)?.focus(options);\n }\n\n protected onDateChange(date: Date | null): void {\n if (!date) {\n this.value.set(null);\n return;\n }\n this.commit(date, this.timeText());\n }\n\n protected onTimeChange(event: Event): void {\n const text = (event.target as HTMLInputElement).value;\n this.timeText.set(text);\n const date = this.datePart();\n if (date) {\n this.commit(date, text);\n }\n }\n\n protected onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget;\n if (next instanceof Node && this.host.nativeElement.contains(next)) {\n return;\n }\n this.blurred.set(true);\n this.touch.emit();\n }\n\n /** Combine day and time, snap to the minute step and clamp into min/max. */\n private commit(day: Date, time: string): void {\n const parsed = ltParseTime(time) ?? { hours: 0, minutes: 0 };\n const step = this.step();\n let minutes = Math.round((parsed.hours * 60 + parsed.minutes) / step) * step;\n if (minutes >= MINUTES_PER_DAY) {\n minutes = Math.floor((MINUTES_PER_DAY - 1) / step) * step;\n }\n let result = new Date(day.getFullYear(), day.getMonth(), day.getDate(), Math.floor(minutes / 60), minutes % 60);\n const min = this.min();\n const max = this.max();\n if (min && result.getTime() < min.getTime()) {\n result = withoutSeconds(min);\n }\n if (max && result.getTime() > max.getTime()) {\n result = withoutSeconds(max);\n }\n this.value.set(result);\n this.timeText.set(ltFormatTime(result));\n }\n}\n\nfunction withoutSeconds(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes());\n}\n","<div class=\"flex flex-wrap items-start gap-2\">\n <lt-date-picker\n class=\"min-w-44 flex-1\"\n [id]=\"dateId()\"\n [label]=\"label()\"\n [value]=\"datePart()\"\n [min]=\"minDay()\"\n [max]=\"maxDay()\"\n [disabled]=\"disabled()\"\n [invalid]=\"showInvalid()\"\n [required]=\"required()\"\n (valueChange)=\"onDateChange($event)\"\n />\n <label class=\"sr-only\" [for]=\"timeId()\">{{ timeLabel() }}</label>\n <input\n #time\n hlmInput\n type=\"time\"\n class=\"w-32\"\n [id]=\"timeId()\"\n [step]=\"step() * 60\"\n [attr.min]=\"timeMin()\"\n [attr.max]=\"timeMax()\"\n [value]=\"timeText()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [forceInvalid]=\"showInvalid()\"\n (change)=\"onTimeChange($event)\"\n />\n</div>\n","import { Directive, ElementRef, inject, output } from '@angular/core';\n\n/**\n * Emits on ENTER in an input (barcode/RFID scanners send ENTER after the code) and prevents the implicit form\n * submit. `ltEnterAction` emits the input's value. ENTER during an IME composition is ignored.\n *\n * @example <input hlmInput (ltEnterAction)=\"lookup($event)\" />\n */\n@Directive({\n selector: '[ltEnterAction]',\n host: { '(keydown.enter)': 'onEnter($event)' },\n})\nexport class LtEnterAction {\n private readonly element = inject<ElementRef<HTMLInputElement | HTMLTextAreaElement>>(ElementRef);\n\n readonly ltEnterAction = output<string>();\n\n protected onEnter(event: Event): void {\n if ((event as KeyboardEvent).isComposing) {\n return;\n }\n event.preventDefault();\n this.ltEnterAction.emit(this.element.nativeElement.value ?? '');\n }\n}\n","import { Component, computed, input } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\n\nimport type { LtNavigationItem } from './navigation-menu';\nimport { injectLtUiI18n } from './i18n';\n\n/** Page footer (`footer`): project content; `links` render as a link row (`nav`, `lt.ui.footerNavigation`). */\n@Component({\n selector: 'lt-footer',\n imports: [RouterLink, RouterLinkActive],\n host: { class: 'block border-t' },\n templateUrl: './footer.html',\n})\nexport class LtFooter {\n private readonly i18n = injectLtUiI18n();\n\n readonly links = input<readonly LtNavigationItem[]>([]);\n /** Accessible name of the link row (default `lt.ui.footerNavigation`). */\n readonly label = input<string>();\n\n protected readonly navLabel = computed(() => this.label() || this.i18n.t('lt.ui.footerNavigation'));\n /** Screen-reader hint for external links. */\n protected readonly newTabHint = computed(() => this.i18n.t('lt.ui.opensInNewTab'));\n}\n","<footer class=\"text-muted-foreground mx-auto flex w-full max-w-7xl flex-col gap-4 px-4 py-6 text-sm sm:flex-row sm:items-center sm:justify-between sm:px-6 lg:px-8\">\n <div class=\"min-w-0\">\n <ng-content />\n </div>\n @if (links().length) {\n <nav [attr.aria-label]=\"navLabel()\">\n <ul class=\"flex flex-wrap gap-x-4 gap-y-2\">\n @for (link of links(); track link.link ?? link.href) {\n <li>\n @if (link.href) {\n <a\n class=\"hover:text-foreground focus-visible:ring-ring/50 rounded-sm underline-offset-4 outline-none hover:underline focus-visible:ring-3\"\n [href]=\"link.href\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >{{ link.label }}<span class=\"sr-only\"> ({{ newTabHint() }})</span></a\n >\n } @else {\n <a\n class=\"hover:text-foreground focus-visible:ring-ring/50 aria-[current=page]:text-foreground rounded-sm underline-offset-4 outline-none hover:underline focus-visible:ring-3\"\n [routerLink]=\"link.link\"\n routerLinkActive\n [routerLinkActiveOptions]=\"{ exact: link.exact ?? false }\"\n ariaCurrentWhenActive=\"page\"\n >{{ link.label }}</a\n >\n }\n </li>\n }\n </ul>\n </nav>\n }\n</footer>\n","import { Directive, computed, effect, input, untracked } from '@angular/core';\nimport { injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport { BrnSheetOverlay } from '@spartan-ng/brain/sheet';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmSheetOverlay],hlm-sheet-overlay',\n\texportAs: 'hlmSheetOverlay',\n\thostDirectives: [BrnSheetOverlay],\n})\nexport class HlmSheetOverlay {\n\tprivate readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() => hlm('data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 isolate bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs', this.userClass()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst classValue = this._computedClass();\n\t\t\tuntracked(() => this._classSettable?.setClassToCustomElement(classValue));\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { BrnDialog, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { BrnSheet } from '@spartan-ng/brain/sheet';\nimport { HlmSheetOverlay } from './hlm-sheet-overlay';\n\n@Component({\n\tselector: 'hlm-sheet',\n\texportAs: 'hlmSheet',\n\timports: [HlmSheetOverlay],\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => BrnSheet),\n\t\t},\n\t\t{\n\t\t\tprovide: BrnSheet,\n\t\t\tuseExisting: forwardRef(() => HlmSheet),\n\t\t},\n\t\tprovideBrnDialogDefaultOptions({\n\t\t\t// add custom options here\n\t\t}),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<hlm-sheet-overlay />\n\t\t<ng-content />\n\t`,\n})\nexport class HlmSheet extends BrnSheet {}\n","import { Directive } from '@angular/core';\nimport { BrnSheetClose } from '@spartan-ng/brain/sheet';\n\n@Directive({\n\tselector: 'button[hlmSheetClose]',\n\texportAs: 'hlmSheetClose',\n\thostDirectives: [BrnSheetClose],\n\thost: { 'data-slot': 'sheet-close' },\n})\nexport class HlmSheetClose {}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { BrnSheet } from '@spartan-ng/brain/sheet';\nimport { HlmButton } from '../../button';\n\nimport { classes } from '../../utils';\nimport { HlmSheetClose } from './hlm-sheet-close';\n\n@Component({\n\tselector: 'hlm-sheet-content',\n\texportAs: 'hlmSheetContent',\n\timports: [HlmButton, HlmSheetClose, NgIcon],\n\tproviders: [provideIcons({ lucideX })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'sheet-content',\n\t\t'[attr.data-side]': '_sheet.sideState()',\n\t\t'[attr.data-state]': 'state()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\n\t\t@if (showCloseButton()) {\n\t\t\t<button hlmBtn variant=\"ghost\" size=\"icon-sm\" class=\"absolute end-4 top-4\" hlmSheetClose>\n\t\t\t\t<span class=\"sr-only\">{{ closeLabel() }}</span>\n\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t</button>\n\t\t}\n\t`,\n})\nexport class HlmSheetContent {\n\tprivate readonly _dialogRef = inject(BrnDialogRef);\n\tprotected readonly _sheet = inject(BrnSheet);\n\n\tpublic readonly state = this._dialogRef.state;\n\n\tpublic readonly showCloseButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\tpublic readonly closeLabel = input<string>('Close');\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-popover text-popover-foreground fixed flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm',\n\t\t\t'data-open:animate-in data-closed:animate-out',\n\t\t\t'data-[side=top]:data-closed:slide-out-to-top data-[side=top]:data-open:slide-in-from-top',\n\t\t\t'data-[side=bottom]:data-closed:slide-out-to-bottom data-[side=bottom]:data-open:slide-in-from-bottom',\n\t\t\t'data-[side=left]:data-closed:slide-out-to-left data-[side=left]:data-open:slide-in-from-left',\n\t\t\t'data-[side=right]:data-closed:slide-out-to-right data-[side=right]:data-open:slide-in-from-right',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSheetDescription } from '@spartan-ng/brain/sheet';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSheetDescription]',\n\texportAs: 'hlmSheetDescription',\n\thostDirectives: [BrnSheetDescription],\n\thost: { 'data-slot': 'sheet-description' },\n})\nexport class HlmSheetDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground text-sm');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSheetFooter],hlm-sheet-footer',\n\texportAs: 'hlmSheetFooter',\n\thost: { 'data-slot': 'sheet-footer' },\n})\nexport class HlmSheetFooter {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 p-4 mt-auto flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSheetHeader],hlm-sheet-header',\n\texportAs: 'hlmSheetHeader',\n\thost: { 'data-slot': 'sheet-header' },\n})\nexport class HlmSheetHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-1.5 p-4 flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSheetContent } from '@spartan-ng/brain/sheet';\n\n@Directive({\n\tselector: '[hlmSheetPortal]',\n\texportAs: 'hlmSheetPortal',\n\thostDirectives: [{ directive: BrnSheetContent, inputs: ['context', 'class'] }],\n})\nexport class HlmSheetPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnSheetTitle } from '@spartan-ng/brain/sheet';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSheetTitle]',\n\texportAs: 'hlmSheetTitle',\n\thostDirectives: [BrnSheetTitle],\n\thost: { 'data-slot': 'sheet-title' },\n})\nexport class HlmSheetTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-foreground font-medium');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSheetTrigger } from '@spartan-ng/brain/sheet';\n\n@Directive({\n\tselector: 'button[hlmSheetTrigger]',\n\texportAs: 'hlmSheetTrigger',\n\thostDirectives: [{ directive: BrnSheetTrigger, inputs: ['id', 'side', 'type'] }],\n\thost: { 'data-slot': 'sheet-trigger' },\n})\nexport class HlmSheetTrigger {}\n","import { HlmSheet } from './lib/hlm-sheet';\nimport { HlmSheetClose } from './lib/hlm-sheet-close';\nimport { HlmSheetContent } from './lib/hlm-sheet-content';\nimport { HlmSheetDescription } from './lib/hlm-sheet-description';\nimport { HlmSheetFooter } from './lib/hlm-sheet-footer';\nimport { HlmSheetHeader } from './lib/hlm-sheet-header';\nimport { HlmSheetOverlay } from './lib/hlm-sheet-overlay';\nimport { HlmSheetPortal } from './lib/hlm-sheet-portal';\nimport { HlmSheetTitle } from './lib/hlm-sheet-title';\nimport { HlmSheetTrigger } from './lib/hlm-sheet-trigger';\n\nexport * from './lib/hlm-sheet';\nexport * from './lib/hlm-sheet-close';\nexport * from './lib/hlm-sheet-content';\nexport * from './lib/hlm-sheet-description';\nexport * from './lib/hlm-sheet-footer';\nexport * from './lib/hlm-sheet-header';\nexport * from './lib/hlm-sheet-overlay';\nexport * from './lib/hlm-sheet-portal';\nexport * from './lib/hlm-sheet-title';\nexport * from './lib/hlm-sheet-trigger';\n\nexport const HlmSheetImports = [\n\tHlmSheet,\n\tHlmSheetClose,\n\tHlmSheetContent,\n\tHlmSheetDescription,\n\tHlmSheetFooter,\n\tHlmSheetHeader,\n\tHlmSheetOverlay,\n\tHlmSheetPortal,\n\tHlmSheetTitle,\n\tHlmSheetTrigger,\n] as const;\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenu } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'nav[hlmNavigationMenu]',\n\texportAs: 'hlmNavigationMenu',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnNavigationMenu,\n\t\t\tinputs: ['value', 'delayDuration', 'skipDelayDuration', 'orientation', 'openOn'],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'navigation-menu',\n\t},\n})\nexport class HlmNavigationMenu {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n\t\t);\n\t}\n}\n","import { type NumberInput } from '@angular/cdk/coercion';\nimport { Directive, input, numberAttribute } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmNavigationMenuContent],hlm-navigation-menu-content',\n\texportAs: 'hlmNavigationMenuContent',\n\thost: {\n\t\t'data-slot': 'navigation-menu-content',\n\t\t'[style.--nav-offset]': 'navOffset()',\n\t},\n})\nexport class HlmNavigationMenuContent {\n\tpublic readonly navOffset = input<number, NumberInput>(1.5, { transform: numberAttribute });\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out top-0 left-0 w-full p-2 pr-2.5 md:w-auto',\n\t\t\t'data-[orientation=horizontal]:data-[motion=from-end]:slide-in-from-right-52 data-[orientation=horizontal]:data-[motion=from-start]:slide-in-from-left-52 data-[orientation=horizontal]:data-[motion=to-end]:slide-out-to-right-52 data-[orientation=horizontal]:data-[motion=to-start]:slide-out-to-left-52',\n\t\t\t'data-[orientation=vertical]:data-[motion=from-end]:slide-in-from-bottom-52 data-[orientation=vertical]:data-[motion=from-start]:slide-in-from-top-52 data-[orientation=vertical]:data-[motion=to-end]:slide-out-to-bottom-52 data-[orientation=vertical]:data-[motion=to-start]:slide-out-to-top-52',\n\t\t\t'data-[orientation=horizontal]:mt-[--spacing(var(--nav-offset))] data-[orientation=vertical]:mx-[--spacing(var(--nav-offset))]',\n\t\t\t'bg-popover text-popover-foreground ring-foreground/10 rounded-lg shadow ring-1 transition-all ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0 block',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuItem } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'li[hlmNavigationMenuItem]',\n\texportAs: 'hlmNavigationMenuItem',\n\thostDirectives: [{ directive: BrnNavigationMenuItem, inputs: ['id'] }],\n\thost: {\n\t\t'data-slot': 'navigation-menu-item',\n\t},\n})\nexport class HlmNavigationMenuItem {\n\tconstructor() {\n\t\tclasses(() => 'relative has-[:focus]:z-10 data-active:z-10');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuLink } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'a[hlmNavigationMenuLink]',\n\texportAs: 'hlmNavigationMenuLink',\n\thostDirectives: [{ directive: BrnNavigationMenuLink, inputs: ['active'] }],\n\thost: {\n\t\t'data-slot': 'navigation-menu-link',\n\t},\n})\nexport class HlmNavigationMenuLink {\n\tconstructor() {\n\t\tclasses(() => \"data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/50 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]\");\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuList } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'ul[hlmNavigationMenuList]',\n\texportAs: 'hlmNavigationMenuList',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnNavigationMenuList,\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'navigation-menu-list',\n\t},\n})\nexport class HlmNavigationMenuList {\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'gap-0 group flex flex-1 list-none items-center justify-center',\n\t\t\t'data-[orientation=vertical]:flex-col',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuContent } from '@spartan-ng/brain/navigation-menu';\n\n@Directive({\n\tselector: '[hlmNavigationMenuPortal]',\n\texportAs: 'hlmNavigationMenuPortal',\n\thostDirectives: [BrnNavigationMenuContent],\n})\nexport class HlmNavigationMenuPortal {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnNavigationMenuTrigger } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[hlmNavigationMenuTrigger]',\n\texportAs: 'hlmNavigationMenuTrigger',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronDown })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnNavigationMenuTrigger, inputs: ['align'] }],\n\thost: { 'data-slot': 'navigation-menu-trigger' },\n\ttemplate: `\n\t\t<ng-content />\n\t\t<ng-icon name=\"lucideChevronDown\" class=\"relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180\" />\n\t`,\n})\nexport class HlmNavigationMenuTrigger {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center outline-none disabled:pointer-events-none',\n\t\t);\n\t}\n}\n","import { HlmNavigationMenu } from './lib/hlm-navigation-menu';\nimport { HlmNavigationMenuContent } from './lib/hlm-navigation-menu-content';\nimport { HlmNavigationMenuItem } from './lib/hlm-navigation-menu-item';\nimport { HlmNavigationMenuLink } from './lib/hlm-navigation-menu-link';\nimport { HlmNavigationMenuList } from './lib/hlm-navigation-menu-list';\nimport { HlmNavigationMenuPortal } from './lib/hlm-navigation-menu-portal';\nimport { HlmNavigationMenuTrigger } from './lib/hlm-navigation-menu-trigger';\n\nexport * from './lib/hlm-navigation-menu';\nexport * from './lib/hlm-navigation-menu-content';\nexport * from './lib/hlm-navigation-menu-item';\nexport * from './lib/hlm-navigation-menu-link';\nexport * from './lib/hlm-navigation-menu-list';\nexport * from './lib/hlm-navigation-menu-portal';\nexport * from './lib/hlm-navigation-menu-trigger';\n\nexport const HlmNavigationMenuImports = [\n\tHlmNavigationMenu,\n\tHlmNavigationMenuContent,\n\tHlmNavigationMenuItem,\n\tHlmNavigationMenuLink,\n\tHlmNavigationMenuList,\n\tHlmNavigationMenuPortal,\n\tHlmNavigationMenuTrigger,\n] as const;\n","import { Component, computed, input, output } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { NgIcon } from '@ng-icons/core';\n\nimport { HlmNavigationMenu, HlmNavigationMenuItem, HlmNavigationMenuLink, HlmNavigationMenuList } from '../helm/navigation-menu';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Navigation entry of {@link LtNavigationMenu} / `LtHeader`.\n *\n * `icon` is a Lucide icon name (e.g. `lucideHouse`) rendered with `ng-icon`; register the icons you use in the app\n * (`provideIcons({ lucideHouse })` in `app.config.ts` or the component providers).\n */\nexport interface LtNavigationItem {\n /** Lucide icon name (e.g. `lucideHouse`), optional. */\n icon?: string;\n label: string;\n /** Router link (internal). Either `link` or `href` is required. */\n link?: string;\n /** External URL; rendered as `<a href target=\"_blank\" rel=\"noopener noreferrer\">` with a screen-reader hint. */\n href?: string;\n /** Match the link exactly for the active state (default `false`). */\n exact?: boolean;\n}\n\n/**\n * Horizontal navigation (`nav` with `aria-current=\"page\"`), collapses into the header's mobile menu.\n *\n * On Spartan's navigation menu with `RouterLink` + `RouterLinkActive` (`ariaCurrentWhenActive=\"page\"`): the active\n * route is highlighted and announced, the arrow keys move between the links, Home/End jump.\n */\n@Component({\n selector: 'lt-navigation-menu',\n imports: [HlmNavigationMenu, HlmNavigationMenuItem, HlmNavigationMenuLink, HlmNavigationMenuList, NgIcon, RouterLink, RouterLinkActive],\n host: { class: 'block' },\n templateUrl: './navigation-menu.html',\n})\nexport class LtNavigationMenu {\n private readonly i18n = injectLtUiI18n();\n\n readonly items = input.required<readonly LtNavigationItem[]>();\n /** Accessible name of the `nav` (default `Hauptnavigation`, i18n `lt.ui.mainNavigation`). */\n readonly label = input<string>();\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n /** A link was activated (the header closes its mobile menu). */\n readonly navigate = output<LtNavigationItem>();\n\n protected readonly navLabel = computed(() => this.label() || this.i18n.t('lt.ui.mainNavigation'));\n /** Screen-reader hint for external links. */\n protected readonly newTabHint = computed(() => this.i18n.t('lt.ui.opensInNewTab'));\n}\n","<!-- Orientation-dependent classes via data-orientation (set by Spartan), so they also apply in the SSR markup. -->\n<nav hlmNavigationMenu class=\"data-[orientation=vertical]:w-full data-[orientation=vertical]:max-w-none\" [orientation]=\"orientation()\" [attr.aria-label]=\"navLabel()\">\n <ul hlmNavigationMenuList class=\"gap-1 data-[orientation=vertical]:items-stretch\">\n @for (item of items(); track item.link ?? item.href) {\n <li hlmNavigationMenuItem>\n @if (item.href) {\n <a\n hlmNavigationMenuLink\n class=\"text-muted-foreground hover:text-foreground in-data-[orientation=vertical]:w-full\"\n [href]=\"item.href\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n (click)=\"navigate.emit(item)\"\n >\n @if (item.icon) {\n <ng-icon [name]=\"item.icon\" />\n }\n {{ item.label }}<span class=\"sr-only\"> ({{ newTabHint() }})</span>\n </a>\n } @else {\n <a\n hlmNavigationMenuLink\n class=\"text-muted-foreground hover:text-foreground in-data-[orientation=vertical]:w-full data-[active=true]:text-foreground data-[active=true]:font-medium\"\n [routerLink]=\"item.link\"\n routerLinkActive\n #active=\"routerLinkActive\"\n [routerLinkActiveOptions]=\"{ exact: item.exact ?? false }\"\n ariaCurrentWhenActive=\"page\"\n [active]=\"active.isActive\"\n (click)=\"navigate.emit(item)\"\n >\n @if (item.icon) {\n <ng-icon [name]=\"item.icon\" />\n }\n {{ item.label }}\n </a>\n }\n </li>\n }\n </ul>\n</nav>\n","import { Component, computed, Directive, input, model } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideMenu } from '@ng-icons/lucide';\n\nimport { HlmButton } from '../helm/button';\nimport { HlmSheetImports } from '../helm/sheet';\nimport { nextLtId } from './control';\nimport { LtNavigationMenu, type LtNavigationItem } from './navigation-menu';\nimport { injectLtUiI18n } from './i18n';\n\n/** Marks the logo of an {@link LtHeader} (inside the home link). */\n@Directive({\n selector: '[ltHeaderLogo]',\n})\nexport class LtHeaderLogo {}\n\n/** Marks the actions of an {@link LtHeader} (color mode, user menu …), shown on all screen sizes. */\n@Directive({\n selector: '[ltHeaderActions]',\n})\nexport class LtHeaderActions {}\n\n/**\n * Sticky app header: logo/title (`[ltHeaderLogo]`), navigation, actions (`[ltHeaderActions]`), and a mobile menu\n * (sheet) below `md`. `[(menuOpen)]` controls the mobile menu.\n *\n * - The logo and the title form one link to `homeLink`. Without `title` the link is named by `homeLabel` (default\n * `lt.ui.home`), so an image logo can use `alt=\"\"`.\n * - Below `md` the navigation moves into a sheet opened by a menu button (`aria-expanded`, `aria-controls`); the sheet\n * traps the focus, closes on ESC, the backdrop or a navigation, and returns the focus to the button.\n * - The skip link and the `main` landmark are the app's job.\n */\n@Component({\n selector: 'lt-header',\n imports: [HlmButton, HlmSheetImports, LtNavigationMenu, NgIcon, RouterLink],\n providers: [provideIcons({ lucideMenu })],\n host: { class: 'bg-background/95 supports-backdrop-filter:bg-background/80 sticky top-0 z-40 block w-full border-b backdrop-blur' },\n templateUrl: './header.html',\n})\nexport class LtHeader {\n protected readonly i18n = injectLtUiI18n();\n\n readonly items = input<readonly LtNavigationItem[]>([]);\n readonly menuOpen = model(false);\n /** Title next to the logo, links to `homeLink`. */\n readonly title = input<string>();\n readonly homeLink = input<string>('/');\n /** Accessible name of the home link when no `title` is shown (default `lt.ui.home`). */\n readonly homeLabel = input<string>();\n /** Accessible name of the navigation (default `lt.ui.mainNavigation`). */\n readonly navigationLabel = input<string>();\n\n protected readonly menuId = nextLtId('header-menu');\n protected readonly menuTitle = computed(() => this.title() || this.i18n.t('lt.ui.menu'));\n protected readonly homeAriaLabel = computed(() => (this.title() ? null : this.homeLabel() || this.i18n.t('lt.ui.home')));\n\n protected toggleMenu(): void {\n this.menuOpen.update((open) => !open);\n }\n\n protected onSheetState(state: string): void {\n if (state === 'closed' && this.menuOpen()) {\n this.menuOpen.set(false);\n }\n }\n}\n","<header class=\"mx-auto flex h-16 w-full max-w-7xl items-center gap-4 px-4 sm:px-6 lg:px-8\">\n <a\n class=\"text-foreground focus-visible:ring-ring/50 flex shrink-0 items-center gap-2 rounded-md font-semibold outline-none focus-visible:ring-3\"\n [routerLink]=\"homeLink()\"\n [attr.aria-label]=\"homeAriaLabel()\"\n >\n <ng-content select=\"[ltHeaderLogo]\" />\n @if (title()) {\n <span class=\"truncate\">{{ title() }}</span>\n }\n </a>\n\n @if (items().length) {\n <!-- Wrapper: the menu host is display:block itself, so the breakpoint class lives here. -->\n <div class=\"hidden md:block\">\n <lt-navigation-menu [items]=\"items()\" [label]=\"navigationLabel()\" />\n </div>\n }\n\n <div class=\"ms-auto flex items-center gap-2\">\n <ng-content select=\"[ltHeaderActions]\" />\n @if (items().length) {\n <button\n hlmBtn\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n class=\"md:hidden\"\n [attr.aria-label]=\"i18n.t('lt.ui.menu')\"\n [attr.aria-expanded]=\"menuOpen()\"\n [attr.aria-controls]=\"menuId\"\n (click)=\"toggleMenu()\"\n >\n <ng-icon name=\"lucideMenu\" />\n </button>\n }\n </div>\n</header>\n\n<hlm-sheet side=\"right\" [state]=\"menuOpen() ? 'open' : 'closed'\" (stateChanged)=\"onSheetState($event)\">\n <hlm-sheet-content *hlmSheetPortal=\"let ctx\" class=\"w-72\" [id]=\"menuId\" [closeLabel]=\"i18n.t('lt.ui.close')\">\n <div hlmSheetHeader>\n <h2 hlmSheetTitle>{{ menuTitle() }}</h2>\n </div>\n <lt-navigation-menu class=\"px-2\" orientation=\"vertical\" [items]=\"items()\" [label]=\"navigationLabel()\" (navigate)=\"menuOpen.set(false)\" />\n </hlm-sheet-content>\n</hlm-sheet>\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst alertVariants = cva(\"grid gap-0.5 rounded-lg border px-4 py-3 text-start text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>ng-icon]:grid-cols-[auto_1fr] has-[>ng-icon]:gap-x-2.5 *:[ng-icon]:row-span-2 *:[ng-icon]:translate-y-0.5 *:[ng-icon]:text-current *:[ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/alert relative w-full\", {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: 'bg-card text-card-foreground',\n\t\t\tdestructive: 'text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[ng-icon]:text-current',\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: 'default',\n\t},\n});\n\nexport type AlertVariants = VariantProps<typeof alertVariants>;\n\n@Directive({\n\tselector: 'hlm-alert,[hlmAlert]',\n\texportAs: 'hlmAlert',\n\thost: {\n\t\t'data-slot': 'alert',\n\t\trole: 'alert',\n\t},\n})\nexport class HlmAlert {\n\tpublic readonly variant = input<AlertVariants['variant']>('default');\n\n\tconstructor() {\n\t\tclasses(() => alertVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertAction]',\n\texportAs: 'hlmAlertAction',\n\thost: {\n\t\t'data-slot': 'alert-action',\n\t},\n})\nexport class HlmAlertAction {\n\tconstructor() {\n\t\tclasses(() => 'absolute end-3 top-2.5');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDescription]',\n\texportAs: 'hlmAlertDescription',\n\thost: {\n\t\t'data-slot': 'alert-description',\n\t},\n})\nexport class HlmAlertDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground text-sm text-balance md:text-pretty [&_p:not(:last-child)]:mb-4 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertTitle]',\n\texportAs: 'hlmAlertTitle',\n\thost: {\n\t\t'data-slot': 'alert-title',\n\t},\n})\nexport class HlmAlertTitle {\n\tconstructor() {\n\t\tclasses(() => 'font-medium group-has-[>ng-icon]/alert:col-start-2 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3');\n\t}\n}\n","import { HlmAlert } from './lib/hlm-alert';\nimport { HlmAlertAction } from './lib/hlm-alert-action';\nimport { HlmAlertDescription } from './lib/hlm-alert-description';\nimport { HlmAlertTitle } from './lib/hlm-alert-title';\n\nexport * from './lib/hlm-alert';\nexport * from './lib/hlm-alert-action';\nexport * from './lib/hlm-alert-description';\nexport * from './lib/hlm-alert-title';\n\nexport const HlmAlertImports = [HlmAlert, HlmAlertAction, HlmAlertDescription, HlmAlertTitle] as const;\n","import { Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCircleAlert, lucideCircleCheck, lucideInfo, lucideTriangleAlert } from '@ng-icons/lucide';\n\nimport { HlmAlert, HlmAlertTitle } from '../helm/alert';\n\n/** Notice variants. */\nexport type LtNoticeVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning';\n\nconst ICONS: Record<LtNoticeVariant, string> = {\n error: 'lucideCircleAlert',\n info: 'lucideInfo',\n neutral: 'lucideInfo',\n success: 'lucideCircleCheck',\n warning: 'lucideTriangleAlert',\n};\n\n/**\n * Notice/alert box (Spartan alert, icon per variant, `role=\"alert\"` for errors and warnings, `status` otherwise).\n * Colors come from the semantic tokens (`error`, `warning`, `success`, `info`; `neutral` uses the card colors).\n * Project the message as content.\n */\n@Component({\n selector: 'lt-notice',\n imports: [HlmAlert, HlmAlertTitle, NgIcon],\n providers: [provideIcons({ lucideCircleAlert, lucideCircleCheck, lucideInfo, lucideTriangleAlert })],\n host: { class: 'block' },\n templateUrl: './notice.html',\n})\nexport class LtNotice {\n readonly title = input<string>();\n readonly variant = input<LtNoticeVariant>('info');\n\n protected readonly icon = computed(() => ICONS[this.variant()]);\n protected readonly role = computed(() => (this.variant() === 'error' || this.variant() === 'warning' ? 'alert' : 'status'));\n}\n","<!-- Variant colors via data-variant: the selector outranks the helm base colors (also in the SSR markup). -->\n<div\n hlmAlert\n class=\"data-[variant=error]:border-error/30 data-[variant=error]:bg-error/10 data-[variant=error]:text-error data-[variant=info]:border-info/30 data-[variant=info]:bg-info/10 data-[variant=info]:text-info data-[variant=success]:border-success/30 data-[variant=success]:bg-success/10 data-[variant=success]:text-success data-[variant=warning]:border-warning/30 data-[variant=warning]:bg-warning/10 data-[variant=warning]:text-warning\"\n [attr.role]=\"role()\"\n [attr.data-variant]=\"variant()\"\n>\n <ng-icon [name]=\"icon()\" />\n @if (title()) {\n <div hlmAlertTitle>{{ title() }}</div>\n }\n <div data-slot=\"alert-description\" class=\"text-sm text-pretty group-has-[>ng-icon]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-2\">\n <ng-content />\n </div>\n</div>\n","import { Component, contentChild, Directive, input } from '@angular/core';\nimport { NgIcon } from '@ng-icons/core';\n\nimport { HlmCardImports } from '../helm/card';\nimport { nextLtId } from './control';\n\n/** Marks the footer of an {@link LtPageCard} (links below the form: \"Passwort vergessen?\" …). */\n@Directive({\n selector: '[ltPageCardFooter]',\n})\nexport class LtPageCardFooter {}\n\n/**\n * Centered card for slim pages (auth): title, description, content, footer slot (`[ltPageCardFooter]`).\n *\n * The card is a `section` labelled by its heading (`h1` by default, see `level`). `icon` is a Lucide icon name rendered\n * with `ng-icon`; register it in the app (`provideIcons({ lucideLock })`).\n */\n@Component({\n selector: 'lt-page-card',\n imports: [HlmCardImports, NgIcon],\n host: { class: 'flex w-full justify-center px-4 py-10 sm:py-16' },\n templateUrl: './page-card.html',\n})\nexport class LtPageCard {\n readonly description = input<string>();\n /** Lucide icon above the title. */\n readonly icon = input<string>();\n /** Heading level of the title (default 1). */\n readonly level = input<1 | 2>(1);\n readonly title = input<string>();\n\n protected readonly titleId = nextLtId('page-card-title');\n protected readonly footer = contentChild(LtPageCardFooter);\n}\n","<section hlmCard class=\"w-full max-w-md\" [attr.aria-labelledby]=\"title() ? titleId : null\">\n @if (icon() || title() || description()) {\n <div hlmCardHeader class=\"justify-items-center text-center\">\n @if (icon(); as icon) {\n <div class=\"bg-primary/10 text-primary mb-2 flex size-12 items-center justify-center rounded-full\">\n <ng-icon class=\"text-2xl\" [name]=\"icon\" />\n </div>\n }\n @if (title()) {\n @if (level() === 1) {\n <h1 hlmCardTitle class=\"text-xl font-semibold\" [id]=\"titleId\">{{ title() }}</h1>\n } @else {\n <h2 hlmCardTitle class=\"text-xl font-semibold\" [id]=\"titleId\">{{ title() }}</h2>\n }\n }\n @if (description()) {\n <p hlmCardDescription class=\"text-pretty\">{{ description() }}</p>\n }\n </div>\n }\n <div hlmCardContent>\n <ng-content />\n </div>\n <div hlmCardFooter class=\"text-muted-foreground flex-col justify-center gap-2 text-sm\" [hidden]=\"!footer()\">\n <ng-content select=\"[ltPageCardFooter]\" />\n </div>\n</section>\n","import { Component, contentChild, Directive, input } from '@angular/core';\n\n/** Marks the actions of an {@link LtPageTitle} (buttons next to the heading). */\n@Directive({\n selector: '[ltPageTitleActions]',\n})\nexport class LtPageTitleActions {}\n\n/** Page heading (`h1`) with optional description; project actions into `[ltPageTitleActions]`. */\n@Component({\n selector: 'lt-page-title',\n host: { class: 'block' },\n templateUrl: './page-title.html',\n})\nexport class LtPageTitle {\n readonly description = input<string>();\n /** Heading level (default 1). */\n readonly level = input<1 | 2 | 3>(1);\n readonly title = input.required<string>();\n\n protected readonly actions = contentChild(LtPageTitleActions);\n}\n","<div class=\"flex flex-wrap items-start justify-between gap-x-4 gap-y-3\">\n <div class=\"flex min-w-0 flex-col gap-1\">\n @switch (level()) {\n @case (1) {\n <h1 class=\"text-foreground text-2xl font-semibold tracking-tight text-balance\">{{ title() }}</h1>\n }\n @case (2) {\n <h2 class=\"text-foreground text-xl font-semibold tracking-tight text-balance\">{{ title() }}</h2>\n }\n @default {\n <h3 class=\"text-foreground text-lg font-semibold text-balance\">{{ title() }}</h3>\n }\n }\n @if (description()) {\n <p class=\"text-muted-foreground text-sm text-pretty\">{{ description() }}</p>\n }\n </div>\n <div class=\"flex flex-wrap items-center gap-2\" [hidden]=\"!actions()\">\n <ng-content select=\"[ltPageTitleActions]\" />\n </div>\n</div>\n","import { booleanAttribute, Component, computed, ElementRef, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { FORM_FIELD, type FormValueControl } from '@angular/forms/signals';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideEye, lucideEyeOff } from '@ng-icons/lucide';\n\nimport { HlmButton } from '../helm/button';\nimport { HlmInputGroup, HlmInputGroupAddon, HlmInputGroupInput } from '../helm/input-group';\nimport { LT_NO_NG_CONTROL, ltOptionalString, ltSyncAriaInvalid, nextLtId } from './control';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Password input with show/hide toggle (accessible label, `autocomplete` `current-password` / `new-password`).\n *\n * Label it with a wrapping `lt-form-field` (`for` = `id`), which also wires hint and error via `aria-describedby`.\n * The toggle button switches its label (`lt.ui.showPassword` / `lt.ui.hidePassword`) and controls the input.\n * Signal Forms: a `FormValueControl<string>` (`[formField]` on the element); `invalid` then shows once touched.\n */\n@Component({\n selector: 'lt-password-input',\n imports: [HlmButton, HlmInputGroup, HlmInputGroupAddon, HlmInputGroupInput, NgIcon],\n providers: [provideIcons({ lucideEye, lucideEyeOff })],\n viewProviders: [LT_NO_NG_CONTROL],\n // The id belongs to the inner input: drop a static `id` attribute from the host (no duplicate ids).\n host: { class: 'block', '[attr.id]': 'null' },\n templateUrl: './password-input.html',\n})\nexport class LtPasswordInput implements FormValueControl<string> {\n protected readonly i18n = injectLtUiI18n();\n private readonly formField = inject(FORM_FIELD, { optional: true, self: true });\n private readonly generatedId = nextLtId('password-input');\n private readonly control = viewChild<ElementRef<HTMLInputElement>>('control');\n private readonly blurred = signal(false);\n\n readonly autocomplete = input<'current-password' | 'new-password'>('current-password');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly id = input<string>();\n /** Marks the input invalid (`aria-invalid`). With Signal Forms it shows once the field was touched. */\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly name = input('password', { transform: ltOptionalString });\n readonly placeholder = input<string>('');\n readonly required = input(false, { transform: booleanAttribute });\n /** Touched state (bound by Signal Forms). */\n readonly touched = input(false, { transform: booleanAttribute });\n readonly value = model<string>('');\n /** The input lost focus (marks a Signal Forms field as touched). */\n readonly touch = output<void>();\n\n protected readonly inputId = computed(() => this.id() || this.generatedId);\n protected readonly visible = signal(false);\n protected readonly showInvalid = computed(() => this.invalid() && (!this.formField || this.touched() || this.blurred()));\n\n constructor() {\n ltSyncAriaInvalid(() => this.control()?.nativeElement, this.showInvalid);\n }\n\n /** Focus the input. */\n focus(options?: FocusOptions): void {\n this.control()?.nativeElement.focus(options);\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n\n protected onBlur(): void {\n this.blurred.set(true);\n this.touch.emit();\n }\n\n protected toggleVisibility(): void {\n this.visible.update((visible) => !visible);\n }\n}\n","<div hlmInputGroup [attr.data-disabled]=\"disabled() ? 'true' : null\">\n <input\n #control\n hlmInputGroupInput\n autocapitalize=\"none\"\n spellcheck=\"false\"\n [id]=\"inputId()\"\n [type]=\"visible() ? 'text' : 'password'\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [forceInvalid]=\"showInvalid()\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n <div hlmInputGroupAddon align=\"inline-end\">\n <!-- hlmBtn (not hlmInputGroupButton): only hlmBtn forwards [disabled] to Spartan's button primitive. -->\n <button\n hlmBtn\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n class=\"shadow-none\"\n [attr.aria-label]=\"visible() ? i18n.t('lt.ui.hidePassword') : i18n.t('lt.ui.showPassword')\"\n [attr.aria-controls]=\"inputId()\"\n [disabled]=\"disabled()\"\n (click)=\"toggleVisibility()\"\n >\n <ng-icon [name]=\"visible() ? 'lucideEyeOff' : 'lucideEye'\" />\n </button>\n </div>\n</div>\n","import { Component, computed, input } from '@angular/core';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Read-only label/value pair (`dl`-based; value falls back to `–`).\n * Numbers are shown as given; pass `numberFormat` to format them for the active locale (e.g. `1.234,5` in German).\n */\n@Component({\n selector: 'lt-readonly-field',\n host: { class: 'block' },\n templateUrl: './readonly-field.html',\n})\nexport class LtReadonlyField {\n private readonly i18n = injectLtUiI18n();\n\n readonly label = input.required<string>();\n /** `Intl.NumberFormat` options; when set, numeric values are formatted for the active locale. */\n readonly numberFormat = input<Intl.NumberFormatOptions>();\n /** Unit after the value. */\n readonly unit = input<string>();\n readonly value = input<number | string | null | undefined>();\n\n protected readonly hasValue = computed(() => {\n const value = this.value();\n return value !== null && value !== undefined && value !== '' && !(typeof value === 'number' && Number.isNaN(value));\n });\n\n protected readonly display = computed(() => {\n const value = this.value();\n if (!this.hasValue()) {\n return '–';\n }\n const format = this.numberFormat();\n if (typeof value === 'number' && format) {\n return new Intl.NumberFormat(this.i18n.locale(), format).format(value);\n }\n return String(value);\n });\n}\n","<dl class=\"flex flex-col gap-1\">\n <dt class=\"text-muted-foreground text-sm\">{{ label() }}</dt>\n <dd class=\"text-foreground text-sm font-medium break-words\">\n {{ display() }}\n @if (unit() && hasValue()) {\n <span class=\"text-muted-foreground font-normal\">{{ unit() }}</span>\n }\n </dd>\n</dl>\n","import { Directive } from '@angular/core';\nimport { BrnCombobox } from '@spartan-ng/brain/combobox';\nimport { BrnPopover, provideBrnPopoverConfig, provideBrnPopoverDefaultOptions } from '@spartan-ng/brain/popover';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCombobox],hlm-combobox',\n\texportAs: 'hlmCombobox',\n\tproviders: [\n\t\tprovideBrnPopoverConfig({\n\t\t\talign: 'start',\n\t\t\tsideOffset: 6,\n\t\t}),\n\t\tprovideBrnPopoverDefaultOptions({ role: null }),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCombobox,\n\t\t\tinputs: [\n\t\t\t\t'autoHighlight',\n\t\t\t\t'closeOnSelect',\n\t\t\t\t'disabled',\n\t\t\t\t'filter',\n\t\t\t\t'search',\n\t\t\t\t'value',\n\t\t\t\t'itemToString',\n\t\t\t\t'filterOptions',\n\t\t\t\t'isItemEqualToValue',\n\t\t\t],\n\t\t\toutputs: ['searchChange', 'valueChange'],\n\t\t},\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'closeOnOutsidePointerEvents', 'sideOffset', 'state', 'offsetX', 'scrollStrategy'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'combobox' },\n})\nexport class HlmCombobox {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxChipRemove } from '@spartan-ng/brain/combobox';\nimport { buttonVariants } from '../../button';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmComboboxChipRemove]',\n\texportAs: 'hlmComboboxChipRemove',\n\thostDirectives: [BrnComboboxChipRemove],\n\thost: { 'data-slot': 'combobox-chip-remove' },\n})\nexport class HlmComboboxChipRemove {\n\tconstructor() {\n\t\tclasses(() => ['-ms-1 opacity-50 hover:opacity-100', buttonVariants({ variant: 'ghost', size: 'icon-xs' })]);\n\t}\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\nimport { BrnComboboxChip } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\nimport { HlmComboboxChipRemove } from './hlm-combobox-chip-remove';\n\n@Component({\n\tselector: 'hlm-combobox-chip',\n\texportAs: 'hlmComboboxChip',\n\timports: [NgIcon, HlmComboboxChipRemove],\n\tproviders: [provideIcons({ lucideX })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnComboboxChip, inputs: ['value'] }],\n\thost: { 'data-slot': 'combobox-chip' },\n\ttemplate: `\n\t\t<ng-content />\n\n\t\t@if (showRemove()) {\n\t\t\t<button hlmComboboxChipRemove>\n\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t</button>\n\t\t}\n\t`,\n})\nexport class HlmComboboxChip {\n\tpublic readonly showRemove = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'bg-muted text-foreground flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-sm px-1.5 text-xs font-medium whitespace-nowrap has-data-[slot=combobox-chip-remove]:pe-0 has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxChipInput } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'input[hlmComboboxChipInput]',\n\texportAs: 'hlmComboboxChipInput',\n\thostDirectives: [{ directive: BrnComboboxChipInput, inputs: ['id', 'aria-invalid'] }],\n\thost: { 'data-slot': 'combobox-chip-input' },\n})\nexport class HlmComboboxChipInput {\n\tconstructor() {\n\t\tclasses(() => 'placeholder:text-muted-foreground min-w-16 flex-1 outline-none');\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { BrnComboboxAnchor, BrnComboboxPopoverTrigger, injectBrnComboboxBase } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxChips],hlm-combobox-chips',\n\texportAs: 'hlmComboboxChips',\n\thostDirectives: [BrnComboboxAnchor, BrnComboboxPopoverTrigger],\n\thost: {\n\t\t'data-slot': 'combobox-chips',\n\t\t'[attr.data-matches-spartan-invalid]': '_spartanInvalid() ? \"true\" : null',\n\t},\n})\nexport class HlmComboboxChips {\n\tprivate readonly _combobox = injectBrnComboboxBase();\n\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tprotected readonly _spartanInvalid = computed(\n\t\t() => this.forceInvalid() || this._combobox.controlState?.()?.spartanInvalid,\n\t);\n\n\tconstructor() {\n\t\tclasses(() => 'dark:bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border bg-transparent bg-clip-padding px-2.5 py-1.5 text-sm shadow-xs transition-[color,box-shadow] focus-within:ring-3 has-data-[slot=combobox-chip]:px-1.5 data-[matches-spartan-invalid=true]:ring-3');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxContent } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxContent],hlm-combobox-content',\n\texportAs: 'hlmComboboxContent',\n\thostDirectives: [{ directive: BrnComboboxContent, inputs: ['id'] }],\n\thost: { slot: 'combobox-content' },\n})\nexport class HlmComboboxContent {\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-popover text-popover-foreground data-open:animate-in **:has-[[data-slot=input-group-control]:focus-visible]:border-input data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 **:data-[slot=input-group]:bg-input/30 **:data-[slot=input-group]:border-input/30 max-h-72 min-w-36 overflow-hidden rounded-md shadow-md ring-1 duration-100 **:has-[[data-slot=input-group-control]:focus-visible]:ring-0 **:data-[slot=input-group]:m-1 **:data-[slot=input-group]:mb-0 **:data-[slot=input-group]:h-8 **:data-[slot=input-group]:shadow-none group/combobox-content relative flex w-(--brn-combobox-width) flex-col p-0',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxEmpty } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxEmpty],hlm-combobox-empty',\n\texportAs: 'hlmComboboxEmpty',\n\thostDirectives: [BrnComboboxEmpty],\n\thost: { 'data-slot': 'combobox-empty' },\n})\nexport class HlmComboboxEmpty {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground hidden w-full items-center justify-center gap-2 py-2 text-center text-sm group-data-empty/combobox-content:flex');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxGroup } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxGroup]',\n\texportAs: 'hlmComboboxGroup',\n\thostDirectives: [BrnComboboxGroup],\n\thost: { 'data-slot': 'combobox-group' },\n})\nexport class HlmComboboxGroup {\n\tconstructor() {\n\t\tclasses(() => 'data-hidden:hidden');\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideX } from '@ng-icons/lucide';\nimport { BrnComboboxAnchor, BrnComboboxImports, BrnComboboxPopoverTrigger } from '@spartan-ng/brain/combobox';\nimport { HlmInputGroup, HlmInputGroupImports } from '../../input-group';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-combobox-input',\n\texportAs: 'hlmComboboxInput',\n\timports: [HlmInputGroupImports, NgIcon, BrnComboboxImports, BrnComboboxPopoverTrigger],\n\tproviders: [provideIcons({ lucideChevronDown, lucideX })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnComboboxAnchor, HlmInputGroup],\n\ttemplate: `\n\t\t<input\n\t\t\tbrnComboboxInput\n\t\t\t#comboboxInput=\"brnComboboxInput\"\n\t\t\tbrnComboboxPopoverTrigger\n\t\t\t[closeOnTriggerClick]=\"false\"\n\t\t\thlmInputGroupInput\n\t\t\t[id]=\"inputId()\"\n\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[aria-invalid]=\"ariaInvalidInput()\"\n\t\t/>\n\n\t\t<hlm-input-group-addon align=\"inline-end\">\n\t\t\t@if (showTrigger()) {\n\t\t\t\t<button\n\t\t\t\t\tbrnComboboxPopoverTrigger\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tdata-slot=\"input-group-button\"\n\t\t\t\t\t[disabled]=\"comboboxInput.disabled()\"\n\t\t\t\t\t[attr.aria-label]=\"triggerAriaLabel()\"\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclass=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideChevronDown\" />\n\t\t\t\t</button>\n\t\t\t}\n\n\t\t\t@if (showClear()) {\n\t\t\t\t<button\n\t\t\t\t\t*brnComboboxClear\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tdata-slot=\"combobox-clear\"\n\t\t\t\t\t[disabled]=\"comboboxInput.disabled()\"\n\t\t\t\t\t[attr.aria-label]=\"clearAriaLabel()\"\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t\t</button>\n\t\t\t}\n\t\t</hlm-input-group-addon>\n\n\t\t<ng-content />\n\t`,\n})\nexport class HlmComboboxInput {\n\tprivate static _id = 0;\n\n\tpublic readonly inputId = input<string>(`hlm-combobox-input-${HlmComboboxInput._id++}`);\n\tpublic readonly placeholder = input<string>('');\n\n\tpublic readonly showTrigger = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\tpublic readonly showClear = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Accessible name for the icon-only popover trigger button. */\n\tpublic readonly triggerAriaLabel = input<string>('Toggle options');\n\n\t/** Accessible name for the icon-only clear button. */\n\tpublic readonly clearAriaLabel = input<string>('Clear selection');\n\n\t/** Manual override for aria-invalid. When not set, auto-detects from the parent combobox error state. */\n\tpublic readonly ariaInvalidInput = input<boolean | undefined, BooleanInput>(undefined, {\n\t\ttransform: (v: BooleanInput) => (v === '' || v === undefined ? undefined : booleanAttribute(v)),\n\t\talias: 'aria-invalid',\n\t});\n\n\tconstructor() {\n\t\tclasses(() => 'w-auto');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { BrnComboboxItem } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-combobox-item',\n\texportAs: 'hlmComboboxItem',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnComboboxItem, inputs: ['id', 'disabled', 'value'] }],\n\thost: { 'data-slot': 'combobox-item' },\n\ttemplate: `\n\t\t<ng-content />\n\t\t@if (_active()) {\n\t\t\t<ng-icon name=\"lucideCheck\" class=\"absolute end-2 flex items-center justify-center text-[length:--spacing(4)]\" aria-hidden=\"true\" />\n\t\t}\n\t`,\n})\nexport class HlmComboboxItem {\n\tprivate readonly _brnComboboxItem = inject(BrnComboboxItem);\n\n\tprotected readonly _active = this._brnComboboxItem.active;\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-hidden:hidden [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxLabel } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxLabel]',\n\texportAs: 'hlmComboboxLabel',\n\thostDirectives: [{ directive: BrnComboboxLabel, inputs: ['id'] }],\n\thost: { 'data-slot': 'combobox-label' },\n})\nexport class HlmComboboxLabel {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground px-2 py-1.5 text-xs');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxList } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxList]',\n\texportAs: 'hlmComboboxList',\n\thostDirectives: [{ directive: BrnComboboxList, inputs: ['id'] }],\n\thost: { 'data-slot': 'combobox-list' },\n})\nexport class HlmComboboxList {\n\tconstructor() {\n\t\tclasses(() => 'no-scrollbar max-h-[calc(--spacing(72)---spacing(9))] scroll-py-1 p-1 data-empty:p-0 overflow-y-auto overscroll-contain');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxMultiple } from '@spartan-ng/brain/combobox';\nimport { BrnPopover, provideBrnPopoverConfig, provideBrnPopoverDefaultOptions } from '@spartan-ng/brain/popover';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxMultiple],hlm-combobox-multiple',\n\texportAs: 'hlmComboboxMultiple',\n\tproviders: [\n\t\tprovideBrnPopoverConfig({\n\t\t\talign: 'start',\n\t\t\tsideOffset: 6,\n\t\t}),\n\t\tprovideBrnPopoverDefaultOptions({ role: null }),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnComboboxMultiple,\n\t\t\tinputs: [\n\t\t\t\t'autoHighlight',\n\t\t\t\t'closeOnSelect',\n\t\t\t\t'disabled',\n\t\t\t\t'filter',\n\t\t\t\t'search',\n\t\t\t\t'value',\n\t\t\t\t'itemToString',\n\t\t\t\t'filterOptions',\n\t\t\t\t'isItemEqualToValue',\n\t\t\t],\n\t\t\toutputs: ['searchChange', 'valueChange'],\n\t\t},\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'closeOnOutsidePointerEvents', 'sideOffset', 'state', 'offsetX', 'scrollStrategy'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'combobox' },\n})\nexport class HlmComboboxMultiple {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxPlaceholder } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxPlaceholder],hlm-combobox-placeholder',\n\texportAs: 'hlmComboboxPlaceholder',\n\thostDirectives: [BrnComboboxPlaceholder],\n\thost: { 'data-slot': 'combobox-placeholder' },\n})\nexport class HlmComboboxPlaceholder {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"gap-2 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center data-hidden:hidden [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverContent } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmComboboxPortal]',\n\texportAs: 'hlmComboboxPortal',\n\thostDirectives: [{ directive: BrnPopoverContent, inputs: ['context', 'class'] }],\n})\nexport class HlmComboboxPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxSeparator } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxSeparator]',\n\texportAs: 'hlmComboboxSeparator',\n\thostDirectives: [{ directive: BrnComboboxSeparator, inputs: ['orientation'] }],\n\thost: { 'data-slot': 'combobox-separator' },\n})\nexport class HlmComboboxSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-border -mx-1 my-1 h-px');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxStatus } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxStatus],hlm-combobox-status',\n\texportAs: 'hlmComboboxStatus',\n\thostDirectives: [BrnComboboxStatus],\n\thost: { 'data-slot': 'combobox-status' },\n})\nexport class HlmComboboxStatus {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground gap-2 px-3 py-2 text-sm flex w-full items-center justify-center text-center');\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnComboboxAnchor, BrnComboboxPopoverTrigger, BrnComboboxTrigger } from '@spartan-ng/brain/combobox';\nimport { BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { ButtonVariants, HlmButton } from '../../button';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-combobox-trigger',\n\texportAs: 'hlmComboboxTrigger',\n\timports: [\n\t\tNgIcon,\n\t\tHlmButton,\n\t\tBrnComboboxAnchor,\n\t\tBrnComboboxTrigger,\n\t\tBrnComboboxPopoverTrigger,\n\t\tBrnFieldControlDescribedBy,\n\t],\n\tproviders: [provideIcons({ lucideChevronDown })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<button\n\t\t\tbrnComboboxTrigger\n\t\t\tbrnComboboxAnchor\n\t\t\tbrnComboboxPopoverTrigger\n\t\t\tbrnFieldControlDescribedBy\n\t\t\thlmBtn\n\t\t\tdata-slot=\"combobox-trigger\"\n\t\t\t[id]=\"buttonId()\"\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[variant]=\"variant()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t\t<ng-icon name=\"lucideChevronDown\" class=\"text-muted-foreground text-[length:--spacing(4)]\" />\n\t\t</button>\n\t`,\n})\nexport class HlmComboboxTrigger {\n\tprivate static _id = 0;\n\n\tpublic readonly userClass = input<ClassValue>('', {\n\t\talias: 'class',\n\t});\n\tprotected readonly _computedClass = computed(() => hlm('data-placeholder:text-muted-foreground', this.userClass()));\n\n\tpublic readonly buttonId = input<string>(`hlm-combobox-trigger-${HlmComboboxTrigger._id++}`);\n\n\tpublic readonly variant = input<ButtonVariants['variant']>('outline');\n\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxValue } from '@spartan-ng/brain/combobox';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmComboboxValue],hlm-combobox-value',\n\texportAs: 'hlmComboboxValue',\n\thostDirectives: [{ directive: BrnComboboxValue, inputs: ['placeholder'] }],\n\thost: { 'data-slot': 'combobox-value' },\n})\nexport class HlmComboboxValue {\n\tconstructor() {\n\t\tclasses(() => 'data-hidden:hidden');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxValueTemplate } from '@spartan-ng/brain/combobox';\n\n@Directive({\n\tselector: '[hlmComboboxValueTemplate]',\n\texportAs: 'hlmComboboxValueTemplate',\n\thostDirectives: [BrnComboboxValueTemplate],\n})\nexport class HlmComboboxValueTemplate {}\n","import { Directive } from '@angular/core';\nimport { BrnComboboxValues } from '@spartan-ng/brain/combobox';\n\n@Directive({ selector: '[hlmComboboxValues]', exportAs: 'hlmComboboxValues', hostDirectives: [BrnComboboxValues] })\nexport class HlmComboboxValues {}\n","import { HlmCombobox } from './lib/hlm-combobox';\nimport { HlmComboboxChip } from './lib/hlm-combobox-chip';\nimport { HlmComboboxChipInput } from './lib/hlm-combobox-chip-input';\nimport { HlmComboboxChips } from './lib/hlm-combobox-chips';\nimport { HlmComboboxContent } from './lib/hlm-combobox-content';\nimport { HlmComboboxEmpty } from './lib/hlm-combobox-empty';\nimport { HlmComboboxGroup } from './lib/hlm-combobox-group';\nimport { HlmComboboxInput } from './lib/hlm-combobox-input';\nimport { HlmComboboxItem } from './lib/hlm-combobox-item';\nimport { HlmComboboxLabel } from './lib/hlm-combobox-label';\nimport { HlmComboboxList } from './lib/hlm-combobox-list';\nimport { HlmComboboxMultiple } from './lib/hlm-combobox-multiple';\nimport { HlmComboboxPlaceholder } from './lib/hlm-combobox-placeholder';\nimport { HlmComboboxPortal } from './lib/hlm-combobox-portal';\nimport { HlmComboboxSeparator } from './lib/hlm-combobox-separator';\nimport { HlmComboboxStatus } from './lib/hlm-combobox-status';\nimport { HlmComboboxTrigger } from './lib/hlm-combobox-trigger';\nimport { HlmComboboxValue } from './lib/hlm-combobox-value';\nimport { HlmComboboxValueTemplate } from './lib/hlm-combobox-value-template';\nimport { HlmComboboxValues } from './lib/hlm-combobox-values';\n\nexport * from './lib/hlm-combobox';\nexport * from './lib/hlm-combobox-chip';\nexport * from './lib/hlm-combobox-chip-input';\nexport * from './lib/hlm-combobox-chips';\nexport * from './lib/hlm-combobox-content';\nexport * from './lib/hlm-combobox-empty';\nexport * from './lib/hlm-combobox-group';\nexport * from './lib/hlm-combobox-input';\nexport * from './lib/hlm-combobox-item';\nexport * from './lib/hlm-combobox-label';\nexport * from './lib/hlm-combobox-list';\nexport * from './lib/hlm-combobox-multiple';\nexport * from './lib/hlm-combobox-placeholder';\nexport * from './lib/hlm-combobox-portal';\nexport * from './lib/hlm-combobox-separator';\nexport * from './lib/hlm-combobox-status';\nexport * from './lib/hlm-combobox-trigger';\nexport * from './lib/hlm-combobox-value';\nexport * from './lib/hlm-combobox-value-template';\nexport * from './lib/hlm-combobox-values';\n\nexport const HlmComboboxImports = [\n\tHlmCombobox,\n\tHlmComboboxChip,\n\tHlmComboboxChipInput,\n\tHlmComboboxChips,\n\tHlmComboboxContent,\n\tHlmComboboxEmpty,\n\tHlmComboboxGroup,\n\tHlmComboboxInput,\n\tHlmComboboxItem,\n\tHlmComboboxLabel,\n\tHlmComboboxList,\n\tHlmComboboxMultiple,\n\tHlmComboboxPlaceholder,\n\tHlmComboboxPortal,\n\tHlmComboboxSeparator,\n\tHlmComboboxStatus,\n\tHlmComboboxTrigger,\n\tHlmComboboxValue,\n\tHlmComboboxValueTemplate,\n\tHlmComboboxValues,\n] as const;\n","import { booleanAttribute, Component, computed, ElementRef, inject, input, model, output, signal } from '@angular/core';\nimport { FORM_FIELD, type FormValueControl } from '@angular/forms/signals';\n\nimport { HlmComboboxImports } from '../helm/combobox';\nimport { HlmSelectImports } from '../helm/select';\nimport { LT_NO_NG_CONTROL, nextLtId } from './control';\nimport { injectLtUiI18n } from './i18n';\n\n/** Option of {@link LtSelect}. */\nexport interface LtSelectOption<V = string> {\n disabled?: boolean;\n label: string;\n value: V;\n}\n\n/**\n * Select on Spartan (native-feeling single select), with `searchable` switching to a combobox (filter as you type).\n * Two-way `[(value)]`.\n *\n * - Keyboard: the select opens with ENTER/SPACE/↑/↓, moves with the arrow keys, Home/End and type-ahead; the combobox\n * filters while typing, ENTER picks the highlighted option, ESC clears an unfinished search.\n * - Label: wrap it in `lt-form-field` (`for` = `id`; hint and error get wired via `aria-describedby`), or set `label`\n * for an accessible label without a visible one.\n * - Values are compared with `compareWith` (default `Object.is`); the shown text is the option's `label`.\n * - Signal Forms: a `FormValueControl<V | null>` (`[formField]`); `invalid` shows once touched.\n */\n@Component({\n selector: 'lt-select',\n imports: [HlmComboboxImports, HlmSelectImports],\n viewProviders: [LT_NO_NG_CONTROL],\n // The id belongs to the inner trigger: drop a static `id` attribute from the host (no duplicate ids).\n host: { class: 'block', '[attr.id]': 'null', '(focusout)': 'onFocusOut($event)' },\n templateUrl: './select.html',\n})\nexport class LtSelect<V = string> implements FormValueControl<V | null> {\n protected readonly i18n = injectLtUiI18n();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly formField = inject(FORM_FIELD, { optional: true, self: true });\n private readonly generatedId = nextLtId('select');\n private readonly blurred = signal(false);\n\n /** Compares an option value with the selected value (default `Object.is`). */\n readonly compareWith = input<(optionValue: V, selected: V) => boolean>(Object.is);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly id = input<string>();\n /** Marks the select invalid (`aria-invalid`); with Signal Forms it shows once touched. */\n readonly invalid = input(false, { transform: booleanAttribute });\n /** Accessible label (required when no visible label is linked). */\n readonly label = input<string>();\n readonly options = input.required<readonly LtSelectOption<V>[]>();\n readonly placeholder = input<string>();\n /** Filter options by typing (combobox). */\n readonly searchable = input(false, { transform: booleanAttribute });\n /** Touched state (bound by Signal Forms). */\n readonly touched = input(false, { transform: booleanAttribute });\n readonly value = model<V | null>(null);\n /** Focus left the select (marks a Signal Forms field as touched). */\n readonly touch = output<void>();\n\n protected readonly controlId = computed(() => this.id() || this.generatedId);\n protected readonly showInvalid = computed(() => this.invalid() && (!this.formField || this.touched() || this.blurred()));\n protected readonly selectPlaceholder = computed(() => this.placeholder() ?? this.i18n.t('lt.ui.selectPlaceholder'));\n protected readonly searchPlaceholder = computed(() => this.placeholder() ?? this.i18n.t('lt.ui.searchPlaceholder'));\n /** Option label of a value (display text and combobox filter). */\n protected readonly itemToString = computed(() => {\n const options = this.options();\n const compare = this.compareWith();\n return (value: V): string => options.find((option) => compare(option.value, value))?.label ?? '';\n });\n protected readonly isEqual = computed(() => {\n const compare = this.compareWith();\n return (optionValue: V, selected: V | null | undefined): boolean => selected !== null && selected !== undefined && compare(optionValue, selected);\n });\n\n /** Focus the trigger / search input. */\n focus(options?: FocusOptions): void {\n this.host.nativeElement.querySelector<HTMLElement>(`[id=\"${this.controlId()}\"]`)?.focus(options);\n }\n\n protected onValueChange(value: unknown): void {\n this.value.set((value ?? null) as V | null);\n }\n\n protected onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget;\n if (next instanceof Node && this.host.nativeElement.contains(next)) {\n return;\n }\n this.blurred.set(true);\n this.touch.emit();\n }\n}\n","@if (label()) {\n <label class=\"sr-only\" [for]=\"controlId()\">{{ label() }}</label>\n}\n@if (searchable()) {\n <hlm-combobox [value]=\"value()\" [disabled]=\"disabled()\" [itemToString]=\"itemToString()\" [isItemEqualToValue]=\"isEqual()\" (valueChange)=\"onValueChange($event)\">\n <hlm-combobox-input\n class=\"w-full\"\n [inputId]=\"controlId()\"\n [placeholder]=\"searchPlaceholder()\"\n [forceInvalid]=\"showInvalid()\"\n [aria-invalid]=\"showInvalid()\"\n [triggerAriaLabel]=\"i18n.t('lt.ui.toggleOptions')\"\n />\n <div *hlmComboboxPortal hlmComboboxContent>\n <div hlmComboboxEmpty>{{ i18n.t('lt.ui.noResults') }}</div>\n <div hlmComboboxList>\n @for (option of options(); track $index) {\n <hlm-combobox-item [value]=\"option.value\" [disabled]=\"!!option.disabled\">{{ option.label }}</hlm-combobox-item>\n }\n </div>\n </div>\n </hlm-combobox>\n} @else {\n <hlm-select [value]=\"value()\" [disabled]=\"disabled()\" [itemToString]=\"itemToString()\" [isItemEqualToValue]=\"isEqual()\" (valueChange)=\"onValueChange($event)\">\n <hlm-select-trigger class=\"w-full\" [buttonId]=\"controlId()\" [forceInvalid]=\"showInvalid()\" [aria-invalid]=\"showInvalid()\">\n <hlm-select-value [placeholder]=\"selectPlaceholder()\" />\n </hlm-select-trigger>\n <hlm-select-content *hlmSelectPortal>\n @for (option of options(); track $index) {\n <hlm-select-item [value]=\"option.value\" [disabled]=\"!!option.disabled\">{{ option.label }}</hlm-select-item>\n }\n </hlm-select-content>\n </hlm-select>\n}\n","import { booleanAttribute, Component, computed, ElementRef, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { FORM_FIELD, type FormValueControl, type ValidationError } from '@angular/forms/signals';\n\nimport { HlmInput } from '../helm/input';\nimport { HlmInputGroup, HlmInputGroupAddon, HlmInputGroupInput } from '../helm/input-group';\nimport { LT_NO_NG_CONTROL, ltFirstErrorMessage, ltOptionalString, ltSyncAriaInvalid, nextLtId } from './control';\nimport { LtFormField } from './form-field';\n\n/**\n * Text input with label, hint, error, unit/prefix (Spartan input group) and optional ENTER action (barcode scanners).\n * Two-way `[(value)]`, or bind a Signal Forms field via `[formField]` on an own `hlmInput` inside `lt-form-field`.\n *\n * Signal Forms: the component is a `FormValueControl<string>`, so `<lt-text-field [formField]=\"form.name\" />` works as\n * well: `disabled`, `readonly`, `required`, `name`, `invalid`, `touched`, `errors`, `minLength` and `maxLength` follow\n * the field, and the first error message is shown once the field was touched.\n *\n * Accessibility: the label is linked via `for`; hint, unit/prefix and error are wired via `aria-describedby`; the error\n * is announced (`role=\"alert\"`) and sets `aria-invalid`.\n *\n * ENTER: `(enter)` emits the current value. While a handler is bound, ENTER does not submit a surrounding form (a\n * scanner sends ENTER after each code); without a handler the browser's implicit submit stays intact.\n */\n@Component({\n selector: 'lt-text-field',\n imports: [HlmInput, HlmInputGroup, HlmInputGroupAddon, HlmInputGroupInput, LtFormField],\n viewProviders: [LT_NO_NG_CONTROL],\n // The id belongs to the inner input: drop a static `id` attribute from the host (no duplicate ids).\n host: { class: 'block', '[attr.id]': 'null' },\n templateUrl: './text-field.html',\n})\nexport class LtTextField implements FormValueControl<string> {\n /** Set when a Signal Forms `[formField]` is bound on this element (errors then wait for the touched state). */\n private readonly formField = inject(FORM_FIELD, { optional: true, self: true });\n private readonly generatedId = nextLtId('text-field');\n private readonly control = viewChild<ElementRef<HTMLInputElement>>('control');\n private readonly blurred = signal(false);\n private enterListeners = 0;\n\n /** `autocomplete` attribute (always set it for personal data, e.g. `email`, `name`). */\n readonly autocomplete = input<string>('off');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly error = input<string | null | undefined>();\n /** Validation errors (bound by Signal Forms); the first message is shown once the field was touched. */\n readonly errors = input<readonly ValidationError.WithOptionalFieldTree[]>([]);\n readonly hint = input<string>();\n /** Input id (default generated). */\n readonly id = input<string>();\n /** Marks the input invalid (bound by Signal Forms; shown once the field was touched). */\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly label = input.required<string>();\n /** `maxlength` attribute. */\n readonly maxLength = input<number>();\n /** `minlength` attribute. */\n readonly minLength = input<number>();\n /** `name` attribute. */\n readonly name = input('', { transform: ltOptionalString });\n readonly placeholder = input<string>('');\n /** Text in front of the value (e.g. `€`). */\n readonly prefix = input<string>();\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n /** Touched state (bound by Signal Forms). */\n readonly touched = input(false, { transform: booleanAttribute });\n /** Input type. */\n readonly type = input<'email' | 'number' | 'search' | 'tel' | 'text' | 'url'>('text');\n /** Unit after the value (e.g. `kg`, `mm`). */\n readonly unit = input<string>();\n /** The value. */\n readonly value = model<string>('');\n /** ENTER pressed (scanner input): emits the current value. */\n readonly enter = output<string>();\n /** The input lost focus (marks a Signal Forms field as touched). */\n readonly touch = output<void>();\n\n protected readonly inputId = computed(() => this.id() || this.generatedId);\n protected readonly prefixId = computed(() => `${this.inputId()}-prefix`);\n protected readonly unitId = computed(() => `${this.inputId()}-unit`);\n protected readonly describedBy = computed(() => [...(this.prefix() ? [this.prefixId()] : []), ...(this.unit() ? [this.unitId()] : [])]);\n\n /** Signal Forms state is shown once the field was touched; a plain `[invalid]` binding immediately. */\n private readonly showState = computed(() => !this.formField || this.touched() || this.blurred());\n protected readonly displayError = computed(() => this.error() || (this.invalid() && this.showState() ? ltFirstErrorMessage(this.errors()) : null));\n protected readonly showInvalid = computed(() => !!this.displayError() || (this.invalid() && this.showState()));\n\n constructor() {\n ltSyncAriaInvalid(() => this.control()?.nativeElement, this.showInvalid);\n // Count `(enter)` listeners: ENTER only cancels the implicit form submit while someone handles it.\n const subscribe = this.enter.subscribe.bind(this.enter);\n this.enter.subscribe = (callback) => {\n this.enterListeners++;\n const subscription = subscribe(callback);\n return {\n unsubscribe: () => {\n this.enterListeners--;\n subscription.unsubscribe();\n },\n };\n };\n }\n\n /** Focus the input (used by Signal Forms to focus the first invalid field). */\n focus(options?: FocusOptions): void {\n this.control()?.nativeElement.focus(options);\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n\n protected onBlur(): void {\n this.blurred.set(true);\n this.touch.emit();\n }\n\n protected onEnter(event: Event): void {\n if ((event as KeyboardEvent).isComposing) {\n return;\n }\n if (this.enterListeners > 0) {\n event.preventDefault();\n }\n this.enter.emit((event.target as HTMLInputElement).value);\n }\n}\n","<lt-form-field [for]=\"inputId()\" [label]=\"label()\" [hint]=\"hint()\" [error]=\"displayError()\" [required]=\"required()\" [describedBy]=\"describedBy()\">\n @if (prefix() || unit()) {\n <div hlmInputGroup [attr.data-disabled]=\"disabled() ? 'true' : null\">\n @if (prefix()) {\n <span hlmInputGroupAddon align=\"inline-start\" [id]=\"prefixId()\">{{ prefix() }}</span>\n }\n <input\n #control\n hlmInputGroupInput\n [id]=\"inputId()\"\n [type]=\"type()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [attr.maxlength]=\"maxLength() ?? null\"\n [attr.minlength]=\"minLength() ?? null\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [forceInvalid]=\"showInvalid()\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnter($event)\"\n />\n @if (unit()) {\n <span hlmInputGroupAddon align=\"inline-end\" [id]=\"unitId()\">{{ unit() }}</span>\n }\n </div>\n } @else {\n <input\n #control\n hlmInput\n [id]=\"inputId()\"\n [type]=\"type()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [attr.maxlength]=\"maxLength() ?? null\"\n [attr.minlength]=\"minLength() ?? null\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [forceInvalid]=\"showInvalid()\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnter($event)\"\n />\n }\n</lt-form-field>\n","import type { FocusableOption } from '@angular/cdk/a11y';\nimport { booleanAttribute, Directive, ElementRef, inject, input } from '@angular/core';\n\n/** Adapter of a toolbar item for the CDK `FocusKeyManager` (the item's `disabled` is a signal input). */\nclass LtToolbarItemFocusable implements FocusableOption {\n constructor(private readonly item: LtToolbarItem) {}\n\n get disabled(): boolean {\n return this.item.isDisabled();\n }\n\n focus(): void {\n this.item.host.focus();\n }\n\n getLabel(): string {\n return this.item.host.textContent?.trim() ?? '';\n }\n}\n\n/**\n * Item of an {@link LtToolbar}. Disabled items (`disabled` input, native `disabled` or `aria-disabled=\"true\"`) are\n * skipped by the arrow keys.\n */\n@Directive({\n selector: '[ltToolbarItem]',\n})\nexport class LtToolbarItem {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** @internal Adapter for the CDK `FocusKeyManager`. */\n readonly focusable: FocusableOption = new LtToolbarItemFocusable(this);\n\n /** @internal The host element. */\n get host(): HTMLElement {\n return this.element.nativeElement;\n }\n\n /** Whether the arrow keys skip the item. */\n isDisabled(): boolean {\n const element = this.element.nativeElement as HTMLElement & { disabled?: boolean };\n return this.disabled() || element.disabled === true || element.getAttribute('aria-disabled') === 'true';\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { afterRenderEffect, computed, contentChildren, Directive, HostAttributeToken, inject, input, signal } from '@angular/core';\n\nimport { LtToolbarItem } from './toolbar-item';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Function bar (`role=\"toolbar\"`) with roving tabindex: one tab stop, arrow keys move between the items, Home/End\n * jump. Mark items with `ltToolbarItem`. Spartan has no toolbar; built on `@angular/cdk/a11y`.\n *\n * - Horizontal: ←/→ (mirrored in RTL), vertical: ↑/↓; the focus wraps around; disabled items are skipped.\n * - Keys pressed inside text inputs, textareas and selects keep their native meaning.\n * - Accessible name: a static `aria-label`, the `label` input, or `aria-labelledby`; otherwise `lt.ui.toolbar`.\n *\n * @example <div ltToolbar aria-label=\"Aktionen\"><button hlmBtn ltToolbarItem>Neu</button>…</div>\n */\n@Directive({\n selector: '[ltToolbar]',\n host: {\n role: 'toolbar',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.aria-label]': 'ariaLabel()',\n '(keydown)': 'onKeydown($event)',\n '(focusin)': 'onFocusIn($event)',\n },\n})\nexport class LtToolbar {\n private readonly i18n = injectLtUiI18n();\n private readonly direction = inject(Directionality, { optional: true });\n private readonly staticLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly labelledBy = inject(new HostAttributeToken('aria-labelledby'), { optional: true });\n private readonly items = contentChildren(LtToolbarItem, { descendants: true });\n /** Index of the item that holds the tab stop. */\n private readonly activeIndex = signal(-1);\n\n /** Accessible name (alternative to a static `aria-label`). */\n readonly label = input<string>();\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n protected readonly ariaLabel = computed(() => this.label() || this.staticLabel || (this.labelledBy ? null : this.i18n.t('lt.ui.toolbar')));\n\n constructor() {\n // Roving tabindex, written after render: Spartan's button primitive writes `tabindex` itself when it is disabled.\n afterRenderEffect({\n write: () => {\n const items = this.items();\n const disabled = items.map((item) => item.isDisabled());\n let active = this.activeIndex();\n if (active < 0 || active >= items.length || disabled[active]) {\n active = disabled.findIndex((value) => !value);\n }\n items.forEach((item, index) => item.host.setAttribute('tabindex', index === active ? '0' : '-1'));\n },\n });\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (isTextEntry(event.target)) {\n return;\n }\n const items = this.items();\n const index = this.indexOf(event.target);\n if (index < 0) {\n return;\n }\n const manager = new FocusKeyManager(items.map((item) => item.focusable))\n .withWrap()\n .withHomeAndEnd()\n .withVerticalOrientation(this.orientation() === 'vertical')\n .withHorizontalOrientation(this.orientation() === 'vertical' ? null : (this.direction?.value ?? 'ltr'));\n manager.updateActiveItem(index);\n manager.onKeydown(event);\n if (manager.activeItemIndex !== null && manager.activeItemIndex >= 0) {\n this.activeIndex.set(manager.activeItemIndex);\n }\n manager.destroy();\n }\n\n protected onFocusIn(event: FocusEvent): void {\n const index = this.indexOf(event.target);\n if (index >= 0 && !this.items()[index]?.isDisabled()) {\n this.activeIndex.set(index);\n }\n }\n\n private indexOf(target: EventTarget | null): number {\n return this.items().findIndex((item) => item.host === target || (target instanceof Node && item.host.contains(target)));\n }\n}\n\nfunction isTextEntry(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n if (target.isContentEditable || target instanceof HTMLTextAreaElement || target instanceof HTMLSelectElement) {\n return true;\n }\n if (target instanceof HTMLInputElement) {\n return !['button', 'checkbox', 'color', 'file', 'image', 'radio', 'range', 'reset', 'submit'].includes(target.type);\n }\n return false;\n}\n","import { LtBreadcrumb } from './breadcrumb';\nimport { LtColorModeButton } from './color-mode-button';\nimport { LtDataView, LtDataViewCell, LtDataViewTile } from './data-view';\nimport { LtDatePicker } from './date-picker';\nimport { LtDateTimePicker } from './date-time-picker';\nimport { LtEnterAction } from './enter-action';\nimport { LtFooter } from './footer';\nimport { LtFormField } from './form-field';\nimport { LtHeader, LtHeaderActions, LtHeaderLogo } from './header';\nimport { LtNavigationMenu } from './navigation-menu';\nimport { LtNotice } from './notice';\nimport { LtPageCard, LtPageCardFooter } from './page-card';\nimport { LtPageTitle, LtPageTitleActions } from './page-title';\nimport { LtPasswordInput } from './password-input';\nimport { LtReadonlyField } from './readonly-field';\nimport { LtSelect } from './select';\nimport { LtTextField } from './text-field';\nimport { LtToolbar } from './toolbar';\nimport { LtToolbarItem } from './toolbar-item';\n\n/**\n * All lenne.Tech components and directives of `/ui` for a component's `imports` (the Spartan helm parts have their\n * own `Hlm*Imports`).\n *\n * @example @Component({ imports: [LtUiImports, HlmButtonImports], … })\n */\nexport const LtUiImports = [\n LtBreadcrumb,\n LtColorModeButton,\n LtDataView,\n LtDataViewCell,\n LtDataViewTile,\n LtDatePicker,\n LtDateTimePicker,\n LtEnterAction,\n LtFooter,\n LtFormField,\n LtHeader,\n LtHeaderActions,\n LtHeaderLogo,\n LtNavigationMenu,\n LtNotice,\n LtPageCard,\n LtPageCardFooter,\n LtPageTitle,\n LtPageTitleActions,\n LtPasswordInput,\n LtReadonlyField,\n LtSelect,\n LtTextField,\n LtToolbar,\n LtToolbarItem,\n] as const;\n","import { inject, Service, type Type } from '@angular/core';\nimport type { BrnDialogOptions, BrnDialogRef } from '@spartan-ng/brain/dialog';\n\nimport { HlmDialogService } from '../helm/dialog';\nimport { hlm } from '../helm/utils';\nimport { LtConfirmDialog } from './confirm-dialog';\nimport { LT_OVERLAY_DATA, LT_OVERLAY_REF } from './overlay-ref';\nimport { injectLtUiI18n } from './i18n';\n\n/**\n * Default classes of every overlay's content: never taller than the viewport, scrolls inside, so the actions of a long\n * form stay reachable on small screens. A `contentClass` with its own `max-h-*` / `overflow-*` replaces them.\n * (`scripts/generate-ui-sources.mjs` adds them to `components/dialog.css`.)\n */\nexport const LT_OVERLAY_CONTENT_CLASS = 'max-h-[calc(100dvh-2rem)] overflow-y-auto';\n\n/** Options of {@link LtOverlayService.confirm}. */\nexport interface LtConfirmOptions {\n /** Cancel button label (default `lt.ui.cancel`). */\n cancelLabel?: string;\n /** Confirm button label (default `lt.ui.confirm`). */\n confirmLabel?: string;\n description?: string;\n /** Destructive styling of the confirm button (delete, sign out everywhere …). */\n destructive?: boolean;\n title: string;\n}\n\n/** Options of {@link LtOverlayService.open}. */\nexport interface LtOverlayOptions<D> {\n /** Data for the component (`injectLtOverlayData<D>()`). */\n data?: D;\n /** Close on backdrop click / Escape (default `true`). */\n dismissible?: boolean;\n /** Extra classes on the dialog content, merged over {@link LT_OVERLAY_CONTENT_CLASS}. */\n contentClass?: string;\n}\n\n/** Handle of an open overlay. */\nexport interface LtOverlayRef<R> {\n /** Close with a result. */\n close(result?: R): void;\n /** Resolves when the overlay closed (`undefined` when dismissed). */\n readonly closed: Promise<R | undefined>;\n}\n\n/** Extra dialog options used internally (confirm dialog). */\ntype LtDialogExtras = Partial<Pick<BrnDialogOptions, 'autoFocus' | 'role'>> & { showCloseButton?: boolean };\n\n/**\n * Programmatic modals on Spartan's dialog (the counterpart of Nuxt UI's `useOverlay()`): open any component as a\n * dialog and await its result, or ask a confirmation question.\n *\n * The dialog is labelled by an element with `hlmDialogTitle` and described by `hlmDialogDescription` inside the\n * opened component; focus moves into the dialog, is trapped there and returns to the trigger when it closes.\n *\n * @example\n * const ref = this.overlay.open<boolean, { id: string }>(EditUserDialog, { data: { id } });\n * if (await ref.closed) { reload(); }\n */\n@Service()\nexport class LtOverlayService {\n private readonly dialog = inject(HlmDialogService);\n private readonly i18n = injectLtUiI18n();\n\n /** Open `component` in a dialog. */\n open<R = unknown, D = unknown>(component: Type<unknown>, options: LtOverlayOptions<D> = {}): LtOverlayRef<R> {\n return this.openDialog<R, D>(component, options, {});\n }\n\n /** Confirmation dialog; resolves `true` on confirm. */\n async confirm(options: LtConfirmOptions): Promise<boolean> {\n const ref = this.openDialog<boolean, LtConfirmOptions>(\n LtConfirmDialog,\n { data: options },\n {\n // Destructive questions start on the safe answer.\n autoFocus: options.destructive ? '[data-lt-confirm=\"cancel\"]' : '[data-lt-confirm=\"confirm\"]',\n role: 'alertdialog',\n showCloseButton: false,\n },\n );\n return (await ref.closed) === true;\n }\n\n private openDialog<R, D>(component: Type<unknown>, options: LtOverlayOptions<D>, extras: LtDialogExtras): LtOverlayRef<R> {\n const dismissible = options.dismissible !== false;\n let dialogRef: BrnDialogRef<R> | undefined;\n let resolveClosed!: (result: R | undefined) => void;\n const ref: LtOverlayRef<R> = {\n close: (result?: R) => dialogRef?.close(result),\n closed: new Promise<R | undefined>((resolve) => (resolveClosed = resolve)),\n };\n dialogRef = this.dialog.open<R>(component, {\n closeLabel: this.i18n.t('lt.ui.close'),\n closeOnOutsidePointerEvents: dismissible,\n contentClass: hlm(LT_OVERLAY_CONTENT_CLASS, options.contentClass),\n disableClose: !dismissible,\n providers: [\n { provide: LT_OVERLAY_DATA, useValue: options.data },\n { provide: LT_OVERLAY_REF, useValue: ref },\n ],\n showCloseButton: extras.showCloseButton ?? dismissible,\n ...(extras.autoFocus ? { autoFocus: extras.autoFocus } : {}),\n ...(extras.role ? { role: extras.role } : {}),\n });\n dialogRef.closed$.subscribe((result) => resolveClosed(result));\n return ref;\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { OVERLAY_DEFAULT_CONFIG } from '@angular/cdk/overlay';\nimport type { Provider } from '@angular/core';\nimport { BrnDialogService } from '@spartan-ng/brain/dialog';\n\nimport { HlmDialogService } from '../helm/dialog';\nimport { LtOverlayService } from './overlay';\n\n/**\n * CDK overlays without the browser `popover` top layer, so the `position: fixed` toaster stays visible above dialogs,\n * sheets and tooltips — the same as Spartan's `provideSpartanHlm()`.\n *\n * Put it into the `providers` of the lazy routes or of the (lazy) layout components whose content opens overlays,\n * not into `app.config.ts`: the token lives in the CDK overlay module, which would otherwise land in the initial bundle\n * (~57 kB, measured in ng-base-starter).\n *\n * The dialog services (`Dialog` of the CDK, `BrnDialogService`, `HlmDialogService`, `LtOverlayService`) are root\n * services that read the token from the injector they were created in, so they are provided again here: components of\n * the route then get route-level instances that see the token. Without that, only directive overlays (tooltip, menu,\n * popover) would follow it, not dialogs (found by ng-base-starter, 2026-11-06).\n *\n * Returns plain providers, so they work in route `providers` and in a component's `providers` alike (a layout\n * component: its router outlet inherits the element injector).\n *\n * @example { path: 'app', loadChildren: () => import('./app.routes'), providers: [provideLtUiOverlayDefaults()] }\n * @example @Component({ selector: 'app-default-layout', providers: [provideLtUiOverlayDefaults()], … })\n */\nexport function provideLtUiOverlayDefaults(): Provider[] {\n return [{ provide: OVERLAY_DEFAULT_CONFIG, useValue: { usePopover: false } }, Dialog, BrnDialogService, HlmDialogService, LtOverlayService];\n}\n","/**\n * Enter/leave transitions for Angular's native `animate.enter` / `animate.leave` (the counterpart of the five\n * `LtTransition*` Vue components). The CSS classes ship in `ui/styles/transitions.css` (imported by `theme.css`);\n * durations via the CSS variables `--lt-enter-duration` / `--lt-leave-duration` (default 100 ms for fades, 500 ms for\n * slides); `prefers-reduced-motion: reduce` turns every transition into a 1 ms fade.\n *\n * @example\n * @if (open()) { <div [animate.enter]=\"ltTransitions.fade.enter\" [animate.leave]=\"ltTransitions.fade.leave\">…</div> }\n */\nexport const LT_TRANSITIONS = {\n fade: { enter: 'lt-fade-enter', leave: 'lt-fade-leave' },\n fadeScale: { enter: 'lt-fade-scale-enter', leave: 'lt-fade-scale-leave' },\n slide: { enter: 'lt-slide-enter', leave: 'lt-slide-leave' },\n slideBottom: { enter: 'lt-slide-bottom-enter', leave: 'lt-slide-bottom-leave' },\n slideRevert: { enter: 'lt-slide-revert-enter', leave: 'lt-slide-revert-leave' },\n} as const;\n\n/** Name of a transition in {@link LT_TRANSITIONS}. */\nexport type LtTransitionName = keyof typeof LT_TRANSITIONS;\n","import { Directive } from '@angular/core';\nimport { BrnAccordion } from '@spartan-ng/brain/accordion';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAccordion], hlm-accordion',\n\texportAs: 'hlmAccordion',\n\thostDirectives: [{ directive: BrnAccordion, inputs: ['type', 'orientation'] }],\n\thost: {\n\t\t'data-slot': 'accordion',\n\t},\n})\nexport class HlmAccordion {\n\tconstructor() {\n\t\tclasses(() => 'flex w-full flex-col');\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BrnAccordionContent } from '@spartan-ng/brain/accordion';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-accordion-content',\n\texportAs: 'hlmAccordionContent',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnAccordionContent, inputs: ['style'] }],\n\thost: {\n\t\t'data-slot': 'accordion-content',\n\t},\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"pt-0 pb-4 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n})\nexport class HlmAccordionContent {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-sm transition-all data-[state=closed]:h-0 data-[state=open]:h-(--brn-accordion-content-height)',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAccordionContentLazy } from '@spartan-ng/brain/accordion';\n\n@Directive({\n\tselector: 'ng-template[hlmAccordionContentLazy]',\n\texportAs: 'hlmAccordionContentLazy',\n\thostDirectives: [BrnAccordionContentLazy],\n})\nexport class HlmAccordionContentLazy {}\n","import { Directive } from '@angular/core';\nimport { BrnAccordionItem } from '@spartan-ng/brain/accordion';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAccordionItem],hlm-accordion-item',\n\texportAs: 'hlmAccordionItem',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnAccordionItem,\n\t\t\tinputs: ['isOpened', 'disabled'],\n\t\t\toutputs: ['openedChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'accordion-item',\n\t},\n})\nexport class HlmAccordionItem {\n\tconstructor() {\n\t\tclasses(() => 'not-last:border-b flex flex-col');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideChevronUp } from '@ng-icons/lucide';\nimport { BrnAccordionImports } from '@spartan-ng/brain/accordion';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-accordion-trigger',\n\texportAs: 'hlmAccordionTrigger',\n\timports: [BrnAccordionImports, NgIcon],\n\tproviders: [provideIcons({ lucideChevronDown, lucideChevronUp })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<h3 brnAccordionHeader class=\"flex\">\n\t\t\t<button brnAccordionTrigger data-slot=\"accordion-trigger\" [class]=\"_computedTriggerClass()\">\n\t\t\t\t<ng-content />\n\t\t\t\t<ng-icon\n\t\t\t\t\tname=\"lucideChevronDown\"\n\t\t\t\t\tdata-slot=\"accordion-trigger-icon\"\n\t\t\t\t\tclass=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n\t\t\t\t/>\n\t\t\t\t<ng-icon\n\t\t\t\t\tname=\"lucideChevronUp\"\n\t\t\t\t\tdata-slot=\"accordion-trigger-icon\"\n\t\t\t\t\tclass=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:inline group-aria-[expanded=false]/accordion-trigger:hidden\"\n\t\t\t\t/>\n\t\t\t</button>\n\t\t</h3>\n\t`,\n})\nexport class HlmAccordionTrigger {\n\tpublic readonly triggerClass = input<ClassValue>('');\n\n\tprotected readonly _computedTriggerClass = computed(() =>\n\t\thlm(\n\t\t\t'focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground! rounded-md py-4 text-start text-sm font-medium hover:underline focus-visible:ring-3 **:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:text-[length:--spacing(4)] group/accordion-trigger relative flex flex-1 items-start justify-between border border-transparent transition-all outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',\n\t\t\tthis.triggerClass(),\n\t\t),\n\t);\n}\n","import { HlmAccordion } from './lib/hlm-accordion';\nimport { HlmAccordionContent } from './lib/hlm-accordion-content';\nimport { HlmAccordionContentLazy } from './lib/hlm-accordion-content-lazy';\nimport { HlmAccordionItem } from './lib/hlm-accordion-item';\nimport { HlmAccordionTrigger } from './lib/hlm-accordion-trigger';\n\nexport * from './lib/hlm-accordion';\nexport * from './lib/hlm-accordion-content';\nexport * from './lib/hlm-accordion-content-lazy';\nexport * from './lib/hlm-accordion-item';\nexport * from './lib/hlm-accordion-trigger';\n\nexport const HlmAccordionImports = [\n\tHlmAccordion,\n\tHlmAccordionItem,\n\tHlmAccordionContent,\n\tHlmAccordionContentLazy,\n\tHlmAccordionTrigger,\n] as const;\n","import { Directive, computed, effect, input, untracked } from '@angular/core';\nimport { BrnAlertDialogOverlay } from '@spartan-ng/brain/alert-dialog';\nimport { injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmAlertDialogOverlay],hlm-alert-dialog-overlay',\n\texportAs: 'hlmAlertDialogOverlay',\n\thostDirectives: [BrnAlertDialogOverlay],\n})\nexport class HlmAlertDialogOverlay {\n\tprivate readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() => hlm('data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 isolate bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs', this.userClass()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst classValue = this._computedClass();\n\t\t\tuntracked(() => this._classSettable?.setClassToCustomElement(classValue));\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { BRN_ALERT_DIALOG_DEFAULT_OPTIONS, BrnAlertDialog } from '@spartan-ng/brain/alert-dialog';\nimport { BrnDialog, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { HlmAlertDialogOverlay } from './hlm-alert-dialog-overlay';\n\n@Component({\n\tselector: 'hlm-alert-dialog',\n\texportAs: 'hlmAlertDialog',\n\timports: [HlmAlertDialogOverlay],\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => HlmAlertDialog),\n\t\t},\n\t\tprovideBrnDialogDefaultOptions({\n\t\t\t...BRN_ALERT_DIALOG_DEFAULT_OPTIONS,\n\t\t}),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<hlm-alert-dialog-overlay />\n\t\t<ng-content />\n\t`,\n})\nexport class HlmAlertDialog extends BrnAlertDialog {}\n","import { Directive, input } from '@angular/core';\nimport { HlmButton } from '../../button';\n\n@Directive({\n\tselector: 'button[hlmAlertDialogAction]',\n\texportAs: 'hlmAlertDialogAction',\n\thostDirectives: [{ directive: HlmButton, inputs: ['variant', 'size'] }],\n\thost: { 'data-slot': 'alert-dialog-action', '[type]': 'type()' },\n})\nexport class HlmAlertDialogAction {\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\nimport { HlmButton, provideBrnButtonConfig } from '../../button';\n\n@Directive({\n\tselector: 'button[hlmAlertDialogCancel]',\n\texportAs: 'hlmAlertDialogCancel',\n\tproviders: [provideBrnButtonConfig({ variant: 'outline' })],\n\thostDirectives: [BrnDialogClose, { directive: HlmButton, inputs: ['variant', 'size'] }],\n\thost: { 'data-slot': 'alert-dialog-cancel', '[type]': 'type()' },\n})\nexport class HlmAlertDialogCancel {\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDialogContent],hlm-alert-dialog-content',\n\texportAs: 'hlmAlertDialogContent',\n\thost: {\n\t\t'data-slot': 'alert-dialog-content',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.data-size]': 'size()',\n\t},\n})\nexport class HlmAlertDialogContent {\n\tprivate readonly _dialogRef = inject(BrnDialogRef);\n\tpublic readonly state = this._dialogRef.state;\n\n\tpublic readonly size = input<'sm' | 'default'>('default');\n\n\tconstructor() {\n\t\tclasses(() => 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-popover text-popover-foreground ring-foreground/10 gap-6 rounded-xl p-6 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg group/alert-dialog-content grid w-[calc(100vw-2rem)] outline-none');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogDescription } from '@spartan-ng/brain/alert-dialog';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDialogDescription]',\n\texportAs: 'hlmAlertDialogDescription',\n\thostDirectives: [BrnAlertDialogDescription],\n\thost: { 'data-slot': 'alert-dialog-description' },\n})\nexport class HlmAlertDialogDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDialogFooter],hlm-alert-dialog-footer',\n\texportAs: 'hlmAlertDialogFooter',\n\thost: { 'data-slot': 'alert-dialog-footer' },\n})\nexport class HlmAlertDialogFooter {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDialogHeader],hlm-alert-dialog-header',\n\texportAs: 'hlmAlertDialogHeader',\n\thost: { 'data-slot': 'alert-dialog-header' },\n})\nexport class HlmAlertDialogHeader {\n\tconstructor() {\n\t\tclasses(() => 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDialogMedia],hlm-alert-dialog-media',\n\texportAs: 'hlmAlertDialogMedia',\n\thost: { 'data-slot': 'alert-dialog-media' },\n})\nexport class HlmAlertDialogMedia {\n\tconstructor() {\n\t\tclasses(() => \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[ng-icon:not([class*='text-'])]:text-[length:--spacing(8)]\");\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogContent } from '@spartan-ng/brain/alert-dialog';\n\n@Directive({\n\tselector: '[hlmAlertDialogPortal]',\n\texportAs: 'hlmAlertDialogPortal',\n\thostDirectives: [{ directive: BrnAlertDialogContent, inputs: ['context', 'class'] }],\n})\nexport class HlmAlertDialogPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogTitle } from '@spartan-ng/brain/alert-dialog';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAlertDialogTitle]',\n\texportAs: 'hlmAlertDialogTitle',\n\thostDirectives: [BrnAlertDialogTitle],\n\thost: { 'data-slot': 'alert-dialog-title' },\n})\nexport class HlmAlertDialogTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogTrigger } from '@spartan-ng/brain/alert-dialog';\n\n@Directive({\n\tselector: 'button[hlmAlertDialogTrigger],button[hlmAlertDialogTriggerFor]',\n\texportAs: 'hlmAlertDialogTrigger',\n\thostDirectives: [\n\t\t{ directive: BrnAlertDialogTrigger, inputs: ['id', 'brnAlertDialogTriggerFor: hlmAlertDialogTriggerFor', 'type'] },\n\t],\n\thost: { 'data-slot': 'alert-dialog-trigger' },\n})\nexport class HlmAlertDialogTrigger {}\n","import { HlmAlertDialog } from './lib/hlm-alert-dialog';\nimport { HlmAlertDialogAction } from './lib/hlm-alert-dialog-action';\nimport { HlmAlertDialogCancel } from './lib/hlm-alert-dialog-cancel';\nimport { HlmAlertDialogContent } from './lib/hlm-alert-dialog-content';\nimport { HlmAlertDialogDescription } from './lib/hlm-alert-dialog-description';\nimport { HlmAlertDialogFooter } from './lib/hlm-alert-dialog-footer';\nimport { HlmAlertDialogHeader } from './lib/hlm-alert-dialog-header';\nimport { HlmAlertDialogMedia } from './lib/hlm-alert-dialog-media';\nimport { HlmAlertDialogOverlay } from './lib/hlm-alert-dialog-overlay';\nimport { HlmAlertDialogPortal } from './lib/hlm-alert-dialog-portal';\nimport { HlmAlertDialogTitle } from './lib/hlm-alert-dialog-title';\nimport { HlmAlertDialogTrigger } from './lib/hlm-alert-dialog-trigger';\n\nexport * from './lib/hlm-alert-dialog';\nexport * from './lib/hlm-alert-dialog-action';\nexport * from './lib/hlm-alert-dialog-cancel';\nexport * from './lib/hlm-alert-dialog-content';\nexport * from './lib/hlm-alert-dialog-description';\nexport * from './lib/hlm-alert-dialog-footer';\nexport * from './lib/hlm-alert-dialog-header';\nexport * from './lib/hlm-alert-dialog-media';\nexport * from './lib/hlm-alert-dialog-overlay';\nexport * from './lib/hlm-alert-dialog-portal';\nexport * from './lib/hlm-alert-dialog-title';\nexport * from './lib/hlm-alert-dialog-trigger';\n\nexport const HlmAlertDialogImports = [\n\tHlmAlertDialog,\n\tHlmAlertDialogAction,\n\tHlmAlertDialogCancel,\n\tHlmAlertDialogContent,\n\tHlmAlertDialogDescription,\n\tHlmAlertDialogFooter,\n\tHlmAlertDialogHeader,\n\tHlmAlertDialogMedia,\n\tHlmAlertDialogOverlay,\n\tHlmAlertDialogPortal,\n\tHlmAlertDialogTitle,\n\tHlmAlertDialogTrigger,\n] as const;\n","import { type NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\nconst parseDividedString = (value: NumberInput): NumberInput => {\n\tif (typeof value !== 'string' || !value.includes('/')) return value;\n\treturn value\n\t\t.split('/')\n\t\t.map((v) => Number.parseInt(v, 10))\n\t\t.reduce((a, b) => a / b);\n};\n\n@Directive({\n\tselector: '[hlmAspectRatio]',\n\texportAs: 'hlmAspectRatio',\n\thost: {\n\t\t'data-slot': 'aspect-ratio',\n\t\t'[style.--ratio]': 'ratio()',\n\t},\n})\nexport class HlmAspectRatio {\n\t/**\n\t * Aspect ratio of the element, defined as width / height.\n\t */\n\tpublic readonly ratio = input<number, NumberInput>(1, {\n\t\talias: 'hlmAspectRatio',\n\t\ttransform: (value: NumberInput) => {\n\t\t\tconst coerced = coerceNumberProperty(parseDividedString(value));\n\t\t\treturn coerced <= 0 ? 1 : coerced;\n\t\t},\n\t});\n\n\tconstructor() {\n\t\tclasses(() => 'relative aspect-(--ratio)');\n\t}\n}\n","import { HlmAspectRatio } from './lib/hlm-aspect-ratio';\n\nexport * from './lib/hlm-aspect-ratio';\n\nexport const HlmAspectRatioImports = [HlmAspectRatio] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst attachmentVariants = cva(\n\t'bg-card text-card-foreground rounded-xl border shadow-xs group/attachment focus-within:ring-ring/50 has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive/30 relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap transition-colors focus-within:ring-1 data-[state=idle]:border-dashed',\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tdefault:\n\t\t\t\t\t'gap-2 text-sm has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2',\n\t\t\t\tsm: 'gap-2.5 text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5',\n\t\t\t\txs: 'rounded-md gap-1.5 text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1',\n\t\t\t},\n\t\t\torientation: {\n\t\t\t\thorizontal: 'min-w-40 items-center',\n\t\t\t\tvertical: 'w-24 flex-col has-data-[slot=attachment-content]:w-30',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: 'default',\n\t\t\torientation: 'horizontal',\n\t\t},\n\t},\n);\n\nexport type AttachmentVariants = VariantProps<typeof attachmentVariants>;\nexport type AttachmentState = 'idle' | 'uploading' | 'processing' | 'error' | 'done';\n\n@Directive({\n\tselector: '[hlmAttachment],hlm-attachment',\n\texportAs: 'hlmAttachment',\n\thost: {\n\t\t'data-slot': 'attachment',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t},\n})\nexport class HlmAttachment {\n\tpublic readonly state = input<AttachmentState>('done');\n\tpublic readonly size = input<AttachmentVariants['size']>('default');\n\tpublic readonly orientation = input<AttachmentVariants['orientation']>('horizontal');\n\n\tconstructor() {\n\t\tclasses(() => attachmentVariants({ size: this.size(), orientation: this.orientation() }));\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { HlmButton, provideBrnButtonConfig } from '../../button';\n\n@Directive({\n\tselector: 'button[hlmAttachmentAction]',\n\texportAs: 'hlmAttachmentAction',\n\tproviders: [provideBrnButtonConfig({ variant: 'ghost', size: 'icon-xs' })],\n\thostDirectives: [{ directive: HlmButton, inputs: ['variant', 'size'] }],\n\thost: {\n\t\t'data-slot': 'attachment-action',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class HlmAttachmentAction {\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAttachmentActions],hlm-attachment-actions',\n\texportAs: 'hlmAttachmentActions',\n\thost: { 'data-slot': 'attachment-actions' },\n})\nexport class HlmAttachmentActions {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'shrink-0 items-center relative z-20 flex group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:end-3 group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:gap-1',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAttachmentContent],hlm-attachment-content',\n\texportAs: 'hlmAttachmentContent',\n\thost: { 'data-slot': 'attachment-content' },\n})\nexport class HlmAttachmentContent {\n\tconstructor() {\n\t\tclasses(() => 'min-w-0 flex-1 leading-normal max-w-full group-data-[orientation=vertical]/attachment:px-1');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAttachmentDescription],hlm-attachment-description',\n\texportAs: 'hlmAttachmentDescription',\n\thost: { 'data-slot': 'attachment-description' },\n})\nexport class HlmAttachmentDescription {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-muted-foreground mt-0.5 truncate text-xs group-data-[state=error]/attachment:text-destructive/80 block max-w-full min-w-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAttachmentGroup],hlm-attachment-group',\n\texportAs: 'hlmAttachmentGroup',\n\thost: { 'data-slot': 'attachment-group' },\n})\nexport class HlmAttachmentGroup {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'scroll-fade-x no-scrollbar flex min-w-0 snap-x snap-mandatory scroll-px-1 gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start',\n\t\t);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst attachmentMediaVariants = cva(\n\t\"bg-muted text-foreground w-10 rounded-md group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive relative flex aspect-square shrink-0 items-center justify-center overflow-hidden group-data-[orientation=vertical]/attachment:w-full group-data-[size=sm]/attachment:w-8 group-data-[size=xs]/attachment:w-7 [&_ng-icon]:pointer-events-none [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group-data-[orientation=vertical]/attachment:[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(6)] group-data-[size=xs]/attachment:[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)]\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\ticon: 'bg-muted',\n\t\t\t\timage: 'opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'icon',\n\t\t},\n\t},\n);\n\nexport type AttachmentMediaVariants = VariantProps<typeof attachmentMediaVariants>;\n\n@Directive({\n\tselector: '[hlmAttachmentMedia],hlm-attachment-media',\n\texportAs: 'hlmAttachmentMedia',\n\thost: {\n\t\t'data-slot': 'attachment-media',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmAttachmentMedia {\n\tpublic readonly variant = input<AttachmentMediaVariants['variant']>('icon');\n\n\tconstructor() {\n\t\tclasses(() => attachmentMediaVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAttachmentTitle],hlm-attachment-title',\n\texportAs: 'hlmAttachmentTitle',\n\thost: { 'data-slot': 'attachment-title' },\n})\nexport class HlmAttachmentTitle {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'truncate text-sm font-medium group-data-[state=processing]/attachment:shimmer group-data-[state=uploading]/attachment:shimmer block max-w-full min-w-0',\n\t\t);\n\t}\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmAttachmentTrigger],a[hlmAttachmentTrigger]',\n\texportAs: 'hlmAttachmentTrigger',\n\thost: {\n\t\t'data-slot': 'attachment-trigger',\n\t\t'[attr.type]': '_hostType()',\n\t},\n})\nexport class HlmAttachmentTrigger {\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n\tpublic readonly type = input<'button' | 'submit' | 'reset' | null>('button');\n\n\tprotected readonly _hostType = computed(() =>\n\t\tthis._elementRef.nativeElement.localName === 'button' ? this.type() : null,\n\t);\n\n\tconstructor() {\n\t\tclasses(() => 'absolute inset-0 z-10 outline-none');\n\t}\n}\n","import { HlmAttachment } from './lib/hlm-attachment';\nimport { HlmAttachmentAction } from './lib/hlm-attachment-action';\nimport { HlmAttachmentActions } from './lib/hlm-attachment-actions';\nimport { HlmAttachmentContent } from './lib/hlm-attachment-content';\nimport { HlmAttachmentDescription } from './lib/hlm-attachment-description';\nimport { HlmAttachmentGroup } from './lib/hlm-attachment-group';\nimport { HlmAttachmentMedia } from './lib/hlm-attachment-media';\nimport { HlmAttachmentTitle } from './lib/hlm-attachment-title';\nimport { HlmAttachmentTrigger } from './lib/hlm-attachment-trigger';\n\nexport * from './lib/hlm-attachment';\nexport * from './lib/hlm-attachment-action';\nexport * from './lib/hlm-attachment-actions';\nexport * from './lib/hlm-attachment-content';\nexport * from './lib/hlm-attachment-description';\nexport * from './lib/hlm-attachment-group';\nexport * from './lib/hlm-attachment-media';\nexport * from './lib/hlm-attachment-title';\nexport * from './lib/hlm-attachment-trigger';\n\nexport const HlmAttachmentImports = [\n\tHlmAttachment,\n\tHlmAttachmentAction,\n\tHlmAttachmentActions,\n\tHlmAttachmentContent,\n\tHlmAttachmentDescription,\n\tHlmAttachmentGroup,\n\tHlmAttachmentMedia,\n\tHlmAttachmentTitle,\n\tHlmAttachmentTrigger,\n] as const;\n","import { Directive } from '@angular/core';\nimport { BrnAutocomplete } from '@spartan-ng/brain/autocomplete';\nimport { BrnPopover, provideBrnPopoverConfig, provideBrnPopoverDefaultOptions } from '@spartan-ng/brain/popover';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocomplete],hlm-autocomplete',\n\texportAs: 'hlmAutocomplete',\n\tproviders: [\n\t\tprovideBrnPopoverConfig({\n\t\t\talign: 'start',\n\t\t\tsideOffset: 6,\n\t\t}),\n\t\tprovideBrnPopoverDefaultOptions({ role: null }),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnAutocomplete,\n\t\t\tinputs: ['autoHighlight', 'disabled', 'value', 'search', 'itemToString', 'isItemEqualToValue'],\n\t\t\toutputs: ['valueChange', 'searchChange'],\n\t\t},\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'closeOnOutsidePointerEvents', 'sideOffset', 'state', 'offsetX', 'scrollStrategy'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'autocomplete' },\n})\nexport class HlmAutocomplete {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteContent } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteContent],hlm-autocomplete-content',\n\texportAs: 'hlmAutocompleteContent',\n\thostDirectives: [BrnAutocompleteContent],\n})\nexport class HlmAutocompleteContent {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 max-h-72 min-w-36 overflow-hidden rounded-md shadow-md ring-1 duration-100 group/autocomplete-content flex w-(--brn-autocomplete-width) flex-col p-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteEmpty } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteEmpty],hlm-autocomplete-empty',\n\texportAs: 'hlmAutocompleteEmpty',\n\thostDirectives: [BrnAutocompleteEmpty],\n\thost: { 'data-slot': 'autocomplete-empty' },\n})\nexport class HlmAutocompleteEmpty {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground hidden w-full items-center justify-center gap-2 py-2 text-center text-sm group-data-empty/autocomplete-content:flex');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteGroup } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteGroup]',\n\texportAs: 'hlmAutocompleteGroup',\n\thostDirectives: [BrnAutocompleteGroup],\n\thost: { 'data-slot': 'autocomplete-group' },\n})\nexport class HlmAutocompleteGroup {\n\tconstructor() {\n\t\tclasses(() => 'data-hidden:hidden');\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideSearch, lucideX } from '@ng-icons/lucide';\nimport { BrnAutocompleteAnchor, BrnAutocompleteClear, BrnAutocompleteInput } from '@spartan-ng/brain/autocomplete';\nimport { HlmInputGroup, HlmInputGroupImports } from '../../input-group';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-autocomplete-input',\n\texportAs: 'hlmAutocompleteInput',\n\timports: [HlmInputGroupImports, NgIcon, BrnAutocompleteClear, BrnAutocompleteInput],\n\tproviders: [provideIcons({ lucideSearch, lucideX })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnAutocompleteAnchor, HlmInputGroup],\n\ttemplate: `\n\t\t<input\n\t\t\tbrnAutocompleteInput\n\t\t\t#autocompleteInput=\"brnAutocompleteInput\"\n\t\t\thlmInputGroupInput\n\t\t\t[id]=\"inputId()\"\n\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t[autocomplete]=\"autocomplete()\"\n\t\t\t[aria-invalid]=\"ariaInvalidInput()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t/>\n\n\t\t@if (showSearch()) {\n\t\t\t<hlm-input-group-addon>\n\t\t\t\t<ng-icon name=\"lucideSearch\" [class.opacity-50]=\"autocompleteInput.disabled()\" />\n\t\t\t</hlm-input-group-addon>\n\t\t}\n\n\t\t@if (showClear()) {\n\t\t\t<hlm-input-group-addon align=\"inline-end\">\n\t\t\t\t<button\n\t\t\t\t\t*brnAutocompleteClear\n\t\t\t\t\thlmInputGroupButton\n\t\t\t\t\tdata-slot=\"autocomplete-clear\"\n\t\t\t\t\t[disabled]=\"autocompleteInput.disabled()\"\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t>\n\t\t\t\t\t<ng-icon name=\"lucideX\" />\n\t\t\t\t</button>\n\t\t\t</hlm-input-group-addon>\n\t\t}\n\t\t<ng-content />\n\t`,\n})\nexport class HlmAutocompleteInput {\n\tprivate static _id = 0;\n\n\tpublic readonly inputId = input<string>(`hlm-autocomplete-input-${HlmAutocompleteInput._id++}`);\n\n\tpublic readonly placeholder = input<string>('');\n\n\tpublic readonly autocomplete = input<string>('off');\n\n\tpublic readonly showSearch = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\tpublic readonly showClear = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Forces the invalid state visually, regardless of form control state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Manual override for aria-invalid. When not set, auto-detects from the parent autocomplete error state. */\n\tpublic readonly ariaInvalidInput = input<boolean | undefined, BooleanInput>(undefined, {\n\t\ttransform: (v: BooleanInput) => (v === '' || v === undefined ? undefined : booleanAttribute(v)),\n\t\talias: 'aria-invalid',\n\t});\n\n\tconstructor() {\n\t\tclasses(() => 'w-auto');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { BrnAutocompleteItem } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-autocomplete-item',\n\texportAs: 'hlmAutocompleteItem',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnAutocompleteItem, inputs: ['id', 'disabled', 'value'] }],\n\thost: { 'data-slot': 'autocomplete-item' },\n\ttemplate: `\n\t\t<ng-content />\n\t\t@if (_active()) {\n\t\t\t<ng-icon name=\"lucideCheck\" class=\"absolute end-2 flex items-center justify-center text-[length:--spacing(4)]\" aria-hidden=\"true\" />\n\t\t}\n\t`,\n})\nexport class HlmAutocompleteItem {\n\tprivate readonly _brnAutocompleteItem = inject(BrnAutocompleteItem);\n\n\tprotected readonly _active = this._brnAutocompleteItem.active;\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-hidden:hidden [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteLabel } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteLabel]',\n\texportAs: 'hlmAutocompleteLabel',\n\thostDirectives: [{ directive: BrnAutocompleteLabel, inputs: ['id'] }],\n\thost: { 'data-slot': 'autocomplete-label' },\n})\nexport class HlmAutocompleteLabel {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground px-2 py-1.5 text-xs');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteList } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteList]',\n\texportAs: 'hlmAutocompleteList',\n\thostDirectives: [{ directive: BrnAutocompleteList, inputs: ['id', 'aria-label', 'aria-labelledby'] }],\n\thost: { 'data-slot': 'autocomplete-list' },\n})\nexport class HlmAutocompleteList {\n\tconstructor() {\n\t\tclasses(() => 'no-scrollbar max-h-[calc(--spacing(72)---spacing(9))] scroll-py-1 p-1 data-empty:p-0 overflow-y-auto overscroll-contain');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverContent } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmAutocompletePortal]',\n\texportAs: 'hlmAutocompletePortal',\n\thostDirectives: [{ directive: BrnPopoverContent, inputs: ['context', 'class'] }],\n})\nexport class HlmAutocompletePortal {}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteSearch } from '@spartan-ng/brain/autocomplete';\nimport { BrnPopover, provideBrnPopoverConfig, provideBrnPopoverDefaultOptions } from '@spartan-ng/brain/popover';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteSearch],hlm-autocomplete-search',\n\texportAs: 'hlmAutocompleteSearch',\n\tproviders: [\n\t\tprovideBrnPopoverConfig({\n\t\t\talign: 'start',\n\t\t\tsideOffset: 6,\n\t\t}),\n\t\tprovideBrnPopoverDefaultOptions({ role: null }),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnAutocompleteSearch,\n\t\t\tinputs: ['autoHighlight', 'disabled', 'value', 'search', 'itemToString'],\n\t\t\toutputs: ['valueChange', 'searchChange'],\n\t\t},\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'closeOnOutsidePointerEvents', 'sideOffset', 'state', 'offsetX', 'scrollStrategy'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'autocomplete' },\n})\nexport class HlmAutocompleteSearch {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteSeparator } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteSeparator]',\n\texportAs: 'hlmAutocompleteSeparator',\n\thostDirectives: [{ directive: BrnAutocompleteSeparator, inputs: ['orientation'] }],\n\thost: { 'data-slot': 'autocomplete-separator' },\n})\nexport class HlmAutocompleteSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-border -mx-1 my-1 h-px');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAutocompleteStatus } from '@spartan-ng/brain/autocomplete';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAutocompleteStatus],hlm-autocomplete-status',\n\texportAs: 'hlmAutocompleteStatus',\n\thostDirectives: [BrnAutocompleteStatus],\n\thost: { 'data-slot': 'autocomplete-status' },\n})\nexport class HlmAutocompleteStatus {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground gap-2 px-3 py-2 text-sm flex w-full items-center justify-center text-center');\n\t}\n}\n","import { HlmAutocomplete } from './lib/hlm-autocomplete';\nimport { HlmAutocompleteContent } from './lib/hlm-autocomplete-content';\nimport { HlmAutocompleteEmpty } from './lib/hlm-autocomplete-empty';\nimport { HlmAutocompleteGroup } from './lib/hlm-autocomplete-group';\nimport { HlmAutocompleteInput } from './lib/hlm-autocomplete-input';\nimport { HlmAutocompleteItem } from './lib/hlm-autocomplete-item';\nimport { HlmAutocompleteLabel } from './lib/hlm-autocomplete-label';\nimport { HlmAutocompleteList } from './lib/hlm-autocomplete-list';\nimport { HlmAutocompletePortal } from './lib/hlm-autocomplete-portal';\nimport { HlmAutocompleteSearch } from './lib/hlm-autocomplete-search';\nimport { HlmAutocompleteSeparator } from './lib/hlm-autocomplete-separator';\nimport { HlmAutocompleteStatus } from './lib/hlm-autocomplete-status';\n\nexport * from './lib/hlm-autocomplete';\nexport * from './lib/hlm-autocomplete-content';\nexport * from './lib/hlm-autocomplete-empty';\nexport * from './lib/hlm-autocomplete-group';\nexport * from './lib/hlm-autocomplete-input';\nexport * from './lib/hlm-autocomplete-item';\nexport * from './lib/hlm-autocomplete-label';\nexport * from './lib/hlm-autocomplete-list';\nexport * from './lib/hlm-autocomplete-portal';\nexport * from './lib/hlm-autocomplete-search';\nexport * from './lib/hlm-autocomplete-separator';\nexport * from './lib/hlm-autocomplete-status';\n\nexport const HlmAutocompleteImports = [\n\tHlmAutocomplete,\n\tHlmAutocompleteContent,\n\tHlmAutocompleteEmpty,\n\tHlmAutocompleteGroup,\n\tHlmAutocompleteInput,\n\tHlmAutocompleteItem,\n\tHlmAutocompleteLabel,\n\tHlmAutocompleteList,\n\tHlmAutocompletePortal,\n\tHlmAutocompleteSearch,\n\tHlmAutocompleteSeparator,\n\tHlmAutocompleteStatus,\n] as const;\n","import { Directive, input } from '@angular/core';\nimport { BrnAvatar } from '@spartan-ng/brain/avatar';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAvatar],hlm-avatar',\n\texportAs: 'hlmAvatar',\n\thostDirectives: [BrnAvatar],\n\thost: {\n\t\t'data-slot': 'avatar',\n\t\t'[attr.data-size]': 'size()',\n\t},\n})\nexport class HlmAvatar {\n\tpublic readonly size = input<'default' | 'sm' | 'lg'>('default');\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 group/avatar after:border-border relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAvatarBadge],hlm-avatar-badge',\n\texportAs: 'hlmAvatarBadge',\n\thost: {\n\t\t'data-slot': 'avatar-badge',\n\t},\n})\nexport class HlmAvatarBadge {\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none',\n\t\t\t'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>ng-icon]:hidden',\n\t\t\t'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>ng-icon]:text-[length:--spacing(2)]',\n\t\t\t'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>ng-icon]:text-[length:--spacing(2)]',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnAvatarFallback } from '@spartan-ng/brain/avatar';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAvatarFallback]',\n\texportAs: 'hlmAvatarFallback',\n\thostDirectives: [BrnAvatarFallback],\n\thost: {\n\t\t'data-slot': 'avatar-fallback',\n\t},\n})\nexport class HlmAvatarFallback {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAvatarGroup],hlm-avatar-group',\n\texportAs: 'hlmAvatarGroup',\n\thost: {\n\t\t'data-slot': 'avatar-group',\n\t},\n})\nexport class HlmAvatarGroup {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => '*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmAvatarGroupCount],hlm-avatar-group-count',\n\texportAs: 'hlmAvatarGroupCount',\n\thost: {\n\t\t'data-slot': 'avatar-group-count',\n\t},\n})\nexport class HlmAvatarGroupCount {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>ng-icon]:text-base group-has-data-[size=lg]/avatar-group:[&>ng-icon]:text-xl group-has-data-[size=sm]/avatar-group:[&>ng-icon]:text-xs',\n\t\t);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnAvatarImage } from '@spartan-ng/brain/avatar';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'img[hlmAvatarImage]',\n\texportAs: 'hlmAvatarImage',\n\thostDirectives: [{ directive: BrnAvatarImage, inputs: ['hostStyles'] }],\n\thost: {\n\t\t'data-slot': 'avatar-image',\n\t},\n})\nexport class HlmAvatarImage {\n\tpublic readonly canShow = inject(BrnAvatarImage).canShow;\n\n\tconstructor() {\n\t\tclasses(() => 'rounded-full aspect-square size-full object-cover');\n\t}\n}\n","import { HlmAvatar } from './lib/hlm-avatar';\nimport { HlmAvatarBadge } from './lib/hlm-avatar-badge';\nimport { HlmAvatarFallback } from './lib/hlm-avatar-fallback';\nimport { HlmAvatarGroup } from './lib/hlm-avatar-group';\nimport { HlmAvatarGroupCount } from './lib/hlm-avatar-group-count';\nimport { HlmAvatarImage } from './lib/hlm-avatar-image';\n\nexport * from './lib/hlm-avatar';\nexport * from './lib/hlm-avatar-badge';\nexport * from './lib/hlm-avatar-fallback';\nexport * from './lib/hlm-avatar-group';\nexport * from './lib/hlm-avatar-group-count';\nexport * from './lib/hlm-avatar-image';\n\nexport const HlmAvatarImports = [\n\tHlmAvatar,\n\tHlmAvatarBadge,\n\tHlmAvatarFallback,\n\tHlmAvatarGroup,\n\tHlmAvatarGroupCount,\n\tHlmAvatarImage,\n] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { type VariantProps, cva } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n\t'h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&>ng-icon]:text-[length:--spacing(3)] group/badge focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap focus-visible:ring-[3px] [&>ng-icon]:pointer-events-none',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',\n\t\t\t\tsecondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',\n\t\t\t\tdestructive: 'bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20',\n\t\t\t\toutline: 'border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',\n\t\t\t\tghost: 'hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50',\n\t\t\t\tlink: 'text-primary underline-offset-4 hover:underline',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\nexport type BadgeVariants = VariantProps<typeof badgeVariants>;\n\n@Directive({\n\tselector: '[hlmBadge],hlm-badge',\n\texportAs: 'hlmBadge',\n\thost: {\n\t\t'data-slot': 'badge',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmBadge {\n\tpublic readonly variant = input<BadgeVariants['variant']>('default');\n\n\tconstructor() {\n\t\tclasses(() => badgeVariants({ variant: this.variant() }));\n\t}\n}\n","import { HlmBadge } from './lib/hlm-badge';\n\nexport * from './lib/hlm-badge';\n\nexport const HlmBadgeImports = [HlmBadge] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst bubbleVariants = cva(\n\t'max-w-[80%] gap-1.5 group/bubble relative flex w-fit min-w-0 flex-col group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: '*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80',\n\t\t\t\tsecondary: '*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]',\n\t\t\t\tmuted: '*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]',\n\t\t\t\ttinted: '*:data-[slot=bubble-content]:text-foreground *:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]',\n\t\t\t\toutline: '*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30 *:data-[slot=bubble-content]:border *:data-[slot=bubble-content]:shadow-xs',\n\t\t\t\tghost: '[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50 border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0',\n\t\t\t\tdestructive: '*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\nexport type BubbleVariants = VariantProps<typeof bubbleVariants>;\nexport type BubbleAlign = 'start' | 'end';\n\n@Directive({\n\tselector: '[hlmBubble],hlm-bubble',\n\texportAs: 'hlmBubble',\n\thost: {\n\t\t'data-slot': 'bubble',\n\t\t'[attr.data-variant]': 'variant()',\n\t\t'[attr.data-align]': 'align()',\n\t\t// Prevent the legacy HTML `align` attribute (from `align=\"end\"` bindings) from\n\t\t// forcing text-align on the bubble content.\n\t\t'[attr.align]': 'null',\n\t},\n})\nexport class HlmBubble {\n\tpublic readonly variant = input<BubbleVariants['variant']>('default');\n\tpublic readonly align = input<BubbleAlign>('start');\n\n\tconstructor() {\n\t\tclasses(() => bubbleVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmBubbleContent],hlm-bubble-content',\n\texportAs: 'hlmBubbleContent',\n\thost: { 'data-slot': 'bubble-content' },\n})\nexport class HlmBubbleContent {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'rounded-xl px-3.5 py-2.5 text-sm leading-relaxed [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-ring/50 w-fit max-w-full min-w-0 overflow-hidden border border-transparent wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-start [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:ring-3',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmBubbleGroup],hlm-bubble-group',\n\texportAs: 'hlmBubbleGroup',\n\thost: { 'data-slot': 'bubble-group' },\n})\nexport class HlmBubbleGroup {\n\tconstructor() {\n\t\tclasses(() => 'gap-2.5 flex min-w-0 flex-col');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst bubbleReactionsVariants = cva(\n\t'bg-muted ring-card gap-1 rounded-full px-2 py-0.5 text-xs shadow-xs ring-3 absolute z-10 flex w-fit shrink-0 items-center justify-center has-[button]:p-0',\n\t{\n\t\tvariants: {\n\t\t\tside: {\n\t\t\t\ttop: 'top-0 -translate-y-3/4',\n\t\t\t\tbottom: 'bottom-0 translate-y-3/4',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\tstart: 'start-3',\n\t\t\t\tend: 'end-3',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tside: 'bottom',\n\t\t\talign: 'end',\n\t\t},\n\t},\n);\n\nexport type BubbleReactionsVariants = VariantProps<typeof bubbleReactionsVariants>;\n\n@Directive({\n\tselector: '[hlmBubbleReactions],hlm-bubble-reactions',\n\texportAs: 'hlmBubbleReactions',\n\thost: {\n\t\t'data-slot': 'bubble-reactions',\n\t\t'[attr.data-align]': 'align()',\n\t\t'[attr.data-side]': 'side()',\n\t\t'[attr.align]': 'null',\n\t},\n})\nexport class HlmBubbleReactions {\n\tpublic readonly side = input<BubbleReactionsVariants['side']>('bottom');\n\tpublic readonly align = input<BubbleReactionsVariants['align']>('end');\n\n\tconstructor() {\n\t\tclasses(() => bubbleReactionsVariants({ side: this.side(), align: this.align() }));\n\t}\n}\n","import { HlmBubble } from './lib/hlm-bubble';\nimport { HlmBubbleContent } from './lib/hlm-bubble-content';\nimport { HlmBubbleGroup } from './lib/hlm-bubble-group';\nimport { HlmBubbleReactions } from './lib/hlm-bubble-reactions';\n\nexport * from './lib/hlm-bubble';\nexport * from './lib/hlm-bubble-content';\nexport * from './lib/hlm-bubble-group';\nexport * from './lib/hlm-bubble-reactions';\n\nexport const HlmBubbleImports = [HlmBubble, HlmBubbleContent, HlmBubbleGroup, HlmBubbleReactions] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva } from 'class-variance-authority';\n\nconst buttonGroupVariants = cva(\n\t\"has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n\t{\n\t\tvariants: {\n\t\t\torientation: {\n\t\t\t\thorizontal:\n\t\t\t\t\t'[&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-md [&>*:not(:first-child)]:rounded-s-none [&>*:not(:first-child)]:border-s-0 [&>*:not(:last-child)]:rounded-e-none',\n\t\t\t\tvertical:\n\t\t\t\t\t'[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\torientation: 'horizontal',\n\t\t},\n\t},\n);\n\n@Directive({\n\tselector: '[hlmButtonGroup],hlm-button-group',\n\texportAs: 'hlmButtonGroup',\n\thost: {\n\t\t'data-slot': 'button-group',\n\t\trole: 'group',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t},\n})\nexport class HlmButtonGroup {\n\tconstructor() {\n\t\tclasses(() => buttonGroupVariants({ orientation: this.orientation() }));\n\t}\n\n\tpublic readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n}\n","import { Directive } from '@angular/core';\nimport { BrnSeparator, provideBrnSeparatorConfig } from '@spartan-ng/brain/separator';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmButtonGroupSeparator],hlm-button-group-separator',\n\texportAs: 'hlmButtonGroupSeparator',\n\tproviders: [provideBrnSeparatorConfig({ orientation: 'vertical' })],\n\thostDirectives: [{ directive: BrnSeparator, inputs: ['orientation', 'decorative'] }],\n\thost: {\n\t\t'data-slot': 'button-group-separator',\n\t},\n})\nexport class HlmButtonGroupSeparator {\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-input relative self-stretch data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto',\n\t\t\t// separator classes\n\t\t\t'shrink-0 data-horizontal:h-px data-vertical:w-px data-vertical:self-stretch',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmButtonGroupText],hlm-button-group-text',\n\texportAs: 'hlmButtonGroupText',\n\thost: {\n\t\t'data-slot': 'button-group-text',\n\t},\n})\nexport class HlmButtonGroupText {\n\tconstructor() {\n\t\tclasses(() => \"bg-muted gap-2 rounded-md border px-2.5 text-sm font-medium shadow-xs [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center [&_ng-icon]:pointer-events-none\");\n\t}\n}\n","import { HlmButtonGroup } from './lib/hlm-button-group';\nimport { HlmButtonGroupSeparator } from './lib/hlm-button-group-separator';\nimport { HlmButtonGroupText } from './lib/hlm-button-group-text';\n\nexport * from './lib/hlm-button-group';\nexport * from './lib/hlm-button-group-separator';\nexport * from './lib/hlm-button-group-text';\n\nexport const HlmButtonGroupImports = [HlmButtonGroup, HlmButtonGroupText, HlmButtonGroupSeparator] as const;\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tforwardRef,\n\tinput,\n\tlinkedSignal,\n\tmodel,\n\toutput,\n\tviewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { BrnCheckbox } from '@spartan-ng/brain/checkbox';\nimport { BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\nexport const HLM_CHECKBOX_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmCheckbox),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'hlm-checkbox',\n\texportAs: 'hlmCheckbox',\n\timports: [BrnCheckbox, NgIcon],\n\tproviders: [HLM_CHECKBOX_VALUE_ACCESSOR],\n\tviewProviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnFieldControlDescribedBy],\n\thost: {\n\t\tclass: 'contents peer',\n\t\t'data-slot': 'checkbox',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.data-disabled]': '_disabled() ? \"\" : null',\n\t},\n\ttemplate: `\n\t\t<brn-checkbox\n\t\t\t[id]=\"inputId()\"\n\t\t\t[name]=\"name()\"\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[checked]=\"checked()\"\n\t\t\t[(indeterminate)]=\"indeterminate\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[aria-label]=\"ariaLabel()\"\n\t\t\t[aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[aria-describedby]=\"ariaDescribedby()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t(checkedChange)=\"_handleChange($event)\"\n\t\t\t(touched)=\"_onTouched?.()\"\n\t\t>\n\t\t\t@if (checked() || indeterminate()) {\n\t\t\t\t<span class=\"[&>ng-icon]:text-[length:--spacing(3.5)] flex items-center justify-center text-current transition-none\">\n\t\t\t\t\t<ng-icon name=\"lucideCheck\" />\n\t\t\t\t</span>\n\t\t\t}\n\t\t</brn-checkbox>\n\t`,\n})\nexport class HlmCheckbox implements ControlValueAccessor {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary data-[matches-spartan-invalid=true]:aria-checked:border-primary data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 flex size-4 items-center justify-center rounded-[4px] border shadow-xs transition-shadow group-has-disabled/field:opacity-50 focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 peer shrink-0 cursor-default outline-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\tthis.userClass(),\n\t\t\tthis._errorStateClass(),\n\t\t),\n\t);\n\n\t/** Used to set the id on the underlying brn element. */\n\tpublic readonly inputId = input<string | null>(null);\n\n\t/** Used to set the aria-label attribute on the underlying brn element. */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/** Used to set the aria-labelledby attribute on the underlying brn element. */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\n\t/** Used to set the aria-describedby attribute on the underlying brn element. */\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\t/** The checked state of the checkbox. */\n\tpublic readonly checkedInput = input<boolean, BooleanInput>(false, { alias: 'checked', transform: booleanAttribute });\n\tpublic readonly checked = linkedSignal(this.checkedInput);\n\n\t/** Emits when checked state changes. */\n\tpublic readonly checkedChange = output<boolean>();\n\n\t/**\n\t * The indeterminate state of the checkbox.\n\t * For example, a \"select all/deselect all\" checkbox may be in the indeterminate state when some but not all of its sub-controls are checked.\n\t */\n\tpublic readonly indeterminate = model<boolean>(false);\n\n\t/** The name attribute of the checkbox. */\n\tpublic readonly name = input<string | null>(null);\n\n\t/** Whether the checkbox is required. */\n\tpublic readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Whether the checkbox is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Whether to force the checkbox into an invalid state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\tprivate readonly _brnCheckbox = viewChild.required(BrnCheckbox);\n\n\tprivate readonly _spartanInvalid = computed(() => this.forceInvalid() || this._brnCheckbox().spartanInvalid?.());\n\tprotected readonly _errorStateClass = computed(() =>\n\t\tthis._spartanInvalid()\n\t\t\t? 'border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40'\n\t\t\t: '',\n\t);\n\n\tprotected _onChange?: ChangeFn<boolean>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected _handleChange(value: boolean): void {\n\t\tif (this._disabled()) return;\n\t\tthis.checked.set(value);\n\t\tthis.checkedChange.emit(value);\n\t\tthis._onChange?.(value);\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\twriteValue(value: boolean): void {\n\t\tthis.checked.set(value);\n\t}\n\n\tregisterOnChange(fn: ChangeFn<boolean>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n}\n","import { HlmCheckbox } from './lib/hlm-checkbox';\n\nexport * from './lib/hlm-checkbox';\n\nexport const HlmCheckboxImports = [HlmCheckbox] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst codeBlockVariants = cva(\n\t'has-[>[data-slot=code-block-content]:focus-visible]:ring-ring/50 rounded-lg text-sm has-[>[data-slot=code-block-content]:focus-visible]:ring-3 data-[size=sm]:text-xs group/code-block relative flex w-full min-w-0 flex-col overflow-hidden',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'border-input text-foreground dark:bg-input/30 has-[>[data-slot=code-block-content]:focus-visible]:border-ring border',\n\t\t\t\tdestructive: 'border-destructive/30 text-destructive dark:border-destructive/40 border',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\ntype CodeBlockVariants = VariantProps<typeof codeBlockVariants>;\n\n@Directive({\n\tselector: '[hlmCodeBlock],hlm-code-block',\n\texportAs: 'hlmCodeBlock',\n\thost: { 'data-slot': 'code-block', '[attr.data-variant]': 'variant()', '[attr.data-size]': 'size()' },\n})\nexport class HlmCodeBlock {\n\tpublic readonly variant = input<CodeBlockVariants['variant']>('default');\n\tpublic readonly size = input<'default' | 'sm'>('default');\n\n\tconstructor() {\n\t\tclasses(() => codeBlockVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCodeBlockActions],hlm-code-block-actions',\n\texportAs: 'hlmCodeBlockActions',\n\thost: { 'data-slot': 'code-block-actions' },\n})\nexport class HlmCodeBlockActions {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'[[data-slot=code-block]>&]:*:[button]:bg-background [[data-slot=code-block]>&]:*:[button]:ring-foreground/10 -my-1 -me-1.5 gap-1 [[data-slot=code-block]>&]:end-3 [[data-slot=code-block]>&]:top-3 [[data-slot=code-block]>&]:m-0 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:end-2 group-data-[size=sm]/code-block:[[data-slot=code-block]>&]:top-2 [[data-slot=code-block]>&]:*:[button]:ring-1 ms-auto flex shrink-0 items-center [[data-slot=code-block]>&]:absolute [[data-slot=code-block]>&]:z-10 [[data-slot=code-block]>&]:opacity-0 [[data-slot=code-block]>&]:transition-opacity [[data-slot=code-block]>&]:group-focus-within/code-block:opacity-100 [[data-slot=code-block]>&]:group-hover/code-block:opacity-100 [[data-slot=code-block]>&]:pointer-coarse:opacity-100',\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, VariantProps } from 'class-variance-authority';\n\nconst codeBlockLineVariants = cva(\n\t\"before:text-muted-foreground after:text-muted-foreground -mx-4 px-4 group-data-[size=sm]/code-block:-mx-3 group-data-[size=sm]/code-block:px-3 before:min-w-6 before:text-end after:start-1 in-data-numbered:gap-x-3 relative block min-h-lh after:absolute after:top-0 after:select-none in-data-numbered:col-span-2 in-data-numbered:grid in-data-numbered:grid-cols-subgrid in-data-numbered:[counter-increment:line] in-data-numbered:before:content-[counter(line)] in-data-numbered:before:select-none in-data-numbered:supports-[content:counter(line)_/_'']:before:content-[counter(line)_/_'']\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: '',\n\t\t\t\tadded: \"bg-muted after:content-['+']\",\n\t\t\t\tremoved: \"bg-destructive/10 after:text-destructive after:content-['−']\",\n\t\t\t\thighlighted: 'bg-muted',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\ntype CodeBlockLineVariants = VariantProps<typeof codeBlockLineVariants>;\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'span[hlmCodeBlockLine]',\n\texportAs: 'hlmCodeBlockLine',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'code-block-line', '[attr.data-variant]': 'variant()' },\n\ttemplate: `\n\t\t<span data-slot=\"code-block-line-content\" class=\"min-w-0\">\n\t\t\t<ng-content />\n\t\t</span>\n\t`,\n})\nexport class HlmCodeBlockLine {\n\tpublic readonly variant = input<CodeBlockLineVariants['variant']>('default');\n\n\tconstructor() {\n\t\tclasses(() => codeBlockLineVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinject,\n\tinput,\n\tnumberAttribute,\n} from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmCodeBlockLine } from './hlm-code-block-line';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'pre[hlmCodeBlockContent]',\n\texportAs: 'hlmCodeBlockContent',\n\timports: [HlmCodeBlockLine],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'code-block-content',\n\t\t'[attr.data-wrap]': 'wrap() || null',\n\t\t'[attr.data-numbered]': 'lineNumbers() || null',\n\t\t'[attr.dir]': '_direction()',\n\t\t'[style.counter-reset]': '_style()',\n\t\ttabindex: '0',\n\t},\n\ttemplate: `\n\t\t<code\n\t\t\tdata-slot=\"code-block-code\"\n\t\t\tclass=\"grid min-h-lh min-w-max content-start in-data-numbered:grid-cols-[auto_1fr] in-data-wrap:min-w-0\"\n\t\t>\n\t\t\t@if (_lines(); as lines) {\n\t\t\t\t@for (line of lines; track $index) {\n\t\t\t\t\t<span hlmCodeBlockLine>{{ line }}</span>\n\t\t\t\t}\n\t\t\t} @else if (_hasCode()) {\n\t\t\t\t<span [textContent]=\"_code()\"></span>\n\t\t\t} @else {\n\t\t\t\t<ng-content />\n\t\t\t}\n\t\t</code>\n\t`,\n})\nexport class HlmCodeBlockContent {\n\tprivate readonly _dir = inject(Directionality);\n\n\tprotected readonly _direction = this._dir.valueSignal;\n\n\tpublic readonly wrap = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\tpublic readonly lineNumbers = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tpublic readonly startLine = input<number, NumberInput>(1, { transform: numberAttribute });\n\n\t/** When set, the code is rendered line by line instead of projecting `<ng-content />`. */\n\tpublic readonly code = input<string>();\n\n\tprotected readonly _code = computed(() => {\n\t\tconst code = this.code();\n\t\treturn typeof code === 'string' ? code : null;\n\t});\n\n\tprotected readonly _hasCode = computed(() => this._code() !== null);\n\n\tprotected readonly _lines = computed(() => {\n\t\tconst code = this._code();\n\t\tif (!this.lineNumbers() || code === null) return null;\n\n\t\t// An empty line renders a newline so copying a selection keeps blank lines.\n\t\treturn code\n\t\t\t.replace(/\\n$/, '')\n\t\t\t.split('\\n')\n\t\t\t.map((line) => (line === '' ? '\\n' : line));\n\t});\n\n\tprotected readonly _style = computed(() => `line ${this.startLine() - 1}`);\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'px-4 py-4 leading-relaxed group-has-data-[slot=code-block-footer]/code-block:pb-2 group-has-data-[slot=code-block-header]/code-block:pt-2 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:py-3 group-data-[size=sm]/code-block:group-has-data-[slot=code-block-header]/code-block:pt-1.5 scroll-fade-x data-wrap:scroll-fade-y min-h-0 min-w-0 scrollbar-thin overflow-auto text-start font-mono outline-none data-wrap:wrap-break-word data-wrap:whitespace-pre-wrap',\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, input, signal } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck, lucideCopy } from '@ng-icons/lucide';\nimport { HlmButton, provideBrnButtonConfig } from '../../button';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[hlmCodeBlockCopyButton]',\n\texportAs: 'hlmCodeBlockCopyButton',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCopy, lucideCheck }), provideBrnButtonConfig({ variant: 'ghost', size: 'icon-xs' })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: HlmButton, inputs: ['variant', 'size'] }],\n\thost: {\n\t\ttype: 'button',\n\t\t'data-slot': 'code-block-copy-button',\n\t\t'[attr.data-copied]': '_copied() || null',\n\t\t'[attr.aria-label]': '_ariaLabel()',\n\t\t'(click)': '_copy()',\n\t},\n\ttemplate: `\n\t\t<ng-icon [name]=\"_icon()\" />\n\n\t\t@if (_copied()) {\n\t\t\t<span aria-live=\"polite\" class=\"sr-only\">\n\t\t\t\t{{ copiedText() }}\n\t\t\t</span>\n\t\t}\n\t`,\n})\nexport class HlmCodeBlockCopyButton {\n\tprotected readonly _copied = signal(false);\n\n\tprotected readonly _icon = computed(() => (this._copied() ? 'lucideCheck' : 'lucideCopy'));\n\n\tpublic readonly value = input<string>('');\n\tpublic readonly copyText = input<string>('Copy');\n\tpublic readonly copiedText = input<string>('Copied');\n\n\tprotected readonly _ariaLabel = computed(() => (this._copied() ? this.copiedText() : this.copyText()));\n\n\tconstructor() {\n\t\tclasses(() => '');\n\n\t\teffect((onCleanup) => {\n\t\t\tif (!this._copied()) return;\n\n\t\t\tconst timeout = setTimeout(() => this._copied.set(false), 2000);\n\t\t\tonCleanup(() => clearTimeout(timeout));\n\t\t});\n\t}\n\n\tprotected async _copy(): Promise<void> {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(this.value());\n\t\t\tthis._copied.set(true);\n\t\t} catch {\n\t\t\t// ignore clipboard errors\n\t\t}\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCodeBlockFooter],hlm-code-block-footer',\n\texportAs: 'hlmCodeBlockFooter',\n\thost: { 'data-slot': 'code-block-footer' },\n})\nexport class HlmCodeBlockFooter {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground gap-2 px-4 pb-4 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pb-3 flex min-w-0 shrink-0 items-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCodeBlockHeader],hlm-code-block-header',\n\texportAs: 'hlmCodeBlockHeader',\n\thost: { 'data-slot': 'code-block-header' },\n})\nexport class HlmCodeBlockHeader {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-muted-foreground group-data-[variant=destructive]/code-block:text-destructive gap-2 px-4 pt-4 group-data-[size=sm]/code-block:px-3 group-data-[size=sm]/code-block:pt-3 flex min-w-0 shrink-0 items-center *:has-[>[data-slot=code-block-title]]:min-w-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCodeBlockTitle],hlm-code-block-title',\n\texportAs: 'hlmCodeBlockTitle',\n\thost: { 'data-slot': 'code-block-title' },\n})\nexport class HlmCodeBlockTitle {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"text-foreground group-data-[variant=destructive]/code-block:text-destructive font-sans text-sm font-medium group-data-[size=sm]/code-block:text-xs [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group-data-[size=sm]/code-block:[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3.5)] *:[ng-icon]:me-1.5 min-w-0 truncate [&_ng-icon]:pointer-events-none [&_ng-icon]:inline-block [&_ng-icon]:align-middle\",\n\t\t);\n\t}\n}\n","import { HlmCodeBlock } from './lib/hlm-code-block';\nimport { HlmCodeBlockActions } from './lib/hlm-code-block-actions';\nimport { HlmCodeBlockContent } from './lib/hlm-code-block-content';\nimport { HlmCodeBlockCopyButton } from './lib/hlm-code-block-copy-button';\nimport { HlmCodeBlockFooter } from './lib/hlm-code-block-footer';\nimport { HlmCodeBlockHeader } from './lib/hlm-code-block-header';\nimport { HlmCodeBlockLine } from './lib/hlm-code-block-line';\nimport { HlmCodeBlockTitle } from './lib/hlm-code-block-title';\n\nexport * from './lib/hlm-code-block';\nexport * from './lib/hlm-code-block-actions';\nexport * from './lib/hlm-code-block-content';\nexport * from './lib/hlm-code-block-copy-button';\nexport * from './lib/hlm-code-block-footer';\nexport * from './lib/hlm-code-block-header';\nexport * from './lib/hlm-code-block-line';\nexport * from './lib/hlm-code-block-title';\n\nexport const HlmCodeBlockImports = [\n\tHlmCodeBlock,\n\tHlmCodeBlockActions,\n\tHlmCodeBlockContent,\n\tHlmCodeBlockCopyButton,\n\tHlmCodeBlockFooter,\n\tHlmCodeBlockHeader,\n\tHlmCodeBlockLine,\n\tHlmCodeBlockTitle,\n] as const;\n","import { Directive } from '@angular/core';\nimport { BrnCollapsible } from '@spartan-ng/brain/collapsible';\n\n@Directive({\n\tselector: '[hlmCollapsible],hlm-collapsible',\n\texportAs: 'hlmCollapsible',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCollapsible,\n\t\t\tinputs: ['expanded', 'disabled'],\n\t\t\toutputs: ['expandedChange'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'collapsible' },\n})\nexport class HlmCollapsible {}\n","import { Directive } from '@angular/core';\nimport { BrnCollapsibleContent } from '@spartan-ng/brain/collapsible';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCollapsibleContent],hlm-collapsible-content',\n\texportAs: 'hlmCollapsibleContent',\n\thostDirectives: [{ directive: BrnCollapsibleContent, inputs: ['id'] }],\n\thost: { 'data-slot': 'collapsible-content' },\n})\nexport class HlmCollapsibleContent {\n\tconstructor() {\n\t\tclasses(() => 'data-[state=closed]:hidden');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnCollapsibleTrigger } from '@spartan-ng/brain/collapsible';\n\n@Directive({\n\tselector: 'button[hlmCollapsibleTrigger]',\n\texportAs: 'hlmCollapsibleTrigger',\n\thostDirectives: [{ directive: BrnCollapsibleTrigger, inputs: ['type'] }],\n\thost: { 'data-slot': 'collapsible-trigger' },\n})\nexport class HlmCollapsibleTrigger {}\n","import { HlmCollapsible } from './lib/hlm-collapsible';\nimport { HlmCollapsibleContent } from './lib/hlm-collapsible-content';\nimport { HlmCollapsibleTrigger } from './lib/hlm-collapsible-trigger';\n\nexport * from './lib/hlm-collapsible';\nexport * from './lib/hlm-collapsible-content';\nexport * from './lib/hlm-collapsible-trigger';\n\nexport const HlmCollapsibleImports = [HlmCollapsible, HlmCollapsibleContent, HlmCollapsibleTrigger] as const;\n","import { Directive } from '@angular/core';\nimport { BrnCommand } from '@spartan-ng/brain/command';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommand],hlm-command',\n\texportAs: 'hlmCommand',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCommand,\n\t\t\tinputs: ['id', 'filter', 'search', 'disabled'],\n\t\t\toutputs: ['valueChange', 'searchChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'command',\n\t},\n})\nexport class HlmCommand {\n\tconstructor() {\n\t\tclasses(() => 'bg-popover text-popover-foreground rounded-xl! p-1 flex size-full flex-col overflow-hidden');\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tlinkedSignal,\n\toutput,\n} from '@angular/core';\nimport { BrnDialogState } from '@spartan-ng/brain/dialog';\nimport { HlmDialogImports } from '../../dialog';\nimport { hlm } from '../../utils';\nimport { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-command-dialog',\n\texportAs: 'hlmCommandDialog',\n\timports: [HlmDialogImports],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<hlm-dialog [state]=\"_state()\" (stateChanged)=\"stateChanged($event)\">\n\t\t\t<hlm-dialog-content\n\t\t\t\t*hlmDialogPortal=\"let ctx\"\n\t\t\t\t[class]=\"_computedDialogContentClass()\"\n\t\t\t\t[showCloseButton]=\"showCloseButton()\"\n\t\t\t>\n\t\t\t\t<hlm-dialog-header class=\"sr-only\">\n\t\t\t\t\t<h2 hlmDialogTitle>{{ title() }}</h2>\n\t\t\t\t\t<p hlmDialogDescription>{{ description() }}</p>\n\t\t\t\t</hlm-dialog-header>\n\t\t\t\t<ng-content />\n\t\t\t</hlm-dialog-content>\n\t\t</hlm-dialog>\n\t`,\n})\nexport class HlmCommandDialog {\n\tpublic readonly title = input<string>('Command Palette');\n\tpublic readonly description = input<string>('Search for a command to run...');\n\n\tpublic readonly state = input<BrnDialogState>('closed');\n\tprotected readonly _state = linkedSignal(this.state);\n\n\tpublic readonly showCloseButton = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tpublic readonly dialogContentClass = input<ClassValue>('');\n\tprotected readonly _computedDialogContentClass = computed(() => hlm('w-96 p-0', this.dialogContentClass()));\n\n\tpublic readonly stateChange = output<BrnDialogState>();\n\n\tprotected stateChanged(state: BrnDialogState) {\n\t\tthis.stateChange.emit(state);\n\t\tthis._state.set(state);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommandEmpty]',\n\texportAs: 'hlmCommandEmpty',\n\thost: {\n\t\t'data-slot': 'command-empty',\n\t},\n})\nexport class HlmCommandEmpty {\n\tconstructor() {\n\t\tclasses(() => 'py-6 text-center text-sm');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnCommandEmpty } from '@spartan-ng/brain/command';\n\n@Directive({\n\tselector: '[hlmCommandEmptyState]',\n\texportAs: 'hlmCommandEmptyState',\n\thostDirectives: [BrnCommandEmpty],\n})\nexport class HlmCommandEmptyState {}\n","import { Directive } from '@angular/core';\nimport { BrnCommandGroup } from '@spartan-ng/brain/command';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommandGroup],hlm-command-group',\n\texportAs: 'hlmCommandGroup',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCommandGroup,\n\t\t\tinputs: ['id'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'command-group',\n\t},\n})\nexport class HlmCommandGroup {\n\tconstructor() {\n\t\tclasses(() => 'text-foreground **:data-[slot=command-group-label]:text-muted-foreground overflow-hidden p-1 **:data-[slot=command-group-label]:px-2 **:data-[slot=command-group-label]:py-1.5 **:data-[slot=command-group-label]:text-xs **:data-[slot=command-group-label]:font-medium block data-hidden:hidden');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommandGroupLabel],hlm-command-group-label',\n\texportAs: 'hlmCommandGroupLabel',\n\thost: {\n\t\t'data-slot': 'command-group-label',\n\t\trole: 'presentation',\n\t},\n})\nexport class HlmCommandGroupLabel {\n\tconstructor() {\n\t\tclasses(() => 'inline-block');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideSearch } from '@ng-icons/lucide';\nimport { BrnCommandInput } from '@spartan-ng/brain/command';\nimport { HlmInputGroupImports } from '../../input-group';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-command-input',\n\texportAs: 'hlmCommandInput',\n\timports: [HlmInputGroupImports, NgIcon, BrnCommandInput],\n\tproviders: [provideIcons({ lucideSearch })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'command-input-wrapper',\n\t},\n\ttemplate: `\n\t\t<hlm-input-group class=\"bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n\t\t\t<input\n\t\t\t\tbrnCommandInput\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclass=\"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\"\n\t\t\t\t[id]=\"inputId()\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\n\t\t\t<hlm-input-group-addon>\n\t\t\t\t<ng-icon name=\"lucideSearch\" class=\"shrink-0 text-[length:--spacing(4)] opacity-50\" />\n\t\t\t</hlm-input-group-addon>\n\t\t</hlm-input-group>\n\t`,\n})\nexport class HlmCommandInput {\n\tpublic readonly inputId = input<string | undefined>();\n\tpublic readonly placeholder = input<string>('');\n\n\tconstructor() {\n\t\tclasses(() => 'p-1 pb-0');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnCommandItem } from '@spartan-ng/brain/command';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmCommandItem],button[hlm-command-item]',\n\texportAs: 'hlmCommandItem',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCommandItem,\n\t\t\tinputs: ['value', 'disabled', 'id'],\n\t\t\toutputs: ['selected'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'command-item',\n\t},\n})\nexport class HlmCommandItem {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"data-selected:bg-muted data-selected:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/command-item w-full data-disabled:pointer-events-none data-disabled:opacity-50 data-hidden:hidden [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnCommandList } from '@spartan-ng/brain/command';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommandList],hlm-command-list',\n\texportAs: 'hlmCommandList',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCommandList,\n\t\t\tinputs: ['id'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'command-list',\n\t},\n})\nexport class HlmCommandList {\n\tconstructor() {\n\t\tclasses(() => 'no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnCommandSeparator } from '@spartan-ng/brain/command';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommandSeparator],hlm-command-separator',\n\texportAs: 'hlmCommandSeparator',\n\thostDirectives: [BrnCommandSeparator],\n\thost: {\n\t\t'data-slot': 'command-separator',\n\t},\n})\nexport class HlmCommandSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-border -mx-1 h-px w-auto block data-hidden:hidden');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmCommandShortcut],hlm-command-shortcut',\n\texportAs: 'hlmCommandShortcut',\n\thost: {\n\t\t'data-slot': 'command-shortcut',\n\t},\n})\nexport class HlmCommandShortcut {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground group-data-[selected]/command-item:text-foreground ms-auto text-xs tracking-widest');\n\t}\n}\n","import { HlmCommand } from './lib/hlm-command';\nimport { HlmCommandDialog } from './lib/hlm-command-dialog';\nimport { HlmCommandEmpty } from './lib/hlm-command-empty';\nimport { HlmCommandEmptyState } from './lib/hlm-command-empty-state';\nimport { HlmCommandGroup } from './lib/hlm-command-group';\nimport { HlmCommandGroupLabel } from './lib/hlm-command-group-label';\nimport { HlmCommandInput } from './lib/hlm-command-input';\nimport { HlmCommandItem } from './lib/hlm-command-item';\nimport { HlmCommandList } from './lib/hlm-command-list';\nimport { HlmCommandSeparator } from './lib/hlm-command-separator';\nimport { HlmCommandShortcut } from './lib/hlm-command-shortcut';\n\nexport * from './lib/hlm-command';\nexport * from './lib/hlm-command-dialog';\nexport * from './lib/hlm-command-empty';\nexport * from './lib/hlm-command-empty-state';\nexport * from './lib/hlm-command-group';\nexport * from './lib/hlm-command-group-label';\nexport * from './lib/hlm-command-input';\nexport * from './lib/hlm-command-item';\nexport * from './lib/hlm-command-list';\nexport * from './lib/hlm-command-separator';\nexport * from './lib/hlm-command-shortcut';\n\nexport const HlmCommandImports = [\n\tHlmCommand,\n\tHlmCommandDialog,\n\tHlmCommandEmpty,\n\tHlmCommandEmptyState,\n\tHlmCommandGroup,\n\tHlmCommandGroupLabel,\n\tHlmCommandInput,\n\tHlmCommandItem,\n\tHlmCommandList,\n\tHlmCommandSeparator,\n\tHlmCommandShortcut,\n] as const;\n","import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport { type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\n\nexport interface HlmContextMenuConfig {\n\talign: MenuAlign;\n\tside: MenuSide;\n}\n\nconst defaultConfig: HlmContextMenuConfig = {\n\talign: 'start',\n\tside: 'bottom',\n};\n\nconst HlmContextMenuConfigToken = new InjectionToken<HlmContextMenuConfig>('HlmContextMenuConfig');\n\nexport function provideHlmContextMenuConfig(config: Partial<HlmContextMenuConfig>): ValueProvider {\n\treturn { provide: HlmContextMenuConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmContextMenuConfig(): HlmContextMenuConfig {\n\treturn inject(HlmContextMenuConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkContextMenuTrigger } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport { createMenuPosition, MENU_SIDE, type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from '../../utils';\nimport { injectHlmContextMenuConfig } from './hlm-context-menu-token';\n\n@Directive({\n\tselector: '[hlmContextMenuTrigger]',\n\texportAs: 'hlmContextMenuTrigger',\n\tproviders: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmContextMenuTrigger) }],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkContextMenuTrigger,\n\t\t\tinputs: [\n\t\t\t\t'cdkContextMenuTriggerFor: hlmContextMenuTrigger',\n\t\t\t\t'cdkContextMenuTriggerData: hlmContextMenuTriggerData',\n\t\t\t\t'cdkContextMenuDisabled: disabled',\n\t\t\t],\n\t\t\toutputs: ['cdkContextMenuOpened: hlmContextMenuOpened', 'cdkContextMenuClosed: hlmContextMenuClosed'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'context-menu-trigger',\n\t\t'[attr.data-disabled]': 'disabled() ? \"\" : null',\n\t},\n})\nexport class HlmContextMenuTrigger {\n\tprivate readonly _cdkTrigger = inject(CdkContextMenuTrigger, { host: true });\n\tprivate readonly _config = injectHlmContextMenuConfig();\n\n\tpublic readonly disabled = input<boolean, BooleanInput>(this._cdkTrigger.disabled, { transform: booleanAttribute });\n\n\tpublic readonly align = input<MenuAlign>(this._config.align);\n\tpublic readonly side = input<MenuSide>(this._config.side);\n\n\tprivate readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n\tconstructor() {\n\t\t// CDK sets transform-origin on the menu content (a shared hlm-dropdown-menu) from the resolved\n\t\t// position; the content reads it to animate from the anchored corner and to derive its data-side.\n\t\t// Cast tolerates @angular/cdk < 21.2 (we still support >=21.0), where the property is absent and\n\t\t// the assignment is a harmless no-op.\n\t\t(this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector = '[data-slot=\"dropdown-menu\"]';\n\n\t\teffect(() => {\n\t\t\tthis._cdkTrigger.menuPosition = this._menuPosition();\n\t\t});\n\n\t\tclasses(() => 'select-none');\n\t}\n}\n","import { HlmContextMenuTrigger } from './lib/hlm-context-menu-trigger';\n\nexport * from './lib/hlm-context-menu-token';\nexport * from './lib/hlm-context-menu-trigger';\n\nexport const HlmContextMenuImports = [HlmContextMenuTrigger] as const;\n","import { Directive, computed, effect, input, untracked } from '@angular/core';\nimport { injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport { BrnDrawerOverlay } from '@spartan-ng/brain/drawer';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmDrawerOverlay],hlm-drawer-overlay',\n\texportAs: 'hlmDrawerOverlay',\n\thostDirectives: [BrnDrawerOverlay],\n})\nexport class HlmDrawerOverlay {\n\tprivate readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 supports-backdrop-filter:backdrop-blur-xs transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0',\n\t\t\tthis.userClass(),\n\t\t),\n\t);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst classValue = this._computedClass();\n\t\t\tuntracked(() => this._classSettable?.setClassToCustomElement(classValue));\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { BrnDialog, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from '@spartan-ng/brain/drawer';\nimport { HlmDrawerOverlay } from './hlm-drawer-overlay';\n\n@Component({\n\tselector: 'hlm-drawer',\n\texportAs: 'hlmDrawer',\n\timports: [HlmDrawerOverlay],\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => HlmDrawer),\n\t\t},\n\t\t{\n\t\t\tprovide: BrnDrawer,\n\t\t\tuseExisting: forwardRef(() => HlmDrawer),\n\t\t},\n\t\tprovideBrnDialogDefaultOptions({\n\t\t\t// add custom options here\n\t\t}),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<hlm-drawer-overlay />\n\t\t<ng-content />\n\t`,\n})\nexport class HlmDrawer extends BrnDrawer {}\n","import { Directive } from '@angular/core';\nimport { BrnDrawerClose } from '@spartan-ng/brain/drawer';\n\n@Directive({\n\tselector: 'button[hlmDrawerClose]',\n\texportAs: 'hlmDrawerClose',\n\thostDirectives: [BrnDrawerClose],\n\thost: { 'data-slot': 'drawer-close' },\n})\nexport class HlmDrawerClose {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer, BrnDrawerHandle } from '@spartan-ng/brain/drawer';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-drawer-content',\n\texportAs: 'hlmDrawerContent',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnDrawerHandle, inputs: ['closeThreshold'] }],\n\thost: {\n\t\t'data-slot': 'drawer-content',\n\t\t'[attr.data-vaul-drawer-direction]': '_drawer.direction()',\n\t\t'[attr.data-state]': 'state()',\n\t},\n\ttemplate: `\n\t\t<div class=\"bg-muted mx-auto mt-4 hidden h-1.5 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\"></div>\n\t\t<ng-content />\n\t`,\n})\nexport class HlmDrawerContent {\n\tprivate readonly _dialogRef = inject(BrnDialogRef);\n\tprotected readonly _drawer = inject(BrnDrawer);\n\n\tpublic readonly state = this._dialogRef.state;\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-background fixed z-50 flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm',\n\t\t\t'group/drawer-content',\n\t\t\t'data-open:animate-in data-closed:animate-out',\n\t\t\t'data-[vaul-drawer-direction=bottom]:data-closed:slide-out-to-bottom data-[vaul-drawer-direction=bottom]:data-open:slide-in-from-bottom',\n\t\t\t'data-[vaul-drawer-direction=top]:data-closed:slide-out-to-top data-[vaul-drawer-direction=top]:data-open:slide-in-from-top',\n\t\t\t'data-[vaul-drawer-direction=left]:data-closed:slide-out-to-left data-[vaul-drawer-direction=left]:data-open:slide-in-from-left',\n\t\t\t'data-[vaul-drawer-direction=right]:data-closed:slide-out-to-right data-[vaul-drawer-direction=right]:data-open:slide-in-from-right',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDrawerDescription } from '@spartan-ng/brain/drawer';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDrawerDescription]',\n\texportAs: 'hlmDrawerDescription',\n\thostDirectives: [BrnDrawerDescription],\n\thost: { 'data-slot': 'drawer-description' },\n})\nexport class HlmDrawerDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground text-sm');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDrawerFooter],hlm-drawer-footer',\n\texportAs: 'hlmDrawerFooter',\n\thost: { 'data-slot': 'drawer-footer' },\n})\nexport class HlmDrawerFooter {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 p-4 mt-auto flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDrawerHeader],hlm-drawer-header',\n\texportAs: 'hlmDrawerHeader',\n\thost: { 'data-slot': 'drawer-header' },\n})\nexport class HlmDrawerHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-start flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDrawerContent } from '@spartan-ng/brain/drawer';\n\n@Directive({\n\tselector: '[hlmDrawerPortal]',\n\texportAs: 'hlmDrawerPortal',\n\thostDirectives: [{ directive: BrnDrawerContent, inputs: ['context', 'class'] }],\n})\nexport class HlmDrawerPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnDrawerTitle } from '@spartan-ng/brain/drawer';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDrawerTitle]',\n\texportAs: 'hlmDrawerTitle',\n\thostDirectives: [BrnDrawerTitle],\n\thost: { 'data-slot': 'drawer-title' },\n})\nexport class HlmDrawerTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-foreground font-medium');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDrawerTrigger } from '@spartan-ng/brain/drawer';\n\n@Directive({\n\tselector: 'button[hlmDrawerTrigger]',\n\texportAs: 'hlmDrawerTrigger',\n\thostDirectives: [{ directive: BrnDrawerTrigger, inputs: ['id', 'direction', 'type'] }],\n\thost: { 'data-slot': 'drawer-trigger' },\n})\nexport class HlmDrawerTrigger {}\n","import { HlmDrawer } from './lib/hlm-drawer';\nimport { HlmDrawerClose } from './lib/hlm-drawer-close';\nimport { HlmDrawerContent } from './lib/hlm-drawer-content';\nimport { HlmDrawerDescription } from './lib/hlm-drawer-description';\nimport { HlmDrawerFooter } from './lib/hlm-drawer-footer';\nimport { HlmDrawerHeader } from './lib/hlm-drawer-header';\nimport { HlmDrawerOverlay } from './lib/hlm-drawer-overlay';\nimport { HlmDrawerPortal } from './lib/hlm-drawer-portal';\nimport { HlmDrawerTitle } from './lib/hlm-drawer-title';\nimport { HlmDrawerTrigger } from './lib/hlm-drawer-trigger';\n\nexport * from './lib/hlm-drawer';\nexport * from './lib/hlm-drawer-close';\nexport * from './lib/hlm-drawer-content';\nexport * from './lib/hlm-drawer-description';\nexport * from './lib/hlm-drawer-footer';\nexport * from './lib/hlm-drawer-header';\nexport * from './lib/hlm-drawer-overlay';\nexport * from './lib/hlm-drawer-portal';\nexport * from './lib/hlm-drawer-title';\nexport * from './lib/hlm-drawer-trigger';\n\nexport const HlmDrawerImports = [\n\tHlmDrawer,\n\tHlmDrawerClose,\n\tHlmDrawerContent,\n\tHlmDrawerDescription,\n\tHlmDrawerFooter,\n\tHlmDrawerHeader,\n\tHlmDrawerOverlay,\n\tHlmDrawerPortal,\n\tHlmDrawerTitle,\n\tHlmDrawerTrigger,\n] as const;\n","import { type NumberInput } from '@angular/cdk/coercion';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { Directive, ElementRef, inject, input, numberAttribute, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { deriveMenuSideFromTransformOrigin, MENU_SIDE, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenu],hlm-dropdown-menu',\n\texportAs: 'hlmDropdownMenu',\n\thostDirectives: [CdkMenu],\n\thost: {\n\t\t'data-slot': 'dropdown-menu',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.data-side]': '_side()',\n\t\t'[style.--side-offset]': 'sideOffset()',\n\t},\n})\nexport class HlmDropdownMenu {\n\tprivate readonly _host = inject(CdkMenu);\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\t// The trigger provides its configured side; CDK parents this content's injector under the trigger's.\n\tprivate readonly _menuSide = inject(MENU_SIDE, { optional: true });\n\n\tprotected readonly _state = signal('open');\n\tprotected readonly _side = signal<MenuSide>(this._menuSide?.side() ?? 'bottom');\n\n\tpublic readonly sideOffset = input<number, NumberInput>(1, { transform: numberAttribute });\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'motion-safe:data-open:animate-in motion-safe:data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-md p-1 shadow-md ring-1 duration-100 my-[--spacing(var(--side-offset))] overflow-x-hidden overflow-y-auto outline-none',\n\t\t);\n\n\t\tthis.setSideFromTransformOrigin();\n\t\t// this is a best effort, but does not seem to work currently\n\t\t// TODO: figure out a way for us to know the host is about to be closed. might not be possible with CDK\n\t\tthis._host.closed.pipe(takeUntilDestroyed()).subscribe(() => this._state.set('closed'));\n\t}\n\n\tprivate setSideFromTransformOrigin() {\n\t\tconst side = this._menuSide?.side() ?? 'bottom';\n\t\t// CDK sets transform-origin on this element synchronously on attach; read it next tick and derive side\n\t\tsetTimeout(() => {\n\t\t\tthis._side.set(deriveMenuSideFromTransformOrigin(this._elementRef.nativeElement.style.transformOrigin, side));\n\t\t});\n\t}\n}\n","import { InputModalityDetector } from '@angular/cdk/a11y';\nimport { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive, inject } from '@angular/core';\n\n/**\n * @internal\n * Moves DOM focus to the hovered menu item. CDK menus only move focus with the keyboard, so on a pointer\n * the highlight would otherwise stay on the last keyboard-focused item (leaving two rows highlighted) and,\n * when a submenu closes, focus would fall to <body>, the menu stack would report no focus, and the whole\n * dropdown would collapse. Following the pointer with focus (Radix/shadcn behaviour) keeps a single\n * highlight and keeps focus inside the menu stack. setActiveMenuItem also syncs the key manager so keyboard\n * navigation continues from the hovered item.\n *\n * Applied as a host directive on every dropdown item type (item, checkbox, radio, sub-trigger).\n */\n@Directive({\n\tselector: '[hlmDropdownMenuFocusOnHover]',\n\texportAs: 'hlmDropdownMenuFocusOnHover',\n\thost: {\n\t\t'(mouseenter)': '_focusOnHover()',\n\t},\n})\nexport class HlmDropdownMenuFocusOnHover {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItem, { self: true });\n\tprivate readonly _parentMenu = inject(CdkMenu, { optional: true });\n\tprivate readonly _inputModality = inject(InputModalityDetector);\n\n\tprotected _focusOnHover(): void {\n\t\t// Only skip synthetic hovers from touch taps; every real hover (mouse, or keyboard-then-hover,\n\t\t// which leaves the modality as 'keyboard') should move focus to keep a single highlight.\n\t\tif (this._inputModality.mostRecentModality === 'touch' || this._cdkMenuItem.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._parentMenu?.setActiveMenuItem(this._cdkMenuItem);\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemSelectable } from '@angular/cdk/menu';\nimport { Directive, booleanAttribute, inject, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmDropdownMenuFocusOnHover } from './hlm-dropdown-menu-focus-on-hover';\n\n/** @internal. Use HlmDropdownMenuCheckbox instead. */\n@Directive({\n\tselector: '[hlmDropdownMenuCheckboxCdk]',\n\texportAs: 'hlmDropdownMenuCheckboxCdk',\n\tproviders: [\n\t\t{ provide: CdkMenuItemCheckbox, useExisting: HlmDropdownMenuCheckboxCdk },\n\t\t{ provide: CdkMenuItemSelectable, useExisting: HlmDropdownMenuCheckboxCdk },\n\t\t{ provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },\n\t],\n})\nexport class HlmDropdownMenuCheckboxCdk extends CdkMenuItemCheckbox {\n\tpublic readonly keepOpen = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\tpublic override trigger(options?: { keepOpen: boolean }) {\n\t\tsuper.trigger({ ...options, keepOpen: this.keepOpen() });\n\t}\n}\n\n@Directive({\n\tselector: '[hlmDropdownMenuCheckbox],[hlmDropdownMenuCheckboxItem]',\n\texportAs: 'hlmDropdownMenuCheckbox',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: HlmDropdownMenuCheckboxCdk,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled', 'cdkMenuItemChecked: checked', 'keepOpen'],\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t\tHlmDropdownMenuFocusOnHover,\n\t],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-checkbox-item',\n\t\t'[attr.data-disabled]': '_cdkMenuItem.disabled ? \"\" : null',\n\t\t'[attr.data-checked]': '_cdkMenuItem.checked ? \"\" : null',\n\t\t'[attr.data-inset]': 'inset() ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuCheckbox {\n\tprotected readonly _cdkMenuItem = inject(HlmDropdownMenuCheckboxCdk);\n\n\tpublic readonly inset = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm data-inset:ps-8 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/dropdown-menu-checkbox relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-dropdown-menu-checkbox-indicator',\n\texportAs: 'hlmDropdownMenuCheckboxIndicator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'dropdown-menu-checkbox-item-indicator' },\n\ttemplate: `\n\t\t<ng-icon name=\"lucideCheck\" />\n\t`,\n})\nexport class HlmDropdownMenuCheckboxIndicator {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'absolute end-2 flex items-center justify-center [&_ng-icon]:text-[length:--spacing(4)] pointer-events-none opacity-0 group-data-checked/dropdown-menu-checkbox:opacity-100',\n\t\t);\n\t}\n}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuGroup],hlm-dropdown-menu-group',\n\texportAs: 'hlmDropdownMenuGroup',\n\thostDirectives: [CdkMenuGroup],\n\thost: { 'data-slot': 'dropdown-menu-group' },\n})\nexport class HlmDropdownMenuGroup {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, HOST_TAG_NAME, inject, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmDropdownMenuFocusOnHover } from './hlm-dropdown-menu-focus-on-hover';\n\n@Directive({\n\tselector: '[hlmDropdownMenuItem],hlm-dropdown-menu-item',\n\texportAs: 'hlmDropdownMenuItem',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuItem,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled'],\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t\tHlmDropdownMenuFocusOnHover,\n\t],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-item',\n\t\t'[attr.disabled]': '_isButton && disabled() ? \"\" : null',\n\t\t'[attr.data-disabled]': 'disabled() ? \"\" : null',\n\t\t'[attr.data-variant]': 'variant()',\n\t\t'[attr.data-inset]': 'inset() ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuItem {\n\tprotected readonly _isButton = inject(HOST_TAG_NAME) === 'button';\n\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tpublic readonly variant = input<'default' | 'destructive'>('default');\n\n\tpublic readonly inset = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:hover:bg-destructive/10 data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:hover:text-destructive data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive not-data-[variant=destructive]:hover:**:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:ps-8 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/dropdown-menu-item relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronRight } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-dropdown-menu-item-sub-indicator',\n\texportAs: 'hlmDropdownMenuItemSubIndicator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-icon name=\"lucideChevronRight\" class=\"text-[length:--spacing(4)] rtl:rotate-180\" />\n\t`,\n})\nexport class HlmDropdownMenuItemSubIndicator {\n\tconstructor() {\n\t\tclasses(() => 'ms-auto flex items-center justify-center');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuLabel],hlm-dropdown-menu-label',\n\texportAs: 'hlmDropdownMenuLabel',\n\thost: {\n\t\t'data-slot': 'dropdown-menu-label',\n\t\t'[attr.data-inset]': 'inset() ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuLabel {\n\tpublic readonly inset = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:ps-8 block');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem, CdkMenuItemRadio, CdkMenuItemSelectable } from '@angular/cdk/menu';\nimport { Directive, booleanAttribute, inject, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmDropdownMenuFocusOnHover } from './hlm-dropdown-menu-focus-on-hover';\n\n/** @internal. Use HlmDropdownMenuRadio instead. */\n@Directive({\n\tselector: '[hlmDropdownMenuRadioCdk]',\n\texportAs: 'hlmDropdownMenuRadioCdk',\n\tproviders: [\n\t\t{ provide: CdkMenuItemRadio, useExisting: HlmDropdownMenuRadioCdk },\n\t\t{ provide: CdkMenuItemSelectable, useExisting: HlmDropdownMenuRadioCdk },\n\t\t{ provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },\n\t],\n})\nexport class HlmDropdownMenuRadioCdk extends CdkMenuItemRadio {\n\tpublic readonly keepOpen = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\tpublic override trigger(options?: { keepOpen: boolean }) {\n\t\tsuper.trigger({ ...options, keepOpen: this.keepOpen() });\n\t}\n}\n\n@Directive({\n\tselector: '[hlmDropdownMenuRadio]',\n\texportAs: 'hlmDropdownMenuRadio',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: HlmDropdownMenuRadioCdk,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled', 'cdkMenuItemChecked: checked', 'keepOpen'],\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t\tHlmDropdownMenuFocusOnHover,\n\t],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-radio-item',\n\t\t'[attr.data-disabled]': '_cdkMenuItem.disabled ? \"\" : null',\n\t\t'[attr.data-checked]': '_cdkMenuItem.checked ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuRadio {\n\tprotected readonly _cdkMenuItem = inject(HlmDropdownMenuRadioCdk);\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm data-inset:ps-8 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/dropdown-menu-radio relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-dropdown-menu-radio-indicator',\n\texportAs: 'hlmDropdownMenuRadioIndicator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'dropdown-menu-radio-item-indicator' },\n\ttemplate: `\n\t\t<ng-icon name=\"lucideCheck\" />\n\t`,\n})\nexport class HlmDropdownMenuRadioIndicator {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'absolute end-2 flex items-center justify-center [&_ng-icon]:text-[length:--spacing(4)] pointer-events-none opacity-0 group-data-checked/dropdown-menu-radio:opacity-100',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuSeparator],hlm-dropdown-menu-separator',\n\texportAs: 'hlmDropdownMenuSeparator',\n\thost: { 'data-slot': 'dropdown-menu-separator' },\n})\nexport class HlmDropdownMenuSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-border -mx-1 my-1 h-px block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuShortcut],hlm-dropdown-menu-shortcut',\n\texportAs: 'hlmDropdownMenuShortcut',\n\thost: { 'data-slot': 'dropdown-menu-shortcut' },\n})\nexport class HlmDropdownMenuShortcut {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest');\n\t}\n}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive, ElementRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { deriveMenuSideFromTransformOrigin, MENU_SIDE, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuSub],hlm-dropdown-menu-sub',\n\texportAs: 'hlmDropdownMenuSub',\n\thostDirectives: [CdkMenu],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-sub',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.data-side]': '_side()',\n\t},\n})\nexport class HlmDropdownMenuSub {\n\tprivate readonly _host = inject(CdkMenu);\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\t// The sub-trigger provides its configured side; CDK parents this content's injector under it.\n\tprivate readonly _menuSide = inject(MENU_SIDE, { optional: true });\n\n\tprotected readonly _state = signal('open');\n\tprotected readonly _side = signal<MenuSide>(this._menuSide?.side() ?? 'right');\n\n\tconstructor() {\n\t\tthis.setSideFromTransformOrigin();\n\t\t// this is a best effort, but does not seem to work currently\n\t\t// TODO: figure out a way for us to know the host is about to be closed. might not be possible with CDK\n\t\tthis._host.closed.pipe(takeUntilDestroyed()).subscribe(() => this._state.set('closed'));\n\n\t\tclasses(() => 'motion-safe:data-open:animate-in motion-safe:data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-md p-1 shadow-lg ring-1 duration-100 w-auto');\n\t}\n\n\tprivate setSideFromTransformOrigin() {\n\t\tconst side = this._menuSide?.side() ?? 'right';\n\t\t// CDK sets transform-origin on this element synchronously on attach; read it next tick and derive side\n\t\tsetTimeout(() => {\n\t\t\tthis._side.set(deriveMenuSideFromTransformOrigin(this._elementRef.nativeElement.style.transformOrigin, side));\n\t\t});\n\t}\n}\n","import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport { type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\n\nexport interface HlmDropdownMenuConfig {\n\talign: MenuAlign;\n\tside: MenuSide;\n}\n\nconst defaultConfig: HlmDropdownMenuConfig = {\n\talign: 'start',\n\tside: 'bottom',\n};\n\nconst HlmDropdownMenuConfigToken = new InjectionToken<HlmDropdownMenuConfig>('HlmDropdownMenuConfig');\n\nexport function provideHlmDropdownMenuConfig(config: Partial<HlmDropdownMenuConfig>): ValueProvider {\n\treturn { provide: HlmDropdownMenuConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmDropdownMenuConfig(): HlmDropdownMenuConfig {\n\treturn inject(HlmDropdownMenuConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport {\n\tcreateMenuPosition,\n\tMENU_SIDE,\n\ttype MenuAlign,\n\ttype MenuSide,\n\tupdateMenuPosition,\n} from '@spartan-ng/brain/core';\nimport { classes } from '../../utils';\nimport { injectHlmDropdownMenuConfig } from './hlm-dropdown-menu-token';\n\n@Directive({\n\tselector: '[hlmDropdownMenuSubTrigger]',\n\texportAs: 'hlmDropdownMenuSubTrigger',\n\tproviders: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmDropdownMenuSubTrigger) }],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: hlmDropdownMenuSubTrigger', 'cdkMenuTriggerData: hlmDropdownMenuTriggerData'],\n\t\t\toutputs: ['cdkMenuOpened: hlmDropdownMenuSubOpened', 'cdkMenuClosed: hlmDropdownMenuSubClosed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'dropdown-menu-sub-trigger' },\n})\nexport class HlmDropdownMenuSubTrigger {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tprivate readonly _config = injectHlmDropdownMenuConfig();\n\n\tpublic readonly align = input<MenuAlign>(this._config.align);\n\tpublic readonly side = input<MenuSide>(this._config.side);\n\n\tprivate readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n\tconstructor() {\n\t\t// CDK sets transform-origin on the submenu content from the resolved position; the content reads it\n\t\t// to animate from the anchored corner and to derive its data-side. Cast tolerates @angular/cdk < 21.2\n\t\t// (we still support >=21.0), where the property is absent and the assignment is a harmless no-op.\n\t\t(this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector =\n\t\t\t'[data-slot=\"dropdown-menu-sub\"]';\n\n\t\teffect(() => {\n\t\t\tupdateMenuPosition(this._cdkTrigger, this._menuPosition());\n\t\t});\n\n\t\tclasses(() => 'aria-expanded:bg-accent aria-expanded:text-accent-foreground');\n\t}\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport {\n\tcreateMenuPosition,\n\tMENU_SIDE,\n\ttype MenuAlign,\n\ttype MenuSide,\n\tupdateMenuPosition,\n} from '@spartan-ng/brain/core';\nimport { injectHlmDropdownMenuConfig } from './hlm-dropdown-menu-token';\n\n@Directive({\n\tselector: '[hlmDropdownMenuTrigger]',\n\texportAs: 'hlmDropdownMenuTrigger',\n\tproviders: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmDropdownMenuTrigger) }],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: hlmDropdownMenuTrigger', 'cdkMenuTriggerData: hlmDropdownMenuTriggerData'],\n\t\t\toutputs: ['cdkMenuOpened: hlmDropdownMenuOpened', 'cdkMenuClosed: hlmDropdownMenuClosed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'dropdown-menu-trigger' },\n})\nexport class HlmDropdownMenuTrigger {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tprivate readonly _config = injectHlmDropdownMenuConfig();\n\n\tpublic readonly align = input<MenuAlign>(this._config.align);\n\tpublic readonly side = input<MenuSide>(this._config.side);\n\n\tprivate readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n\tconstructor() {\n\t\t// CDK sets transform-origin on the menu content from the resolved position; the content reads it to\n\t\t// animate from the anchored corner and to derive its data-side. Cast tolerates @angular/cdk < 21.2\n\t\t// (we still support >=21.0), where the property is absent and the assignment is a harmless no-op.\n\t\t(this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector = '[data-slot=\"dropdown-menu\"]';\n\n\t\teffect(() => {\n\t\t\tupdateMenuPosition(this._cdkTrigger, this._menuPosition());\n\t\t});\n\t}\n}\n","import { HlmDropdownMenu } from './lib/hlm-dropdown-menu';\nimport { HlmDropdownMenuCheckbox } from './lib/hlm-dropdown-menu-checkbox';\nimport { HlmDropdownMenuCheckboxIndicator } from './lib/hlm-dropdown-menu-checkbox-indicator';\nimport { HlmDropdownMenuGroup } from './lib/hlm-dropdown-menu-group';\nimport { HlmDropdownMenuItem } from './lib/hlm-dropdown-menu-item';\nimport { HlmDropdownMenuItemSubIndicator } from './lib/hlm-dropdown-menu-item-sub-indicator';\nimport { HlmDropdownMenuLabel } from './lib/hlm-dropdown-menu-label';\nimport { HlmDropdownMenuRadio } from './lib/hlm-dropdown-menu-radio';\nimport { HlmDropdownMenuRadioIndicator } from './lib/hlm-dropdown-menu-radio-indicator';\nimport { HlmDropdownMenuSeparator } from './lib/hlm-dropdown-menu-separator';\nimport { HlmDropdownMenuShortcut } from './lib/hlm-dropdown-menu-shortcut';\nimport { HlmDropdownMenuSub } from './lib/hlm-dropdown-menu-sub';\nimport { HlmDropdownMenuSubTrigger } from './lib/hlm-dropdown-menu-sub-trigger';\n\nimport { HlmDropdownMenuTrigger } from './lib/hlm-dropdown-menu-trigger';\n\nexport * from './lib/hlm-dropdown-menu';\nexport * from './lib/hlm-dropdown-menu-checkbox';\nexport * from './lib/hlm-dropdown-menu-checkbox-indicator';\nexport * from './lib/hlm-dropdown-menu-focus-on-hover';\nexport * from './lib/hlm-dropdown-menu-group';\nexport * from './lib/hlm-dropdown-menu-item';\nexport * from './lib/hlm-dropdown-menu-item-sub-indicator';\nexport * from './lib/hlm-dropdown-menu-label';\nexport * from './lib/hlm-dropdown-menu-radio';\nexport * from './lib/hlm-dropdown-menu-radio-indicator';\nexport * from './lib/hlm-dropdown-menu-separator';\nexport * from './lib/hlm-dropdown-menu-shortcut';\nexport * from './lib/hlm-dropdown-menu-sub';\nexport * from './lib/hlm-dropdown-menu-sub-trigger';\nexport * from './lib/hlm-dropdown-menu-token';\nexport * from './lib/hlm-dropdown-menu-trigger';\n\nexport const HlmDropdownMenuImports = [\n\tHlmDropdownMenu,\n\tHlmDropdownMenuCheckbox,\n\tHlmDropdownMenuCheckboxIndicator,\n\tHlmDropdownMenuGroup,\n\tHlmDropdownMenuItem,\n\tHlmDropdownMenuItemSubIndicator,\n\tHlmDropdownMenuLabel,\n\tHlmDropdownMenuRadio,\n\tHlmDropdownMenuRadioIndicator,\n\tHlmDropdownMenuSeparator,\n\tHlmDropdownMenuShortcut,\n\tHlmDropdownMenuSub,\n\tHlmDropdownMenuSubTrigger,\n\tHlmDropdownMenuTrigger,\n] as const;\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmEmpty],hlm-empty',\n\texportAs: 'hlmEmpty',\n\thost: { 'data-slot': 'empty' },\n})\nexport class HlmEmpty {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => 'gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmEmptyContent],hlm-empty-content',\n\texportAs: 'hlmEmptyContent',\n\thost: { 'data-slot': 'empty-content' },\n})\nexport class HlmEmptyContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmEmptyDescription]',\n\texportAs: 'hlmEmptyDescription',\n\thost: { 'data-slot': 'empty-description' },\n})\nexport class HlmEmptyDescription {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmEmptyHeader],hlm-empty-header',\n\texportAs: 'hlmEmptyHeader',\n\thost: { 'data-slot': 'empty-header' },\n})\nexport class HlmEmptyHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex max-w-sm flex-col items-center');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, VariantProps } from 'class-variance-authority';\n\nconst emptyMediaVariants = cva(\n\t'mb-2 flex shrink-0 items-center justify-center [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-transparent',\n\t\t\t\ticon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(6)]\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\nexport type EmptyMediaVariants = VariantProps<typeof emptyMediaVariants>;\n\n@Directive({\n\tselector: '[hlmEmptyMedia],hlm-empty-media',\n\texportAs: 'hlmEmptyMedia',\n\thost: {\n\t\t'data-slot': 'empty-media',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmEmptyMedia {\n\tpublic readonly variant = input<EmptyMediaVariants['variant']>();\n\n\tconstructor() {\n\t\tclasses(() => emptyMediaVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmEmptyTitle]',\n\texportAs: 'hlmEmptyTitle',\n\thost: { 'data-slot': 'empty-title' },\n})\nexport class HlmEmptyTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-lg font-medium tracking-tight');\n\t}\n}\n","import { HlmEmpty } from './lib/hlm-empty';\nimport { HlmEmptyContent } from './lib/hlm-empty-content';\nimport { HlmEmptyDescription } from './lib/hlm-empty-description';\nimport { HlmEmptyHeader } from './lib/hlm-empty-header';\nimport { HlmEmptyMedia } from './lib/hlm-empty-media';\nimport { HlmEmptyTitle } from './lib/hlm-empty-title';\n\nexport * from './lib/hlm-empty';\nexport * from './lib/hlm-empty-content';\nexport * from './lib/hlm-empty-description';\nexport * from './lib/hlm-empty-header';\nexport * from './lib/hlm-empty-media';\nexport * from './lib/hlm-empty-title';\n\nexport const HlmEmptyImports = [\n\tHlmEmpty,\n\tHlmEmptyContent,\n\tHlmEmptyDescription,\n\tHlmEmptyHeader,\n\tHlmEmptyTitle,\n\tHlmEmptyMedia,\n] as const;\n","import { Directive } from '@angular/core';\nimport { BrnHoverCard } from '@spartan-ng/brain/hover-card';\n\n@Directive({\n\tselector: '[hlmHoverCard],hlm-hover-card',\n\texportAs: 'hlmHoverCard',\n\thostDirectives: [BrnHoverCard],\n\thost: {\n\t\t'data-slot': 'hover-card',\n\t},\n})\nexport class HlmHoverCard {}\n","import { Directive, inject } from '@angular/core';\nimport { BrnHoverCardContentService } from '@spartan-ng/brain/hover-card';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmHoverCardContent],hlm-hover-card-content',\n\texportAs: 'hlmHoverCardContent',\n\thost: {\n\t\t'data-slot': 'hover-card-content',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.data-side]': 'side()',\n\t},\n})\nexport class HlmHoverCardContent {\n\tprivate readonly _contentService = inject(BrnHoverCardContentService);\n\n\tpublic readonly state = this._contentService.state;\n\tpublic readonly side = this._contentService.side;\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground w-64 rounded-lg p-4 text-sm shadow-md ring-1 duration-100 z-50 outline-none',\n\t\t\t'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnHoverCardContent } from '@spartan-ng/brain/hover-card';\n\n@Directive({\n\tselector: '[hlmHoverCardPortal],hlm-hover-card-portal',\n\texportAs: 'hlmHoverCardPortal',\n\thostDirectives: [BrnHoverCardContent],\n})\nexport class HlmHoverCardPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnHoverCardTrigger } from '@spartan-ng/brain/hover-card';\n\n@Directive({\n\tselector: '[hlmHoverCardTrigger]',\n\texportAs: 'hlmHoverCardTrigger',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnHoverCardTrigger,\n\t\t\tinputs: [\n\t\t\t\t'showDelay',\n\t\t\t\t'hideDelay',\n\t\t\t\t'animationDelay',\n\t\t\t\t'sideOffset',\n\t\t\t\t'align',\n\t\t\t\t'brnHoverCardTriggerFor: hlmHoverCardTriggerFor',\n\t\t\t],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'hover-card-trigger',\n\t},\n})\nexport class HlmHoverCardTrigger {}\n","import { HlmHoverCard } from './lib/hlm-hover-card';\nimport { HlmHoverCardContent } from './lib/hlm-hover-card-content';\nimport { HlmHoverCardPortal } from './lib/hlm-hover-card-portal';\nimport { HlmHoverCardTrigger } from './lib/hlm-hover-card-trigger';\n\nexport { HlmHoverCard } from './lib/hlm-hover-card';\nexport { HlmHoverCardContent } from './lib/hlm-hover-card-content';\nexport { HlmHoverCardPortal } from './lib/hlm-hover-card-portal';\nexport { HlmHoverCardTrigger } from './lib/hlm-hover-card-trigger';\n\nexport const HlmHoverCardImports = [\n\tHlmHoverCardContent,\n\tHlmHoverCardPortal,\n\tHlmHoverCard,\n\tHlmHoverCardTrigger,\n] as const;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnInputOtp, BrnInputOtpInput, type InputMode } from '@spartan-ng/brain/input-otp';\nimport { classes, hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-input-otp',\n\texportAs: 'hlmInputOtp',\n\timports: [BrnInputOtpInput],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnInputOtp,\n\t\t\tinputs: [\n\t\t\t\t'length',\n\t\t\t\t'value',\n\t\t\t\t'disabled',\n\t\t\t\t'inputId',\n\t\t\t\t'hostStyles',\n\t\t\t\t'autofocus',\n\t\t\t\t'transformPaste',\n\t\t\t\t'mask',\n\t\t\t\t'maskChar',\n\t\t\t\t'slotPattern',\n\t\t\t],\n\t\t\toutputs: ['valueChange', 'completed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'input-otp' },\n\ttemplate: `\n\t\t<ng-content />\n\t\t<input\n\t\t\tbrnInputOtpInput\n\t\t\t[autocomplete]=\"inputAutocomplete()\"\n\t\t\t[inputMode]=\"inputMode()\"\n\t\t\t[class]=\"_inputClass()\"\n\t\t\t[inputStyles]=\"inputStyles()\"\n\t\t/>\n\t`,\n})\nexport class HlmInputOtp {\n\t/** Custom autocomplete attribute applied to the input element */\n\tpublic readonly inputAutocomplete = input<'one-time-code' | 'off'>('one-time-code');\n\n\t/** Virtual keyboard appearance on mobile */\n\tpublic readonly inputMode = input<InputMode>('numeric');\n\n\t/** Classes applied to the input element. */\n\tpublic readonly inputClass = input<ClassValue>('');\n\n\t/** Overrides the default styles applied to the input element. */\n\tpublic readonly inputStyles = input<string | undefined>(undefined);\n\n\tprotected readonly _inputClass = computed(() => hlm('disabled:cursor-not-allowed', this.inputClass()));\n\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex items-center has-disabled:opacity-50');\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-input-otp-fake-caret',\n\texportAs: 'hlmInputOtpFakeCaret',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div class=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\"></div>\n\t`,\n})\nexport class HlmInputOtpFakeCaret {\n\tconstructor() {\n\t\tclasses(() => 'pointer-events-none absolute inset-0 flex items-center justify-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmInputOtpGroup],hlm-input-otp-group',\n\texportAs: 'hlmInputOtpGroup',\n\thost: { 'data-slot': 'input-otp-group' },\n})\nexport class HlmInputOtpGroup {\n\tconstructor() {\n\t\tclasses(() => 'has-data-[matches-spartan-invalid=true]:ring-destructive/20 dark:has-data-[matches-spartan-invalid=true]:ring-destructive/40 has-data-[matches-spartan-invalid=true]:border-destructive rounded-md has-data-[matches-spartan-invalid=true]:ring-3 flex items-center');\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideMinus } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-input-otp-separator',\n\texportAs: 'hlmInputOtpSeparator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideMinus })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\trole: 'separator',\n\t\t'data-slot': 'input-otp-separator',\n\t},\n\ttemplate: `\n\t\t<ng-icon name=\"lucideMinus\" />\n\t`,\n})\nexport class HlmInputOtpSeparator {\n\tconstructor() {\n\t\tclasses(() => \"[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center\");\n\t}\n}\n","import type { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { BrnInputOtpSlot } from '@spartan-ng/brain/input-otp';\nimport { classes } from '../../utils';\nimport { HlmInputOtpFakeCaret } from './hlm-input-otp-fake-caret';\n\n@Component({\n\tselector: 'hlm-input-otp-slot',\n\texportAs: 'hlmInputOtpSlot',\n\timports: [BrnInputOtpSlot, HlmInputOtpFakeCaret],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'input-otp-slot' },\n\ttemplate: `\n\t\t<brn-input-otp-slot [index]=\"index()\" [forceInvalid]=\"forceInvalid()\">\n\t\t\t<hlm-input-otp-fake-caret />\n\t\t</brn-input-otp-slot>\n\t`,\n})\nexport class HlmInputOtpSlot {\n\t/** The index of the slot to render the char or a fake caret */\n\tpublic readonly index = input.required<number, NumberInput>({ transform: numberAttribute });\n\n\t/** Whether to force the input into an invalid state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'dark:bg-input/30 border-input has-[brn-input-otp-slot[data-active=\"true\"]]:border-ring has-[brn-input-otp-slot[data-active=\"true\"]]:ring-ring/50 has-[brn-input-otp-slot[data-active=\"true\"]]:has-data-[matches-spartan-invalid=true]:ring-destructive/20 dark:has-[brn-input-otp-slot[data-active=\"true\"]]:has-data-[matches-spartan-invalid=true]:ring-destructive/40 has-data-[matches-spartan-invalid=true]:border-destructive has-[brn-input-otp-slot[data-active=\"true\"]]:has-data-[matches-spartan-invalid=true]:border-destructive size-9 border-y border-e text-sm shadow-xs transition-all outline-none first:rounded-s-md first:border-s last:rounded-e-md has-[brn-input-otp-slot[data-active=\"true\"]]:ring-3 relative flex items-center justify-center has-[brn-input-otp-slot[data-active=\"true\"]]:z-10',\n\t\t);\n\t}\n}\n","import { HlmInputOtp } from './lib/hlm-input-otp';\nimport { HlmInputOtpFakeCaret } from './lib/hlm-input-otp-fake-caret';\nimport { HlmInputOtpGroup } from './lib/hlm-input-otp-group';\nimport { HlmInputOtpSeparator } from './lib/hlm-input-otp-separator';\nimport { HlmInputOtpSlot } from './lib/hlm-input-otp-slot';\n\nexport * from './lib/hlm-input-otp';\nexport * from './lib/hlm-input-otp-fake-caret';\nexport * from './lib/hlm-input-otp-group';\nexport * from './lib/hlm-input-otp-separator';\nexport * from './lib/hlm-input-otp-slot';\n\nexport const HlmInputOtpImports = [\n\tHlmInputOtp,\n\tHlmInputOtpGroup,\n\tHlmInputOtpSeparator,\n\tHlmInputOtpSlot,\n\tHlmInputOtpFakeCaret,\n] as const;\n","import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport type { ItemVariants } from './hlm-item';\nimport type { ItemMediaVariants } from './hlm-item-media';\n\nexport interface HlmItemConfig {\n\tvariant: ItemVariants['variant'];\n\tsize: ItemVariants['size'];\n}\n\nconst defaultConfig: HlmItemConfig = {\n\tvariant: 'default',\n\tsize: 'default',\n};\n\nconst HlmItemConfigToken = new InjectionToken<HlmItemConfig>('HlmItemConfig');\n\nexport function provideHlmItemConfig(config: Partial<HlmItemConfig>): ValueProvider {\n\treturn { provide: HlmItemConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmItemConfig(): HlmItemConfig {\n\treturn inject(HlmItemConfigToken, { optional: true }) ?? defaultConfig;\n}\n\nexport interface HlmItemMediaConfig {\n\tvariant: ItemMediaVariants['variant'];\n}\n\nconst defaultMediaConfig: HlmItemMediaConfig = {\n\tvariant: 'default',\n};\n\nconst HlmItemMediaConfigToken = new InjectionToken<HlmItemMediaConfig>('HlmItemMediaConfig');\n\nexport function provideHlmItemMediaConfig(config: Partial<HlmItemMediaConfig>): ValueProvider {\n\treturn { provide: HlmItemMediaConfigToken, useValue: { ...defaultMediaConfig, ...config } };\n}\n\nexport function injectHlmItemMediaConfig(): HlmItemMediaConfig {\n\treturn inject(HlmItemMediaConfigToken, { optional: true }) ?? defaultMediaConfig;\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { injectHlmItemConfig } from './hlm-item-token';\n\nconst itemVariants = cva(\n\t'[a]:hover:bg-muted rounded-md border text-sm group/item focus-visible:border-ring focus-visible:ring-ring/50 flex w-full flex-wrap items-center transition-colors duration-100 outline-none focus-visible:ring-[3px] [a]:transition-colors',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'border-transparent',\n\t\t\t\toutline: 'border-border',\n\t\t\t\tmuted: 'bg-muted/50 border-transparent',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'gap-3.5 px-4 py-3.5',\n\t\t\t\tsm: 'gap-2.5 px-3 py-2.5',\n\t\t\t\txs: 'gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t},\n);\n\nexport type ItemVariants = VariantProps<typeof itemVariants>;\n\n@Directive({\n\tselector: '[hlmItem],hlm-item',\n\texportAs: 'hlmItem',\n\thost: {\n\t\t'data-slot': 'item',\n\t\t'[attr.data-variant]': 'variant()',\n\t\t'[attr.data-size]': 'size()',\n\t},\n})\nexport class HlmItem {\n\tprivate readonly _config = injectHlmItemConfig();\n\tpublic readonly variant = input<ItemVariants['variant']>(this._config.variant);\n\tpublic readonly size = input<ItemVariants['size']>(this._config.size);\n\n\tconstructor() {\n\t\tclasses(() => itemVariants({ variant: this.variant(), size: this.size() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemActions],hlm-item-actions',\n\texportAs: 'hlmItemActions',\n\thost: { 'data-slot': 'item-actions' },\n})\nexport class HlmItemActions {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex items-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemContent],hlm-item-content',\n\texportAs: 'hlmItemContent',\n\thost: { 'data-slot': 'item-content' },\n})\nexport class HlmItemContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-1 group-data-[size=xs]/item:gap-0 flex flex-1 flex-col [&+[data-slot=item-content]]:flex-none');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemDescription],hlm-item-description',\n\texportAs: 'hlmItemDescription',\n\thost: { 'data-slot': 'item-description' },\n})\nexport class HlmItemDescription {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-muted-foreground text-start text-sm leading-normal group-data-[size=xs]/item:text-xs [&>a:hover]:text-primary line-clamp-2 flex font-normal [&>a]:underline [&>a]:underline-offset-4',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemFooter],hlm-item-footer',\n\texportAs: 'hlmItemFooter',\n\thost: { 'data-slot': 'item-footer' },\n})\nexport class HlmItemFooter {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex basis-full items-center justify-between');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemGroup],hlm-item-group',\n\texportAs: 'hlmItemGroup',\n\thost: { 'data-slot': 'item-group' },\n})\nexport class HlmItemGroup {\n\tconstructor() {\n\t\tclasses(() => 'gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2 group/item-group flex w-full flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemHeader],hlm-item-header',\n\texportAs: 'hlmItemHeader',\n\thost: { 'data-slot': 'item-header' },\n})\nexport class HlmItemHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex basis-full items-center justify-between');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { injectHlmItemMediaConfig } from './hlm-item-token';\n\nconst itemMediaVariants = cva(\n\t'gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start flex shrink-0 items-center justify-center [&_ng-icon]:pointer-events-none',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-transparent',\n\t\t\t\ticon: \"[&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]\",\n\t\t\t\timage: 'size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\nexport type ItemMediaVariants = VariantProps<typeof itemMediaVariants>;\n\n@Directive({\n\tselector: '[hlmItemMedia],hlm-item-media',\n\texportAs: 'hlmItemMedia',\n\thost: {\n\t\t'data-slot': 'item-media',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmItemMedia {\n\tprivate readonly _config = injectHlmItemMediaConfig();\n\tpublic readonly variant = input<ItemMediaVariants['variant']>(this._config.variant);\n\n\tconstructor() {\n\t\tclasses(() => itemMediaVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnSeparator } from '@spartan-ng/brain/separator';\nimport { hlmSeparatorClass } from '../../separator';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemSeparator],hlm-item-separator',\n\texportAs: 'hlmItemSeparator',\n\thostDirectives: [{ directive: BrnSeparator, inputs: ['orientation'] }],\n\thost: { 'data-slot': 'item-separator' },\n})\nexport class HlmItemSeparator {\n\tconstructor() {\n\t\tclasses(() => [hlmSeparatorClass, 'my-2']);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmItemTitle],hlm-item-title',\n\texportAs: 'hlmItemTitle',\n\thost: { 'data-slot': 'item-title' },\n})\nexport class HlmItemTitle {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 text-sm leading-snug font-medium underline-offset-4 line-clamp-1 flex w-fit items-center');\n\t}\n}\n","import { HlmItem } from './lib/hlm-item';\nimport { HlmItemActions } from './lib/hlm-item-actions';\nimport { HlmItemContent } from './lib/hlm-item-content';\nimport { HlmItemDescription } from './lib/hlm-item-description';\nimport { HlmItemFooter } from './lib/hlm-item-footer';\nimport { HlmItemGroup } from './lib/hlm-item-group';\nimport { HlmItemHeader } from './lib/hlm-item-header';\nimport { HlmItemMedia } from './lib/hlm-item-media';\nimport { HlmItemSeparator } from './lib/hlm-item-separator';\nimport { HlmItemTitle } from './lib/hlm-item-title';\n\nexport * from './lib/hlm-item';\nexport * from './lib/hlm-item-actions';\nexport * from './lib/hlm-item-content';\nexport * from './lib/hlm-item-description';\nexport * from './lib/hlm-item-footer';\nexport * from './lib/hlm-item-group';\nexport * from './lib/hlm-item-header';\nexport * from './lib/hlm-item-media';\nexport * from './lib/hlm-item-separator';\nexport * from './lib/hlm-item-title';\nexport * from './lib/hlm-item-token';\n\nexport const HlmItemImports = [\n\tHlmItem,\n\tHlmItemActions,\n\tHlmItemContent,\n\tHlmItemDescription,\n\tHlmItemFooter,\n\tHlmItemGroup,\n\tHlmItemHeader,\n\tHlmItemMedia,\n\tHlmItemSeparator,\n\tHlmItemTitle,\n] as const;\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'kbd[hlmKbd]',\n\texportAs: 'hlmKbd',\n\thost: {\n\t\t'data-slot': 'kbd',\n\t},\n})\nexport class HlmKbd {\n\tconstructor() {\n\t\tclasses(() => \"bg-muted text-muted-foreground in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 h-5 w-fit min-w-5 gap-1 rounded-sm px-1 font-sans text-xs font-medium [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(3)] pointer-events-none inline-flex items-center justify-center select-none\");\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'kbd[hlmKbdGroup]',\n\texportAs: 'hlmKbdGroup',\n\thost: {\n\t\t'data-slot': 'kbd-group',\n\t},\n})\nexport class HlmKbdGroup {\n\tconstructor() {\n\t\tclasses(() => 'gap-1 inline-flex items-center');\n\t}\n}\n","import { HlmKbd } from './lib/hlm-kbd';\nimport { HlmKbdGroup } from './lib/hlm-kbd-group';\n\nexport * from './lib/hlm-kbd';\nexport * from './lib/hlm-kbd-group';\n\nexport const HlmKbdImports = [HlmKbd, HlmKbdGroup] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst markerVariants = cva(\n\t\"text-muted-foreground gap-2.5 group/marker [a]:hover:text-foreground relative flex min-h-4 w-full items-center text-start text-sm [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] [a]:underline [a]:underline-offset-3\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: '',\n\t\t\t\tseparator: 'before:bg-border after:bg-border before:me-1.5 before:h-px before:min-w-0 before:flex-1 after:ms-1.5 after:h-px after:min-w-0 after:flex-1',\n\t\t\t\tborder: 'border-border border-b pb-2.5',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\nexport type MarkerVariants = VariantProps<typeof markerVariants>;\n\n@Directive({\n\tselector: '[hlmMarker],hlm-marker',\n\texportAs: 'hlmMarker',\n\thost: {\n\t\t'data-slot': 'marker',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmMarker {\n\tpublic readonly variant = input<MarkerVariants['variant']>('default');\n\n\tconstructor() {\n\t\tclasses(() => markerVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMarkerContent],hlm-marker-content',\n\texportAs: 'hlmMarkerContent',\n\thost: { 'data-slot': 'marker-content' },\n})\nexport class HlmMarkerContent {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'min-w-0 *:[a]:hover:text-foreground wrap-break-word group-data-[variant=separator]/marker:flex-none group-data-[variant=separator]/marker:text-center *:[a]:underline *:[a]:underline-offset-3',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMarkerIcon],hlm-marker-icon',\n\texportAs: 'hlmMarkerIcon',\n\thost: {\n\t\t'data-slot': 'marker-icon',\n\t\t'aria-hidden': 'true',\n\t},\n})\nexport class HlmMarkerIcon {\n\tconstructor() {\n\t\tclasses(() => \"size-4 shrink-0 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]\");\n\t}\n}\n","import { HlmMarker } from './lib/hlm-marker';\nimport { HlmMarkerContent } from './lib/hlm-marker-content';\nimport { HlmMarkerIcon } from './lib/hlm-marker-icon';\n\nexport * from './lib/hlm-marker';\nexport * from './lib/hlm-marker-content';\nexport * from './lib/hlm-marker-icon';\n\nexport const HlmMarkerImports = [HlmMarker, HlmMarkerContent, HlmMarkerIcon] as const;\n","import { CdkMenuBar } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMenubar],hlm-menubar',\n\texportAs: 'hlmMenubar',\n\thostDirectives: [CdkMenuBar],\n\thost: {\n\t\t'data-slot': 'menubar',\n\t},\n})\nexport class HlmMenubar {\n\tconstructor() {\n\t\tclasses(() => 'bg-background h-9 gap-1 rounded-md border p-1 shadow-xs flex items-center');\n\t}\n}\n","import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport { type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\n\nexport interface HlmMenubarConfig {\n\talign: MenuAlign;\n\tside: MenuSide;\n}\n\nconst defaultConfig: HlmMenubarConfig = {\n\talign: 'start',\n\tside: 'bottom',\n};\n\nconst HlmMenubarConfigToken = new InjectionToken<HlmMenubarConfig>('HlmMenubarConfig');\n\nexport function provideHlmMenubarConfig(config: Partial<HlmMenubarConfig>): ValueProvider {\n\treturn { provide: HlmMenubarConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmMenubarConfig(): HlmMenubarConfig {\n\treturn inject(HlmMenubarConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport {\n\tcreateMenuPosition,\n\tMENU_SIDE,\n\ttype MenuAlign,\n\ttype MenuSide,\n\tupdateMenuPosition,\n} from '@spartan-ng/brain/core';\nimport { classes } from '../../utils';\nimport { injectHlmMenubarConfig } from './hlm-menubar-token';\n\n@Directive({\n\tselector: 'button[hlmMenubarTrigger]',\n\texportAs: 'hlmMenubarTrigger',\n\tproviders: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmMenubarTrigger) }],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuItem,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled'],\n\t\t},\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: hlmMenubarTrigger', 'cdkMenuTriggerData: hlmMenubarTriggerData'],\n\t\t\toutputs: ['cdkMenuOpened: hlmDropdownMenuOpened', 'cdkMenuClosed: hlmDropdownMenuClosed'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'menubar-trigger',\n\t\t'[disabled]': 'disabled() ',\n\t\t'[attr.data-disabled]': 'disabled() ? \"\" : null',\n\t},\n})\nexport class HlmMenubarTrigger {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tprivate readonly _config = injectHlmMenubarConfig();\n\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tpublic readonly align = input<MenuAlign>(this._config.align);\n\tpublic readonly side = input<MenuSide>(this._config.side);\n\n\tprivate readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n\tconstructor() {\n\t\t// CDK sets transform-origin on the menu content (a shared hlm-dropdown-menu) from the resolved\n\t\t// position; the content reads it to animate from the anchored corner and to derive its data-side.\n\t\t// Cast tolerates @angular/cdk < 21.2 (we still support >=21.0), where the property is absent and\n\t\t// the assignment is a harmless no-op.\n\t\t(this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector = '[data-slot=\"dropdown-menu\"]';\n\n\t\teffect(() => {\n\t\t\tupdateMenuPosition(this._cdkTrigger, this._menuPosition());\n\t\t});\n\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'hover:bg-muted aria-expanded:bg-muted rounded-sm px-2 py-1 text-sm font-medium flex items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n\t\t);\n\t}\n}\n","import { HlmMenubar } from './lib/hlm-menubar';\nimport { HlmMenubarTrigger } from './lib/hlm-menubar-trigger';\n\nexport * from './lib/hlm-menubar';\nexport * from './lib/hlm-menubar-token';\nexport * from './lib/hlm-menubar-trigger';\n\nexport const HlmMenubarImports = [HlmMenubar, HlmMenubarTrigger] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport type MessageAlign = 'start' | 'end';\n\n@Directive({\n\tselector: '[hlmMessage],hlm-message',\n\texportAs: 'hlmMessage',\n\thost: {\n\t\t'data-slot': 'message',\n\t\t'[attr.data-align]': 'align()',\n\t\t// Prevent the legacy HTML `align` attribute from forcing text-align.\n\t\t'[attr.align]': 'null',\n\t},\n})\nexport class HlmMessage {\n\tpublic readonly align = input<MessageAlign>('start');\n\n\tconstructor() {\n\t\tclasses(() => 'gap-2.5 text-sm group/message relative flex w-full min-w-0 data-[align=end]:flex-row-reverse');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageAvatar],hlm-message-avatar',\n\texportAs: 'hlmMessageAvatar',\n\thost: { 'data-slot': 'message-avatar' },\n})\nexport class HlmMessageAvatar {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'bg-muted min-w-9 rounded-full flex w-fit shrink-0 items-center justify-center self-end overflow-hidden group-has-data-[slot=message-footer]/message:-translate-y-8',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageContent],hlm-message-content',\n\texportAs: 'hlmMessageContent',\n\thost: { 'data-slot': 'message-content' },\n})\nexport class HlmMessageContent {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'gap-3 flex w-full min-w-0 flex-col wrap-break-word group-data-[align=end]/message:*:data-slot:self-end',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageFooter],hlm-message-footer',\n\texportAs: 'hlmMessageFooter',\n\thost: { 'data-slot': 'message-footer' },\n})\nexport class HlmMessageFooter {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-muted-foreground px-3.5 text-xs font-medium flex max-w-full min-w-0 items-center group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageGroup],hlm-message-group',\n\texportAs: 'hlmMessageGroup',\n\thost: { 'data-slot': 'message-group' },\n})\nexport class HlmMessageGroup {\n\tconstructor() {\n\t\tclasses(() => 'gap-2.5 flex min-w-0 flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageHeader],hlm-message-header',\n\texportAs: 'hlmMessageHeader',\n\thost: { 'data-slot': 'message-header' },\n})\nexport class HlmMessageHeader {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => 'text-muted-foreground px-3.5 text-xs font-medium flex max-w-full min-w-0 items-center group-has-data-[variant=ghost]/message:px-0',\n\t\t);\n\t}\n}\n","import { HlmMessage } from './lib/hlm-message';\nimport { HlmMessageAvatar } from './lib/hlm-message-avatar';\nimport { HlmMessageContent } from './lib/hlm-message-content';\nimport { HlmMessageFooter } from './lib/hlm-message-footer';\nimport { HlmMessageGroup } from './lib/hlm-message-group';\nimport { HlmMessageHeader } from './lib/hlm-message-header';\n\nexport * from './lib/hlm-message';\nexport * from './lib/hlm-message-avatar';\nexport * from './lib/hlm-message-content';\nexport * from './lib/hlm-message-footer';\nexport * from './lib/hlm-message-group';\nexport * from './lib/hlm-message-header';\n\nexport const HlmMessageImports = [\n\tHlmMessage,\n\tHlmMessageAvatar,\n\tHlmMessageContent,\n\tHlmMessageFooter,\n\tHlmMessageGroup,\n\tHlmMessageHeader,\n] as const;\n","import { Directive } from '@angular/core';\nimport { BrnMessageScrollerRoot } from '@spartan-ng/brain/message-scroller';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageScroller],hlm-message-scroller',\n\texportAs: 'hlmMessageScroller',\n\thostDirectives: [{ directive: BrnMessageScrollerRoot }],\n\thost: {\n\t\t'data-slot': 'message-scroller',\n\t},\n})\nexport class HlmMessageScroller {\n\tconstructor() {\n\t\tclasses(() => 'group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideArrowDown } from '@ng-icons/lucide';\nimport { BrnMessageScrollerButton } from '@spartan-ng/brain/message-scroller';\nimport { HlmButton, provideBrnButtonConfig } from '../../button';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector -- attribute selector on native button\n\tselector: 'button[hlmMessageScrollerButton]',\n\texportAs: 'hlmMessageScrollerButton',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideArrowDown }), provideBrnButtonConfig({ variant: 'secondary', size: 'icon-sm' })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{ directive: HlmButton, inputs: ['variant', 'size'] },\n\t\t{\n\t\t\tdirective: BrnMessageScrollerButton,\n\t\t\tinputs: ['direction', 'behavior', 'aria-label'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'message-scroller-button',\n\t},\n\ttemplate: `\n\t\t<ng-icon name=\"lucideArrowDown\" />\n\t\t<span class=\"sr-only\">{{ _brn.resolvedAriaLabel() }}</span>\n\t`,\n})\nexport class HlmMessageScrollerButton {\n\tprivate readonly _button = inject(HlmButton);\n\tprotected readonly _brn = inject(BrnMessageScrollerButton);\n\n\tconstructor() {\n\t\tthis._button.setClass(\n\t\t\t'absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_ng-icon]:rotate-180',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnMessageScrollerContent } from '@spartan-ng/brain/message-scroller';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageScrollerContent],hlm-message-scroller-content',\n\texportAs: 'hlmMessageScrollerContent',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnMessageScrollerContent,\n\t\t\tinputs: ['aria-relevant', 'spacerClassName'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'message-scroller-content',\n\t},\n})\nexport class HlmMessageScrollerContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-8 flex h-max min-h-full flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnMessageScrollerItem } from '@spartan-ng/brain/message-scroller';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageScrollerItem],hlm-message-scroller-item',\n\texportAs: 'hlmMessageScrollerItem',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnMessageScrollerItem,\n\t\t\tinputs: ['messageId', 'scrollAnchor'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'message-scroller-item',\n\t},\n})\nexport class HlmMessageScrollerItem {\n\tconstructor() {\n\t\tclasses(() => 'min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnMessageScrollerProvider } from '@spartan-ng/brain/message-scroller';\n\n@Directive({\n\tselector: '[hlmMessageScrollerProvider]',\n\texportAs: 'hlmMessageScrollerProvider',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnMessageScrollerProvider,\n\t\t\tinputs: ['autoScroll', 'defaultScrollPosition', 'scrollEdgeThreshold', 'scrollPreviousItemPeek', 'scrollMargin'],\n\t\t},\n\t],\n\thost: {\n\t\t// Match React's Provider (no layout box) so height:100% on the scroller\n\t\t// resolves against the real parent (e.g. card content), not this wrapper.\n\t\t// Inline style — don't depend on a Tailwind `contents` utility being generated.\n\t\tstyle: 'display: contents',\n\t},\n})\nexport class HlmMessageScrollerProvider {}\n","import { Directive } from '@angular/core';\nimport { BrnMessageScrollerViewport } from '@spartan-ng/brain/message-scroller';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmMessageScrollerViewport],hlm-message-scroller-viewport',\n\texportAs: 'hlmMessageScrollerViewport',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnMessageScrollerViewport,\n\t\t\tinputs: ['preserveScrollOnPrepend', 'aria-label', 'tabindex'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'message-scroller-viewport',\n\t},\n})\nexport class HlmMessageScrollerViewport {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'scroll-fade-b size-full min-h-0 min-w-0 scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent',\n\t\t);\n\t}\n}\n","import { HlmMessageScroller } from './lib/hlm-message-scroller';\nimport { HlmMessageScrollerButton } from './lib/hlm-message-scroller-button';\nimport { HlmMessageScrollerContent } from './lib/hlm-message-scroller-content';\nimport { HlmMessageScrollerItem } from './lib/hlm-message-scroller-item';\nimport { HlmMessageScrollerProvider } from './lib/hlm-message-scroller-provider';\nimport { HlmMessageScrollerViewport } from './lib/hlm-message-scroller-viewport';\n\nexport * from './lib/hlm-message-scroller';\nexport * from './lib/hlm-message-scroller-button';\nexport * from './lib/hlm-message-scroller-content';\nexport * from './lib/hlm-message-scroller-item';\nexport * from './lib/hlm-message-scroller-provider';\nexport * from './lib/hlm-message-scroller-viewport';\n\nexport const HlmMessageScrollerImports = [\n\tHlmMessageScrollerProvider,\n\tHlmMessageScroller,\n\tHlmMessageScrollerViewport,\n\tHlmMessageScrollerContent,\n\tHlmMessageScrollerItem,\n\tHlmMessageScrollerButton,\n] as const;\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tforwardRef,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\toutput,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { classes, hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\nexport const HLM_NATIVE_SELECT_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmNativeSelect),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'hlm-native-select',\n\texportAs: 'hlmNativeSelect',\n\timports: [NgIcon],\n\tproviders: [\n\t\tHLM_NATIVE_SELECT_VALUE_ACCESSOR,\n\t\tprovideIcons({ lucideChevronDown }),\n\t\tprovideBrnLabelable(HlmNativeSelect),\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [BrnFieldControl],\n\thost: {\n\t\t'data-slot': 'native-select-wrapper',\n\t\t'[attr.data-size]': 'size()',\n\t},\n\ttemplate: `\n\t\t<select\n\t\t\tdata-slot=\"native-select\"\n\t\t\t[id]=\"selectId()\"\n\t\t\t[class]=\"_computedSelectClass()\"\n\t\t\t[attr.data-size]=\"size()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid() ? 'true' : null\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n\t\t\t[attr.data-touched]=\"_touched?.() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n\t\t\t[value]=\"value()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t(change)=\"_valueChanged($event)\"\n\t\t\t(blur)=\"_blur()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</select>\n\n\t\t<ng-icon\n\t\t\tname=\"lucideChevronDown\"\n\t\t\t[class]=\"_computedSelectIconClass()\"\n\t\t\taria-hidden=\"true\"\n\t\t\tdata-slot=\"native-select-icon\"\n\t\t/>\n\t`,\n})\nexport class HlmNativeSelect implements ControlValueAccessor {\n\tprivate readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\n\tprivate static _id = 0;\n\n\tpublic readonly selectId = input<string>(`hlm-native-select-${HlmNativeSelect._id++}`);\n\n\tpublic readonly selectClass = input<ClassValue>('');\n\n\tprotected readonly _computedSelectClass = computed(() =>\n\t\thlm(\n\t\t\t'border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent py-1 ps-2.5 pe-8 text-sm shadow-xs transition-[color,box-shadow] select-none focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=sm]:h-8 outline-none disabled:pointer-events-none disabled:cursor-not-allowed',\n\t\t\tthis.selectClass(),\n\t\t),\n\t);\n\n\tpublic readonly selectIconClass = input<ClassValue>('');\n\n\tprotected readonly _computedSelectIconClass = computed(() =>\n\t\thlm('text-muted-foreground end-2.5 top-1/2 -translate-y-1/2 text-[length:--spacing(4)] pointer-events-none absolute select-none', this.selectIconClass()),\n\t);\n\n\tpublic readonly size = input<'sm' | 'default'>('default');\n\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\t/** Whether to force the input into an invalid state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Manual override for aria-invalid. When not set, auto-detects from the parent autocomplete error state. */\n\tpublic readonly ariaInvalidInput = input<boolean | undefined, BooleanInput>(undefined, {\n\t\ttransform: (v: BooleanInput) => (v === '' || v === undefined ? undefined : booleanAttribute(v)),\n\t\talias: 'aria-invalid',\n\t});\n\n\tprotected readonly _ariaInvalid = computed(() => this.ariaInvalidInput() ?? this._invalid?.());\n\n\tpublic readonly valueInput = input<string | undefined | null>('', { alias: 'value' });\n\tpublic readonly value = linkedSignal(this.valueInput);\n\n\tpublic readonly valueChange = output<string | undefined | null>();\n\n\tprotected _onChange?: ChangeFn<string | undefined | null>;\n\tprotected _onTouched?: TouchFn;\n\n\tpublic readonly labelableId = this.selectId;\n\n\tprotected readonly _invalid = this._fieldControl?.invalid;\n\tprotected readonly _touched = this._fieldControl?.touched;\n\tprotected readonly _dirty = this._fieldControl?.dirty;\n\tprotected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\n\tconstructor() {\n\t\tclasses(() => 'group/native-select relative w-fit has-[select:disabled]:opacity-50');\n\t}\n\n\tprotected _valueChanged(event: Event): void {\n\t\tconst value = (event.target as HTMLSelectElement).value;\n\t\tthis.value.set(value);\n\t\tthis.valueChange.emit(value);\n\t\tthis._onChange?.(value);\n\t\tthis._onTouched?.();\n\t}\n\n\tprotected _blur(): void {\n\t\tthis._onTouched?.();\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\tpublic writeValue(value: string | undefined | null): void {\n\t\tthis.value.set(value);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<string | undefined | null>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'optgroup[hlmNativeSelectOptGroup]',\n\texportAs: 'hlmNativeSelectOptGroup',\n\thost: { 'data-slot': 'native-select-optgroup' },\n})\nexport class HlmNativeSelectOptGroup {\n\tconstructor() {\n\t\tclasses(() => 'bg-[Canvas] text-[CanvasText]');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'option[hlmNativeSelectOption]',\n\texportAs: 'hlmNativeSelectOption',\n\thost: { 'data-slot': 'native-select-option' },\n})\nexport class HlmNativeSelectOption {\n\tconstructor() {\n\t\tclasses(() => 'bg-[Canvas] text-[CanvasText]');\n\t}\n}\n","import { HlmNativeSelect } from './lib/hlm-native-select';\nimport { HlmNativeSelectOptGroup } from './lib/hlm-native-select-opt-group';\nimport { HlmNativeSelectOption } from './lib/hlm-native-select-option';\n\nexport * from './lib/hlm-native-select';\nexport * from './lib/hlm-native-select-opt-group';\nexport * from './lib/hlm-native-select-option';\n\nexport const HlmNativeSelectImports = [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup] as const;\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmPagination],hlm-pagination',\n\texportAs: 'hlmPagination',\n\thost: {\n\t\t'data-slot': 'pagination',\n\t\trole: 'navigation',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t},\n})\nexport class HlmPagination {\n\t/** The aria-label for the pagination component. */\n\tpublic readonly ariaLabel = input<string>('pagination', { alias: 'aria-label' });\n\n\tconstructor() {\n\t\tclasses(() => 'mx-auto flex w-full justify-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'ul[hlmPaginationContent]',\n\texportAs: 'hlmPaginationContent',\n\thost: { 'data-slot': 'pagination-content' },\n})\nexport class HlmPaginationContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-1 flex items-center');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideEllipsis } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-pagination-ellipsis',\n\texportAs: 'hlmPaginationEllipsis',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideEllipsis })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'pagination-ellipsis' },\n\ttemplate: `\n\t\t<ng-icon name=\"lucideEllipsis\" />\n\t\t<span class=\"sr-only\">{{ srOnlyText() }}</span>\n\t`,\n})\nexport class HlmPaginationEllipsis {\n\t/** Screen reader only text for the ellipsis */\n\tpublic readonly srOnlyText = input<string>('More pages');\n\n\tconstructor() {\n\t\tclasses(() => \"size-9 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center justify-center\");\n\t}\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n\tselector: 'li[hlmPaginationItem]',\n\texportAs: 'hlmPaginationItem',\n\thost: { 'data-slot': 'pagination-item' },\n})\nexport class HlmPaginationItem {}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { buttonVariants, type ButtonVariants } from '../../button';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmPaginationLink]',\n\texportAs: 'hlmPaginationLink',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: RouterLink,\n\t\t\tinputs: [\n\t\t\t\t'target',\n\t\t\t\t'queryParams',\n\t\t\t\t'fragment',\n\t\t\t\t'queryParamsHandling',\n\t\t\t\t'state',\n\t\t\t\t'info',\n\t\t\t\t'relativeTo',\n\t\t\t\t'preserveFragment',\n\t\t\t\t'skipLocationChange',\n\t\t\t\t'replaceUrl',\n\t\t\t\t'routerLink: link',\n\t\t\t],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'pagination-link',\n\t\t'[attr.data-active]': 'isActive() ? \"true\" : null',\n\t\t'[attr.aria-current]': 'isActive() ? \"page\" : null',\n\t},\n})\nexport class HlmPaginationLink {\n\t/** Whether the link is active (i.e., the current page). */\n\tpublic readonly isActive = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\t/** The size of the button. */\n\tpublic readonly size = input<ButtonVariants['size']>('icon');\n\t/** The link to navigate to the page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'relative',\n\t\t\tbuttonVariants({\n\t\t\t\tvariant: this.isActive() ? 'outline' : 'ghost',\n\t\t\t\tsize: this.size(),\n\t\t\t}),\n\t\t\tthis.link() === undefined && 'cursor-pointer',\n\t\t]);\n\t}\n}\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport interface HlmPaginationConfig {\n\ttotalItemsLabel: string;\n\tpagesLabel: string;\n\tpreviousLabel: string;\n\tpreviousAriaLabel: string;\n\tnextLabel: string;\n\tnextAriaLabel: string;\n}\n\nconst defaultConfig: HlmPaginationConfig = {\n\ttotalItemsLabel: 'total items',\n\tpagesLabel: 'pages',\n\tnextLabel: 'Next',\n\tnextAriaLabel: 'Go to next page',\n\tpreviousLabel: 'Previous',\n\tpreviousAriaLabel: 'Go to previous page',\n};\n\nconst HlmPaginationConfigToken = new InjectionToken<HlmPaginationConfig>('HlmPaginationConfig');\n\nexport function provideHlmPaginationConfig(config: Partial<HlmPaginationConfig>): ValueProvider {\n\treturn { provide: HlmPaginationConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmPaginationConfig(): HlmPaginationConfig {\n\treturn inject(HlmPaginationConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { RouterLink } from '@angular/router';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronRight } from '@ng-icons/lucide';\nimport type { ButtonVariants } from '../../button';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmPaginationLink } from './hlm-pagination-link';\nimport { injectHlmPaginationConfig } from './hlm-pagination.token';\n\n@Component({\n\tselector: 'hlm-pagination-next',\n\texportAs: 'hlmPaginationNext',\n\timports: [HlmPaginationLink, NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<a\n\t\t\thlmPaginationLink\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[link]=\"link()\"\n\t\t\t[queryParams]=\"queryParams()\"\n\t\t\t[queryParamsHandling]=\"queryParamsHandling()\"\n\t\t\t[size]=\"_size()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t>\n\t\t\t<span [class]=\"_labelClass()\">{{ text() }}</span>\n\t\t\t<ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n\t\t</a>\n\t`,\n})\nexport class HlmPaginationNext {\n\tprivate readonly _config = injectHlmPaginationConfig();\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\t/** The link to navigate to the next page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\t/** The query parameters to pass to the next page. */\n\tpublic readonly queryParams = input<RouterLink['queryParams']>();\n\t/** How to handle query parameters when navigating to the next page. */\n\tpublic readonly queryParamsHandling = input<RouterLink['queryParamsHandling']>();\n\n\t/** The aria-label for the next page link. */\n\tpublic readonly ariaLabel = input<string>(this._config.nextAriaLabel, { alias: 'aria-label' });\n\t/** The text to display for the next page link. */\n\tpublic readonly text = input<string>(this._config.nextLabel);\n\t/** Whether the button should only display the icon. */\n\tpublic readonly iconOnly = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tprotected readonly _labelClass = computed(() => (this.iconOnly() ? 'sr-only' : 'hidden sm:block'));\n\n\tprotected readonly _size = computed<ButtonVariants['size']>(() => (this.iconOnly() ? 'icon' : 'default'));\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(!this.iconOnly() && 'pe-2!', this.userClass()),\n\t);\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { RouterLink } from '@angular/router';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft } from '@ng-icons/lucide';\nimport type { ButtonVariants } from '../../button';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmPaginationLink } from './hlm-pagination-link';\nimport { injectHlmPaginationConfig } from './hlm-pagination.token';\n\n@Component({\n\tselector: 'hlm-pagination-previous',\n\texportAs: 'hlmPaginationPrevious',\n\timports: [HlmPaginationLink, NgIcon],\n\tproviders: [provideIcons({ lucideChevronLeft })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<a\n\t\t\thlmPaginationLink\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[link]=\"link()\"\n\t\t\t[queryParams]=\"queryParams()\"\n\t\t\t[queryParamsHandling]=\"queryParamsHandling()\"\n\t\t\t[size]=\"_size()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t>\n\t\t\t<ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n\t\t\t<span [class]=\"_labelClass()\">{{ text() }}</span>\n\t\t</a>\n\t`,\n})\nexport class HlmPaginationPrevious {\n\tprivate readonly _config = injectHlmPaginationConfig();\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\t/** The link to navigate to the previous page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\t/** The query parameters to pass to the previous page. */\n\tpublic readonly queryParams = input<RouterLink['queryParams']>();\n\t/** How to handle query parameters when navigating to the previous page. */\n\tpublic readonly queryParamsHandling = input<RouterLink['queryParamsHandling']>();\n\n\t/** The aria-label for the previous page link. */\n\tpublic readonly ariaLabel = input<string>(this._config.previousAriaLabel, { alias: 'aria-label' });\n\t/** The text to display for the previous page link. */\n\tpublic readonly text = input<string>(this._config.previousLabel);\n\t/** Whether the button should only display the icon. */\n\tpublic readonly iconOnly = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tprotected readonly _labelClass = computed(() =>\n\t\thlm(this.iconOnly() ? 'sr-only' : 'hidden sm:block'),\n\t);\n\n\tprotected readonly _size = computed<ButtonVariants['size']>(() => (this.iconOnly() ? 'icon' : 'default'));\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(!this.iconOnly() && 'ps-2!', this.userClass()),\n\t);\n}\n","import { HlmPagination } from './lib/hlm-pagination';\nimport { HlmPaginationContent } from './lib/hlm-pagination-content';\nimport { HlmPaginationEllipsis } from './lib/hlm-pagination-ellipsis';\nimport { HlmPaginationItem } from './lib/hlm-pagination-item';\nimport { HlmPaginationLink } from './lib/hlm-pagination-link';\nimport { HlmPaginationNext } from './lib/hlm-pagination-next';\nimport { HlmPaginationPrevious } from './lib/hlm-pagination-previous';\n\nexport * from './lib/hlm-pagination';\nexport * from './lib/hlm-pagination-content';\nexport * from './lib/hlm-pagination-ellipsis';\nexport * from './lib/hlm-pagination-item';\nexport * from './lib/hlm-pagination-link';\nexport * from './lib/hlm-pagination-next';\nexport * from './lib/hlm-pagination-previous';\nexport * from './lib/hlm-pagination.token';\n\nexport const HlmPaginationImports = [\n\tHlmPagination,\n\tHlmPaginationContent,\n\tHlmPaginationItem,\n\tHlmPaginationLink,\n\tHlmPaginationPrevious,\n\tHlmPaginationNext,\n\tHlmPaginationEllipsis,\n] as const;\n","import { Directive } from '@angular/core';\nimport { BrnProgress } from '@spartan-ng/brain/progress';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'hlm-progress,[hlmProgress]',\n\texportAs: 'hlmProgress',\n\thostDirectives: [{ directive: BrnProgress, inputs: ['value', 'max', 'getValueLabel'] }],\n\thost: { 'data-slot': 'progress' },\n})\nexport class HlmProgress {\n\tconstructor() {\n\t\tclasses(() => 'bg-muted h-1.5 rounded-full relative inline-flex w-full overflow-hidden');\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Directive, computed, inject } from '@angular/core';\nimport { BrnProgressIndicator, injectBrnProgress } from '@spartan-ng/brain/progress';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmProgressIndicator],hlm-progress-indicator',\n\texportAs: 'hlmProgressIndicator',\n\thostDirectives: [BrnProgressIndicator],\n\thost: {\n\t\t'data-slot': 'progress-indicator',\n\t\t'[class.animate-indeterminate]': '_indeterminate()',\n\t\t'[style.transform]': '_transform()',\n\t},\n})\nexport class HlmProgressIndicator {\n\tprivate readonly _progress = injectBrnProgress();\n\tprivate readonly _dir = inject(Directionality);\n\t// Offset the indicator by the unfilled remainder. In RTL the bar fills from the inline-start\n\t// (visually the right), so translate the opposite way to keep the fill on the correct side.\n\tprotected readonly _transform = computed(() => {\n\t\tconst offset = 100 - (this._progress.value() ?? 100);\n\t\treturn `translateX(${this._dir.valueSignal() === 'rtl' ? '' : '-'}${offset}%)`;\n\t});\n\tprotected readonly _indeterminate = computed(\n\t\t() => this._progress.value() === null || this._progress.value() === undefined,\n\t);\n\n\tconstructor() {\n\t\tclasses(() => 'bg-primary h-full w-full flex-1 transition-all');\n\t}\n}\n","import { HlmProgress } from './lib/hlm-progress';\nimport { HlmProgressIndicator } from './lib/hlm-progress-indicator';\n\nexport * from './lib/hlm-progress';\nexport * from './lib/hlm-progress-indicator';\n\nexport const HlmProgressImports = [HlmProgress, HlmProgressIndicator] as const;\n","import { Directive } from '@angular/core';\nimport { BrnQuestionnaire } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'form[hlmQuestionnaire]',\n\texportAs: 'hlmQuestionnaire',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaire,\n\t\t\tinputs: ['items', 'defaultItem', 'item', 'shortcuts', 'noValidate'],\n\t\t\toutputs: ['itemChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire',\n\t},\n})\nexport class HlmQuestionnaire {\n\tconstructor() {\n\t\tclasses(() => 'gap-6 flex w-full min-w-0 flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmQuestionnaireActions],hlm-questionnaire-actions',\n\texportAs: 'hlmQuestionnaireActions',\n\thost: {\n\t\t'data-slot': 'questionnaire-actions',\n\t},\n})\nexport class HlmQuestionnaireActions {\n\tconstructor() {\n\t\tclasses(() => 'min-h-11 gap-2 sm:min-h-9 grid w-full grid-cols-[minmax(0,1fr)_auto_auto] items-center');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport {\n\tBrnQuestionnaireChoice,\n\tBrnQuestionnaireChoiceInput,\n\tBrnQuestionnaireChoiceLabel,\n\tBrnQuestionnaireChoiceShortcut,\n} from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector -- attribute selector on native label\n\tselector: 'label[hlmQuestionnaireChoice]',\n\texportAs: 'hlmQuestionnaireChoice',\n\timports: [BrnQuestionnaireChoiceInput, BrnQuestionnaireChoiceLabel, BrnQuestionnaireChoiceShortcut, NgIcon],\n\tviewProviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireChoice,\n\t\t\tinputs: ['value', 'disabled', 'defaultChecked', 'checked'],\n\t\t\toutputs: ['checkedChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-choice',\n\t},\n\ttemplate: `\n\t\t<input\n\t\t\tbrnQuestionnaireChoiceInput\n\t\t\tdata-slot=\"questionnaire-choice-input\"\n\t\t\tclass=\"absolute inset-0 z-10 size-full cursor-pointer opacity-0\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" data-slot=\"questionnaire-choice-indicator\" class=\"border-input group-data-checked/questionnaire-choice:border-primary group-data-checked/questionnaire-choice:bg-primary group-data-checked/questionnaire-choice:text-primary-foreground dark:bg-input/30 dark:group-data-checked/questionnaire-choice:bg-primary pointer-events-none relative flex size-4 shrink-0 translate-y-[--spacing(0.45)] items-center justify-center rounded-[4px] border group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5 group-data-[type=radio]/questionnaire-choice:rounded-full\">\n\t\t\t@if (_choice.checked() && _choice.type() === 'radio') {\n\t\t\t\t<span data-slot=\"questionnaire-choice-indicator-dot\" class=\"bg-primary-foreground size-2 rounded-full\"></span>\n\t\t\t}\n\t\t\t@if (_choice.checked() && _choice.type() === 'checkbox') {\n\t\t\t\t<ng-icon\n\t\t\t\t\tname=\"lucideCheck\"\n\t\t\t\t\tdata-slot=\"questionnaire-choice-indicator-check\"\n\t\t\t\t\tclass=\"text-[length:--spacing(3.5)]\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</span>\n\t\t<span\n\t\t\tbrnQuestionnaireChoiceLabel\n\t\t\tdata-slot=\"questionnaire-choice-label\"\n\t\t\tclass=\"gap-1 flex min-w-0 flex-1 flex-col leading-snug\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</span>\n\t\t@if (_choice.shortcut(); as shortcut) {\n\t\t\t<span\n\t\t\t\tbrnQuestionnaireChoiceShortcut\n\t\t\t\tdata-slot=\"questionnaire-choice-shortcut\"\n\t\t\t\tclass=\"border-input bg-background text-muted-foreground pointer-events-none ms-auto inline-flex size-5 shrink-0 translate-y-[--spacing(0.45)] items-center justify-center rounded-md border font-mono text-[0.625rem] leading-none font-medium shadow-xs group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5\"\n\t\t\t>\n\t\t\t\t{{ shortcut }}\n\t\t\t</span>\n\t\t}\n\t`,\n})\nexport class HlmQuestionnaireChoice {\n\tprotected readonly _choice = inject(BrnQuestionnaireChoice);\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'border-input hover:bg-muted/50 has-[>input:focus-visible]:border-ring has-[>input:focus-visible]:ring-ring/50 data-invalid:border-destructive dark:bg-input/20 data-checked:border-primary/40 data-checked:bg-muted dark:data-checked:bg-muted gap-3 rounded-md border bg-transparent px-4 py-3.5 text-sm shadow-xs transition-colors has-[>input:focus-visible]:ring-3 data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 group/questionnaire-choice relative flex min-h-11 cursor-pointer items-start text-start outline-none select-none',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmQuestionnaireChoiceDescription]',\n\texportAs: 'hlmQuestionnaireChoiceDescription',\n\thost: {\n\t\t'data-slot': 'questionnaire-choice-description',\n\t},\n})\nexport class HlmQuestionnaireChoiceDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnQuestionnaireChoices } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmQuestionnaireChoices]',\n\texportAs: 'hlmQuestionnaireChoices',\n\thostDirectives: [{ directive: BrnQuestionnaireChoices }],\n\thost: {\n\t\t'data-slot': 'questionnaire-choices',\n\t},\n})\nexport class HlmQuestionnaireChoices {\n\tconstructor() {\n\t\tclasses(() => 'gap-3 group/questionnaire-choices grid min-w-0');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnQuestionnaireDescription } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmQuestionnaireDescription]',\n\texportAs: 'hlmQuestionnaireDescription',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireDescription,\n\t\t\tinputs: ['id'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-description',\n\t},\n})\nexport class HlmQuestionnaireDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-sm text-muted-foreground text-pretty');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { BrnQuestionnaireError } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector -- attribute selector matching brain API\n\tselector: '[hlmQuestionnaireError]',\n\texportAs: 'hlmQuestionnaireError',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireError,\n\t\t\tinputs: ['id', 'requiredMessage', 'optionalMessage'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-error',\n\t},\n\ttemplate: `\n\t\t{{ message() ?? _error.defaultMessage() }}\n\t`,\n})\nexport class HlmQuestionnaireError {\n\tprotected readonly _error = inject(BrnQuestionnaireError);\n\n\t/** Custom error copy; falls back to the built-in required/optional message when unset. */\n\tpublic readonly message = input<string | undefined>(undefined);\n\n\tconstructor() {\n\t\tclasses(() => 'text-sm text-destructive');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnQuestionnaireInput } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'input[hlmQuestionnaireInput]',\n\texportAs: 'hlmQuestionnaireInput',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireInput,\n\t\t\tinputs: ['type', 'disabled', 'value', 'defaultValue'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-input',\n\t},\n})\nexport class HlmQuestionnaireInput {\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs focus-visible:ring-3 aria-invalid:ring-3 md:text-sm min-h-11 w-full min-w-0 transition-[color,box-shadow,background-color] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 sm:min-h-0',\n\t\t\t'selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnQuestionnaireItem } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'fieldset[hlmQuestionnaireItem]',\n\texportAs: 'hlmQuestionnaireItem',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireItem,\n\t\t\tinputs: ['name', 'multiple', 'required', 'disabled', 'itemInvalid', 'aria-describedby', 'aria-keyshortcuts'],\n\t\t\toutputs: ['statusChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-item',\n\t},\n})\nexport class HlmQuestionnaireItem {\n\tconstructor() {\n\t\tclasses(() => 'gap-5 flex min-w-0 flex-col border-0 p-0 outline-none');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnQuestionnaireNext } from '@spartan-ng/brain/questionnaire';\nimport { type ButtonVariants, buttonVariants } from '../../button';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmQuestionnaireNext]',\n\texportAs: 'hlmQuestionnaireNext',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireNext,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-next',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmQuestionnaireNext {\n\tpublic readonly variant = input<ButtonVariants['variant']>('default');\n\tpublic readonly size = input<ButtonVariants['size']>('default');\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\tbuttonVariants({ variant: this.variant(), size: this.size() }),\n\t\t\t'col-start-3 row-start-1 min-h-11 justify-self-end sm:min-h-0',\n\t\t]);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnQuestionnairePrevious } from '@spartan-ng/brain/questionnaire';\nimport { type ButtonVariants, buttonVariants } from '../../button';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmQuestionnairePrevious]',\n\texportAs: 'hlmQuestionnairePrevious',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnairePrevious,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-previous',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmQuestionnairePrevious {\n\tpublic readonly variant = input<ButtonVariants['variant']>('outline');\n\tpublic readonly size = input<ButtonVariants['size']>('default');\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\tbuttonVariants({ variant: this.variant(), size: this.size() }),\n\t\t\t'col-start-1 row-start-1 min-h-11 justify-self-start sm:min-h-0',\n\t\t]);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { BrnQuestionnaireProgress } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector -- attribute selector matching brain API\n\tselector: '[hlmQuestionnaireProgress]',\n\texportAs: 'hlmQuestionnaireProgress',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnQuestionnaireProgress, inputs: ['aria-label', 'valueText'] }],\n\thost: {\n\t\t'data-slot': 'questionnaire-progress',\n\t},\n\ttemplate: `\n\t\t<ng-content>\n\t\t\t{{ _progress.label() }}\n\t\t</ng-content>\n\t`,\n})\nexport class HlmQuestionnaireProgress {\n\tprotected readonly _progress = inject(BrnQuestionnaireProgress);\n\n\t/** The current step index (1-based within the active collection). */\n\tpublic readonly current = this._progress.current;\n\t/** The total number of enabled steps. */\n\tpublic readonly total = this._progress.total;\n\t/** Whether the current step is the first one. */\n\tpublic readonly first = this._progress.first;\n\t/** Whether the current step is the last one. */\n\tpublic readonly last = this._progress.last;\n\t/** The computed progression label, e.g. \"Question 2 of 5\". */\n\tpublic readonly label = this._progress.label;\n\n\t/** Boolean flags marking which segments of the progress bar are filled. */\n\tpublic readonly segments = this._progress.segments;\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => 'text-xs text-muted-foreground min-h-lh w-fit min-w-[14ch] font-medium tabular-nums',\n\t\t);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnQuestionnaireSkip } from '@spartan-ng/brain/questionnaire';\nimport { type ButtonVariants, buttonVariants } from '../../button';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmQuestionnaireSkip]',\n\texportAs: 'hlmQuestionnaireSkip',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireSkip,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-skip',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmQuestionnaireSkip {\n\tpublic readonly variant = input<ButtonVariants['variant']>('outline');\n\tpublic readonly size = input<ButtonVariants['size']>('default');\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\tbuttonVariants({ variant: this.variant(), size: this.size() }),\n\t\t\t'col-start-2 row-start-1 min-h-11 justify-self-end sm:min-h-0',\n\t\t]);\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnQuestionnaireSubmit } from '@spartan-ng/brain/questionnaire';\nimport { type ButtonVariants, buttonVariants } from '../../button';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmQuestionnaireSubmit]',\n\texportAs: 'hlmQuestionnaireSubmit',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnQuestionnaireSubmit,\n\t\t\tinputs: ['disabled'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'questionnaire-submit',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmQuestionnaireSubmit {\n\tpublic readonly variant = input<ButtonVariants['variant']>('default');\n\tpublic readonly size = input<ButtonVariants['size']>('default');\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\tbuttonVariants({ variant: this.variant(), size: this.size() }),\n\t\t\t'col-start-3 row-start-1 min-h-11 justify-self-end sm:min-h-0',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnQuestionnaireTitle } from '@spartan-ng/brain/questionnaire';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'legend[hlmQuestionnaireTitle]',\n\texportAs: 'hlmQuestionnaireTitle',\n\thostDirectives: [{ directive: BrnQuestionnaireTitle }],\n\thost: {\n\t\t'data-slot': 'questionnaire-title',\n\t},\n})\nexport class HlmQuestionnaireTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-base font-semibold [&:not(:has(~[data-slot=questionnaire-description]))]:mb-5 text-pretty');\n\t}\n}\n","import { HlmQuestionnaire } from './lib/hlm-questionnaire';\nimport { HlmQuestionnaireActions } from './lib/hlm-questionnaire-actions';\nimport { HlmQuestionnaireChoice } from './lib/hlm-questionnaire-choice';\nimport { HlmQuestionnaireChoiceDescription } from './lib/hlm-questionnaire-choice-description';\nimport { HlmQuestionnaireChoices } from './lib/hlm-questionnaire-choices';\nimport { HlmQuestionnaireDescription } from './lib/hlm-questionnaire-description';\nimport { HlmQuestionnaireError } from './lib/hlm-questionnaire-error';\nimport { HlmQuestionnaireInput } from './lib/hlm-questionnaire-input';\nimport { HlmQuestionnaireItem } from './lib/hlm-questionnaire-item';\nimport { HlmQuestionnaireNext } from './lib/hlm-questionnaire-next';\nimport { HlmQuestionnairePrevious } from './lib/hlm-questionnaire-previous';\nimport { HlmQuestionnaireProgress } from './lib/hlm-questionnaire-progress';\nimport { HlmQuestionnaireSkip } from './lib/hlm-questionnaire-skip';\nimport { HlmQuestionnaireSubmit } from './lib/hlm-questionnaire-submit';\nimport { HlmQuestionnaireTitle } from './lib/hlm-questionnaire-title';\n\nexport * from './lib/hlm-questionnaire';\nexport * from './lib/hlm-questionnaire-actions';\nexport * from './lib/hlm-questionnaire-choice';\nexport * from './lib/hlm-questionnaire-choice-description';\nexport * from './lib/hlm-questionnaire-choices';\nexport * from './lib/hlm-questionnaire-description';\nexport * from './lib/hlm-questionnaire-error';\nexport * from './lib/hlm-questionnaire-input';\nexport * from './lib/hlm-questionnaire-item';\nexport * from './lib/hlm-questionnaire-next';\nexport * from './lib/hlm-questionnaire-previous';\nexport * from './lib/hlm-questionnaire-progress';\nexport * from './lib/hlm-questionnaire-skip';\nexport * from './lib/hlm-questionnaire-submit';\nexport * from './lib/hlm-questionnaire-title';\n\nexport const HlmQuestionnaireImports = [\n\tHlmQuestionnaire,\n\tHlmQuestionnaireProgress,\n\tHlmQuestionnaireItem,\n\tHlmQuestionnaireTitle,\n\tHlmQuestionnaireDescription,\n\tHlmQuestionnaireChoices,\n\tHlmQuestionnaireChoice,\n\tHlmQuestionnaireChoiceDescription,\n\tHlmQuestionnaireInput,\n\tHlmQuestionnaireError,\n\tHlmQuestionnaireActions,\n\tHlmQuestionnairePrevious,\n\tHlmQuestionnaireSkip,\n\tHlmQuestionnaireNext,\n\tHlmQuestionnaireSubmit,\n] as const;\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tDOCUMENT,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\toutput,\n\tPLATFORM_ID,\n\tRenderer2,\n} from '@angular/core';\nimport { BrnRadio, BrnRadioGroup, type BrnRadioChange } from '@spartan-ng/brain/radio-group';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-radio',\n\texportAs: 'hlmRadio',\n\timports: [BrnRadio],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.data-disabled]': 'disabled() ? \"\" : null',\n\t\t'data-slot': 'radio-group-item',\n\t},\n\ttemplate: `\n\t\t<brn-radio\n\t\t\t[id]=\"inputId()\"\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[value]=\"value()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid() ? 'true' : null\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty() ? 'true' : null\"\n\t\t\t[attr.data-touched]=\"_touched() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_groupSpartanInvalid() ? 'true' : null\"\n\t\t\t[aria-label]=\"ariaLabel()\"\n\t\t\t[aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[aria-describedby]=\"ariaDescribedby()\"\n\t\t\t(change)=\"change.emit($event)\"\n\t\t>\n\t\t\t<ng-content select=\"[target],[indicator],hlm-radio-indicator\" indicator />\n\t\t\t<ng-content />\n\t\t</brn-radio>\n\t`,\n})\nexport class HlmRadio<T = unknown> {\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\tprivate readonly _radioGroup = inject(BrnRadioGroup, { optional: true });\n\n\tprotected readonly _ariaInvalid = computed(() => this._radioGroup?.controlState?.()?.invalid);\n\n\tprotected readonly _touched = computed(() => this._radioGroup?.controlState?.()?.touched);\n\tprotected readonly _dirty = computed(() => this._radioGroup?.controlState?.()?.dirty);\n\tprotected readonly _groupSpartanInvalid = computed(() => this._radioGroup?.controlState?.()?.spartanInvalid);\n\n\tprotected readonly _errorStateClass = computed(() => (this._groupSpartanInvalid() ? 'text-destructive' : ''));\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'group relative flex items-center gap-x-3',\n\t\t\t'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50',\n\t\t\tthis.userClass(),\n\t\t\tthis._errorStateClass(),\n\t\t),\n\t);\n\n\t/** Used to set the id on the underlying brn element. */\n\tpublic readonly inputId = input<string | undefined>(undefined);\n\n\t/** Used to set the aria-label attribute on the underlying brn element. */\n\tpublic readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n\t/** Used to set the aria-labelledby attribute on the underlying brn element. */\n\tpublic readonly ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n\n\t/** Used to set the aria-describedby attribute on the underlying brn element. */\n\tpublic readonly ariaDescribedby = input<string | undefined>(undefined, { alias: 'aria-describedby' });\n\n\t/**\n\t * The value this radio button represents.\n\t */\n\tpublic readonly value = input.required<T>();\n\n\t/** Whether the checkbox is required. */\n\tpublic readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Whether the checkbox is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Event emitted when the checked state of this radio button changes.\n\t */\n\t// eslint-disable-next-line @angular-eslint/no-output-native\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst isDisabled = this.disabled();\n\n\t\t\tif (!this._elementRef.nativeElement || !this._isBrowser) return;\n\n\t\t\tconst labelElement =\n\t\t\t\tthis._elementRef.nativeElement.closest('label') ??\n\t\t\t\tthis._document.querySelector(`label[for=\"${this.inputId()}\"]`);\n\n\t\t\tif (!labelElement) return;\n\t\t\tthis._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');\n\t\t});\n\t}\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { BrnRadioGroup } from '@spartan-ng/brain/radio-group';\nimport { classes } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmRadioGroup],hlm-radio-group',\n\texportAs: 'hlmRadioGroup',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnRadioGroup,\n\t\t\tinputs: ['name', 'value', 'disabled', 'required'],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t\tBrnFieldControlDescribedBy,\n\t],\n\thost: {\n\t\t'data-slot': 'radio-group',\n\t\t'[attr.aria-invalid]': '_ariaInvalid() ? \"true\" : null',\n\t\t'[attr.data-invalid]': '_ariaInvalid() ? \"true\" : null',\n\t\t'[attr.data-dirty]': '_dirty() ? \"true\" : null',\n\t\t'[attr.data-touched]': '_touched() ? \"true\" : null',\n\t},\n})\nexport class HlmRadioGroup {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprivate readonly _brnRadioGroup = inject(BrnRadioGroup);\n\tprotected readonly _ariaInvalid = computed(() => this._brnRadioGroup.controlState?.()?.invalid);\n\n\tprotected readonly _touched = computed(() => this._brnRadioGroup.controlState?.()?.touched);\n\tprotected readonly _dirty = computed(() => this._brnRadioGroup.controlState?.()?.dirty);\n\n\tprotected readonly _errorState = computed(() => this._brnRadioGroup.controlState?.()?.spartanInvalid);\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'grid gap-3',\n\t\t\tthis.userClass(),\n\t\t\tthis._errorState() ? 'data-[invalid=true]:text-destructive' : '',\n\t\t]);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-radio-indicator',\n\texportAs: 'hlmRadioIndicator',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'radio-group-indicator',\n\t},\n\ttemplate: `\n\t\t<div class=\"group-data-[checked=true]:bg-primary size-2 rounded-full bg-transparent\"></div>\n\t`,\n})\nexport class HlmRadioIndicator {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'border-input text-primary group-has-[:focus-visible]:border-ring group-has-[:focus-visible]:ring-ring/50 dark:bg-input/30 group-data=[disabled=true]:cursor-not-allowed group-data=[disabled=true]:opacity-50 relative flex aspect-square size-4 shrink-0 items-center justify-center rounded-full border shadow-xs transition-[color,box-shadow] outline-none group-has-[:focus-visible]:ring-[3px]',\n\t\t);\n\t}\n}\n","import { HlmRadio } from './lib/hlm-radio';\nimport { HlmRadioGroup } from './lib/hlm-radio-group';\nimport { HlmRadioIndicator } from './lib/hlm-radio-indicator';\n\nexport * from './lib/hlm-radio';\nexport * from './lib/hlm-radio-group';\nexport * from './lib/hlm-radio-indicator';\n\nexport const HlmRadioGroupImports = [HlmRadioGroup, HlmRadio, HlmRadioIndicator] as const;\n","import { Directive } from '@angular/core';\nimport { BrnResizableGroup } from '@spartan-ng/brain/resizable';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmResizableGroup],hlm-resizable-group',\n\texportAs: 'hlmResizableGroup',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnResizableGroup,\n\t\t\tinputs: ['direction', 'layout'],\n\t\t\toutputs: ['dragEnd', 'dragStart', 'layoutChange'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'resizable-group',\n\t},\n})\nexport class HlmResizableGroup {\n\tconstructor() {\n\t\tclasses(() => 'group flex h-full w-full data-[panel-group-direction=vertical]:flex-col');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { BrnResizableHandle } from '@spartan-ng/brain/resizable';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-resizable-handle',\n\texportAs: 'hlmResizableHandle',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnResizableHandle, inputs: ['withHandle', 'disabled'] }],\n\thost: {\n\t\t'data-slot': 'resizable-handle',\n\t},\n\ttemplate: `\n\t\t@if (_brnResizableHandle.withHandle()) {\n\t\t\t<div class=\"bg-border h-6 w-1 rounded-lg z-10 flex shrink-0\"></div>\n\t\t}\n\t`,\n})\nexport class HlmResizableHandle {\n\tprotected readonly _brnResizableHandle = inject(BrnResizableHandle);\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'bg-border ring-offset-background focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90',\n\t\t\t'data-[panel-group-direction=horizontal]:hover:cursor-ew-resize data-[panel-group-direction=vertical]:hover:cursor-ns-resize',\n\t\t]);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnResizablePanel } from '@spartan-ng/brain/resizable';\n\n@Directive({\n\tselector: '[hlmResizablePanel],hlm-resizable-panel',\n\texportAs: 'hlmResizablePanel',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnResizablePanel,\n\t\t\tinputs: ['defaultSize', 'id', 'collapsible', 'maxSize', 'minSize'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'resizable-panel',\n\t},\n})\nexport class HlmResizablePanel {\n\tprivate readonly _resizablePanel = inject(BrnResizablePanel);\n\n\tpublic setSize(size: number) {\n\t\tthis._resizablePanel.setSize(size);\n\t}\n}\n","import { HlmResizableGroup } from './lib/hlm-resizable-group';\nimport { HlmResizableHandle } from './lib/hlm-resizable-handle';\nimport { HlmResizablePanel } from './lib/hlm-resizable-panel';\n\nexport * from './lib/hlm-resizable-group';\nexport * from './lib/hlm-resizable-handle';\nexport * from './lib/hlm-resizable-panel';\n\nexport const HlmResizableImports = [HlmResizableGroup, HlmResizablePanel, HlmResizableHandle] as const;\n","import { inject, InjectionToken, type ValueProvider } from '@angular/core';\n\nexport interface HlmSidebarConfig {\n\tdefaultOpen: boolean;\n\tsidebarWidth: string;\n\tsidebarWidthMobile: string;\n\tsidebarWidthIcon: string;\n\tsidebarCookieName: string;\n\tsidebarCookieMaxAge: number;\n\tsidebarKeyboardShortcut: string;\n\tmobileBreakpoint: string;\n\tcloseMobileSidebarOnMenuButtonClick: boolean;\n}\n\nconst defaultConfig: HlmSidebarConfig = {\n\tdefaultOpen: true,\n\tsidebarWidth: '16rem',\n\tsidebarWidthMobile: '18rem',\n\tsidebarWidthIcon: '3rem',\n\tsidebarCookieName: 'sidebar_state',\n\tsidebarCookieMaxAge: 60 * 60 * 24 * 7, // 7 days in seconds\n\tsidebarKeyboardShortcut: 'b',\n\tmobileBreakpoint: '768px',\n\tcloseMobileSidebarOnMenuButtonClick: false,\n};\n\nconst HlmSidebarConfigToken = new InjectionToken<HlmSidebarConfig>('HlmSidebarConfig');\n\nexport function provideHlmSidebarConfig(config: Partial<HlmSidebarConfig>): ValueProvider {\n\treturn { provide: HlmSidebarConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmSidebarConfig(): HlmSidebarConfig {\n\treturn inject(HlmSidebarConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n\tafterNextRender,\n\tcomputed,\n\tDestroyRef,\n\tDOCUMENT,\n\tinject,\n\tInjectable,\n\tPLATFORM_ID,\n\tREQUEST,\n\ttype Signal,\n\tsignal,\n} from '@angular/core';\nimport { injectHlmSidebarConfig } from './hlm-sidebar.token';\n\nexport type SidebarVariant = 'sidebar' | 'floating' | 'inset';\n\n@Injectable({ providedIn: 'root' })\nexport class HlmSidebarService {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _request = inject(REQUEST, { optional: true });\n\tprivate readonly _config = injectHlmSidebarConfig();\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _window = this._document.defaultView;\n\tprivate readonly _open = signal<boolean>(this._config.defaultOpen);\n\tprivate readonly _openMobile = signal<boolean>(false);\n\tprivate readonly _isMobile = signal<boolean>(false);\n\tprivate readonly _variant = signal<SidebarVariant>('sidebar');\n\tprivate _mediaQuery: MediaQueryList | null = null;\n\n\tpublic readonly open: Signal<boolean> = this._open.asReadonly();\n\tpublic readonly openMobile: Signal<boolean> = this._openMobile.asReadonly();\n\tpublic readonly isMobile: Signal<boolean> = this._isMobile.asReadonly();\n\tpublic readonly variant: Signal<SidebarVariant> = this._variant.asReadonly();\n\n\tpublic readonly state = computed<'expanded' | 'collapsed'>(() => (this._open() ? 'expanded' : 'collapsed'));\n\n\tconstructor() {\n\t\tconst destroyRef = inject(DestroyRef);\n\t\tthis.restoreStateFromCookie();\n\n\t\tafterNextRender(() => {\n\t\t\tif (!this._window || typeof this._window.matchMedia !== 'function') return;\n\n\t\t\t// Initialize MediaQueryList\n\t\t\tthis._mediaQuery = this._window.matchMedia(`(max-width: ${this._config.mobileBreakpoint})`);\n\t\t\tthis._isMobile.set(this._mediaQuery.matches);\n\n\t\t\t// Add media query listener\n\t\t\tconst mediaQueryHandler = (e: MediaQueryListEvent) => {\n\t\t\t\tthis._isMobile.set(e.matches);\n\t\t\t\t// If switching from mobile to desktop, close mobile sidebar\n\t\t\t\tif (!e.matches) this._openMobile.set(false);\n\t\t\t};\n\t\t\tthis._mediaQuery.addEventListener('change', mediaQueryHandler);\n\n\t\t\t// Add keyboard shortcut listener\n\t\t\tconst keydownHandler = (event: KeyboardEvent) => {\n\t\t\t\tif (event.key === this._config.sidebarKeyboardShortcut && (event.ctrlKey || event.metaKey)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.toggleSidebar();\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis._window.addEventListener('keydown', keydownHandler);\n\n\t\t\t// Add resize listener with debounce\n\t\t\tlet resizeTimeout: number;\n\t\t\tconst resizeHandler = () => {\n\t\t\t\tif (!this._window) return;\n\n\t\t\t\tif (resizeTimeout) this._window.clearTimeout(resizeTimeout);\n\t\t\t\tresizeTimeout = this._window.setTimeout(() => {\n\t\t\t\t\tif (this._mediaQuery) this._isMobile.set(this._mediaQuery.matches);\n\t\t\t\t}, 100);\n\t\t\t};\n\t\t\tthis._window.addEventListener('resize', resizeHandler);\n\n\t\t\t// Cleanup listeners on destroy\n\t\t\tdestroyRef.onDestroy(() => {\n\t\t\t\tif (!this._window) return;\n\n\t\t\t\tif (this._mediaQuery) this._mediaQuery.removeEventListener('change', mediaQueryHandler);\n\t\t\t\tthis._window.removeEventListener('keydown', keydownHandler);\n\t\t\t\tthis._window.removeEventListener('resize', resizeHandler);\n\t\t\t\tif (resizeTimeout) this._window.clearTimeout(resizeTimeout);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic setOpen(open: boolean): void {\n\t\tthis._open.set(open);\n\t\tthis._document.cookie = `${this._config.sidebarCookieName}=${open}; path=/; max-age=${this._config.sidebarCookieMaxAge}`;\n\t}\n\n\tpublic setOpenMobile(open: boolean): void {\n\t\tif (this._isMobile()) {\n\t\t\tthis._openMobile.set(open);\n\t\t}\n\t}\n\n\tpublic setVariant(variant: SidebarVariant): void {\n\t\tthis._variant.set(variant);\n\t}\n\n\tpublic toggleSidebar(): void {\n\t\tif (this._isMobile()) {\n\t\t\tthis._openMobile.update((value) => !value);\n\t\t} else {\n\t\t\tthis.setOpen(!this._open());\n\t\t}\n\t}\n\n\tprivate restoreStateFromCookie(): void {\n\t\tconst cookieString = isPlatformServer(this._platformId)\n\t\t\t? this._request?.headers.get('cookie')\n\t\t\t: this._document.cookie;\n\n\t\tif (!cookieString) return;\n\n\t\tconst prefix = `${this._config.sidebarCookieName}=`;\n\t\tconst cookieValue = cookieString\n\t\t\t.split(';')\n\t\t\t.map((c) => c.trim())\n\t\t\t.find((c) => c.startsWith(prefix))\n\t\t\t?.slice(prefix.length);\n\n\t\tif (cookieValue !== undefined) {\n\t\t\tthis._open.set(cookieValue === 'true');\n\t\t}\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input } from '@angular/core';\nimport { HlmSheetImports } from '../../sheet';\nimport { classes, hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmSidebarService, type SidebarVariant } from './hlm-sidebar.service';\nimport { injectHlmSidebarConfig } from './hlm-sidebar.token';\n\n@Component({\n\tselector: 'hlm-sidebar',\n\texportAs: 'hlmSidebar',\n\timports: [NgTemplateOutlet, HlmSheetImports],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.data-slot]': '_dataSlot()',\n\t\t'[attr.data-state]': '_dataState()',\n\t\t'[attr.data-collapsible]': '_dataCollapsible()',\n\t\t'[attr.data-variant]': '_dataVariant()',\n\t\t'[attr.data-side]': '_dataSide()',\n\t},\n\ttemplate: `\n\t\t<ng-template #contentContainer>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\n\t\t@if (collapsible() === 'none') {\n\t\t\t<ng-container *ngTemplateOutlet=\"contentContainer\"></ng-container>\n\t\t} @else if (_sidebarService.isMobile()) {\n\t\t\t<hlm-sheet\n\t\t\t\t[side]=\"side()\"\n\t\t\t\t[state]=\"_sidebarService.openMobile() ? 'open' : 'closed'\"\n\t\t\t\t(stateChanged)=\"_sidebarService.setOpenMobile($event === 'open')\"\n\t\t\t>\n\t\t\t\t<hlm-sheet-content\n\t\t\t\t\t*hlmSheetPortal=\"let ctx\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclass=\"bg-sidebar text-sidebar-foreground h-svh w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\t[style.--sidebar-width]=\"sidebarWidthMobile()\"\n\t\t\t\t>\n\t\t\t\t\t<hlm-sheet-header class=\"sr-only\">\n\t\t\t\t\t\t<h2 hlmSheetTitle>{{ srOnlySheetTitle() }}</h2>\n\t\t\t\t\t\t<p hlmSheetDescription>{{ srOnlySheetDescription() }}</p>\n\t\t\t\t\t</hlm-sheet-header>\n\t\t\t\t\t<div class=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"contentContainer\" />\n\t\t\t\t\t</div>\n\t\t\t\t</hlm-sheet-content>\n\t\t\t</hlm-sheet>\n\t\t} @else {\n\t\t\t<!-- Sidebar gap on desktop -->\n\t\t\t<div data-slot=\"sidebar-gap\" [class]=\"_sidebarGapComputedClass()\"></div>\n\t\t\t<div data-slot=\"sidebar-container\" [attr.data-side]=\"_dataSide()\" [class]=\"_sidebarContainerComputedClass()\">\n\t\t\t\t<div data-sidebar=\"sidebar\" data-slot=\"sidebar-inner\" class=\"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"contentContainer\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t`,\n})\nexport class HlmSidebar {\n\tprotected readonly _sidebarService = inject(HlmSidebarService);\n\tprivate readonly _config = injectHlmSidebarConfig();\n\tpublic readonly sidebarWidthMobile = input<string>(this._config.sidebarWidthMobile);\n\n\tpublic readonly side = input<'left' | 'right'>('left');\n\tpublic readonly variant = input<SidebarVariant>(this._sidebarService.variant());\n\tpublic readonly collapsible = input<'offcanvas' | 'icon' | 'none'>('offcanvas');\n\n\tpublic readonly srOnlySheetTitle = input<string>('Sidebar');\n\tpublic readonly srOnlySheetDescription = input<string>('Displays the mobile sidebar.');\n\n\tprotected readonly _sidebarGapComputedClass = computed(() =>\n\t\thlm(\n\t\t\t'transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent',\n\t\t\t'group-data-[collapsible=offcanvas]:w-0',\n\t\t\t'group-data-[side=right]:rotate-180',\n\t\t\tthis.variant() === 'floating' || this.variant() === 'inset'\n\t\t\t\t? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n\t\t\t\t: 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n\t\t),\n\t);\n\n\tpublic readonly sidebarContainerClass = input<ClassValue>('');\n\tprotected readonly _sidebarContainerComputedClass = computed(() =>\n\t\thlm(\n\t\t\t'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex',\n\t\t\tthis.variant() === 'floating' || this.variant() === 'inset'\n\t\t\t\t? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n\t\t\t\t: 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n\t\t\tthis.sidebarContainerClass(),\n\t\t),\n\t);\n\n\tprotected readonly _dataSlot = computed(() => {\n\t\treturn !this._sidebarService.isMobile() ? 'sidebar' : undefined;\n\t});\n\n\tprivate readonly _collapsibleAndNonMobile = computed(() => {\n\t\treturn this.collapsible() !== 'none' && !this._sidebarService.isMobile();\n\t});\n\n\tprotected readonly _dataState = computed(() => {\n\t\treturn this._collapsibleAndNonMobile() ? this._sidebarService.state() : undefined;\n\t});\n\n\tprotected readonly _dataCollapsible = computed(() => {\n\t\tif (this._collapsibleAndNonMobile()) {\n\t\t\treturn this._sidebarService.state() === 'collapsed' ? this.collapsible() : '';\n\t\t}\n\t\treturn undefined;\n\t});\n\n\tprotected readonly _dataVariant = computed(() => {\n\t\treturn this._collapsibleAndNonMobile() ? this.variant() : undefined;\n\t});\n\n\tprotected readonly _dataSide = computed(() => {\n\t\treturn this._collapsibleAndNonMobile() ? this.side() : undefined;\n\t});\n\n\tconstructor() {\n\t\t// Sync variant input with service\n\t\teffect(() => {\n\t\t\tthis._sidebarService.setVariant(this.variant());\n\t\t});\n\n\t\tclasses(() => {\n\t\t\tif (this.collapsible() === 'none') {\n\t\t\t\treturn hlm('bg-sidebar text-sidebar-foreground flex h-svh w-(--sidebar-width) flex-col');\n\t\t\t} else if (this._sidebarService.isMobile()) {\n\t\t\t\treturn '';\n\t\t\t} else {\n\t\t\t\treturn hlm('group peer text-sidebar-foreground hidden md:block');\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSidebarContent],hlm-sidebar-content',\n\texportAs: 'hlmSidebarContent',\n\thost: {\n\t\t'data-slot': 'sidebar-content',\n\t\t'data-sidebar': 'content',\n\t},\n})\nexport class HlmSidebarContent {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'no-scrollbar gap-2 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSidebarFooter],hlm-sidebar-footer',\n\texportAs: 'hlmSidebarFooter',\n\thost: {\n\t\t'data-slot': 'sidebar-footer',\n\t\t'data-sidebar': 'footer',\n\t},\n})\nexport class HlmSidebarFooter {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 p-2 flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSidebarGroup],hlm-sidebar-group',\n\texportAs: 'hlmSidebarGroup',\n\thost: {\n\t\t'data-slot': 'sidebar-group',\n\t\t'data-sidebar': 'group',\n\t},\n})\nexport class HlmSidebarGroup {\n\tconstructor() {\n\t\tclasses(() => 'p-2 relative flex w-full min-w-0 flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmSidebarGroupAction]',\n\texportAs: 'hlmSidebarGroupAction',\n\thost: {\n\t\t'data-slot': 'sidebar-group-action',\n\t\t'data-sidebar': 'group-action',\n\t},\n})\nexport class HlmSidebarGroupAction {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 w-5 rounded-md p-0 focus-visible:ring-2 [&>ng-icon]:text-[length:--spacing(4)] flex aspect-square items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>ng-icon]:shrink-0',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'div[hlmSidebarGroupContent]',\n\texportAs: 'hlmSidebarGroupContent',\n\thost: {\n\t\t'data-slot': 'sidebar-group-content',\n\t\t'data-sidebar': 'group-content',\n\t},\n})\nexport class HlmSidebarGroupContent {\n\tconstructor() {\n\t\tclasses(() => 'text-sm w-full');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'div[hlmSidebarGroupLabel], button[hlmSidebarGroupLabel]',\n\texportAs: 'hlmSidebarGroupLabel',\n\thost: {\n\t\t'data-slot': 'sidebar-group-label',\n\t\t'data-sidebar': 'group-label',\n\t},\n})\nexport class HlmSidebarGroupLabel {\n\tconstructor() {\n\t\tclasses(() => 'text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>ng-icon]:text-[length:--spacing(4)] flex shrink-0 items-center outline-hidden [&>ng-icon]:shrink-0');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSidebarHeader],hlm-sidebar-header',\n\texportAs: 'hlmSidebarHeader',\n\thost: {\n\t\t'data-slot': 'sidebar-header',\n\t\t'data-sidebar': 'header',\n\t},\n})\nexport class HlmSidebarHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 p-2 flex flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { HlmInput } from '../../input';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'input[hlmSidebarInput]',\n\texportAs: 'hlmSidebarInput',\n\thostDirectives: [HlmInput],\n\thost: {\n\t\t'data-slot': 'sidebar-input',\n\t\t'data-sidebar': 'input',\n\t},\n})\nexport class HlmSidebarInput {\n\tconstructor() {\n\t\tclasses(() => 'bg-background h-8 w-full shadow-none');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'main[hlmSidebarInset]',\n\texportAs: 'hlmSidebarInset',\n\thost: { 'data-slot': 'sidebar-inset' },\n})\nexport class HlmSidebarInset {\n\tconstructor() {\n\t\tclasses(() => 'bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2 relative flex w-full flex-1 flex-col');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'ul[hlmSidebarMenu]',\n\texportAs: 'hlmSidebarMenu',\n\thost: {\n\t\t'data-slot': 'sidebar-menu',\n\t\t'data-sidebar': 'menu',\n\t},\n})\nexport class HlmSidebarMenu {\n\tconstructor() {\n\t\tclasses(() => 'gap-1 flex w-full min-w-0 flex-col');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'button[hlmSidebarMenuAction]',\n\texportAs: 'hlmSidebarMenuAction',\n\thost: {\n\t\t'data-slot': 'sidebar-menu-action',\n\t\t'data-sidebar': 'menu-action',\n\t},\n})\nexport class HlmSidebarMenuAction {\n\tpublic readonly showOnHover = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>ng-icon]:text-[length:--spacing(4)] flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>ng-icon]:shrink-0',\n\t\t\tthis.showOnHover() &&\n\t\t\t\t'peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 aria-expanded:opacity-100 md:opacity-0',\n\t\t]);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSidebarMenuBadge],hlm-sidebar-menu-badge',\n\texportAs: 'hlmSidebarMenuBadge',\n\thost: {\n\t\t'data-slot': 'sidebar-menu-badge',\n\t\t'data-sidebar': 'menu-badge',\n\t},\n})\nexport class HlmSidebarMenuBadge {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute end-1 h-5 min-w-5 rounded-md px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnTooltip, BrnTooltipPosition, provideBrnTooltipDefaultOptions } from '@spartan-ng/brain/tooltip';\nimport { hlm } from '../../utils';\nimport { cva } from 'class-variance-authority';\n\nexport const DEFAULT_TOOLTIP_SVG_CLASS =\n\t'bg-foreground fill-foreground z-50 block size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]';\n\nexport const DEFAULT_TOOLTIP_CONTENT_CLASSES = hlm(\n\t'data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs bg-foreground text-background data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) text-balance',\n);\n\nexport const tooltipPositionVariants = cva('absolute', {\n\tvariants: {\n\t\tposition: {\n\t\t\ttop: 'bottom-0 left-[calc(50%-5px)] translate-y-full',\n\t\t\tbottom: '-top-2.5 left-[calc(50%-5px)] translate-y-0 rotate-180',\n\t\t\tleft: '-end-2.5 top-[calc(50%-5px)] translate-y-0 rotate-270 rtl:-rotate-270',\n\t\t\tright: '-start-2.5 top-[calc(50%-5px)] translate-y-0 rotate-90 rtl:-rotate-90',\n\t\t},\n\t},\n});\n\n@Directive({\n\tselector: '[hlmTooltip]',\n\texportAs: 'hlmTooltip',\n\tproviders: [\n\t\tprovideBrnTooltipDefaultOptions({\n\t\t\tsvgClasses: DEFAULT_TOOLTIP_SVG_CLASS,\n\t\t\ttooltipContentClasses: DEFAULT_TOOLTIP_CONTENT_CLASSES,\n\t\t\tarrowClasses: (position: BrnTooltipPosition) => hlm(tooltipPositionVariants({ position })),\n\t\t}),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnTooltip,\n\t\t\tinputs: ['brnTooltip: hlmTooltip', 'position', 'hideDelay', 'showDelay', 'sideOffset', 'tooltipDisabled'],\n\t\t},\n\t],\n})\nexport class HlmTooltip {}\n","import { HlmTooltip } from './lib/hlm-tooltip';\n\nexport * from './lib/hlm-tooltip';\n\nexport const HlmTooltipImports = [HlmTooltip] as const;\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { BrnTooltip, BrnTooltipPosition, provideBrnTooltipDefaultOptions } from '@spartan-ng/brain/tooltip';\nimport {\n\tDEFAULT_TOOLTIP_CONTENT_CLASSES,\n\tDEFAULT_TOOLTIP_SVG_CLASS,\n\ttooltipPositionVariants,\n} from '../../tooltip';\nimport { classes, hlm } from '../../utils';\nimport { cva } from 'class-variance-authority';\nimport { HlmSidebarService } from './hlm-sidebar.service';\nimport { injectHlmSidebarConfig } from './hlm-sidebar.token';\n\nconst sidebarMenuButtonVariants = cva(\n\t'ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-start text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_ng-icon]:shrink-0 [&_ng-icon]:text-[length:--spacing(4)] [&>span:last-child]:truncate',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n\t\t\t\toutline: 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-8 text-sm',\n\t\t\t\tsm: 'h-7 text-xs',\n\t\t\t\tlg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t},\n);\n\n@Directive({\n\tselector: 'button[hlmSidebarMenuButton], a[hlmSidebarMenuButton]',\n\texportAs: 'hlmSidebarMenuButton',\n\tproviders: [\n\t\tprovideBrnTooltipDefaultOptions({\n\t\t\tshowDelay: 150,\n\t\t\thideDelay: 0,\n\t\t\ttooltipContentClasses: DEFAULT_TOOLTIP_CONTENT_CLASSES,\n\t\t\tsvgClasses: DEFAULT_TOOLTIP_SVG_CLASS,\n\t\t\tarrowClasses: (position: BrnTooltipPosition) => hlm(tooltipPositionVariants({ position })),\n\t\t\tposition: 'right',\n\t\t}),\n\t],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnTooltip,\n\t\t\tinputs: ['brnTooltip: tooltip'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'sidebar-menu-button',\n\t\t'data-sidebar': 'menu-button',\n\t\t'[attr.data-size]': 'size()',\n\t\t'[attr.data-active]': 'isActive()',\n\t\t'(click)': 'onClick()',\n\t},\n})\nexport class HlmSidebarMenuButton {\n\tprivate readonly _config = injectHlmSidebarConfig();\n\tprivate readonly _sidebarService = inject(HlmSidebarService);\n\tprivate readonly _brnTooltip = inject(BrnTooltip);\n\n\tpublic readonly variant = input<'default' | 'outline'>('default');\n\tpublic readonly size = input<'default' | 'sm' | 'lg'>('default');\n\tpublic readonly isActive = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\tpublic readonly closeMobileSidebarOnClick = input<boolean, BooleanInput>(\n\t\tthis._config.closeMobileSidebarOnMenuButtonClick,\n\t\t{ transform: booleanAttribute },\n\t);\n\n\tprotected readonly _isTooltipHidden = computed(\n\t\t() => this._sidebarService.state() !== 'collapsed' || this._sidebarService.isMobile(),\n\t);\n\n\tconstructor() {\n\t\tclasses(() => sidebarMenuButtonVariants({ variant: this.variant(), size: this.size() }));\n\t\teffect(() => this._brnTooltip.mutableTooltipDisabled.set(this._isTooltipHidden()));\n\t}\n\n\tprotected onClick(): void {\n\t\tif (this.closeMobileSidebarOnClick()) {\n\t\t\tthis._sidebarService.setOpenMobile(false);\n\t\t}\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'li[hlmSidebarMenuItem]',\n\texportAs: 'hlmSidebarMenuItem',\n\thost: {\n\t\t'data-slot': 'sidebar-menu-item',\n\t\t'data-sidebar': 'menu-item',\n\t},\n})\nexport class HlmSidebarMenuItem {\n\tconstructor() {\n\t\tclasses(() => 'group/menu-item relative');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSkeleton],hlm-skeleton',\n\texportAs: 'hlmSkeleton',\n\thost: {\n\t\t'data-slot': 'skeleton',\n\t},\n})\nexport class HlmSkeleton {\n\tconstructor() {\n\t\tclasses(() => 'bg-muted rounded-md block motion-safe:animate-pulse');\n\t}\n}\n","import { HlmSkeleton } from './lib/hlm-skeleton';\n\nexport * from './lib/hlm-skeleton';\n\nexport const HlmSkeletonImports = [HlmSkeleton] as const;\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { HlmSkeletonImports } from '../../skeleton';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-sidebar-menu-skeleton,div[hlmSidebarMenuSkeleton]',\n\texportAs: 'hlmSidebarMenuSkeleton',\n\timports: [HlmSkeletonImports],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'sidebar-menu-skeleton',\n\t\t'data-sidebar': 'menu-skeleton',\n\t},\n\ttemplate: `\n\t\t@if (showIcon()) {\n\t\t\t<hlm-skeleton data-sidebar=\"menu-skeleton-icon\" class=\"size-4 rounded-md\" />\n\t\t} @else {\n\t\t\t<hlm-skeleton\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tclass=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\t[style.--skeleton-width]=\"_width\"\n\t\t\t/>\n\t\t}\n\t`,\n})\nexport class HlmSidebarMenuSkeleton {\n\tpublic readonly showIcon = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\tprotected readonly _width = `${Math.floor(Math.random() * 40) + 50}%`;\n\n\tconstructor() {\n\t\tclasses(() => 'h-8 gap-2 rounded-md px-2 flex items-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'ul[hlmSidebarMenuSub]',\n\texportAs: 'hlmSidebarMenuSub',\n\thost: {\n\t\t'data-slot': 'sidebar-menu-sub',\n\t\t'data-sidebar': 'menu-sub',\n\t},\n})\nexport class HlmSidebarMenuSub {\n\tconstructor() {\n\t\tclasses(() => 'border-sidebar-border mx-3.5 translate-x-px gap-1 border-s px-2.5 py-0.5 group-data-[collapsible=icon]:hidden rtl:-translate-x-px flex min-w-0 flex-col');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, inject, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmSidebarService } from './hlm-sidebar.service';\nimport { injectHlmSidebarConfig } from './hlm-sidebar.token';\n\n@Directive({\n\tselector: 'a[hlmSidebarMenuSubButton], button[hlmSidebarMenuSubButton]',\n\texportAs: 'hlmSidebarMenuSubButton',\n\thost: {\n\t\t'data-slot': 'sidebar-menu-sub-button',\n\t\t'data-sidebar': 'menu-sub-button',\n\t\t'[attr.data-active]': 'isActive()',\n\t\t'[attr.data-size]': 'size()',\n\t\t'(click)': 'onClick()',\n\t},\n})\nexport class HlmSidebarMenuSubButton {\n\tprivate readonly _sidebarService = inject(HlmSidebarService);\n\tprivate readonly _config = injectHlmSidebarConfig();\n\n\tpublic readonly closeMobileSidebarOnClick = input<boolean, BooleanInput>(\n\t\tthis._config.closeMobileSidebarOnMenuButtonClick,\n\t\t{ transform: booleanAttribute },\n\t);\n\n\tpublic readonly size = input<'sm' | 'md'>('md');\n\tpublic readonly isActive = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>ng-icon]:text-[length:--spacing(4)] flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>ng-icon]:shrink-0 [&>span:last-child]:truncate',\n\t\t);\n\t}\n\n\tprotected onClick(): void {\n\t\tif (this.closeMobileSidebarOnClick()) {\n\t\t\tthis._sidebarService.setOpenMobile(false);\n\t\t}\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: 'li[hlmSidebarMenuSubItem]',\n\texportAs: 'hlmSidebarMenuSubItem',\n\thost: {\n\t\t'data-slot': 'sidebar-menu-sub-item',\n\t\t'data-sidebar': 'menu-sub-item',\n\t},\n})\nexport class HlmSidebarMenuSubItem {\n\tconstructor() {\n\t\tclasses(() => 'group/menu-sub-item relative');\n\t}\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { HlmSidebarService } from './hlm-sidebar.service';\n\n@Directive({\n\tselector: 'button[hlmSidebarRail]',\n\texportAs: 'hlmSidebarRail',\n\thost: {\n\t\t'data-sidebar': 'rail',\n\t\t'data-slot': 'sidebar-rail',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t\ttabindex: '-1',\n\t\t'(click)': 'onClick()',\n\t},\n})\nexport class HlmSidebarRail {\n\tprivate readonly _sidebarService = inject(HlmSidebarService);\n\n\tpublic readonly ariaLabel = input<string>('Toggle Sidebar', { alias: 'aria-label' });\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\n\t\t\t'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n\t\t\t'[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n\t\t\t'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n\t\t\t'[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n\t\t\t'[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n\t\t]);\n\t}\n\n\tprotected onClick(): void {\n\t\tthis._sidebarService.toggleSidebar();\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { HlmSeparator } from '../../separator';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSidebarSeparator],hlm-sidebar-separator',\n\texportAs: 'hlmSidebarSeparator',\n\thostDirectives: [HlmSeparator],\n\thost: {\n\t\t'data-slot': 'sidebar-separator',\n\t\t'data-sidebar': 'separator',\n\t},\n})\nexport class HlmSidebarSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-sidebar-border mx-2 w-auto');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucidePanelLeft } from '@ng-icons/lucide';\nimport { HlmButton, provideBrnButtonConfig } from '../../button';\nimport { HlmSidebarService } from './hlm-sidebar.service';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[hlmSidebarTrigger]',\n\texportAs: 'hlmSidebarTrigger',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucidePanelLeft }), provideBrnButtonConfig({ variant: 'ghost', size: 'icon-sm' })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: HlmButton, inputs: ['variant', 'size'] }],\n\thost: {\n\t\t'data-slot': 'sidebar-trigger',\n\t\t'data-sidebar': 'trigger',\n\t\t'(click)': '_onClick()',\n\t},\n\ttemplate: `\n\t\t<ng-icon name=\"lucidePanelLeft\" />\n\t\t<span class=\"sr-only\">{{ srOnlyText() }}</span>\n\t`,\n})\nexport class HlmSidebarTrigger {\n\tprivate readonly _sidebarService = inject(HlmSidebarService);\n\n\tpublic readonly srOnlyText = input<string>('Toggle Sidebar');\n\n\tprotected _onClick(): void {\n\t\tthis._sidebarService.toggleSidebar();\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\nimport { injectHlmSidebarConfig } from './hlm-sidebar.token';\n\n@Directive({\n\tselector: '[hlmSidebarWrapper],hlm-sidebar-wrapper',\n\texportAs: 'hlmSidebarWrapper',\n\thost: {\n\t\t'data-slot': 'sidebar-wrapper',\n\t\t'[style.--sidebar-width]': 'sidebarWidth()',\n\t\t'[style.--sidebar-width-icon]': 'sidebarWidthIcon()',\n\t},\n})\nexport class HlmSidebarWrapper {\n\tprivate readonly _config = injectHlmSidebarConfig();\n\n\tpublic readonly sidebarWidth = input<string>(this._config.sidebarWidth);\n\tpublic readonly sidebarWidthIcon = input<string>(this._config.sidebarWidthIcon);\n\n\tconstructor() {\n\t\tclasses(() => 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full');\n\t}\n}\n","import { HlmSidebar } from './lib/hlm-sidebar';\nimport { HlmSidebarContent } from './lib/hlm-sidebar-content';\nimport { HlmSidebarFooter } from './lib/hlm-sidebar-footer';\nimport { HlmSidebarGroup } from './lib/hlm-sidebar-group';\nimport { HlmSidebarGroupAction } from './lib/hlm-sidebar-group-action';\nimport { HlmSidebarGroupContent } from './lib/hlm-sidebar-group-content';\nimport { HlmSidebarGroupLabel } from './lib/hlm-sidebar-group-label';\nimport { HlmSidebarHeader } from './lib/hlm-sidebar-header';\nimport { HlmSidebarInput } from './lib/hlm-sidebar-input';\nimport { HlmSidebarInset } from './lib/hlm-sidebar-inset';\nimport { HlmSidebarMenu } from './lib/hlm-sidebar-menu';\nimport { HlmSidebarMenuAction } from './lib/hlm-sidebar-menu-action';\nimport { HlmSidebarMenuBadge } from './lib/hlm-sidebar-menu-badge';\nimport { HlmSidebarMenuButton } from './lib/hlm-sidebar-menu-button';\nimport { HlmSidebarMenuItem } from './lib/hlm-sidebar-menu-item';\nimport { HlmSidebarMenuSkeleton } from './lib/hlm-sidebar-menu-skeleton';\nimport { HlmSidebarMenuSub } from './lib/hlm-sidebar-menu-sub';\nimport { HlmSidebarMenuSubButton } from './lib/hlm-sidebar-menu-sub-button';\nimport { HlmSidebarMenuSubItem } from './lib/hlm-sidebar-menu-sub-item';\nimport { HlmSidebarRail } from './lib/hlm-sidebar-rail';\nimport { HlmSidebarSeparator } from './lib/hlm-sidebar-separator';\nimport { HlmSidebarTrigger } from './lib/hlm-sidebar-trigger';\nimport { HlmSidebarWrapper } from './lib/hlm-sidebar-wrapper';\n\nexport * from './lib/hlm-sidebar';\nexport * from './lib/hlm-sidebar-content';\nexport * from './lib/hlm-sidebar-footer';\nexport * from './lib/hlm-sidebar-group';\nexport * from './lib/hlm-sidebar-group-action';\nexport * from './lib/hlm-sidebar-group-content';\nexport * from './lib/hlm-sidebar-group-label';\nexport * from './lib/hlm-sidebar-header';\nexport * from './lib/hlm-sidebar-input';\nexport * from './lib/hlm-sidebar-inset';\nexport * from './lib/hlm-sidebar-menu';\nexport * from './lib/hlm-sidebar-menu-action';\nexport * from './lib/hlm-sidebar-menu-badge';\nexport * from './lib/hlm-sidebar-menu-button';\nexport * from './lib/hlm-sidebar-menu-item';\nexport * from './lib/hlm-sidebar-menu-skeleton';\nexport * from './lib/hlm-sidebar-menu-sub';\nexport * from './lib/hlm-sidebar-menu-sub-button';\nexport * from './lib/hlm-sidebar-menu-sub-item';\nexport * from './lib/hlm-sidebar-rail';\nexport * from './lib/hlm-sidebar-separator';\nexport * from './lib/hlm-sidebar-trigger';\nexport * from './lib/hlm-sidebar-wrapper';\nexport * from './lib/hlm-sidebar.service';\nexport * from './lib/hlm-sidebar.token';\n\nexport const HlmSidebarImports = [\n\tHlmSidebar,\n\tHlmSidebarContent,\n\tHlmSidebarFooter,\n\tHlmSidebarGroup,\n\tHlmSidebarGroupAction,\n\tHlmSidebarGroupContent,\n\tHlmSidebarGroupLabel,\n\tHlmSidebarHeader,\n\tHlmSidebarInput,\n\tHlmSidebarInset,\n\tHlmSidebarMenu,\n\tHlmSidebarMenuSkeleton,\n\tHlmSidebarMenuAction,\n\tHlmSidebarMenuBadge,\n\tHlmSidebarMenuButton,\n\tHlmSidebarMenuItem,\n\tHlmSidebarMenuSub,\n\tHlmSidebarMenuSubButton,\n\tHlmSidebarRail,\n\tHlmSidebarSeparator,\n\tHlmSidebarTrigger,\n\tHlmSidebarWrapper,\n\tHlmSidebarMenuSubItem,\n] as const;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BrnSlider, BrnSliderImports, injectBrnSlider } from '@spartan-ng/brain/slider';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-slider, brn-slider [hlm]',\n\texportAs: 'hlmSlider',\n\timports: [BrnSliderImports],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnSlider,\n\t\t\tinputs: [\n\t\t\t\t'id',\n\t\t\t\t'value',\n\t\t\t\t'disabled',\n\t\t\t\t'min',\n\t\t\t\t'max',\n\t\t\t\t'step',\n\t\t\t\t'minStepsBetweenThumbs',\n\t\t\t\t'maxStepsBetweenThumbs',\n\t\t\t\t'preventStepOverThumb',\n\t\t\t\t'inverted',\n\t\t\t\t'orientation',\n\t\t\t\t'showTicks',\n\t\t\t\t'maxTicks',\n\t\t\t\t'tickLabelInterval',\n\t\t\t\t'formatTick',\n\t\t\t\t'draggableRange',\n\t\t\t\t'draggableRangeOnly',\n\t\t\t\t'aria-label',\n\t\t\t\t'aria-labelledby',\n\t\t\t],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t],\n\ttemplate: `\n\t\t<div class=\"relative flex w-full items-center group-data-vertical:w-auto group-data-vertical:flex-col\">\n\t\t\t<div brnSliderTrack class=\"bg-muted rounded-full data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5 relative grow overflow-hidden\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"bg-primary absolute select-none data-draggable-range:cursor-move data-horizontal:h-full data-vertical:w-full\"\n\t\t\t\t\tbrnSliderRange\n\t\t\t\t></div>\n\t\t\t</div>\n\n\t\t\t@for (i of _slider.thumbIndexes(); track i) {\n\t\t\t\t<span\n\t\t\t\t\tclass=\"border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden absolute block shrink-0 select-none after:absolute after:-inset-2\"\n\t\t\t\t\tbrnSliderThumb\n\t\t\t\t></span>\n\t\t\t}\n\t\t</div>\n\n\t\t@if (_slider.showTicks()) {\n\t\t\t<div\n\t\t\t\tclass=\"px-2 group-data-vertical:px-0 group-data-vertical:py-2 text-muted-foreground mt-3 flex w-full items-start justify-between gap-1 text-xs font-medium group-data-horizontal:group-data-inverted:flex-row-reverse group-data-vertical:ms-3 group-data-vertical:mt-0 group-data-vertical:w-auto group-data-vertical:flex-col-reverse group-data-vertical:group-data-inverted:flex-col\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\t*brnSliderTick=\"let tick; let formattedTick = formattedTick\"\n\t\t\t\t\tclass=\"group flex w-0 flex-col items-center justify-center gap-2 group-data-vertical:h-0 group-data-vertical:w-auto group-data-vertical:flex-row\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"bg-muted-foreground/70 h-1 w-px group-data-vertical:h-px group-data-vertical:w-1 group-data-horizontal:group-data-[skip]:h-0.5 group-data-vertical:group-data-[skip]:w-0.5\"\n\t\t\t\t\t></div>\n\t\t\t\t\t<div class=\"text-center group-data-[skip]:opacity-0\">{{ formattedTick }}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t`,\n})\nexport class HlmSlider {\n\tprotected readonly _slider = injectBrnSlider();\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'group flex w-full touch-none flex-col select-none data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-row data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n\t\t]);\n\t}\n}\n","export * from './lib/hlm-slider';\nimport { HlmSlider } from './lib/hlm-slider';\n\nexport const HlmSliderImports = [HlmSlider] as const;\n","import type { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, booleanAttribute, computed, input, numberAttribute } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCircleCheck, lucideInfo, lucideLoader2, lucideOctagonX, lucideTriangleAlert } from '@ng-icons/lucide';\nimport { BrnSonnerImports, type ToasterProps } from '@spartan-ng/brain/sonner';\nimport { HlmButtonImports } from '../../button';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-toaster',\n\texportAs: 'hlmToaster',\n\timports: [BrnSonnerImports, HlmButtonImports, NgIcon],\n\tproviders: [provideIcons({ lucideCircleCheck, lucideInfo, lucideTriangleAlert, lucideOctagonX, lucideLoader2 })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<brn-sonner-toaster\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[invert]=\"invert()\"\n\t\t\t[theme]=\"theme()\"\n\t\t\t[position]=\"position()\"\n\t\t\t[hotKey]=\"hotKey()\"\n\t\t\t[richColors]=\"richColors()\"\n\t\t\t[expand]=\"expand()\"\n\t\t\t[duration]=\"duration()\"\n\t\t\t[visibleToasts]=\"visibleToasts()\"\n\t\t\t[closeButton]=\"closeButton()\"\n\t\t\t[toastOptions]=\"_computedToastOptions()\"\n\t\t\t[offset]=\"offset()\"\n\t\t\t[style]=\"userStyle()\"\n\t\t>\n\t\t\t<ng-template #loadingIcon>\n\t\t\t\t<ng-icon name=\"lucideLoader2\" class=\"overflow-visible! text-base [&>svg]:motion-safe:animate-spin\" />\n\t\t\t</ng-template>\n\t\t\t<ng-template #successIcon>\n\t\t\t\t<ng-icon name=\"lucideCircleCheck\" class=\"overflow-visible! text-base\" />\n\t\t\t</ng-template>\n\t\t\t<ng-template #errorIcon>\n\t\t\t\t<ng-icon name=\"lucideOctagonX\" class=\"overflow-visible! text-base\" />\n\t\t\t</ng-template>\n\t\t\t<ng-template #infoIcon>\n\t\t\t\t<ng-icon name=\"lucideInfo\" class=\"overflow-visible! text-base\" />\n\t\t\t</ng-template>\n\t\t\t<ng-template #warningIcon>\n\t\t\t\t<ng-icon name=\"lucideTriangleAlert\" class=\"overflow-visible! text-base\" />\n\t\t\t</ng-template>\n\t\t\t<button\n\t\t\t\t*brnToastAction=\"let action; let toast = toast\"\n\t\t\t\t[style]=\"toast.actionButtonStyle\"\n\t\t\t\thlmBtn\n\t\t\t\tsize=\"sm\"\n\t\t\t\t(click)=\"action.onClick($event)\"\n\t\t\t>\n\t\t\t\t{{ action.label }}\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\t*brnToastCancelAction=\"let cancel; let toast = toast\"\n\t\t\t\t[style]=\"toast.cancelButtonStyle\"\n\t\t\t\thlmBtn\n\t\t\t\tsize=\"sm\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\t(click)=\"cancel.onClick($event)\"\n\t\t\t>\n\t\t\t\t{{ cancel.label }}\n\t\t\t</button>\n\t\t</brn-sonner-toaster>\n\t`,\n})\nexport class HlmToaster {\n\tpublic readonly invert = input<ToasterProps['invert'], BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly theme = input<ToasterProps['theme']>('light');\n\tpublic readonly position = input<ToasterProps['position']>('bottom-right');\n\tpublic readonly hotKey = input<ToasterProps['hotkey']>(['altKey', 'KeyT']);\n\tpublic readonly richColors = input<ToasterProps['richColors'], BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly expand = input<ToasterProps['expand'], BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly duration = input<ToasterProps['duration'], NumberInput>(4000, {\n\t\ttransform: numberAttribute,\n\t});\n\tpublic readonly visibleToasts = input<ToasterProps['visibleToasts'], NumberInput>(3, {\n\t\ttransform: numberAttribute,\n\t});\n\tpublic readonly closeButton = input<ToasterProps['closeButton'], BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly toastOptions = input<ToasterProps['toastOptions']>({});\n\n\tprotected readonly _computedToastOptions = computed(() => {\n\t\tconst options = this.toastOptions();\n\t\treturn {\n\t\t\t...options,\n\t\t\tclasses: {\n\t\t\t\t...options?.classes,\n\t\t\t\ttoast: hlm('rounded-2xl!', options?.classes?.toast),\n\t\t\t},\n\t\t};\n\t});\n\tpublic readonly offset = input<ToasterProps['offset']>(null);\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tpublic readonly userStyle = input<Record<string, string>>(\n\t\t{\n\t\t\t'--normal-bg': 'var(--popover)',\n\t\t\t'--normal-text': 'var(--popover-foreground)',\n\t\t\t'--normal-border': 'var(--border)',\n\t\t\t'--border-radius': 'var(--radius)',\n\t\t},\n\t\t{ alias: 'style' },\n\t);\n\n\tprotected readonly _computedClass = computed(() => hlm('toaster group', this.userClass()));\n}\n","import { HlmToaster } from './lib/hlm-toaster';\n\nexport * from './lib/hlm-toaster';\n\nexport const HlmToasterImports = [HlmToaster] as const;\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideLoader2 } from '@ng-icons/lucide';\nimport { classes } from '../../utils';\n\n@Component({\n\tselector: 'hlm-spinner',\n\texportAs: 'hlmSpinner',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideLoader2 })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'spinner',\n\t\trole: 'status',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t},\n\ttemplate: `\n\t\t<ng-icon [name]=\"icon()\" />\n\t`,\n})\nexport class HlmSpinner {\n\t/**\n\t * The name of the icon to be used as the spinner.\n\t * Use provideIcons({ ... }) to register custom icons.\n\t */\n\tpublic readonly icon = input<string>('lucideLoader2');\n\n\t/** Aria label for the spinner for accessibility. */\n\tpublic readonly ariaLabel = input<string>('Loading', { alias: 'aria-label' });\n\n\tconstructor() {\n\t\tclasses(() => 'inline-flex text-[length:--spacing(4)] motion-safe:animate-spin');\n\t}\n}\n","import { HlmSpinner } from './lib/hlm-spinner';\n\nexport * from './lib/hlm-spinner';\n\nexport const HlmSpinnerImports = [HlmSpinner] as const;\n","import { Directive } from '@angular/core';\nimport { BrnSwitchThumb } from '@spartan-ng/brain/switch';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmSwitchThumb],hlm-switch-thumb',\n\texportAs: 'hlmSwitchThumb',\n\thostDirectives: [BrnSwitchThumb],\n\thost: { 'data-slot': 'switch-thumb' },\n})\nexport class HlmSwitchThumb {\n\tconstructor() {\n\t\tclasses(() => 'bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-unchecked:translate-x-0 data-checked:ltr:translate-x-[calc(100%-2px)] data-checked:rtl:-translate-x-[calc(100%-2px)] pointer-events-none block ring-0 transition-transform');\n\t}\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tforwardRef,\n\tinput,\n\tlinkedSignal,\n\toutput,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnSwitch, type BrnSwitchSize } from '@spartan-ng/brain/switch';\nimport { hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmSwitchThumb } from './hlm-switch-thumb';\n\nexport const HLM_SWITCH_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => HlmSwitch),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'hlm-switch',\n\texportAs: 'hlmSwitch',\n\timports: [BrnSwitch, HlmSwitchThumb],\n\tproviders: [HLM_SWITCH_VALUE_ACCESSOR],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'switch',\n\t\tclass: 'contents',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t},\n\ttemplate: `\n\t\t<brn-switch\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[size]=\"size()\"\n\t\t\t[checked]=\"checked()\"\n\t\t\t[disabled]=\"_disabled()\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[forceInvalid]=\"forceInvalid()\"\n\t\t\t[aria-label]=\"ariaLabel()\"\n\t\t\t[aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[aria-describedby]=\"ariaDescribedby()\"\n\t\t\t(checkedChange)=\"handleChange($event)\"\n\t\t\t(touched)=\"_onTouched?.()\"\n\t\t>\n\t\t\t<hlm-switch-thumb />\n\t\t</brn-switch>\n\t`,\n})\nexport class HlmSwitch implements ControlValueAccessor {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 dark:data-unchecked:bg-input/80 rounded-full border border-transparent shadow-xs focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] group/switch inline-flex shrink-0 items-center transition-all outline-none data-disabled:cursor-not-allowed data-disabled:opacity-50',\n\t\t\tthis.userClass(),\n\t\t),\n\t);\n\n\t/** The checked state of the switch. */\n\tpublic readonly checkedInput = input<boolean, BooleanInput>(false, { alias: 'checked', transform: booleanAttribute });\n\tpublic readonly checked = linkedSignal(this.checkedInput);\n\n\t/** Emits when the checked state of the switch changes. */\n\tpublic readonly checkedChange = output<boolean>();\n\n\t/** The disabled state of the switch. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The size of the switch. */\n\tpublic readonly size = input<BrnSwitchSize>('default');\n\n\t/** Used to set the id on the underlying brn element. */\n\tpublic readonly inputId = input<string | null>(null);\n\n\t/** Whether to force the input into an invalid state. */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Used to set the aria-label attribute on the underlying brn element. */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/** Used to set the aria-labelledby attribute on the underlying brn element. */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\n\t/** Used to set the aria-describedby attribute on the underlying brn element. */\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\tprotected readonly _disabled = linkedSignal(this.disabled);\n\n\tprotected _onChange?: ChangeFn<boolean>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected handleChange(value: boolean): void {\n\t\tthis.checked.set(value);\n\t\tthis._onChange?.(value);\n\t\tthis.checkedChange.emit(value);\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\twriteValue(value: boolean): void {\n\t\tthis.checked.set(Boolean(value));\n\t}\n\n\tregisterOnChange(fn: ChangeFn<boolean>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis._disabled.set(isDisabled);\n\t}\n}\n","import { HlmSwitch } from './lib/hlm-switch';\nimport { HlmSwitchThumb } from './lib/hlm-switch-thumb';\n\nexport * from './lib/hlm-switch';\nexport * from './lib/hlm-switch-thumb';\n\nexport const HlmSwitchImports = [HlmSwitch, HlmSwitchThumb] as const;\n","import { Directive, input } from '@angular/core';\nimport { BrnTabs } from '@spartan-ng/brain/tabs';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTabs],hlm-tabs',\n\texportAs: 'hlmTabs',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnTabs,\n\t\t\tinputs: ['orientation', 'activationMode', 'brnTabs: tab'],\n\t\t\toutputs: ['tabActivated'],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'tabs',\n\t},\n})\nexport class HlmTabs {\n\tpublic readonly tab = input.required<string>();\n\n\tconstructor() {\n\t\tclasses(() => 'group/tabs flex gap-2 data-[orientation=horizontal]:flex-col');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnTabsContent } from '@spartan-ng/brain/tabs';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTabsContent]',\n\texportAs: 'hlmTabsContent',\n\thostDirectives: [{ directive: BrnTabsContent, inputs: ['brnTabsContent: hlmTabsContent'] }],\n\thost: {\n\t\t'data-slot': 'tabs-content',\n\t},\n})\nexport class HlmTabsContent {\n\tpublic readonly contentFor = input.required<string>({ alias: 'hlmTabsContent' });\n\n\tconstructor() {\n\t\tclasses(() => 'flex-1 text-sm outline-none');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnTabsContentLazy } from '@spartan-ng/brain/tabs';\n\n@Directive({\n\tselector: 'ng-template[hlmTabsContentLazy]',\n\texportAs: 'hlmTabsContentLazy',\n\thostDirectives: [BrnTabsContentLazy],\n})\nexport class HlmTabsContentLazy {}\n","import { Directive, input } from '@angular/core';\nimport { BrnTabsList } from '@spartan-ng/brain/tabs';\nimport { classes } from '../../utils';\nimport { type VariantProps, cva } from 'class-variance-authority';\n\nexport const listVariants = cva(\n\t'rounded-lg p-[3px] group-data-horizontal/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-muted',\n\t\t\t\tline: 'gap-1 bg-transparent',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\ntype ListVariants = VariantProps<typeof listVariants>;\n\n@Directive({\n\tselector: '[hlmTabsList],hlm-tabs-list',\n\texportAs: 'hlmTabsList',\n\thostDirectives: [BrnTabsList],\n\thost: {\n\t\t'data-slot': 'tabs-list',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmTabsList {\n\tpublic readonly variant = input<ListVariants['variant']>('default');\n\n\tconstructor() {\n\t\tclasses(() => listVariants({ variant: this.variant() }));\n\t}\n}\n","import { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\ttype ElementRef,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { type BrnPaginatedTabHeaderItem, BrnTabsPaginatedList, BrnTabsTrigger } from '@spartan-ng/brain/tabs';\nimport { buttonVariants } from '../../button';\nimport { classes, hlm } from '../../utils';\nimport type { ClassValue } from 'clsx';\nimport type { Observable } from 'rxjs';\nimport { listVariants } from './hlm-tabs-list';\n\n@Component({\n\tselector: 'hlm-paginated-tabs-list',\n\texportAs: 'hlmTabsPaginatedList',\n\timports: [CdkObserveContent, NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight, lucideChevronLeft })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'tabs-paginated-list',\n\t},\n\ttemplate: `\n\t\t<button\n\t\t\t#previousPaginator\n\t\t\tdata-pagination=\"previous\"\n\t\t\ttype=\"button\"\n\t\t\taria-hidden=\"true\"\n\t\t\ttabindex=\"-1\"\n\t\t\t[class]=\"_paginationButtonClass()\"\n\t\t\t[disabled]=\"disableScrollBefore || null\"\n\t\t\t(click)=\"_handlePaginatorClick('before')\"\n\t\t\t(mousedown)=\"_handlePaginatorPress('before', $event)\"\n\t\t\t(touchend)=\"_stopInterval()\"\n\t\t>\n\t\t\t<ng-icon name=\"lucideChevronLeft\" />\n\t\t</button>\n\n\t\t<div #tabListContainer class=\"z-[1] flex grow overflow-hidden\" (keydown)=\"_handleKeydown($event)\">\n\t\t\t<div class=\"relative grow transition-transform\" #tabList role=\"tablist\" (cdkObserveContent)=\"_onContentChanges()\">\n\t\t\t\t<div #tabListInner [class]=\"_tabListClass()\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<button\n\t\t\t#nextPaginator\n\t\t\tdata-pagination=\"next\"\n\t\t\ttype=\"button\"\n\t\t\taria-hidden=\"true\"\n\t\t\ttabindex=\"-1\"\n\t\t\t[class]=\"_paginationButtonClass()\"\n\t\t\t[disabled]=\"disableScrollAfter || null\"\n\t\t\t(click)=\"_handlePaginatorClick('after')\"\n\t\t\t(mousedown)=\"_handlePaginatorPress('after', $event)\"\n\t\t\t(touchend)=\"_stopInterval()\"\n\t\t>\n\t\t\t<ng-icon name=\"lucideChevronRight\" />\n\t\t</button>\n\t`,\n})\nexport class HlmTabsPaginatedList extends BrnTabsPaginatedList {\n\tconstructor() {\n\t\tsuper();\n\t\tclasses(() => 'relative flex flex-shrink-0 items-center gap-1 overflow-hidden');\n\t}\n\n\tpublic readonly items = contentChildren(BrnTabsTrigger, { descendants: false });\n\t/** Explicitly annotating type to avoid non-portable inferred type */\n\tpublic readonly itemsChanges: Observable<ReadonlyArray<BrnPaginatedTabHeaderItem>> = toObservable(this.items);\n\n\tpublic readonly tabListContainer = viewChild.required<ElementRef<HTMLElement>>('tabListContainer');\n\tpublic readonly tabList = viewChild.required<ElementRef<HTMLElement>>('tabList');\n\tpublic readonly tabListInner = viewChild.required<ElementRef<HTMLElement>>('tabListInner');\n\tpublic readonly nextPaginator = viewChild.required<ElementRef<HTMLElement>>('nextPaginator');\n\tpublic readonly previousPaginator = viewChild.required<ElementRef<HTMLElement>>('previousPaginator');\n\n\tpublic readonly tabListClass = input<ClassValue>('', { alias: 'tabListClass' });\n\tprotected readonly _tabListClass = computed(() => hlm(listVariants(), this.tabListClass()));\n\n\tpublic readonly paginationButtonClass = input<ClassValue>('');\n\tprotected readonly _paginationButtonClass = computed(() =>\n\t\thlm(\n\t\t\t'relative z-[2] select-none disabled:cursor-default',\n\t\t\tbuttonVariants({ variant: 'ghost', size: 'icon-sm' }),\n\t\t\tthis.paginationButtonClass(),\n\t\t\tthis.showPaginationControls() ? 'inline-flex' : 'hidden',\n\t\t),\n\t);\n\n\tprotected _itemSelected(_event: KeyboardEvent) {\n\t\t/* noop - the native button activation selects the focused tab */\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnTabsTrigger } from '@spartan-ng/brain/tabs';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTabsTrigger]',\n\texportAs: 'hlmTabsTrigger',\n\thostDirectives: [{ directive: BrnTabsTrigger, inputs: ['brnTabsTrigger: hlmTabsTrigger', 'disabled'] }],\n\thost: {\n\t\t'data-slot': 'tabs-trigger',\n\t},\n})\nexport class HlmTabsTrigger {\n\tpublic readonly triggerFor = input.required<string>({ alias: 'hlmTabsTrigger' });\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t`gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0`,\n\t\t\t'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent',\n\t\t\t'data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground',\n\t\t\t'after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',\n\t\t]);\n\t}\n}\n","import { HlmTabs } from './lib/hlm-tabs';\nimport { HlmTabsContent } from './lib/hlm-tabs-content';\nimport { HlmTabsContentLazy } from './lib/hlm-tabs-content-lazy';\nimport { HlmTabsList } from './lib/hlm-tabs-list';\nimport { HlmTabsPaginatedList } from './lib/hlm-tabs-paginated-list';\nimport { HlmTabsTrigger } from './lib/hlm-tabs-trigger';\n\nexport * from './lib/hlm-tabs';\nexport * from './lib/hlm-tabs-content';\nexport * from './lib/hlm-tabs-content-lazy';\nexport * from './lib/hlm-tabs-list';\nexport * from './lib/hlm-tabs-paginated-list';\nexport * from './lib/hlm-tabs-trigger';\n\nexport const HlmTabsImports = [\n\tHlmTabs,\n\tHlmTabsList,\n\tHlmTabsTrigger,\n\tHlmTabsContent,\n\tHlmTabsContentLazy,\n\tHlmTabsPaginatedList,\n] as const;\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTrace],hlm-trace',\n\texportAs: 'hlmTrace',\n\thost: { 'data-slot': 'trace' },\n})\nexport class HlmTrace {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'*:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/50 gap-2 *:has-[>[data-slot=trace-line]]:rounded-md *:has-[>[data-slot=trace-line]]:focus-visible:ring-3 flex w-full min-w-0 flex-col *:has-[>[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnCollapsible } from '@spartan-ng/brain/collapsible';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTraceCollapsible],hlm-trace-collapsible',\n\texportAs: 'hlmTraceCollapsible',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnCollapsible,\n\t\t\tinputs: ['expanded', 'disabled'],\n\t\t\toutputs: ['expandedChange'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'trace-collapsible' },\n})\nexport class HlmTraceCollapsible {\n\tconstructor() {\n\t\tclasses(() => 'flex w-full min-w-0 flex-col');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnCollapsibleContent } from '@spartan-ng/brain/collapsible';\nimport { classes, hlm } from '../../utils';\nimport { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-trace-collapsible-content',\n\texportAs: 'hlmTraceCollapsibleContent',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnCollapsibleContent, inputs: ['id'] }],\n\thost: { 'data-slot': 'trace-collapsible-content' },\n\ttemplate: `\n\t\t<div [class]=\"_computedContentInnerClasses()\" data-slot=\"trace-collapsible-content-inner\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n})\nexport class HlmTraceCollapsibleContent {\n\tpublic readonly contentInnerClasses = input<ClassValue>();\n\n\tprotected readonly _computedContentInnerClasses = computed(() =>\n\t\thlm(\n\t\t\t'mt-2 mb-1 ml-[calc(--spacing(2)-1px)] border-l pr-1 pl-4 leading-relaxed text-muted-foreground min-w-0 wrap-break-word',\n\t\t\tthis.contentInnerClasses(),\n\t\t),\n\t);\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'duration-200 block min-w-0 overflow-hidden transition-[height] data-[state=closed]:h-0 data-[state=open]:h-(--brn-collapsible-content-height) motion-reduce:transition-none',\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronRight } from '@ng-icons/lucide';\nimport { BrnCollapsibleTrigger } from '@spartan-ng/brain/collapsible';\nimport { classes } from '../../utils';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[hlmTraceCollapsibleTrigger]',\n\texportAs: 'hlmTraceCollapsibleTrigger',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thostDirectives: [{ directive: BrnCollapsibleTrigger, inputs: ['type'] }],\n\thost: { 'data-slot': 'trace-collapsible-trigger' },\n\ttemplate: `\n\t\t<ng-content />\n\t\t<ng-icon\n\t\t\tname=\"lucideChevronRight\"\n\t\t\tclass=\"transition-transform group-aria-expanded/trace-collapsible-trigger:rotate-90 motion-reduce:transition-none\"\n\t\t/>\n\t`,\n})\nexport class HlmTraceCollapsibleTrigger {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'focus-visible:ring-ring/50 gap-1 rounded-md focus-visible:ring-3 group/trace-collapsible-trigger text-muted-foreground hover:text-foreground has-[[data-status=error]]:text-destructive flex w-fit max-w-full min-w-0 cursor-pointer items-center text-left transition-colors outline-none',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTraceDescription],hlm-trace-description',\n\texportAs: 'hlmTraceDescription',\n\thost: { 'data-slot': 'trace-description' },\n})\nexport class HlmTraceDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground/70 shrink-0 tabular-nums');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTraceIcon],hlm-trace-icon',\n\texportAs: 'hlmTraceIcon',\n\thost: { 'data-slot': 'trace-icon', '[attr.aria-hidden]': 'true' },\n})\nexport class HlmTraceIcon {\n\tconstructor() {\n\t\tclasses(() => \"size-4 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] [[data-slot=trace-title]~&]:-ml-1 flex shrink-0 items-center justify-center [&_ng-icon]:pointer-events-none\");\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTraceLine],hlm-trace-line',\n\texportAs: 'hlmTraceLine',\n\thost: { 'data-slot': 'trace-line', '[attr.data-status]': 'status()' },\n})\nexport class HlmTraceLine {\n\tpublic readonly status = input<'running' | 'error' | 'pending'>();\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'gap-2 text-sm text-muted-foreground [a:hover,button:hover]:text-foreground data-[status=error]:text-destructive data-[status=error]:in-[a:hover,button:hover]:text-destructive data-[status=running]:*:data-[slot=trace-title]:shimmer flex w-fit max-w-full min-w-0 items-center transition-colors data-[status=pending]:opacity-60 [a,button]:cursor-pointer',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\n@Directive({\n\tselector: '[hlmTraceTitle],hlm-trace-title',\n\texportAs: 'hlmTraceTitle',\n\thost: { 'data-slot': 'trace-title' },\n})\nexport class HlmTraceTitle {\n\tconstructor() {\n\t\tclasses(() => 'motion-reduce:shimmer-none min-w-0 truncate');\n\t}\n}\n","import { HlmTrace } from './lib/hlm-trace';\nimport { HlmTraceCollapsible } from './lib/hlm-trace-collapsible';\nimport { HlmTraceCollapsibleContent } from './lib/hlm-trace-collapsible-content';\nimport { HlmTraceCollapsibleTrigger } from './lib/hlm-trace-collapsible-trigger';\nimport { HlmTraceDescription } from './lib/hlm-trace-description';\nimport { HlmTraceIcon } from './lib/hlm-trace-icon';\nimport { HlmTraceLine } from './lib/hlm-trace-line';\nimport { HlmTraceTitle } from './lib/hlm-trace-title';\n\nexport * from './lib/hlm-trace';\nexport * from './lib/hlm-trace-collapsible';\nexport * from './lib/hlm-trace-collapsible-content';\nexport * from './lib/hlm-trace-collapsible-trigger';\nexport * from './lib/hlm-trace-description';\nexport * from './lib/hlm-trace-icon';\nexport * from './lib/hlm-trace-line';\nexport * from './lib/hlm-trace-title';\n\nexport const HlmTraceImports = [\n\tHlmTrace,\n\tHlmTraceCollapsible,\n\tHlmTraceCollapsibleContent,\n\tHlmTraceCollapsibleTrigger,\n\tHlmTraceDescription,\n\tHlmTraceIcon,\n\tHlmTraceLine,\n\tHlmTraceTitle,\n] as const;\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmBlockquote = 'mt-6 border-border border-l-2 pl-6 italic';\n\n@Directive({\n\tselector: '[hlmBlockquote]',\n\texportAs: 'hlmBlockquote',\n})\nexport class HlmBlockquote {\n\tconstructor() {\n\t\tclasses(() => hlmBlockquote);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmCode = 'relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold';\n\n@Directive({\n\tselector: '[hlmCode]',\n\texportAs: 'hlmCode',\n})\nexport class HlmCode {\n\tconstructor() {\n\t\tclasses(() => hlmCode);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmH1 = 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl';\n\n@Directive({\n\tselector: '[hlmH1]',\n\texportAs: 'hlmH1',\n})\nexport class HlmH1 {\n\tconstructor() {\n\t\tclasses(() => hlmH1);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmH2 =\n\t'scroll-m-20 border-border border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0';\n\n@Directive({\n\tselector: '[hlmH2]',\n\texportAs: 'hlmH2',\n})\nexport class HlmH2 {\n\tconstructor() {\n\t\tclasses(() => hlmH2);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmH3 = 'scroll-m-20 text-2xl font-semibold tracking-tight';\n\n@Directive({\n\tselector: '[hlmH3]',\n\texportAs: 'hlmH3',\n})\nexport class HlmH3 {\n\tconstructor() {\n\t\tclasses(() => hlmH3);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmH4 = 'scroll-m-20 text-xl font-semibold tracking-tight';\n\n@Directive({\n\tselector: '[hlmH4]',\n\texportAs: 'hlmH4',\n})\nexport class HlmH4 {\n\tconstructor() {\n\t\tclasses(() => hlmH4);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmLarge = 'text-lg font-semibold';\n\n@Directive({\n\tselector: '[hlmLarge]',\n\texportAs: 'hlmLarge',\n})\nexport class HlmLarge {\n\tconstructor() {\n\t\tclasses(() => hlmLarge);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmLead = 'text-xl text-muted-foreground';\n\n@Directive({\n\tselector: '[hlmLead]',\n\texportAs: 'hlmLead',\n})\nexport class HlmLead {\n\tconstructor() {\n\t\tclasses(() => hlmLead);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmMuted = 'text-sm text-muted-foreground';\n\n@Directive({\n\tselector: '[hlmMuted]',\n\texportAs: 'hlmMuted',\n})\nexport class HlmMuted {\n\tconstructor() {\n\t\tclasses(() => hlmMuted);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmP = 'leading-7 [&:not(:first-child)]:mt-6';\n\n@Directive({\n\tselector: '[hlmP]',\n\texportAs: 'hlmP',\n})\nexport class HlmP {\n\tconstructor() {\n\t\tclasses(() => hlmP);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmSmall = 'text-sm font-medium leading-none';\n\n@Directive({\n\tselector: '[hlmSmall]',\n\texportAs: 'hlmSmall',\n})\nexport class HlmSmall {\n\tconstructor() {\n\t\tclasses(() => hlmSmall);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '../../utils';\n\nexport const hlmUl = 'my-6 ml-6 list-disc [&>li]:mt-2';\n\n@Directive({\n\tselector: '[hlmUl]',\n\texportAs: 'hlmUl',\n})\nexport class HlmUl {\n\tconstructor() {\n\t\tclasses(() => hlmUl);\n\t}\n}\n","import { HlmBlockquote } from './lib/hlm-blockquote';\nimport { HlmCode } from './lib/hlm-code';\nimport { HlmH1 } from './lib/hlm-h1';\nimport { HlmH2 } from './lib/hlm-h2';\nimport { HlmH3 } from './lib/hlm-h3';\nimport { HlmH4 } from './lib/hlm-h4';\nimport { HlmLarge } from './lib/hlm-large';\nimport { HlmLead } from './lib/hlm-lead';\nimport { HlmMuted } from './lib/hlm-muted';\nimport { HlmP } from './lib/hlm-p';\nimport { HlmSmall } from './lib/hlm-small';\nimport { HlmUl } from './lib/hlm-ul';\n\nexport * from './lib/hlm-blockquote';\nexport * from './lib/hlm-code';\nexport * from './lib/hlm-h1';\nexport * from './lib/hlm-h2';\nexport * from './lib/hlm-h3';\nexport * from './lib/hlm-h4';\nexport * from './lib/hlm-large';\nexport * from './lib/hlm-lead';\nexport * from './lib/hlm-muted';\nexport * from './lib/hlm-p';\nexport * from './lib/hlm-small';\nexport * from './lib/hlm-ul';\n\nexport const HlmTypographyImports = [\n\tHlmBlockquote,\n\tHlmCode,\n\tHlmH1,\n\tHlmH2,\n\tHlmH3,\n\tHlmH4,\n\tHlmLarge,\n\tHlmLead,\n\tHlmMuted,\n\tHlmP,\n\tHlmSmall,\n\tHlmUl,\n];\n"],"mappings":"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"}
|