@radix-ng/primitives 1.0.0-beta.1 → 1.0.0-beta.2

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 (85) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +2 -2
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-calendar.mjs +14 -1
  4. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-checkbox.mjs +2 -2
  6. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-collapsible.mjs +1 -1
  8. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  9. package/fesm2022/radix-ng-primitives-combobox.mjs +1923 -0
  10. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -0
  11. package/fesm2022/radix-ng-primitives-context-menu.mjs +1 -1
  12. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-core.mjs +480 -469
  14. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -1
  16. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-date-field.mjs +11 -0
  18. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-dialog.mjs +1 -1
  20. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-drawer.mjs +1 -1
  22. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-editable.mjs +1 -1
  24. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-field.mjs +86 -6
  26. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-fieldset.mjs +1 -1
  28. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-focus-scope.mjs +1 -1
  30. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-form.mjs +207 -0
  32. package/fesm2022/radix-ng-primitives-form.mjs.map +1 -0
  33. package/fesm2022/radix-ng-primitives-input.mjs +85 -4
  34. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-menu.mjs +4 -4
  36. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  37. package/fesm2022/radix-ng-primitives-menubar.mjs +1 -1
  38. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  39. package/fesm2022/radix-ng-primitives-meter.mjs +1 -1
  40. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1 -1
  42. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  43. package/fesm2022/radix-ng-primitives-number-field.mjs +2 -2
  44. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-popover.mjs +1 -1
  46. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-popper.mjs +1 -1
  48. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-preview-card.mjs +1 -1
  50. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  51. package/fesm2022/radix-ng-primitives-progress.mjs +1 -1
  52. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-roving-focus.mjs +1 -1
  54. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-scroll-area.mjs +3 -3
  56. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  57. package/fesm2022/radix-ng-primitives-select.mjs +421 -224
  58. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  59. package/fesm2022/radix-ng-primitives-slider.mjs +1 -1
  60. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  61. package/fesm2022/radix-ng-primitives-switch.mjs +3 -2
  62. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  63. package/fesm2022/radix-ng-primitives-tabs.mjs +1 -1
  64. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  65. package/fesm2022/radix-ng-primitives-time-field.mjs +27 -3
  66. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  67. package/fesm2022/radix-ng-primitives-toast.mjs +1 -1
  68. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
  69. package/fesm2022/radix-ng-primitives-toggle-group.mjs +1 -1
  70. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  71. package/fesm2022/radix-ng-primitives-toolbar.mjs +2 -2
  72. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  73. package/fesm2022/radix-ng-primitives-tooltip.mjs +2 -2
  74. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  75. package/package.json +9 -1
  76. package/schematics/ng-add/index.js +57 -0
  77. package/schematics/ng-add/index.js.map +1 -1
  78. package/schematics/ng-add/schema.d.ts +1 -0
  79. package/schematics/ng-add/schema.json +6 -0
  80. package/types/radix-ng-primitives-combobox.d.ts +1265 -0
  81. package/types/radix-ng-primitives-core.d.ts +148 -56
  82. package/types/radix-ng-primitives-field.d.ts +71 -2
  83. package/types/radix-ng-primitives-form.d.ts +124 -0
  84. package/types/radix-ng-primitives-input.d.ts +75 -5
  85. package/types/radix-ng-primitives-select.d.ts +292 -132
@@ -16,7 +16,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
16
16
  }]
17
17
  }] });
18
18
 
19
- const [injectAccordionRootContext, provideAccordionRootContext] = createContext('AccordionRootContext');
19
+ const [injectAccordionRootContext, provideAccordionRootContext] = createContext('AccordionRootContext', 'components/accordion');
20
20
  const rootContext = () => {
21
21
  const instance = inject(RdxAccordionRootDirective);
22
22
  return {
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
171
171
  }]
172
172
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], loopFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "loopFocus", required: false }] }], keepMounted: [{ type: i0.Input, args: [{ isSignal: true, alias: "keepMounted", required: false }] }], onValueChange: [{ type: i0.Output, args: ["onValueChange"] }] } });
173
173
 
