@radix-ng/primitives 0.8.1 → 0.9.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.
- package/accordion/index.d.ts +3 -3
- package/accordion/src/accordion-content.directive.d.ts +1 -1
- package/accordion/src/accordion-header.directive.d.ts +1 -1
- package/accordion/src/accordion-item.directive.d.ts +1 -1
- package/accordion/src/accordion-root.directive.d.ts +1 -1
- package/accordion/src/accordion-trigger.directive.d.ts +1 -1
- package/alert-dialog/index.d.ts +2 -2
- package/avatar/index.d.ts +2 -2
- package/avatar/src/avatar-fallback.directive.d.ts +3 -3
- package/avatar/src/avatar-image.directive.d.ts +6 -6
- package/avatar/src/avatar-root.directive.d.ts +4 -4
- package/checkbox/index.d.ts +2 -0
- package/checkbox/src/checkbox-button.directive.d.ts +8 -0
- package/checkbox/src/checkbox-indicator.directive.d.ts +1 -1
- package/checkbox/src/checkbox-input.directive.d.ts +9 -0
- package/checkbox/src/checkbox.directive.d.ts +7 -5
- package/collapsible/index.d.ts +1 -1
- package/collapsible/src/collapsible-content.directive.d.ts +1 -1
- package/collapsible/src/collapsible-root.directive.d.ts +1 -1
- package/collapsible/src/collapsible-trigger.directive.d.ts +1 -1
- package/dropdown-menu/index.d.ts +8 -3
- package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +12 -2
- package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +6 -0
- package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +7 -0
- package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +12 -0
- package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +19 -0
- package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +14 -0
- package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +13 -4
- package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +1 -1
- package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +2 -2
- package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +33 -2
- package/esm2022/accordion/index.mjs +4 -4
- package/esm2022/accordion/src/accordion-content.directive.mjs +7 -9
- package/esm2022/accordion/src/accordion-header.directive.mjs +5 -5
- package/esm2022/accordion/src/accordion-item.directive.mjs +17 -9
- package/esm2022/accordion/src/accordion-root.directive.mjs +5 -5
- package/esm2022/accordion/src/accordion-trigger.directive.mjs +5 -5
- package/esm2022/alert-dialog/index.mjs +3 -3
- package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +4 -4
- package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +3 -3
- package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +5 -4
- package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +3 -3
- package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +4 -4
- package/esm2022/alert-dialog/src/alert-dialog.service.mjs +6 -9
- package/esm2022/avatar/index.mjs +1 -1
- package/esm2022/avatar/src/avatar-fallback.directive.mjs +6 -6
- package/esm2022/avatar/src/avatar-image.directive.mjs +6 -6
- package/esm2022/avatar/src/avatar-root.directive.mjs +6 -6
- package/esm2022/checkbox/index.mjs +3 -1
- package/esm2022/checkbox/src/checkbox-button.directive.mjs +33 -0
- package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +6 -5
- package/esm2022/checkbox/src/checkbox-input.directive.mjs +41 -0
- package/esm2022/checkbox/src/checkbox.directive.mjs +18 -22
- package/esm2022/checkbox/src/checkbox.token.mjs +1 -1
- package/esm2022/collapsible/index.mjs +2 -2
- package/esm2022/collapsible/src/collapsible-content.directive.mjs +13 -7
- package/esm2022/collapsible/src/collapsible-root.directive.mjs +5 -5
- package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +5 -5
- package/esm2022/dropdown-menu/index.mjs +9 -4
- package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +36 -10
- package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +26 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +22 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +37 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +60 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +40 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +45 -13
- package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +5 -5
- package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +8 -8
- package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +134 -12
- package/esm2022/label/index.mjs +2 -2
- package/esm2022/label/src/label.directive.mjs +54 -0
- package/esm2022/menu/index.mjs +7 -7
- package/esm2022/menu/src/menu-content.directive.mjs +3 -3
- package/esm2022/menu/src/menu-directive.mjs +3 -3
- package/esm2022/menu/src/menu-group.directive.mjs +3 -3
- package/esm2022/menu/src/menu-item.directive.mjs +8 -4
- package/esm2022/menu/src/menu-label.directive.mjs +3 -3
- package/esm2022/menu/src/menu-separator.directive.mjs +4 -4
- package/esm2022/menubar/index.mjs +7 -7
- package/esm2022/menubar/src/menubar-content.directive.mjs +3 -3
- package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +4 -4
- package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +3 -3
- package/esm2022/menubar/src/menubar-item-radio.directive.mjs +4 -4
- package/esm2022/menubar/src/menubar-item.directive.mjs +4 -4
- package/esm2022/menubar/src/menubar-radio-group.directive.mjs +3 -3
- package/esm2022/menubar/src/menubar-root.directive.mjs +3 -3
- package/esm2022/menubar/src/menubar-separator.directive.mjs +4 -4
- package/esm2022/menubar/src/menubar-trigger.directive.mjs +4 -4
- package/esm2022/progress/src/progress-indicator.directive.mjs +19 -9
- package/esm2022/progress/src/progress-root.directive.mjs +63 -7
- package/esm2022/radio/src/radio-indicator.directive.mjs +4 -4
- package/esm2022/radio/src/radio-item.directive.mjs +4 -8
- package/esm2022/radio/src/radio-root.directive.mjs +5 -9
- package/esm2022/separator/src/separator.directive.mjs +3 -3
- package/esm2022/switch/index.mjs +29 -3
- package/esm2022/switch/src/switch-input.directive.mjs +12 -10
- package/esm2022/switch/src/switch-root.directive.mjs +47 -23
- package/esm2022/switch/src/switch-thumb.directive.mjs +7 -7
- package/esm2022/tabs/index.mjs +7 -7
- package/esm2022/tabs/src/tabs-content.directive.mjs +7 -5
- package/esm2022/tabs/src/tabs-context.service.mjs +3 -3
- package/esm2022/tabs/src/tabs-list.directive.mjs +5 -5
- package/esm2022/tabs/src/tabs-root.directive.mjs +5 -5
- package/esm2022/tabs/src/tabs-trigger.directive.mjs +5 -5
- package/esm2022/toggle/index.mjs +2 -2
- package/esm2022/toggle/src/toggle.directive.mjs +39 -0
- package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +14 -13
- package/esm2022/toggle-group/src/toggle-group-button.token.mjs +1 -1
- package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +18 -34
- package/esm2022/toggle-group/src/toggle-group.directive.mjs +5 -25
- package/esm2022/toggle-group/src/toggle-group.token.mjs +1 -1
- package/fesm2022/radix-ng-primitives-accordion.mjs +73 -67
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +49 -51
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +15 -15
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +91 -26
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +20 -14
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +386 -42
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +22 -16
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +26 -22
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-progress.mjs +80 -14
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +10 -14
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +3 -3
- package/fesm2022/radix-ng-primitives-switch.mjs +94 -46
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +25 -23
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +34 -65
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +18 -28
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/label/index.d.ts +1 -1
- package/label/src/label.directive.d.ts +23 -0
- package/menu/index.d.ts +2 -2
- package/menubar/index.d.ts +2 -2
- package/package.json +1 -7
- package/progress/src/progress-indicator.directive.d.ts +12 -2
- package/progress/src/progress-root.directive.d.ts +38 -4
- package/radio/src/radio-item.directive.d.ts +1 -2
- package/radio/src/radio-root.directive.d.ts +1 -2
- package/switch/index.d.ts +11 -2
- package/switch/src/switch-input.directive.d.ts +1 -1
- package/switch/src/switch-root.directive.d.ts +26 -9
- package/switch/src/switch-thumb.directive.d.ts +1 -1
- package/tabs/index.d.ts +2 -2
- package/tabs/src/tabs-content.directive.d.ts +1 -1
- package/tabs/src/tabs-list.directive.d.ts +1 -1
- package/tabs/src/tabs-root.directive.d.ts +1 -1
- package/tabs/src/tabs-trigger.directive.d.ts +1 -1
- package/toggle/index.d.ts +2 -2
- package/toggle/src/toggle.directive.d.ts +30 -0
- package/toggle-group/src/toggle-group-button.directive.d.ts +9 -6
- package/toggle-group/src/toggle-group-multi.directive.d.ts +18 -15
- package/toggle-group/src/toggle-group.directive.d.ts +3 -9
- package/esm2022/label/src/label-root.directive.mjs +0 -48
- package/esm2022/roving-focus/index.mjs +0 -3
- package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +0 -5
- package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +0 -109
- package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +0 -86
- package/esm2022/toggle/src/toggle-root.directive.mjs +0 -49
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +0 -198
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +0 -1
- package/label/src/label-root.directive.d.ts +0 -13
- package/roving-focus/README.md +0 -1
- package/roving-focus/index.d.ts +0 -2
- package/roving-focus/src/roving-focus-group.directive.d.ts +0 -53
- package/roving-focus/src/roving-focus-item.directive.d.ts +0 -50
- package/toggle/src/toggle-root.directive.d.ts +0 -32
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-switch.mjs","sources":["../../../packages/primitives/switch/src/switch-root.directive.ts","../../../packages/primitives/switch/src/switch-thumb.directive.ts","../../../packages/primitives/switch/src/switch-input.directive.ts","../../../packages/primitives/switch/radix-ng-primitives-switch.ts"],"sourcesContent":["import {\n booleanAttribute,\n Directive,\n EventEmitter,\n inject,\n InjectionToken,\n Input,\n model,\n ModelSignal,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RdxSwitchToken = new InjectionToken<RdxSwitchRootDirective>('RdxSwitchToken');\n\nexport function injectSwitch(): RdxSwitchRootDirective {\n return inject(RdxSwitchToken);\n}\n\nexport interface SwitchProps {\n checked?: ModelSignal<boolean>;\n defaultChecked?: boolean;\n required?: boolean;\n onCheckedChange?: EventEmitter<boolean>;\n}\n\n@Directive({\n selector: 'button[SwitchRoot]',\n exportAs: 'SwitchRoot',\n standalone: true,\n providers: [\n { provide: RdxSwitchToken, useExisting: RdxSwitchRootDirective },\n { provide: NG_VALUE_ACCESSOR, useExisting: RdxSwitchRootDirective, multi: true }\n ],\n host: {\n role: 'switch',\n type: 'button',\n '[attr.aria-checked]': 'checked()',\n '[attr.aria-required]': 'required',\n '[attr.data-state]': 'checked() ? \"checked\" : \"unchecked\"',\n '[attr.data-disabled]': 'disabled ? \"true\" : null',\n '[attr.disabled]': 'disabled ? disabled : null',\n\n '(focus)': '_onTouched?.()',\n '(click)': 'toggle()'\n }\n})\nexport class RdxSwitchRootDirective implements SwitchProps, ControlValueAccessor {\n @Input({ transform: booleanAttribute }) required = false;\n\n readonly checked = model<boolean>(false);\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Output() readonly onCheckedChange = new EventEmitter<boolean>();\n\n /**\n * The method to be called in order to update ngModel.\n */\n _onChange?: (checked: boolean) => void;\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n _onTouched?: () => void;\n\n registerOnChange(fn: (checked: boolean) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n writeValue(checked: boolean): void {\n this.checked.set(checked);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected toggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.checked.set(!this.checked());\n this._onChange?.(this.checked());\n }\n}\n","import { Directive } from '@angular/core';\n\nimport { injectSwitch } from './switch-root.directive';\n\n@Directive({\n selector: 'span[SwitchThumb]',\n exportAs: 'SwitchThumb',\n standalone: true,\n host: {\n '[attr.data-disabled]': 'switchRoot.disabled ? \"true\" : null',\n '[attr.data-state]': 'switchRoot.checked() ? \"checked\" : \"unchecked\"'\n }\n})\nexport class RdxSwitchThumbDirective {\n protected readonly switchRoot = injectSwitch();\n}\n","import { Directive } from '@angular/core';\n\nimport { injectSwitch } from './switch-root.directive';\n\n@Directive({\n selector: 'input[SwitchInput]',\n exportAs: 'SwitchInput',\n standalone: true,\n host: {\n type: 'checkbox',\n tabindex: '-1',\n '[attr.aria-checked]': 'switchRoot.checked()',\n '[attr.aria-hidden]': 'true',\n '[attr.aria-required]': 'switchRoot.required',\n '[attr.data-state]': 'switchRoot.checked() ? \"checked\" : \"unchecked\"',\n '[attr.data-disabled]': 'switchRoot.disabled ? \"true\" : null',\n '[attr.disabled]': 'switchRoot.disabled ? switchRoot.disabled : null',\n style: 'position: absolute; pointerEvents: none; opacity: 0; margin: 0;'\n }\n})\nexport class RdxSwitchInputDirective {\n protected readonly switchRoot = injectSwitch();\n}\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-switch.mjs","sources":["../../../packages/primitives/switch/src/switch-root.directive.ts","../../../packages/primitives/switch/src/switch-input.directive.ts","../../../packages/primitives/switch/src/switch-thumb.directive.ts","../../../packages/primitives/switch/index.ts","../../../packages/primitives/switch/radix-ng-primitives-switch.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n EventEmitter,\n inject,\n InjectionToken,\n input,\n InputSignalWithTransform,\n model,\n ModelSignal,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RdxSwitchToken = new InjectionToken<RdxSwitchRootDirective>('RdxSwitchToken');\n\nexport function injectSwitch(): RdxSwitchRootDirective {\n return inject(RdxSwitchToken);\n}\n\nexport interface SwitchProps {\n checked?: ModelSignal<boolean>;\n defaultChecked?: boolean;\n required?: InputSignalWithTransform<boolean, BooleanInput>;\n onCheckedChange?: EventEmitter<boolean>;\n}\n\nlet idIterator = 0;\n\n@Directive({\n selector: 'button[rdxSwitchRoot]',\n exportAs: 'rdxSwitchRoot',\n standalone: true,\n providers: [\n { provide: RdxSwitchToken, useExisting: RdxSwitchRootDirective },\n { provide: NG_VALUE_ACCESSOR, useExisting: RdxSwitchRootDirective, multi: true }\n ],\n host: {\n role: 'switch',\n type: 'button',\n '[id]': 'elementId()',\n '[attr.aria-checked]': 'checked()',\n '[attr.aria-required]': 'required',\n '[attr.data-state]': 'checked() ? \"checked\" : \"unchecked\"',\n '[attr.data-disabled]': 'disabledState() ? \"true\" : null',\n '[attr.disabled]': 'disabledState() ? disabledState() : null',\n\n '(focus)': '_onTouched?.()',\n '(click)': 'toggle()'\n }\n})\nexport class RdxSwitchRootDirective implements SwitchProps, ControlValueAccessor {\n readonly id = input<string>(`rdx-switch-${idIterator++}`);\n protected readonly elementId = computed(() => (this.id() ? this.id() : null));\n\n // When true, indicates that the user must check\n // the switch before the owning form can be submitted.\n readonly required = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n // The controlled state of the switch\n readonly checked = model<boolean>(false);\n\n // When true, prevents the user from interacting with the switch.\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n /*\n * @ignore\n */\n readonly disabledState = computed(() => this.disabled());\n\n @Output() onCheckedChange = new EventEmitter<boolean>();\n\n /**\n * The method to be called in order to update ngModel.\n */\n _onChange?: (checked: boolean) => void;\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n _onTouched?: () => void;\n\n /**\n * Registers a function to call when the checked state changes.\n * @param fn Function to call on change.\n */\n registerOnChange(fn: (checked: boolean) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Registers a function to call when the component is touched.\n * @param fn Function to call on touch.\n */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /**\n * Writes a new value to the model.\n * @param checked The new checked value.\n */\n writeValue(checked: boolean): void {\n this.checked.set(checked);\n }\n\n /**\n * Toggles the checked state of the switch.\n * If the switch is disabled, the function returns early.\n */\n protected toggle(): void {\n if (this.disabledState()) {\n return;\n }\n\n this.checked.set(!this.checked());\n this._onChange?.(this.checked());\n\n this.onCheckedChange.emit(this.checked());\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectSwitch } from './switch-root.directive';\n\n@Directive({\n selector: 'input[rdxSwitchInput]',\n exportAs: 'rdxSwitchInput',\n standalone: true,\n host: {\n type: 'checkbox',\n tabindex: '-1',\n '[attr.defaultChecked]': 'switchRoot.checked()',\n '[attr.aria-checked]': 'switchRoot.checked()',\n '[attr.aria-hidden]': 'true',\n '[attr.aria-required]': 'switchRoot.required()',\n '[attr.data-state]': 'switchRoot.checked() ? \"checked\" : \"unchecked\"',\n '[attr.data-disabled]': 'switchRoot.disabledState() ? \"true\" : null',\n '[attr.disabled]': 'switchRoot.disabledState() ? switchRoot.disabledState() : null',\n '[attr.value]': 'switchRoot.checked() ? \"on\" : \"off\"',\n style: 'transform: translateX(-100%); position: absolute; overflow: hidden; pointerEvents: none; opacity: 0; margin: 0;'\n }\n})\nexport class RdxSwitchInputDirective {\n protected readonly switchRoot = injectSwitch();\n}\n","import { Directive } from '@angular/core';\nimport { injectSwitch } from './switch-root.directive';\n\n@Directive({\n selector: 'span[rdxSwitchThumb]',\n exportAs: 'rdxSwitchThumb',\n standalone: true,\n host: {\n '[attr.data-disabled]': 'switchRoot.disabledState() ? \"true\" : null',\n '[attr.data-state]': 'switchRoot.checked() ? \"checked\" : \"unchecked\"'\n }\n})\nexport class RdxSwitchThumbDirective {\n protected readonly switchRoot = injectSwitch();\n}\n","import { NgModule } from '@angular/core';\nimport { RdxSwitchInputDirective } from './src/switch-input.directive';\nimport { RdxSwitchRootDirective } from './src/switch-root.directive';\nimport { RdxSwitchThumbDirective } from './src/switch-thumb.directive';\n\nexport * from './src/switch-input.directive';\nexport * from './src/switch-root.directive';\nexport * from './src/switch-thumb.directive';\n\nexport type { SwitchProps } from './src/switch-root.directive';\n\nconst switchImports = [\n RdxSwitchRootDirective,\n RdxSwitchInputDirective,\n RdxSwitchThumbDirective\n];\n\n@NgModule({\n imports: [...switchImports],\n exports: [...switchImports]\n})\nexport class RdxSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -32,10 +32,10 @@ class RdxTabsContextService {
|
|
32
32
|
generateId() {
|
33
33
|
return `tabs-${Math.random().toString(36).substr(2, 9)}`;
|
34
34
|
}
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsContextService, providedIn: 'root' }); }
|
37
37
|
}
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsContextService, decorators: [{
|
39
39
|
type: Injectable,
|
40
40
|
args: [{
|
41
41
|
providedIn: 'root'
|
@@ -48,19 +48,21 @@ class RdxTabsContentDirective {
|
|
48
48
|
this.value = input.required();
|
49
49
|
this.selected = computed(() => this.tabsContext.value$() === this.value());
|
50
50
|
}
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
52
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
52
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxTabsContentDirective, isStandalone: true, selector: "[rdxTabsContent]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "tabpanel", "tabindex": "0" }, properties: { "id": "tabsContext.getBaseId()", "attr.aria-labelledby": "tabsContext.getBaseId()", "attr.data-state": "selected() ? \"active\" : \"inactive\"", "attr.data-orientation": "tabsContext.orientation$()", "hidden": "!selected()" } }, ngImport: i0 }); }
|
53
53
|
}
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsContentDirective, decorators: [{
|
55
55
|
type: Directive,
|
56
56
|
args: [{
|
57
|
-
selector: '[
|
57
|
+
selector: '[rdxTabsContent]',
|
58
58
|
standalone: true,
|
59
59
|
host: {
|
60
60
|
role: 'tabpanel',
|
61
61
|
tabindex: '0',
|
62
62
|
'[id]': 'tabsContext.getBaseId()',
|
63
63
|
'[attr.aria-labelledby]': 'tabsContext.getBaseId()',
|
64
|
+
'[attr.data-state]': 'selected() ? "active" : "inactive"',
|
65
|
+
'[attr.data-orientation]': 'tabsContext.orientation$()',
|
64
66
|
'[hidden]': '!selected()'
|
65
67
|
}
|
66
68
|
}]
|
@@ -70,13 +72,13 @@ class RdxTabsListDirective {
|
|
70
72
|
constructor() {
|
71
73
|
this.tabsContext = inject(TABS_CONTEXT_TOKEN);
|
72
74
|
}
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
74
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
76
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxTabsListDirective, isStandalone: true, selector: "[rdxTabsList]", host: { attributes: { "role": "tablist" }, properties: { "attr.aria-orientation": "tabsContext.orientation$()", "attr.data-orientation": "tabsContext.orientation$()" } }, ngImport: i0 }); }
|
75
77
|
}
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsListDirective, decorators: [{
|
77
79
|
type: Directive,
|
78
80
|
args: [{
|
79
|
-
selector: '[
|
81
|
+
selector: '[rdxTabsList]',
|
80
82
|
standalone: true,
|
81
83
|
host: {
|
82
84
|
role: 'tablist',
|
@@ -111,13 +113,13 @@ class RdxTabsRootDirective {
|
|
111
113
|
this.tabsContext.setValue(this.defaultValue);
|
112
114
|
}
|
113
115
|
}
|
114
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
115
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
117
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxTabsRootDirective, isStandalone: true, selector: "[rdxTabsRoot]", inputs: { value: "value", defaultValue: "defaultValue", orientation: "orientation", dir: "dir" }, outputs: { onValueChange: "onValueChange" }, host: { properties: { "attr.data-orientation": "orientation", "attr.dir": "dir" } }, providers: [{ provide: TABS_CONTEXT_TOKEN, useExisting: RdxTabsContextService }], ngImport: i0 }); }
|
116
118
|
}
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsRootDirective, decorators: [{
|
118
120
|
type: Directive,
|
119
121
|
args: [{
|
120
|
-
selector: '[
|
122
|
+
selector: '[rdxTabsRoot]',
|
121
123
|
standalone: true,
|
122
124
|
providers: [{ provide: TABS_CONTEXT_TOKEN, useExisting: RdxTabsContextService }],
|
123
125
|
host: {
|
@@ -164,13 +166,13 @@ class RdxTabsTriggerDirective {
|
|
164
166
|
this.tabsContext?.setValue(this.value());
|
165
167
|
}
|
166
168
|
}
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
168
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
169
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
170
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxTabsTriggerDirective, isStandalone: true, selector: "[rdxTabsTrigger]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "tab" }, listeners: { "mousedown": "onMouseDown($event)", "keydown": "onKeyDown($event)" }, properties: { "id": "triggerId", "attr.aria-selected": "selected()", "attr.aria-controls": "contentId()", "attr.data-disabled": "disabled() ? '' : undefined", "attr.data-state": "selected() ? 'active' : 'inactive'" } }, ngImport: i0 }); }
|
169
171
|
}
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsTriggerDirective, decorators: [{
|
171
173
|
type: Directive,
|
172
174
|
args: [{
|
173
|
-
selector: '[
|
175
|
+
selector: '[rdxTabsTrigger]',
|
174
176
|
standalone: true,
|
175
177
|
host: {
|
176
178
|
type: 'button',
|
@@ -193,17 +195,17 @@ const tabsImports = [
|
|
193
195
|
RdxTabsTriggerDirective
|
194
196
|
];
|
195
197
|
class RdxTabsModule {
|
196
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
197
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
199
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsModule, imports: [RdxTabsRootDirective,
|
198
200
|
RdxTabsContentDirective,
|
199
201
|
RdxTabsListDirective,
|
200
202
|
RdxTabsTriggerDirective], exports: [RdxTabsRootDirective,
|
201
203
|
RdxTabsContentDirective,
|
202
204
|
RdxTabsListDirective,
|
203
205
|
RdxTabsTriggerDirective] }); }
|
204
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
206
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsModule, providers: [RdxTabsContextService] }); }
|
205
207
|
}
|
206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxTabsModule, decorators: [{
|
207
209
|
type: NgModule,
|
208
210
|
args: [{
|
209
211
|
imports: [...tabsImports],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-tabs.mjs","sources":["../../../packages/primitives/tabs/src/tabs-context.service.ts","../../../packages/primitives/tabs/src/tabs-content.directive.ts","../../../packages/primitives/tabs/src/tabs-list.directive.ts","../../../packages/primitives/tabs/src/tabs-root.directive.ts","../../../packages/primitives/tabs/src/tabs-trigger.directive.ts","../../../packages/primitives/tabs/index.ts","../../../packages/primitives/tabs/radix-ng-primitives-tabs.ts"],"sourcesContent":["import { computed, Injectable, InjectionToken, signal } from '@angular/core';\n\nexport const TABS_CONTEXT_TOKEN = new InjectionToken<RdxTabsContextService>('TabsContext');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RdxTabsContextService {\n private baseId = this.generateId();\n private value = signal<string | undefined>(undefined);\n private orientation = signal<string>('horizontal');\n private dir = signal<string | undefined>(undefined);\n private activationMode = signal<string>('automatic');\n\n readonly value$ = computed(() => this.value());\n readonly orientation$ = computed(() => this.orientation());\n readonly dir$ = computed(() => this.dir());\n readonly activationMode$ = computed(() => this.activationMode());\n\n setValue(value: string) {\n this.value.set(value);\n }\n\n setOrientation(orientation: string) {\n this.orientation.set(orientation);\n }\n\n setDir(dir: string) {\n this.dir.set(dir);\n }\n\n setActivationMode(mode: string) {\n this.activationMode.set(mode);\n }\n\n getBaseId() {\n return this.baseId;\n }\n\n private generateId() {\n return `tabs-${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n","import { computed, Directive, inject, input } from '@angular/core';\n\nimport { TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\n@Directive({\n selector: '[TabsContent]',\n standalone: true,\n host: {\n role: 'tabpanel',\n tabindex: '0',\n '[id]': 'tabsContext.getBaseId()',\n '[attr.aria-labelledby]': 'tabsContext.getBaseId()',\n '[hidden]': '!selected()'\n }\n})\nexport class RdxTabsContentDirective {\n protected readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n\n readonly value = input.required<string>();\n\n protected readonly selected = computed(() => this.tabsContext.value$() === this.value());\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\ninterface TabsListProps {\n // When true, keyboard navigation will loop from last tab to first, and vice versa.\n loop?: boolean;\n}\n\n@Directive({\n selector: '[TabsList]',\n standalone: true,\n host: {\n role: 'tablist',\n '[attr.aria-orientation]': 'tabsContext.orientation$()',\n '[attr.data-orientation]': 'tabsContext.orientation$()'\n }\n})\nexport class RdxTabsListDirective {\n protected readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n}\n","import { Directive, effect, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\n\nimport { RdxTabsContextService, TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\nexport interface TabsProps {\n /** The value for the selected tab, if controlled */\n value?: string;\n /** The value of the tab to select by default, if uncontrolled */\n defaultValue?: string;\n /** A function called when a new tab is selected */\n onValueChange?: (value: string) => void;\n /**\n * The orientation the tabs are layed out.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n * @defaultValue horizontal\n */\n orientation?: string;\n /**\n * The direction of navigation between toolbar items.\n */\n dir?: string;\n /**\n * Whether a tab is activated automatically or manually.\n * @defaultValue automatic\n * */\n activationMode?: 'automatic' | 'manual';\n}\n\n@Directive({\n selector: '[TabsRoot]',\n standalone: true,\n providers: [{ provide: TABS_CONTEXT_TOKEN, useExisting: RdxTabsContextService }],\n host: {\n '[attr.data-orientation]': 'orientation',\n '[attr.dir]': 'dir'\n }\n})\nexport class RdxTabsRootDirective implements OnInit {\n private readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n\n @Input() value?: string;\n @Input() defaultValue?: string;\n @Input() orientation = 'horizontal';\n @Input() dir?: string;\n\n // Event handler called when the value changes.\n @Output() onValueChange = new EventEmitter<string>();\n\n constructor() {\n effect(() => {\n const value = this.tabsContext.value$();\n if (value !== undefined) {\n this.onValueChange.emit(value);\n }\n });\n }\n\n ngOnInit() {\n this.tabsContext.setOrientation(this.orientation);\n\n if (this.dir) {\n this.tabsContext.setDir(this.dir);\n }\n\n if (this.value) {\n this.tabsContext.setValue(this.value);\n } else if (this.defaultValue) {\n this.tabsContext.setValue(this.defaultValue);\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n inject,\n input,\n InputSignalWithTransform\n} from '@angular/core';\n\nimport { TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\ninterface TabsTriggerProps {\n // When true, prevents the user from interacting with the tab.\n disabled: InputSignalWithTransform<boolean, BooleanInput>;\n}\n\n@Directive({\n selector: '[TabsTrigger]',\n standalone: true,\n host: {\n type: 'button',\n role: 'tab',\n '[id]': 'triggerId',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-controls]': 'contentId()',\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[attr.data-state]': \"selected() ? 'active' : 'inactive'\",\n '(mousedown)': 'onMouseDown($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class RdxTabsTriggerDirective implements TabsTriggerProps {\n protected readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n\n // A unique value that associates the trigger with a content.\n readonly value = input.required<string>();\n\n // When true, prevents the user from interacting with the tab.\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n protected readonly contentId = computed(\n () => `${this.tabsContext.getBaseId()}-content-${this.value()}`\n );\n protected readonly triggerId = computed(\n () => `${this.tabsContext.getBaseId()}-trigger-${this.value}`\n );\n\n protected readonly selected = computed(() => this.tabsContext.value$() === this.value());\n\n protected onMouseDown(event: MouseEvent) {\n if (!this.disabled() && event.button === 0 && !event.ctrlKey) {\n this.tabsContext?.setValue(this.value());\n } else {\n // prevent focus to avoid accidental activation\n event.preventDefault();\n }\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if ([' ', 'Enter'].includes(event.key)) {\n this.tabsContext?.setValue(this.value());\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { RdxTabsContentDirective } from './src/tabs-content.directive';\nimport { RdxTabsContextService } from './src/tabs-context.service';\nimport { RdxTabsListDirective } from './src/tabs-list.directive';\nimport { RdxTabsRootDirective } from './src/tabs-root.directive';\nimport { RdxTabsTriggerDirective } from './src/tabs-trigger.directive';\n\nexport * from './src/tabs-root.directive';\nexport * from './src/tabs-content.directive';\nexport * from './src/tabs-list.directive';\nexport * from './src/tabs-trigger.directive';\nexport * from './src/tabs-context.service';\n\nconst tabsImports = [\n RdxTabsRootDirective,\n RdxTabsContentDirective,\n RdxTabsListDirective,\n RdxTabsTriggerDirective\n];\n\n@NgModule({\n imports: [...tabsImports],\n exports: [...tabsImports],\n providers: [RdxTabsContextService]\n})\nexport class RdxTabsModule {}\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-tabs.mjs","sources":["../../../packages/primitives/tabs/src/tabs-context.service.ts","../../../packages/primitives/tabs/src/tabs-content.directive.ts","../../../packages/primitives/tabs/src/tabs-list.directive.ts","../../../packages/primitives/tabs/src/tabs-root.directive.ts","../../../packages/primitives/tabs/src/tabs-trigger.directive.ts","../../../packages/primitives/tabs/index.ts","../../../packages/primitives/tabs/radix-ng-primitives-tabs.ts"],"sourcesContent":["import { computed, Injectable, InjectionToken, signal } from '@angular/core';\n\nexport const TABS_CONTEXT_TOKEN = new InjectionToken<RdxTabsContextService>('TabsContext');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RdxTabsContextService {\n private baseId = this.generateId();\n private value = signal<string | undefined>(undefined);\n private orientation = signal<string>('horizontal');\n private dir = signal<string | undefined>(undefined);\n private activationMode = signal<string>('automatic');\n\n readonly value$ = computed(() => this.value());\n readonly orientation$ = computed(() => this.orientation());\n readonly dir$ = computed(() => this.dir());\n readonly activationMode$ = computed(() => this.activationMode());\n\n setValue(value: string) {\n this.value.set(value);\n }\n\n setOrientation(orientation: string) {\n this.orientation.set(orientation);\n }\n\n setDir(dir: string) {\n this.dir.set(dir);\n }\n\n setActivationMode(mode: string) {\n this.activationMode.set(mode);\n }\n\n getBaseId() {\n return this.baseId;\n }\n\n private generateId() {\n return `tabs-${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\n@Directive({\n selector: '[rdxTabsContent]',\n standalone: true,\n host: {\n role: 'tabpanel',\n tabindex: '0',\n '[id]': 'tabsContext.getBaseId()',\n '[attr.aria-labelledby]': 'tabsContext.getBaseId()',\n '[attr.data-state]': 'selected() ? \"active\" : \"inactive\"',\n '[attr.data-orientation]': 'tabsContext.orientation$()',\n '[hidden]': '!selected()'\n }\n})\nexport class RdxTabsContentDirective {\n protected readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n\n readonly value = input.required<string>();\n\n protected readonly selected = computed(() => this.tabsContext.value$() === this.value());\n}\n","import { Directive, inject } from '@angular/core';\nimport { TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface TabsListProps {\n // When true, keyboard navigation will loop from last tab to first, and vice versa.\n loop?: boolean;\n}\n\n@Directive({\n selector: '[rdxTabsList]',\n standalone: true,\n host: {\n role: 'tablist',\n '[attr.aria-orientation]': 'tabsContext.orientation$()',\n '[attr.data-orientation]': 'tabsContext.orientation$()'\n }\n})\nexport class RdxTabsListDirective {\n protected readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n}\n","import { Directive, effect, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { RdxTabsContextService, TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface TabsProps {\n /** The value for the selected tab, if controlled */\n value?: string;\n /** The value of the tab to select by default, if uncontrolled */\n defaultValue?: string;\n /** A function called when a new tab is selected */\n onValueChange?: (value: string) => void;\n /**\n * The orientation the tabs are layed out.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n * @defaultValue horizontal\n */\n orientation?: string;\n /**\n * The direction of navigation between toolbar items.\n */\n dir?: string;\n /**\n * Whether a tab is activated automatically or manually.\n * @defaultValue automatic\n * */\n activationMode?: 'automatic' | 'manual';\n}\n\n@Directive({\n selector: '[rdxTabsRoot]',\n standalone: true,\n providers: [{ provide: TABS_CONTEXT_TOKEN, useExisting: RdxTabsContextService }],\n host: {\n '[attr.data-orientation]': 'orientation',\n '[attr.dir]': 'dir'\n }\n})\nexport class RdxTabsRootDirective implements OnInit {\n private readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n\n @Input() value?: string;\n @Input() defaultValue?: string;\n @Input() orientation = 'horizontal';\n @Input() dir?: string;\n\n // Event handler called when the value changes.\n @Output() onValueChange = new EventEmitter<string>();\n\n constructor() {\n effect(() => {\n const value = this.tabsContext.value$();\n if (value !== undefined) {\n this.onValueChange.emit(value);\n }\n });\n }\n\n ngOnInit() {\n this.tabsContext.setOrientation(this.orientation);\n\n if (this.dir) {\n this.tabsContext.setDir(this.dir);\n }\n\n if (this.value) {\n this.tabsContext.setValue(this.value);\n } else if (this.defaultValue) {\n this.tabsContext.setValue(this.defaultValue);\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, inject, input, InputSignalWithTransform } from '@angular/core';\nimport { TABS_CONTEXT_TOKEN } from './tabs-context.service';\n\ninterface TabsTriggerProps {\n // When true, prevents the user from interacting with the tab.\n disabled: InputSignalWithTransform<boolean, BooleanInput>;\n}\n\n@Directive({\n selector: '[rdxTabsTrigger]',\n standalone: true,\n host: {\n type: 'button',\n role: 'tab',\n '[id]': 'triggerId',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-controls]': 'contentId()',\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[attr.data-state]': \"selected() ? 'active' : 'inactive'\",\n '(mousedown)': 'onMouseDown($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class RdxTabsTriggerDirective implements TabsTriggerProps {\n protected readonly tabsContext = inject(TABS_CONTEXT_TOKEN);\n\n // A unique value that associates the trigger with a content.\n readonly value = input.required<string>();\n\n // When true, prevents the user from interacting with the tab.\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n protected readonly contentId = computed(() => `${this.tabsContext.getBaseId()}-content-${this.value()}`);\n protected readonly triggerId = computed(() => `${this.tabsContext.getBaseId()}-trigger-${this.value}`);\n\n protected readonly selected = computed(() => this.tabsContext.value$() === this.value());\n\n protected onMouseDown(event: MouseEvent) {\n if (!this.disabled() && event.button === 0 && !event.ctrlKey) {\n this.tabsContext?.setValue(this.value());\n } else {\n // prevent focus to avoid accidental activation\n event.preventDefault();\n }\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if ([' ', 'Enter'].includes(event.key)) {\n this.tabsContext?.setValue(this.value());\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxTabsContentDirective } from './src/tabs-content.directive';\nimport { RdxTabsContextService } from './src/tabs-context.service';\nimport { RdxTabsListDirective } from './src/tabs-list.directive';\nimport { RdxTabsRootDirective } from './src/tabs-root.directive';\nimport { RdxTabsTriggerDirective } from './src/tabs-trigger.directive';\n\nexport * from './src/tabs-content.directive';\nexport * from './src/tabs-context.service';\nexport * from './src/tabs-list.directive';\nexport * from './src/tabs-root.directive';\nexport * from './src/tabs-trigger.directive';\n\nconst tabsImports = [\n RdxTabsRootDirective,\n RdxTabsContentDirective,\n RdxTabsListDirective,\n RdxTabsTriggerDirective\n];\n\n@NgModule({\n imports: [...tabsImports],\n exports: [...tabsImports],\n providers: [RdxTabsContextService]\n})\nexport class RdxTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { InjectionToken, inject, booleanAttribute, Directive, Input, EventEmitter, ContentChildren } from '@angular/core';
|
3
|
-
import * as i1 from '@radix-ng/primitives/roving-focus';
|
4
|
-
import { injectRovingFocusItem, RdxRovingFocusItemDirective, injectRovingFocusGroup, RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';
|
5
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
6
4
|
|
7
5
|
const RdxToggleGroupButtonToken = new InjectionToken('RdxToggleGroupButtonToken');
|
@@ -18,12 +16,9 @@ class RdxToggleGroupButtonDirective {
|
|
18
16
|
constructor() {
|
19
17
|
/**
|
20
18
|
* Access the toggle group.
|
19
|
+
* @ignore
|
21
20
|
*/
|
22
21
|
this.toggleGroup = injectToggleGroup();
|
23
|
-
/**
|
24
|
-
* Access the roving focus item.
|
25
|
-
*/
|
26
|
-
this.rovingFocusItem = injectRovingFocusItem();
|
27
22
|
/**
|
28
23
|
* Whether this toggle button is disabled.
|
29
24
|
* @default false
|
@@ -36,11 +31,17 @@ class RdxToggleGroupButtonDirective {
|
|
36
31
|
get checked() {
|
37
32
|
return this.toggleGroup.isSelected(this.value);
|
38
33
|
}
|
34
|
+
/**
|
35
|
+
* @ignore
|
36
|
+
*/
|
39
37
|
ngOnChanges(changes) {
|
40
38
|
if ('disabled' in changes) {
|
41
|
-
|
39
|
+
// TODO
|
42
40
|
}
|
43
41
|
}
|
42
|
+
/**
|
43
|
+
* @ignore
|
44
|
+
*/
|
44
45
|
toggle() {
|
45
46
|
if (this.disabled) {
|
46
47
|
return;
|
@@ -50,19 +51,19 @@ class RdxToggleGroupButtonDirective {
|
|
50
51
|
/**
|
51
52
|
* Ensure the disabled state is propagated to the roving focus item.
|
52
53
|
* @internal
|
54
|
+
* @ignore
|
53
55
|
*/
|
54
56
|
updateDisabled() {
|
55
|
-
|
57
|
+
// TODO
|
56
58
|
}
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxToggleGroupButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
60
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxToggleGroupButtonDirective, isStandalone: true, selector: "button[rdxToggleGroupButton]", inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute] }, host: { attributes: { "role": "radio" }, listeners: { "click": "toggle()" }, properties: { "attr.aria-checked": "checked", "attr.aria-disabled": "disabled || toggleGroup.disabled", "attr.data-disabled": "disabled || toggleGroup.disabled", "attr.data-state": "checked ? \"on\" : \"off\"", "attr.data-orientation": "toggleGroup.orientation" } }, providers: [{ provide: RdxToggleGroupButtonToken, useExisting: RdxToggleGroupButtonDirective }], usesOnChanges: true, ngImport: i0 }); }
|
59
61
|
}
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxToggleGroupButtonDirective, decorators: [{
|
61
63
|
type: Directive,
|
62
64
|
args: [{
|
63
65
|
selector: 'button[rdxToggleGroupButton]',
|
64
66
|
standalone: true,
|
65
|
-
hostDirectives: [RdxRovingFocusItemDirective],
|
66
67
|
providers: [{ provide: RdxToggleGroupButtonToken, useExisting: RdxToggleGroupButtonDirective }],
|
67
68
|
host: {
|
68
69
|
role: 'radio',
|
@@ -84,10 +85,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
84
85
|
|
85
86
|
class RdxToggleGroupMultiDirective {
|
86
87
|
constructor() {
|
87
|
-
/**
|
88
|
-
* Access the roving focus group
|
89
|
-
*/
|
90
|
-
this.rovingFocusGroup = injectRovingFocusGroup();
|
91
88
|
/**
|
92
89
|
* The selected toggle button.
|
93
90
|
*/
|
@@ -112,19 +109,17 @@ class RdxToggleGroupMultiDirective {
|
|
112
109
|
*/
|
113
110
|
this.valueChange = new EventEmitter();
|
114
111
|
}
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
// if the toggle button group input is not defined, the orientation will not be set
|
119
|
-
// in the roving focus group and the default vertical orientation will be used.
|
120
|
-
// we must initially set the orientation of the roving focus group to match the toggle button group orientation
|
121
|
-
this.rovingFocusGroup.setOrientation(this.orientation);
|
122
|
-
}
|
112
|
+
/**
|
113
|
+
* @ignore
|
114
|
+
*/
|
123
115
|
ngOnChanges(changes) {
|
124
116
|
if ('disabled' in changes) {
|
125
117
|
this.buttons?.forEach((button) => button.updateDisabled());
|
126
118
|
}
|
127
119
|
}
|
120
|
+
/**
|
121
|
+
* @ignore
|
122
|
+
*/
|
128
123
|
ngAfterContentInit() {
|
129
124
|
if (this.disabled) {
|
130
125
|
this.buttons?.forEach((button) => button.updateDisabled());
|
@@ -134,7 +129,7 @@ class RdxToggleGroupMultiDirective {
|
|
134
129
|
* Determine if a value is selected.
|
135
130
|
* @param value The value to check.
|
136
131
|
* @returns Whether the value is selected.
|
137
|
-
* @
|
132
|
+
* @ignore
|
138
133
|
*/
|
139
134
|
isSelected(value) {
|
140
135
|
return this.value.includes(value);
|
@@ -142,22 +137,20 @@ class RdxToggleGroupMultiDirective {
|
|
142
137
|
/**
|
143
138
|
* Toggle a value.
|
144
139
|
* @param value The value to toggle.
|
145
|
-
* @
|
140
|
+
* @ignore
|
146
141
|
*/
|
147
142
|
toggle(value) {
|
148
143
|
if (this.disabled) {
|
149
144
|
return;
|
150
145
|
}
|
151
|
-
this.value = this.value.includes(value)
|
152
|
-
? this.value.filter((v) => v !== value)
|
153
|
-
: [...this.value, value];
|
146
|
+
this.value = this.value.includes(value) ? this.value.filter((v) => v !== value) : [...this.value, value];
|
154
147
|
this.valueChange.emit(this.value);
|
155
148
|
this.onChange?.(this.value);
|
156
149
|
}
|
157
150
|
/**
|
158
151
|
* Select a value from Angular forms.
|
159
152
|
* @param value The value to select.
|
160
|
-
* @
|
153
|
+
* @ignore
|
161
154
|
*/
|
162
155
|
writeValue(value) {
|
163
156
|
this.value = value;
|
@@ -165,7 +158,7 @@ class RdxToggleGroupMultiDirective {
|
|
165
158
|
/**
|
166
159
|
* Register a callback to be called when the value changes.
|
167
160
|
* @param fn The callback to register.
|
168
|
-
* @
|
161
|
+
* @ignore
|
169
162
|
*/
|
170
163
|
registerOnChange(fn) {
|
171
164
|
this.onChange = fn;
|
@@ -173,7 +166,7 @@ class RdxToggleGroupMultiDirective {
|
|
173
166
|
/**
|
174
167
|
* Register a callback to be called when the toggle group is touched.
|
175
168
|
* @param fn The callback to register.
|
176
|
-
* @
|
169
|
+
* @ignore
|
177
170
|
*/
|
178
171
|
registerOnTouched(fn) {
|
179
172
|
this.onTouched = fn;
|
@@ -181,29 +174,23 @@ class RdxToggleGroupMultiDirective {
|
|
181
174
|
/**
|
182
175
|
* Set the disabled state of the toggle group.
|
183
176
|
* @param isDisabled Whether the toggle group is disabled.
|
184
|
-
* @
|
177
|
+
* @ignore
|
185
178
|
*/
|
186
179
|
setDisabledState(isDisabled) {
|
187
180
|
this.disabled = isDisabled;
|
188
181
|
this.buttons?.forEach((button) => button.updateDisabled());
|
189
182
|
}
|
190
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
191
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.
|
183
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxToggleGroupMultiDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
184
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxToggleGroupMultiDirective, isStandalone: true, selector: "[rdxToggleGroupMulti]", inputs: { value: ["rdxToggleGroupMultiValue", "value"], orientation: ["rdxToggleGroupMultiOrientation", "orientation"], disabled: ["rdxToggleGroupMultiDisabled", "disabled", booleanAttribute], wrap: ["rdxToggleGroupMultiWrap", "wrap", booleanAttribute], valueChange: ["rdxToggleGroupMultiValueChange", "valueChange"] }, host: { attributes: { "role": "group" }, listeners: { "focusout": "onTouched?.()" }, properties: { "attr.data-orientation": "orientation" } }, providers: [
|
192
185
|
{ provide: RdxToggleGroupToken, useExisting: RdxToggleGroupMultiDirective },
|
193
186
|
{ provide: NG_VALUE_ACCESSOR, useExisting: RdxToggleGroupMultiDirective, multi: true }
|
194
|
-
], queries: [{ propertyName: "buttons", predicate: RdxToggleGroupButtonToken }], usesOnChanges: true,
|
187
|
+
], queries: [{ propertyName: "buttons", predicate: RdxToggleGroupButtonToken }], usesOnChanges: true, ngImport: i0 }); }
|
195
188
|
}
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxToggleGroupMultiDirective, decorators: [{
|
197
190
|
type: Directive,
|
198
191
|
args: [{
|
199
192
|
selector: '[rdxToggleGroupMulti]',
|
200
193
|
standalone: true,
|
201
|
-
hostDirectives: [
|
202
|
-
{
|
203
|
-
directive: RdxRovingFocusGroupDirective,
|
204
|
-
inputs: ['rdxRovingFocusGroupWrap:wrap', 'rdxRovingFocusGroupOrientation:orientation']
|
205
|
-
}
|
206
|
-
],
|
207
194
|
providers: [
|
208
195
|
{ provide: RdxToggleGroupToken, useExisting: RdxToggleGroupMultiDirective },
|
209
196
|
{ provide: NG_VALUE_ACCESSOR, useExisting: RdxToggleGroupMultiDirective, multi: true }
|
@@ -236,10 +223,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
236
223
|
|
237
224
|
class RdxToggleGroupDirective {
|
238
225
|
constructor() {
|
239
|
-
/**
|
240
|
-
* Access the roving focus group
|
241
|
-
*/
|
242
|
-
this.rovingFocusGroup = injectRovingFocusGroup();
|
243
226
|
/**
|
244
227
|
* The selected toggle button.
|
245
228
|
*/
|
@@ -264,14 +247,6 @@ class RdxToggleGroupDirective {
|
|
264
247
|
*/
|
265
248
|
this.valueChange = new EventEmitter();
|
266
249
|
}
|
267
|
-
ngOnInit() {
|
268
|
-
// the toggle button group has a default orientation of horizontal
|
269
|
-
// whereas the roving focus group has a default orientation of vertical
|
270
|
-
// if the toggle button group input is not defined, the orientation will not be set
|
271
|
-
// in the roving focus group and the default vertical orientation will be used.
|
272
|
-
// we must initially set the orientation of the roving focus group to match the toggle button group orientation
|
273
|
-
this.rovingFocusGroup.setOrientation(this.orientation);
|
274
|
-
}
|
275
250
|
ngOnChanges(changes) {
|
276
251
|
if ('disabled' in changes) {
|
277
252
|
this.buttons?.forEach((button) => button.updateDisabled());
|
@@ -337,23 +312,17 @@ class RdxToggleGroupDirective {
|
|
337
312
|
this.disabled = isDisabled;
|
338
313
|
this.buttons?.forEach((button) => button.updateDisabled());
|
339
314
|
}
|
340
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
341
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.
|
315
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxToggleGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
316
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxToggleGroupDirective, isStandalone: true, selector: "[rdxToggleGroup]", inputs: { value: "value", orientation: "orientation", disabled: ["disabled", "disabled", booleanAttribute], wrap: ["wrap", "wrap", booleanAttribute], valueChange: "valueChange" }, host: { attributes: { "role": "group" }, listeners: { "focusout": "onTouched?.()" }, properties: { "attr.data-orientation": "orientation" } }, providers: [
|
342
317
|
{ provide: RdxToggleGroupToken, useExisting: RdxToggleGroupDirective },
|
343
318
|
{ provide: NG_VALUE_ACCESSOR, useExisting: RdxToggleGroupDirective, multi: true }
|
344
|
-
], queries: [{ propertyName: "buttons", predicate: RdxToggleGroupButtonToken }], usesOnChanges: true,
|
319
|
+
], queries: [{ propertyName: "buttons", predicate: RdxToggleGroupButtonToken }], usesOnChanges: true, ngImport: i0 }); }
|
345
320
|
}
|
346
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxToggleGroupDirective, decorators: [{
|
347
322
|
type: Directive,
|
348
323
|
args: [{
|
349
324
|
selector: '[rdxToggleGroup]',
|
350
325
|
standalone: true,
|
351
|
-
hostDirectives: [
|
352
|
-
{
|
353
|
-
directive: RdxRovingFocusGroupDirective,
|
354
|
-
inputs: ['rdxRovingFocusGroupWrap:wrap', 'rdxRovingFocusGroupOrientation:orientation']
|
355
|
-
}
|
356
|
-
],
|
357
326
|
providers: [
|
358
327
|
{ provide: RdxToggleGroupToken, useExisting: RdxToggleGroupDirective },
|
359
328
|
{ provide: NG_VALUE_ACCESSOR, useExisting: RdxToggleGroupDirective, multi: true }
|