@radix-ng/primitives 0.51.0 → 1.0.0-beta.0

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 (178) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
  6. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
  9. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  11. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  12. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  18. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +735 -744
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
  25. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
  27. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  29. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  33. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  34. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  36. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  37. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  38. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  42. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  43. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  44. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
  46. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  48. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  50. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  52. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  54. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  65. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  67. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  71. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  73. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  95. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  96. package/meter/README.md +3 -0
  97. package/navigation-menu/README.md +2 -1
  98. package/package.json +31 -18
  99. package/portal/README.md +2 -0
  100. package/preview-card/README.md +3 -0
  101. package/schematics/collection.json +1 -0
  102. package/schematics/ng-add/index.d.ts +3 -2
  103. package/schematics/ng-add/index.js +62 -31
  104. package/schematics/ng-add/index.js.map +1 -1
  105. package/schematics/ng-add/package-config.d.ts +4 -2
  106. package/schematics/ng-add/package-config.js +10 -2
  107. package/schematics/ng-add/package-config.js.map +1 -1
  108. package/schematics/ng-add/schema.d.ts +3 -0
  109. package/schematics/ng-add/schema.js +3 -0
  110. package/schematics/ng-add/schema.js.map +1 -0
  111. package/schematics/ng-add/schema.json +14 -0
  112. package/select/README.md +2 -0
  113. package/types/radix-ng-primitives-accordion.d.ts +48 -14
  114. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  115. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  116. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  117. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  118. package/types/radix-ng-primitives-button.d.ts +73 -0
  119. package/types/radix-ng-primitives-calendar.d.ts +1 -2
  120. package/types/radix-ng-primitives-checkbox.d.ts +201 -32
  121. package/types/radix-ng-primitives-collapsible.d.ts +112 -39
  122. package/types/radix-ng-primitives-collection.d.ts +38 -34
  123. package/types/radix-ng-primitives-config.d.ts +1 -1
  124. package/types/radix-ng-primitives-context-menu.d.ts +60 -116
  125. package/types/radix-ng-primitives-core.d.ts +307 -236
  126. package/types/radix-ng-primitives-cropper.d.ts +2 -2
  127. package/types/radix-ng-primitives-date-field.d.ts +38 -23
  128. package/types/radix-ng-primitives-dialog.d.ts +282 -165
  129. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  130. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  131. package/types/radix-ng-primitives-editable.d.ts +1 -1
  132. package/types/radix-ng-primitives-field.d.ts +373 -0
  133. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  134. package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
  135. package/types/radix-ng-primitives-input.d.ts +87 -0
  136. package/types/radix-ng-primitives-label.d.ts +0 -1
  137. package/types/radix-ng-primitives-menu.d.ts +572 -99
  138. package/types/radix-ng-primitives-menubar.d.ts +60 -50
  139. package/types/radix-ng-primitives-meter.d.ts +193 -0
  140. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  141. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  142. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  143. package/types/radix-ng-primitives-popover.d.ts +365 -351
  144. package/types/radix-ng-primitives-popper.d.ts +49 -9
  145. package/types/radix-ng-primitives-portal.d.ts +14 -6
  146. package/types/radix-ng-primitives-presence.d.ts +28 -76
  147. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  148. package/types/radix-ng-primitives-progress.d.ts +174 -48
  149. package/types/radix-ng-primitives-radio.d.ts +55 -25
  150. package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
  151. package/types/radix-ng-primitives-select.d.ts +475 -177
  152. package/types/radix-ng-primitives-separator.d.ts +7 -32
  153. package/types/radix-ng-primitives-slider.d.ts +315 -201
  154. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  155. package/types/radix-ng-primitives-switch.d.ts +86 -71
  156. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  157. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  158. package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
  159. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  160. package/types/radix-ng-primitives-toolbar.d.ts +163 -38
  161. package/types/radix-ng-primitives-tooltip.d.ts +347 -384
  162. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  163. package/dropdown-menu/README.md +0 -1
  164. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  165. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  166. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  167. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  168. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  169. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  170. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  171. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  172. package/hover-card/README.md +0 -3
  173. package/select2/README.md +0 -3
  174. package/tooltip2/README.md +0 -3
  175. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  176. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  177. package/types/radix-ng-primitives-select2.d.ts +0 -511
  178. package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-select.mjs","sources":["../../../packages/primitives/select/src/select-value.directive.ts","../../../packages/primitives/select/src/select-trigger.directive.ts","../../../packages/primitives/select/src/select.component.ts","../../../packages/primitives/select/src/select-item.directive.ts","../../../packages/primitives/select/src/select-content.directive.ts","../../../packages/primitives/select/src/select-group.directive.ts","../../../packages/primitives/select/src/select-icon.directive.ts","../../../packages/primitives/select/src/select-item-indicator.directive.ts","../../../packages/primitives/select/src/select-label.directive.ts","../../../packages/primitives/select/src/select-separator.directive.ts","../../../packages/primitives/select/index.ts","../../../packages/primitives/select/radix-ng-primitives-select.ts"],"sourcesContent":["import { Component, inject, Input } from '@angular/core';\nimport { RdxSelectComponent } from './select.component';\n\n@Component({\n selector: '[rdxSelectValue]',\n standalone: true,\n exportAs: 'rdxSelectValue',\n template: `\n {{ select.selectionModel.isEmpty() ? placeholder : select.selected }}\n `,\n styles: `\n /* we don't want events from the children to bubble through the item they came from */\n :host {\n pointer-events: none;\n }\n `\n})\nexport class RdxSelectValueDirective {\n select = inject(RdxSelectComponent);\n\n @Input() placeholder: string;\n}\n","import { AfterViewInit, contentChild, Directive, ElementRef, inject, NgZone, OnDestroy } from '@angular/core';\nimport { RdxSelectValueDirective } from './select-value.directive';\nimport { RdxSelectComponent } from './select.component';\n\n@Directive({\n selector: '[rdxSelectTrigger]',\n standalone: true,\n host: {\n '[attr.type]': '\"button\"',\n '[attr.role]': '\"combobox\"',\n '[attr.aria-autocomplete]': '\"none\"',\n '[attr.dir]': 'select.dir?.value',\n '[attr.aria-expanded]': 'select.open',\n '[attr.aria-required]': 'select.required',\n '[attr.disabled]': 'select.disabled ? \"\" : null',\n '[attr.data-disabled]': 'select.disabled ? \"\" : null',\n '[attr.data-state]': \"select.open ? 'open': 'closed'\",\n '[attr.data-placeholder]': 'value().placeholder || null'\n }\n})\nexport class RdxSelectTriggerDirective implements AfterViewInit, OnDestroy {\n readonly ngZone = inject(NgZone);\n protected nativeElement = inject(ElementRef).nativeElement;\n protected select = inject(RdxSelectComponent);\n\n protected readonly value = contentChild.required(RdxSelectValueDirective);\n\n private resizeObserver: ResizeObserver | null;\n\n ngAfterViewInit(): void {\n this.select.triggerSize.set([this.nativeElement.offsetWidth, this.nativeElement.offsetHeight]);\n this.observeTriggerResize();\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n focus() {\n this.nativeElement.focus();\n }\n\n private observeTriggerResize() {\n if (typeof ResizeObserver === 'undefined' || !ResizeObserver) {\n return;\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.resizeObserver = new ResizeObserver(() => {\n this.select.triggerSize.set([this.nativeElement.offsetWidth, this.nativeElement.offsetHeight]);\n });\n this.resizeObserver.observe(this.nativeElement);\n });\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay, ConnectedPosition, Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgZone,\n OnInit,\n Output,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { defer, delay, merge, Observable, Subscription, switchMap, take } from 'rxjs';\nimport { RdxSelectContentDirective } from './select-content.directive';\nimport { RdxSelectItemChange, RdxSelectItemDirective } from './select-item.directive';\nimport { RdxSelectTriggerDirective } from './select-trigger.directive';\n\nlet nextId = 0;\n\n@Component({\n selector: '[rdxSelect]',\n template: `\n <ng-content select=\"[rdxSelectTrigger]\" />\n\n <ng-template\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayOrigin]=\"elementRef\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"overlay.scrollStrategies.reposition()\"\n [cdkConnectedOverlayMinWidth]=\"triggerWidth() > 0 ? triggerWidth() : 'auto'\"\n [cdkConnectedOverlayWidth]=\"matchTriggerWidth ? triggerWidth() : 'auto'\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"onDetach()\"\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlay\n >\n <ng-content select=\"[rdxSelectContent]\" />\n </ng-template>\n `,\n host: {\n '[style.--radix-select-trigger-width.px]': 'triggerSize()[0]',\n '[style.--radix-select-trigger-height.px]': 'triggerSize()[1]',\n '(click)': 'toggle()',\n '(keydown)': 'content().keyManager.onKeydown($event)'\n },\n imports: [OverlayModule]\n})\nexport class RdxSelectComponent implements OnInit, AfterContentInit {\n protected overlay = inject(Overlay);\n protected elementRef = inject(ElementRef);\n protected changeDetectorRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ngZone = inject(NgZone);\n\n protected readonly trigger = contentChild.required(RdxSelectTriggerDirective);\n protected readonly content = contentChild.required<RdxSelectContentDirective>(\n forwardRef(() => RdxSelectContentDirective)\n );\n readonly items = contentChildren<RdxSelectItemDirective>(\n forwardRef(() => RdxSelectItemDirective),\n { descendants: true }\n );\n readonly overlayDir = viewChild.required(CdkConnectedOverlay);\n\n /**\n * Tuple type for the trigger element size. Set by the trigger element itself.\n * The first element is the width and the second element is the height.\n * @returns The size of the trigger element.\n */\n readonly triggerSize = signal<[number, number]>([0, 0]);\n\n /**\n * The width of the trigger element.\n * @returns The width of the trigger element.\n */\n readonly triggerWidth = computed<number>(() => this.triggerSize()[0]);\n\n /** Deals with the selection logic. */\n selectionModel: SelectionModel<RdxSelectItemDirective>;\n\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n\n private closeSubscription = Subscription.EMPTY;\n\n /**\n * @ignore\n */\n readonly dir = inject(Directionality, { optional: true });\n\n /**\n * @ignore\n */\n protected keyManager: ActiveDescendantKeyManager<RdxSelectItemDirective>;\n\n /**\n * @ignore\n */\n readonly id: string = `rdx-select-${nextId++}`;\n\n @Input() defaultValue: string;\n @Input() name: string;\n\n @Input({ transform: booleanAttribute }) defaultOpen: boolean;\n\n @Input({ transform: booleanAttribute }) open: boolean = false;\n\n /** Whether the Select is disabled. */\n @Input({ transform: booleanAttribute }) disabled: boolean;\n\n @Input({ transform: booleanAttribute }) required: boolean;\n\n /**\n * The overlay width will be set to the trigger width if this is true.\n * Otherwise, the overlay width will be set to the width of the content.\n */\n @Input({ transform: booleanAttribute }) matchTriggerWidth: boolean = false;\n\n /**\n * The controlled value of the item to expand\n */\n @Input()\n set value(value: string) {\n if (this._value !== value) {\n this._value = value;\n\n this.selectValue(value);\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n get value(): string | null {\n return this._value ?? this.defaultValue;\n }\n\n private _value?: string;\n\n @Output() readonly onValueChange: EventEmitter<string> = new EventEmitter<string>();\n\n @Output() readonly onOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n readonly optionSelectionChanges: Observable<RdxSelectItemChange> = defer(() => {\n const content = this.content();\n if (content.options) {\n return merge(...content.options.map((option) => option.onSelectionChange));\n }\n\n return this.ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionSelectionChanges)\n );\n }) as Observable<RdxSelectItemChange>;\n\n get selected(): string | null {\n return this.selectionModel.selected[0].viewValue || null;\n }\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<RdxSelectItemDirective>();\n\n this.selectionModel.changed.subscribe((changes) => {\n if (changes.added.length) {\n this.onValueChange.emit(this.selectionModel.selected[0].value);\n }\n\n if (changes.removed.length) {\n changes.removed.forEach((item) => (item.selected = false));\n }\n });\n }\n\n ngAfterContentInit() {\n this.selectDefaultValue();\n\n this.optionSelectionChanges.subscribe((event) => {\n this.selectionModel.clear();\n\n this.selectionModel.select(event.source);\n\n this.close();\n this.trigger().focus();\n });\n\n this.content().keyManager.tabOut.subscribe(() => {\n if (this.open) this.close();\n });\n\n if (this.defaultOpen) {\n this.openPanel();\n }\n }\n\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n onAttached(): void {\n this.closeSubscription = this.closingActions()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .pipe(delay(0))\n .subscribe(() => this.close());\n }\n\n onDetach() {\n this.close();\n this.closeSubscription.unsubscribe();\n }\n\n /** Toggles the overlay panel open or closed. */\n toggle(): void {\n if (this.open) {\n this.close();\n } else {\n this.openPanel();\n }\n }\n\n openPanel() {\n this.open = true;\n\n this.onOpenChange.emit(this.open);\n }\n\n close() {\n this.open = false;\n\n this.onOpenChange.emit(this.open);\n }\n\n updateActiveItem(item: RdxSelectItemDirective) {\n this.content().keyManager.updateActiveItem(item);\n }\n\n private selectDefaultValue(): void {\n if (!this.defaultValue) return;\n\n this.selectValue(this.defaultValue);\n }\n\n private selectValue(value: string): void {\n const option = this.content()?.options.find((option) => option.value === value);\n\n if (option) {\n option.selected = true;\n option.highlighted = true;\n\n this.selectionModel.select(option);\n this.updateActiveItem(option);\n }\n }\n\n private closingActions() {\n return merge(this.overlayDir().overlayRef!.outsidePointerEvents(), this.overlayDir().overlayRef!.detachments());\n }\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RdxSelectContentDirective } from './select-content.directive';\nimport { RdxSelectComponent } from './select.component';\n\nlet nextId = 0;\n\nexport class RdxSelectItemChange<T = RdxSelectItemDirective> {\n constructor(public source: T) {}\n}\n\n@Directive({\n selector: '[rdxSelectItem]',\n standalone: true,\n exportAs: 'rdxSelectItem',\n host: {\n '[attr.role]': '\"option\"',\n '[attr.data-state]': 'dataState',\n '[attr.aria-selected]': 'selected',\n '[attr.data-disabled]': 'disabled || null',\n '[attr.data-highlighted]': 'highlighted || null',\n '[attr.tabindex]': '-1',\n '(focus)': 'content.highlighted.next(this)',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n '(pointermove)': 'onPointerMove()'\n }\n})\nexport class RdxSelectItemDirective implements Highlightable {\n protected readonly select = inject(RdxSelectComponent);\n protected readonly content = inject(RdxSelectContentDirective);\n readonly onSelectionChange = new EventEmitter<RdxSelectItemChange>();\n protected readonly nativeElement = inject(ElementRef).nativeElement;\n\n highlighted: boolean = false;\n\n selected: boolean;\n\n get dataState(): string {\n return this.selected ? 'checked' : 'unchecked';\n }\n\n /**\n * The unique SelectItem id.\n * @ignore\n */\n readonly id: string = `rdx-select-item-${nextId++}`;\n\n @Input()\n set value(value: string) {\n this._value = value;\n }\n\n get value(): string {\n return this._value || this.id;\n }\n\n private _value?: string;\n\n @Input() textValue: string | null = null;\n\n /** Whether the SelectItem is disabled. */\n @Input({ transform: booleanAttribute })\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private _disabled: boolean;\n\n get viewValue(): string {\n return this.textValue ?? this.nativeElement.textContent;\n }\n\n constructor() {\n this.content.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {\n if (value !== this) {\n this.highlighted = false;\n }\n });\n }\n\n /** Gets the label to be used when determining whether the option should be focused.\n * @ignore\n */\n getLabel(): string {\n return this.viewValue;\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n * @ignore\n */\n selectViaInteraction(): void {\n if (!this.disabled) {\n this.selected = true;\n\n this.onSelectionChange.emit(new RdxSelectItemChange(this));\n }\n }\n\n /** @ignore */\n handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this.selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /** @ignore */\n setActiveStyles(): void {\n this.highlighted = true;\n this.nativeElement.focus({ preventScroll: true });\n }\n\n /** @ignore */\n setInactiveStyles(): void {\n this.highlighted = false;\n }\n\n protected onPointerMove(): void {\n if (!this.highlighted) {\n this.nativeElement.focus({ preventScroll: true });\n this.select.updateActiveItem(this);\n }\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { AfterContentInit, ContentChildren, DestroyRef, Directive, inject, QueryList } from '@angular/core';\nimport { pairwise, startWith, Subject } from 'rxjs';\nimport { RdxSelectItemDirective } from './select-item.directive';\nimport { RdxSelectComponent } from './select.component';\n\n@Directive({\n selector: '[rdxSelectContent]',\n standalone: true,\n exportAs: 'rdxSelectContent',\n host: {\n '[attr.role]': '\"listbox\"',\n '[attr.data-state]': \"select.open ? 'open': 'closed'\",\n '[attr.data-side]': 'true',\n '[attr.data-align]': 'true',\n '(keydown)': 'keyManager.onKeydown($event)'\n }\n})\nexport class RdxSelectContentDirective implements AfterContentInit {\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly dir = inject(Directionality, { optional: true });\n protected select = inject(RdxSelectComponent);\n\n readonly highlighted = new Subject<RdxSelectItemDirective>();\n\n keyManager: ActiveDescendantKeyManager<RdxSelectItemDirective>;\n\n @ContentChildren(RdxSelectItemDirective, { descendants: true })\n options: QueryList<RdxSelectItemDirective>;\n\n constructor() {\n this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {\n if (prev) {\n prev.highlighted = false;\n }\n\n if (item) {\n item.highlighted = true;\n }\n });\n }\n\n initKeyManager() {\n return new ActiveDescendantKeyManager<RdxSelectItemDirective>(this.options)\n .withTypeAhead()\n .withVerticalOrientation()\n .withHorizontalOrientation(this.dir?.value ?? 'ltr');\n }\n\n ngAfterContentInit(): void {\n this.keyManager = this.initKeyManager();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectGroup]',\n standalone: true,\n exportAs: 'rdxSelectGroup',\n host: {\n '[attr.role]': '\"group\"'\n }\n})\nexport class RdxSelectGroupDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectIcon]',\n standalone: true,\n exportAs: 'rdxSelectIcon',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxSelectIconDirective {}\n","import { Directive, inject } from '@angular/core';\nimport { RdxSelectItemDirective } from './select-item.directive';\n\n@Directive({\n selector: '[rdxSelectItemIndicator]',\n standalone: true,\n exportAs: 'rdxSelectItemIndicator',\n host: {\n '[attr.aria-hidden]': 'true',\n '[style.display]': 'item.selected ? \"\" : \"none\"'\n }\n})\nexport class RdxSelectItemIndicatorDirective {\n protected item = inject(RdxSelectItemDirective);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectLabel]',\n standalone: true,\n exportAs: 'rdxSelectLabel'\n})\nexport class RdxSelectLabelDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectSeparator]',\n standalone: true,\n exportAs: 'rdxSelectSeparator',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxSelectSeparatorDirective {}\n","import { NgModule } from '@angular/core';\nimport { RdxSelectContentDirective } from './src/select-content.directive';\nimport { RdxSelectGroupDirective } from './src/select-group.directive';\nimport { RdxSelectIconDirective } from './src/select-icon.directive';\nimport { RdxSelectItemIndicatorDirective } from './src/select-item-indicator.directive';\nimport { RdxSelectItemDirective } from './src/select-item.directive';\nimport { RdxSelectLabelDirective } from './src/select-label.directive';\nimport { RdxSelectSeparatorDirective } from './src/select-separator.directive';\nimport { RdxSelectTriggerDirective } from './src/select-trigger.directive';\nimport { RdxSelectValueDirective } from './src/select-value.directive';\nimport { RdxSelectComponent } from './src/select.component';\n\nexport * from './src/select-content.directive';\nexport * from './src/select-group.directive';\nexport * from './src/select-icon.directive';\nexport * from './src/select-item-indicator.directive';\nexport * from './src/select-item.directive';\nexport * from './src/select-label.directive';\nexport * from './src/select-separator.directive';\nexport * from './src/select-trigger.directive';\nexport * from './src/select-value.directive';\nexport * from './src/select.component';\n\nconst _imports = [\n RdxSelectContentDirective,\n RdxSelectGroupDirective,\n RdxSelectItemDirective,\n RdxSelectItemIndicatorDirective,\n RdxSelectLabelDirective,\n RdxSelectComponent,\n RdxSelectSeparatorDirective,\n RdxSelectTriggerDirective,\n RdxSelectValueDirective,\n RdxSelectIconDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-select.mjs","sources":["../../../packages/primitives/select/src/utils.ts","../../../packages/primitives/select/src/select-root.ts","../../../packages/primitives/select/src/select-content.ts","../../../packages/primitives/select/src/select-group.ts","../../../packages/primitives/select/src/select-item.ts","../../../packages/primitives/select/src/select-item-indicator.ts","../../../packages/primitives/select/src/select-item-text.ts","../../../packages/primitives/select/src/select-label.ts","../../../packages/primitives/select/src/select-popper-position-content.ts","../../../packages/primitives/select/src/select-popper-position-wrapper.ts","../../../packages/primitives/select/src/select-portal.ts","../../../packages/primitives/select/src/select-portal-presence.ts","../../../packages/primitives/select/src/select-trigger.ts","../../../packages/primitives/select/src/select-value.ts","../../../packages/primitives/select/src/select-viewport.ts","../../../packages/primitives/select/index.ts","../../../packages/primitives/select/radix-ng-primitives-select.ts"],"sourcesContent":["import { AcceptableValue, getActiveElement, isEqual } from '@radix-ng/primitives/core';\n\nexport const OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\nexport const SELECTION_KEYS = [' ', 'Enter'];\nexport const CONTENT_MARGIN = 10;\n\nexport function valueComparator<T>(\n value: T | T[] | undefined,\n currentValue: T,\n comparator?: string | ((a: T, b: T) => boolean)\n) {\n if (value === undefined) return false;\n else if (Array.isArray(value)) return value.some((val) => compare(val, currentValue, comparator));\n else return compare(value, currentValue, comparator);\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined) return false;\n\n if (typeof value === 'string') return value === currentValue;\n\n if (typeof comparator === 'function') return comparator(value, currentValue);\n\n if (typeof comparator === 'string') return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T];\n\n return isEqual(value, currentValue);\n}\n\nexport function shouldShowPlaceholder(value?: AcceptableValue | AcceptableValue[]): boolean {\n return value === undefined || value === null || value === '' || (Array.isArray(value) && value.length === 0);\n}\n\nexport function focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = getActiveElement();\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (getActiveElement() !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n","import { booleanAttribute, computed, Directive, inject, input, model, signal } from '@angular/core';\nimport { AcceptableValue, createContext, Direction, isNullish } from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { compare, valueComparator } from './utils';\n\nexport interface SelectOption {\n value: any;\n disabled?: boolean;\n textContent: string;\n}\n\nconst context = () => {\n const context = inject(RdxSelectRoot);\n\n return {\n triggerElement: context.triggerElement,\n valueElement: context.valueElement,\n triggerPointerDownPosRef: context.triggerPointerDownPosRef,\n contentId: '',\n dir: context.dir,\n value: context.value,\n multiple: context.multiple,\n by: context.by,\n open: context.open,\n disabled: context.disabled,\n optionsSet: context.optionsSet,\n onOptionAdd: (option: any) => {\n const existingOption = context.getOption(option());\n if (existingOption) {\n context.optionsSet().delete(existingOption);\n }\n\n context.optionsSet().add(option());\n },\n onOptionRemove: (option: any) => {\n const existingOption = context.getOption(option());\n if (existingOption) {\n context.optionsSet().delete(existingOption);\n }\n },\n onValueChange: context.handleValueChange,\n onTriggerChange: (node: any) => {\n context.triggerElement.set(node.nativeElement);\n },\n onValueElementChange: (node: any) => {\n context.valueElement.set(node);\n },\n onOpenChange: (value: any) => {\n context.open.set(value);\n }\n };\n};\n\nexport type RdxSelectRootContext = ReturnType<typeof context>;\n\nexport const [injectSelectRootContext, provideSelectRootContext] =\n createContext<RdxSelectRootContext>('RdxSelectRootContext');\n\n@Directive({\n selector: '[rdxSelectRoot]',\n exportAs: 'rdxSelectRoot',\n providers: [provideSelectRootContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxSelectRoot {\n readonly open = model<boolean>(false);\n\n readonly value = model<AcceptableValue | AcceptableValue[]>();\n\n readonly multiple = input(false, { transform: booleanAttribute });\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly dir = input<Direction>('ltr');\n\n /** Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared. */\n readonly by = input<string | ((a: AcceptableValue, b: AcceptableValue) => boolean)>();\n\n readonly isEmptyModelValue = computed(() => {\n if (this.multiple() && Array.isArray(this.value())) {\n return Array(this.value())?.length === 0;\n } else {\n return isNullish(this.value());\n }\n });\n\n readonly optionsSet = signal<Set<SelectOption>>(new Set());\n\n // The native `select` only associates the correct default value if the corresponding\n // `option` is rendered as a child **at the same time** as itself.\n // Because it might take a few renders for our items to gather the information to build\n // the native `option`(s), we generate a key on the `select` to make sure Vue re-builds it\n // each time the options change.\n readonly nativeSelectKey = computed(() => {\n return Array.from(this.optionsSet())\n .map((option) => option.value)\n .join(';');\n });\n\n readonly triggerElement = signal<HTMLElement | null>(null);\n readonly valueElement = signal<HTMLElement | null>(null);\n readonly triggerPointerDownPosRef = signal<{ x: number; y: number } | null>({\n x: 0,\n y: 0\n });\n\n getOption(value: SelectOption['value']) {\n return Array.from(this.optionsSet()).find((option) => valueComparator(value, option.value, this.by()));\n }\n\n handleValueChange(value: AcceptableValue) {\n if (this.multiple()) {\n const array = Array.isArray(this.value()) ? [...Array(this.value())] : [];\n const index = array.findIndex((i) => compare(i, value, this.by()));\n index === -1 ? array.push(value) : array.splice(index, 1);\n this.value.set([...array]);\n } else {\n this.value.set(value);\n }\n }\n}\n","import {\n afterNextRender,\n ContentChild,\n Directive,\n effect,\n ElementRef,\n inject,\n InjectionToken,\n OutputRef,\n signal\n} from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { RdxCollectionProvider } from '@radix-ng/primitives/collection';\nimport { createContext } from '@radix-ng/primitives/core';\nimport { provideRdxDismissableLayerConfig, RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport { RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { injectSelectRootContext } from './select-root';\nimport { focusFirst, valueComparator } from './utils';\n\nconst context = () => {\n const context = inject(RdxSelectContent);\n\n return {\n content: context.content,\n viewport: context.viewport,\n isPositioned: context.isPositioned,\n selectedItem: context.selectedItem,\n selectedItemText: context.selectedItemText,\n onViewportChange: (node: any) => {\n context.viewport.set(node);\n },\n onItemLeave: () => {\n context.content()?.focus();\n },\n itemRefCallback: (node: any, value: any, disabled: boolean) => {\n const isFirstValidItem = !context.firstValidItemFoundRef() && !disabled;\n const isSelectedItem = valueComparator(context.rootContext.value(), value, context.rootContext.by());\n\n if (isSelectedItem || isFirstValidItem) {\n context.selectedItem.set(node);\n }\n\n if (isFirstValidItem) {\n context.firstValidItemFoundRef.set(true);\n }\n },\n itemTextRefCallback: (node: any, value: any, disabled: any) => {\n const isFirstValidItem = !context.firstValidItemFoundRef() && !disabled;\n const isSelectedItem = valueComparator(context.rootContext.value(), value, context.rootContext.by());\n\n if (isSelectedItem || isFirstValidItem) {\n context.selectedItemText.set(node);\n }\n }\n };\n};\n\nexport type RdxSelectContentContext = ReturnType<typeof context>;\n\nexport const [injectSelectContentContext, provideSelectContentContext] =\n createContext<RdxSelectContentContext>('RdxSelectContent');\n\nexport interface RdxPositionerImpl {\n placed: OutputRef<any>;\n}\n\nexport const RDX_SELECT_POSITIONER_TOKEN = new InjectionToken<RdxPositionerImpl>('RDX_SELECT_POSITIONER_TOKEN');\n\n@Directive({\n selector: '[rdxSelectContent]',\n hostDirectives: [RdxFocusScope, RdxDismissableLayer, RdxCollectionProvider],\n providers: [\n provideSelectContentContext(context),\n provideRdxDismissableLayerConfig(() => {\n return {\n disableOutsidePointerEvents: signal(true)\n };\n })\n ],\n host: {\n role: 'listbox',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[dir]': 'rootContext.dir()',\n\n '(keydown)': 'handleKeyDown($event)',\n\n '[style]': `{\n display: 'flex',\n flexDirection: 'column',\n outline: 'none'\n }`\n }\n})\nexport class RdxSelectContent {\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly currentElement = inject(ElementRef);\n private readonly collection = inject(RdxCollectionProvider);\n\n readonly rootContext = injectSelectRootContext()!;\n\n readonly selectedItem = signal<HTMLElement | undefined>(undefined);\n\n readonly selectedItemText = signal<HTMLElement | undefined>(undefined);\n\n readonly firstValidItemFoundRef = signal(false);\n\n readonly viewport = signal<HTMLElement | undefined>(undefined);\n\n readonly isPositioned = signal(false);\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n readonly content = signal<HTMLElement | null>(null);\n\n @ContentChild(RDX_SELECT_POSITIONER_TOKEN, { descendants: true })\n set positioner(port: RdxPositionerImpl | undefined) {\n if (port) {\n port.placed.subscribe(() => {\n this.focusSelectedItem();\n this.isPositioned.set(true);\n });\n }\n }\n\n constructor() {\n this.dismissableLayer.focusOutside.subscribe((e) => e.preventDefault());\n\n this.dismissableLayer.dismiss.subscribe(() => this.rootContext.onOpenChange(false));\n\n const focusScope = inject(RdxFocusScope);\n\n afterNextRender(() => {\n focusScope.unmountAutoFocus.subscribe((event) => {\n if (event.defaultPrevented) return;\n\n this.rootContext.triggerElement()?.focus({ preventScroll: true });\n\n event.preventDefault();\n });\n\n focusScope.mountAutoFocus.subscribe((event) => {\n event.preventDefault();\n });\n\n this.content.set(this.currentElement.nativeElement.firstElementChild);\n });\n\n effect((onCleanup) => {\n if (!this.content()) return;\n\n let pointerMoveDelta = { x: 0, y: 0 };\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (this.rootContext.triggerPointerDownPosRef()?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (this.rootContext.triggerPointerDownPosRef()?.y ?? 0))\n };\n };\n\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n if (event.pointerType === 'touch') return;\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n // otherwise, if the event was outside the content, close.\n if (!this.content()?.contains(event.target as HTMLElement)) this.rootContext.onOpenChange(false);\n }\n document.removeEventListener('pointermove', handlePointerMove);\n this.rootContext.triggerPointerDownPosRef.set(null);\n };\n\n if (this.rootContext.triggerPointerDownPosRef() !== null) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true\n });\n }\n\n onCleanup(() => {\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true\n });\n });\n });\n }\n\n focusSelectedItem() {\n if (this.selectedItem() && this.content()) {\n focusFirst([this.selectedItem()!, this.content()!]);\n }\n }\n\n handleKeyDown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n // select should not be navigated using tab key so we prevent it\n if (keyEvent.key === 'Tab') event.preventDefault();\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(keyEvent.key)) {\n const collectionItems = this.collection.items().map((i) => i.element);\n let candidateNodes = [...collectionItems];\n\n if (['ArrowUp', 'End'].includes(keyEvent.key)) candidateNodes = candidateNodes.slice().reverse();\n\n if (['ArrowUp', 'ArrowDown'].includes(keyEvent.key)) {\n const currentElement = event.target as HTMLElement;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectId } from '@radix-ng/primitives/core';\n\n@Directive({\n selector: '[rdxSelectGroup]',\n exportAs: 'rdxSelectGroup',\n host: {\n role: 'group',\n '[attr.aria-labelledby]': 'id'\n }\n})\nexport class RdxSelectGroup {\n readonly id = injectId('rdx-select-group-');\n}\n","import {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n linkedSignal,\n signal\n} from '@angular/core';\nimport { RdxCollectionItem } from '@radix-ng/primitives/collection';\nimport { createContext, getActiveElement, handleAndDispatchCustomEvent, injectId } from '@radix-ng/primitives/core';\nimport { injectSelectContentContext } from './select-content';\nimport { injectSelectRootContext } from './select-root';\nimport { SELECTION_KEYS, valueComparator } from './utils';\n\nconst context = () => {\n const context = inject(RdxSelectItem);\n return {\n value: context.value,\n disabled: context.disabled,\n isSelected: context.isSelected,\n textId: context.textId,\n\n onItemTextChange: (node: any) => {\n context.textValue$.set(((context.textValue$() || node.textContent) ?? '').trim());\n }\n };\n};\n\nexport type RdxSelectItemContext = ReturnType<typeof context>;\n\nexport const [injectSelectItemContext, provideSelectItemContext] =\n createContext<RdxSelectItemContext>('RdxSelectItemContext');\n\nexport type SelectEvent = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent; value?: any }>;\n\n@Directive({\n selector: '[rdxSelectItem]',\n providers: [provideSelectItemContext(context)],\n hostDirectives: [\n {\n directive: RdxCollectionItem,\n inputs: ['value']\n }\n ],\n host: {\n role: 'option',\n '[attr.tabindex]': 'disabled() ? undefined : -1',\n '[attr.aria-selected]': 'isSelected() ? \"checked\" : \"unchecked\"',\n '[attr.data-state]': 'isSelected() ? \"checked\" : \"unchecked\"',\n '[attr.data-highlighted]': 'isFocused() ? \"\" : undefined',\n '(focus)': 'isFocused.set(true)',\n '(blur)': 'isFocused.set(false)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerUp($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(keydown)': 'handleKeyDown($event)'\n }\n})\nexport class RdxSelectItem {\n private readonly rootContext = injectSelectRootContext()!;\n private readonly contentContext = injectSelectContentContext()!;\n\n private readonly currentElement = inject(ElementRef);\n\n readonly value = input<any>();\n\n readonly textValue = input<string>('');\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly textValue$ = linkedSignal(this.textValue);\n\n readonly isSelected = computed(() =>\n valueComparator(this.rootContext.value(), this.value(), this.rootContext.by())\n );\n\n readonly isFocused = signal(false);\n\n readonly textId = injectId('rdx-select-item-text-');\n\n private readonly afterNextRender = afterNextRender(() => {\n this.contentContext.itemRefCallback(this.currentElement.nativeElement, this.value(), this.disabled());\n });\n\n private SELECT_SELECT = 'select.select';\n\n onPointerDown(event: Event) {\n (event.currentTarget as HTMLElement).focus({ preventScroll: true });\n }\n\n onPointerUp(event: PointerEvent | KeyboardEvent) {\n if (event.defaultPrevented) return;\n\n const eventDetail = { originalEvent: event, value: this.value() };\n\n handleAndDispatchCustomEvent(\n this.SELECT_SELECT,\n async (event: SelectEvent) => {\n if (event.defaultPrevented) return;\n\n this.rootContext.onValueChange(this.value());\n if (!this.rootContext.multiple()) {\n this.rootContext.onOpenChange(false);\n }\n },\n eventDetail\n );\n }\n\n onPointerLeave(event: Event) {\n if (event.defaultPrevented) return;\n\n if (event.currentTarget === getActiveElement()) this.contentContext.onItemLeave?.();\n }\n\n onPointerMove(event: Event) {\n if (event.defaultPrevented) return;\n if (this.disabled()) {\n this.contentContext.onItemLeave?.();\n } else {\n // even though safari doesn't support this option, it's acceptable\n // as it only means it might scroll a few pixels when using the pointer.\n (event.currentTarget as HTMLElement | null)?.focus({ preventScroll: true });\n }\n }\n\n handleKeyDown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (event.defaultPrevented) return;\n\n if (SELECTION_KEYS.includes(keyEvent.key)) this.handleSelectCustomEvent(keyEvent);\n\n // prevent page scroll if using the space key to select an item\n if (keyEvent.key === ' ') event.preventDefault();\n }\n\n async handleSelectCustomEvent(event: PointerEvent | KeyboardEvent) {\n if (event.defaultPrevented) return;\n\n const eventDetail = { originalEvent: event, value: this.value() };\n handleAndDispatchCustomEvent(\n this.SELECT_SELECT,\n async (event: SelectEvent) => {\n if (event.defaultPrevented) return;\n\n if (!this.disabled()) {\n this.rootContext.onValueChange(this.value());\n if (!this.rootContext.multiple()) this.rootContext.onOpenChange(false);\n }\n },\n eventDetail\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectSelectItemContext } from './select-item';\n\n@Directive({\n selector: '[rdxSelectItemIndicator]',\n host: {\n '[attr.aria-hidden]': 'true',\n '[hidden]': '!itemContext.isSelected()'\n }\n})\nexport class RdxSelectItemIndicator {\n readonly itemContext = injectSelectItemContext()!;\n}\n","import { afterNextRender, computed, DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { injectSelectContentContext } from './select-content';\nimport { injectSelectItemContext } from './select-item';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: '[rdxSelectItemText]',\n host: {\n '[id]': 'itemContext.textId'\n }\n})\nexport class RdxSelectItemText {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly rootContext = injectSelectRootContext()!;\n readonly contentContext = injectSelectContentContext()!;\n readonly itemContext = injectSelectItemContext()!;\n\n readonly optionProps = computed(() => {\n return {\n value: this.itemContext.value(),\n disabled: this.itemContext.disabled(),\n textContent: this.elementRef.nativeElement.textContent ?? this.itemContext.value()?.toString() ?? ''\n };\n });\n\n constructor() {\n afterNextRender(() => {\n this.itemContext.onItemTextChange(this.elementRef.nativeElement);\n this.contentContext.itemTextRefCallback(\n this.elementRef.nativeElement,\n this.itemContext.value(),\n this.itemContext.disabled()\n );\n\n this.rootContext.onOptionAdd(this.optionProps);\n });\n\n const destroyRef = inject(DestroyRef);\n\n destroyRef.onDestroy(() => {\n this.rootContext.onOptionRemove(this.optionProps);\n });\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxSelectLabel]',\n host: {}\n})\nexport class RdxSelectLabel {}\n","import { Directive } from '@angular/core';\nimport { RdxPopperContent } from '@radix-ng/primitives/popper';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: '[rdxSelectPopperPositionContent]',\n hostDirectives: [RdxPopperContent],\n host: {\n role: 'listbox',\n '[id]': 'rootContext.contentId'\n }\n})\nexport class RdxSelectPopperPositionContent {\n protected rootContext = injectSelectRootContext()!;\n}\n","import { booleanAttribute, Directive, ElementRef, forwardRef, inject, input, numberAttribute } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { Align, RdxPopperContentWrapper, Side } from '@radix-ng/primitives/popper';\nimport { RDX_SELECT_POSITIONER_TOKEN, RdxPositionerImpl } from './select-content';\n\n@Directive({\n selector: '[rdxSelectPopperPositionWrapper]',\n providers: [\n {\n provide: RDX_SELECT_POSITIONER_TOKEN,\n useExisting: forwardRef(() => RdxSelectPopperPositionWrapper)\n }\n ],\n hostDirectives: [\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n // re-namespace exposed content custom properties\n '[style]': `{\n 'boxSizing': 'border-box',\n '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n }`\n }\n})\nexport class RdxSelectPopperPositionWrapper implements RdxPositionerImpl {\n /**\n * The preferred side of the anchor to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<Side>('bottom');\n\n /**\n * The distance in pixels from the anchor.\n */\n readonly sideOffset = input(0, { transform: numberAttribute });\n\n /**\n * The preferred alignment against the anchor. May change when collisions occur.\n */\n readonly align = input<Align>('start');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input(0, { transform: numberAttribute });\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from overflowing the corners.\n */\n readonly arrowPadding = input(0, { transform: numberAttribute });\n\n /**\n * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.\n */\n readonly avoidCollisions = input(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n * By default this is the viewport, though you can provide additional element(s) to be included in this check.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(0);\n\n /**\n * The sticky behavior on the `align` axis.\n * - `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary\n * - `always` will keep the content in the boundary regardless.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to update the position of the floating element on every animation frame if required.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = outputFromObservable(outputToObservable(inject(RdxPopperContentWrapper).placed));\n}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n@Directive({\n selector: '[rdxSelectPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxSelectPortal {\n /**\n * Optional container to portal the content into. Defaults to `document.body` when not set.\n */\n readonly container = input<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectSelectRootContext } from './select-root';\n\n@Directive({\n selector: 'ng-template[rdxSelectPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectSelectRootContext()!;\n\n return { present: context.open };\n })\n ]\n})\nexport class RdxSelectPortalPresence {}\n","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectSelectRootContext } from './select-root';\nimport { OPEN_KEYS } from './utils';\n\n@Directive({\n selector: 'button[rdxSelectTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n role: 'combobox',\n type: 'button',\n '[attr.disabled]': 'isDisabled() ? \"\" : undefined',\n '[dir]': 'rootContext.dir()',\n '[attr.data-state]': 'rootContext.open() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '(click)': 'onClickHandler($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerUp($event)',\n '(keydown)': 'onKeydown($event)'\n }\n})\nexport class RdxSelectTrigger {\n readonly rootContext = injectSelectRootContext()!;\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly isDisabled = computed(() => this.rootContext.disabled() || this.disabled());\n\n constructor() {\n afterNextRender(() => {\n this.rootContext.onTriggerChange(this.elementRef);\n });\n }\n\n handleOpen() {\n if (!this.isDisabled()) {\n this.rootContext.onOpenChange(true);\n }\n }\n\n handlePointerOpen(event: Event) {\n const pointerEvent = event as PointerEvent;\n this.handleOpen();\n this.rootContext.triggerPointerDownPosRef.set({\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n });\n }\n\n onClickHandler(event: Event) {\n // Whilst browsers generally have no issue focusing the trigger when clicking\n // on a label, Safari seems to struggle with the fact that there's no `onClick`.\n // We force `focus` in this case. Note: this doesn't create any other side-effect\n // because we are preventing default in `onPointerDown` so effectively\n // this only runs for a label 'click'\n (event?.currentTarget as HTMLElement)?.focus();\n }\n\n onPointerDown(event: Event) {\n const pointerEvent = event as PointerEvent;\n if (pointerEvent.pointerType === 'touch') return event.preventDefault();\n\n // prevent implicit pointer capture\n // https://www.w3.org/TR/pointerevents3/#implicit-pointer-capture\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(pointerEvent.pointerId)) {\n target.releasePointerCapture(pointerEvent.pointerId);\n }\n\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (pointerEvent.button === 0 && pointerEvent.ctrlKey === false) {\n this.handlePointerOpen(event);\n // prevent trigger from stealing focus from the active item after opening.\n event.preventDefault();\n }\n }\n\n onPointerUp(event: Event) {\n const pointerEvent = event as PointerEvent;\n event.preventDefault();\n // Only open on pointer up when using touch devices\n if (pointerEvent.pointerType === 'touch') this.handlePointerOpen(event);\n }\n\n onKeydown(event: Event) {\n const keyEvent = event as KeyboardEvent;\n if (OPEN_KEYS.includes(keyEvent.key)) {\n this.handleOpen();\n event.preventDefault();\n }\n }\n}\n","import { afterNextRender, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { AcceptableValue } from '@radix-ng/primitives/core';\nimport { injectSelectRootContext } from './select-root';\nimport { valueComparator } from './utils';\n\n@Directive({\n selector: 'span[rdxSelectValue]',\n exportAs: 'rdxSelectedValue',\n host: {\n '[style.pointer-events]': '\"none\"'\n }\n})\nexport class RdxSelectValue {\n readonly rootContext = injectSelectRootContext()!;\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly placeholder = input<string>();\n\n readonly slotText = computed(() => {\n return this.selectedLabel().length ? this.selectedLabel().join(', ') : this.placeholder();\n });\n\n readonly selectedLabel = computed(() => {\n // eslint-disable-next-line no-useless-assignment\n let list: string[] = [];\n const options = Array.from(this.rootContext.optionsSet());\n\n const getOption = (value?: AcceptableValue) =>\n options.find((option) => valueComparator(value, option.value, this.rootContext.by()));\n if (Array.isArray(this.rootContext.value())) {\n list = Array(this.rootContext.value()).map((value) => getOption(value)?.textContent ?? '');\n } else {\n list = [getOption(this.rootContext.value())?.textContent ?? ''];\n }\n return list.filter(Boolean);\n });\n\n constructor() {\n afterNextRender(() => {\n this.rootContext.valueElement.set(this.elementRef.nativeElement);\n });\n }\n}\n","import { afterNextRender, Directive, ElementRef, inject, signal } from '@angular/core';\nimport { injectSelectContentContext } from './select-content';\n\n@Directive({\n selector: '[rdxSelectViewport]',\n host: {\n role: 'presentation',\n '[attr.data-rdx-select-viewport]': '\"\"',\n '[style]': `{\n position: 'relative',\n flex: 1,\n overflow: 'hidden auto',\n scrollbarWidth: 'none'\n }`,\n '(scroll)': 'handleScroll($event)'\n }\n})\nexport class RdxSelectViewport {\n private readonly contentContext = injectSelectContentContext()!;\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private readonly prevScrollTopRef = signal(0);\n\n constructor() {\n afterNextRender(() => {\n this.contentContext?.onViewportChange(this.elementRef.nativeElement);\n });\n }\n\n handleScroll(event: Event) {\n const viewport = event.currentTarget as HTMLElement;\n\n this.prevScrollTopRef.set(viewport.scrollTop);\n }\n}\n","import { RdxSelectContent } from './src/select-content';\nimport { RdxSelectGroup } from './src/select-group';\nimport { RdxSelectItem } from './src/select-item';\nimport { RdxSelectItemIndicator } from './src/select-item-indicator';\nimport { RdxSelectItemText } from './src/select-item-text';\nimport { RdxSelectLabel } from './src/select-label';\nimport { RdxSelectPopperPositionContent } from './src/select-popper-position-content';\nimport { RdxSelectPopperPositionWrapper } from './src/select-popper-position-wrapper';\nimport { RdxSelectPortal } from './src/select-portal';\nimport { RdxSelectPortalPresence } from './src/select-portal-presence';\nimport { RdxSelectRoot } from './src/select-root';\nimport { RdxSelectTrigger } from './src/select-trigger';\nimport { RdxSelectValue } from './src/select-value';\nimport { RdxSelectViewport } from './src/select-viewport';\n\nexport * from './src/select-content';\nexport * from './src/select-group';\nexport * from './src/select-item';\nexport * from './src/select-item-indicator';\nexport * from './src/select-item-text';\nexport * from './src/select-label';\nexport * from './src/select-popper-position-content';\nexport * from './src/select-popper-position-wrapper';\nexport * from './src/select-portal';\nexport * from './src/select-portal-presence';\nexport * from './src/select-root';\nexport * from './src/select-trigger';\nexport * from './src/select-value';\nexport * from './src/select-viewport';\nexport * from './src/utils';\n\nexport const _importsSelect = [\n RdxSelectRoot,\n RdxSelectPortal,\n RdxSelectTrigger,\n RdxSelectValue,\n RdxSelectContent,\n RdxSelectViewport,\n RdxSelectItemIndicator,\n RdxSelectItem,\n RdxSelectItemText,\n RdxSelectLabel,\n RdxSelectGroup,\n RdxSelectPopperPositionContent,\n RdxSelectPopperPositionWrapper,\n RdxSelectPortalPresence\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["context","i1"],"mappings":"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"}
@@ -1,13 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, linkedSignal, computed, Directive } from '@angular/core';
2
+ import { input, linkedSignal, computed, Directive } from '@angular/core';
3
3
 
4
4
  const DEFAULT_ORIENTATION = 'horizontal';
5
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
- const ORIENTATIONS = ['horizontal', 'vertical'];
7
5
  /**
8
6
  * Directive that adds accessible and configurable separator element to the DOM.
9
- * This can be either horizontal or vertical and optionally decorative (which removes
10
- * it from the accessibility tree).
7
+ * This can be either horizontal or vertical.
11
8
  *
12
9
  * @group Components
13
10
  */
@@ -20,53 +17,33 @@ class RdxSeparatorRootDirective {
20
17
  * @group Props
21
18
  */
22
19
  this.orientation = input(DEFAULT_ORIENTATION, ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
23
- /**
24
- * If true, the separator will be considered decorative and removed from
25
- * the accessibility tree. Defaults to false.
26
- *
27
- * @defaultValue false
28
- * @group Props
29
- */
30
- this.decorative = input(false, { ...(ngDevMode ? { debugName: "decorative" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
31
- /**
32
- * Computes the `role` attribute for the separator. If `decorative` is true,
33
- * the role is set to "none", otherwise it is "separator".
34
- *
35
- * @ignore
36
- */
37
- this.decorativeEffect = linkedSignal({ ...(ngDevMode ? { debugName: "decorativeEffect" } : /* istanbul ignore next */ {}), source: this.decorative,
38
- computation: (value) => value });
39
- this.orientationEffect = linkedSignal({ ...(ngDevMode ? { debugName: "orientationEffect" } : /* istanbul ignore next */ {}), source: this.orientation,
20
+ this.orientationState = linkedSignal({ ...(ngDevMode ? { debugName: "orientationState" } : /* istanbul ignore next */ {}), source: this.orientation,
40
21
  computation: (value) => value });
41
22
  /**
42
- * Computes the `aria-orientation` attribute. It is set to "vertical" only if
43
- * the separator is not decorative and the orientation is set to "vertical".
44
- * For horizontal orientation, the attribute is omitted.
23
+ * Computes the `aria-orientation` attribute. It is set to "vertical" only when
24
+ * the separator orientation is vertical. Horizontal is the implicit ARIA default.
45
25
  *
46
26
  * @ignore
47
27
  */
48
- this.computedAriaOrientation = computed(() => !this.decorativeEffect() && this.orientationEffect() === 'vertical' ? 'vertical' : undefined, ...(ngDevMode ? [{ debugName: "computedAriaOrientation" }] : /* istanbul ignore next */ []));
28
+ this.computedAriaOrientation = computed(() => this.orientationState() === 'vertical' ? 'vertical' : undefined, ...(ngDevMode ? [{ debugName: "computedAriaOrientation" }] : /* istanbul ignore next */ []));
49
29
  }
50
30
  updateOrientation(value) {
51
- this.orientationEffect.set(value);
52
- }
53
- updateDecorative(value) {
54
- this.decorativeEffect.set(value);
31
+ this.orientationState.set(value);
55
32
  }
56
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxSeparatorRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
57
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[rdxSeparatorRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "decorativeEffect() ? \"none\" : \"separator\"", "attr.aria-orientation": "computedAriaOrientation()", "attr.data-orientation": "orientationEffect()" } }, ngImport: i0 }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxSeparatorRootDirective, isStandalone: true, selector: "[rdxSeparatorRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "computedAriaOrientation()", "attr.data-orientation": "orientationState()" } }, ngImport: i0 }); }
58
35
  }
59
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxSeparatorRootDirective, decorators: [{
60
37
  type: Directive,
61
38
  args: [{
62
- selector: 'div[rdxSeparatorRoot]',
39
+ selector: '[rdxSeparatorRoot]',
63
40
  host: {
64
- '[attr.role]': 'decorativeEffect() ? "none" : "separator"',
41
+ role: 'separator',
65
42
  '[attr.aria-orientation]': 'computedAriaOrientation()',
66
- '[attr.data-orientation]': 'orientationEffect()'
43
+ '[attr.data-orientation]': 'orientationState()'
67
44
  }
68
45
  }]
69
- }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], decorative: [{ type: i0.Input, args: [{ isSignal: true, alias: "decorative", required: false }] }] } });
46
+ }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }] } });
70
47
 