174
- const [injectAccordionItemContext, provideAccordionItemContext] = createContext('AccordionItemContext');
174
+ const [injectAccordionItemContext, provideAccordionItemContext] = createContext('AccordionItemContext', 'components/accordion');
175
175
  const itemContext = () => {
176
176
  const instance = inject(RdxAccordionItemDirective);
177
177
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-accordion.mjs","sources":["../../../packages/primitives/accordion/src/accordion-content-presence.directive.ts","../../../packages/primitives/accordion/src/accordion-root.directive.ts","../../../packages/primitives/accordion/src/accordion-item.directive.ts","../../../packages/primitives/accordion/src/accordion-content.directive.ts","../../../packages/primitives/accordion/src/accordion-header.directive.ts","../../../packages/primitives/accordion/src/accordion-trigger.directive.ts","../../../packages/primitives/accordion/index.ts","../../../packages/primitives/accordion/radix-ng-primitives-accordion.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { RdxCollapsiblePanelPresenceDirective } from '@radix-ng/primitives/collapsible';\n\n@Directive({\n selector: 'ng-template[rdxAccordionContentPresence]',\n hostDirectives: [RdxCollapsiblePanelPresenceDirective]\n})\nexport class RdxAccordionContentPresenceDirective {}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n InputSignal,\n InputSignalWithTransform,\n model,\n ModelSignal,\n output,\n Signal\n} from '@angular/core';\nimport {\n AcceptableValue,\n BooleanInput,\n createContext,\n DataOrientation,\n Direction,\n injectId\n} from '@radix-ng/primitives/core';\n\nexport type AccordionRootContext = {\n disabled: InputSignalWithTransform<boolean, BooleanInput>;\n direction: InputSignal<Direction>;\n orientation: InputSignal<DataOrientation>;\n value: ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;\n collapsible: Signal<boolean>;\n isSingle: Signal<boolean>;\n loopFocus: InputSignalWithTransform<boolean, BooleanInput>;\n keepMounted: InputSignalWithTransform<boolean, BooleanInput>;\n elementRef: ElementRef<HTMLElement>;\n changeModelValue: (value: string) => void;\n};\n\nexport const [injectAccordionRootContext, provideAccordionRootContext] =\n createContext<AccordionRootContext>('AccordionRootContext');\n\nconst rootContext = (): AccordionRootContext => {\n const instance = inject(RdxAccordionRootDirective);\n\n return {\n disabled: instance.disabled,\n direction: instance.dir,\n collapsible: instance.collapsible,\n orientation: instance.orientation,\n elementRef: instance.elementRef,\n value: instance.value,\n isSingle: instance.isSingle,\n loopFocus: instance.loopFocus,\n keepMounted: instance.keepMounted,\n changeModelValue: instance.changeModelValue\n };\n};\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxAccordionRoot]',\n exportAs: 'rdxAccordionRoot',\n providers: [provideAccordionRootContext(rootContext)],\n host: {\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined'\n }\n})\nexport class RdxAccordionRootDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly id = input<string>(injectId('rdx-accordion-'));\n\n /**\n * The reading direction of the accordion when applicable. If omitted, assumes LTR (left-to-right) reading mode.\n *\n * @group Props\n */\n readonly dir = input<Direction>('ltr');\n\n /** Whether the Accordion is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The orientation of the accordion.\n *\n * @defaultValue 'vertical'\n * @group Props\n */\n readonly orientation = input<DataOrientation>('vertical');\n\n /**\n * The default active value of the item(s).\n *\n * Use when you do not need to control the state of the item(s).\n * @group Props\n */\n readonly defaultValue = input<string | string[]>();\n\n /**\n * The controlled value of the item to expand.\n *\n * @group Props\n */\n readonly value = model<AcceptableValue | AcceptableValue[]>();\n\n /**\n * When type is \"single\", allows closing content when clicking trigger for an open item.\n * When type is \"multiple\", this prop has no effect.\n *\n * @defaultValue false\n * @group Props\n */\n readonly collapsible = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Determines whether a \"single\" or \"multiple\" items can be selected at a time.\n *\n * @defaultValue 'single'\n * @group Props\n */\n readonly type = input<'multiple' | 'single'>('single');\n\n /**\n * Allow multiple panels to be open simultaneously.\n * Takes precedence over `type` when `true`.\n *\n * @defaultValue false\n * @group Props\n */\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether keyboard focus wraps from the last item to the first and vice versa.\n *\n * @defaultValue true\n * @group Props\n */\n readonly loopFocus = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether to keep the content of collapsed items mounted in the DOM.\n * When `true`, closed panels keep their element in the DOM instead of\n * receiving a `hidden` attribute. Applies to the always-mounted\n * `rdxAccordionContent`; the `rdxAccordionContentPresence` variant always\n * unmounts.\n *\n * @defaultValue false\n * @group Props\n */\n readonly keepMounted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event handler called when the expanded state of an item changes.\n * @group Emits\n */\n readonly onValueChange = output<AcceptableValue | AcceptableValue[] | undefined>();\n\n readonly isSingle = computed(() => !this.multiple() && this.type() !== 'multiple');\n\n constructor() {\n effect(() => {\n if (this.defaultValue() !== undefined) {\n this.value.set(this.defaultValue());\n }\n });\n }\n\n changeModelValue = (newValue: string) => {\n if (this.isSingle()) {\n this.value.set(this.isEqual(newValue, this.value()) ? undefined : newValue);\n } else {\n const currentValue = this.value();\n let modelValueArray: AcceptableValue[] = [];\n\n if (Array.isArray(currentValue)) {\n modelValueArray = [...currentValue];\n } else if (currentValue !== undefined && currentValue !== null) {\n modelValueArray = [currentValue];\n }\n\n if (this.isValueEqualOrExist(modelValueArray, newValue)) {\n const index = modelValueArray.findIndex((item) => this.isEqual(item, newValue));\n if (index !== -1) {\n modelValueArray.splice(index, 1);\n }\n } else {\n modelValueArray.push(newValue);\n }\n\n this.value.set(modelValueArray);\n }\n\n this.onValueChange.emit(this.value());\n };\n\n private isValueEqualOrExist(arr: AcceptableValue[], value: AcceptableValue): boolean {\n return arr.some((item) => this.isEqual(item, value));\n }\n\n private isEqual(a: any, b: any): boolean {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n Signal,\n WritableSignal\n} from '@angular/core';\nimport { injectCollapsibleRootContext, RdxCollapsibleRootDirective } from '@radix-ng/primitives/collapsible';\nimport { BooleanInput, createContext, useArrowNavigation } from '@radix-ng/primitives/core';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\nexport type RdxAccordionItemState = 'open' | 'closed';\n\nexport type AccordionItemContext = {\n open: Signal<boolean>;\n disabled: Signal<boolean>;\n triggerId: WritableSignal<string>;\n dataState: Signal<RdxAccordionItemState>;\n dataDisabled: Signal<boolean>;\n currentElement: ElementRef<HTMLElement>;\n value: Signal<string | undefined>;\n updateOpen: () => void;\n index: Signal<number>;\n};\n\nexport const [injectAccordionItemContext, provideAccordionItemContext] =\n createContext<AccordionItemContext>('AccordionItemContext');\n\nconst itemContext = (): AccordionItemContext => {\n const instance = inject(RdxAccordionItemDirective);\n\n return {\n open: instance.open,\n dataState: instance.dataState,\n disabled: instance.disabled,\n dataDisabled: instance.isDisabled,\n triggerId: instance.triggerId,\n currentElement: instance.elementRef,\n value: computed(() => instance.value()),\n updateOpen: instance.updateOpen,\n index: instance.index\n };\n};\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxAccordionItem]',\n exportAs: 'rdxAccordionItem',\n providers: [provideAccordionItemContext(itemContext)],\n hostDirectives: [\n {\n directive: RdxCollapsibleRootDirective,\n inputs: ['disabled: disabled', 'open: open']\n }\n ],\n host: {\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-state]': 'dataState()',\n '[attr.data-index]': 'index()',\n\n '(keydown.arrowDown)': 'handleArrowKey($event)',\n '(keydown.arrowUp)': 'handleArrowKey($event)',\n '(keydown.arrowLeft)': 'handleArrowKey($event)',\n '(keydown.arrowRight)': 'handleArrowKey($event)',\n '(keydown.home)': 'handleArrowKey($event)',\n '(keydown.end)': 'handleArrowKey($event)'\n }\n})\nexport class RdxAccordionItemDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly collapsibleContext = injectCollapsibleRootContext();\n\n protected readonly rootContext = injectAccordionRootContext();\n\n /**\n * A string value for the accordion item. All items within an accordion should use a unique value.\n * @group Props\n */\n readonly value = input<string>();\n\n /**\n * Whether or not an accordion item is disabled from user interaction.\n * When `true`, prevents the user from interacting with the item.\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event handler called when the panel open state changes.\n * @group Emits\n */\n readonly onOpenChange = output<boolean>();\n\n readonly isDisabled = computed(() => {\n return this.rootContext.disabled() || this.disabled();\n });\n\n readonly open = computed(() => {\n const rootValue = this.rootContext.value();\n\n return this.rootContext.isSingle()\n ? this.value() === rootValue\n : Array.isArray(rootValue) && rootValue.includes(this.value()!);\n });\n\n readonly dataState = computed((): RdxAccordionItemState => (this.open() ? 'open' : 'closed'));\n\n /** Set by the trigger; links the content's `aria-labelledby` to the trigger `id`. */\n readonly triggerId = signal('');\n\n readonly index = computed(() => {\n const allItems = Array.from(this.rootContext.elementRef.nativeElement.querySelectorAll('[rdxAccordionItem]'));\n return allItems.indexOf(this.elementRef.nativeElement);\n });\n\n constructor() {\n // Collapsed accordion panels stay findable by the browser's in-page search; opening one\n // via find-in-page expands the item. (The standalone Collapsible defaults to plain `hidden`.)\n this.collapsibleContext.hiddenUntilFound.set(true);\n\n effect(() => {\n this.updateOpen();\n });\n\n effect(() => {\n this.collapsibleContext.keepMounted.set(this.rootContext.keepMounted());\n });\n\n let initialized = false;\n effect(() => {\n const isOpen = this.open();\n if (!initialized) {\n initialized = true;\n return;\n }\n this.onOpenChange.emit(isOpen);\n });\n }\n\n updateOpen = () => {\n this.collapsibleContext.open.set(this.open());\n };\n\n handleArrowKey(event: Event) {\n const keyEvent = event as KeyboardEvent;\n const target = event.target as HTMLElement;\n const allCollectionItems: HTMLElement[] = Array.from(\n this.rootContext.elementRef.nativeElement?.querySelectorAll('[data-rdx-collection-item]') ?? []\n );\n\n const collectionItemIndex = allCollectionItems.findIndex((item) => item === target);\n if (collectionItemIndex === -1) return;\n\n useArrowNavigation(\n keyEvent,\n this.elementRef.nativeElement.querySelector('[data-rdx-collection-item]')!,\n this.rootContext.elementRef.nativeElement,\n {\n arrowKeyOptions: this.rootContext.orientation(),\n dir: this.rootContext.direction(),\n loop: this.rootContext.loopFocus(),\n focus: true\n }\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { RdxCollapsiblePanelDirective } from '@radix-ng/primitives/collapsible';\nimport { injectAccordionItemContext } from './accordion-item.directive';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\n@Directive({\n selector: '[rdxAccordionContent]',\n hostDirectives: [RdxCollapsiblePanelDirective],\n host: {\n role: 'region',\n '[attr.aria-labelledby]': 'itemContext.triggerId()',\n '[attr.data-state]': 'itemContext.dataState()',\n '[attr.data-disabled]': 'itemContext.dataDisabled() ? \"\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-index]': 'itemContext.index()',\n '[style]': `{\n '--radix-accordion-content-height': 'var(--collapsible-panel-height)',\n '--radix-accordion-content-width': 'var(--collapsible-panel-width)',\n }`\n }\n})\nexport class RdxAccordionContentDirective {\n protected readonly rootContext = injectAccordionRootContext();\n protected readonly itemContext = injectAccordionItemContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectAccordionItemContext } from './accordion-item.directive';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\n@Directive({\n selector: '[rdxAccordionHeader]',\n host: {\n '[attr.data-state]': 'itemContext.dataState()',\n '[attr.data-disabled]': 'itemContext.dataDisabled() ? \"\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-index]': 'itemContext.index()'\n }\n})\nexport class RdxAccordionHeaderDirective {\n protected readonly rootContext = injectAccordionRootContext();\n protected readonly itemContext = injectAccordionItemContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectAccordionItemContext } from './accordion-item.directive';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\n@Directive({\n selector: '[rdxAccordionTrigger]',\n host: {\n '[id]': 'itemContext.triggerId()',\n '[attr.data-rdx-collection-item]': '\"\"',\n '[attr.role]': '\"button\"',\n '[attr.aria-expanded]': 'itemContext.open()',\n '[attr.aria-disabled]': 'itemContext.open() && !rootContext.collapsible() ? \"true\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-state]': 'itemContext.dataState()',\n '[attr.disabled]': 'itemContext.dataDisabled() ? \"\" : undefined',\n '[attr.data-panel-open]': 'itemContext.open() ? \"\" : undefined',\n '[attr.data-index]': 'itemContext.index()',\n\n '(click)': 'changeItem()'\n }\n})\nexport class RdxAccordionTriggerDirective {\n protected readonly rootContext = injectAccordionRootContext();\n protected readonly itemContext = injectAccordionItemContext();\n\n constructor() {\n this.itemContext.triggerId.set(injectId('rdx-accordion-trigger-'));\n }\n\n changeItem() {\n // In single mode an open item stays open (unless `collapsible`), so a click on it is a no-op.\n const lockedOpen = this.rootContext.isSingle() && this.itemContext.open() && !this.rootContext.collapsible();\n\n // `dataDisabled` is the effective disabled state (accordion-root OR item level).\n if (this.itemContext.dataDisabled() || lockedOpen) {\n return;\n }\n\n this.rootContext.changeModelValue(this.itemContext.value()!);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxAccordionContentPresenceDirective } from './src/accordion-content-presence.directive';\nimport { RdxAccordionContentDirective } from './src/accordion-content.directive';\nimport { RdxAccordionHeaderDirective } from './src/accordion-header.directive';\nimport { RdxAccordionItemDirective } from './src/accordion-item.directive';\nimport { RdxAccordionRootDirective } from './src/accordion-root.directive';\nimport { RdxAccordionTriggerDirective } from './src/accordion-trigger.directive';\n\nexport * from './src/accordion-content-presence.directive';\nexport * from './src/accordion-content.directive';\nexport * from './src/accordion-header.directive';\nexport * from './src/accordion-item.directive';\nexport * from './src/accordion-root.directive';\nexport * from './src/accordion-trigger.directive';\n\nconst _imports = [\n RdxAccordionContentDirective,\n RdxAccordionHeaderDirective,\n RdxAccordionItemDirective,\n RdxAccordionRootDirective,\n RdxAccordionTriggerDirective,\n RdxAccordionContentPresenceDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-accordion.mjs","sources":["../../../packages/primitives/accordion/src/accordion-content-presence.directive.ts","../../../packages/primitives/accordion/src/accordion-root.directive.ts","../../../packages/primitives/accordion/src/accordion-item.directive.ts","../../../packages/primitives/accordion/src/accordion-content.directive.ts","../../../packages/primitives/accordion/src/accordion-header.directive.ts","../../../packages/primitives/accordion/src/accordion-trigger.directive.ts","../../../packages/primitives/accordion/index.ts","../../../packages/primitives/accordion/radix-ng-primitives-accordion.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { RdxCollapsiblePanelPresenceDirective } from '@radix-ng/primitives/collapsible';\n\n@Directive({\n selector: 'ng-template[rdxAccordionContentPresence]',\n hostDirectives: [RdxCollapsiblePanelPresenceDirective]\n})\nexport class RdxAccordionContentPresenceDirective {}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n InputSignal,\n InputSignalWithTransform,\n model,\n ModelSignal,\n output,\n Signal\n} from '@angular/core';\nimport {\n AcceptableValue,\n BooleanInput,\n createContext,\n DataOrientation,\n Direction,\n injectId\n} from '@radix-ng/primitives/core';\n\nexport type AccordionRootContext = {\n disabled: InputSignalWithTransform<boolean, BooleanInput>;\n direction: InputSignal<Direction>;\n orientation: InputSignal<DataOrientation>;\n value: ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;\n collapsible: Signal<boolean>;\n isSingle: Signal<boolean>;\n loopFocus: InputSignalWithTransform<boolean, BooleanInput>;\n keepMounted: InputSignalWithTransform<boolean, BooleanInput>;\n elementRef: ElementRef<HTMLElement>;\n changeModelValue: (value: string) => void;\n};\n\nexport const [injectAccordionRootContext, provideAccordionRootContext] = createContext<AccordionRootContext>(\n 'AccordionRootContext',\n 'components/accordion'\n);\n\nconst rootContext = (): AccordionRootContext => {\n const instance = inject(RdxAccordionRootDirective);\n\n return {\n disabled: instance.disabled,\n direction: instance.dir,\n collapsible: instance.collapsible,\n orientation: instance.orientation,\n elementRef: instance.elementRef,\n value: instance.value,\n isSingle: instance.isSingle,\n loopFocus: instance.loopFocus,\n keepMounted: instance.keepMounted,\n changeModelValue: instance.changeModelValue\n };\n};\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxAccordionRoot]',\n exportAs: 'rdxAccordionRoot',\n providers: [provideAccordionRootContext(rootContext)],\n host: {\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined'\n }\n})\nexport class RdxAccordionRootDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly id = input<string>(injectId('rdx-accordion-'));\n\n /**\n * The reading direction of the accordion when applicable. If omitted, assumes LTR (left-to-right) reading mode.\n *\n * @group Props\n */\n readonly dir = input<Direction>('ltr');\n\n /** Whether the Accordion is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The orientation of the accordion.\n *\n * @defaultValue 'vertical'\n * @group Props\n */\n readonly orientation = input<DataOrientation>('vertical');\n\n /**\n * The default active value of the item(s).\n *\n * Use when you do not need to control the state of the item(s).\n * @group Props\n */\n readonly defaultValue = input<string | string[]>();\n\n /**\n * The controlled value of the item to expand.\n *\n * @group Props\n */\n readonly value = model<AcceptableValue | AcceptableValue[]>();\n\n /**\n * When type is \"single\", allows closing content when clicking trigger for an open item.\n * When type is \"multiple\", this prop has no effect.\n *\n * @defaultValue false\n * @group Props\n */\n readonly collapsible = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Determines whether a \"single\" or \"multiple\" items can be selected at a time.\n *\n * @defaultValue 'single'\n * @group Props\n */\n readonly type = input<'multiple' | 'single'>('single');\n\n /**\n * Allow multiple panels to be open simultaneously.\n * Takes precedence over `type` when `true`.\n *\n * @defaultValue false\n * @group Props\n */\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether keyboard focus wraps from the last item to the first and vice versa.\n *\n * @defaultValue true\n * @group Props\n */\n readonly loopFocus = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether to keep the content of collapsed items mounted in the DOM.\n * When `true`, closed panels keep their element in the DOM instead of\n * receiving a `hidden` attribute. Applies to the always-mounted\n * `rdxAccordionContent`; the `rdxAccordionContentPresence` variant always\n * unmounts.\n *\n * @defaultValue false\n * @group Props\n */\n readonly keepMounted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event handler called when the expanded state of an item changes.\n * @group Emits\n */\n readonly onValueChange = output<AcceptableValue | AcceptableValue[] | undefined>();\n\n readonly isSingle = computed(() => !this.multiple() && this.type() !== 'multiple');\n\n constructor() {\n effect(() => {\n if (this.defaultValue() !== undefined) {\n this.value.set(this.defaultValue());\n }\n });\n }\n\n changeModelValue = (newValue: string) => {\n if (this.isSingle()) {\n this.value.set(this.isEqual(newValue, this.value()) ? undefined : newValue);\n } else {\n const currentValue = this.value();\n let modelValueArray: AcceptableValue[] = [];\n\n if (Array.isArray(currentValue)) {\n modelValueArray = [...currentValue];\n } else if (currentValue !== undefined && currentValue !== null) {\n modelValueArray = [currentValue];\n }\n\n if (this.isValueEqualOrExist(modelValueArray, newValue)) {\n const index = modelValueArray.findIndex((item) => this.isEqual(item, newValue));\n if (index !== -1) {\n modelValueArray.splice(index, 1);\n }\n } else {\n modelValueArray.push(newValue);\n }\n\n this.value.set(modelValueArray);\n }\n\n this.onValueChange.emit(this.value());\n };\n\n private isValueEqualOrExist(arr: AcceptableValue[], value: AcceptableValue): boolean {\n return arr.some((item) => this.isEqual(item, value));\n }\n\n private isEqual(a: any, b: any): boolean {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n Signal,\n WritableSignal\n} from '@angular/core';\nimport { injectCollapsibleRootContext, RdxCollapsibleRootDirective } from '@radix-ng/primitives/collapsible';\nimport { BooleanInput, createContext, useArrowNavigation } from '@radix-ng/primitives/core';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\nexport type RdxAccordionItemState = 'open' | 'closed';\n\nexport type AccordionItemContext = {\n open: Signal<boolean>;\n disabled: Signal<boolean>;\n triggerId: WritableSignal<string>;\n dataState: Signal<RdxAccordionItemState>;\n dataDisabled: Signal<boolean>;\n currentElement: ElementRef<HTMLElement>;\n value: Signal<string | undefined>;\n updateOpen: () => void;\n index: Signal<number>;\n};\n\nexport const [injectAccordionItemContext, provideAccordionItemContext] = createContext<AccordionItemContext>(\n 'AccordionItemContext',\n 'components/accordion'\n);\n\nconst itemContext = (): AccordionItemContext => {\n const instance = inject(RdxAccordionItemDirective);\n\n return {\n open: instance.open,\n dataState: instance.dataState,\n disabled: instance.disabled,\n dataDisabled: instance.isDisabled,\n triggerId: instance.triggerId,\n currentElement: instance.elementRef,\n value: computed(() => instance.value()),\n updateOpen: instance.updateOpen,\n index: instance.index\n };\n};\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxAccordionItem]',\n exportAs: 'rdxAccordionItem',\n providers: [provideAccordionItemContext(itemContext)],\n hostDirectives: [\n {\n directive: RdxCollapsibleRootDirective,\n inputs: ['disabled: disabled', 'open: open']\n }\n ],\n host: {\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-state]': 'dataState()',\n '[attr.data-index]': 'index()',\n\n '(keydown.arrowDown)': 'handleArrowKey($event)',\n '(keydown.arrowUp)': 'handleArrowKey($event)',\n '(keydown.arrowLeft)': 'handleArrowKey($event)',\n '(keydown.arrowRight)': 'handleArrowKey($event)',\n '(keydown.home)': 'handleArrowKey($event)',\n '(keydown.end)': 'handleArrowKey($event)'\n }\n})\nexport class RdxAccordionItemDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly collapsibleContext = injectCollapsibleRootContext();\n\n protected readonly rootContext = injectAccordionRootContext();\n\n /**\n * A string value for the accordion item. All items within an accordion should use a unique value.\n * @group Props\n */\n readonly value = input<string>();\n\n /**\n * Whether or not an accordion item is disabled from user interaction.\n * When `true`, prevents the user from interacting with the item.\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event handler called when the panel open state changes.\n * @group Emits\n */\n readonly onOpenChange = output<boolean>();\n\n readonly isDisabled = computed(() => {\n return this.rootContext.disabled() || this.disabled();\n });\n\n readonly open = computed(() => {\n const rootValue = this.rootContext.value();\n\n return this.rootContext.isSingle()\n ? this.value() === rootValue\n : Array.isArray(rootValue) && rootValue.includes(this.value()!);\n });\n\n readonly dataState = computed((): RdxAccordionItemState => (this.open() ? 'open' : 'closed'));\n\n /** Set by the trigger; links the content's `aria-labelledby` to the trigger `id`. */\n readonly triggerId = signal('');\n\n readonly index = computed(() => {\n const allItems = Array.from(this.rootContext.elementRef.nativeElement.querySelectorAll('[rdxAccordionItem]'));\n return allItems.indexOf(this.elementRef.nativeElement);\n });\n\n constructor() {\n // Collapsed accordion panels stay findable by the browser's in-page search; opening one\n // via find-in-page expands the item. (The standalone Collapsible defaults to plain `hidden`.)\n this.collapsibleContext.hiddenUntilFound.set(true);\n\n effect(() => {\n this.updateOpen();\n });\n\n effect(() => {\n this.collapsibleContext.keepMounted.set(this.rootContext.keepMounted());\n });\n\n let initialized = false;\n effect(() => {\n const isOpen = this.open();\n if (!initialized) {\n initialized = true;\n return;\n }\n this.onOpenChange.emit(isOpen);\n });\n }\n\n updateOpen = () => {\n this.collapsibleContext.open.set(this.open());\n };\n\n handleArrowKey(event: Event) {\n const keyEvent = event as KeyboardEvent;\n const target = event.target as HTMLElement;\n const allCollectionItems: HTMLElement[] = Array.from(\n this.rootContext.elementRef.nativeElement?.querySelectorAll('[data-rdx-collection-item]') ?? []\n );\n\n const collectionItemIndex = allCollectionItems.findIndex((item) => item === target);\n if (collectionItemIndex === -1) return;\n\n useArrowNavigation(\n keyEvent,\n this.elementRef.nativeElement.querySelector('[data-rdx-collection-item]')!,\n this.rootContext.elementRef.nativeElement,\n {\n arrowKeyOptions: this.rootContext.orientation(),\n dir: this.rootContext.direction(),\n loop: this.rootContext.loopFocus(),\n focus: true\n }\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { RdxCollapsiblePanelDirective } from '@radix-ng/primitives/collapsible';\nimport { injectAccordionItemContext } from './accordion-item.directive';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\n@Directive({\n selector: '[rdxAccordionContent]',\n hostDirectives: [RdxCollapsiblePanelDirective],\n host: {\n role: 'region',\n '[attr.aria-labelledby]': 'itemContext.triggerId()',\n '[attr.data-state]': 'itemContext.dataState()',\n '[attr.data-disabled]': 'itemContext.dataDisabled() ? \"\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-index]': 'itemContext.index()',\n '[style]': `{\n '--radix-accordion-content-height': 'var(--collapsible-panel-height)',\n '--radix-accordion-content-width': 'var(--collapsible-panel-width)',\n }`\n }\n})\nexport class RdxAccordionContentDirective {\n protected readonly rootContext = injectAccordionRootContext();\n protected readonly itemContext = injectAccordionItemContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectAccordionItemContext } from './accordion-item.directive';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\n@Directive({\n selector: '[rdxAccordionHeader]',\n host: {\n '[attr.data-state]': 'itemContext.dataState()',\n '[attr.data-disabled]': 'itemContext.dataDisabled() ? \"\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-index]': 'itemContext.index()'\n }\n})\nexport class RdxAccordionHeaderDirective {\n protected readonly rootContext = injectAccordionRootContext();\n protected readonly itemContext = injectAccordionItemContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\nimport { injectAccordionItemContext } from './accordion-item.directive';\nimport { injectAccordionRootContext } from './accordion-root.directive';\n\n@Directive({\n selector: '[rdxAccordionTrigger]',\n host: {\n '[id]': 'itemContext.triggerId()',\n '[attr.data-rdx-collection-item]': '\"\"',\n '[attr.role]': '\"button\"',\n '[attr.aria-expanded]': 'itemContext.open()',\n '[attr.aria-disabled]': 'itemContext.open() && !rootContext.collapsible() ? \"true\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-state]': 'itemContext.dataState()',\n '[attr.disabled]': 'itemContext.dataDisabled() ? \"\" : undefined',\n '[attr.data-panel-open]': 'itemContext.open() ? \"\" : undefined',\n '[attr.data-index]': 'itemContext.index()',\n\n '(click)': 'changeItem()'\n }\n})\nexport class RdxAccordionTriggerDirective {\n protected readonly rootContext = injectAccordionRootContext();\n protected readonly itemContext = injectAccordionItemContext();\n\n constructor() {\n this.itemContext.triggerId.set(injectId('rdx-accordion-trigger-'));\n }\n\n changeItem() {\n // In single mode an open item stays open (unless `collapsible`), so a click on it is a no-op.\n const lockedOpen = this.rootContext.isSingle() && this.itemContext.open() && !this.rootContext.collapsible();\n\n // `dataDisabled` is the effective disabled state (accordion-root OR item level).\n if (this.itemContext.dataDisabled() || lockedOpen) {\n return;\n }\n\n this.rootContext.changeModelValue(this.itemContext.value()!);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxAccordionContentPresenceDirective } from './src/accordion-content-presence.directive';\nimport { RdxAccordionContentDirective } from './src/accordion-content.directive';\nimport { RdxAccordionHeaderDirective } from './src/accordion-header.directive';\nimport { RdxAccordionItemDirective } from './src/accordion-item.directive';\nimport { RdxAccordionRootDirective } from './src/accordion-root.directive';\nimport { RdxAccordionTriggerDirective } from './src/accordion-trigger.directive';\n\nexport * from './src/accordion-content-presence.directive';\nexport * from './src/accordion-content.directive';\nexport * from './src/accordion-header.directive';\nexport * from './src/accordion-item.directive';\nexport * from './src/accordion-root.directive';\nexport * from './src/accordion-trigger.directive';\n\nconst _imports = [\n RdxAccordionContentDirective,\n RdxAccordionHeaderDirective,\n RdxAccordionItemDirective,\n RdxAccordionRootDirective,\n RdxAccordionTriggerDirective,\n RdxAccordionContentPresenceDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAOa,oCAAoC,CAAA;8GAApC,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oCAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0CAA0C;oBACpD,cAAc,EAAE,CAAC,oCAAoC;AACxD,iBAAA;;;AC+BM,MAAM,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,GAAG,aAAa,CAClF,sBAAsB,EACtB,sBAAsB;AAG1B,MAAM,WAAW,GAAG,MAA2B;AAC3C,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,yBAAyB,CAAC;IAElD,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,QAAQ,CAAC,GAAG;QACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,gBAAgB,EAAE,QAAQ,CAAC;KAC9B;AACL,CAAC;AAED;;AAEG;MAUU,yBAAyB,CAAA;AA+FlC,IAAA,WAAA,GAAA;AA9FS,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;QAExD,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,QAAQ,CAAC,gBAAgB,CAAC,yEAAC;AAEvD;;;;AAIG;AACM,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAY,KAAK,0EAAC;AAEtC;;;AAGG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExF;;;;;AAKG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkB,UAAU,kFAAC;AAEzD;;;;;AAKG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAqB;AAElD;;;;AAIG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAuC;AAE7D;;;;;;AAMG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3F;;;;;AAKG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAwB,QAAQ,2EAAC;AAEtD;;;;;;AAMG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExF;;;;;AAKG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAwB,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExF;;;;;;;;;AASG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3F;;;AAGG;QACM,IAAA,CAAA,aAAa,GAAG,MAAM,EAAmD;AAEzE,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,+EAAC;AAUlF,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,QAAgB,KAAI;AACpC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC;YAC/E;iBAAO;AACH,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;gBACjC,IAAI,eAAe,GAAsB,EAAE;AAE3C,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AAC7B,oBAAA,eAAe,GAAG,CAAC,GAAG,YAAY,CAAC;gBACvC;qBAAO,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,EAAE;AAC5D,oBAAA,eAAe,GAAG,CAAC,YAAY,CAAC;gBACpC;gBAEA,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE;oBACrD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/E,oBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACd,wBAAA,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpC;gBACJ;qBAAO;AACH,oBAAA,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClC;AAEA,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YACnC;YAEA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACzC,QAAA,CAAC;QAjCG,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC;AACJ,QAAA,CAAC,CAAC;IACN;IA8BQ,mBAAmB,CAAC,GAAsB,EAAE,KAAsB,EAAA;AACtE,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD;IAEQ,OAAO,CAAC,CAAM,EAAE,CAAM,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD;8GAzIS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,0oDANvB,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAM5C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;AACrD,oBAAA,IAAI,EAAE;AACF,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,sBAAsB,EAAE;AAC3B;AACJ,iBAAA;;;ACvCM,MAAM,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,GAAG,aAAa,CAClF,sBAAsB,EACtB,sBAAsB;AAG1B,MAAM,WAAW,GAAG,MAA2B;AAC3C,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,yBAAyB,CAAC;IAElD,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,UAAU;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,cAAc,EAAE,QAAQ,CAAC,UAAU;QACnC,KAAK,EAAE,QAAQ,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC;KACnB;AACL,CAAC;AAED;;AAEG;MAyBU,yBAAyB,CAAA;AAgDlC,IAAA,WAAA,GAAA;AA/CS,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;QAEhD,IAAA,CAAA,kBAAkB,GAAG,4BAA4B,EAAE;QAEjD,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;AAE7D;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AAEhC;;;;AAIG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExF;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,MAAM,EAAW;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzD,QAAA,CAAC,iFAAC;AAEO,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAE1C,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC5B,kBAAE,IAAI,CAAC,KAAK,EAAE,KAAK;AACnB,kBAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAG,CAAC;AACvE,QAAA,CAAC,2EAAC;QAEO,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,OAA8B,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;;AAGpF,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,EAAE,gFAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC3B,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC7G,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC1D,QAAA,CAAC,4EAAC;QA0BF,IAAA,CAAA,UAAU,GAAG,MAAK;AACd,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjD,QAAA,CAAC;;;QAvBG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAElD,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,UAAU,EAAE;AACrB,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAC3E,QAAA,CAAC,CAAC;QAEF,IAAI,WAAW,GAAG,KAAK;QACvB,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,WAAW,EAAE;gBACd,WAAW,GAAG,IAAI;gBAClB;YACJ;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,QAAA,CAAC,CAAC;IACN;AAMA,IAAA,cAAc,CAAC,KAAY,EAAA;QACvB,MAAM,QAAQ,GAAG,KAAsB;AACvC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;QAC1C,MAAM,kBAAkB,GAAkB,KAAK,CAAC,IAAI,CAChD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAClG;AAED,QAAA,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,CAAC;QACnF,IAAI,mBAAmB,KAAK,CAAC,CAAC;YAAE;QAEhC,kBAAkB,CACd,QAAQ,EACR,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,4BAA4B,CAAE,EAC1E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EACzC;AACI,YAAA,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC/C,YAAA,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACjC,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AAClC,YAAA,KAAK,EAAE;AACV,SAAA,CACJ;IACL;8GAjGS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,u1BArBvB,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAqB5C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAxBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;AACrD,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,2BAA2B;AACtC,4BAAA,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY;AAC9C;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,mBAAmB,EAAE,SAAS;AAE9B,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,wBAAA,mBAAmB,EAAE,wBAAwB;AAC7C,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,eAAe,EAAE;AACpB;AACJ,iBAAA;;;MCzDY,4BAA4B,CAAA;AAhBzC,IAAA,WAAA,GAAA;QAiBuB,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;QAC1C,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;AAChE,IAAA;8GAHY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,+CAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,sLAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,cAAc,EAAE,CAAC,4BAA4B,CAAC;AAC9C,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,wBAAwB,EAAE,yBAAyB;AACnD,wBAAA,mBAAmB,EAAE,yBAAyB;AAC9C,wBAAA,sBAAsB,EAAE,6CAA6C;AACrE,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,mBAAmB,EAAE,qBAAqB;AAC1C,wBAAA,SAAS,EAAE,CAAA;;;AAGP,WAAA;AACP;AACJ,iBAAA;;;MCPY,2BAA2B,CAAA;AATxC,IAAA,WAAA,GAAA;QAUuB,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;QAC1C,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;AAChE,IAAA;8GAHY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,+CAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,yBAAyB;AAC9C,wBAAA,sBAAsB,EAAE,6CAA6C;AACrE,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,mBAAmB,EAAE;AACxB;AACJ,iBAAA;;;MCUY,4BAA4B,CAAA;AAIrC,IAAA,WAAA,GAAA;QAHmB,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;QAC1C,IAAA,CAAA,WAAW,GAAG,0BAA0B,EAAE;AAGzD,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACtE;IAEA,UAAU,GAAA;;QAEN,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;;QAG5G,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,UAAU,EAAE;YAC/C;QACJ;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAG,CAAC;IAChE;8GAlBS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,yEAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,+CAAA,EAAA,sBAAA,EAAA,uCAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAjBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,MAAM,EAAE,yBAAyB;AACjC,wBAAA,iCAAiC,EAAE,IAAI;AACvC,wBAAA,aAAa,EAAE,UAAU;AACzB,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,sBAAsB,EAAE,uEAAuE;AAC/F,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,mBAAmB,EAAE,yBAAyB;AAC9C,wBAAA,iBAAiB,EAAE,6CAA6C;AAChE,wBAAA,wBAAwB,EAAE,qCAAqC;AAC/D,wBAAA,mBAAmB,EAAE,qBAAqB;AAE1C,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;;;ACND,MAAM,QAAQ,GAAG;IACb,4BAA4B;IAC5B,2BAA2B;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,4BAA4B;IAC5B;CACH;MAMY,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAZ3B,4BAA4B;YAC5B,2BAA2B;YAC3B,yBAAyB;YACzB,yBAAyB;YACzB,4BAA4B;AAC5B,YAAA,oCAAoC,aALpC,4BAA4B;YAC5B,2BAA2B;YAC3B,yBAAyB;YACzB,yBAAyB;YACzB,4BAA4B;YAC5B,oCAAoC,CAAA,EAAA,CAAA,CAAA;+GAO3B,kBAAkB,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;AACtB,oBAAA,OAAO,EAAE,CAAC,GAAG,QAAQ;AACxB,iBAAA;;;AC3BD;;AAEG;;;;"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, ElementRef, input, computed, Directive, signal, model, booleanAttribute, linkedSignal, effect, forwardRef, NgModule } from '@angular/core';
3
3
  import { isToday, getLocalTimeZone, isSameMonth, isSameDay, isEqualMonth, startOfWeek, startOfYear, isEqualDay } from '@internationalized/date';
