@egose/shadcn-theme-ng 0.0.10 → 0.0.11

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.
Files changed (72) hide show
  1. package/accordion/fesm2022/accordion.mjs +6 -6
  2. package/accordion/fesm2022/accordion.mjs.map +1 -1
  3. package/alert/fesm2022/alert.mjs +94 -18
  4. package/alert/fesm2022/alert.mjs.map +1 -1
  5. package/alert/index.d.ts +6 -3
  6. package/badge/fesm2022/badge.mjs +2 -2
  7. package/badge/fesm2022/badge.mjs.map +1 -1
  8. package/basic-alert/README.md +64 -0
  9. package/basic-alert/fesm2022/basic-alert.mjs +111 -0
  10. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -0
  11. package/basic-alert/index.d.ts +14 -0
  12. package/button/fesm2022/button.mjs +6 -6
  13. package/button/fesm2022/button.mjs.map +1 -1
  14. package/calendar/README.md +64 -0
  15. package/calendar/fesm2022/calendar.mjs +637 -0
  16. package/calendar/fesm2022/calendar.mjs.map +1 -0
  17. package/calendar/index.d.ts +111 -0
  18. package/confirmation-dialog/README.md +64 -0
  19. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +93 -0
  20. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +1 -0
  21. package/confirmation-dialog/index.d.ts +24 -0
  22. package/date-picker/README.md +64 -0
  23. package/date-picker/fesm2022/date-picker.mjs +599 -0
  24. package/date-picker/fesm2022/date-picker.mjs.map +1 -0
  25. package/date-picker/index.d.ts +227 -0
  26. package/dialog/README.md +64 -0
  27. package/dialog/fesm2022/dialog.mjs +278 -0
  28. package/dialog/fesm2022/dialog.mjs.map +1 -0
  29. package/dialog/index.d.ts +89 -0
  30. package/exports.json +1 -1
  31. package/form-date-picker/README.md +64 -0
  32. package/form-date-picker/fesm2022/form-date-picker.mjs +146 -0
  33. package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -0
  34. package/form-date-picker/index.d.ts +32 -0
  35. package/form-field/fesm2022/form-field.mjs +7 -5
  36. package/form-field/fesm2022/form-field.mjs.map +1 -1
  37. package/form-select/README.md +64 -0
  38. package/form-select/fesm2022/form-select.mjs +165 -0
  39. package/form-select/fesm2022/form-select.mjs.map +1 -0
  40. package/form-select/index.d.ts +33 -0
  41. package/form-text-input/README.md +64 -0
  42. package/form-text-input/fesm2022/form-text-input.mjs +197 -0
  43. package/form-text-input/fesm2022/form-text-input.mjs.map +1 -0
  44. package/form-text-input/index.d.ts +47 -0
  45. package/form-textarea/README.md +64 -0
  46. package/form-textarea/fesm2022/form-textarea.mjs +156 -0
  47. package/form-textarea/fesm2022/form-textarea.mjs.map +1 -0
  48. package/form-textarea/index.d.ts +33 -0
  49. package/input/fesm2022/input.mjs +4 -4
  50. package/input/fesm2022/input.mjs.map +1 -1
  51. package/label/fesm2022/label.mjs +2 -2
  52. package/label/fesm2022/label.mjs.map +1 -1
  53. package/package.json +44 -1
  54. package/popover/README.md +64 -0
  55. package/popover/fesm2022/popover.mjs +69 -0
  56. package/popover/fesm2022/popover.mjs.map +1 -0
  57. package/popover/index.d.ts +30 -0
  58. package/radio-group/fesm2022/radio-group.mjs +4 -4
  59. package/radio-group/fesm2022/radio-group.mjs.map +1 -1
  60. package/select/fesm2022/select.mjs +11 -11
  61. package/select/fesm2022/select.mjs.map +1 -1
  62. package/sonner/fesm2022/sonner.mjs +2 -2
  63. package/sonner/fesm2022/sonner.mjs.map +1 -1
  64. package/spinner/fesm2022/spinner.mjs +3 -3
  65. package/spinner/fesm2022/spinner.mjs.map +1 -1
  66. package/switch/fesm2022/switch.mjs +3 -3
  67. package/switch/fesm2022/switch.mjs.map +1 -1
  68. package/tabs/fesm2022/tabs.mjs +8 -8
  69. package/tabs/fesm2022/tabs.mjs.map +1 -1
  70. package/utils/fesm2022/utils.mjs +2 -2
  71. package/utils/fesm2022/utils.mjs.map +1 -1
  72. package/utils/index.d.ts +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.mjs","sources":["../../../projects/date-picker/src/lib/date-picker.token.ts","../../../projects/date-picker/src/lib/date-picker.ts","../../../projects/date-picker/src/lib/date-picker-multi.token.ts","../../../projects/date-picker/src/lib/date-picker-multi.ts","../../../projects/date-picker/src/lib/date-range-picker.token.ts","../../../projects/date-picker/src/lib/date-range-picker.ts","../../../projects/date-picker/src/public-api.ts","../../../projects/date-picker/src/date-picker.ts"],"sourcesContent":["import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport interface HlmDatePickerConfig<T> {\n /**\n * If true, the date picker will close when a date is selected.\n */\n autoCloseOnSelect: boolean;\n\n /**\n * Defines how the date should be displayed in the UI.\n *\n * @param date\n * @returns formatted date\n */\n formatDate: (date: T) => string;\n\n /**\n * Defines how the date should be transformed before saving to model/form.\n *\n * @param date\n * @returns transformed date\n */\n transformDate: (date: T) => T;\n}\n\nfunction getDefaultConfig<T>(): HlmDatePickerConfig<T> {\n return {\n formatDate: (date) => (date instanceof Date ? date.toDateString() : `${date}`),\n transformDate: (date) => date,\n autoCloseOnSelect: false,\n };\n}\n\nconst HlmDatePickerConfigToken = new InjectionToken<HlmDatePickerConfig<unknown>>('HlmDatePickerConfig');\n\nexport function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerConfig<T>>): ValueProvider {\n return { provide: HlmDatePickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDatePickerConfig<T>(): HlmDatePickerConfig<T> {\n const injectedConfig = inject(HlmDatePickerConfigToken, { optional: true });\n return injectedConfig ? (injectedConfig as HlmDatePickerConfig<T>) : getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n linkedSignal,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnDialogState } from '@spartan-ng/brain/dialog';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { HlmCalendar } from '@egose/shadcn-theme-ng/calendar';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { injectHlmDatePickerConfig } from './date-picker.token';\n\nexport const HLM_DATE_PICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmDatePicker),\n multi: true,\n};\n\nlet nextId = 0;\n\n@Component({\n selector: 'hlm-date-picker',\n imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendar],\n providers: [\n HLM_DATE_PICKER_VALUE_ACCESSOR,\n provideIcons({ lucideChevronDown }),\n {\n provide: BrnFormFieldControl,\n useExisting: forwardRef(() => HlmDatePicker),\n },\n ],\n template: `\n <brn-popover sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_popoverState.set($event)\">\n <button\n [id]=\"buttonId()\"\n type=\"button\"\n [class]=\"_computedClass()\"\n [disabled]=\"_mutableDisabled()\"\n brnPopoverTrigger\n >\n <span class=\"truncate\">\n @if (_formattedDate(); as formattedDate) {\n {{ formattedDate }}\n } @else {\n <ng-content />\n }\n </span>\n\n <ng-icon hlm size=\"sm\" name=\"lucideChevronDown\" />\n </button>\n\n <div hlmPopoverContent class=\"tw:w-auto tw:p-0\" *brnPopoverContent=\"let ctx\">\n <hlm-calendar\n calendarClass=\"tw:border-0 tw:rounded-none\"\n [date]=\"_mutableDate()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [disabled]=\"_mutableDisabled()\"\n (dateChange)=\"_handleChange($event)\"\n />\n </div>\n </brn-popover>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDatePicker<T> extends BrnFormFieldControl implements ControlValueAccessor {\n private readonly _config = injectHlmDatePickerConfig<T>();\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:ring-offset-background tw:border-input tw:bg-background tw:hover:bg-input/50 tw:dark:bg-input/10 tw:dark:hover:bg-input/50 tw:inline-flex tw:h-9 tw:w-full tw:cursor-default tw:items-center tw:justify-between tw:gap-2 tw:whitespace-nowrap tw:rounded-md tw:border tw:px-3 tw:py-2 tw:text-left tw:text-sm tw:font-normal tw:transition-all tw:disabled:pointer-events-none tw:disabled:opacity-50',\n 'tw:focus-visible:ring-ring tw:focus-visible:outline-none tw:focus-visible:ring-2 tw:focus-visible:ring-offset-2',\n 'tw:disabled:pointer-events-none tw:disabled:opacity-50',\n 'tw:[&_ng-icon]:pointer-events-none tw:[&_ng-icon]:shrink-0',\n this.userClass(),\n ),\n );\n\n /** The id of the button that opens the date picker. */\n public readonly buttonId = input<string>(`hlm-date-picker-${nextId++}`);\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = input<T>();\n\n protected readonly _mutableDate = linkedSignal(this.date);\n\n /** If true, the date picker will close when a date is selected. */\n public readonly autoCloseOnSelect = input<boolean, BooleanInput>(this._config.autoCloseOnSelect, {\n transform: booleanAttribute,\n });\n\n /** Defines how the date should be displayed in the UI. */\n public readonly formatDate = input<(date: T) => string>(this._config.formatDate);\n\n /** Defines how the date should be transformed before saving to model/form. */\n public readonly transformDate = input<(date: T) => T>(this._config.transformDate);\n\n protected readonly _popoverState = signal<BrnDialogState | null>(null);\n\n protected readonly _mutableDisabled = linkedSignal(this.disabled);\n\n protected readonly _formattedDate = computed(() => {\n const date = this._mutableDate();\n return date ? this.formatDate()(date) : undefined;\n });\n\n public readonly dateChange = output<T>();\n\n protected _onChange?: ChangeFn<T>;\n protected _onTouched?: TouchFn;\n\n protected _handleChange(value: T) {\n if (this._mutableDisabled()) return;\n const transformedDate = this.transformDate()(value);\n\n this._mutableDate.set(transformedDate);\n this._onChange?.(transformedDate);\n this.dateChange.emit(transformedDate);\n\n if (this.autoCloseOnSelect()) {\n this._popoverState.set('closed');\n }\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: T | null): void {\n this._mutableDate.set(value ? this.transformDate()(value) : undefined);\n }\n\n public registerOnChange(fn: ChangeFn<T>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._mutableDisabled.set(isDisabled);\n }\n\n public open() {\n this._popoverState.set('open');\n }\n\n public close() {\n this._popoverState.set('closed');\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport interface HlmDatePickerMultiConfig<T> {\n /**\n * If true, the date picker will close when the max selection of dates is reached.\n */\n autoCloseOnMaxSelection: boolean;\n\n /**\n * Defines how the date should be displayed in the UI.\n *\n * @param dates\n * @returns formatted date\n */\n formatDates: (dates: T[]) => string;\n\n /**\n * Defines how the date should be transformed before saving to model/form.\n *\n * @param dates\n * @returns transformed date\n */\n transformDates: (dates: T[]) => T[];\n}\n\nfunction getDefaultConfig<T>(): HlmDatePickerMultiConfig<T> {\n return {\n formatDates: (dates) => dates.map((date) => (date instanceof Date ? date.toDateString() : `${date}`)).join(', '),\n transformDates: (dates) => dates,\n autoCloseOnMaxSelection: false,\n };\n}\n\nconst HlmDatePickerMultiConfigToken = new InjectionToken<HlmDatePickerMultiConfig<unknown>>('HlmDatePickerMultiConfig');\n\nexport function provideHlmDatePickerMultiConfig<T>(config: Partial<HlmDatePickerMultiConfig<T>>): ValueProvider {\n return { provide: HlmDatePickerMultiConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDatePickerMultiConfig<T>(): HlmDatePickerMultiConfig<T> {\n const injectedConfig = inject(HlmDatePickerMultiConfigToken, { optional: true });\n return injectedConfig ? (injectedConfig as HlmDatePickerMultiConfig<T>) : getDefaultConfig();\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n linkedSignal,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnDialogState } from '@spartan-ng/brain/dialog';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';\nimport { HlmCalendarMulti } from '@egose/shadcn-theme-ng/calendar';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { injectHlmDatePickerMultiConfig } from './date-picker-multi.token';\n\nexport const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmDatePickerMulti),\n multi: true,\n};\n\nlet nextId = 0;\n\n@Component({\n selector: 'hlm-date-picker-multi',\n imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendarMulti],\n providers: [HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR, provideIcons({ lucideChevronDown })],\n template: `\n <brn-popover sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_popoverState.set($event)\">\n <button\n [id]=\"buttonId()\"\n type=\"button\"\n [class]=\"_computedClass()\"\n [disabled]=\"_mutableDisabled()\"\n brnPopoverTrigger\n >\n <span class=\"truncate\">\n @if (_formattedDate(); as formattedDate) {\n {{ formattedDate }}\n } @else {\n <ng-content />\n }\n </span>\n\n <ng-icon hlm size=\"sm\" name=\"lucideChevronDown\" />\n </button>\n\n <div hlmPopoverContent class=\"w-auto p-0\" *brnPopoverContent=\"let ctx\">\n <hlm-calendar-multi\n calendarClass=\"border-0 rounded-none\"\n [date]=\"_mutableDate()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [minSelection]=\"minSelection()\"\n [maxSelection]=\"maxSelection()\"\n [disabled]=\"_mutableDisabled()\"\n (dateChange)=\"_handleChange($event)\"\n />\n </div>\n </brn-popover>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDatePickerMulti<T> implements ControlValueAccessor {\n private readonly _config = injectHlmDatePickerMultiConfig<T>();\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:ring-offset-background tw:border-input tw:bg-background tw:hover:bg-accent tw:dark:bg-input/30 tw:dark:hover:bg-input/50 tw:inline-flex tw:h-9 tw:w-[280px] tw:cursor-default tw:items-center tw:justify-between tw:gap-2 tw:whitespace-nowrap tw:rounded-md tw:border tw:px-3 tw:py-2 tw:text-left tw:text-sm tw:font-normal tw:transition-all tw:disabled:pointer-events-none tw:disabled:opacity-50',\n 'tw:focus-visible:ring-ring tw:focus-visible:outline-none tw:focus-visible:ring-2 tw:focus-visible:ring-offset-2',\n 'tw:disabled:pointer-events-none tw:disabled:opacity-50',\n 'tw:[&_ng-icon]:pointer-events-none tw:[&_ng-icon]:shrink-0',\n this.userClass(),\n ),\n );\n\n /** The id of the button that opens the date picker. */\n public readonly buttonId = input<string>(`hlm-date-picker-multi-${nextId++}`);\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** The minimum selectable dates. */\n public readonly minSelection = input<number, NumberInput>(undefined, {\n transform: numberAttribute,\n });\n\n /** The maximum selectable dates. */\n public readonly maxSelection = input<number, NumberInput>(undefined, {\n transform: numberAttribute,\n });\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = input<T[]>();\n\n protected readonly _mutableDate = linkedSignal(this.date);\n\n /** If true, the date picker will close when the max selection of dates is reached. */\n public readonly autoCloseOnMaxSelection = input<boolean, BooleanInput>(this._config.autoCloseOnMaxSelection, {\n transform: booleanAttribute,\n });\n\n /** Defines how the date should be displayed in the UI. */\n public readonly formatDates = input<(date: T[]) => string>(this._config.formatDates);\n\n /** Defines how the date should be transformed before saving to model/form. */\n public readonly transformDates = input<(date: T[]) => T[]>(this._config.transformDates);\n\n protected readonly _popoverState = signal<BrnDialogState | null>(null);\n\n protected readonly _mutableDisabled = linkedSignal(this.disabled);\n\n protected readonly _formattedDate = computed(() => {\n const dates = this._mutableDate();\n return dates ? this.formatDates()(dates) : undefined;\n });\n\n public readonly dateChange = output<T[]>();\n\n protected _onChange?: ChangeFn<T[]>;\n protected _onTouched?: TouchFn;\n\n protected _handleChange(value: T[] | undefined) {\n if (value === undefined) return;\n\n if (this._mutableDisabled()) return;\n const transformedDate = this.transformDates()(value);\n\n this._mutableDate.set(transformedDate);\n this._onChange?.(transformedDate);\n this.dateChange.emit(transformedDate);\n\n if (this.autoCloseOnMaxSelection() && this._mutableDate()?.length === this.maxSelection()) {\n this._popoverState.set('closed');\n }\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: T[] | null): void {\n this._mutableDate.set(value ? this.transformDates()(value) : undefined);\n }\n\n public registerOnChange(fn: ChangeFn<T[]>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._mutableDisabled.set(isDisabled);\n }\n\n public open() {\n this._popoverState.set('open');\n }\n\n public close() {\n this._popoverState.set('closed');\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport interface HlmDateRangePickerConfig<T> {\n /**\n * If true, the date picker will close when the max selection of dates is reached.\n */\n autoCloseOnEndSelection: boolean;\n\n /**\n * Defines how the date should be displayed in the UI.\n *\n * @param dates\n * @returns formatted date\n */\n formatDates: (dates: [T | undefined, T | undefined]) => string;\n\n /**\n * Defines how the date should be transformed before saving to model/form.\n *\n * @param dates\n * @returns transformed date\n */\n transformDates: (dates: [T, T]) => [T, T];\n}\n\nfunction getDefaultConfig<T>(): HlmDateRangePickerConfig<T> {\n return {\n formatDates: (dates) =>\n dates\n .filter(Boolean)\n .map((date) => (date instanceof Date ? date.toDateString() : `${date}`))\n .join(' - '),\n transformDates: (dates) => dates,\n autoCloseOnEndSelection: false,\n };\n}\n\nconst HlmDateRangePickerConfigToken = new InjectionToken<HlmDateRangePickerConfig<unknown>>('HlmDateRangePickerConfig');\n\nexport function provideHlmDateRangePickerConfig<T>(config: Partial<HlmDateRangePickerConfig<T>>): ValueProvider {\n return { provide: HlmDateRangePickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDateRangePickerConfig<T>(): HlmDateRangePickerConfig<T> {\n const injectedConfig = inject(HlmDateRangePickerConfigToken, { optional: true });\n return injectedConfig ? (injectedConfig as HlmDateRangePickerConfig<T>) : getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n linkedSignal,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnDialogState } from '@spartan-ng/brain/dialog';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';\nimport { HlmCalendarRange } from '@egose/shadcn-theme-ng/calendar';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { injectHlmDateRangePickerConfig } from './date-range-picker.token';\n\nexport const HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmDateRangePicker),\n multi: true,\n};\n\nlet nextId = 0;\n\n@Component({\n selector: 'hlm-date-range-picker',\n imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendarRange],\n providers: [HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR, provideIcons({ lucideChevronDown })],\n template: `\n <brn-popover\n sideOffset=\"5\"\n [state]=\"_popoverState()\"\n (stateChanged)=\"_popoverState.set($event)\"\n (closed)=\"_onClose()\"\n >\n <button\n [id]=\"buttonId()\"\n type=\"button\"\n [class]=\"_computedClass()\"\n [disabled]=\"_mutableDisabled()\"\n brnPopoverTrigger\n >\n <span class=\"truncate\">\n @if (_formattedDate(); as formattedDate) {\n {{ formattedDate }}\n } @else {\n <ng-content />\n }\n </span>\n\n <ng-icon hlm size=\"sm\" name=\"lucideChevronDown\" />\n </button>\n\n <div hlmPopoverContent class=\"tw:w-auto tw:p-0\" *brnPopoverContent=\"let ctx\">\n <hlm-calendar-range\n calendarClass=\"tw:border-0 tw:rounded-none\"\n [startDate]=\"_start()\"\n [endDate]=\"_end()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [disabled]=\"_mutableDisabled()\"\n (startDateChange)=\"_handleStartDayChange($event)\"\n (endDateChange)=\"_handleEndDateChange($event)\"\n />\n </div>\n </brn-popover>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDateRangePicker<T> implements ControlValueAccessor {\n private readonly _config = injectHlmDateRangePickerConfig<T>();\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:ring-offset-background tw:border-input tw:bg-background tw:hover:bg-accent tw:dark:bg-input/30 tw:dark:hover:bg-input/50 tw:inline-flex tw:h-9 tw:w-[280px] tw:cursor-default tw:items-center tw:justify-between tw:gap-2 tw:whitespace-nowrap tw:rounded-md tw:border tw:px-3 tw:py-2 tw:text-left tw:text-sm tw:font-normal tw:transition-all tw:disabled:pointer-events-none tw:disabled:opacity-50',\n 'tw:focus-visible:ring-ring tw:focus-visible:outline-none tw:focus-visible:ring-2 tw:focus-visible:ring-offset-2',\n 'tw:disabled:pointer-events-none tw:disabled:opacity-50',\n 'tw:[&_ng-icon]:pointer-events-none tw:[&_ng-icon]:shrink-0',\n this.userClass(),\n ),\n );\n\n /** The id of the button that opens the date picker. */\n public readonly buttonId = input<string>(`hlm-date-picker-range-${nextId++}`);\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = input<[T, T]>();\n\n protected readonly _mutableDate = linkedSignal(this.date);\n\n protected readonly _start = linkedSignal(() => this._mutableDate()?.[0]);\n protected readonly _end = linkedSignal(() => this._mutableDate()?.[1]);\n\n /** If true, the date picker will close when the end date is selected */\n public readonly autoCloseOnEndSelection = input<boolean, BooleanInput>(this._config.autoCloseOnEndSelection, {\n transform: booleanAttribute,\n });\n\n /** Defines how the date should be displayed in the UI. */\n public readonly formatDates = input<(dates: [T | undefined, T | undefined]) => string>(this._config.formatDates);\n\n /** Defines how the date should be transformed before saving to model/form. */\n public readonly transformDates = input<(date: [T, T]) => [T, T]>(this._config.transformDates);\n\n protected readonly _popoverState = signal<BrnDialogState | null>(null);\n\n protected readonly _mutableDisabled = linkedSignal(this.disabled);\n\n protected readonly _formattedDate = computed(() => {\n const start = this._start();\n const end = this._end();\n return start || end ? this.formatDates()([start, end]) : undefined;\n });\n\n public readonly dateChange = output<[T, T] | null>();\n\n protected _onChange?: ChangeFn<[T, T] | null>;\n protected _onTouched?: TouchFn;\n\n protected _handleStartDayChange(value: T) {\n this._start.set(value);\n }\n\n protected _handleEndDateChange(value: T): void {\n this._end.set(value);\n if (this._mutableDisabled()) return;\n\n const start = this._start();\n if (start && value) {\n const transformedDates = this.transformDates()([start, value]);\n this._mutableDate.set(transformedDates);\n this.dateChange.emit(transformedDates);\n this._onChange?.(transformedDates);\n\n if (this.autoCloseOnEndSelection()) {\n this._popoverState.set('closed');\n }\n }\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: [T, T] | null): void {\n untracked(() => {\n if (!value) {\n this._mutableDate.set(undefined);\n } else {\n this._mutableDate.set(this.transformDates()(value));\n }\n });\n }\n\n public registerOnChange(fn: ChangeFn<[T, T] | null>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._mutableDisabled.set(isDisabled);\n }\n\n public open() {\n this._popoverState.set('open');\n }\n\n public close() {\n this._popoverState.set('closed');\n }\n\n protected _onClose(): void {\n const dates = this._mutableDate();\n if (this._start() && !this._end() && dates) {\n this._start.set(dates[0]);\n this._end.set(dates[1]);\n }\n }\n}\n","/*\n * Public API Surface of date-picker\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmDatePicker } from './lib/date-picker';\nimport { HlmDatePickerMulti } from './lib/date-picker-multi';\nimport { HlmDateRangePicker } from './lib/date-range-picker';\n\nexport * from './lib/date-picker-multi.token';\nexport * from './lib/date-picker.token';\n\nexport * from './lib/date-picker';\nexport * from './lib/date-picker-multi';\nexport * from './lib/date-range-picker';\nexport * from './lib/date-range-picker.token';\n\nexport const HlmDatePickerImports = [HlmDatePicker, HlmDatePickerMulti, HlmDateRangePicker] as const;\n\n@NgModule({\n imports: [...HlmDatePickerImports],\n exports: [...HlmDatePickerImports],\n})\nexport class HlmDatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["getDefaultConfig","nextId"],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ValueProvider } from '@angular/core';
3
+ import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
4
+ import { ControlValueAccessor } from '@angular/forms';
5
+ import { BrnDialogState } from '@spartan-ng/brain/dialog';
6
+ import { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
7
+ import { BrnFormFieldControl } from '@spartan-ng/brain/form-field';
8
+ import { ClassValue } from 'clsx';
9
+
10
+ declare const HLM_DATE_PICKER_VALUE_ACCESSOR: {
11
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
12
+ useExisting: _angular_core.Type<any>;
13
+ multi: boolean;
14
+ };
15
+ declare class HlmDatePicker<T> extends BrnFormFieldControl implements ControlValueAccessor {
16
+ private readonly _config;
17
+ readonly userClass: _angular_core.InputSignal<ClassValue>;
18
+ protected readonly _computedClass: _angular_core.Signal<string>;
19
+ /** The id of the button that opens the date picker. */
20
+ readonly buttonId: _angular_core.InputSignal<string>;
21
+ /** The minimum date that can be selected.*/
22
+ readonly min: _angular_core.InputSignal<T | undefined>;
23
+ /** The maximum date that can be selected. */
24
+ readonly max: _angular_core.InputSignal<T | undefined>;
25
+ /** Determine if the date picker is disabled. */
26
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
27
+ /** The selected value. */
28
+ readonly date: _angular_core.InputSignal<T | undefined>;
29
+ protected readonly _mutableDate: _angular_core.WritableSignal<T | undefined>;
30
+ /** If true, the date picker will close when a date is selected. */
31
+ readonly autoCloseOnSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
32
+ /** Defines how the date should be displayed in the UI. */
33
+ readonly formatDate: _angular_core.InputSignal<(date: T) => string>;
34
+ /** Defines how the date should be transformed before saving to model/form. */
35
+ readonly transformDate: _angular_core.InputSignal<(date: T) => T>;
36
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnDialogState | null>;
37
+ protected readonly _mutableDisabled: _angular_core.WritableSignal<boolean>;
38
+ protected readonly _formattedDate: _angular_core.Signal<string | undefined>;
39
+ readonly dateChange: _angular_core.OutputEmitterRef<T>;
40
+ protected _onChange?: ChangeFn<T>;
41
+ protected _onTouched?: TouchFn;
42
+ protected _handleChange(value: T): void;
43
+ /** CONTROL VALUE ACCESSOR */
44
+ writeValue(value: T | null): void;
45
+ registerOnChange(fn: ChangeFn<T>): void;
46
+ registerOnTouched(fn: TouchFn): void;
47
+ setDisabledState(isDisabled: boolean): void;
48
+ open(): void;
49
+ close(): void;
50
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePicker<any>, never>;
51
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDatePicker<any>, "hlm-date-picker", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "buttonId": { "alias": "buttonId"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "autoCloseOnSelect": { "alias": "autoCloseOnSelect"; "required": false; "isSignal": true; }; "formatDate": { "alias": "formatDate"; "required": false; "isSignal": true; }; "transformDate": { "alias": "transformDate"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, never, ["*"], true, never>;
52
+ }
53
+
54
+ declare const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR: {
55
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
56
+ useExisting: _angular_core.Type<any>;
57
+ multi: boolean;
58
+ };
59
+ declare class HlmDatePickerMulti<T> implements ControlValueAccessor {
60
+ private readonly _config;
61
+ readonly userClass: _angular_core.InputSignal<ClassValue>;
62
+ protected readonly _computedClass: _angular_core.Signal<string>;
63
+ /** The id of the button that opens the date picker. */
64
+ readonly buttonId: _angular_core.InputSignal<string>;
65
+ /** The minimum date that can be selected.*/
66
+ readonly min: _angular_core.InputSignal<T | undefined>;
67
+ /** The maximum date that can be selected. */
68
+ readonly max: _angular_core.InputSignal<T | undefined>;
69
+ /** The minimum selectable dates. */
70
+ readonly minSelection: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
71
+ /** The maximum selectable dates. */
72
+ readonly maxSelection: _angular_core.InputSignalWithTransform<number | undefined, NumberInput>;
73
+ /** Determine if the date picker is disabled. */
74
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
75
+ /** The selected value. */
76
+ readonly date: _angular_core.InputSignal<T[] | undefined>;
77
+ protected readonly _mutableDate: _angular_core.WritableSignal<T[] | undefined>;
78
+ /** If true, the date picker will close when the max selection of dates is reached. */
79
+ readonly autoCloseOnMaxSelection: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
80
+ /** Defines how the date should be displayed in the UI. */
81
+ readonly formatDates: _angular_core.InputSignal<(date: T[]) => string>;
82
+ /** Defines how the date should be transformed before saving to model/form. */
83
+ readonly transformDates: _angular_core.InputSignal<(date: T[]) => T[]>;
84
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnDialogState | null>;
85
+ protected readonly _mutableDisabled: _angular_core.WritableSignal<boolean>;
86
+ protected readonly _formattedDate: _angular_core.Signal<string | undefined>;
87
+ readonly dateChange: _angular_core.OutputEmitterRef<T[]>;
88
+ protected _onChange?: ChangeFn<T[]>;
89
+ protected _onTouched?: TouchFn;
90
+ protected _handleChange(value: T[] | undefined): void;
91
+ /** CONTROL VALUE ACCESSOR */
92
+ writeValue(value: T[] | null): void;
93
+ registerOnChange(fn: ChangeFn<T[]>): void;
94
+ registerOnTouched(fn: TouchFn): void;
95
+ setDisabledState(isDisabled: boolean): void;
96
+ open(): void;
97
+ close(): void;
98
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePickerMulti<any>, never>;
99
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDatePickerMulti<any>, "hlm-date-picker-multi", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "buttonId": { "alias": "buttonId"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minSelection": { "alias": "minSelection"; "required": false; "isSignal": true; }; "maxSelection": { "alias": "maxSelection"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "autoCloseOnMaxSelection": { "alias": "autoCloseOnMaxSelection"; "required": false; "isSignal": true; }; "formatDates": { "alias": "formatDates"; "required": false; "isSignal": true; }; "transformDates": { "alias": "transformDates"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, never, ["*"], true, never>;
100
+ }
101
+
102
+ declare const HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR: {
103
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
104
+ useExisting: _angular_core.Type<any>;
105
+ multi: boolean;
106
+ };
107
+ declare class HlmDateRangePicker<T> implements ControlValueAccessor {
108
+ private readonly _config;
109
+ readonly userClass: _angular_core.InputSignal<ClassValue>;
110
+ protected readonly _computedClass: _angular_core.Signal<string>;
111
+ /** The id of the button that opens the date picker. */
112
+ readonly buttonId: _angular_core.InputSignal<string>;
113
+ /** The minimum date that can be selected.*/
114
+ readonly min: _angular_core.InputSignal<T | undefined>;
115
+ /** The maximum date that can be selected. */
116
+ readonly max: _angular_core.InputSignal<T | undefined>;
117
+ /** Determine if the date picker is disabled. */
118
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
119
+ /** The selected value. */
120
+ readonly date: _angular_core.InputSignal<[T, T] | undefined>;
121
+ protected readonly _mutableDate: _angular_core.WritableSignal<[T, T] | undefined>;
122
+ protected readonly _start: _angular_core.WritableSignal<T | undefined>;
123
+ protected readonly _end: _angular_core.WritableSignal<T | undefined>;
124
+ /** If true, the date picker will close when the end date is selected */
125
+ readonly autoCloseOnEndSelection: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
126
+ /** Defines how the date should be displayed in the UI. */
127
+ readonly formatDates: _angular_core.InputSignal<(dates: [T | undefined, T | undefined]) => string>;
128
+ /** Defines how the date should be transformed before saving to model/form. */
129
+ readonly transformDates: _angular_core.InputSignal<(date: [T, T]) => [T, T]>;
130
+ protected readonly _popoverState: _angular_core.WritableSignal<BrnDialogState | null>;
131
+ protected readonly _mutableDisabled: _angular_core.WritableSignal<boolean>;
132
+ protected readonly _formattedDate: _angular_core.Signal<string | undefined>;
133
+ readonly dateChange: _angular_core.OutputEmitterRef<[T, T] | null>;
134
+ protected _onChange?: ChangeFn<[T, T] | null>;
135
+ protected _onTouched?: TouchFn;
136
+ protected _handleStartDayChange(value: T): void;
137
+ protected _handleEndDateChange(value: T): void;
138
+ /** CONTROL VALUE ACCESSOR */
139
+ writeValue(value: [T, T] | null): void;
140
+ registerOnChange(fn: ChangeFn<[T, T] | null>): void;
141
+ registerOnTouched(fn: TouchFn): void;
142
+ setDisabledState(isDisabled: boolean): void;
143
+ open(): void;
144
+ close(): void;
145
+ protected _onClose(): void;
146
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDateRangePicker<any>, never>;
147
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmDateRangePicker<any>, "hlm-date-range-picker", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "buttonId": { "alias": "buttonId"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "autoCloseOnEndSelection": { "alias": "autoCloseOnEndSelection"; "required": false; "isSignal": true; }; "formatDates": { "alias": "formatDates"; "required": false; "isSignal": true; }; "transformDates": { "alias": "transformDates"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; }, never, ["*"], true, never>;
148
+ }
149
+
150
+ interface HlmDatePickerMultiConfig<T> {
151
+ /**
152
+ * If true, the date picker will close when the max selection of dates is reached.
153
+ */
154
+ autoCloseOnMaxSelection: boolean;
155
+ /**
156
+ * Defines how the date should be displayed in the UI.
157
+ *
158
+ * @param dates
159
+ * @returns formatted date
160
+ */
161
+ formatDates: (dates: T[]) => string;
162
+ /**
163
+ * Defines how the date should be transformed before saving to model/form.
164
+ *
165
+ * @param dates
166
+ * @returns transformed date
167
+ */
168
+ transformDates: (dates: T[]) => T[];
169
+ }
170
+ declare function provideHlmDatePickerMultiConfig<T>(config: Partial<HlmDatePickerMultiConfig<T>>): ValueProvider;
171
+ declare function injectHlmDatePickerMultiConfig<T>(): HlmDatePickerMultiConfig<T>;
172
+
173
+ interface HlmDatePickerConfig<T> {
174
+ /**
175
+ * If true, the date picker will close when a date is selected.
176
+ */
177
+ autoCloseOnSelect: boolean;
178
+ /**
179
+ * Defines how the date should be displayed in the UI.
180
+ *
181
+ * @param date
182
+ * @returns formatted date
183
+ */
184
+ formatDate: (date: T) => string;
185
+ /**
186
+ * Defines how the date should be transformed before saving to model/form.
187
+ *
188
+ * @param date
189
+ * @returns transformed date
190
+ */
191
+ transformDate: (date: T) => T;
192
+ }
193
+ declare function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerConfig<T>>): ValueProvider;
194
+ declare function injectHlmDatePickerConfig<T>(): HlmDatePickerConfig<T>;
195
+
196
+ interface HlmDateRangePickerConfig<T> {
197
+ /**
198
+ * If true, the date picker will close when the max selection of dates is reached.
199
+ */
200
+ autoCloseOnEndSelection: boolean;
201
+ /**
202
+ * Defines how the date should be displayed in the UI.
203
+ *
204
+ * @param dates
205
+ * @returns formatted date
206
+ */
207
+ formatDates: (dates: [T | undefined, T | undefined]) => string;
208
+ /**
209
+ * Defines how the date should be transformed before saving to model/form.
210
+ *
211
+ * @param dates
212
+ * @returns transformed date
213
+ */
214
+ transformDates: (dates: [T, T]) => [T, T];
215
+ }
216
+ declare function provideHlmDateRangePickerConfig<T>(config: Partial<HlmDateRangePickerConfig<T>>): ValueProvider;
217
+ declare function injectHlmDateRangePickerConfig<T>(): HlmDateRangePickerConfig<T>;
218
+
219
+ declare const HlmDatePickerImports: readonly [typeof HlmDatePicker, typeof HlmDatePickerMulti, typeof HlmDateRangePicker];
220
+ declare class HlmDatePickerModule {
221
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmDatePickerModule, never>;
222
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HlmDatePickerModule, never, [typeof HlmDatePicker, typeof HlmDatePickerMulti, typeof HlmDateRangePicker], [typeof HlmDatePicker, typeof HlmDatePickerMulti, typeof HlmDateRangePicker]>;
223
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<HlmDatePickerModule>;
224
+ }
225
+
226
+ export { HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR, HLM_DATE_PICKER_VALUE_ACCESSOR, HLM_DATE_RANGE_PICKER_VALUE_ACCESSOR, HlmDatePicker, HlmDatePickerImports, HlmDatePickerModule, HlmDatePickerMulti, HlmDateRangePicker, injectHlmDatePickerConfig, injectHlmDatePickerMultiConfig, injectHlmDateRangePickerConfig, provideHlmDatePickerConfig, provideHlmDatePickerMultiConfig, provideHlmDateRangePickerConfig };
227
+ export type { HlmDatePickerConfig, HlmDatePickerMultiConfig, HlmDateRangePickerConfig };
@@ -0,0 +1,64 @@
1
+ # Dialog
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
+
9
+ ```bash
10
+ ng generate component component-name
11
+ ```
12
+
13
+ For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
+
15
+ ```bash
16
+ ng generate --help
17
+ ```
18
+
19
+ ## Building
20
+
21
+ To build the library, run:
22
+
23
+ ```bash
24
+ ng build dialog
25
+ ```
26
+
27
+ This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
+
29
+ ### Publishing the Library
30
+
31
+ Once the project is built, you can publish your library by following these steps:
32
+
33
+ 1. Navigate to the `dist` directory:
34
+
35
+ ```bash
36
+ cd dist/dialog
37
+ ```
38
+
39
+ 2. Run the `npm publish` command to publish your library to the npm registry:
40
+ ```bash
41
+ npm publish
42
+ ```
43
+
44
+ ## Running unit tests
45
+
46
+ To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
47
+
48
+ ```bash
49
+ ng test
50
+ ```
51
+
52
+ ## Running end-to-end tests
53
+
54
+ For end-to-end (e2e) testing, run:
55
+
56
+ ```bash
57
+ ng e2e
58
+ ```
59
+
60
+ Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
61
+
62
+ ## Additional Resources
63
+
64
+ For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.