@spartan-ng/cli 0.0.1-alpha.707 → 0.0.1-alpha.708
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/package.json +8 -8
- package/src/generators/base/generator.js +39 -43
- package/src/generators/base/generator.js.map +1 -1
- package/src/generators/base/lib/build-dependency-array.js +10 -14
- package/src/generators/base/lib/build-dependency-array.js.map +1 -1
- package/src/generators/base/lib/deleteFiles.js +3 -6
- package/src/generators/base/lib/deleteFiles.js.map +1 -1
- package/src/generators/base/lib/generate-as.js +1 -4
- package/src/generators/base/lib/generate-as.js.map +1 -1
- package/src/generators/base/lib/get-target-library-directory.js +5 -9
- package/src/generators/base/lib/get-target-library-directory.js.map +1 -1
- package/src/generators/base/lib/initialize-angular-library.js +24 -30
- package/src/generators/base/lib/initialize-angular-library.js.map +1 -1
- package/src/generators/base/lib/single-lib-name.js +1 -4
- package/src/generators/base/lib/single-lib-name.js.map +1 -1
- package/src/generators/base/lib/styles/create-style-map.js +8 -13
- package/src/generators/base/lib/styles/create-style-map.js.map +1 -1
- package/src/generators/base/lib/styles/index.js +3 -6
- package/src/generators/base/lib/styles/index.js.map +1 -1
- package/src/generators/base/lib/styles/transform-style-map.js +23 -27
- package/src/generators/base/lib/styles/transform-style-map.js.map +1 -1
- package/src/generators/base/lib/styles/transform.js +5 -8
- package/src/generators/base/lib/styles/transform.js.map +1 -1
- package/src/generators/base/lib/supported-libs.js +0 -2
- package/src/generators/base/versions.js +6 -9
- package/src/generators/base/versions.js.map +1 -1
- package/src/generators/healthcheck/compat.js +3 -5
- package/src/generators/healthcheck/compat.js.map +1 -1
- package/src/generators/healthcheck/generator.js +72 -75
- package/src/generators/healthcheck/generator.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brain-imports.js +9 -13
- package/src/generators/healthcheck/healthchecks/brain-imports.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-accordion-trigger.js +20 -24
- package/src/generators/healthcheck/healthchecks/brn-accordion-trigger.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-checkbox-changed-event-rename.js +7 -11
- package/src/generators/healthcheck/healthchecks/brn-checkbox-changed-event-rename.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-collapsible.js +7 -10
- package/src/generators/healthcheck/healthchecks/brn-collapsible.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-radio.js +7 -10
- package/src/generators/healthcheck/healthchecks/brn-radio.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-select.js +7 -11
- package/src/generators/healthcheck/healthchecks/brn-select.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-separator.js +7 -10
- package/src/generators/healthcheck/healthchecks/brn-separator.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-switch-changed-event-rename.js +7 -11
- package/src/generators/healthcheck/healthchecks/brn-switch-changed-event-rename.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-toggle-group-2.js +7 -11
- package/src/generators/healthcheck/healthchecks/brn-toggle-group-2.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-toggle-group.js +7 -10
- package/src/generators/healthcheck/healthchecks/brn-toggle-group.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/brn-toggle.js +7 -11
- package/src/generators/healthcheck/healthchecks/brn-toggle.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/core-imports.js +7 -10
- package/src/generators/healthcheck/healthchecks/core-imports.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/helm-imports.js +9 -13
- package/src/generators/healthcheck/healthchecks/helm-imports.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-date-picker.js +7 -11
- package/src/generators/healthcheck/healthchecks/hlm-date-picker.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-dialog-portal.js +7 -11
- package/src/generators/healthcheck/healthchecks/hlm-dialog-portal.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-dialog.js +8 -12
- package/src/generators/healthcheck/healthchecks/hlm-dialog.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-form-field.js +7 -11
- package/src/generators/healthcheck/healthchecks/hlm-form-field.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-icon.js +7 -10
- package/src/generators/healthcheck/healthchecks/hlm-icon.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-input-id.js +7 -11
- package/src/generators/healthcheck/healthchecks/hlm-input-id.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-menu.js +8 -12
- package/src/generators/healthcheck/healthchecks/hlm-menu.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-progress.js +7 -11
- package/src/generators/healthcheck/healthchecks/hlm-progress.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-scroll-area.js +7 -10
- package/src/generators/healthcheck/healthchecks/hlm-scroll-area.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm-select.js +10 -14
- package/src/generators/healthcheck/healthchecks/hlm-select.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/hlm.js +7 -11
- package/src/generators/healthcheck/healthchecks/hlm.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/module-imports.js +9 -13
- package/src/generators/healthcheck/healthchecks/module-imports.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/naming-conventions.js +9 -13
- package/src/generators/healthcheck/healthchecks/naming-conventions.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/sonner.js +7 -11
- package/src/generators/healthcheck/healthchecks/sonner.js.map +1 -1
- package/src/generators/healthcheck/healthchecks/version.js +9 -13
- package/src/generators/healthcheck/healthchecks/version.js.map +1 -1
- package/src/generators/healthcheck/healthchecks.js +5 -9
- package/src/generators/healthcheck/healthchecks.js.map +1 -1
- package/src/generators/healthcheck/utils/prompt.js +1 -4
- package/src/generators/healthcheck/utils/prompt.js.map +1 -1
- package/src/generators/healthcheck/utils/reporter.js +19 -23
- package/src/generators/healthcheck/utils/reporter.js.map +1 -1
- package/src/generators/healthcheck/utils/runner.js +6 -9
- package/src/generators/healthcheck/utils/runner.js.map +1 -1
- package/src/generators/info/compat.js +3 -5
- package/src/generators/info/compat.js.map +1 -1
- package/src/generators/info/generator.js +8 -44
- package/src/generators/info/generator.js.map +1 -1
- package/src/generators/info/lib/collect-info.js +7 -10
- package/src/generators/info/lib/collect-info.js.map +1 -1
- package/src/generators/init/compat.js +3 -5
- package/src/generators/init/compat.js.map +1 -1
- package/src/generators/init/generator.js +14 -18
- package/src/generators/init/generator.js.map +1 -1
- package/src/generators/migrate-brain-accordion-trigger/compat.js +3 -6
- package/src/generators/migrate-brain-accordion-trigger/compat.js.map +1 -1
- package/src/generators/migrate-brain-accordion-trigger/generator.js +18 -21
- package/src/generators/migrate-brain-accordion-trigger/generator.js.map +1 -1
- package/src/generators/migrate-brain-accordion-trigger/utils/html-utils.js +10 -20
- package/src/generators/migrate-brain-accordion-trigger/utils/html-utils.js.map +1 -1
- package/src/generators/migrate-brain-accordion-trigger/utils/shared-utils.js +17 -24
- package/src/generators/migrate-brain-accordion-trigger/utils/shared-utils.js.map +1 -1
- package/src/generators/migrate-brain-imports/compat.js +3 -5
- package/src/generators/migrate-brain-imports/compat.js.map +1 -1
- package/src/generators/migrate-brain-imports/generator.js +21 -26
- package/src/generators/migrate-brain-imports/generator.js.map +1 -1
- package/src/generators/migrate-brain-imports/import-map.js +1 -3
- package/src/generators/migrate-brain-imports/import-map.js.map +1 -1
- package/src/generators/migrate-brain-imports/utils/binary-extensions.js +3 -6
- package/src/generators/migrate-brain-imports/utils/binary-extensions.js.map +1 -1
- package/src/generators/migrate-brn-checkbox-changed-event/compat.js +3 -6
- package/src/generators/migrate-brn-checkbox-changed-event/compat.js.map +1 -1
- package/src/generators/migrate-brn-checkbox-changed-event/generator.js +6 -9
- package/src/generators/migrate-brn-checkbox-changed-event/generator.js.map +1 -1
- package/src/generators/migrate-brn-select/compat.js +3 -5
- package/src/generators/migrate-brn-select/compat.js.map +1 -1
- package/src/generators/migrate-brn-select/generator.js +7 -10
- package/src/generators/migrate-brn-select/generator.js.map +1 -1
- package/src/generators/migrate-brn-switch-changed-event/compat.js +3 -6
- package/src/generators/migrate-brn-switch-changed-event/compat.js.map +1 -1
- package/src/generators/migrate-brn-switch-changed-event/generator.js +6 -9
- package/src/generators/migrate-brn-switch-changed-event/generator.js.map +1 -1
- package/src/generators/migrate-brn-toggle-group/compat.js +3 -6
- package/src/generators/migrate-brn-toggle-group/compat.js.map +1 -1
- package/src/generators/migrate-brn-toggle-group/generator.js +7 -10
- package/src/generators/migrate-brn-toggle-group/generator.js.map +1 -1
- package/src/generators/migrate-collapsible/compat.js +3 -6
- package/src/generators/migrate-collapsible/compat.js.map +1 -1
- package/src/generators/migrate-collapsible/generator.js +7 -10
- package/src/generators/migrate-collapsible/generator.js.map +1 -1
- package/src/generators/migrate-core/compat.js +3 -5
- package/src/generators/migrate-core/compat.js.map +1 -1
- package/src/generators/migrate-core/generator.js +7 -10
- package/src/generators/migrate-core/generator.js.map +1 -1
- package/src/generators/migrate-date-picker/compat.js +3 -6
- package/src/generators/migrate-date-picker/compat.js.map +1 -1
- package/src/generators/migrate-date-picker/generator.js +6 -9
- package/src/generators/migrate-date-picker/generator.js.map +1 -1
- package/src/generators/migrate-dialog/compat.js +3 -5
- package/src/generators/migrate-dialog/compat.js.map +1 -1
- package/src/generators/migrate-dialog/generator.js +8 -12
- package/src/generators/migrate-dialog/generator.js.map +1 -1
- package/src/generators/migrate-dialog-portal/compat.js +3 -5
- package/src/generators/migrate-dialog-portal/compat.js.map +1 -1
- package/src/generators/migrate-dialog-portal/generator.js +9 -12
- package/src/generators/migrate-dialog-portal/generator.js.map +1 -1
- package/src/generators/migrate-form-field/compat.js +3 -5
- package/src/generators/migrate-form-field/compat.js.map +1 -1
- package/src/generators/migrate-form-field/generator.js +10 -13
- package/src/generators/migrate-form-field/generator.js.map +1 -1
- package/src/generators/migrate-helm-imports/compat.js +3 -5
- package/src/generators/migrate-helm-imports/compat.js.map +1 -1
- package/src/generators/migrate-helm-imports/generator.js +13 -17
- package/src/generators/migrate-helm-imports/generator.js.map +1 -1
- package/src/generators/migrate-helm-imports/import-map.js +1 -3
- package/src/generators/migrate-helm-imports/import-map.js.map +1 -1
- package/src/generators/migrate-helm-libraries/compat.js +3 -6
- package/src/generators/migrate-helm-libraries/compat.js.map +1 -1
- package/src/generators/migrate-helm-libraries/generator.js +31 -67
- package/src/generators/migrate-helm-libraries/generator.js.map +1 -1
- package/src/generators/migrate-hlm/compat.js +3 -6
- package/src/generators/migrate-hlm/compat.js.map +1 -1
- package/src/generators/migrate-hlm/generator.js +11 -47
- package/src/generators/migrate-hlm/generator.js.map +1 -1
- package/src/generators/migrate-icon/compat.js +3 -5
- package/src/generators/migrate-icon/compat.js.map +1 -1
- package/src/generators/migrate-icon/generator.js +34 -38
- package/src/generators/migrate-icon/generator.js.map +1 -1
- package/src/generators/migrate-input-id/compat.js +3 -6
- package/src/generators/migrate-input-id/compat.js.map +1 -1
- package/src/generators/migrate-input-id/generator.js +6 -9
- package/src/generators/migrate-input-id/generator.js.map +1 -1
- package/src/generators/migrate-menu/compat.js +3 -5
- package/src/generators/migrate-menu/compat.js.map +1 -1
- package/src/generators/migrate-menu/generator.js +14 -18
- package/src/generators/migrate-menu/generator.js.map +1 -1
- package/src/generators/migrate-module-imports/compat.js +3 -5
- package/src/generators/migrate-module-imports/compat.js.map +1 -1
- package/src/generators/migrate-module-imports/generator.js +15 -19
- package/src/generators/migrate-module-imports/generator.js.map +1 -1
- package/src/generators/migrate-module-imports/import-map.js +1 -3
- package/src/generators/migrate-module-imports/import-map.js.map +1 -1
- package/src/generators/migrate-naming-convention/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/generators/migrate-naming-convention/compat.js +3 -6
- package/src/generators/migrate-naming-convention/compat.js.map +1 -1
- package/src/generators/migrate-naming-convention/generator.js +12 -15
- package/src/generators/migrate-naming-convention/generator.js.map +1 -1
- package/src/generators/migrate-progress/compat.js +3 -5
- package/src/generators/migrate-progress/compat.js.map +1 -1
- package/src/generators/migrate-progress/generator.js +5 -8
- package/src/generators/migrate-progress/generator.js.map +1 -1
- package/src/generators/migrate-radio/compat.js +3 -6
- package/src/generators/migrate-radio/compat.js.map +1 -1
- package/src/generators/migrate-radio/generator.js +7 -10
- package/src/generators/migrate-radio/generator.js.map +1 -1
- package/src/generators/migrate-scroll-area/compat.js +3 -5
- package/src/generators/migrate-scroll-area/compat.js.map +1 -1
- package/src/generators/migrate-scroll-area/generator.js +20 -24
- package/src/generators/migrate-scroll-area/generator.js.map +1 -1
- package/src/generators/migrate-select/compat.js +3 -6
- package/src/generators/migrate-select/compat.js.map +1 -1
- package/src/generators/migrate-select/generator.js +9 -12
- package/src/generators/migrate-select/generator.js.map +1 -1
- package/src/generators/migrate-separator/compat.js +3 -6
- package/src/generators/migrate-separator/compat.js.map +1 -1
- package/src/generators/migrate-separator/generator.js +7 -10
- package/src/generators/migrate-separator/generator.js.map +1 -1
- package/src/generators/migrate-sonner/compat.js +3 -5
- package/src/generators/migrate-sonner/compat.js.map +1 -1
- package/src/generators/migrate-sonner/generator.js +6 -9
- package/src/generators/migrate-sonner/generator.js.map +1 -1
- package/src/generators/migrate-toggle/compat.js +3 -6
- package/src/generators/migrate-toggle/compat.js.map +1 -1
- package/src/generators/migrate-toggle/generator.js +7 -10
- package/src/generators/migrate-toggle/generator.js.map +1 -1
- package/src/generators/migrate-toggle-group/compat.js +3 -6
- package/src/generators/migrate-toggle-group/compat.js.map +1 -1
- package/src/generators/migrate-toggle-group/generator.js +8 -11
- package/src/generators/migrate-toggle-group/generator.js.map +1 -1
- package/src/generators/theme/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/generators/theme/compat.js +3 -6
- package/src/generators/theme/compat.js.map +1 -1
- package/src/generators/theme/generator.js +10 -13
- package/src/generators/theme/generator.js.map +1 -1
- package/src/generators/theme/libs/add-theme-to-application-styles.js +14 -17
- package/src/generators/theme/libs/add-theme-to-application-styles.js.map +1 -1
- package/src/generators/theme/libs/colors.js +3 -6
- package/src/generators/theme/libs/colors.js.map +1 -1
- package/src/generators/ui/add-dependent-primitive.js +5 -9
- package/src/generators/ui/add-dependent-primitive.js.map +1 -1
- package/src/generators/ui/compat.js +3 -6
- package/src/generators/ui/compat.js.map +1 -1
- package/src/generators/ui/generator.js +17 -54
- package/src/generators/ui/generator.js.map +1 -1
- package/src/generators/ui/libs/accordion/generator.js +3 -7
- package/src/generators/ui/libs/accordion/generator.js.map +1 -1
- package/src/generators/ui/libs/alert/generator.js +3 -7
- package/src/generators/ui/libs/alert/generator.js.map +1 -1
- package/src/generators/ui/libs/alert-dialog/generator.js +3 -7
- package/src/generators/ui/libs/alert-dialog/generator.js.map +1 -1
- package/src/generators/ui/libs/aspect-ratio/generator.js +3 -7
- package/src/generators/ui/libs/aspect-ratio/generator.js.map +1 -1
- package/src/generators/ui/libs/autocomplete/generator.js +3 -7
- package/src/generators/ui/libs/autocomplete/generator.js.map +1 -1
- package/src/generators/ui/libs/avatar/generator.js +3 -7
- package/src/generators/ui/libs/avatar/generator.js.map +1 -1
- package/src/generators/ui/libs/badge/generator.js +3 -7
- package/src/generators/ui/libs/badge/generator.js.map +1 -1
- package/src/generators/ui/libs/breadcrumb/generator.js +3 -7
- package/src/generators/ui/libs/breadcrumb/generator.js.map +1 -1
- package/src/generators/ui/libs/button/generator.js +3 -7
- package/src/generators/ui/libs/button/generator.js.map +1 -1
- package/src/generators/ui/libs/button-group/generator.js +3 -7
- package/src/generators/ui/libs/button-group/generator.js.map +1 -1
- package/src/generators/ui/libs/calendar/generator.js +3 -7
- package/src/generators/ui/libs/calendar/generator.js.map +1 -1
- package/src/generators/ui/libs/card/files/lib/hlm-card-action.ts.template +1 -3
- package/src/generators/ui/libs/card/files/lib/hlm-card-content.ts.template +1 -3
- package/src/generators/ui/libs/card/files/lib/hlm-card-description.ts.template +1 -3
- package/src/generators/ui/libs/card/files/lib/hlm-card-footer.ts.template +1 -3
- package/src/generators/ui/libs/card/files/lib/hlm-card-header.ts.template +2 -4
- package/src/generators/ui/libs/card/files/lib/hlm-card-title.ts.template +1 -3
- package/src/generators/ui/libs/card/generator.js +3 -7
- package/src/generators/ui/libs/card/generator.js.map +1 -1
- package/src/generators/ui/libs/carousel/generator.js +3 -7
- package/src/generators/ui/libs/carousel/generator.js.map +1 -1
- package/src/generators/ui/libs/checkbox/generator.js +3 -7
- package/src/generators/ui/libs/checkbox/generator.js.map +1 -1
- package/src/generators/ui/libs/collapsible/generator.js +3 -7
- package/src/generators/ui/libs/collapsible/generator.js.map +1 -1
- package/src/generators/ui/libs/combobox/generator.js +3 -7
- package/src/generators/ui/libs/combobox/generator.js.map +1 -1
- package/src/generators/ui/libs/command/generator.js +3 -7
- package/src/generators/ui/libs/command/generator.js.map +1 -1
- package/src/generators/ui/libs/context-menu/generator.js +3 -7
- package/src/generators/ui/libs/context-menu/generator.js.map +1 -1
- package/src/generators/ui/libs/date-picker/files/index.ts.template +17 -4
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-anchor.ts.template +28 -0
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-input.ts.template +175 -0
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-multi.ts.template +34 -72
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-trigger.token.ts.template +11 -0
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-trigger.ts.template +87 -0
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker.token.ts.template +45 -1
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker.ts.template +61 -80
- package/src/generators/ui/libs/date-picker/files/lib/hlm-date-range-picker.ts.template +38 -74
- package/src/generators/ui/libs/date-picker/generator.js +3 -7
- package/src/generators/ui/libs/date-picker/generator.js.map +1 -1
- package/src/generators/ui/libs/dialog/generator.js +3 -7
- package/src/generators/ui/libs/dialog/generator.js.map +1 -1
- package/src/generators/ui/libs/dropdown-menu/generator.js +3 -7
- package/src/generators/ui/libs/dropdown-menu/generator.js.map +1 -1
- package/src/generators/ui/libs/empty/generator.js +3 -7
- package/src/generators/ui/libs/empty/generator.js.map +1 -1
- package/src/generators/ui/libs/field/files/lib/hlm-field-error.ts.template +1 -1
- package/src/generators/ui/libs/field/generator.js +3 -7
- package/src/generators/ui/libs/field/generator.js.map +1 -1
- package/src/generators/ui/libs/hover-card/generator.js +3 -7
- package/src/generators/ui/libs/hover-card/generator.js.map +1 -1
- package/src/generators/ui/libs/icon/generator.js +3 -7
- package/src/generators/ui/libs/icon/generator.js.map +1 -1
- package/src/generators/ui/libs/input/generator.js +3 -7
- package/src/generators/ui/libs/input/generator.js.map +1 -1
- package/src/generators/ui/libs/input-group/generator.js +3 -7
- package/src/generators/ui/libs/input-group/generator.js.map +1 -1
- package/src/generators/ui/libs/input-otp/generator.js +3 -7
- package/src/generators/ui/libs/input-otp/generator.js.map +1 -1
- package/src/generators/ui/libs/item/generator.js +3 -7
- package/src/generators/ui/libs/item/generator.js.map +1 -1
- package/src/generators/ui/libs/kbd/generator.js +3 -7
- package/src/generators/ui/libs/kbd/generator.js.map +1 -1
- package/src/generators/ui/libs/label/generator.js +3 -7
- package/src/generators/ui/libs/label/generator.js.map +1 -1
- package/src/generators/ui/libs/menubar/generator.js +3 -7
- package/src/generators/ui/libs/menubar/generator.js.map +1 -1
- package/src/generators/ui/libs/native-select/generator.js +3 -7
- package/src/generators/ui/libs/native-select/generator.js.map +1 -1
- package/src/generators/ui/libs/navigation-menu/generator.js +3 -7
- package/src/generators/ui/libs/navigation-menu/generator.js.map +1 -1
- package/src/generators/ui/libs/pagination/generator.js +3 -7
- package/src/generators/ui/libs/pagination/generator.js.map +1 -1
- package/src/generators/ui/libs/popover/generator.js +3 -7
- package/src/generators/ui/libs/popover/generator.js.map +1 -1
- package/src/generators/ui/libs/progress/generator.js +3 -7
- package/src/generators/ui/libs/progress/generator.js.map +1 -1
- package/src/generators/ui/libs/radio-group/generator.js +3 -7
- package/src/generators/ui/libs/radio-group/generator.js.map +1 -1
- package/src/generators/ui/libs/resizable/generator.js +3 -7
- package/src/generators/ui/libs/resizable/generator.js.map +1 -1
- package/src/generators/ui/libs/scroll-area/generator.js +3 -7
- package/src/generators/ui/libs/scroll-area/generator.js.map +1 -1
- package/src/generators/ui/libs/select/generator.js +3 -7
- package/src/generators/ui/libs/select/generator.js.map +1 -1
- package/src/generators/ui/libs/separator/generator.js +3 -7
- package/src/generators/ui/libs/separator/generator.js.map +1 -1
- package/src/generators/ui/libs/sheet/generator.js +3 -7
- package/src/generators/ui/libs/sheet/generator.js.map +1 -1
- package/src/generators/ui/libs/sidebar/generator.js +3 -7
- package/src/generators/ui/libs/sidebar/generator.js.map +1 -1
- package/src/generators/ui/libs/skeleton/generator.js +3 -7
- package/src/generators/ui/libs/skeleton/generator.js.map +1 -1
- package/src/generators/ui/libs/slider/generator.js +3 -7
- package/src/generators/ui/libs/slider/generator.js.map +1 -1
- package/src/generators/ui/libs/sonner/generator.js +3 -7
- package/src/generators/ui/libs/sonner/generator.js.map +1 -1
- package/src/generators/ui/libs/spinner/generator.js +3 -7
- package/src/generators/ui/libs/spinner/generator.js.map +1 -1
- package/src/generators/ui/libs/switch/generator.js +3 -7
- package/src/generators/ui/libs/switch/generator.js.map +1 -1
- package/src/generators/ui/libs/table/generator.js +3 -7
- package/src/generators/ui/libs/table/generator.js.map +1 -1
- package/src/generators/ui/libs/tabs/generator.js +3 -7
- package/src/generators/ui/libs/tabs/generator.js.map +1 -1
- package/src/generators/ui/libs/textarea/generator.js +3 -7
- package/src/generators/ui/libs/textarea/generator.js.map +1 -1
- package/src/generators/ui/libs/toggle/generator.js +3 -7
- package/src/generators/ui/libs/toggle/generator.js.map +1 -1
- package/src/generators/ui/libs/toggle-group/generator.js +3 -7
- package/src/generators/ui/libs/toggle-group/generator.js.map +1 -1
- package/src/generators/ui/libs/tooltip/generator.js +3 -7
- package/src/generators/ui/libs/tooltip/generator.js.map +1 -1
- package/src/generators/ui/libs/typography/generator.js +3 -7
- package/src/generators/ui/libs/typography/generator.js.map +1 -1
- package/src/generators/ui/libs/utils/generator.js +3 -7
- package/src/generators/ui/libs/utils/generator.js.map +1 -1
- package/src/generators/ui/primitive-deps.js +4 -8
- package/src/generators/ui/primitive-deps.js.map +1 -1
- package/src/generators/ui/primitives.js +0 -2
- package/src/generators/ui/style-luma.css +9 -4
- package/src/generators/ui/style-lyra.css +10 -5
- package/src/generators/ui/style-maia.css +10 -5
- package/src/generators/ui/style-mira.css +10 -5
- package/src/generators/ui/style-nova.css +10 -5
- package/src/generators/ui/style-vega.css +10 -5
- package/src/generators/ui/supported-ui-libraries.json +140 -140
- package/src/index.js +5 -11
- package/src/index.js.map +1 -1
- package/src/registry/index.js +1 -4
- package/src/registry/index.js.map +1 -1
- package/src/registry/schema.js +117 -120
- package/src/registry/schema.js.map +1 -1
- package/src/utils/config.js +19 -25
- package/src/utils/config.js.map +1 -1
- package/src/utils/get-project-names.js +3 -7
- package/src/utils/get-project-names.js.map +1 -1
- package/src/utils/get-tailwind-version.js +4 -9
- package/src/utils/get-tailwind-version.js.map +1 -1
- package/src/utils/hlm-class.js +9 -13
- package/src/utils/hlm-class.js.map +1 -1
- package/src/utils/import-alias.js +1 -4
- package/src/utils/import-alias.js.map +1 -1
- package/src/utils/tsconfig.js +5 -8
- package/src/utils/tsconfig.js.map +1 -1
- package/src/utils/version-utils.js +6 -9
- package/src/utils/version-utils.js.map +1 -1
- package/src/utils/visit-files.js +3 -6
- package/src/utils/visit-files.js.map +1 -1
|
@@ -3,15 +3,13 @@ import { classes } from '<%- importAlias %>/utils';
|
|
|
3
3
|
|
|
4
4
|
@Directive({
|
|
5
5
|
selector: '[hlmCardHeader],hlm-card-header',
|
|
6
|
-
host: {
|
|
7
|
-
'data-slot': 'card-header',
|
|
8
|
-
},
|
|
6
|
+
host: { 'data-slot': 'card-header' },
|
|
9
7
|
})
|
|
10
8
|
export class HlmCardHeader {
|
|
11
9
|
constructor() {
|
|
12
10
|
classes(
|
|
13
11
|
() =>
|
|
14
|
-
|
|
12
|
+
'spartan-card-header 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]',
|
|
15
13
|
);
|
|
16
14
|
}
|
|
17
15
|
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'card' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'card' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/card/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/card/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'carousel' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'carousel' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/carousel/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/carousel/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'checkbox' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'checkbox' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/checkbox/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/checkbox/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'collapsible' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'collapsible' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/collapsible/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/collapsible/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'combobox' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'combobox' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/combobox/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/combobox/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'command' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'command' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/command/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/command/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const generator_1 = tslib_1.__importDefault(require("../../../base/generator"));
|
|
6
|
-
async function generator(tree, options) {
|
|
7
|
-
return await (0, generator_1.default)(tree, { ...options, name: 'context-menu' });
|
|
1
|
+
import hlmBaseGenerator from '../../../base/generator';
|
|
2
|
+
export async function generator(tree, options) {
|
|
3
|
+
return await hlmBaseGenerator(tree, { ...options, name: 'context-menu' });
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/context-menu/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../libs/cli/src/generators/ui/libs/context-menu/generator.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,OAA+B;IAC1E,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import { HlmDatePicker } from './lib/hlm-date-picker';
|
|
2
|
+
import { HlmDatePickerAnchor } from './lib/hlm-date-picker-anchor';
|
|
3
|
+
import { HlmDatePickerInput } from './lib/hlm-date-picker-input';
|
|
2
4
|
import { HlmDatePickerMulti } from './lib/hlm-date-picker-multi';
|
|
5
|
+
import { HlmDatePickerTrigger } from './lib/hlm-date-picker-trigger';
|
|
3
6
|
import { HlmDateRangePicker } from './lib/hlm-date-range-picker';
|
|
4
7
|
|
|
5
|
-
export * from './lib/hlm-date-picker-multi.token';
|
|
6
|
-
export * from './lib/hlm-date-picker.token';
|
|
7
|
-
|
|
8
8
|
export * from './lib/hlm-date-picker';
|
|
9
|
+
export * from './lib/hlm-date-picker-anchor';
|
|
10
|
+
export * from './lib/hlm-date-picker-input';
|
|
9
11
|
export * from './lib/hlm-date-picker-multi';
|
|
12
|
+
export * from './lib/hlm-date-picker-multi.token';
|
|
13
|
+
export * from './lib/hlm-date-picker-trigger';
|
|
14
|
+
export * from './lib/hlm-date-picker-trigger.token';
|
|
15
|
+
export * from './lib/hlm-date-picker.token';
|
|
10
16
|
export * from './lib/hlm-date-range-picker';
|
|
11
17
|
export * from './lib/hlm-date-range-picker.token';
|
|
12
18
|
|
|
13
|
-
export const HlmDatePickerImports = [
|
|
19
|
+
export const HlmDatePickerImports = [
|
|
20
|
+
HlmDatePicker,
|
|
21
|
+
HlmDatePickerAnchor,
|
|
22
|
+
HlmDatePickerInput,
|
|
23
|
+
HlmDatePickerMulti,
|
|
24
|
+
HlmDateRangePicker,
|
|
25
|
+
HlmDatePickerTrigger,
|
|
26
|
+
] as const;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';
|
|
2
|
+
import { BrnDialog } from '@spartan-ng/brain/dialog';
|
|
3
|
+
import { BrnPopover } from '@spartan-ng/brain/popover';
|
|
4
|
+
|
|
5
|
+
@Directive({ selector: '[hlmDatePickerAnchor]' })
|
|
6
|
+
export class HlmDatePickerAnchor {
|
|
7
|
+
private readonly _host = inject(ElementRef, { host: true });
|
|
8
|
+
private readonly _brnDialog = inject(BrnDialog, { optional: true });
|
|
9
|
+
|
|
10
|
+
public readonly hlmDatePickerAnchorFor = input<BrnPopover | undefined>(undefined, {
|
|
11
|
+
alias: 'hlmDatePickerAnchorFor',
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
constructor() {
|
|
15
|
+
effect(() => {
|
|
16
|
+
const brnDialog = this.hlmDatePickerAnchorFor();
|
|
17
|
+
untracked(() => {
|
|
18
|
+
if (!brnDialog) return;
|
|
19
|
+
brnDialog.mutableAttachTo.set(this._host.nativeElement);
|
|
20
|
+
brnDialog.mutableCloseOnOutsidePointerEvents.set(true);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
if (!this._brnDialog) return;
|
|
25
|
+
this._brnDialog.mutableAttachTo.set(this._host.nativeElement);
|
|
26
|
+
this._brnDialog.mutableCloseOnOutsidePointerEvents.set(true);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, linkedSignal } from '@angular/core';
|
|
3
|
+
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
4
|
+
import { lucideCalendar, lucideX } from '@ng-icons/lucide';
|
|
5
|
+
import { HlmButtonImports } from '<%- importAlias %>/button';
|
|
6
|
+
import { HlmInputGroupImports } from '<%- importAlias %>/input-group';
|
|
7
|
+
import { HlmDatePickerAnchor } from './hlm-date-picker-anchor';
|
|
8
|
+
import { HlmDatePickerTriggerBase, provideHlmDatePickerTrigger } from './hlm-date-picker-trigger.token';
|
|
9
|
+
import { injectHlmDatePicker, injectHlmDatePickerConfig } from './hlm-date-picker.token';
|
|
10
|
+
|
|
11
|
+
@Component({
|
|
12
|
+
selector: 'hlm-date-picker-input',
|
|
13
|
+
imports: [HlmInputGroupImports, HlmButtonImports, HlmDatePickerAnchor, NgIcon],
|
|
14
|
+
providers: [provideIcons({ lucideCalendar, lucideX }), provideHlmDatePickerTrigger(HlmDatePickerInput)],
|
|
15
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
|
+
template: `
|
|
17
|
+
<hlm-input-group hlmDatePickerAnchor [hlmDatePickerAnchorFor]="_popover()">
|
|
18
|
+
<input
|
|
19
|
+
hlmInputGroupInput
|
|
20
|
+
[value]="_inputValue()"
|
|
21
|
+
[id]="inputId()"
|
|
22
|
+
[placeholder]="placeholder()"
|
|
23
|
+
[disabled]="_disabled()"
|
|
24
|
+
[forceInvalid]="forceInvalid()"
|
|
25
|
+
(click)="_handleClick()"
|
|
26
|
+
(keydown.arrowDown)="_open()"
|
|
27
|
+
(keydown.enter)="_handleEnter($event)"
|
|
28
|
+
(input)="_handleInputChange($event)"
|
|
29
|
+
(blur)="_commitDate()"
|
|
30
|
+
/>
|
|
31
|
+
<hlm-input-group-addon align="inline-end">
|
|
32
|
+
@if (_showClearButton()) {
|
|
33
|
+
<button
|
|
34
|
+
hlmInputGroupButton
|
|
35
|
+
size="icon-xs"
|
|
36
|
+
variant="ghost"
|
|
37
|
+
[attr.aria-label]="clearAriaLabel()"
|
|
38
|
+
(click)="_clear()"
|
|
39
|
+
[disabled]="_disabled()"
|
|
40
|
+
>
|
|
41
|
+
<ng-icon name="lucideX" />
|
|
42
|
+
</button>
|
|
43
|
+
}
|
|
44
|
+
<button
|
|
45
|
+
hlmInputGroupButton
|
|
46
|
+
size="icon-xs"
|
|
47
|
+
[attr.aria-label]="calendarAriaLabel()"
|
|
48
|
+
(click)="_popover().open()"
|
|
49
|
+
[disabled]="_disabled()"
|
|
50
|
+
>
|
|
51
|
+
<ng-icon name="lucideCalendar" />
|
|
52
|
+
</button>
|
|
53
|
+
</hlm-input-group-addon>
|
|
54
|
+
</hlm-input-group>
|
|
55
|
+
`,
|
|
56
|
+
})
|
|
57
|
+
export class HlmDatePickerInput<T> implements HlmDatePickerTriggerBase {
|
|
58
|
+
private static _nextId = 0;
|
|
59
|
+
private readonly _datePicker = injectHlmDatePicker<T>();
|
|
60
|
+
private readonly _config = injectHlmDatePickerConfig<T>();
|
|
61
|
+
|
|
62
|
+
protected readonly _popover = this._datePicker.popover;
|
|
63
|
+
protected readonly _disabled = this._datePicker.disabledState;
|
|
64
|
+
|
|
65
|
+
public readonly inputId = input(`hlm-date-picker-input-${HlmDatePickerInput._nextId++}`);
|
|
66
|
+
|
|
67
|
+
public readonly placeholder = input('');
|
|
68
|
+
|
|
69
|
+
public readonly inputValue = input<string>('');
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Parses input text into a date value. Return `undefined` for invalid
|
|
73
|
+
* input - the picker's date is cleared while the text is preserved so
|
|
74
|
+
* the user can fix it.
|
|
75
|
+
*
|
|
76
|
+
* Defaults to `parseDate` from `HlmDatePickerConfig`.
|
|
77
|
+
*/
|
|
78
|
+
public readonly parseDate = input<(value: string) => T | undefined>(this._config.parseDate);
|
|
79
|
+
|
|
80
|
+
public readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });
|
|
81
|
+
|
|
82
|
+
/** Show a clear button that resets the input and picker date. Hidden when empty. */
|
|
83
|
+
public readonly showClear = input<boolean, BooleanInput>(true, { transform: booleanAttribute });
|
|
84
|
+
|
|
85
|
+
/** Open the popover on input click. */
|
|
86
|
+
public readonly openOnClick = input<boolean, BooleanInput>(false, { transform: booleanAttribute });
|
|
87
|
+
|
|
88
|
+
/** Accessible label for the clear button. */
|
|
89
|
+
public readonly clearAriaLabel = input<string>('Clear date');
|
|
90
|
+
|
|
91
|
+
/** Accessible label for the calendar trigger button. */
|
|
92
|
+
public readonly calendarAriaLabel = input<string>('Open calendar');
|
|
93
|
+
|
|
94
|
+
/** @internal Id used by the trigger contract for labeling. */
|
|
95
|
+
public readonly triggerId = this.inputId;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Text shown in the input. Mirrors the picker's `formattedDate` and the
|
|
99
|
+
* parent's `inputValue`, and accepts user writes via `_handleInputChange`.
|
|
100
|
+
* Commits only happen on blur / Enter, so in-progress text isn't clobbered.
|
|
101
|
+
*/
|
|
102
|
+
protected readonly _inputValue = linkedSignal<{ formatted: string | undefined; inputValue: string }, string>({
|
|
103
|
+
source: () => ({
|
|
104
|
+
formatted: this._datePicker.formattedDate(),
|
|
105
|
+
inputValue: this.inputValue(),
|
|
106
|
+
}),
|
|
107
|
+
computation: (source, previous) => {
|
|
108
|
+
// First render: prefer formatted, fall back to inputValue.
|
|
109
|
+
if (previous === undefined) {
|
|
110
|
+
return source.formatted ?? source.inputValue;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Picker's formatted date changed - snap to canonical format.
|
|
114
|
+
if (source.formatted !== previous.source.formatted) {
|
|
115
|
+
if (source.formatted !== undefined) {
|
|
116
|
+
return source.formatted;
|
|
117
|
+
}
|
|
118
|
+
// Cleared externally vs. user has invalid text in flight: only
|
|
119
|
+
// mirror the clear when the displayed text was in sync.
|
|
120
|
+
return previous.value === previous.source.formatted ? '' : previous.value;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Parent updated inputValue - reflect it.
|
|
124
|
+
if (source.inputValue !== previous.source.inputValue) {
|
|
125
|
+
return source.inputValue;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return previous.value;
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
protected _handleInputChange(event: Event) {
|
|
133
|
+
const text = (event.target as HTMLInputElement).value;
|
|
134
|
+
this._inputValue.set(text);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
protected readonly _showClearButton = computed(() => this.showClear() && this._inputValue().length > 0);
|
|
138
|
+
|
|
139
|
+
protected _clear() {
|
|
140
|
+
this._inputValue.set('');
|
|
141
|
+
this._datePicker.updateDate?.(undefined);
|
|
142
|
+
this._datePicker.touched?.();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
protected _handleEnter(event: Event) {
|
|
146
|
+
event.preventDefault();
|
|
147
|
+
this._commitDate();
|
|
148
|
+
this._popover().close();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
protected _commitDate() {
|
|
152
|
+
const value = this._inputValue();
|
|
153
|
+
|
|
154
|
+
if (!value) {
|
|
155
|
+
this._datePicker.updateDate?.(undefined);
|
|
156
|
+
this._datePicker.touched?.();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Invalid parse: clear the picker date, keep the text so the user can fix it.
|
|
161
|
+
const parsed = this.parseDate()(value);
|
|
162
|
+
this._datePicker.updateDate?.(parsed ?? undefined);
|
|
163
|
+
this._datePicker.touched?.();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
protected _open() {
|
|
167
|
+
this._popover().open();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
protected _handleClick() {
|
|
171
|
+
if (this.openOnClick()) {
|
|
172
|
+
this._open();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -4,26 +4,25 @@ import {
|
|
|
4
4
|
ChangeDetectionStrategy,
|
|
5
5
|
Component,
|
|
6
6
|
computed,
|
|
7
|
+
contentChild,
|
|
7
8
|
forwardRef,
|
|
8
|
-
inject,
|
|
9
9
|
input,
|
|
10
10
|
linkedSignal,
|
|
11
11
|
numberAttribute,
|
|
12
12
|
output,
|
|
13
13
|
signal,
|
|
14
|
+
viewChild,
|
|
14
15
|
} from '@angular/core';
|
|
15
16
|
import { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
16
|
-
import { provideIcons } from '@ng-icons/core';
|
|
17
|
-
import { lucideChevronDown } from '@ng-icons/lucide';
|
|
18
17
|
import type { BrnDialogState } from '@spartan-ng/brain/dialog';
|
|
19
|
-
import { BrnFieldControl,
|
|
18
|
+
import { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';
|
|
20
19
|
import type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
|
|
20
|
+
import { BrnPopover } from '@spartan-ng/brain/popover';
|
|
21
21
|
import { HlmCalendarMulti } from '<%- importAlias %>/calendar';
|
|
22
|
-
import { HlmIconImports } from '<%- importAlias %>/icon';
|
|
23
22
|
import { HlmPopoverImports } from '<%- importAlias %>/popover';
|
|
24
|
-
import { hlm } from '<%- importAlias %>/utils';
|
|
25
|
-
import type { ClassValue } from 'clsx';
|
|
26
23
|
import { injectHlmDatePickerMultiConfig } from './hlm-date-picker-multi.token';
|
|
24
|
+
import { HlmDatePickerTriggerToken } from './hlm-date-picker-trigger.token';
|
|
25
|
+
import { HlmDatePickerBase, provideHlmDatePicker } from './hlm-date-picker.token';
|
|
27
26
|
|
|
28
27
|
export const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR = {
|
|
29
28
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -31,21 +30,17 @@ export const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR = {
|
|
|
31
30
|
multi: true,
|
|
32
31
|
};
|
|
33
32
|
|
|
34
|
-
let nextId = 0;
|
|
35
|
-
|
|
36
33
|
@Component({
|
|
37
34
|
selector: 'hlm-date-picker-multi',
|
|
38
|
-
imports: [
|
|
35
|
+
imports: [HlmPopoverImports, HlmCalendarMulti],
|
|
39
36
|
providers: [
|
|
40
37
|
HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR,
|
|
41
|
-
|
|
38
|
+
provideHlmDatePicker(HlmDatePickerMulti),
|
|
42
39
|
provideBrnLabelable(HlmDatePickerMulti),
|
|
43
40
|
],
|
|
44
41
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
45
42
|
hostDirectives: [BrnFieldControl],
|
|
46
|
-
host: {
|
|
47
|
-
class: 'block',
|
|
48
|
-
},
|
|
43
|
+
host: { class: 'block' },
|
|
49
44
|
template: `
|
|
50
45
|
<hlm-popover
|
|
51
46
|
sideOffset="5"
|
|
@@ -53,31 +48,10 @@ let nextId = 0;
|
|
|
53
48
|
(stateChanged)="_popoverState.set($event)"
|
|
54
49
|
(closed)="_onTouched?.()"
|
|
55
50
|
>
|
|
56
|
-
<
|
|
57
|
-
[id]="buttonId()"
|
|
58
|
-
type="button"
|
|
59
|
-
[class]="_computedClass()"
|
|
60
|
-
[disabled]="_mutableDisabled()"
|
|
61
|
-
[attr.aria-invalid]="_ariaInvalid()"
|
|
62
|
-
[attr.data-invalid]="_ariaInvalid()"
|
|
63
|
-
[attr.data-dirty]="_dirty?.() ? 'true' : null"
|
|
64
|
-
[attr.data-touched]="_touched?.() ? 'true' : null"
|
|
65
|
-
[attr.data-matches-spartan-invalid]="_spartanInvalid?.() ? 'true' : null"
|
|
66
|
-
hlmPopoverTrigger
|
|
67
|
-
brnFieldControlDescribedBy
|
|
68
|
-
>
|
|
69
|
-
<span class="truncate">
|
|
70
|
-
@if (_formattedDate(); as formattedDate) {
|
|
71
|
-
{{ formattedDate }}
|
|
72
|
-
} @else {
|
|
73
|
-
<ng-content />
|
|
74
|
-
}
|
|
75
|
-
</span>
|
|
76
|
-
|
|
77
|
-
<ng-icon hlm size="sm" name="lucideChevronDown" />
|
|
78
|
-
</button>
|
|
51
|
+
<ng-content />
|
|
79
52
|
|
|
80
53
|
<hlm-popover-content class="w-fit p-0" *hlmPopoverPortal="let ctx">
|
|
54
|
+
<ng-content select="[hlmDatePickerHeader]" />
|
|
81
55
|
<hlm-calendar-multi
|
|
82
56
|
calendarClass="border-0 rounded-none"
|
|
83
57
|
[date]="_mutableDate()"
|
|
@@ -86,43 +60,20 @@ let nextId = 0;
|
|
|
86
60
|
[max]="max()"
|
|
87
61
|
[minSelection]="minSelection()"
|
|
88
62
|
[maxSelection]="maxSelection()"
|
|
89
|
-
[disabled]="
|
|
63
|
+
[disabled]="_disabled()"
|
|
90
64
|
(dateChange)="_handleChange($event)"
|
|
91
65
|
/>
|
|
66
|
+
<ng-content select="[hlmDatePickerFooter]" />
|
|
92
67
|
</hlm-popover-content>
|
|
93
68
|
</hlm-popover>
|
|
94
69
|
`,
|
|
95
70
|
})
|
|
96
|
-
export class HlmDatePickerMulti<T> implements ControlValueAccessor {
|
|
71
|
+
export class HlmDatePickerMulti<T> implements HlmDatePickerBase<T>, ControlValueAccessor {
|
|
97
72
|
private readonly _config = injectHlmDatePickerMultiConfig<T>();
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
protected readonly _touched = this._fieldControl?.touched;
|
|
103
|
-
private readonly _invalid = this._fieldControl?.invalid;
|
|
104
|
-
|
|
105
|
-
protected readonly _errorStateClass = computed(() =>
|
|
106
|
-
this._spartanInvalid?.()
|
|
107
|
-
? 'border-destructive focus-visible:border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40'
|
|
108
|
-
: '',
|
|
109
|
-
);
|
|
110
|
-
protected readonly _ariaInvalid = computed(() => (this._invalid?.() ? 'true' : null));
|
|
111
|
-
|
|
112
|
-
public readonly userClass = input<ClassValue>('', { alias: 'class' });
|
|
113
|
-
protected readonly _computedClass = computed(() =>
|
|
114
|
-
hlm(
|
|
115
|
-
'ring-offset-background border-input bg-background hover:bg-accent dark:bg-input/30 dark:hover:bg-input/50 inline-flex h-9 w-[280px] cursor-default items-center justify-between gap-2 rounded-md border px-3 py-2 text-left text-sm font-normal whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50',
|
|
116
|
-
'focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',
|
|
117
|
-
'disabled:pointer-events-none disabled:opacity-50',
|
|
118
|
-
'[&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',
|
|
119
|
-
this._errorStateClass(),
|
|
120
|
-
this.userClass(),
|
|
121
|
-
),
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
/** The id of the button that opens the date picker. */
|
|
125
|
-
public readonly buttonId = input<string>(`hlm-date-picker-multi-${++nextId}`);
|
|
73
|
+
|
|
74
|
+
public readonly popover = viewChild.required(BrnPopover);
|
|
75
|
+
|
|
76
|
+
private readonly _trigger = contentChild(HlmDatePickerTriggerToken);
|
|
126
77
|
|
|
127
78
|
/** Show dropdowns to navigate between months or years. */
|
|
128
79
|
public readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');
|
|
@@ -166,16 +117,21 @@ export class HlmDatePickerMulti<T> implements ControlValueAccessor {
|
|
|
166
117
|
|
|
167
118
|
protected readonly _popoverState = signal<BrnDialogState | null>(null);
|
|
168
119
|
|
|
169
|
-
protected readonly
|
|
120
|
+
protected readonly _disabled = linkedSignal(this.disabled);
|
|
121
|
+
|
|
122
|
+
/** @internal The disabled state as a readonly signal */
|
|
123
|
+
public readonly disabledState = this._disabled.asReadonly();
|
|
170
124
|
|
|
171
|
-
|
|
125
|
+
public readonly formattedDate = computed(() => {
|
|
172
126
|
const dates = this._mutableDate();
|
|
173
127
|
return dates ? this.formatDates()(dates) : undefined;
|
|
174
128
|
});
|
|
175
129
|
|
|
176
130
|
public readonly dateChange = output<T[]>();
|
|
177
131
|
|
|
178
|
-
public readonly labelableId = this.
|
|
132
|
+
public readonly labelableId = computed(() => this._trigger()?.triggerId());
|
|
133
|
+
|
|
134
|
+
public readonly hasDate = computed(() => !!this._mutableDate()?.length);
|
|
179
135
|
|
|
180
136
|
protected _onChange?: ChangeFn<T[]>;
|
|
181
137
|
protected _onTouched?: TouchFn;
|
|
@@ -183,7 +139,7 @@ export class HlmDatePickerMulti<T> implements ControlValueAccessor {
|
|
|
183
139
|
protected _handleChange(value: T[] | undefined) {
|
|
184
140
|
if (value === undefined) return;
|
|
185
141
|
|
|
186
|
-
if (this.
|
|
142
|
+
if (this._disabled()) return;
|
|
187
143
|
const transformedDate = value !== undefined ? this.transformDates()(value) : value;
|
|
188
144
|
|
|
189
145
|
this._mutableDate.set(transformedDate);
|
|
@@ -209,7 +165,7 @@ export class HlmDatePickerMulti<T> implements ControlValueAccessor {
|
|
|
209
165
|
}
|
|
210
166
|
|
|
211
167
|
public setDisabledState(isDisabled: boolean): void {
|
|
212
|
-
this.
|
|
168
|
+
this._disabled.set(isDisabled);
|
|
213
169
|
}
|
|
214
170
|
|
|
215
171
|
public open() {
|
|
@@ -219,4 +175,10 @@ export class HlmDatePickerMulti<T> implements ControlValueAccessor {
|
|
|
219
175
|
public close() {
|
|
220
176
|
this._popoverState.set('closed');
|
|
221
177
|
}
|
|
178
|
+
|
|
179
|
+
public reset() {
|
|
180
|
+
this._mutableDate.set(undefined);
|
|
181
|
+
this._onChange?.([]);
|
|
182
|
+
this.dateChange.emit([]);
|
|
183
|
+
}
|
|
222
184
|
}
|
package/src/generators/ui/libs/date-picker/files/lib/hlm-date-picker-trigger.token.ts.template
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ExistingProvider, InjectionToken, type Signal, type Type } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
export interface HlmDatePickerTriggerBase {
|
|
4
|
+
triggerId: Signal<string>;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const HlmDatePickerTriggerToken = new InjectionToken<HlmDatePickerTriggerBase>('HlmDatePickerTriggerToken');
|
|
8
|
+
|
|
9
|
+
export function provideHlmDatePickerTrigger(instance: Type<HlmDatePickerTriggerBase>): ExistingProvider {
|
|
10
|
+
return { provide: HlmDatePickerTriggerToken, useExisting: instance };
|
|
11
|
+
}
|