4
4
  import * as kbd from '@radix-ng/primitives/core';
5
- import { toDate, getDaysInMonth, createFormatter, createMonths, isAfter, isBefore, watch, getDefaultDate } from '@radix-ng/primitives/core';
5
+ import { toDate, getDaysInMonth, createFormatter, createMonths, isAfter, isBefore, watch, getDefaultDate, isNullish } from '@radix-ng/primitives/core';
6
6
 
7
7
  const CALENDAR_ROOT_CONTEXT = new InjectionToken('CalendarRootContext');
8
8
  function injectCalendarRootContext() {
@@ -826,6 +826,19 @@ class RdxCalendarRootDirective {
826
826
  this.onPlaceholderChange(_modelValue);
827
827
  }
828
828
  });
829
+ // The placeholder is seeded once at construction, before `locale` binds. When the locale
830
+ // selects a different calendar system and no date is selected yet, re-seed it so the grid
831
+ // renders in that calendar.
832
+ watch([this.locale], () => {
833
+ const value = this.value();
834
+ const hasValue = Array.isArray(value) ? value.length > 0 : !isNullish(value);
835
+ if (hasValue)
836
+ return;
837
+ const next = this.defaultDate();
838
+ if (this.placeholder()?.calendar.identifier !== next.calendar.identifier) {
839
+ this.onPlaceholderChange(next);
840
+ }
841
+ });
829
842
  }
