@radix-ng/primitives 0.21.0 → 0.22.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/compodoc/documentation.json +511 -335
- package/esm2022/tabs/index.mjs +3 -6
- package/esm2022/tabs/src/tabs-content.directive.mjs +14 -8
- package/esm2022/tabs/src/tabs-list.directive.mjs +9 -6
- package/esm2022/tabs/src/tabs-root.directive.mjs +40 -37
- package/esm2022/tabs/src/tabs-trigger.directive.mjs +43 -17
- package/esm2022/tabs/src/utils.mjs +7 -0
- package/esm2022/toggle/src/toggle.directive.mjs +3 -1
- package/esm2022/toggle-group/src/toggle-group-item.directive.mjs +4 -3
- package/fesm2022/radix-ng-primitives-tabs.mjs +109 -109
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +3 -2
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +2 -0
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/package.json +1 -1
- package/tabs/index.d.ts +0 -1
- package/tabs/src/tabs-content.directive.d.ts +6 -1
- package/tabs/src/tabs-list.directive.d.ts +6 -2
- package/tabs/src/tabs-root.directive.d.ts +25 -9
- package/tabs/src/tabs-trigger.directive.d.ts +13 -3
- package/tabs/src/utils.d.ts +2 -0
- package/toggle/src/toggle.directive.d.ts +2 -1
- package/esm2022/tabs/src/tabs-context.service.mjs +0 -43
- package/tabs/src/tabs-context.service.d.ts +0 -22
@@ -475,12 +475,12 @@
|
|
475
475
|
},
|
476
476
|
{
|
477
477
|
"name": "TabsListProps",
|
478
|
-
"id": "interface-TabsListProps-
|
478
|
+
"id": "interface-TabsListProps-34f2b628270e0cd2ad740157dcc9a9c43be8462624b2d5d420ebb7edf81a79327f8389c2a8cbfb256d599d06ba79bee10b1d879e5d63d01a710b87444fca33e2",
|
479
479
|
"file": "tabs/src/tabs-list.directive.ts",
|
480
480
|
"deprecated": false,
|
481
481
|
"deprecationMessage": "",
|
482
482
|
"type": "interface",
|
483
|
-
"sourceCode": "import { Directive, inject } from '@angular/core';\nimport {
|
483
|
+
"sourceCode": "import { Directive, inject } from '@angular/core';\nimport { RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';\nimport { RDX_TABS_ROOT_TOKEN } from './tabs-root.directive';\n\nexport interface 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 hostDirectives: [{ directive: RdxRovingFocusGroupDirective, inputs: ['dir', 'orientation', 'loop'] }],\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(RDX_TABS_ROOT_TOKEN);\n}\n",
|
484
484
|
"properties": [
|
485
485
|
{
|
486
486
|
"name": "loop",
|
@@ -500,12 +500,12 @@
|
|
500
500
|
},
|
501
501
|
{
|
502
502
|
"name": "TabsProps",
|
503
|
-
"id": "interface-TabsProps-
|
503
|
+
"id": "interface-TabsProps-baff198254363f5c320588a6b183d9d28b3c2d81a08ca674044b906fc214c2cb1405e91a11cefa6e656aaad448987ad4b828f83c6dbaff25334d0f8a5eb26ac9",
|
504
504
|
"file": "tabs/src/tabs-root.directive.ts",
|
505
505
|
"deprecated": false,
|
506
506
|
"deprecationMessage": "",
|
507
507
|
"type": "interface",
|
508
|
-
"sourceCode": "import { Directive,
|
508
|
+
"sourceCode": "import { Directive, InjectionToken, input, model, OnInit, output } from '@angular/core';\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\nexport type DataOrientation = 'vertical' | 'horizontal';\n\nexport const RDX_TABS_ROOT_TOKEN = new InjectionToken<RdxTabsRootDirective>('RdxTabsRootDirective');\n\n@Directive({\n selector: '[rdxTabsRoot]',\n standalone: true,\n providers: [\n { provide: RDX_TABS_ROOT_TOKEN, useExisting: RdxTabsRootDirective }],\n host: {\n '[attr.data-orientation]': 'orientation()',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxTabsRootDirective implements OnInit {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onValueChange`.\n */\n readonly value = model<string>();\n\n readonly defaultValue = input<string>();\n\n /**\n * When automatic, tabs are activated when receiving focus. When manual, tabs are activated when clicked.\n */\n readonly activationMode = input<'automatic' | 'manual'>('automatic');\n\n /**\n * The orientation of the component.\n */\n readonly orientation = input<DataOrientation>('horizontal');\n\n readonly dir = input<string>('ltr');\n\n /**\n * Event handler called when the value changes.\n */\n readonly onValueChange = output<string>();\n\n ngOnInit() {\n if (this.defaultValue()) {\n this.value.set(this.defaultValue());\n }\n }\n\n select(value: string) {\n this.value.set(value);\n this.onValueChange.emit(value);\n }\n\n /** @ignore */\n getBaseId() {\n return `tabs-${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n",
|
509
509
|
"properties": [
|
510
510
|
{
|
511
511
|
"name": "activationMode",
|
@@ -515,20 +515,20 @@
|
|
515
515
|
"indexKey": "",
|
516
516
|
"optional": true,
|
517
517
|
"description": "<p>Whether a tab is activated automatically or manually.</p>\n",
|
518
|
-
"line":
|
518
|
+
"line": 24,
|
519
519
|
"rawdescription": "\n\nWhether a tab is activated automatically or manually.\n",
|
520
520
|
"jsdoctags": [
|
521
521
|
{
|
522
|
-
"pos":
|
523
|
-
"end":
|
522
|
+
"pos": 766,
|
523
|
+
"end": 797,
|
524
524
|
"kind": 327,
|
525
525
|
"id": 0,
|
526
526
|
"flags": 16777216,
|
527
527
|
"modifierFlagsCache": 0,
|
528
528
|
"transformFlags": 0,
|
529
529
|
"tagName": {
|
530
|
-
"pos":
|
531
|
-
"end":
|
530
|
+
"pos": 767,
|
531
|
+
"end": 779,
|
532
532
|
"kind": 80,
|
533
533
|
"id": 0,
|
534
534
|
"flags": 16777216,
|
@@ -547,7 +547,7 @@
|
|
547
547
|
"indexKey": "",
|
548
548
|
"optional": true,
|
549
549
|
"description": "<p>The value of the tab to select by default, if uncontrolled</p>\n",
|
550
|
-
"line":
|
550
|
+
"line": 7,
|
551
551
|
"rawdescription": "\nThe value of the tab to select by default, if uncontrolled"
|
552
552
|
},
|
553
553
|
{
|
@@ -558,7 +558,7 @@
|
|
558
558
|
"indexKey": "",
|
559
559
|
"optional": true,
|
560
560
|
"description": "<p>The direction of navigation between toolbar items.</p>\n",
|
561
|
-
"line":
|
561
|
+
"line": 19,
|
562
562
|
"rawdescription": "\n\nThe direction of navigation between toolbar items.\n"
|
563
563
|
},
|
564
564
|
{
|
@@ -569,7 +569,7 @@
|
|
569
569
|
"indexKey": "",
|
570
570
|
"optional": true,
|
571
571
|
"description": "<p>A function called when a new tab is selected</p>\n",
|
572
|
-
"line":
|
572
|
+
"line": 9,
|
573
573
|
"rawdescription": "\nA function called when a new tab is selected"
|
574
574
|
},
|
575
575
|
{
|
@@ -580,20 +580,20 @@
|
|
580
580
|
"indexKey": "",
|
581
581
|
"optional": true,
|
582
582
|
"description": "<p>The orientation the tabs are layed out.\nMainly so arrow navigation is done accordingly (left & right vs. up & down)</p>\n",
|
583
|
-
"line":
|
583
|
+
"line": 15,
|
584
584
|
"rawdescription": "\n\nThe orientation the tabs are layed out.\nMainly so arrow navigation is done accordingly (left & right vs. up & down)\n",
|
585
585
|
"jsdoctags": [
|
586
586
|
{
|
587
|
-
"pos":
|
588
|
-
"end":
|
587
|
+
"pos": 539,
|
588
|
+
"end": 569,
|
589
589
|
"kind": 327,
|
590
590
|
"id": 0,
|
591
591
|
"flags": 16777216,
|
592
592
|
"modifierFlagsCache": 0,
|
593
593
|
"transformFlags": 0,
|
594
594
|
"tagName": {
|
595
|
-
"pos":
|
596
|
-
"end":
|
595
|
+
"pos": 540,
|
596
|
+
"end": 552,
|
597
597
|
"kind": 80,
|
598
598
|
"id": 0,
|
599
599
|
"flags": 16777216,
|
@@ -612,7 +612,7 @@
|
|
612
612
|
"indexKey": "",
|
613
613
|
"optional": true,
|
614
614
|
"description": "<p>The value for the selected tab, if controlled</p>\n",
|
615
|
-
"line":
|
615
|
+
"line": 5,
|
616
616
|
"rawdescription": "\nThe value for the selected tab, if controlled"
|
617
617
|
}
|
618
618
|
],
|
@@ -623,12 +623,12 @@
|
|
623
623
|
},
|
624
624
|
{
|
625
625
|
"name": "TabsTriggerProps",
|
626
|
-
"id": "interface-TabsTriggerProps-
|
626
|
+
"id": "interface-TabsTriggerProps-2783e0cafa5f228d4e6fe9e75f1f19161eb9e679712510d7cfe8d0d52c1197ffa5ad89c82845455dd1cb27b4a9881565648b1fac9047860443efbd16893ece00",
|
627
627
|
"file": "tabs/src/tabs-trigger.directive.ts",
|
628
628
|
"deprecated": false,
|
629
629
|
"deprecationMessage": "",
|
630
630
|
"type": "interface",
|
631
|
-
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, inject, input, InputSignalWithTransform } from '@angular/core';\nimport {
|
631
|
+
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, effect, inject, input, InputSignalWithTransform } from '@angular/core';\nimport { RdxRovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';\nimport { RDX_TABS_ROOT_TOKEN } from './tabs-root.directive';\nimport { makeContentId, makeTriggerId } from './utils';\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 hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable', 'active', 'allowShiftKey']\n }\n ],\n\n host: {\n type: 'button',\n role: 'tab',\n '[id]': 'triggerId()',\n '[attr.aria-selected]': 'isSelected()',\n '[attr.aria-controls]': 'contentId()',\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[disabled]': 'disabled()',\n '[attr.data-state]': \"isSelected() ? 'active' : 'inactive'\",\n '[attr.data-orientation]': 'tabsContext.orientation()',\n '(mousedown)': 'onMouseDown($event)',\n '(keydown)': 'onKeyDown($event)',\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxTabsTriggerDirective implements TabsTriggerProps {\n private readonly rdxRovingFocusItemDirective = inject(RdxRovingFocusItemDirective);\n\n protected readonly tabsContext = inject(RDX_TABS_ROOT_TOKEN);\n\n /**\n * A unique value that associates the trigger with a content.\n */\n readonly value = input.required<string>();\n\n /**\n * When true, prevents the user from interacting with the tab.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n protected readonly contentId = computed(() => makeContentId(this.tabsContext.getBaseId(), this.value()));\n protected readonly triggerId = computed(() => makeTriggerId(this.tabsContext.getBaseId(), this.value()));\n\n protected readonly isSelected = computed(() => this.tabsContext.value() === this.value());\n\n constructor() {\n effect(() => (this.rdxRovingFocusItemDirective.active = this.isSelected()));\n }\n\n protected onMouseDown(event: MouseEvent) {\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 (!this.disabled() && event.button === 0 && !event.ctrlKey) {\n this.tabsContext?.select(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?.select(this.value());\n }\n }\n\n protected onFocus() {\n const isAutomaticActivation = this.tabsContext.activationMode() !== 'manual';\n if (!this.isSelected() && !this.disabled() && isAutomaticActivation) {\n this.tabsContext?.select(this.value());\n }\n }\n}\n",
|
632
632
|
"properties": [
|
633
633
|
{
|
634
634
|
"name": "disabled",
|
@@ -638,7 +638,7 @@
|
|
638
638
|
"indexKey": "",
|
639
639
|
"optional": false,
|
640
640
|
"description": "",
|
641
|
-
"line":
|
641
|
+
"line": 9
|
642
642
|
}
|
643
643
|
],
|
644
644
|
"indexSignatures": [],
|
@@ -648,12 +648,12 @@
|
|
648
648
|
},
|
649
649
|
{
|
650
650
|
"name": "ToggleProps",
|
651
|
-
"id": "interface-ToggleProps-
|
651
|
+
"id": "interface-ToggleProps-596f9fc6c92b130f02431a3a95848dba07cc638e90f9f409ee44fdd2dae81e83ca3dbf2ed99f5057f3e8f9246fdf96ded627d14302f01544e9b9557e48dbb8b5",
|
652
652
|
"file": "toggle/src/toggle.directive.ts",
|
653
653
|
"deprecated": false,
|
654
654
|
"deprecationMessage": "",
|
655
655
|
"type": "interface",
|
656
|
-
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n forwardRef,\n input,\n model,\n output,\n OutputEmitterRef,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface ToggleProps {\n /**\n * The controlled state of the toggle.\n */\n pressed?: boolean;\n\n /**\n * The state of the toggle when initially rendered. Use `defaultPressed`\n * if you do not need to control the state of the toggle.\n * @defaultValue false\n */\n defaultPressed?: boolean;\n\n /**\n * The callback that fires when the state of the toggle changes.\n */\n onPressedChange?: OutputEmitterRef<boolean>;\n\n /**\n * Whether the toggle is disabled.\n * @defaultValue false\n */\n disabled?: boolean;\n}\n\nexport type DataState = 'on' | 'off';\n\nexport const TOGGLE_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdxToggleDirective),\n multi: true\n};\n\n@Directive({\n selector: '[rdxToggle]',\n exportAs: 'rdxToggle',\n standalone: true,\n providers: [TOGGLE_VALUE_ACCESSOR],\n host: {\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '[disabled]': 'disabledState()',\n\n '(click)': 'togglePressed()'\n }\n})\nexport class RdxToggleDirective implements ControlValueAccessor {\n /**\n * The pressed state of the toggle when it is initially rendered.\n * Use when you do not need to control its pressed state.\n */\n readonly defaultPressed = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The controlled pressed state of the toggle.\n * Must be used in conjunction with `onPressedChange`.\n */\n readonly pressed = model<boolean>(this.defaultPressed());\n\n /**\n * When true, prevents the user from interacting with the toggle.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly disabledState = computed(() => this.disabled() || this.accessorDisabled());\n\n protected readonly dataState = computed<DataState>(() => {\n return this.pressed() ? 'on' : 'off';\n });\n\n /**\n * Event handler called when the pressed state of the toggle changes.\n */\n readonly onPressedChange = output<boolean>();\n\n protected togglePressed(): void {\n if (!this.disabled()) {\n this.pressed.set(!this.pressed());\n this.onPressedChange.emit(this.pressed());\n }\n }\n\n private readonly accessorDisabled = signal(false);\n\n private onChange: (
|
656
|
+
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n forwardRef,\n input,\n model,\n output,\n OutputEmitterRef,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface ToggleProps {\n /**\n * The controlled state of the toggle.\n */\n pressed?: boolean;\n\n /**\n * The state of the toggle when initially rendered. Use `defaultPressed`\n * if you do not need to control the state of the toggle.\n * @defaultValue false\n */\n defaultPressed?: boolean;\n\n /**\n * The callback that fires when the state of the toggle changes.\n */\n onPressedChange?: OutputEmitterRef<boolean>;\n\n /**\n * Whether the toggle is disabled.\n * @defaultValue false\n */\n disabled?: boolean;\n}\n\nexport type DataState = 'on' | 'off';\n\nexport const TOGGLE_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdxToggleDirective),\n multi: true\n};\n\n@Directive({\n selector: '[rdxToggle]',\n exportAs: 'rdxToggle',\n standalone: true,\n providers: [TOGGLE_VALUE_ACCESSOR],\n host: {\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '[disabled]': 'disabledState()',\n\n '(click)': 'togglePressed()'\n }\n})\nexport class RdxToggleDirective implements ControlValueAccessor {\n /**\n * The pressed state of the toggle when it is initially rendered.\n * Use when you do not need to control its pressed state.\n */\n readonly defaultPressed = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The controlled pressed state of the toggle.\n * Must be used in conjunction with `onPressedChange`.\n */\n readonly pressed = model<boolean>(this.defaultPressed());\n\n /**\n * When true, prevents the user from interacting with the toggle.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly disabledState = computed(() => this.disabled() || this.accessorDisabled());\n\n protected readonly dataState = computed<DataState>(() => {\n return this.pressed() ? 'on' : 'off';\n });\n\n /**\n * Event handler called when the pressed state of the toggle changes.\n */\n readonly onPressedChange = output<boolean>();\n\n protected togglePressed(): void {\n if (!this.disabled()) {\n this.pressed.set(!this.pressed());\n this.onChange(this.pressed());\n this.onPressedChange.emit(this.pressed());\n }\n }\n\n private readonly accessorDisabled = signal(false);\n\n private onChange: (value: any) => void = () => {};\n /** @ignore */\n onTouched: (() => void) | undefined;\n\n /** @ignore */\n writeValue(value: any): void {\n this.pressed.set(value);\n }\n\n /** @ignore */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @ignore */\n setDisabledState(isDisabled: boolean): void {\n this.accessorDisabled.set(isDisabled);\n }\n}\n",
|
657
657
|
"properties": [
|
658
658
|
{
|
659
659
|
"name": "defaultPressed",
|
@@ -1040,200 +1040,6 @@
|
|
1040
1040
|
},
|
1041
1041
|
"extends": [],
|
1042
1042
|
"type": "injectable"
|
1043
|
-
},
|
1044
|
-
{
|
1045
|
-
"name": "RdxTabsContextService",
|
1046
|
-
"id": "injectable-RdxTabsContextService-829943bf2fa6ac0530d53f4c37a83b606a8e51880e754f4283d0008b4cec9b22f70caeb3286830d19ca67730a60d12a5d6262daf2e3a347fc8a0177117184abc",
|
1047
|
-
"file": "tabs/src/tabs-context.service.ts",
|
1048
|
-
"properties": [
|
1049
|
-
{
|
1050
|
-
"name": "activationMode$",
|
1051
|
-
"defaultValue": "computed(() => this.activationMode())",
|
1052
|
-
"deprecated": false,
|
1053
|
-
"deprecationMessage": "",
|
1054
|
-
"type": "",
|
1055
|
-
"indexKey": "",
|
1056
|
-
"optional": false,
|
1057
|
-
"description": "",
|
1058
|
-
"line": 18,
|
1059
|
-
"modifierKind": [
|
1060
|
-
148
|
1061
|
-
]
|
1062
|
-
},
|
1063
|
-
{
|
1064
|
-
"name": "dir$",
|
1065
|
-
"defaultValue": "computed(() => this.dir())",
|
1066
|
-
"deprecated": false,
|
1067
|
-
"deprecationMessage": "",
|
1068
|
-
"type": "",
|
1069
|
-
"indexKey": "",
|
1070
|
-
"optional": false,
|
1071
|
-
"description": "",
|
1072
|
-
"line": 17,
|
1073
|
-
"modifierKind": [
|
1074
|
-
148
|
1075
|
-
]
|
1076
|
-
},
|
1077
|
-
{
|
1078
|
-
"name": "orientation$",
|
1079
|
-
"defaultValue": "computed(() => this.orientation())",
|
1080
|
-
"deprecated": false,
|
1081
|
-
"deprecationMessage": "",
|
1082
|
-
"type": "",
|
1083
|
-
"indexKey": "",
|
1084
|
-
"optional": false,
|
1085
|
-
"description": "",
|
1086
|
-
"line": 16,
|
1087
|
-
"modifierKind": [
|
1088
|
-
148
|
1089
|
-
]
|
1090
|
-
},
|
1091
|
-
{
|
1092
|
-
"name": "value$",
|
1093
|
-
"defaultValue": "computed(() => this.value())",
|
1094
|
-
"deprecated": false,
|
1095
|
-
"deprecationMessage": "",
|
1096
|
-
"type": "",
|
1097
|
-
"indexKey": "",
|
1098
|
-
"optional": false,
|
1099
|
-
"description": "",
|
1100
|
-
"line": 15,
|
1101
|
-
"modifierKind": [
|
1102
|
-
148
|
1103
|
-
]
|
1104
|
-
}
|
1105
|
-
],
|
1106
|
-
"methods": [
|
1107
|
-
{
|
1108
|
-
"name": "getBaseId",
|
1109
|
-
"args": [],
|
1110
|
-
"optional": false,
|
1111
|
-
"returnType": "string",
|
1112
|
-
"typeParameters": [],
|
1113
|
-
"line": 36,
|
1114
|
-
"deprecated": false,
|
1115
|
-
"deprecationMessage": ""
|
1116
|
-
},
|
1117
|
-
{
|
1118
|
-
"name": "setActivationMode",
|
1119
|
-
"args": [
|
1120
|
-
{
|
1121
|
-
"name": "mode",
|
1122
|
-
"type": "string",
|
1123
|
-
"deprecated": false,
|
1124
|
-
"deprecationMessage": ""
|
1125
|
-
}
|
1126
|
-
],
|
1127
|
-
"optional": false,
|
1128
|
-
"returnType": "void",
|
1129
|
-
"typeParameters": [],
|
1130
|
-
"line": 32,
|
1131
|
-
"deprecated": false,
|
1132
|
-
"deprecationMessage": "",
|
1133
|
-
"jsdoctags": [
|
1134
|
-
{
|
1135
|
-
"name": "mode",
|
1136
|
-
"type": "string",
|
1137
|
-
"deprecated": false,
|
1138
|
-
"deprecationMessage": "",
|
1139
|
-
"tagName": {
|
1140
|
-
"text": "param"
|
1141
|
-
}
|
1142
|
-
}
|
1143
|
-
]
|
1144
|
-
},
|
1145
|
-
{
|
1146
|
-
"name": "setDir",
|
1147
|
-
"args": [
|
1148
|
-
{
|
1149
|
-
"name": "dir",
|
1150
|
-
"type": "string",
|
1151
|
-
"deprecated": false,
|
1152
|
-
"deprecationMessage": ""
|
1153
|
-
}
|
1154
|
-
],
|
1155
|
-
"optional": false,
|
1156
|
-
"returnType": "void",
|
1157
|
-
"typeParameters": [],
|
1158
|
-
"line": 28,
|
1159
|
-
"deprecated": false,
|
1160
|
-
"deprecationMessage": "",
|
1161
|
-
"jsdoctags": [
|
1162
|
-
{
|
1163
|
-
"name": "dir",
|
1164
|
-
"type": "string",
|
1165
|
-
"deprecated": false,
|
1166
|
-
"deprecationMessage": "",
|
1167
|
-
"tagName": {
|
1168
|
-
"text": "param"
|
1169
|
-
}
|
1170
|
-
}
|
1171
|
-
]
|
1172
|
-
},
|
1173
|
-
{
|
1174
|
-
"name": "setOrientation",
|
1175
|
-
"args": [
|
1176
|
-
{
|
1177
|
-
"name": "orientation",
|
1178
|
-
"type": "string",
|
1179
|
-
"deprecated": false,
|
1180
|
-
"deprecationMessage": ""
|
1181
|
-
}
|
1182
|
-
],
|
1183
|
-
"optional": false,
|
1184
|
-
"returnType": "void",
|
1185
|
-
"typeParameters": [],
|
1186
|
-
"line": 24,
|
1187
|
-
"deprecated": false,
|
1188
|
-
"deprecationMessage": "",
|
1189
|
-
"jsdoctags": [
|
1190
|
-
{
|
1191
|
-
"name": "orientation",
|
1192
|
-
"type": "string",
|
1193
|
-
"deprecated": false,
|
1194
|
-
"deprecationMessage": "",
|
1195
|
-
"tagName": {
|
1196
|
-
"text": "param"
|
1197
|
-
}
|
1198
|
-
}
|
1199
|
-
]
|
1200
|
-
},
|
1201
|
-
{
|
1202
|
-
"name": "setValue",
|
1203
|
-
"args": [
|
1204
|
-
{
|
1205
|
-
"name": "value",
|
1206
|
-
"type": "string",
|
1207
|
-
"deprecated": false,
|
1208
|
-
"deprecationMessage": ""
|
1209
|
-
}
|
1210
|
-
],
|
1211
|
-
"optional": false,
|
1212
|
-
"returnType": "void",
|
1213
|
-
"typeParameters": [],
|
1214
|
-
"line": 20,
|
1215
|
-
"deprecated": false,
|
1216
|
-
"deprecationMessage": "",
|
1217
|
-
"jsdoctags": [
|
1218
|
-
{
|
1219
|
-
"name": "value",
|
1220
|
-
"type": "string",
|
1221
|
-
"deprecated": false,
|
1222
|
-
"deprecationMessage": "",
|
1223
|
-
"tagName": {
|
1224
|
-
"text": "param"
|
1225
|
-
}
|
1226
|
-
}
|
1227
|
-
]
|
1228
|
-
}
|
1229
|
-
],
|
1230
|
-
"deprecated": false,
|
1231
|
-
"deprecationMessage": "",
|
1232
|
-
"description": "",
|
1233
|
-
"rawdescription": "\n",
|
1234
|
-
"sourceCode": "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",
|
1235
|
-
"extends": [],
|
1236
|
-
"type": "injectable"
|
1237
1043
|
}
|
1238
1044
|
],
|
1239
1045
|
"guards": [],
|
@@ -11498,12 +11304,12 @@
|
|
11498
11304
|
},
|
11499
11305
|
{
|
11500
11306
|
"name": "RdxTabsContentDirective",
|
11501
|
-
"id": "directive-RdxTabsContentDirective-
|
11307
|
+
"id": "directive-RdxTabsContentDirective-12e369dbb7e573ac327a76e4ddf2eedb215f5532e64bdabe12bc3458bddc54f7397f40b1ae2e7db2b6f3275308ddc7ca450a0d075c3e38618bece700e3e320fe",
|
11502
11308
|
"file": "tabs/src/tabs-content.directive.ts",
|
11503
11309
|
"type": "directive",
|
11504
11310
|
"description": "",
|
11505
11311
|
"rawdescription": "\n",
|
11506
|
-
"sourceCode": "import { computed, Directive, inject, input } from '@angular/core';\nimport {
|
11312
|
+
"sourceCode": "import { computed, Directive, inject, input } from '@angular/core';\nimport { RDX_TABS_ROOT_TOKEN } from './tabs-root.directive';\nimport { makeContentId, makeTriggerId } from './utils';\n\n@Directive({\n selector: '[rdxTabsContent]',\n standalone: true,\n host: {\n role: 'tabpanel',\n tabindex: '0',\n '[id]': 'contentId()',\n '[attr.aria-labelledby]': 'triggerId()',\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(RDX_TABS_ROOT_TOKEN);\n\n /**\n * A unique value that associates the content with a trigger.\n */\n readonly value = input.required<string>();\n\n protected readonly contentId = computed(() => makeContentId(this.tabsContext.getBaseId(), this.value()));\n protected readonly triggerId = computed(() => makeTriggerId(this.tabsContext.getBaseId(), this.value()));\n\n protected readonly selected = computed(() => this.tabsContext.value() === this.value());\n}\n",
|
11507
11313
|
"selector": "[rdxTabsContent]",
|
11508
11314
|
"providers": [],
|
11509
11315
|
"hostDirectives": [],
|
@@ -11516,8 +11322,9 @@
|
|
11516
11322
|
"type": "",
|
11517
11323
|
"indexKey": "",
|
11518
11324
|
"optional": false,
|
11519
|
-
"description": "",
|
11520
|
-
"line":
|
11325
|
+
"description": "<p>A unique value that associates the content with a trigger.</p>\n",
|
11326
|
+
"line": 24,
|
11327
|
+
"rawdescription": "\n\nA unique value that associates the content with a trigger.\n",
|
11521
11328
|
"modifierKind": [
|
11522
11329
|
148
|
11523
11330
|
],
|
@@ -11530,16 +11337,31 @@
|
|
11530
11337
|
"hostBindings": [],
|
11531
11338
|
"hostListeners": [],
|
11532
11339
|
"propertiesClass": [
|
11340
|
+
{
|
11341
|
+
"name": "contentId",
|
11342
|
+
"defaultValue": "computed(() => makeContentId(this.tabsContext.getBaseId(), this.value()))",
|
11343
|
+
"deprecated": false,
|
11344
|
+
"deprecationMessage": "",
|
11345
|
+
"type": "",
|
11346
|
+
"indexKey": "",
|
11347
|
+
"optional": false,
|
11348
|
+
"description": "",
|
11349
|
+
"line": 26,
|
11350
|
+
"modifierKind": [
|
11351
|
+
124,
|
11352
|
+
148
|
11353
|
+
]
|
11354
|
+
},
|
11533
11355
|
{
|
11534
11356
|
"name": "selected",
|
11535
|
-
"defaultValue": "computed(() => this.tabsContext.value
|
11357
|
+
"defaultValue": "computed(() => this.tabsContext.value() === this.value())",
|
11536
11358
|
"deprecated": false,
|
11537
11359
|
"deprecationMessage": "",
|
11538
11360
|
"type": "",
|
11539
11361
|
"indexKey": "",
|
11540
11362
|
"optional": false,
|
11541
11363
|
"description": "",
|
11542
|
-
"line":
|
11364
|
+
"line": 29,
|
11543
11365
|
"modifierKind": [
|
11544
11366
|
124,
|
11545
11367
|
148
|
@@ -11547,28 +11369,44 @@
|
|
11547
11369
|
},
|
11548
11370
|
{
|
11549
11371
|
"name": "tabsContext",
|
11550
|
-
"defaultValue": "inject(
|
11372
|
+
"defaultValue": "inject(RDX_TABS_ROOT_TOKEN)",
|
11551
11373
|
"deprecated": false,
|
11552
11374
|
"deprecationMessage": "",
|
11553
11375
|
"type": "",
|
11554
11376
|
"indexKey": "",
|
11555
11377
|
"optional": false,
|
11556
11378
|
"description": "",
|
11557
|
-
"line":
|
11379
|
+
"line": 19,
|
11558
11380
|
"modifierKind": [
|
11559
11381
|
124,
|
11560
11382
|
148
|
11561
11383
|
]
|
11562
11384
|
},
|
11563
11385
|
{
|
11564
|
-
"name": "
|
11386
|
+
"name": "triggerId",
|
11387
|
+
"defaultValue": "computed(() => makeTriggerId(this.tabsContext.getBaseId(), this.value()))",
|
11565
11388
|
"deprecated": false,
|
11566
11389
|
"deprecationMessage": "",
|
11567
11390
|
"type": "",
|
11568
11391
|
"indexKey": "",
|
11569
11392
|
"optional": false,
|
11570
11393
|
"description": "",
|
11571
|
-
"line":
|
11394
|
+
"line": 27,
|
11395
|
+
"modifierKind": [
|
11396
|
+
124,
|
11397
|
+
148
|
11398
|
+
]
|
11399
|
+
},
|
11400
|
+
{
|
11401
|
+
"name": "value",
|
11402
|
+
"deprecated": false,
|
11403
|
+
"deprecationMessage": "",
|
11404
|
+
"type": "",
|
11405
|
+
"indexKey": "",
|
11406
|
+
"optional": false,
|
11407
|
+
"description": "<p>A unique value that associates the content with a trigger.</p>\n",
|
11408
|
+
"line": 24,
|
11409
|
+
"rawdescription": "\n\nA unique value that associates the content with a trigger.\n",
|
11572
11410
|
"modifierKind": [
|
11573
11411
|
148
|
11574
11412
|
],
|
@@ -11580,15 +11418,25 @@
|
|
11580
11418
|
},
|
11581
11419
|
{
|
11582
11420
|
"name": "RdxTabsListDirective",
|
11583
|
-
"id": "directive-RdxTabsListDirective-
|
11421
|
+
"id": "directive-RdxTabsListDirective-34f2b628270e0cd2ad740157dcc9a9c43be8462624b2d5d420ebb7edf81a79327f8389c2a8cbfb256d599d06ba79bee10b1d879e5d63d01a710b87444fca33e2",
|
11584
11422
|
"file": "tabs/src/tabs-list.directive.ts",
|
11585
11423
|
"type": "directive",
|
11586
11424
|
"description": "",
|
11587
11425
|
"rawdescription": "\n",
|
11588
|
-
"sourceCode": "import { Directive, inject } from '@angular/core';\nimport {
|
11426
|
+
"sourceCode": "import { Directive, inject } from '@angular/core';\nimport { RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';\nimport { RDX_TABS_ROOT_TOKEN } from './tabs-root.directive';\n\nexport interface 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 hostDirectives: [{ directive: RdxRovingFocusGroupDirective, inputs: ['dir', 'orientation', 'loop'] }],\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(RDX_TABS_ROOT_TOKEN);\n}\n",
|
11589
11427
|
"selector": "[rdxTabsList]",
|
11590
11428
|
"providers": [],
|
11591
|
-
"hostDirectives": [
|
11429
|
+
"hostDirectives": [
|
11430
|
+
{
|
11431
|
+
"name": "RdxRovingFocusGroupDirective",
|
11432
|
+
"inputs": [
|
11433
|
+
"dir",
|
11434
|
+
"orientation",
|
11435
|
+
"loop"
|
11436
|
+
],
|
11437
|
+
"outputs": []
|
11438
|
+
}
|
11439
|
+
],
|
11592
11440
|
"standalone": true,
|
11593
11441
|
"inputsClass": [],
|
11594
11442
|
"outputsClass": [],
|
@@ -11599,14 +11447,14 @@
|
|
11599
11447
|
"propertiesClass": [
|
11600
11448
|
{
|
11601
11449
|
"name": "tabsContext",
|
11602
|
-
"defaultValue": "inject(
|
11450
|
+
"defaultValue": "inject(RDX_TABS_ROOT_TOKEN)",
|
11603
11451
|
"deprecated": false,
|
11604
11452
|
"deprecationMessage": "",
|
11605
11453
|
"type": "",
|
11606
11454
|
"indexKey": "",
|
11607
11455
|
"optional": false,
|
11608
11456
|
"description": "",
|
11609
|
-
"line":
|
11457
|
+
"line": 21,
|
11610
11458
|
"modifierKind": [
|
11611
11459
|
124,
|
11612
11460
|
148
|
@@ -11618,17 +11466,17 @@
|
|
11618
11466
|
},
|
11619
11467
|
{
|
11620
11468
|
"name": "RdxTabsRootDirective",
|
11621
|
-
"id": "directive-RdxTabsRootDirective-
|
11469
|
+
"id": "directive-RdxTabsRootDirective-baff198254363f5c320588a6b183d9d28b3c2d81a08ca674044b906fc214c2cb1405e91a11cefa6e656aaad448987ad4b828f83c6dbaff25334d0f8a5eb26ac9",
|
11622
11470
|
"file": "tabs/src/tabs-root.directive.ts",
|
11623
11471
|
"type": "directive",
|
11624
11472
|
"description": "",
|
11625
11473
|
"rawdescription": "\n",
|
11626
|
-
"sourceCode": "import { Directive,
|
11474
|
+
"sourceCode": "import { Directive, InjectionToken, input, model, OnInit, output } from '@angular/core';\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\nexport type DataOrientation = 'vertical' | 'horizontal';\n\nexport const RDX_TABS_ROOT_TOKEN = new InjectionToken<RdxTabsRootDirective>('RdxTabsRootDirective');\n\n@Directive({\n selector: '[rdxTabsRoot]',\n standalone: true,\n providers: [\n { provide: RDX_TABS_ROOT_TOKEN, useExisting: RdxTabsRootDirective }],\n host: {\n '[attr.data-orientation]': 'orientation()',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxTabsRootDirective implements OnInit {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onValueChange`.\n */\n readonly value = model<string>();\n\n readonly defaultValue = input<string>();\n\n /**\n * When automatic, tabs are activated when receiving focus. When manual, tabs are activated when clicked.\n */\n readonly activationMode = input<'automatic' | 'manual'>('automatic');\n\n /**\n * The orientation of the component.\n */\n readonly orientation = input<DataOrientation>('horizontal');\n\n readonly dir = input<string>('ltr');\n\n /**\n * Event handler called when the value changes.\n */\n readonly onValueChange = output<string>();\n\n ngOnInit() {\n if (this.defaultValue()) {\n this.value.set(this.defaultValue());\n }\n }\n\n select(value: string) {\n this.value.set(value);\n this.onValueChange.emit(value);\n }\n\n /** @ignore */\n getBaseId() {\n return `tabs-${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n",
|
11627
11475
|
"selector": "[rdxTabsRoot]",
|
11628
11476
|
"providers": [
|
11629
11477
|
{
|
11630
|
-
"name": "{ provide:
|
11631
|
-
"type": "
|
11478
|
+
"name": "{ provide: RDX_TABS_ROOT_TOKEN, useExisting: RdxTabsRootDirective }",
|
11479
|
+
"type": "directive"
|
11632
11480
|
}
|
11633
11481
|
],
|
11634
11482
|
"hostDirectives": [],
|
@@ -11638,76 +11486,183 @@
|
|
11638
11486
|
"name": "defaultValue",
|
11639
11487
|
"deprecated": false,
|
11640
11488
|
"deprecationMessage": "",
|
11641
|
-
"
|
11642
|
-
"
|
11643
|
-
"
|
11489
|
+
"type": "",
|
11490
|
+
"indexKey": "",
|
11491
|
+
"optional": false,
|
11492
|
+
"description": "",
|
11493
|
+
"line": 47,
|
11494
|
+
"modifierKind": [
|
11495
|
+
148
|
11496
|
+
],
|
11497
|
+
"required": false
|
11498
|
+
},
|
11499
|
+
{
|
11500
|
+
"name": "value",
|
11501
|
+
"deprecated": false,
|
11502
|
+
"deprecationMessage": "",
|
11503
|
+
"type": "",
|
11504
|
+
"indexKey": "",
|
11505
|
+
"optional": false,
|
11506
|
+
"description": "<p>The controlled value of the tab to activate. Should be used in conjunction with <code>onValueChange</code>.</p>\n",
|
11507
|
+
"line": 45,
|
11508
|
+
"rawdescription": "\n\nThe controlled value of the tab to activate. Should be used in conjunction with `onValueChange`.\n",
|
11509
|
+
"modifierKind": [
|
11510
|
+
148
|
11511
|
+
],
|
11512
|
+
"required": false
|
11513
|
+
}
|
11514
|
+
],
|
11515
|
+
"outputsClass": [],
|
11516
|
+
"deprecated": false,
|
11517
|
+
"deprecationMessage": "",
|
11518
|
+
"hostBindings": [],
|
11519
|
+
"hostListeners": [],
|
11520
|
+
"propertiesClass": [
|
11521
|
+
{
|
11522
|
+
"name": "activationMode",
|
11523
|
+
"defaultValue": "input<'automatic' | 'manual'>('automatic')",
|
11524
|
+
"deprecated": false,
|
11525
|
+
"deprecationMessage": "",
|
11526
|
+
"type": "",
|
11527
|
+
"indexKey": "",
|
11528
|
+
"optional": false,
|
11529
|
+
"description": "<p>When automatic, tabs are activated when receiving focus. When manual, tabs are activated when clicked.</p>\n",
|
11530
|
+
"line": 52,
|
11531
|
+
"rawdescription": "\n\nWhen automatic, tabs are activated when receiving focus. When manual, tabs are activated when clicked.\n",
|
11532
|
+
"modifierKind": [
|
11533
|
+
148
|
11534
|
+
]
|
11535
|
+
},
|
11536
|
+
{
|
11537
|
+
"name": "defaultValue",
|
11538
|
+
"deprecated": false,
|
11539
|
+
"deprecationMessage": "",
|
11540
|
+
"type": "",
|
11541
|
+
"indexKey": "",
|
11542
|
+
"optional": false,
|
11543
|
+
"description": "",
|
11544
|
+
"line": 47,
|
11545
|
+
"modifierKind": [
|
11546
|
+
148
|
11547
|
+
],
|
11548
|
+
"required": false
|
11644
11549
|
},
|
11645
11550
|
{
|
11646
11551
|
"name": "dir",
|
11552
|
+
"defaultValue": "input<string>('ltr')",
|
11647
11553
|
"deprecated": false,
|
11648
11554
|
"deprecationMessage": "",
|
11649
|
-
"
|
11650
|
-
"
|
11651
|
-
"
|
11555
|
+
"type": "",
|
11556
|
+
"indexKey": "",
|
11557
|
+
"optional": false,
|
11558
|
+
"description": "",
|
11559
|
+
"line": 59,
|
11560
|
+
"modifierKind": [
|
11561
|
+
148
|
11562
|
+
]
|
11563
|
+
},
|
11564
|
+
{
|
11565
|
+
"name": "onValueChange",
|
11566
|
+
"defaultValue": "output<string>()",
|
11567
|
+
"deprecated": false,
|
11568
|
+
"deprecationMessage": "",
|
11569
|
+
"type": "",
|
11570
|
+
"indexKey": "",
|
11571
|
+
"optional": false,
|
11572
|
+
"description": "<p>Event handler called when the value changes.</p>\n",
|
11573
|
+
"line": 64,
|
11574
|
+
"rawdescription": "\n\nEvent handler called when the value changes.\n",
|
11575
|
+
"modifierKind": [
|
11576
|
+
148
|
11577
|
+
]
|
11652
11578
|
},
|
11653
11579
|
{
|
11654
11580
|
"name": "orientation",
|
11655
|
-
"defaultValue": "'horizontal'",
|
11581
|
+
"defaultValue": "input<DataOrientation>('horizontal')",
|
11656
11582
|
"deprecated": false,
|
11657
11583
|
"deprecationMessage": "",
|
11658
|
-
"
|
11659
|
-
"
|
11660
|
-
"
|
11584
|
+
"type": "",
|
11585
|
+
"indexKey": "",
|
11586
|
+
"optional": false,
|
11587
|
+
"description": "<p>The orientation of the component.</p>\n",
|
11588
|
+
"line": 57,
|
11589
|
+
"rawdescription": "\n\nThe orientation of the component.\n",
|
11590
|
+
"modifierKind": [
|
11591
|
+
148
|
11592
|
+
]
|
11661
11593
|
},
|
11662
11594
|
{
|
11663
11595
|
"name": "value",
|
11664
11596
|
"deprecated": false,
|
11665
11597
|
"deprecationMessage": "",
|
11666
|
-
"
|
11667
|
-
"
|
11668
|
-
"
|
11598
|
+
"type": "",
|
11599
|
+
"indexKey": "",
|
11600
|
+
"optional": false,
|
11601
|
+
"description": "<p>The controlled value of the tab to activate. Should be used in conjunction with <code>onValueChange</code>.</p>\n",
|
11602
|
+
"line": 45,
|
11603
|
+
"rawdescription": "\n\nThe controlled value of the tab to activate. Should be used in conjunction with `onValueChange`.\n",
|
11604
|
+
"modifierKind": [
|
11605
|
+
148
|
11606
|
+
],
|
11607
|
+
"required": false
|
11669
11608
|
}
|
11670
11609
|
],
|
11671
|
-
"
|
11610
|
+
"methodsClass": [
|
11672
11611
|
{
|
11673
|
-
"name": "
|
11674
|
-
"
|
11612
|
+
"name": "select",
|
11613
|
+
"args": [
|
11614
|
+
{
|
11615
|
+
"name": "value",
|
11616
|
+
"type": "string",
|
11617
|
+
"deprecated": false,
|
11618
|
+
"deprecationMessage": ""
|
11619
|
+
}
|
11620
|
+
],
|
11621
|
+
"optional": false,
|
11622
|
+
"returnType": "void",
|
11623
|
+
"typeParameters": [],
|
11624
|
+
"line": 72,
|
11675
11625
|
"deprecated": false,
|
11676
11626
|
"deprecationMessage": "",
|
11677
|
-
"
|
11678
|
-
|
11627
|
+
"jsdoctags": [
|
11628
|
+
{
|
11629
|
+
"name": "value",
|
11630
|
+
"type": "string",
|
11631
|
+
"deprecated": false,
|
11632
|
+
"deprecationMessage": "",
|
11633
|
+
"tagName": {
|
11634
|
+
"text": "param"
|
11635
|
+
}
|
11636
|
+
}
|
11637
|
+
]
|
11679
11638
|
}
|
11680
11639
|
],
|
11681
|
-
"deprecated": false,
|
11682
|
-
"deprecationMessage": "",
|
11683
|
-
"hostBindings": [],
|
11684
|
-
"hostListeners": [],
|
11685
|
-
"propertiesClass": [],
|
11686
|
-
"methodsClass": [],
|
11687
11640
|
"extends": [],
|
11688
11641
|
"implements": [
|
11689
11642
|
"OnInit"
|
11690
|
-
]
|
11691
|
-
"constructorObj": {
|
11692
|
-
"name": "constructor",
|
11693
|
-
"description": "",
|
11694
|
-
"deprecated": false,
|
11695
|
-
"deprecationMessage": "",
|
11696
|
-
"args": [],
|
11697
|
-
"line": 46
|
11698
|
-
}
|
11643
|
+
]
|
11699
11644
|
},
|
11700
11645
|
{
|
11701
11646
|
"name": "RdxTabsTriggerDirective",
|
11702
|
-
"id": "directive-RdxTabsTriggerDirective-
|
11647
|
+
"id": "directive-RdxTabsTriggerDirective-2783e0cafa5f228d4e6fe9e75f1f19161eb9e679712510d7cfe8d0d52c1197ffa5ad89c82845455dd1cb27b4a9881565648b1fac9047860443efbd16893ece00",
|
11703
11648
|
"file": "tabs/src/tabs-trigger.directive.ts",
|
11704
11649
|
"type": "directive",
|
11705
11650
|
"description": "",
|
11706
11651
|
"rawdescription": "\n",
|
11707
|
-
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, inject, input, InputSignalWithTransform } from '@angular/core';\nimport {
|
11652
|
+
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, effect, inject, input, InputSignalWithTransform } from '@angular/core';\nimport { RdxRovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';\nimport { RDX_TABS_ROOT_TOKEN } from './tabs-root.directive';\nimport { makeContentId, makeTriggerId } from './utils';\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 hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable', 'active', 'allowShiftKey']\n }\n ],\n\n host: {\n type: 'button',\n role: 'tab',\n '[id]': 'triggerId()',\n '[attr.aria-selected]': 'isSelected()',\n '[attr.aria-controls]': 'contentId()',\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[disabled]': 'disabled()',\n '[attr.data-state]': \"isSelected() ? 'active' : 'inactive'\",\n '[attr.data-orientation]': 'tabsContext.orientation()',\n '(mousedown)': 'onMouseDown($event)',\n '(keydown)': 'onKeyDown($event)',\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxTabsTriggerDirective implements TabsTriggerProps {\n private readonly rdxRovingFocusItemDirective = inject(RdxRovingFocusItemDirective);\n\n protected readonly tabsContext = inject(RDX_TABS_ROOT_TOKEN);\n\n /**\n * A unique value that associates the trigger with a content.\n */\n readonly value = input.required<string>();\n\n /**\n * When true, prevents the user from interacting with the tab.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n protected readonly contentId = computed(() => makeContentId(this.tabsContext.getBaseId(), this.value()));\n protected readonly triggerId = computed(() => makeTriggerId(this.tabsContext.getBaseId(), this.value()));\n\n protected readonly isSelected = computed(() => this.tabsContext.value() === this.value());\n\n constructor() {\n effect(() => (this.rdxRovingFocusItemDirective.active = this.isSelected()));\n }\n\n protected onMouseDown(event: MouseEvent) {\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 (!this.disabled() && event.button === 0 && !event.ctrlKey) {\n this.tabsContext?.select(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?.select(this.value());\n }\n }\n\n protected onFocus() {\n const isAutomaticActivation = this.tabsContext.activationMode() !== 'manual';\n if (!this.isSelected() && !this.disabled() && isAutomaticActivation) {\n this.tabsContext?.select(this.value());\n }\n }\n}\n",
|
11708
11653
|
"selector": "[rdxTabsTrigger]",
|
11709
11654
|
"providers": [],
|
11710
|
-
"hostDirectives": [
|
11655
|
+
"hostDirectives": [
|
11656
|
+
{
|
11657
|
+
"name": "RdxRovingFocusItemDirective",
|
11658
|
+
"inputs": [
|
11659
|
+
"focusable",
|
11660
|
+
"active",
|
11661
|
+
"allowShiftKey"
|
11662
|
+
],
|
11663
|
+
"outputs": []
|
11664
|
+
}
|
11665
|
+
],
|
11711
11666
|
"standalone": true,
|
11712
11667
|
"inputsClass": [
|
11713
11668
|
{
|
@@ -11717,8 +11672,9 @@
|
|
11717
11672
|
"type": "",
|
11718
11673
|
"indexKey": "",
|
11719
11674
|
"optional": false,
|
11720
|
-
"description": "",
|
11721
|
-
"line":
|
11675
|
+
"description": "<p>A unique value that associates the trigger with a content.</p>\n",
|
11676
|
+
"line": 45,
|
11677
|
+
"rawdescription": "\n\nA unique value that associates the trigger with a content.\n",
|
11722
11678
|
"modifierKind": [
|
11723
11679
|
148
|
11724
11680
|
],
|
@@ -11733,14 +11689,14 @@
|
|
11733
11689
|
"propertiesClass": [
|
11734
11690
|
{
|
11735
11691
|
"name": "contentId",
|
11736
|
-
"defaultValue": "computed(() =>
|
11692
|
+
"defaultValue": "computed(() => makeContentId(this.tabsContext.getBaseId(), this.value()))",
|
11737
11693
|
"deprecated": false,
|
11738
11694
|
"deprecationMessage": "",
|
11739
11695
|
"type": "",
|
11740
11696
|
"indexKey": "",
|
11741
11697
|
"optional": false,
|
11742
11698
|
"description": "",
|
11743
|
-
"line":
|
11699
|
+
"line": 54,
|
11744
11700
|
"modifierKind": [
|
11745
11701
|
124,
|
11746
11702
|
148
|
@@ -11754,22 +11710,23 @@
|
|
11754
11710
|
"type": "",
|
11755
11711
|
"indexKey": "",
|
11756
11712
|
"optional": false,
|
11757
|
-
"description": "",
|
11758
|
-
"line":
|
11713
|
+
"description": "<p>When true, prevents the user from interacting with the tab.</p>\n",
|
11714
|
+
"line": 50,
|
11715
|
+
"rawdescription": "\n\nWhen true, prevents the user from interacting with the tab.\n",
|
11759
11716
|
"modifierKind": [
|
11760
11717
|
148
|
11761
11718
|
]
|
11762
11719
|
},
|
11763
11720
|
{
|
11764
|
-
"name": "
|
11765
|
-
"defaultValue": "computed(() => this.tabsContext.value
|
11721
|
+
"name": "isSelected",
|
11722
|
+
"defaultValue": "computed(() => this.tabsContext.value() === this.value())",
|
11766
11723
|
"deprecated": false,
|
11767
11724
|
"deprecationMessage": "",
|
11768
11725
|
"type": "",
|
11769
11726
|
"indexKey": "",
|
11770
11727
|
"optional": false,
|
11771
11728
|
"description": "",
|
11772
|
-
"line":
|
11729
|
+
"line": 57,
|
11773
11730
|
"modifierKind": [
|
11774
11731
|
124,
|
11775
11732
|
148
|
@@ -11777,14 +11734,14 @@
|
|
11777
11734
|
},
|
11778
11735
|
{
|
11779
11736
|
"name": "tabsContext",
|
11780
|
-
"defaultValue": "inject(
|
11737
|
+
"defaultValue": "inject(RDX_TABS_ROOT_TOKEN)",
|
11781
11738
|
"deprecated": false,
|
11782
11739
|
"deprecationMessage": "",
|
11783
11740
|
"type": "",
|
11784
11741
|
"indexKey": "",
|
11785
11742
|
"optional": false,
|
11786
11743
|
"description": "",
|
11787
|
-
"line":
|
11744
|
+
"line": 40,
|
11788
11745
|
"modifierKind": [
|
11789
11746
|
124,
|
11790
11747
|
148
|
@@ -11792,14 +11749,14 @@
|
|
11792
11749
|
},
|
11793
11750
|
{
|
11794
11751
|
"name": "triggerId",
|
11795
|
-
"defaultValue": "computed(() =>
|
11752
|
+
"defaultValue": "computed(() => makeTriggerId(this.tabsContext.getBaseId(), this.value()))",
|
11796
11753
|
"deprecated": false,
|
11797
11754
|
"deprecationMessage": "",
|
11798
11755
|
"type": "",
|
11799
11756
|
"indexKey": "",
|
11800
11757
|
"optional": false,
|
11801
11758
|
"description": "",
|
11802
|
-
"line":
|
11759
|
+
"line": 55,
|
11803
11760
|
"modifierKind": [
|
11804
11761
|
124,
|
11805
11762
|
148
|
@@ -11812,8 +11769,9 @@
|
|
11812
11769
|
"type": "",
|
11813
11770
|
"indexKey": "",
|
11814
11771
|
"optional": false,
|
11815
|
-
"description": "",
|
11816
|
-
"line":
|
11772
|
+
"description": "<p>A unique value that associates the trigger with a content.</p>\n",
|
11773
|
+
"line": 45,
|
11774
|
+
"rawdescription": "\n\nA unique value that associates the trigger with a content.\n",
|
11817
11775
|
"modifierKind": [
|
11818
11776
|
148
|
11819
11777
|
],
|
@@ -11821,6 +11779,19 @@
|
|
11821
11779
|
}
|
11822
11780
|
],
|
11823
11781
|
"methodsClass": [
|
11782
|
+
{
|
11783
|
+
"name": "onFocus",
|
11784
|
+
"args": [],
|
11785
|
+
"optional": false,
|
11786
|
+
"returnType": "void",
|
11787
|
+
"typeParameters": [],
|
11788
|
+
"line": 80,
|
11789
|
+
"deprecated": false,
|
11790
|
+
"deprecationMessage": "",
|
11791
|
+
"modifierKind": [
|
11792
|
+
124
|
11793
|
+
]
|
11794
|
+
},
|
11824
11795
|
{
|
11825
11796
|
"name": "onKeyDown",
|
11826
11797
|
"args": [
|
@@ -11834,7 +11805,7 @@
|
|
11834
11805
|
"optional": false,
|
11835
11806
|
"returnType": "void",
|
11836
11807
|
"typeParameters": [],
|
11837
|
-
"line":
|
11808
|
+
"line": 74,
|
11838
11809
|
"deprecated": false,
|
11839
11810
|
"deprecationMessage": "",
|
11840
11811
|
"modifierKind": [
|
@@ -11865,7 +11836,7 @@
|
|
11865
11836
|
"optional": false,
|
11866
11837
|
"returnType": "void",
|
11867
11838
|
"typeParameters": [],
|
11868
|
-
"line":
|
11839
|
+
"line": 63,
|
11869
11840
|
"deprecated": false,
|
11870
11841
|
"deprecationMessage": "",
|
11871
11842
|
"modifierKind": [
|
@@ -11887,16 +11858,24 @@
|
|
11887
11858
|
"extends": [],
|
11888
11859
|
"implements": [
|
11889
11860
|
"TabsTriggerProps"
|
11890
|
-
]
|
11861
|
+
],
|
11862
|
+
"constructorObj": {
|
11863
|
+
"name": "constructor",
|
11864
|
+
"description": "",
|
11865
|
+
"deprecated": false,
|
11866
|
+
"deprecationMessage": "",
|
11867
|
+
"args": [],
|
11868
|
+
"line": 57
|
11869
|
+
}
|
11891
11870
|
},
|
11892
11871
|
{
|
11893
11872
|
"name": "RdxToggleDirective",
|
11894
|
-
"id": "directive-RdxToggleDirective-
|
11873
|
+
"id": "directive-RdxToggleDirective-596f9fc6c92b130f02431a3a95848dba07cc638e90f9f409ee44fdd2dae81e83ca3dbf2ed99f5057f3e8f9246fdf96ded627d14302f01544e9b9557e48dbb8b5",
|
11895
11874
|
"file": "toggle/src/toggle.directive.ts",
|
11896
11875
|
"type": "directive",
|
11897
11876
|
"description": "",
|
11898
11877
|
"rawdescription": "\n",
|
11899
|
-
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n forwardRef,\n input,\n model,\n output,\n OutputEmitterRef,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface ToggleProps {\n /**\n * The controlled state of the toggle.\n */\n pressed?: boolean;\n\n /**\n * The state of the toggle when initially rendered. Use `defaultPressed`\n * if you do not need to control the state of the toggle.\n * @defaultValue false\n */\n defaultPressed?: boolean;\n\n /**\n * The callback that fires when the state of the toggle changes.\n */\n onPressedChange?: OutputEmitterRef<boolean>;\n\n /**\n * Whether the toggle is disabled.\n * @defaultValue false\n */\n disabled?: boolean;\n}\n\nexport type DataState = 'on' | 'off';\n\nexport const TOGGLE_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdxToggleDirective),\n multi: true\n};\n\n@Directive({\n selector: '[rdxToggle]',\n exportAs: 'rdxToggle',\n standalone: true,\n providers: [TOGGLE_VALUE_ACCESSOR],\n host: {\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '[disabled]': 'disabledState()',\n\n '(click)': 'togglePressed()'\n }\n})\nexport class RdxToggleDirective implements ControlValueAccessor {\n /**\n * The pressed state of the toggle when it is initially rendered.\n * Use when you do not need to control its pressed state.\n */\n readonly defaultPressed = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The controlled pressed state of the toggle.\n * Must be used in conjunction with `onPressedChange`.\n */\n readonly pressed = model<boolean>(this.defaultPressed());\n\n /**\n * When true, prevents the user from interacting with the toggle.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly disabledState = computed(() => this.disabled() || this.accessorDisabled());\n\n protected readonly dataState = computed<DataState>(() => {\n return this.pressed() ? 'on' : 'off';\n });\n\n /**\n * Event handler called when the pressed state of the toggle changes.\n */\n readonly onPressedChange = output<boolean>();\n\n protected togglePressed(): void {\n if (!this.disabled()) {\n this.pressed.set(!this.pressed());\n this.onPressedChange.emit(this.pressed());\n }\n }\n\n private readonly accessorDisabled = signal(false);\n\n private onChange: (
|
11878
|
+
"sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n forwardRef,\n input,\n model,\n output,\n OutputEmitterRef,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface ToggleProps {\n /**\n * The controlled state of the toggle.\n */\n pressed?: boolean;\n\n /**\n * The state of the toggle when initially rendered. Use `defaultPressed`\n * if you do not need to control the state of the toggle.\n * @defaultValue false\n */\n defaultPressed?: boolean;\n\n /**\n * The callback that fires when the state of the toggle changes.\n */\n onPressedChange?: OutputEmitterRef<boolean>;\n\n /**\n * Whether the toggle is disabled.\n * @defaultValue false\n */\n disabled?: boolean;\n}\n\nexport type DataState = 'on' | 'off';\n\nexport const TOGGLE_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdxToggleDirective),\n multi: true\n};\n\n@Directive({\n selector: '[rdxToggle]',\n exportAs: 'rdxToggle',\n standalone: true,\n providers: [TOGGLE_VALUE_ACCESSOR],\n host: {\n '[attr.aria-pressed]': 'pressed()',\n '[attr.data-state]': 'dataState()',\n '[attr.data-disabled]': 'disabledState() ? \"\" : undefined',\n '[disabled]': 'disabledState()',\n\n '(click)': 'togglePressed()'\n }\n})\nexport class RdxToggleDirective implements ControlValueAccessor {\n /**\n * The pressed state of the toggle when it is initially rendered.\n * Use when you do not need to control its pressed state.\n */\n readonly defaultPressed = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The controlled pressed state of the toggle.\n * Must be used in conjunction with `onPressedChange`.\n */\n readonly pressed = model<boolean>(this.defaultPressed());\n\n /**\n * When true, prevents the user from interacting with the toggle.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly disabledState = computed(() => this.disabled() || this.accessorDisabled());\n\n protected readonly dataState = computed<DataState>(() => {\n return this.pressed() ? 'on' : 'off';\n });\n\n /**\n * Event handler called when the pressed state of the toggle changes.\n */\n readonly onPressedChange = output<boolean>();\n\n protected togglePressed(): void {\n if (!this.disabled()) {\n this.pressed.set(!this.pressed());\n this.onChange(this.pressed());\n this.onPressedChange.emit(this.pressed());\n }\n }\n\n private readonly accessorDisabled = signal(false);\n\n private onChange: (value: any) => void = () => {};\n /** @ignore */\n onTouched: (() => void) | undefined;\n\n /** @ignore */\n writeValue(value: any): void {\n this.pressed.set(value);\n }\n\n /** @ignore */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @ignore */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @ignore */\n setDisabledState(isDisabled: boolean): void {\n this.accessorDisabled.set(isDisabled);\n }\n}\n",
|
11900
11879
|
"selector": "[rdxToggle]",
|
11901
11880
|
"providers": [
|
11902
11881
|
{
|
@@ -12250,12 +12229,12 @@
|
|
12250
12229
|
},
|
12251
12230
|
{
|
12252
12231
|
"name": "RdxToggleGroupItemDirective",
|
12253
|
-
"id": "directive-RdxToggleGroupItemDirective-
|
12232
|
+
"id": "directive-RdxToggleGroupItemDirective-eb9160aa46c41c750f811edfdf932366bed8f30158b87474f3e10310948fe89f855e701d3eea4f73adc9a5a228212677ec1e32b25ee9342457f4f742ca896a8a",
|
12254
12233
|
"file": "toggle-group/src/toggle-group-item.directive.ts",
|
12255
12234
|
"type": "directive",
|
12256
12235
|
"description": "",
|
12257
12236
|
"rawdescription": "\n",
|
12258
|
-
"sourceCode": "import { FocusableOption } from '@angular/cdk/a11y';\nimport { booleanAttribute, Directive, ElementRef, inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { RdxToggleGroupItemToken } from './toggle-group-item.token';\nimport { injectToggleGroup } from './toggle-group.token';\n\n@Directive({\n selector: '[rdxToggleGroupItem]',\n exportAs: 'rdxToggleGroupItem',\n standalone: true,\n providers: [{ provide: RdxToggleGroupItemToken, useExisting: RdxToggleGroupItemDirective }],\n host: {\n role: 'radio',\n '[attr.aria-checked]': 'checked',\n '[attr.aria-disabled]': 'disabled || toggleGroup.disabled',\n '[attr.aria-pressed]': 'undefined',\n\n '[attr.data-disabled]': 'disabled || toggleGroup.disabled',\n '[attr.data-state]': 'checked ? \"on\" : \"off\"',\n '[attr.data-orientation]': 'toggleGroup.orientation',\n\n '(click)': 'toggle()'\n }\n})\nexport class RdxToggleGroupItemDirective implements OnChanges, FocusableOption {\n /**\n * Access the toggle group.\n * @ignore\n */\n protected readonly toggleGroup = injectToggleGroup();\n\n private readonly elementRef = inject(ElementRef);\n /**\n * The value of this toggle button.\n */\n @Input({ required: true }) value!: string;\n\n /**\n * Whether this toggle button is disabled.\n * @default false\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Whether this toggle button is checked.\n */\n protected get checked(): boolean {\n return this.toggleGroup.isSelected(this.value);\n }\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges): void {\n if ('disabled' in changes) {\n // TODO\n }\n }\n\n /**\n * @ignore\n */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * @ignore\n */\n toggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.toggleGroup.toggle(this.value);\n }\n\n /**\n * Ensure the disabled state is propagated to the roving focus item.\n * @internal\n * @ignore\n */\n updateDisabled(): void {\n // TODO\n }\n}\n",
|
12237
|
+
"sourceCode": "import { FocusableOption } from '@angular/cdk/a11y';\nimport { booleanAttribute, Directive, ElementRef, inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { RdxToggleGroupItemToken } from './toggle-group-item.token';\nimport { injectToggleGroup } from './toggle-group.token';\n\n@Directive({\n selector: '[rdxToggleGroupItem]',\n exportAs: 'rdxToggleGroupItem',\n standalone: true,\n providers: [{ provide: RdxToggleGroupItemToken, useExisting: RdxToggleGroupItemDirective }],\n host: {\n role: 'radio',\n '[attr.aria-checked]': 'checked',\n '[attr.aria-disabled]': 'disabled || toggleGroup.disabled',\n '[attr.aria-pressed]': 'undefined',\n\n '[attr.data-disabled]': 'disabled || toggleGroup.disabled',\n '[attr.data-state]': 'checked ? \"on\" : \"off\"',\n '[attr.data-orientation]': 'toggleGroup.orientation',\n\n '(click)': 'toggle()',\n '(focus)': 'focus()'\n }\n})\nexport class RdxToggleGroupItemDirective implements OnChanges, FocusableOption {\n /**\n * Access the toggle group.\n * @ignore\n */\n protected readonly toggleGroup = injectToggleGroup();\n\n private readonly elementRef = inject(ElementRef);\n /**\n * The value of this toggle button.\n */\n @Input({ required: true }) value!: string;\n\n /**\n * Whether this toggle button is disabled.\n * @default false\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n /**\n * Whether this toggle button is checked.\n */\n protected get checked(): boolean {\n return this.toggleGroup.isSelected(this.value);\n }\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges): void {\n if ('disabled' in changes) {\n // TODO\n }\n }\n\n /**\n * @ignore\n */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * @ignore\n */\n toggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.toggleGroup.toggle(this.value);\n }\n\n /**\n * Ensure the disabled state is propagated to the roving focus item.\n * @internal\n * @ignore\n */\n updateDisabled(): void {\n // TODO\n }\n}\n",
|
12259
12238
|
"selector": "[rdxToggleGroupItem]",
|
12260
12239
|
"providers": [
|
12261
12240
|
{
|
@@ -12275,16 +12254,16 @@
|
|
12275
12254
|
"deprecationMessage": "",
|
12276
12255
|
"jsdoctags": [
|
12277
12256
|
{
|
12278
|
-
"pos":
|
12279
|
-
"end":
|
12257
|
+
"pos": 1369,
|
12258
|
+
"end": 1389,
|
12280
12259
|
"kind": 327,
|
12281
12260
|
"id": 0,
|
12282
12261
|
"flags": 16842752,
|
12283
12262
|
"modifierFlagsCache": 0,
|
12284
12263
|
"transformFlags": 0,
|
12285
12264
|
"tagName": {
|
12286
|
-
"pos":
|
12287
|
-
"end":
|
12265
|
+
"pos": 1370,
|
12266
|
+
"end": 1377,
|
12288
12267
|
"kind": 80,
|
12289
12268
|
"id": 0,
|
12290
12269
|
"flags": 16842752,
|
@@ -12296,7 +12275,7 @@
|
|
12296
12275
|
],
|
12297
12276
|
"rawdescription": "\n\nWhether this toggle button is disabled.\n",
|
12298
12277
|
"description": "<p>Whether this toggle button is disabled.</p>\n",
|
12299
|
-
"line":
|
12278
|
+
"line": 42,
|
12300
12279
|
"type": "boolean",
|
12301
12280
|
"decorators": []
|
12302
12281
|
},
|
@@ -12308,7 +12287,7 @@
|
|
12308
12287
|
"optional": false,
|
12309
12288
|
"rawdescription": "\n\nThe value of this toggle button.\n",
|
12310
12289
|
"description": "<p>The value of this toggle button.</p>\n",
|
12311
|
-
"line":
|
12290
|
+
"line": 36,
|
12312
12291
|
"type": "string",
|
12313
12292
|
"decorators": []
|
12314
12293
|
}
|
@@ -12332,7 +12311,7 @@
|
|
12332
12311
|
"name": "checked",
|
12333
12312
|
"type": "boolean",
|
12334
12313
|
"returnType": "boolean",
|
12335
|
-
"line":
|
12314
|
+
"line": 47,
|
12336
12315
|
"rawdescription": "\n\nWhether this toggle button is checked.\n",
|
12337
12316
|
"description": "<p>Whether this toggle button is checked.</p>\n"
|
12338
12317
|
}
|
@@ -18277,7 +18256,7 @@
|
|
18277
18256
|
},
|
18278
18257
|
{
|
18279
18258
|
"name": "ToggleButtonReactiveForms",
|
18280
|
-
"id": "component-ToggleButtonReactiveForms-
|
18259
|
+
"id": "component-ToggleButtonReactiveForms-2b068b48b004a9cfc3027da407d1bbb7152b8e45ec5033cb8d71bbf5b8ee144f39666aedc1e9d1523ec3a19affae81b556bb4d0fa7c2bbaaa2da3d66f3c02efa",
|
18281
18260
|
"file": "toggle/stories/toggle-forms.component.ts",
|
18282
18261
|
"encapsulation": [],
|
18283
18262
|
"entryComponents": [],
|
@@ -18287,7 +18266,7 @@
|
|
18287
18266
|
"selector": "toggle-reactive-forms",
|
18288
18267
|
"styleUrls": [],
|
18289
18268
|
"styles": [],
|
18290
|
-
"template": "<form [formGroup]=\"formGroup\">\n <button class=\"Toggle\" #toggle=\"rdxToggle\" formControlName=\"pressed\" rdxToggle aria-label=\"Toggle bold\">\n <input\n [name]=\"'toggleDef'\"\n [value]=\"toggle.pressed() ? 'on' : 'off'\"\n [required]=\"false\"\n rdxToggleVisuallyHiddenInput\n />\n @if (toggle.pressed()) {\n On\n } @else {\n Off\n }\n </button>\n</form>\n",
|
18269
|
+
"template": "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <button class=\"Toggle\" #toggle=\"rdxToggle\" formControlName=\"pressed\" rdxToggle aria-label=\"Toggle bold\">\n <input\n [name]=\"'toggleDef'\"\n [value]=\"toggle.pressed() ? 'on' : 'off'\"\n [required]=\"false\"\n rdxToggleVisuallyHiddenInput\n />\n @if (toggle.pressed()) {\n On\n } @else {\n Off\n }\n </button>\n\n <button class=\"Button violet\" style=\"margin-top: 8px;\" type=\"submit\">Submit</button>\n</form>\n",
|
18291
18270
|
"templateUrl": [],
|
18292
18271
|
"viewProviders": [],
|
18293
18272
|
"hostDirectives": [],
|
@@ -18302,10 +18281,21 @@
|
|
18302
18281
|
"indexKey": "",
|
18303
18282
|
"optional": false,
|
18304
18283
|
"description": "",
|
18305
|
-
"line":
|
18284
|
+
"line": 32
|
18285
|
+
}
|
18286
|
+
],
|
18287
|
+
"methodsClass": [
|
18288
|
+
{
|
18289
|
+
"name": "onSubmit",
|
18290
|
+
"args": [],
|
18291
|
+
"optional": false,
|
18292
|
+
"returnType": "void",
|
18293
|
+
"typeParameters": [],
|
18294
|
+
"line": 40,
|
18295
|
+
"deprecated": false,
|
18296
|
+
"deprecationMessage": ""
|
18306
18297
|
}
|
18307
18298
|
],
|
18308
|
-
"methodsClass": [],
|
18309
18299
|
"deprecated": false,
|
18310
18300
|
"deprecationMessage": "",
|
18311
18301
|
"hostBindings": [],
|
@@ -18328,7 +18318,7 @@
|
|
18328
18318
|
"description": "",
|
18329
18319
|
"rawdescription": "\n",
|
18330
18320
|
"type": "component",
|
18331
|
-
"sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { RdxToggleVisuallyHiddenInputDirective } from '../src/toggle-visually-hidden-input.directive';\nimport { RdxToggleDirective } from '../src/toggle.directive';\n\n@Component({\n selector: 'toggle-reactive-forms',\n standalone: true,\n imports: [ReactiveFormsModule, RdxToggleDirective, RdxToggleVisuallyHiddenInputDirective],\n styleUrl: 'toggle.styles.css',\n template: `\n <form [formGroup]=\"formGroup\">\n <button class=\"Toggle\" #toggle=\"rdxToggle\" formControlName=\"pressed\" rdxToggle aria-label=\"Toggle bold\">\n <input\n [name]=\"'toggleDef'\"\n [value]=\"toggle.pressed() ? 'on' : 'off'\"\n [required]=\"false\"\n rdxToggleVisuallyHiddenInput\n />\n @if (toggle.pressed()) {\n On\n } @else {\n Off\n }\n </button>\n </form>\n `\n})\nexport class ToggleButtonReactiveForms implements OnInit {\n formGroup!: FormGroup;\n\n ngOnInit() {\n this.formGroup = new FormGroup({\n pressed: new FormControl<boolean>(true)\n });\n }\n}\n",
|
18321
|
+
"sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { RdxToggleVisuallyHiddenInputDirective } from '../src/toggle-visually-hidden-input.directive';\nimport { RdxToggleDirective } from '../src/toggle.directive';\n\n@Component({\n selector: 'toggle-reactive-forms',\n standalone: true,\n imports: [ReactiveFormsModule, RdxToggleDirective, RdxToggleVisuallyHiddenInputDirective],\n styleUrl: 'toggle.styles.css',\n template: `\n <form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <button class=\"Toggle\" #toggle=\"rdxToggle\" formControlName=\"pressed\" rdxToggle aria-label=\"Toggle bold\">\n <input\n [name]=\"'toggleDef'\"\n [value]=\"toggle.pressed() ? 'on' : 'off'\"\n [required]=\"false\"\n rdxToggleVisuallyHiddenInput\n />\n @if (toggle.pressed()) {\n On\n } @else {\n Off\n }\n </button>\n\n <button class=\"Button violet\" style=\"margin-top: 8px;\" type=\"submit\">Submit</button>\n </form>\n `\n})\nexport class ToggleButtonReactiveForms implements OnInit {\n formGroup!: FormGroup;\n\n ngOnInit() {\n this.formGroup = new FormGroup({\n pressed: new FormControl<boolean>(true)\n });\n }\n\n onSubmit(): void {\n console.log(this.formGroup.value);\n }\n}\n",
|
18332
18322
|
"styleUrl": "toggle.styles.css",
|
18333
18323
|
"assetsDirs": [],
|
18334
18324
|
"styleUrlsData": "",
|
@@ -19516,21 +19506,17 @@
|
|
19516
19506
|
},
|
19517
19507
|
{
|
19518
19508
|
"name": "RdxTabsModule",
|
19519
|
-
"id": "module-RdxTabsModule-
|
19509
|
+
"id": "module-RdxTabsModule-826979bdde1e7e78b2d6bff7f31c2cf2a414d7265071c61f6b8913e6ea879aa978ddb3bac97938b13bafd44a40d74a754ebc201d36882becdc9e8d68fa4403de",
|
19520
19510
|
"description": "",
|
19521
19511
|
"deprecationMessage": "",
|
19522
19512
|
"deprecated": false,
|
19523
19513
|
"file": "tabs/index.ts",
|
19524
19514
|
"methods": [],
|
19525
|
-
"sourceCode": "import { NgModule } from '@angular/core';\nimport { RdxTabsContentDirective } from './src/tabs-content.directive';\nimport {
|
19515
|
+
"sourceCode": "import { NgModule } from '@angular/core';\nimport { RdxTabsContentDirective } from './src/tabs-content.directive';\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-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})\nexport class RdxTabsModule {}\n",
|
19526
19516
|
"children": [
|
19527
19517
|
{
|
19528
19518
|
"type": "providers",
|
19529
|
-
"elements": [
|
19530
|
-
{
|
19531
|
-
"name": "RdxTabsContextService"
|
19532
|
-
}
|
19533
|
-
]
|
19519
|
+
"elements": []
|
19534
19520
|
},
|
19535
19521
|
{
|
19536
19522
|
"type": "declarations",
|
@@ -20378,6 +20364,16 @@
|
|
20378
20364
|
"type": "",
|
20379
20365
|
"defaultValue": "new InjectionToken<RadioGroupDirective>('RdxRadioGroup')"
|
20380
20366
|
},
|
20367
|
+
{
|
20368
|
+
"name": "RDX_TABS_ROOT_TOKEN",
|
20369
|
+
"ctype": "miscellaneous",
|
20370
|
+
"subtype": "variable",
|
20371
|
+
"file": "tabs/src/tabs-root.directive.ts",
|
20372
|
+
"deprecated": false,
|
20373
|
+
"deprecationMessage": "",
|
20374
|
+
"type": "",
|
20375
|
+
"defaultValue": "new InjectionToken<RdxTabsRootDirective>('RdxTabsRootDirective')"
|
20376
|
+
},
|
20381
20377
|
{
|
20382
20378
|
"name": "RdxAccordionRootToken",
|
20383
20379
|
"ctype": "miscellaneous",
|
@@ -20618,16 +20614,6 @@
|
|
20618
20614
|
"type": "[]",
|
20619
20615
|
"defaultValue": "[\n RdxSwitchRootDirective,\n RdxSwitchInputDirective,\n RdxSwitchThumbDirective\n]"
|
20620
20616
|
},
|
20621
|
-
{
|
20622
|
-
"name": "TABS_CONTEXT_TOKEN",
|
20623
|
-
"ctype": "miscellaneous",
|
20624
|
-
"subtype": "variable",
|
20625
|
-
"file": "tabs/src/tabs-context.service.ts",
|
20626
|
-
"deprecated": false,
|
20627
|
-
"deprecationMessage": "",
|
20628
|
-
"type": "",
|
20629
|
-
"defaultValue": "new InjectionToken<RdxTabsContextService>('TabsContext')"
|
20630
|
-
},
|
20631
20617
|
{
|
20632
20618
|
"name": "tabsImports",
|
20633
20619
|
"ctype": "miscellaneous",
|
@@ -22860,6 +22846,88 @@
|
|
22860
22846
|
}
|
22861
22847
|
]
|
22862
22848
|
},
|
22849
|
+
{
|
22850
|
+
"name": "makeContentId",
|
22851
|
+
"file": "tabs/src/utils.ts",
|
22852
|
+
"ctype": "miscellaneous",
|
22853
|
+
"subtype": "function",
|
22854
|
+
"deprecated": false,
|
22855
|
+
"deprecationMessage": "",
|
22856
|
+
"description": "",
|
22857
|
+
"args": [
|
22858
|
+
{
|
22859
|
+
"name": "baseId",
|
22860
|
+
"type": "string",
|
22861
|
+
"deprecated": false,
|
22862
|
+
"deprecationMessage": ""
|
22863
|
+
},
|
22864
|
+
{
|
22865
|
+
"name": "value",
|
22866
|
+
"deprecated": false,
|
22867
|
+
"deprecationMessage": ""
|
22868
|
+
}
|
22869
|
+
],
|
22870
|
+
"jsdoctags": [
|
22871
|
+
{
|
22872
|
+
"name": "baseId",
|
22873
|
+
"type": "string",
|
22874
|
+
"deprecated": false,
|
22875
|
+
"deprecationMessage": "",
|
22876
|
+
"tagName": {
|
22877
|
+
"text": "param"
|
22878
|
+
}
|
22879
|
+
},
|
22880
|
+
{
|
22881
|
+
"name": "value",
|
22882
|
+
"deprecated": false,
|
22883
|
+
"deprecationMessage": "",
|
22884
|
+
"tagName": {
|
22885
|
+
"text": "param"
|
22886
|
+
}
|
22887
|
+
}
|
22888
|
+
]
|
22889
|
+
},
|
22890
|
+
{
|
22891
|
+
"name": "makeTriggerId",
|
22892
|
+
"file": "tabs/src/utils.ts",
|
22893
|
+
"ctype": "miscellaneous",
|
22894
|
+
"subtype": "function",
|
22895
|
+
"deprecated": false,
|
22896
|
+
"deprecationMessage": "",
|
22897
|
+
"description": "",
|
22898
|
+
"args": [
|
22899
|
+
{
|
22900
|
+
"name": "baseId",
|
22901
|
+
"type": "string",
|
22902
|
+
"deprecated": false,
|
22903
|
+
"deprecationMessage": ""
|
22904
|
+
},
|
22905
|
+
{
|
22906
|
+
"name": "value",
|
22907
|
+
"deprecated": false,
|
22908
|
+
"deprecationMessage": ""
|
22909
|
+
}
|
22910
|
+
],
|
22911
|
+
"jsdoctags": [
|
22912
|
+
{
|
22913
|
+
"name": "baseId",
|
22914
|
+
"type": "string",
|
22915
|
+
"deprecated": false,
|
22916
|
+
"deprecationMessage": "",
|
22917
|
+
"tagName": {
|
22918
|
+
"text": "param"
|
22919
|
+
}
|
22920
|
+
},
|
22921
|
+
{
|
22922
|
+
"name": "value",
|
22923
|
+
"deprecated": false,
|
22924
|
+
"deprecationMessage": "",
|
22925
|
+
"tagName": {
|
22926
|
+
"text": "param"
|
22927
|
+
}
|
22928
|
+
}
|
22929
|
+
]
|
22930
|
+
},
|
22863
22931
|
{
|
22864
22932
|
"name": "measureCollapsingElementDimensionPx",
|
22865
22933
|
"file": "presence/src/transitions/transition.collapse.ts",
|
@@ -23524,6 +23592,17 @@
|
|
23524
23592
|
"description": "",
|
23525
23593
|
"kind": 183
|
23526
23594
|
},
|
23595
|
+
{
|
23596
|
+
"name": "DataOrientation",
|
23597
|
+
"ctype": "miscellaneous",
|
23598
|
+
"subtype": "typealias",
|
23599
|
+
"rawtype": "\"vertical\" | \"horizontal\"",
|
23600
|
+
"file": "tabs/src/tabs-root.directive.ts",
|
23601
|
+
"deprecated": false,
|
23602
|
+
"deprecationMessage": "",
|
23603
|
+
"description": "",
|
23604
|
+
"kind": 192
|
23605
|
+
},
|
23527
23606
|
{
|
23528
23607
|
"name": "DataState",
|
23529
23608
|
"ctype": "miscellaneous",
|
@@ -25229,6 +25308,18 @@
|
|
25229
25308
|
"defaultValue": "new InjectionToken<RadioGroupDirective>('RdxRadioGroup')"
|
25230
25309
|
}
|
25231
25310
|
],
|
25311
|
+
"tabs/src/tabs-root.directive.ts": [
|
25312
|
+
{
|
25313
|
+
"name": "RDX_TABS_ROOT_TOKEN",
|
25314
|
+
"ctype": "miscellaneous",
|
25315
|
+
"subtype": "variable",
|
25316
|
+
"file": "tabs/src/tabs-root.directive.ts",
|
25317
|
+
"deprecated": false,
|
25318
|
+
"deprecationMessage": "",
|
25319
|
+
"type": "",
|
25320
|
+
"defaultValue": "new InjectionToken<RdxTabsRootDirective>('RdxTabsRootDirective')"
|
25321
|
+
}
|
25322
|
+
],
|
25232
25323
|
"checkbox/src/checkbox.token.ts": [
|
25233
25324
|
{
|
25234
25325
|
"name": "RdxCheckboxToken",
|
@@ -25397,18 +25488,6 @@
|
|
25397
25488
|
"defaultValue": "[\n RdxSwitchRootDirective,\n RdxSwitchInputDirective,\n RdxSwitchThumbDirective\n]"
|
25398
25489
|
}
|
25399
25490
|
],
|
25400
|
-
"tabs/src/tabs-context.service.ts": [
|
25401
|
-
{
|
25402
|
-
"name": "TABS_CONTEXT_TOKEN",
|
25403
|
-
"ctype": "miscellaneous",
|
25404
|
-
"subtype": "variable",
|
25405
|
-
"file": "tabs/src/tabs-context.service.ts",
|
25406
|
-
"deprecated": false,
|
25407
|
-
"deprecationMessage": "",
|
25408
|
-
"type": "",
|
25409
|
-
"defaultValue": "new InjectionToken<RdxTabsContextService>('TabsContext')"
|
25410
|
-
}
|
25411
|
-
],
|
25412
25491
|
"tabs/index.ts": [
|
25413
25492
|
{
|
25414
25493
|
"name": "tabsImports",
|
@@ -28016,6 +28095,90 @@
|
|
28016
28095
|
]
|
28017
28096
|
}
|
28018
28097
|
],
|
28098
|
+
"tabs/src/utils.ts": [
|
28099
|
+
{
|
28100
|
+
"name": "makeContentId",
|
28101
|
+
"file": "tabs/src/utils.ts",
|
28102
|
+
"ctype": "miscellaneous",
|
28103
|
+
"subtype": "function",
|
28104
|
+
"deprecated": false,
|
28105
|
+
"deprecationMessage": "",
|
28106
|
+
"description": "",
|
28107
|
+
"args": [
|
28108
|
+
{
|
28109
|
+
"name": "baseId",
|
28110
|
+
"type": "string",
|
28111
|
+
"deprecated": false,
|
28112
|
+
"deprecationMessage": ""
|
28113
|
+
},
|
28114
|
+
{
|
28115
|
+
"name": "value",
|
28116
|
+
"deprecated": false,
|
28117
|
+
"deprecationMessage": ""
|
28118
|
+
}
|
28119
|
+
],
|
28120
|
+
"jsdoctags": [
|
28121
|
+
{
|
28122
|
+
"name": "baseId",
|
28123
|
+
"type": "string",
|
28124
|
+
"deprecated": false,
|
28125
|
+
"deprecationMessage": "",
|
28126
|
+
"tagName": {
|
28127
|
+
"text": "param"
|
28128
|
+
}
|
28129
|
+
},
|
28130
|
+
{
|
28131
|
+
"name": "value",
|
28132
|
+
"deprecated": false,
|
28133
|
+
"deprecationMessage": "",
|
28134
|
+
"tagName": {
|
28135
|
+
"text": "param"
|
28136
|
+
}
|
28137
|
+
}
|
28138
|
+
]
|
28139
|
+
},
|
28140
|
+
{
|
28141
|
+
"name": "makeTriggerId",
|
28142
|
+
"file": "tabs/src/utils.ts",
|
28143
|
+
"ctype": "miscellaneous",
|
28144
|
+
"subtype": "function",
|
28145
|
+
"deprecated": false,
|
28146
|
+
"deprecationMessage": "",
|
28147
|
+
"description": "",
|
28148
|
+
"args": [
|
28149
|
+
{
|
28150
|
+
"name": "baseId",
|
28151
|
+
"type": "string",
|
28152
|
+
"deprecated": false,
|
28153
|
+
"deprecationMessage": ""
|
28154
|
+
},
|
28155
|
+
{
|
28156
|
+
"name": "value",
|
28157
|
+
"deprecated": false,
|
28158
|
+
"deprecationMessage": ""
|
28159
|
+
}
|
28160
|
+
],
|
28161
|
+
"jsdoctags": [
|
28162
|
+
{
|
28163
|
+
"name": "baseId",
|
28164
|
+
"type": "string",
|
28165
|
+
"deprecated": false,
|
28166
|
+
"deprecationMessage": "",
|
28167
|
+
"tagName": {
|
28168
|
+
"text": "param"
|
28169
|
+
}
|
28170
|
+
},
|
28171
|
+
{
|
28172
|
+
"name": "value",
|
28173
|
+
"deprecated": false,
|
28174
|
+
"deprecationMessage": "",
|
28175
|
+
"tagName": {
|
28176
|
+
"text": "param"
|
28177
|
+
}
|
28178
|
+
}
|
28179
|
+
]
|
28180
|
+
}
|
28181
|
+
],
|
28019
28182
|
"presence/src/transitions/transition.collapse.ts": [
|
28020
28183
|
{
|
28021
28184
|
"name": "measureCollapsingElementDimensionPx",
|
@@ -28691,6 +28854,19 @@
|
|
28691
28854
|
"kind": 193
|
28692
28855
|
}
|
28693
28856
|
],
|
28857
|
+
"tabs/src/tabs-root.directive.ts": [
|
28858
|
+
{
|
28859
|
+
"name": "DataOrientation",
|
28860
|
+
"ctype": "miscellaneous",
|
28861
|
+
"subtype": "typealias",
|
28862
|
+
"rawtype": "\"vertical\" | \"horizontal\"",
|
28863
|
+
"file": "tabs/src/tabs-root.directive.ts",
|
28864
|
+
"deprecated": false,
|
28865
|
+
"deprecationMessage": "",
|
28866
|
+
"description": "",
|
28867
|
+
"kind": 192
|
28868
|
+
}
|
28869
|
+
],
|
28694
28870
|
"toggle/src/toggle.directive.ts": [
|
28695
28871
|
{
|
28696
28872
|
"name": "DataState",
|