71
48
  /**
72
49
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-separator.mjs","sources":["../../../packages/primitives/separator/src/separator.directive.ts","../../../packages/primitives/separator/radix-ng-primitives-separator.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input, linkedSignal } from '@angular/core';\n\nconst DEFAULT_ORIENTATION = 'horizontal';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\nexport type Orientation = (typeof ORIENTATIONS)[number];\n\nexport interface SeparatorProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether the component is purely decorative. When true, accessibility-related attributes\n * are updated so that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\n/**\n * Directive that adds accessible and configurable separator element to the DOM.\n * This can be either horizontal or vertical and optionally decorative (which removes\n * it from the accessibility tree).\n *\n * @group Components\n */\n@Directive({\n selector: 'div[rdxSeparatorRoot]',\n host: {\n '[attr.role]': 'decorativeEffect() ? \"none\" : \"separator\"',\n '[attr.aria-orientation]': 'computedAriaOrientation()',\n\n '[attr.data-orientation]': 'orientationEffect()'\n }\n})\nexport class RdxSeparatorRootDirective {\n /**\n * Orientation of the separator, can be either 'horizontal' or 'vertical'.\n *\n * @defaultValue 'horizontal'\n * @group Props\n */\n readonly orientation = input<Orientation>(DEFAULT_ORIENTATION);\n\n /**\n * If true, the separator will be considered decorative and removed from\n * the accessibility tree. Defaults to false.\n *\n * @defaultValue false\n * @group Props\n */\n readonly decorative = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Computes the `role` attribute for the separator. If `decorative` is true,\n * the role is set to \"none\", otherwise it is \"separator\".\n *\n * @ignore\n */\n protected readonly decorativeEffect = linkedSignal({\n source: this.decorative,\n computation: (value) => value\n });\n\n protected readonly orientationEffect = linkedSignal({\n source: this.orientation,\n computation: (value) => value\n });\n\n /**\n * Computes the `aria-orientation` attribute. It is set to \"vertical\" only if\n * the separator is not decorative and the orientation is set to \"vertical\".\n * For horizontal orientation, the attribute is omitted.\n *\n * @ignore\n */\n protected readonly computedAriaOrientation = computed(() =>\n !this.decorativeEffect() && this.orientationEffect() === 'vertical' ? 'vertical' : undefined\n );\n\n updateOrientation(value: Orientation) {\n this.orientationEffect.set(value);\n }\n\n updateDecorative(value: boolean) {\n this.decorativeEffect.set(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGA,MAAM,mBAAmB,GAAG,YAAY;AAExC;AACA,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,UAAU,CAAU;AAgBxD;;;;;;AAMG;MAUU,yBAAyB,CAAA;AATtC,IAAA,WAAA,GAAA;AAUI;;;;;AAKG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAc,mBAAmB,kFAAC;AAE9D;;;;;;AAMG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAwB,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE1F;;;;;AAKG;AACgB,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,8BAAA,EAAA,CAAA,EAC9C,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,GAC/B;AAEiB,QAAA,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,CAAA,EAC/C,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,GAC/B;AAEF;;;;;;AAMG;QACgB,IAAA,CAAA,uBAAuB,GAAG,QAAQ,CAAC,MAClD,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,UAAU,GAAG,UAAU,GAAG,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC/F;AASJ,IAAA;AAPG,IAAA,iBAAiB,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;IACrC;AAEA,IAAA,gBAAgB,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC;8GAnDS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,+CAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,2CAA2C;AAC1D,wBAAA,yBAAyB,EAAE,2BAA2B;AAEtD,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;;;ACrCD;;AAEG;;;;"}
1
+ {"version":3,"file":"radix-ng-primitives-separator.mjs","sources":["../../../packages/primitives/separator/src/separator.directive.ts","../../../packages/primitives/separator/radix-ng-primitives-separator.ts"],"sourcesContent":["import { computed, Directive, input, linkedSignal } from '@angular/core';\n\nconst DEFAULT_ORIENTATION = 'horizontal';\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport interface SeparatorProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n}\n\n/**\n * Directive that adds accessible and configurable separator element to the DOM.\n * This can be either horizontal or vertical.\n *\n * @group Components\n */\n@Directive({\n selector: '[rdxSeparatorRoot]',\n host: {\n role: 'separator',\n '[attr.aria-orientation]': 'computedAriaOrientation()',\n\n '[attr.data-orientation]': 'orientationState()'\n }\n})\nexport class RdxSeparatorRootDirective {\n /**\n * Orientation of the separator, can be either 'horizontal' or 'vertical'.\n *\n * @defaultValue 'horizontal'\n * @group Props\n */\n readonly orientation = input<Orientation>(DEFAULT_ORIENTATION);\n\n protected readonly orientationState = linkedSignal({\n source: this.orientation,\n computation: (value) => value\n });\n\n /**\n * Computes the `aria-orientation` attribute. It is set to \"vertical\" only when\n * the separator orientation is vertical. Horizontal is the implicit ARIA default.\n *\n * @ignore\n */\n protected readonly computedAriaOrientation = computed(() =>\n this.orientationState() === 'vertical' ? 'vertical' : undefined\n );\n\n updateOrientation(value: Orientation) {\n this.orientationState.set(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA,MAAM,mBAAmB,GAAG,YAAY;AAWxC;;;;;AAKG;MAUU,yBAAyB,CAAA;AATtC,IAAA,WAAA,GAAA;AAUI;;;;;AAKG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAc,mBAAmB,kFAAC;AAE3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,8BAAA,EAAA,CAAA,EAC9C,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,GAC/B;AAEF;;;;;AAKG;QACgB,IAAA,CAAA,uBAAuB,GAAG,QAAQ,CAAC,MAClD,IAAI,CAAC,gBAAgB,EAAE,KAAK,UAAU,GAAG,UAAU,GAAG,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAClE;AAKJ,IAAA;AAHG,IAAA,iBAAiB,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC;8GA1BS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,yBAAyB,EAAE,2BAA2B;AAEtD,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;;;AC3BD;;AAEG;;;;"}