830
843
  /**
831
844
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-calendar.mjs","sources":["../../../packages/primitives/calendar/src/calendar-context.token.ts","../../../packages/primitives/calendar/src/calendar-cell-trigger.directive.ts","../../../packages/primitives/calendar/src/calendar-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-body.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-head.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-row.directive.ts","../../../packages/primitives/calendar/src/calendar-grid.directive.ts","../../../packages/primitives/calendar/src/calendar-head-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-header.directive.ts","../../../packages/primitives/calendar/src/calendar-heading.directive.ts","../../../packages/primitives/calendar/src/calendar-next.directive.ts","../../../packages/primitives/calendar/src/calendar-prev.directive.ts","../../../packages/primitives/calendar/src/calendar.ts","../../../packages/primitives/calendar/src/calendar-root.directive.ts","../../../packages/primitives/calendar/index.ts","../../../packages/primitives/calendar/radix-ng-primitives-calendar.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, Signal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { DateMatcher, Formatter } from '@radix-ng/primitives/core';\n\nexport interface CalendarRootContextToken {\n nextPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n prevPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n isPrevButtonDisabled: (prevPageFunc?: (date: DateValue) => DateValue) => boolean;\n headingValue: Signal<string>;\n dir: InputSignal<'ltr' | 'rtl'>;\n readonly: Signal<boolean>;\n numberOfMonths: InputSignal<number>;\n placeholder: ModelSignal<DateValue>;\n pagedNavigation: Signal<boolean>;\n disabled: Signal<boolean>;\n /** Resolved matcher: whether the given date is currently selected. */\n isDateSelected: DateMatcher;\n /** Resolved matcher: disabled = root `disabled` OR `isDateDisabled` input OR outside min/max. */\n dateDisabled: DateMatcher;\n /** Resolved matcher: unavailable = `isDateUnavailable` input. */\n dateUnavailable: DateMatcher;\n formatter: Formatter;\n onDateChange: (date: DateValue) => void;\n currentElement: HTMLElement;\n startingWeekNumber: Signal<number[]>;\n}\n\nexport const CALENDAR_ROOT_CONTEXT = new InjectionToken<CalendarRootContextToken>('CalendarRootContext');\n\nexport function injectCalendarRootContext(): CalendarRootContextToken {\n return inject(CALENDAR_ROOT_CONTEXT);\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { DateValue, getLocalTimeZone, isSameDay, isSameMonth, isToday } from '@internationalized/date';\nimport * as kbd from '@radix-ng/primitives/core';\nimport { getDaysInMonth, toDate } from '@radix-ng/primitives/core';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: '[rdxCalendarCellTrigger]',\n exportAs: 'rdxCalendarCellTrigger',\n host: {\n role: 'button',\n '[attr.aria-label]': 'labelText()',\n '[attr.aria-disabled]': 'isDisabled() || isUnavailable() ? true : undefined',\n '[attr.data-rdx-calendar-cell-trigger]': '\"\"',\n '[attr.tabindex]': 'isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1',\n '[attr.data-value]': 'day()?.toString()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-today]': 'isDateToday() ? \"\" : undefined',\n '[attr.data-outside-view]': 'isOutsideView() ? \"\" : undefined',\n '[attr.data-selected]': 'isSelectedDate() ? \"\" : undefined',\n '[attr.data-unavailable]': 'isUnavailable() ? \"\" : undefined',\n '[attr.data-focus]': 'isFocusedDate() ? \"\" : undefined',\n\n '(click)': 'onClick()',\n\n '(keydown)': 'onArrowKey($event)'\n }\n})\nexport class RdxCalendarCellTriggerDirective {\n private readonly rootContext = injectCalendarRootContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n constructor() {\n // Host element is available in the constructor; no AfterViewInit needed.\n this.currentElement = this.elementRef.nativeElement;\n }\n\n /**\n * The date value provided to the cell trigger\n */\n readonly day = input<DateValue>();\n\n /**\n * The month in which the cell is rendered\n */\n readonly month = input<DateValue>();\n\n /**\n * Current day\n */\n readonly dayValue = computed(() => this.day()?.day.toLocaleString());\n\n /**\n * Current today state\n */\n readonly isDateToday = computed(() => {\n return isToday(<DateValue>this.day(), getLocalTimeZone());\n });\n\n /**\n * Current selected state\n */\n readonly isSelectedDate = computed(() => this.rootContext.isDateSelected(<DateValue>this.day()));\n\n readonly isDisabled = computed(() => this.rootContext.dateDisabled(<DateValue>this.day()));\n\n readonly isOutsideView = computed(() => {\n return !isSameMonth(<DateValue>this.day(), <DateValue>this.month());\n });\n\n readonly isFocusedDate = computed(() => {\n return !this.rootContext.disabled() && isSameDay(<DateValue>this.day(), this.rootContext.placeholder());\n });\n\n readonly isUnavailable = computed(() => this.rootContext.dateUnavailable(<DateValue>this.day()));\n\n readonly labelText = computed(() => {\n return this.rootContext.formatter.custom(toDate(<DateValue>this.day()), {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n });\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n protected onClick() {\n this.select();\n }\n\n /** Select the date unless the cell is disabled/unavailable or the calendar is readonly. */\n private select() {\n if (this.isDisabled() || this.isUnavailable() || this.rootContext.readonly()) {\n return;\n }\n\n const day = this.day();\n if (day) {\n this.changeDate(day);\n }\n }\n\n protected onArrowKey(event: Event) {\n const keyEvent = event as KeyboardEvent;\n const code = keyEvent.code;\n if (\n ![kbd.ARROW_RIGHT, kbd.ARROW_LEFT, kbd.ARROW_UP, kbd.ARROW_DOWN, kbd.ENTER, kbd.SPACE_CODE].includes(code)\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const indexIncrementation = 7;\n const sign = this.rootContext.dir() === 'rtl' ? -1 : 1;\n\n switch (code) {\n case kbd.ARROW_RIGHT:\n this.shiftFocus(this.currentElement, sign);\n break;\n case kbd.ARROW_LEFT:\n this.shiftFocus(this.currentElement, -sign);\n break;\n case kbd.ARROW_UP:\n this.shiftFocus(this.currentElement, -indexIncrementation);\n break;\n case kbd.ARROW_DOWN:\n this.shiftFocus(this.currentElement, indexIncrementation);\n break;\n case kbd.ENTER:\n case kbd.SPACE_CODE:\n this.select();\n }\n }\n\n private shiftFocus(node: HTMLElement, add: number) {\n const parentElement = this.rootContext.currentElement;\n\n const allCollectionItems: HTMLElement[] = this.getSelectableCells(parentElement);\n if (!allCollectionItems.length) return;\n\n const index = allCollectionItems.indexOf(node);\n const newIndex = index + add;\n\n if (newIndex >= 0 && newIndex < allCollectionItems.length) {\n this.focusCell(allCollectionItems, newIndex, add);\n return;\n }\n\n if (newIndex < 0) {\n if (!this.rootContext.prevPage) return;\n\n this.rootContext.prevPage();\n\n setTimeout(() => {\n const cells = this.getSelectableCells(parentElement);\n if (!cells.length) return;\n\n const computedIndex =\n !this.rootContext.pagedNavigation() && this.rootContext.numberOfMonths() > 1\n ? // placeholder is the first month of the new page\n getDaysInMonth(this.rootContext.placeholder()) - Math.abs(newIndex)\n : cells.length - Math.abs(newIndex);\n\n this.focusCell(cells, computedIndex, add);\n });\n return;\n }\n\n // newIndex >= allCollectionItems.length\n if (!this.rootContext.nextPage) return;\n\n this.rootContext.nextPage();\n\n setTimeout(() => {\n const cells = this.getSelectableCells(parentElement);\n if (!cells.length) return;\n\n let computedIndex: number;\n if (!this.rootContext.pagedNavigation() && this.rootContext.numberOfMonths() > 1) {\n const numberOfDays = getDaysInMonth(\n this.rootContext.placeholder().add({ months: this.rootContext.numberOfMonths() - 1 })\n );\n computedIndex = newIndex - allCollectionItems.length + (cells.length - numberOfDays);\n } else {\n computedIndex = newIndex - allCollectionItems.length;\n }\n\n this.focusCell(cells, computedIndex, add);\n });\n }\n\n /** Focus the cell at `index`, skipping over a disabled cell in the same direction. */\n private focusCell(cells: HTMLElement[], index: number, add: number) {\n const cell = cells[index];\n if (!cell) return;\n\n if (cell.hasAttribute('data-disabled')) {\n this.shiftFocus(cell, add);\n return;\n }\n\n cell.focus();\n }\n\n /**\n * @ignore\n */\n SELECTOR = '[data-rdx-calendar-cell-trigger]:not([data-outside-view]):not([data-outside-visible-view])';\n\n /**\n * @ignore\n */\n getSelectableCells(calendar: HTMLElement): HTMLElement[] {\n return Array.from(calendar.querySelectorAll(this.SELECTOR)) ?? [];\n }\n\n /**\n * @ignore\n */\n changeDate(date: DateValue) {\n this.rootContext.onDateChange(date);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'td[rdxCalendarCell]',\n host: {\n role: 'gridcell',\n '[attr.aria-selected]': 'rootContext.isDateSelected(date()!) ? true : undefined',\n '[attr.aria-disabled]':\n 'rootContext.dateDisabled(date()!) || rootContext.dateUnavailable(date()!) ? true : undefined',\n '[attr.data-disabled]': 'rootContext.dateDisabled(date()!) ? \"\" : undefined'\n }\n})\nexport class RdxCalendarCellDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The date of the cell\n */\n readonly date = input<DateValue>();\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tbody[rdxCalendarGridBody]'\n})\nexport class RdxCalendarGridBodyDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'thead[rdxCalendarGridHead]',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxCalendarGridHeadDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tr[rdxCalendarGridRow]'\n})\nexport class RdxCalendarGridRowDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'table[rdxCalendarGrid]',\n host: {\n tabindex: '-1',\n role: 'grid',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-readonly]': 'readonly() && \"\"',\n '[attr.data-disabled]': 'disabled() && \"\"'\n }\n})\nexport class RdxCalendarGridDirective {\n private readonly rootContext = injectCalendarRootContext();\n\n readonly disabled = computed(() => (this.rootContext.disabled() ? true : undefined));\n readonly readonly = computed(() => (this.rootContext.readonly() ? true : undefined));\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'th[rdxCalendarHeadCell]'\n})\nexport class RdxCalendarHeadCellDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[rdxCalendarHeader]'\n})\nexport class RdxCalendarHeaderDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'div[rdxCalendarHeading]',\n exportAs: 'rdxCalendarHeading',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined'\n }\n})\nexport class RdxCalendarHeadingDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n readonly headingValue = computed(() => this.rootContext.headingValue());\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'button[rdxCalendarNext]',\n exportAs: 'rdxCalendarNext',\n host: {\n '(click)': 'onClick()',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Next page'\n }\n})\nexport class RdxCalendarNextDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `next page`. Overwrites the nextPage function set on the `CalendarRoot`.\n */\n readonly nextPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.nextPage())\n );\n\n protected onClick() {\n this.rootContext.nextPage!(this.nextPage());\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'button[rdxCalendarPrev]',\n exportAs: 'rdxCalendarPrev',\n host: {\n '(click)': 'onClick()',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Previous page'\n }\n})\nexport class RdxCalendarPrevDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `prev page`. Overwrites the prevPage function set on the `CalendarRoot`.\n */\n readonly prevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isPrevButtonDisabled(this.prevPage())\n );\n\n protected onClick() {\n this.rootContext.prevPage!(this.prevPage());\n }\n}\n","import { computed, InputSignal, ModelSignal, signal, WritableSignal } from '@angular/core';\nimport { DateFields, DateValue, isEqualMonth, isSameDay } from '@internationalized/date';\nimport {\n createFormatter,\n createMonths,\n DateFormatterOptions,\n DateMatcher,\n getDaysInMonth,\n isAfter,\n isBefore,\n Month,\n toDate,\n watch\n} from '@radix-ng/primitives/core';\n\nexport type CalendarProps = {\n locale: InputSignal<string>;\n placeholder: WritableSignal<DateValue>;\n weekStartsOn: InputSignal<0 | 1 | 2 | 3 | 4 | 5 | 6>;\n fixedWeeks: WritableSignal<boolean>;\n numberOfMonths: InputSignal<number>;\n minValue: InputSignal<DateValue | undefined>;\n maxValue: InputSignal<DateValue | undefined>;\n disabled: WritableSignal<boolean>;\n weekdayFormat: InputSignal<Intl.DateTimeFormatOptions['weekday']>;\n pagedNavigation: WritableSignal<boolean>;\n isDateDisabled?: InputSignal<DateMatcher | undefined>;\n isDateUnavailable?: InputSignal<DateMatcher | undefined>;\n calendarLabel: InputSignal<string | undefined>;\n nextPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n prevPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n};\n\nexport type CalendarStateProps = {\n date: ModelSignal<DateValue | DateValue[] | undefined>;\n isDateDisabled?: DateMatcher;\n isDateUnavailable?: DateMatcher;\n};\n\nexport function calendarState(props: CalendarStateProps) {\n function isDateSelected(dateObj: DateValue): boolean {\n const currentValue = props.date(); // signal read\n\n if (Array.isArray(currentValue)) {\n return currentValue.some((d) => isSameDay(d, dateObj));\n } else if (!currentValue) {\n return false;\n } else {\n return isSameDay(currentValue, dateObj);\n }\n }\n\n const isInvalid = computed(() => {\n const currentValue = props.date();\n\n if (Array.isArray(currentValue)) {\n if (!currentValue.length) {\n return false;\n }\n for (const dateObj of currentValue) {\n if (props.isDateDisabled?.(dateObj)) return true;\n if (props.isDateUnavailable?.(dateObj)) return true;\n }\n } else {\n if (!currentValue) {\n return false;\n }\n if (props.isDateDisabled?.(currentValue)) return true;\n if (props.isDateUnavailable?.(currentValue)) return true;\n }\n return false;\n });\n\n return {\n isDateSelected,\n isInvalid\n };\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 1;\n if (diff >= getDaysInMonth(lastPeriodInView)) duration.month = 1;\n return firstPeriodOfNextPage.set({ ...duration });\n}\n\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 35;\n if (diff >= getDaysInMonth(firstPeriodInView)) duration.month = 13;\n return lastPeriodOfPrevPage.set({ ...duration });\n}\n\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date);\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date);\n}\n\nexport function calendar(props: CalendarProps) {\n const formatter = createFormatter(props.locale());\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder().calendar.identifier\n };\n\n if (props.placeholder().calendar.identifier === 'gregory' && props.placeholder().era === 'BC') {\n options.era = 'short';\n }\n\n return options;\n });\n\n const month = signal<Month<DateValue>[]>(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n\n const visibleView = computed(() => {\n return month().map((month) => month.value);\n });\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView().some((month) => isEqualMonth(date, month));\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue() || !month().length) return false;\n if (props.disabled()) return true;\n\n const lastPeriodInView = month()[month().length - 1].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage()!);\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n };\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue() || !month().length) return false;\n if (props.disabled()) return true;\n const firstPeriodInView = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage()!);\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n };\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const newDate = firstDate.add({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n\n return;\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n if (!nextPageFunc) {\n const diff = newMonth[0].value.compare(firstDate);\n if (diff >= getDaysInMonth(firstDate)) {\n duration.day = 1;\n }\n\n if (diff >= 365) {\n duration.month = 1;\n }\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newMonth[0].value);\n if (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\n if (diff >= 365) duration.month = 1;\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.()?.(dateObj) || props.disabled()) return true;\n if (props.maxValue() && isAfter(dateObj, <DateValue>props.maxValue())) return true;\n if (props.minValue() && isBefore(dateObj, <DateValue>props.minValue())) return true;\n return false;\n }\n\n const isDateUnavailable = (date: DateValue) => {\n return !!props.isDateUnavailable?.()?.(date);\n };\n\n const weekdays = computed(() => {\n if (!month().length) return [];\n return month()[0].weeks[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat());\n });\n });\n\n watch([props.placeholder], ([placeholder]) => {\n if (visibleView().some((month) => isEqualMonth(month, placeholder))) {\n return;\n }\n\n month.set(\n createMonths({\n dateObj: placeholder,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n });\n\n watch(\n [props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths],\n ([locale, weekStartsOn, fixedWeeks, numberOfMonths]) => {\n month.set(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: weekStartsOn,\n locale: locale,\n fixedWeeks: fixedWeeks,\n numberOfMonths: numberOfMonths\n })\n );\n }\n );\n\n const headingValue = computed(() => {\n if (!month().length) {\n return '';\n }\n\n if (props.locale() !== formatter.getLocale()) formatter.setLocale(props.locale());\n\n if (month().length === 1) {\n const _month = month()[0].value;\n return `${formatter.fullMonthAndYear(toDate(_month), headingFormatOptions())}`;\n }\n\n const startMonth = toDate(month()[0].value);\n const endMonth = toDate(month()[month().length - 1].value);\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions());\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions());\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions());\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions());\n\n return startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n });\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel() ?? 'Event Date'}, ${headingValue()}`);\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n month,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel\n };\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model\n} from '@angular/core';\nimport { DateValue, isEqualDay, isSameDay, startOfWeek, startOfYear } from '@internationalized/date';\nimport { BooleanInput, DateMatcher, Formatter, getDefaultDate, Month, watch } from '@radix-ng/primitives/core';\nimport { calendar, calendarState } from './calendar';\nimport { CALENDAR_ROOT_CONTEXT } from './calendar-context.token';\n\n@Directive({\n selector: '[rdxCalendarRoot]',\n exportAs: 'rdxCalendarRoot',\n providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }],\n host: {\n role: 'application',\n '[attr.aria-label]': 'fullCalendarLabel()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid() ? \"\" : undefined',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxCalendarRootDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar\n */\n readonly value = model<DateValue | DateValue[] | undefined>();\n\n /**\n * The default placeholder date\n */\n readonly defaultPlaceholder = model<DateValue>();\n\n readonly locale = input<string>('en');\n\n readonly defaultDate = computed(() =>\n getDefaultDate({\n defaultPlaceholder: this.defaultPlaceholder(),\n defaultValue: this.value(),\n locale: this.locale()\n })\n );\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected.\n * This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue>(this.defaultPlaceholder() ?? this.defaultDate().copy());\n\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to always display 6 weeks in the calendar\n */\n readonly fixedWeeks = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the calendar is disabled\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to prevent the user from deselecting a date without selecting another date first\n */\n readonly preventDeselect = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The day of the week to start the calendar on\n */\n readonly weekStartsOn = input<0 | 1 | 2 | 3 | 4 | 5 | 6>(1);\n\n /**\n * The number of months to display at once\n */\n readonly numberOfMonths = input<number>(1);\n\n /**\n * The reading direction of the calendar when applicable.\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n /**\n * The minimum date that can be selected\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum date that can be selected\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * The format to use for the weekday strings provided via the weekdays slot prop\n */\n readonly weekdayFormat = input<Intl.DateTimeFormatOptions['weekday']>('narrow');\n\n /**\n * The accessible label for the calendar\n */\n readonly calendarLabel = input<string>();\n\n /**\n * Whether the calendar is readonly\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month\n */\n readonly pagedNavigation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly propsNextPage = input<(placeholder: DateValue) => DateValue>();\n\n readonly propsPrevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * A function that returns whether a date is disabled\n */\n readonly isDateDisabled = input<DateMatcher>();\n\n /**\n * A function that returns whether a date is unavailable\n */\n readonly isDateUnavailable = input<DateMatcher>();\n\n readonly initialFocus = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly months = model<Month<DateValue>[]>();\n\n /**\n * The days of the week\n */\n readonly weekDays = model<string[]>();\n\n protected readonly _fixedWeeks = linkedSignal(this.fixedWeeks);\n\n protected readonly _disabled = linkedSignal(this.disabled);\n\n protected readonly _pagedNavigation = linkedSignal(this.pagedNavigation);\n\n readonly startingWeekNumber = computed(() => {\n const months = this.months();\n const firstWeek = months?.[0]?.weeks;\n if (!firstWeek?.length) {\n return [];\n }\n\n const firstDayOfGrid = startOfWeek(firstWeek[0][0], this.locale());\n\n return Array.from({ length: firstWeek.length }).map((_, idx) => {\n const firstDayOfWeek = firstDayOfGrid.add({ weeks: idx });\n const thursday = firstDayOfWeek.add({ days: 3 });\n const firstDayOfYear = startOfYear(thursday);\n\n return ((thursday.compare(firstDayOfYear) / 7) | 0) + 1;\n });\n });\n\n /**\n * @ignore\n */\n readonly headingValue = computed(() => this.calendar.headingValue());\n\n /**\n * @ignore\n */\n readonly fullCalendarLabel = computed(() => this.calendar.fullCalendarLabel());\n\n /**\n * @ignore\n */\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n prevPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * Resolved matchers from the composable, exposed to child parts via context.\n * @ignore\n */\n dateDisabled!: DateMatcher;\n\n /**\n * @ignore\n */\n dateUnavailable!: DateMatcher;\n\n /**\n * Selection + validity state, recomputed when the value or the matchers change.\n * @ignore\n */\n private readonly _state = computed(() =>\n calendarState({\n date: this.value,\n isDateDisabled: this.isDateDisabled(),\n isDateUnavailable: this.isDateUnavailable()\n })\n );\n\n /**\n * @ignore\n */\n readonly isDateSelected: DateMatcher = (date: DateValue) => this._state().isDateSelected(date);\n\n /**\n * @ignore\n */\n readonly isInvalid = computed(() => this._state().isInvalid());\n\n /**\n * @ignore\n */\n isOutsideVisibleView: (date: DateValue) => boolean;\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n private readonly calendar = calendar({\n locale: this.locale,\n placeholder: this.placeholder,\n weekStartsOn: this.weekStartsOn,\n fixedWeeks: this._fixedWeeks,\n numberOfMonths: this.numberOfMonths,\n minValue: this.minValue,\n maxValue: this.maxValue,\n disabled: this._disabled,\n weekdayFormat: this.weekdayFormat,\n pagedNavigation: this._pagedNavigation,\n isDateDisabled: this.isDateDisabled,\n isDateUnavailable: this.isDateUnavailable,\n calendarLabel: this.calendarLabel,\n nextPage: this.propsNextPage,\n prevPage: this.propsPrevPage\n });\n\n constructor() {\n // Host element exists in the constructor; no need for AfterViewInit.\n this.currentElement = this.elementRef.nativeElement;\n\n this.nextPage = this.calendar.nextPage;\n this.prevPage = this.calendar.prevPage;\n this.isOutsideVisibleView = this.calendar.isOutsideVisibleView;\n this.isNextButtonDisabled = this.calendar.isNextButtonDisabled;\n this.isPrevButtonDisabled = this.calendar.isPrevButtonDisabled;\n this.formatter = this.calendar.formatter;\n // Resolved matchers (fold in `disabled`, min/max and the input matchers).\n this.dateDisabled = this.calendar.isDateDisabled;\n this.dateUnavailable = this.calendar.isDateUnavailable;\n\n // Bridge the composable's grid output into the exposed models.\n effect(() => {\n this.months.set(this.calendar.month());\n this.weekDays.set(this.calendar.weekdays());\n });\n\n watch([this.value], ([_modelValue]) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1];\n if (lastValue && !isEqualDay(this.placeholder(), lastValue)) {\n this.onPlaceholderChange(lastValue);\n }\n } else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(this.placeholder(), _modelValue)) {\n this.onPlaceholderChange(_modelValue);\n }\n });\n }\n\n /**\n * @ignore\n */\n onPlaceholderChange(value: DateValue) {\n this.placeholder.set(value.copy());\n }\n\n /**\n * @ignore\n */\n onDateChange(date: DateValue) {\n const currentValue = this.value();\n\n if (!this.multiple()) {\n // for single selection\n if (!this.value()) {\n this.value.set(date.copy());\n return;\n }\n\n if (!this.preventDeselect() && isEqualDay(this.value() as DateValue, date)) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n } else {\n this.value.set(date.copy());\n }\n } else if (!this.value()) {\n // for multiple selection\n this.value.set([date.copy()]);\n } else if (Array.isArray(currentValue)) {\n const index = currentValue.findIndex((d: DateValue) => isSameDay(d, date));\n if (index === -1) {\n this.value.set([...currentValue, date.copy()]);\n } else if (!this.preventDeselect()) {\n const next = currentValue.filter((d: DateValue) => !isSameDay(d, date));\n if (next.length === 0) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n return;\n }\n this.value.set(next.map((d) => d.copy()));\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nexport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nexport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nexport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nexport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nexport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nexport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nexport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nexport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nexport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nexport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nexport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nexport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nimport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nimport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nimport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nimport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nimport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nimport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nimport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nimport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nimport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nimport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nimport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nimport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nconst _imports = [\n RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-calendar.mjs","sources":["../../../packages/primitives/calendar/src/calendar-context.token.ts","../../../packages/primitives/calendar/src/calendar-cell-trigger.directive.ts","../../../packages/primitives/calendar/src/calendar-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-body.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-head.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-row.directive.ts","../../../packages/primitives/calendar/src/calendar-grid.directive.ts","../../../packages/primitives/calendar/src/calendar-head-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-header.directive.ts","../../../packages/primitives/calendar/src/calendar-heading.directive.ts","../../../packages/primitives/calendar/src/calendar-next.directive.ts","../../../packages/primitives/calendar/src/calendar-prev.directive.ts","../../../packages/primitives/calendar/src/calendar.ts","../../../packages/primitives/calendar/src/calendar-root.directive.ts","../../../packages/primitives/calendar/index.ts","../../../packages/primitives/calendar/radix-ng-primitives-calendar.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, Signal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { DateMatcher, Formatter } from '@radix-ng/primitives/core';\n\nexport interface CalendarRootContextToken {\n nextPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n prevPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n isPrevButtonDisabled: (prevPageFunc?: (date: DateValue) => DateValue) => boolean;\n headingValue: Signal<string>;\n dir: InputSignal<'ltr' | 'rtl'>;\n readonly: Signal<boolean>;\n numberOfMonths: InputSignal<number>;\n placeholder: ModelSignal<DateValue>;\n pagedNavigation: Signal<boolean>;\n disabled: Signal<boolean>;\n /** Resolved matcher: whether the given date is currently selected. */\n isDateSelected: DateMatcher;\n /** Resolved matcher: disabled = root `disabled` OR `isDateDisabled` input OR outside min/max. */\n dateDisabled: DateMatcher;\n /** Resolved matcher: unavailable = `isDateUnavailable` input. */\n dateUnavailable: DateMatcher;\n formatter: Formatter;\n onDateChange: (date: DateValue) => void;\n currentElement: HTMLElement;\n startingWeekNumber: Signal<number[]>;\n}\n\nexport const CALENDAR_ROOT_CONTEXT = new InjectionToken<CalendarRootContextToken>('CalendarRootContext');\n\nexport function injectCalendarRootContext(): CalendarRootContextToken {\n return inject(CALENDAR_ROOT_CONTEXT);\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { DateValue, getLocalTimeZone, isSameDay, isSameMonth, isToday } from '@internationalized/date';\nimport * as kbd from '@radix-ng/primitives/core';\nimport { getDaysInMonth, toDate } from '@radix-ng/primitives/core';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: '[rdxCalendarCellTrigger]',\n exportAs: 'rdxCalendarCellTrigger',\n host: {\n role: 'button',\n '[attr.aria-label]': 'labelText()',\n '[attr.aria-disabled]': 'isDisabled() || isUnavailable() ? true : undefined',\n '[attr.data-rdx-calendar-cell-trigger]': '\"\"',\n '[attr.tabindex]': 'isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1',\n '[attr.data-value]': 'day()?.toString()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-today]': 'isDateToday() ? \"\" : undefined',\n '[attr.data-outside-view]': 'isOutsideView() ? \"\" : undefined',\n '[attr.data-selected]': 'isSelectedDate() ? \"\" : undefined',\n '[attr.data-unavailable]': 'isUnavailable() ? \"\" : undefined',\n '[attr.data-focus]': 'isFocusedDate() ? \"\" : undefined',\n\n '(click)': 'onClick()',\n\n '(keydown)': 'onArrowKey($event)'\n }\n})\nexport class RdxCalendarCellTriggerDirective {\n private readonly rootContext = injectCalendarRootContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n constructor() {\n // Host element is available in the constructor; no AfterViewInit needed.\n this.currentElement = this.elementRef.nativeElement;\n }\n\n /**\n * The date value provided to the cell trigger\n */\n readonly day = input<DateValue>();\n\n /**\n * The month in which the cell is rendered\n */\n readonly month = input<DateValue>();\n\n /**\n * Current day\n */\n readonly dayValue = computed(() => this.day()?.day.toLocaleString());\n\n /**\n * Current today state\n */\n readonly isDateToday = computed(() => {\n return isToday(<DateValue>this.day(), getLocalTimeZone());\n });\n\n /**\n * Current selected state\n */\n readonly isSelectedDate = computed(() => this.rootContext.isDateSelected(<DateValue>this.day()));\n\n readonly isDisabled = computed(() => this.rootContext.dateDisabled(<DateValue>this.day()));\n\n readonly isOutsideView = computed(() => {\n return !isSameMonth(<DateValue>this.day(), <DateValue>this.month());\n });\n\n readonly isFocusedDate = computed(() => {\n return !this.rootContext.disabled() && isSameDay(<DateValue>this.day(), this.rootContext.placeholder());\n });\n\n readonly isUnavailable = computed(() => this.rootContext.dateUnavailable(<DateValue>this.day()));\n\n readonly labelText = computed(() => {\n return this.rootContext.formatter.custom(toDate(<DateValue>this.day()), {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n });\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n protected onClick() {\n this.select();\n }\n\n /** Select the date unless the cell is disabled/unavailable or the calendar is readonly. */\n private select() {\n if (this.isDisabled() || this.isUnavailable() || this.rootContext.readonly()) {\n return;\n }\n\n const day = this.day();\n if (day) {\n this.changeDate(day);\n }\n }\n\n protected onArrowKey(event: Event) {\n const keyEvent = event as KeyboardEvent;\n const code = keyEvent.code;\n if (\n ![kbd.ARROW_RIGHT, kbd.ARROW_LEFT, kbd.ARROW_UP, kbd.ARROW_DOWN, kbd.ENTER, kbd.SPACE_CODE].includes(code)\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const indexIncrementation = 7;\n const sign = this.rootContext.dir() === 'rtl' ? -1 : 1;\n\n switch (code) {\n case kbd.ARROW_RIGHT:\n this.shiftFocus(this.currentElement, sign);\n break;\n case kbd.ARROW_LEFT:\n this.shiftFocus(this.currentElement, -sign);\n break;\n case kbd.ARROW_UP:\n this.shiftFocus(this.currentElement, -indexIncrementation);\n break;\n case kbd.ARROW_DOWN:\n this.shiftFocus(this.currentElement, indexIncrementation);\n break;\n case kbd.ENTER:\n case kbd.SPACE_CODE:\n this.select();\n }\n }\n\n private shiftFocus(node: HTMLElement, add: number) {\n const parentElement = this.rootContext.currentElement;\n\n const allCollectionItems: HTMLElement[] = this.getSelectableCells(parentElement);\n if (!allCollectionItems.length) return;\n\n const index = allCollectionItems.indexOf(node);\n const newIndex = index + add;\n\n if (newIndex >= 0 && newIndex < allCollectionItems.length) {\n this.focusCell(allCollectionItems, newIndex, add);\n return;\n }\n\n if (newIndex < 0) {\n if (!this.rootContext.prevPage) return;\n\n this.rootContext.prevPage();\n\n setTimeout(() => {\n const cells = this.getSelectableCells(parentElement);\n if (!cells.length) return;\n\n const computedIndex =\n !this.rootContext.pagedNavigation() && this.rootContext.numberOfMonths() > 1\n ? // placeholder is the first month of the new page\n getDaysInMonth(this.rootContext.placeholder()) - Math.abs(newIndex)\n : cells.length - Math.abs(newIndex);\n\n this.focusCell(cells, computedIndex, add);\n });\n return;\n }\n\n // newIndex >= allCollectionItems.length\n if (!this.rootContext.nextPage) return;\n\n this.rootContext.nextPage();\n\n setTimeout(() => {\n const cells = this.getSelectableCells(parentElement);\n if (!cells.length) return;\n\n let computedIndex: number;\n if (!this.rootContext.pagedNavigation() && this.rootContext.numberOfMonths() > 1) {\n const numberOfDays = getDaysInMonth(\n this.rootContext.placeholder().add({ months: this.rootContext.numberOfMonths() - 1 })\n );\n computedIndex = newIndex - allCollectionItems.length + (cells.length - numberOfDays);\n } else {\n computedIndex = newIndex - allCollectionItems.length;\n }\n\n this.focusCell(cells, computedIndex, add);\n });\n }\n\n /** Focus the cell at `index`, skipping over a disabled cell in the same direction. */\n private focusCell(cells: HTMLElement[], index: number, add: number) {\n const cell = cells[index];\n if (!cell) return;\n\n if (cell.hasAttribute('data-disabled')) {\n this.shiftFocus(cell, add);\n return;\n }\n\n cell.focus();\n }\n\n /**\n * @ignore\n */\n SELECTOR = '[data-rdx-calendar-cell-trigger]:not([data-outside-view]):not([data-outside-visible-view])';\n\n /**\n * @ignore\n */\n getSelectableCells(calendar: HTMLElement): HTMLElement[] {\n return Array.from(calendar.querySelectorAll(this.SELECTOR)) ?? [];\n }\n\n /**\n * @ignore\n */\n changeDate(date: DateValue) {\n this.rootContext.onDateChange(date);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'td[rdxCalendarCell]',\n host: {\n role: 'gridcell',\n '[attr.aria-selected]': 'rootContext.isDateSelected(date()!) ? true : undefined',\n '[attr.aria-disabled]':\n 'rootContext.dateDisabled(date()!) || rootContext.dateUnavailable(date()!) ? true : undefined',\n '[attr.data-disabled]': 'rootContext.dateDisabled(date()!) ? \"\" : undefined'\n }\n})\nexport class RdxCalendarCellDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The date of the cell\n */\n readonly date = input<DateValue>();\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tbody[rdxCalendarGridBody]'\n})\nexport class RdxCalendarGridBodyDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'thead[rdxCalendarGridHead]',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxCalendarGridHeadDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tr[rdxCalendarGridRow]'\n})\nexport class RdxCalendarGridRowDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'table[rdxCalendarGrid]',\n host: {\n tabindex: '-1',\n role: 'grid',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-readonly]': 'readonly() && \"\"',\n '[attr.data-disabled]': 'disabled() && \"\"'\n }\n})\nexport class RdxCalendarGridDirective {\n private readonly rootContext = injectCalendarRootContext();\n\n readonly disabled = computed(() => (this.rootContext.disabled() ? true : undefined));\n readonly readonly = computed(() => (this.rootContext.readonly() ? true : undefined));\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'th[rdxCalendarHeadCell]'\n})\nexport class RdxCalendarHeadCellDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[rdxCalendarHeader]'\n})\nexport class RdxCalendarHeaderDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'div[rdxCalendarHeading]',\n exportAs: 'rdxCalendarHeading',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined'\n }\n})\nexport class RdxCalendarHeadingDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n readonly headingValue = computed(() => this.rootContext.headingValue());\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'button[rdxCalendarNext]',\n exportAs: 'rdxCalendarNext',\n host: {\n '(click)': 'onClick()',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Next page'\n }\n})\nexport class RdxCalendarNextDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `next page`. Overwrites the nextPage function set on the `CalendarRoot`.\n */\n readonly nextPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.nextPage())\n );\n\n protected onClick() {\n this.rootContext.nextPage!(this.nextPage());\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './calendar-context.token';\n\n@Directive({\n selector: 'button[rdxCalendarPrev]',\n exportAs: 'rdxCalendarPrev',\n host: {\n '(click)': 'onClick()',\n '[attr.disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Previous page'\n }\n})\nexport class RdxCalendarPrevDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `prev page`. Overwrites the prevPage function set on the `CalendarRoot`.\n */\n readonly prevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isPrevButtonDisabled(this.prevPage())\n );\n\n protected onClick() {\n this.rootContext.prevPage!(this.prevPage());\n }\n}\n","import { computed, InputSignal, ModelSignal, signal, WritableSignal } from '@angular/core';\nimport { DateFields, DateValue, isEqualMonth, isSameDay } from '@internationalized/date';\nimport {\n createFormatter,\n createMonths,\n DateFormatterOptions,\n DateMatcher,\n getDaysInMonth,\n isAfter,\n isBefore,\n Month,\n toDate,\n watch\n} from '@radix-ng/primitives/core';\n\nexport type CalendarProps = {\n locale: InputSignal<string>;\n placeholder: WritableSignal<DateValue>;\n weekStartsOn: InputSignal<0 | 1 | 2 | 3 | 4 | 5 | 6>;\n fixedWeeks: WritableSignal<boolean>;\n numberOfMonths: InputSignal<number>;\n minValue: InputSignal<DateValue | undefined>;\n maxValue: InputSignal<DateValue | undefined>;\n disabled: WritableSignal<boolean>;\n weekdayFormat: InputSignal<Intl.DateTimeFormatOptions['weekday']>;\n pagedNavigation: WritableSignal<boolean>;\n isDateDisabled?: InputSignal<DateMatcher | undefined>;\n isDateUnavailable?: InputSignal<DateMatcher | undefined>;\n calendarLabel: InputSignal<string | undefined>;\n nextPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n prevPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n};\n\nexport type CalendarStateProps = {\n date: ModelSignal<DateValue | DateValue[] | undefined>;\n isDateDisabled?: DateMatcher;\n isDateUnavailable?: DateMatcher;\n};\n\nexport function calendarState(props: CalendarStateProps) {\n function isDateSelected(dateObj: DateValue): boolean {\n const currentValue = props.date(); // signal read\n\n if (Array.isArray(currentValue)) {\n return currentValue.some((d) => isSameDay(d, dateObj));\n } else if (!currentValue) {\n return false;\n } else {\n return isSameDay(currentValue, dateObj);\n }\n }\n\n const isInvalid = computed(() => {\n const currentValue = props.date();\n\n if (Array.isArray(currentValue)) {\n if (!currentValue.length) {\n return false;\n }\n for (const dateObj of currentValue) {\n if (props.isDateDisabled?.(dateObj)) return true;\n if (props.isDateUnavailable?.(dateObj)) return true;\n }\n } else {\n if (!currentValue) {\n return false;\n }\n if (props.isDateDisabled?.(currentValue)) return true;\n if (props.isDateUnavailable?.(currentValue)) return true;\n }\n return false;\n });\n\n return {\n isDateSelected,\n isInvalid\n };\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 1;\n if (diff >= getDaysInMonth(lastPeriodInView)) duration.month = 1;\n return firstPeriodOfNextPage.set({ ...duration });\n}\n\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 35;\n if (diff >= getDaysInMonth(firstPeriodInView)) duration.month = 13;\n return lastPeriodOfPrevPage.set({ ...duration });\n}\n\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date);\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date);\n}\n\nexport function calendar(props: CalendarProps) {\n const formatter = createFormatter(props.locale());\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder().calendar.identifier\n };\n\n if (props.placeholder().calendar.identifier === 'gregory' && props.placeholder().era === 'BC') {\n options.era = 'short';\n }\n\n return options;\n });\n\n const month = signal<Month<DateValue>[]>(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n\n const visibleView = computed(() => {\n return month().map((month) => month.value);\n });\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView().some((month) => isEqualMonth(date, month));\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue() || !month().length) return false;\n if (props.disabled()) return true;\n\n const lastPeriodInView = month()[month().length - 1].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage()!);\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n };\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue() || !month().length) return false;\n if (props.disabled()) return true;\n const firstPeriodInView = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage()!);\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n };\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const newDate = firstDate.add({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n\n return;\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n if (!nextPageFunc) {\n const diff = newMonth[0].value.compare(firstDate);\n if (diff >= getDaysInMonth(firstDate)) {\n duration.day = 1;\n }\n\n if (diff >= 365) {\n duration.month = 1;\n }\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newMonth[0].value);\n if (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\n if (diff >= 365) duration.month = 1;\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.()?.(dateObj) || props.disabled()) return true;\n if (props.maxValue() && isAfter(dateObj, <DateValue>props.maxValue())) return true;\n if (props.minValue() && isBefore(dateObj, <DateValue>props.minValue())) return true;\n return false;\n }\n\n const isDateUnavailable = (date: DateValue) => {\n return !!props.isDateUnavailable?.()?.(date);\n };\n\n const weekdays = computed(() => {\n if (!month().length) return [];\n return month()[0].weeks[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat());\n });\n });\n\n watch([props.placeholder], ([placeholder]) => {\n if (visibleView().some((month) => isEqualMonth(month, placeholder))) {\n return;\n }\n\n month.set(\n createMonths({\n dateObj: placeholder,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n });\n\n watch(\n [props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths],\n ([locale, weekStartsOn, fixedWeeks, numberOfMonths]) => {\n month.set(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: weekStartsOn,\n locale: locale,\n fixedWeeks: fixedWeeks,\n numberOfMonths: numberOfMonths\n })\n );\n }\n );\n\n const headingValue = computed(() => {\n if (!month().length) {\n return '';\n }\n\n if (props.locale() !== formatter.getLocale()) formatter.setLocale(props.locale());\n\n if (month().length === 1) {\n const _month = month()[0].value;\n return `${formatter.fullMonthAndYear(toDate(_month), headingFormatOptions())}`;\n }\n\n const startMonth = toDate(month()[0].value);\n const endMonth = toDate(month()[month().length - 1].value);\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions());\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions());\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions());\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions());\n\n return startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n });\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel() ?? 'Event Date'}, ${headingValue()}`);\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n month,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel\n };\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model\n} from '@angular/core';\nimport { DateValue, isEqualDay, isSameDay, startOfWeek, startOfYear } from '@internationalized/date';\nimport {\n BooleanInput,\n DateMatcher,\n Formatter,\n getDefaultDate,\n isNullish,\n Month,\n watch\n} from '@radix-ng/primitives/core';\nimport { calendar, calendarState } from './calendar';\nimport { CALENDAR_ROOT_CONTEXT } from './calendar-context.token';\n\n@Directive({\n selector: '[rdxCalendarRoot]',\n exportAs: 'rdxCalendarRoot',\n providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }],\n host: {\n role: 'application',\n '[attr.aria-label]': 'fullCalendarLabel()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid() ? \"\" : undefined',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxCalendarRootDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar\n */\n readonly value = model<DateValue | DateValue[] | undefined>();\n\n /**\n * The default placeholder date\n */\n readonly defaultPlaceholder = model<DateValue>();\n\n readonly locale = input<string>('en');\n\n readonly defaultDate = computed(() =>\n getDefaultDate({\n defaultPlaceholder: this.defaultPlaceholder(),\n defaultValue: this.value(),\n locale: this.locale()\n })\n );\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected.\n * This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue>(this.defaultPlaceholder() ?? this.defaultDate().copy());\n\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to always display 6 weeks in the calendar\n */\n readonly fixedWeeks = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the calendar is disabled\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to prevent the user from deselecting a date without selecting another date first\n */\n readonly preventDeselect = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The day of the week to start the calendar on\n */\n readonly weekStartsOn = input<0 | 1 | 2 | 3 | 4 | 5 | 6>(1);\n\n /**\n * The number of months to display at once\n */\n readonly numberOfMonths = input<number>(1);\n\n /**\n * The reading direction of the calendar when applicable.\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n /**\n * The minimum date that can be selected\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum date that can be selected\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * The format to use for the weekday strings provided via the weekdays slot prop\n */\n readonly weekdayFormat = input<Intl.DateTimeFormatOptions['weekday']>('narrow');\n\n /**\n * The accessible label for the calendar\n */\n readonly calendarLabel = input<string>();\n\n /**\n * Whether the calendar is readonly\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month\n */\n readonly pagedNavigation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly propsNextPage = input<(placeholder: DateValue) => DateValue>();\n\n readonly propsPrevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * A function that returns whether a date is disabled\n */\n readonly isDateDisabled = input<DateMatcher>();\n\n /**\n * A function that returns whether a date is unavailable\n */\n readonly isDateUnavailable = input<DateMatcher>();\n\n readonly initialFocus = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly months = model<Month<DateValue>[]>();\n\n /**\n * The days of the week\n */\n readonly weekDays = model<string[]>();\n\n protected readonly _fixedWeeks = linkedSignal(this.fixedWeeks);\n\n protected readonly _disabled = linkedSignal(this.disabled);\n\n protected readonly _pagedNavigation = linkedSignal(this.pagedNavigation);\n\n readonly startingWeekNumber = computed(() => {\n const months = this.months();\n const firstWeek = months?.[0]?.weeks;\n if (!firstWeek?.length) {\n return [];\n }\n\n const firstDayOfGrid = startOfWeek(firstWeek[0][0], this.locale());\n\n return Array.from({ length: firstWeek.length }).map((_, idx) => {\n const firstDayOfWeek = firstDayOfGrid.add({ weeks: idx });\n const thursday = firstDayOfWeek.add({ days: 3 });\n const firstDayOfYear = startOfYear(thursday);\n\n return ((thursday.compare(firstDayOfYear) / 7) | 0) + 1;\n });\n });\n\n /**\n * @ignore\n */\n readonly headingValue = computed(() => this.calendar.headingValue());\n\n /**\n * @ignore\n */\n readonly fullCalendarLabel = computed(() => this.calendar.fullCalendarLabel());\n\n /**\n * @ignore\n */\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n prevPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * Resolved matchers from the composable, exposed to child parts via context.\n * @ignore\n */\n dateDisabled!: DateMatcher;\n\n /**\n * @ignore\n */\n dateUnavailable!: DateMatcher;\n\n /**\n * Selection + validity state, recomputed when the value or the matchers change.\n * @ignore\n */\n private readonly _state = computed(() =>\n calendarState({\n date: this.value,\n isDateDisabled: this.isDateDisabled(),\n isDateUnavailable: this.isDateUnavailable()\n })\n );\n\n /**\n * @ignore\n */\n readonly isDateSelected: DateMatcher = (date: DateValue) => this._state().isDateSelected(date);\n\n /**\n * @ignore\n */\n readonly isInvalid = computed(() => this._state().isInvalid());\n\n /**\n * @ignore\n */\n isOutsideVisibleView: (date: DateValue) => boolean;\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n private readonly calendar = calendar({\n locale: this.locale,\n placeholder: this.placeholder,\n weekStartsOn: this.weekStartsOn,\n fixedWeeks: this._fixedWeeks,\n numberOfMonths: this.numberOfMonths,\n minValue: this.minValue,\n maxValue: this.maxValue,\n disabled: this._disabled,\n weekdayFormat: this.weekdayFormat,\n pagedNavigation: this._pagedNavigation,\n isDateDisabled: this.isDateDisabled,\n isDateUnavailable: this.isDateUnavailable,\n calendarLabel: this.calendarLabel,\n nextPage: this.propsNextPage,\n prevPage: this.propsPrevPage\n });\n\n constructor() {\n // Host element exists in the constructor; no need for AfterViewInit.\n this.currentElement = this.elementRef.nativeElement;\n\n this.nextPage = this.calendar.nextPage;\n this.prevPage = this.calendar.prevPage;\n this.isOutsideVisibleView = this.calendar.isOutsideVisibleView;\n this.isNextButtonDisabled = this.calendar.isNextButtonDisabled;\n this.isPrevButtonDisabled = this.calendar.isPrevButtonDisabled;\n this.formatter = this.calendar.formatter;\n // Resolved matchers (fold in `disabled`, min/max and the input matchers).\n this.dateDisabled = this.calendar.isDateDisabled;\n this.dateUnavailable = this.calendar.isDateUnavailable;\n\n // Bridge the composable's grid output into the exposed models.\n effect(() => {\n this.months.set(this.calendar.month());\n this.weekDays.set(this.calendar.weekdays());\n });\n\n watch([this.value], ([_modelValue]) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1];\n if (lastValue && !isEqualDay(this.placeholder(), lastValue)) {\n this.onPlaceholderChange(lastValue);\n }\n } else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(this.placeholder(), _modelValue)) {\n this.onPlaceholderChange(_modelValue);\n }\n });\n\n // The placeholder is seeded once at construction, before `locale` binds. When the locale\n // selects a different calendar system and no date is selected yet, re-seed it so the grid\n // renders in that calendar.\n watch([this.locale], () => {\n const value = this.value();\n const hasValue = Array.isArray(value) ? value.length > 0 : !isNullish(value);\n if (hasValue) return;\n const next = this.defaultDate();\n if (this.placeholder()?.calendar.identifier !== next.calendar.identifier) {\n this.onPlaceholderChange(next);\n }\n });\n }\n\n /**\n * @ignore\n */\n onPlaceholderChange(value: DateValue) {\n this.placeholder.set(value.copy());\n }\n\n /**\n * @ignore\n */\n onDateChange(date: DateValue) {\n const currentValue = this.value();\n\n if (!this.multiple()) {\n // for single selection\n if (!this.value()) {\n this.value.set(date.copy());\n return;\n }\n\n if (!this.preventDeselect() && isEqualDay(this.value() as DateValue, date)) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n } else {\n this.value.set(date.copy());\n }\n } else if (!this.value()) {\n // for multiple selection\n this.value.set([date.copy()]);\n } else if (Array.isArray(currentValue)) {\n const index = currentValue.findIndex((d: DateValue) => isSameDay(d, date));\n if (index === -1) {\n this.value.set([...currentValue, date.copy()]);\n } else if (!this.preventDeselect()) {\n const next = currentValue.filter((d: DateValue) => !isSameDay(d, date));\n if (next.length === 0) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n return;\n }\n this.value.set(next.map((d) => d.copy()));\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nexport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nexport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nexport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nexport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nexport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nexport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nexport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nexport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nexport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nexport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nexport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nexport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nimport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nimport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nimport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nimport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nimport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nimport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nimport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nimport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nimport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nimport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nimport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nimport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nconst _imports = [\n RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { outputFromObservable, outputToObservable } from '@angular/core/rxjs-int
6
6
  import * as i1$1 from '@radix-ng/primitives/presence';
7
7
  import { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';
8
8
 
9
- const [injectCheckboxGroupContext, provideCheckboxGroupContext] = createContext('CheckboxGroupContext');
9
+ const [injectCheckboxGroupContext, provideCheckboxGroupContext] = createContext('CheckboxGroupContext', 'components/checkbox');
10
10
  const groupContext = () => {
11
11
  const group = inject(RdxCheckboxGroupDirective);
12
12
  return {
@@ -240,7 +240,7 @@ const rootContext = () => {
240
240
  }
241
241
  };
242
242
  };
243
- const [injectCheckboxRootContext, provideCheckboxRootContext] = createContext('CheckboxRootContext');
243
+ const [injectCheckboxRootContext, provideCheckboxRootContext] = createContext('CheckboxRootContext', 'components/checkbox');
244
244
  /**
245
245
  * @group Components
246
246
  */