@radix-ng/primitives 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +35 -27
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +34 -34
  4. package/fesm2022/radix-ng-primitives-arrow.mjs +3 -3
  5. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +5 -4
  6. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-autocomplete.mjs +175 -125
  8. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
  9. package/fesm2022/radix-ng-primitives-avatar.mjs +25 -19
  10. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  11. package/fesm2022/radix-ng-primitives-button.mjs +11 -7
  12. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-calendar.mjs +140 -90
  14. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-checkbox.mjs +61 -40
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collapsible.mjs +35 -24
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-combobox.mjs +278 -177
  20. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-composite.mjs +76 -35
  22. package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-config.mjs +7 -5
  24. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-context-menu.mjs +48 -22
  26. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-core.mjs +44 -28
  28. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-cropper.mjs +73 -45
  30. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-date-field.mjs +70 -40
  32. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  33. package/fesm2022/radix-ng-primitives-dialog.mjs +93 -67
  34. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-direction-provider.mjs +5 -4
  36. package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -1
  37. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +20 -16
  38. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  39. package/fesm2022/radix-ng-primitives-drawer.mjs +107 -81
  40. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-editable.mjs +53 -39
  42. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  43. package/fesm2022/radix-ng-primitives-field.mjs +69 -42
  44. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-fieldset.mjs +8 -7
  46. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +77 -40
  48. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  50. package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -5
  51. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-form.mjs +25 -16
  53. package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-input.mjs +41 -22
  55. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-label.mjs +7 -5
  57. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-menu.mjs +274 -154
  59. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-menubar.mjs +35 -17
  61. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-meter.mjs +41 -30
  63. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +220 -183
  65. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-number-field.mjs +87 -59
  67. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-pagination.mjs +48 -38
  69. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-popover.mjs +150 -107
  71. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-popper.mjs +79 -47
  73. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-portal.mjs +20 -13
  75. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-presence.mjs +3 -3
  77. package/fesm2022/radix-ng-primitives-preview-card.mjs +119 -74
  78. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  79. package/fesm2022/radix-ng-primitives-progress.mjs +43 -31
  80. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  81. package/fesm2022/radix-ng-primitives-radio.mjs +177 -168
  82. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  83. package/fesm2022/radix-ng-primitives-scroll-area.mjs +54 -38
  84. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  85. package/fesm2022/radix-ng-primitives-select.mjs +595 -102
  86. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  87. package/fesm2022/radix-ng-primitives-separator.mjs +7 -5
  88. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  89. package/fesm2022/radix-ng-primitives-slider.mjs +101 -63
  90. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  91. package/fesm2022/radix-ng-primitives-stepper.mjs +53 -39
  92. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  93. package/fesm2022/radix-ng-primitives-switch.mjs +44 -25
  94. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  95. package/fesm2022/radix-ng-primitives-tabs.mjs +72 -47
  96. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  97. package/fesm2022/radix-ng-primitives-time-field.mjs +72 -41
  98. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  99. package/fesm2022/radix-ng-primitives-toast.mjs +75 -56
  100. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
  101. package/fesm2022/radix-ng-primitives-toggle-group.mjs +29 -19
  102. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  103. package/fesm2022/radix-ng-primitives-toggle.mjs +16 -11
  104. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  105. package/fesm2022/radix-ng-primitives-toolbar.mjs +38 -30
  106. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  107. package/fesm2022/radix-ng-primitives-tooltip.mjs +118 -63
  108. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  109. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -20
  110. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  111. package/package.json +2 -2
  112. package/types/radix-ng-primitives-autocomplete.d.ts +3 -1
  113. package/types/radix-ng-primitives-combobox.d.ts +28 -9
  114. package/types/radix-ng-primitives-composite.d.ts +2 -0
  115. package/types/radix-ng-primitives-context-menu.d.ts +2 -0
  116. package/types/radix-ng-primitives-dialog.d.ts +6 -3
  117. package/types/radix-ng-primitives-floating-focus-manager.d.ts +11 -0
  118. package/types/radix-ng-primitives-menu.d.ts +47 -15
  119. package/types/radix-ng-primitives-menubar.d.ts +6 -1
  120. package/types/radix-ng-primitives-navigation-menu.d.ts +8 -6
  121. package/types/radix-ng-primitives-popover.d.ts +12 -4
  122. package/types/radix-ng-primitives-preview-card.d.ts +18 -5
  123. package/types/radix-ng-primitives-radio.d.ts +100 -65
  124. package/types/radix-ng-primitives-select.d.ts +186 -391
  125. package/types/radix-ng-primitives-switch.d.ts +3 -2
  126. package/types/radix-ng-primitives-tooltip.d.ts +17 -3
@@ -22,7 +22,8 @@ class RdxToggle {
22
22
  /**
23
23
  * A value identifying this toggle inside a `[rdxToggleGroup]`. Required when used in a group.
24
24
  */
25
- this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
25
+ this.value = input(/* @ts-ignore */
26
+ ...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
26
27
  /**
27
28
  * The pressed state when initially rendered (uncontrolled, standalone only).
28
29
  *
@@ -32,7 +33,8 @@ class RdxToggle {
32
33
  /**
33
34
  * The controlled pressed state (standalone). Use with `(onPressedChange)` or two-way `[(pressed)]`.
34
35
  */
35
- this.pressed = model(undefined, ...(ngDevMode ? [{ debugName: "pressed" }] : /* istanbul ignore next */ []));
36
+ this.pressed = model(undefined, /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "pressed" }] : /* istanbul ignore next */ []));
36
38
  /**
37
39
  * Whether the toggle is disabled.
38
40
  *
@@ -48,7 +50,8 @@ class RdxToggle {
48
50
  this.nativeButton = input(true, { ...(ngDevMode ? { debugName: "nativeButton" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
49
51
  /** Event emitted when the pressed state changes (standalone). */
50
52
  this.onPressedChange = output();
51
- this.internalPressed = linkedSignal(() => this.pressed() ?? this.defaultPressed(), ...(ngDevMode ? [{ debugName: "internalPressed" }] : /* istanbul ignore next */ []));
53
+ this.internalPressed = linkedSignal(() => this.pressed() ?? this.defaultPressed(), /* @ts-ignore */
54
+ ...(ngDevMode ? [{ debugName: "internalPressed" }] : /* istanbul ignore next */ []));
52
55
  /** @ignore Whether the toggle is currently pressed (from the group when grouped). */
53
56
  this.pressedState = computed(() => {
54
57
  if (this.group) {
@@ -56,9 +59,11 @@ class RdxToggle {
56
59
  return value !== undefined && this.group.value().includes(value);
57
60
  }
58
61
  return this.internalPressed();
59
- }, ...(ngDevMode ? [{ debugName: "pressedState" }] : /* istanbul ignore next */ []));
62
+ }, /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "pressedState" }] : /* istanbul ignore next */ []));
60
64
  /** @ignore */
61
- this.isDisabled = computed(() => this.disabled() || (this.group?.disabled() ?? false), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
65
+ this.isDisabled = computed(() => this.disabled() || (this.group?.disabled() ?? false), /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
62
67
  effect(() => {
63
68
  if (this.group && this.value() === undefined && this.group.isValueInitialized()) {
64
69
  rdxDevWarning('toggle-group/missing-toggle-value', '`rdxToggle` is inside a toggle group but has no `value`. Add a stable `value` so the group can derive and update its pressed state.', 'components/toggle-group');
@@ -111,10 +116,10 @@ class RdxToggle {
111
116
  this.onClick(event);
112
117
  }
113
118
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxToggle, isStandalone: true, selector: "[rdxToggle]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultPressed: { classPropertyName: "defaultPressed", publicName: "defaultPressed", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, nativeButton: { classPropertyName: "nativeButton", publicName: "nativeButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressed: "pressedChange", onPressedChange: "onPressedChange" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.type": "nativeButton() ? \"button\" : undefined", "attr.role": "nativeButton() ? undefined : \"button\"", "attr.aria-pressed": "pressedState()", "attr.data-composite-item-active": "pressedState() ? \"\" : undefined", "attr.data-pressed": "pressedState() ? \"\" : undefined", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.disabled": "nativeButton() && isDisabled() ? \"\" : undefined", "attr.aria-disabled": "!nativeButton() && isDisabled() ? \"true\" : undefined" } }, exportAs: ["rdxToggle"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxToggle, isStandalone: true, selector: "[rdxToggle]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultPressed: { classPropertyName: "defaultPressed", publicName: "defaultPressed", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, nativeButton: { classPropertyName: "nativeButton", publicName: "nativeButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressed: "pressedChange", onPressedChange: "onPressedChange" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.type": "nativeButton() ? \"button\" : undefined", "attr.role": "nativeButton() ? undefined : \"button\"", "attr.aria-pressed": "pressedState()", "attr.data-composite-item-active": "pressedState() ? \"\" : undefined", "attr.data-pressed": "pressedState() ? \"\" : undefined", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.disabled": "nativeButton() && isDisabled() ? \"\" : undefined", "attr.aria-disabled": "!nativeButton() && isDisabled() ? \"true\" : undefined" } }, exportAs: ["rdxToggle"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
116
121
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToggle, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToggle, decorators: [{
118
123
  type: Directive,
119
124
  args: [{
120
125
  selector: '[rdxToggle]',
@@ -136,10 +141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
136
141
  }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultPressed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPressed", required: false }] }], pressed: [{ type: i0.Input, args: [{ isSignal: true, alias: "pressed", required: false }] }, { type: i0.Output, args: ["pressedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], nativeButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "nativeButton", required: false }] }], onPressedChange: [{ type: i0.Output, args: ["onPressedChange"] }] } });
137
142
 
138
143
  class RdxToggleVisuallyHiddenInputDirective {
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToggleVisuallyHiddenInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
140
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxToggleVisuallyHiddenInputDirective, isStandalone: true, selector: "input[rdxToggleVisuallyHiddenInput]", host: { attributes: { "type": "checkbox" } }, exportAs: ["rdxToggleVisuallyHiddenInput"], hostDirectives: [{ directive: i1$1.RdxVisuallyHiddenInputBubbleDirective, inputs: ["name", "name", "required", "required", "value", "value", "disabled", "disabled"] }], ngImport: i0 }); }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToggleVisuallyHiddenInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
145
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: RdxToggleVisuallyHiddenInputDirective, isStandalone: true, selector: "input[rdxToggleVisuallyHiddenInput]", host: { attributes: { "type": "checkbox" } }, exportAs: ["rdxToggleVisuallyHiddenInput"], hostDirectives: [{ directive: i1$1.RdxVisuallyHiddenInputBubbleDirective, inputs: ["name", "name", "required", "required", "value", "value", "disabled", "disabled"] }], ngImport: i0 }); }
141
146
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToggleVisuallyHiddenInputDirective, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToggleVisuallyHiddenInputDirective, decorators: [{
143
148
  type: Directive,
144
149
  args: [{
145
150
  selector: 'input[rdxToggleVisuallyHiddenInput]',
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-toggle.mjs","sources":["../../../packages/primitives/toggle/src/toggle.ts","../../../packages/primitives/toggle/src/toggle-visually-hidden-input.directive.ts","../../../packages/primitives/toggle/radix-ng-primitives-toggle.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output\n} from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport {\n BooleanInput,\n createCancelableChangeEventDetails,\n RdxCancelableChangeEventDetails,\n rdxDevWarning\n} from '@radix-ng/primitives/core';\nimport { injectToggleGroupContext } from '@radix-ng/primitives/toggle-group';\n\nexport type RdxTogglePressedChangeReason = 'none';\nexport type RdxTogglePressedChangeEventDetails = RdxCancelableChangeEventDetails<RdxTogglePressedChangeReason>;\n\nexport interface RdxTogglePressedChangeEvent {\n pressed: boolean;\n eventDetails: RdxTogglePressedChangeEventDetails;\n}\n\n/**\n * A two-state button that can be either on (pressed) or off.\n *\n * Works standalone or as an item of a `[rdxToggleGroup]`: inside a group it derives its pressed\n * state from the group's value (matched by `value`) and participates in the group's composite focus.\n *\n * @see https://base-ui.com/react/components/toggle\n */\n@Directive({\n selector: '[rdxToggle]',\n exportAs: 'rdxToggle',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.type]': 'nativeButton() ? \"button\" : undefined',\n '[attr.role]': 'nativeButton() ? undefined : \"button\"',\n '[attr.aria-pressed]': 'pressedState()',\n '[attr.data-composite-item-active]': 'pressedState() ? \"\" : undefined',\n '[attr.data-pressed]': 'pressedState() ? \"\" : undefined',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.disabled]': 'nativeButton() && isDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': '!nativeButton() && isDisabled() ? \"true\" : undefined',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class RdxToggle {\n private readonly group = injectToggleGroupContext(true);\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n\n /**\n * A value identifying this toggle inside a `[rdxToggleGroup]`. Required when used in a group.\n */\n readonly value = input<string>();\n\n /**\n * The pressed state when initially rendered (uncontrolled, standalone only).\n *\n * @default false\n */\n readonly defaultPressed = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The controlled pressed state (standalone). Use with `(onPressedChange)` or two-way `[(pressed)]`.\n */\n readonly pressed = model<boolean | undefined>(undefined);\n\n /**\n * Whether the toggle is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the host is a native `<button>`. When `false`, the toggle adds `role=\"button\"` and\n * handles Enter/Space itself.\n *\n * @default true\n */\n readonly nativeButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Event emitted when the pressed state changes (standalone). */\n readonly onPressedChange = output<RdxTogglePressedChangeEvent>();\n\n private readonly internalPressed = linkedSignal(() => this.pressed() ?? this.defaultPressed());\n\n /** @ignore Whether the toggle is currently pressed (from the group when grouped). */\n readonly pressedState = computed(() => {\n if (this.group) {\n const value = this.value();\n return value !== undefined && this.group.value().includes(value);\n }\n return this.internalPressed();\n });\n\n /** @ignore */\n readonly isDisabled = computed(() => this.disabled() || (this.group?.disabled() ?? false));\n\n constructor() {\n effect(() => {\n if (this.group && this.value() === undefined && this.group.isValueInitialized()) {\n rdxDevWarning(\n 'toggle-group/missing-toggle-value',\n '`rdxToggle` is inside a toggle group but has no `value`. Add a stable `value` so the group can derive and update its pressed state.',\n 'components/toggle-group'\n );\n }\n });\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.isDisabled(),\n focusableWhenDisabled: false,\n value: this.value()\n });\n });\n }\n\n /** @ignore */\n protected onClick(event?: Event): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.group) {\n const value = this.value();\n if (value !== undefined) {\n const next = !this.pressedState();\n const trigger = event?.currentTarget instanceof HTMLElement ? event.currentTarget : undefined;\n const { eventDetails } = createCancelableChangeEventDetails(\n 'none',\n event ?? new Event('toggle.pressed-change'),\n trigger\n );\n this.onPressedChange.emit({ pressed: next, eventDetails });\n if (eventDetails.isCanceled()) {\n return;\n }\n\n this.group.toggle(value, event, eventDetails);\n }\n return;\n }\n\n const next = !this.internalPressed();\n const trigger = event?.currentTarget instanceof HTMLElement ? event.currentTarget : undefined;\n const { eventDetails } = createCancelableChangeEventDetails(\n 'none',\n event ?? new Event('toggle.pressed-change'),\n trigger\n );\n this.onPressedChange.emit({ pressed: next, eventDetails });\n if (eventDetails.isCanceled()) {\n return;\n }\n\n this.internalPressed.set(next);\n this.pressed.set(next);\n }\n\n /** @ignore */\n protected onKeyDown(event: KeyboardEvent): void {\n if (this.nativeButton()) {\n return;\n }\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.onClick(event);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { RdxVisuallyHiddenInputBubbleDirective } from '@radix-ng/primitives/visually-hidden';\n\n@Directive({\n selector: 'input[rdxToggleVisuallyHiddenInput]',\n exportAs: 'rdxToggleVisuallyHiddenInput',\n hostDirectives: [\n {\n directive: RdxVisuallyHiddenInputBubbleDirective,\n inputs: ['name', 'required', 'value', 'disabled']\n }\n ],\n host: {\n type: 'checkbox'\n }\n})\nexport class RdxToggleVisuallyHiddenInputDirective {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-toggle.mjs","sources":["../../../packages/primitives/toggle/src/toggle.ts","../../../packages/primitives/toggle/src/toggle-visually-hidden-input.directive.ts","../../../packages/primitives/toggle/radix-ng-primitives-toggle.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output\n} from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport {\n BooleanInput,\n createCancelableChangeEventDetails,\n RdxCancelableChangeEventDetails,\n rdxDevWarning\n} from '@radix-ng/primitives/core';\nimport { injectToggleGroupContext } from '@radix-ng/primitives/toggle-group';\n\nexport type RdxTogglePressedChangeReason = 'none';\nexport type RdxTogglePressedChangeEventDetails = RdxCancelableChangeEventDetails<RdxTogglePressedChangeReason>;\n\nexport interface RdxTogglePressedChangeEvent {\n pressed: boolean;\n eventDetails: RdxTogglePressedChangeEventDetails;\n}\n\n/**\n * A two-state button that can be either on (pressed) or off.\n *\n * Works standalone or as an item of a `[rdxToggleGroup]`: inside a group it derives its pressed\n * state from the group's value (matched by `value`) and participates in the group's composite focus.\n *\n * @see https://base-ui.com/react/components/toggle\n */\n@Directive({\n selector: '[rdxToggle]',\n exportAs: 'rdxToggle',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.type]': 'nativeButton() ? \"button\" : undefined',\n '[attr.role]': 'nativeButton() ? undefined : \"button\"',\n '[attr.aria-pressed]': 'pressedState()',\n '[attr.data-composite-item-active]': 'pressedState() ? \"\" : undefined',\n '[attr.data-pressed]': 'pressedState() ? \"\" : undefined',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.disabled]': 'nativeButton() && isDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': '!nativeButton() && isDisabled() ? \"true\" : undefined',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class RdxToggle {\n private readonly group = injectToggleGroupContext(true);\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n\n /**\n * A value identifying this toggle inside a `[rdxToggleGroup]`. Required when used in a group.\n */\n readonly value = input<string>();\n\n /**\n * The pressed state when initially rendered (uncontrolled, standalone only).\n *\n * @default false\n */\n readonly defaultPressed = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The controlled pressed state (standalone). Use with `(onPressedChange)` or two-way `[(pressed)]`.\n */\n readonly pressed = model<boolean | undefined>(undefined);\n\n /**\n * Whether the toggle is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the host is a native `<button>`. When `false`, the toggle adds `role=\"button\"` and\n * handles Enter/Space itself.\n *\n * @default true\n */\n readonly nativeButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Event emitted when the pressed state changes (standalone). */\n readonly onPressedChange = output<RdxTogglePressedChangeEvent>();\n\n private readonly internalPressed = linkedSignal(() => this.pressed() ?? this.defaultPressed());\n\n /** @ignore Whether the toggle is currently pressed (from the group when grouped). */\n readonly pressedState = computed(() => {\n if (this.group) {\n const value = this.value();\n return value !== undefined && this.group.value().includes(value);\n }\n return this.internalPressed();\n });\n\n /** @ignore */\n readonly isDisabled = computed(() => this.disabled() || (this.group?.disabled() ?? false));\n\n constructor() {\n effect(() => {\n if (this.group && this.value() === undefined && this.group.isValueInitialized()) {\n rdxDevWarning(\n 'toggle-group/missing-toggle-value',\n '`rdxToggle` is inside a toggle group but has no `value`. Add a stable `value` so the group can derive and update its pressed state.',\n 'components/toggle-group'\n );\n }\n });\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.isDisabled(),\n focusableWhenDisabled: false,\n value: this.value()\n });\n });\n }\n\n /** @ignore */\n protected onClick(event?: Event): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.group) {\n const value = this.value();\n if (value !== undefined) {\n const next = !this.pressedState();\n const trigger = event?.currentTarget instanceof HTMLElement ? event.currentTarget : undefined;\n const { eventDetails } = createCancelableChangeEventDetails(\n 'none',\n event ?? new Event('toggle.pressed-change'),\n trigger\n );\n this.onPressedChange.emit({ pressed: next, eventDetails });\n if (eventDetails.isCanceled()) {\n return;\n }\n\n this.group.toggle(value, event, eventDetails);\n }\n return;\n }\n\n const next = !this.internalPressed();\n const trigger = event?.currentTarget instanceof HTMLElement ? event.currentTarget : undefined;\n const { eventDetails } = createCancelableChangeEventDetails(\n 'none',\n event ?? new Event('toggle.pressed-change'),\n trigger\n );\n this.onPressedChange.emit({ pressed: next, eventDetails });\n if (eventDetails.isCanceled()) {\n return;\n }\n\n this.internalPressed.set(next);\n this.pressed.set(next);\n }\n\n /** @ignore */\n protected onKeyDown(event: KeyboardEvent): void {\n if (this.nativeButton()) {\n return;\n }\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.onClick(event);\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { RdxVisuallyHiddenInputBubbleDirective } from '@radix-ng/primitives/visually-hidden';\n\n@Directive({\n selector: 'input[rdxToggleVisuallyHiddenInput]',\n exportAs: 'rdxToggleVisuallyHiddenInput',\n hostDirectives: [\n {\n directive: RdxVisuallyHiddenInputBubbleDirective,\n inputs: ['name', 'required', 'value', 'disabled']\n }\n ],\n host: {\n type: 'checkbox'\n }\n})\nexport class RdxToggleVisuallyHiddenInputDirective {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -41,7 +41,8 @@ class RdxToolbarButton {
41
41
  */
42
42
  this.nativeButton = input(true, { ...(ngDevMode ? { debugName: "nativeButton" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
43
43
  /** @ignore Effective disabled state, combining the button, group and toolbar. */
44
- this.isDisabled = computed(() => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
44
+ this.isDisabled = computed(() => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled(), /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
45
46
  effect(() => {
46
47
  this.compositeItem.setMetadata({
47
48
  disabled: this.isDisabled(),
@@ -56,10 +57,10 @@ class RdxToolbarButton {
56
57
  event.stopImmediatePropagation();
57
58
  }
58
59
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxToolbarButton, isStandalone: true, selector: "[rdxToolbarButton]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focusableWhenDisabled: { classPropertyName: "focusableWhenDisabled", publicName: "focusableWhenDisabled", isSignal: true, isRequired: false, transformFunction: null }, nativeButton: { classPropertyName: "nativeButton", publicName: "nativeButton", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.type": "nativeButton() ? \"button\" : undefined", "attr.role": "nativeButton() ? undefined : \"button\"", "attr.data-orientation": "rootContext.orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.data-focusable": "focusableWhenDisabled() ? \"\" : undefined", "attr.aria-disabled": "isDisabled() ? \"true\" : undefined", "attr.disabled": "isDisabled() && !focusableWhenDisabled() ? \"\" : undefined" } }, exportAs: ["rdxToolbarButton"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxToolbarButton, isStandalone: true, selector: "[rdxToolbarButton]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focusableWhenDisabled: { classPropertyName: "focusableWhenDisabled", publicName: "focusableWhenDisabled", isSignal: true, isRequired: false, transformFunction: null }, nativeButton: { classPropertyName: "nativeButton", publicName: "nativeButton", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.type": "nativeButton() ? \"button\" : undefined", "attr.role": "nativeButton() ? undefined : \"button\"", "attr.data-orientation": "rootContext.orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.data-focusable": "focusableWhenDisabled() ? \"\" : undefined", "attr.aria-disabled": "isDisabled() ? \"true\" : undefined", "attr.disabled": "isDisabled() && !focusableWhenDisabled() ? \"\" : undefined" } }, exportAs: ["rdxToolbarButton"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
61
62
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarButton, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarButton, decorators: [{
63
64
  type: Directive,
64
65
  args: [{
65
66
  selector: '[rdxToolbarButton]',
@@ -97,12 +98,13 @@ class RdxToolbarGroup {
97
98
  */
98
99
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
99
100
  /** @ignore Effective disabled state, combining the group and the toolbar. */
100
- this.isDisabled = computed(() => this.disabled() || this.rootContext.disabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
101
+ this.isDisabled = computed(() => this.disabled() || this.rootContext.disabled(), /* @ts-ignore */
102
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
101
103
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
103
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxToolbarGroup, isStandalone: true, selector: "[rdxToolbarGroup]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "attr.data-orientation": "rootContext.orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined" } }, providers: [provideToolbarGroupContext(groupContext)], exportAs: ["rdxToolbarGroup"], ngImport: i0 }); }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
105
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxToolbarGroup, isStandalone: true, selector: "[rdxToolbarGroup]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "attr.data-orientation": "rootContext.orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined" } }, providers: [provideToolbarGroupContext(groupContext)], exportAs: ["rdxToolbarGroup"], ngImport: i0 }); }
104
106
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarGroup, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarGroup, decorators: [{
106
108
  type: Directive,
107
109
  args: [{
108
110
  selector: '[rdxToolbarGroup]',
@@ -131,7 +133,8 @@ class RdxToolbarInput {
131
133
  this.elementRef = inject(ElementRef);
132
134
  this.isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
133
135
  /** The initial value of the uncontrolled input. */
134
- this.defaultValue = input(...(ngDevMode ? [undefined, { debugName: "defaultValue" }] : /* istanbul ignore next */ []));
136
+ this.defaultValue = input(/* @ts-ignore */
137
+ ...(ngDevMode ? [undefined, { debugName: "defaultValue" }] : /* istanbul ignore next */ []));
135
138
  /**
136
139
  * Whether the input is disabled.
137
140
  *
@@ -145,7 +148,8 @@ class RdxToolbarInput {
145
148
  */
146
149
  this.focusableWhenDisabled = input(true, { ...(ngDevMode ? { debugName: "focusableWhenDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
147
150
  /** @ignore */
148
- this.isDisabled = computed(() => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
151
+ this.isDisabled = computed(() => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled(), /* @ts-ignore */
152
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
149
153
  this.appliedDefault = false;
150
154
  effect(() => {
151
155
  this.compositeItem.setMetadata({
@@ -209,10 +213,10 @@ class RdxToolbarInput {
209
213
  event.stopImmediatePropagation();
210
214
  }
211
215
  }
212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
213
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxToolbarInput, isStandalone: true, selector: "input[rdxToolbarInput]", inputs: { defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focusableWhenDisabled: { classPropertyName: "focusableWhenDisabled", publicName: "focusableWhenDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-orientation": "rootContext.orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.data-focusable": "focusableWhenDisabled() ? \"\" : undefined", "attr.aria-disabled": "isDisabled() ? \"true\" : undefined", "disabled": "isDisabled() && !focusableWhenDisabled()" } }, exportAs: ["rdxToolbarInput"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
217
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxToolbarInput, isStandalone: true, selector: "input[rdxToolbarInput]", inputs: { defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focusableWhenDisabled: { classPropertyName: "focusableWhenDisabled", publicName: "focusableWhenDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-orientation": "rootContext.orientation()", "attr.data-disabled": "isDisabled() ? \"\" : undefined", "attr.data-focusable": "focusableWhenDisabled() ? \"\" : undefined", "attr.aria-disabled": "isDisabled() ? \"true\" : undefined", "disabled": "isDisabled() && !focusableWhenDisabled()" } }, exportAs: ["rdxToolbarInput"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
214
218
  }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarInput, decorators: [{
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarInput, decorators: [{
216
220
  type: Directive,
217
221
  args: [{
218
222
  selector: 'input[rdxToolbarInput]',
@@ -243,10 +247,10 @@ class RdxToolbarLink {
243
247
  this.compositeItem = inject(RdxCompositeItem, { self: true });
244
248
  this.compositeItem.setMetadata(TOOLBAR_LINK_METADATA);
245
249
  }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
247
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxToolbarLink, isStandalone: true, selector: "[rdxToolbarLink]", host: { properties: { "attr.data-orientation": "rootContext.orientation()" } }, exportAs: ["rdxToolbarLink"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
251
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: RdxToolbarLink, isStandalone: true, selector: "[rdxToolbarLink]", host: { properties: { "attr.data-orientation": "rootContext.orientation()" } }, exportAs: ["rdxToolbarLink"], hostDirectives: [{ directive: i1.RdxCompositeItem }], ngImport: i0 }); }
248
252
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarLink, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarLink, decorators: [{
250
254
  type: Directive,
251
255
  args: [{
252
256
  selector: '[rdxToolbarLink]',
@@ -278,7 +282,8 @@ class RdxToolbarRoot {
278
282
  *
279
283
  * @default 'horizontal'
280
284
  */
281
- this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
285
+ this.orientation = input('horizontal', /* @ts-ignore */
286
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
282
287
  /** Text direction for arrow-key navigation. */
283
288
  this.dirInput = input(undefined, { ...(ngDevMode ? { debugName: "dirInput" } : /* istanbul ignore next */ {}), alias: 'dir' });
284
289
  this.dir = injectDirection(this.dirInput);
@@ -295,10 +300,12 @@ class RdxToolbarRoot {
295
300
  */
296
301
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
297
302
  this.compositeRoot = inject(RdxCompositeRoot, { self: true });
298
- this.itemMetadata = computed(() => Array.from(this.compositeRoot.itemMap().values()).filter(isToolbarItemMetadata), ...(ngDevMode ? [{ debugName: "itemMetadata" }] : /* istanbul ignore next */ []));
303
+ this.itemMetadata = computed(() => Array.from(this.compositeRoot.itemMap().values()).filter(isToolbarItemMetadata), /* @ts-ignore */
304
+ ...(ngDevMode ? [{ debugName: "itemMetadata" }] : /* istanbul ignore next */ []));
299
305
  this.disabledIndices = computed(() => this.itemMetadata()
300
306
  .filter((metadata) => metadata.disabled && !metadata.focusableWhenDisabled)
301
- .map((metadata) => metadata.index), ...(ngDevMode ? [{ debugName: "disabledIndices" }] : /* istanbul ignore next */ []));
307
+ .map((metadata) => metadata.index), /* @ts-ignore */
308
+ ...(ngDevMode ? [{ debugName: "disabledIndices" }] : /* istanbul ignore next */ []));
302
309
  effect(() => {
303
310
  this.compositeRoot.setOrientation(this.orientation());
304
311
  this.compositeRoot.setDir(this.dir());
@@ -309,10 +316,10 @@ class RdxToolbarRoot {
309
316
  this.compositeRoot.setDisabledIndices(this.disabledIndices());
310
317
  });
311
318
  }
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
313
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxToolbarRoot, isStandalone: true, selector: "[rdxToolbarRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, dirInput: { classPropertyName: "dirInput", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, loopFocus: { classPropertyName: "loopFocus", publicName: "loopFocus", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar" }, properties: { "attr.aria-orientation": "orientation()", "attr.data-orientation": "orientation()", "attr.data-disabled": "disabled() ? \"\" : undefined" } }, providers: [provideToolbarRootContext(rootContext)], exportAs: ["rdxToolbarRoot"], hostDirectives: [{ directive: i1.RdxCompositeRoot }], ngImport: i0 }); }
319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
320
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxToolbarRoot, isStandalone: true, selector: "[rdxToolbarRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, dirInput: { classPropertyName: "dirInput", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, loopFocus: { classPropertyName: "loopFocus", publicName: "loopFocus", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar" }, properties: { "attr.aria-orientation": "orientation()", "attr.data-orientation": "orientation()", "attr.data-disabled": "disabled() ? \"\" : undefined" } }, providers: [provideToolbarRootContext(rootContext)], exportAs: ["rdxToolbarRoot"], hostDirectives: [{ directive: i1.RdxCompositeRoot }], ngImport: i0 }); }
314
321
  }
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarRoot, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarRoot, decorators: [{
316
323
  type: Directive,
317
324
  args: [{
318
325
  selector: '[rdxToolbarRoot]',
@@ -343,7 +350,8 @@ class RdxToolbarSeparator {
343
350
  /**
344
351
  * The separator orientation. Defaults to the opposite of the toolbar orientation.
345
352
  */
346
- this.orientation = input(undefined, ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
353
+ this.orientation = input(undefined, /* @ts-ignore */
354
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
347
355
  effect(() => {
348
356
  this.separator.updateOrientation(this.orientation() ?? this.defaultOrientation());
349
357
  });
@@ -351,10 +359,10 @@ class RdxToolbarSeparator {
351
359
  defaultOrientation() {
352
360
  return this.rootContext.orientation() === 'horizontal' ? 'vertical' : 'horizontal';
353
361
  }
354
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
355
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxToolbarSeparator, isStandalone: true, selector: "[rdxToolbarSeparator]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["rdxToolbarSeparator"], hostDirectives: [{ directive: i1$1.RdxSeparatorRootDirective }], ngImport: i0 }); }
362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
363
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: RdxToolbarSeparator, isStandalone: true, selector: "[rdxToolbarSeparator]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["rdxToolbarSeparator"], hostDirectives: [{ directive: i1$1.RdxSeparatorRootDirective }], ngImport: i0 }); }
356
364
  }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarSeparator, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarSeparator, decorators: [{
358
366
  type: Directive,
359
367
  args: [{
360
368
  selector: '[rdxToolbarSeparator]',
@@ -372,8 +380,8 @@ const toolbarImports = [
372
380
  RdxToolbarSeparator
373
381
  ];
374
382
  class RdxToolbarModule {
375
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
376
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarModule, imports: [RdxToolbarRoot,
383
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
384
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarModule, imports: [RdxToolbarRoot,
377
385
  RdxToolbarButton,
378
386
  RdxToolbarLink,
379
387
  RdxToolbarInput,
@@ -384,9 +392,9 @@ class RdxToolbarModule {
384
392
  RdxToolbarInput,
385
393
  RdxToolbarGroup,
386
394
  RdxToolbarSeparator] }); }
387
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarModule }); }
395
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarModule }); }
388
396
  }
389
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxToolbarModule, decorators: [{
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxToolbarModule, decorators: [{
390
398
  type: NgModule,
391
399
  args: [{
392
400
  imports: [...toolbarImports],
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-toolbar.mjs","sources":["../../../packages/primitives/toolbar/src/toolbar-context.ts","../../../packages/primitives/toolbar/src/toolbar-button.ts","../../../packages/primitives/toolbar/src/toolbar-group.ts","../../../packages/primitives/toolbar/src/toolbar-input.ts","../../../packages/primitives/toolbar/src/toolbar-link.ts","../../../packages/primitives/toolbar/src/toolbar-root.ts","../../../packages/primitives/toolbar/src/toolbar-separator.ts","../../../packages/primitives/toolbar/index.ts","../../../packages/primitives/toolbar/radix-ng-primitives-toolbar.ts"],"sourcesContent":["import { Signal } from '@angular/core';\nimport { createContext, DataOrientation } from '@radix-ng/primitives/core';\n\nexport interface RdxToolbarRootContext {\n /** The orientation of the toolbar. */\n readonly orientation: Signal<DataOrientation>;\n\n /** Whether the whole toolbar is disabled. */\n readonly disabled: Signal<boolean>;\n}\n\nexport const [injectToolbarRootContext, provideToolbarRootContext] = createContext<RdxToolbarRootContext>(\n 'RdxToolbarRootContext',\n 'components/toolbar'\n);\n\nexport interface RdxToolbarGroupContext {\n /** Whether the group (and therefore its items) is disabled. */\n readonly disabled: Signal<boolean>;\n}\n\nexport const [injectToolbarGroupContext, provideToolbarGroupContext] = createContext<RdxToolbarGroupContext>(\n 'RdxToolbarGroupContext',\n 'components/toolbar'\n);\n","import { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectToolbarGroupContext, injectToolbarRootContext } from './toolbar-context';\n\n/**\n * A button within a toolbar.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarButton]',\n exportAs: 'rdxToolbarButton',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.type]': 'nativeButton() ? \"button\" : undefined',\n '[attr.role]': 'nativeButton() ? undefined : \"button\"',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-focusable]': 'focusableWhenDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'isDisabled() ? \"true\" : undefined',\n '[attr.disabled]': 'isDisabled() && !focusableWhenDisabled() ? \"\" : undefined',\n '(click)': 'onClick($event)'\n }\n})\nexport class RdxToolbarButton {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly groupContext = injectToolbarGroupContext(true);\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n\n /**\n * Whether the button is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the button stays focusable while disabled (so it remains discoverable for keyboard\n * and screen-reader users).\n *\n * @default true\n */\n readonly focusableWhenDisabled = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether the host is a native `<button>`. When `false`, adds `role=\"button\"`.\n *\n * @default true\n */\n readonly nativeButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** @ignore Effective disabled state, combining the button, group and toolbar. */\n readonly isDisabled = computed(\n () => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled()\n );\n\n constructor() {\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.isDisabled(),\n focusableWhenDisabled: this.focusableWhenDisabled()\n });\n });\n }\n\n /** @ignore */\n protected onClick(event: Event): void {\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","import { booleanAttribute, computed, Directive, inject, input } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectToolbarRootContext, provideToolbarGroupContext, RdxToolbarGroupContext } from './toolbar-context';\n\nconst groupContext = (): RdxToolbarGroupContext => {\n const group = inject(RdxToolbarGroup);\n return { disabled: group.isDisabled };\n};\n\n/**\n * Groups several toolbar items together. Disabling the group disables all of its items.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarGroup]',\n exportAs: 'rdxToolbarGroup',\n providers: [provideToolbarGroupContext(groupContext)],\n host: {\n role: 'group',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined'\n }\n})\nexport class RdxToolbarGroup {\n protected readonly rootContext = injectToolbarRootContext();\n\n /**\n * Whether the group is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore Effective disabled state, combining the group and the toolbar. */\n readonly isDisabled = computed(() => this.disabled() || this.rootContext.disabled());\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n PLATFORM_ID\n} from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectToolbarGroupContext, injectToolbarRootContext } from './toolbar-context';\n\n/**\n * A native input within a toolbar. Participates in the toolbar's composite focus while keeping native\n * text-editing: the arrow keys move the caret within the text and only move focus to the\n * neighbouring toolbar item once the caret is at the corresponding edge (Base UI \"composite\" input).\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: 'input[rdxToolbarInput]',\n exportAs: 'rdxToolbarInput',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-focusable]': 'focusableWhenDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'isDisabled() ? \"true\" : undefined',\n '[disabled]': 'isDisabled() && !focusableWhenDisabled()'\n }\n})\nexport class RdxToolbarInput {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly groupContext = injectToolbarGroupContext(true);\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n /** The initial value of the uncontrolled input. */\n readonly defaultValue = input<string>();\n\n /**\n * Whether the input is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the input stays focusable while disabled.\n *\n * @default true\n */\n readonly focusableWhenDisabled = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** @ignore */\n readonly isDisabled = computed(\n () => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled()\n );\n\n private appliedDefault = false;\n\n constructor() {\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.isDisabled(),\n focusableWhenDisabled: this.focusableWhenDisabled()\n });\n });\n\n effect(() => {\n const value = this.defaultValue();\n if (!this.appliedDefault && value !== undefined) {\n this.appliedDefault = true;\n this.elementRef.nativeElement.value = value;\n }\n });\n\n if (this.isBrowser) {\n // Registered in the constructor — i.e. before the composite root's delegated keydown\n // — so it runs first and can keep arrow keys for caret movement (via\n // `stopImmediatePropagation`) unless the caret is at the edge, where the event is allowed\n // to reach the composite root and move focus.\n const element = this.elementRef.nativeElement;\n const handler = (event: KeyboardEvent) => this.handleCaretKeydown(event);\n element.addEventListener('keydown', handler, { capture: true });\n inject(DestroyRef).onDestroy(() => element.removeEventListener('keydown', handler, { capture: true }));\n }\n }\n\n private handleCaretKeydown(event: KeyboardEvent): void {\n if (event.defaultPrevented || event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n const horizontal = this.rootContext.orientation() === 'horizontal';\n const previousKey = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const nextKey = horizontal ? 'ArrowRight' : 'ArrowDown';\n const key = event.key;\n\n if (key !== previousKey && key !== nextKey && key !== 'Home' && key !== 'End') {\n return;\n }\n\n // Home/End always move the caret within the text.\n if (key === 'Home' || key === 'End') {\n event.stopImmediatePropagation();\n return;\n }\n\n const element = this.elementRef.nativeElement;\n let start: number | null;\n let end: number | null;\n try {\n start = element.selectionStart;\n end = element.selectionEnd;\n } catch {\n // Inputs such as `type=\"number\"` don't expose a selection — let the toolbar navigate.\n return;\n }\n\n if (start === null || end === null) {\n return;\n }\n\n const length = element.value.length;\n const atStart = start === 0 && end === 0;\n const atEnd = start === length && end === length;\n\n // Keep the key for caret movement unless the caret is already at the edge we're moving toward.\n if ((key === previousKey && !atStart) || (key === nextKey && !atEnd)) {\n event.stopImmediatePropagation();\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { injectToolbarRootContext } from './toolbar-context';\n\nconst TOOLBAR_LINK_METADATA = {\n disabled: false,\n focusableWhenDisabled: true\n};\n\n/**\n * A link within a toolbar.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarLink]',\n exportAs: 'rdxToolbarLink',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.data-orientation]': 'rootContext.orientation()'\n }\n})\nexport class RdxToolbarLink {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n\n constructor() {\n this.compositeItem.setMetadata(TOOLBAR_LINK_METADATA);\n }\n}\n","import { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdxCompositeMetadata, RdxCompositeRoot } from '@radix-ng/primitives/composite';\nimport { BooleanInput, DataOrientation, Direction } from '@radix-ng/primitives/core';\nimport { injectDirection } from '@radix-ng/primitives/direction-provider';\nimport { provideToolbarRootContext, RdxToolbarRootContext } from './toolbar-context';\n\nconst rootContext = (): RdxToolbarRootContext => {\n const root = inject(RdxToolbarRoot);\n return {\n orientation: root.orientation,\n disabled: root.disabled\n };\n};\n\n/**\n * A container for grouping a set of controls, such as buttons, toggle groups or menus.\n * Owns composite keyboard focus over its items.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarRoot]',\n exportAs: 'rdxToolbarRoot',\n hostDirectives: [RdxCompositeRoot],\n providers: [provideToolbarRootContext(rootContext)],\n host: {\n role: 'toolbar',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined'\n }\n})\nexport class RdxToolbarRoot {\n /**\n * The orientation of the toolbar.\n *\n * @default 'horizontal'\n */\n readonly orientation = input<DataOrientation>('horizontal');\n\n /** Text direction for arrow-key navigation. */\n readonly dirInput = input<Direction | undefined>(undefined, { alias: 'dir' });\n readonly dir = injectDirection(this.dirInput);\n\n /**\n * Whether keyboard navigation should loop from the last item back to the first.\n *\n * @default true\n */\n readonly loopFocus = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether the whole toolbar is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n private readonly compositeRoot = inject(RdxCompositeRoot, { self: true });\n private readonly itemMetadata = computed(() =>\n Array.from(this.compositeRoot.itemMap().values()).filter(isToolbarItemMetadata)\n );\n private readonly disabledIndices = computed(() =>\n this.itemMetadata()\n .filter((metadata) => metadata.disabled && !metadata.focusableWhenDisabled)\n .map((metadata) => metadata.index)\n );\n\n constructor() {\n effect(() => {\n this.compositeRoot.setOrientation(this.orientation());\n this.compositeRoot.setDir(this.dir());\n this.compositeRoot.setLoopFocus(this.loopFocus());\n this.compositeRoot.setEnableHomeAndEndKeys(true);\n });\n\n effect(() => {\n this.compositeRoot.setDisabledIndices(this.disabledIndices());\n });\n }\n}\n\nexport interface RdxToolbarItemMetadata {\n [key: string]: unknown;\n disabled: boolean;\n focusableWhenDisabled: boolean;\n}\n\nfunction isToolbarItemMetadata(\n metadata: RdxCompositeMetadata\n): metadata is RdxCompositeMetadata<RdxToolbarItemMetadata> {\n return typeof metadata['disabled'] === 'boolean' && typeof metadata['focusableWhenDisabled'] === 'boolean';\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { Orientation, RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\nimport { injectToolbarRootContext } from './toolbar-context';\n\n/**\n * A separator between toolbar items or groups.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarSeparator]',\n exportAs: 'rdxToolbarSeparator',\n hostDirectives: [RdxSeparatorRootDirective]\n})\nexport class RdxToolbarSeparator {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly separator = inject(RdxSeparatorRootDirective, { self: true });\n\n /**\n * The separator orientation. Defaults to the opposite of the toolbar orientation.\n */\n readonly orientation = input<Orientation | undefined>(undefined);\n\n constructor() {\n effect(() => {\n this.separator.updateOrientation(this.orientation() ?? this.defaultOrientation());\n });\n }\n\n private defaultOrientation(): Orientation {\n return this.rootContext.orientation() === 'horizontal' ? 'vertical' : 'horizontal';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxToolbarButton } from './src/toolbar-button';\nimport { RdxToolbarGroup } from './src/toolbar-group';\nimport { RdxToolbarInput } from './src/toolbar-input';\nimport { RdxToolbarLink } from './src/toolbar-link';\nimport { RdxToolbarRoot } from './src/toolbar-root';\nimport { RdxToolbarSeparator } from './src/toolbar-separator';\n\nexport * from './src/toolbar-button';\nexport * from './src/toolbar-context';\nexport * from './src/toolbar-group';\nexport * from './src/toolbar-input';\nexport * from './src/toolbar-link';\nexport * from './src/toolbar-root';\nexport * from './src/toolbar-separator';\n\nexport const toolbarImports = [\n RdxToolbarRoot,\n RdxToolbarButton,\n RdxToolbarLink,\n RdxToolbarInput,\n RdxToolbarGroup,\n RdxToolbarSeparator\n];\n\n@NgModule({\n imports: [...toolbarImports],\n exports: [...toolbarImports]\n})\nexport class RdxToolbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-toolbar.mjs","sources":["../../../packages/primitives/toolbar/src/toolbar-context.ts","../../../packages/primitives/toolbar/src/toolbar-button.ts","../../../packages/primitives/toolbar/src/toolbar-group.ts","../../../packages/primitives/toolbar/src/toolbar-input.ts","../../../packages/primitives/toolbar/src/toolbar-link.ts","../../../packages/primitives/toolbar/src/toolbar-root.ts","../../../packages/primitives/toolbar/src/toolbar-separator.ts","../../../packages/primitives/toolbar/index.ts","../../../packages/primitives/toolbar/radix-ng-primitives-toolbar.ts"],"sourcesContent":["import { Signal } from '@angular/core';\nimport { createContext, DataOrientation } from '@radix-ng/primitives/core';\n\nexport interface RdxToolbarRootContext {\n /** The orientation of the toolbar. */\n readonly orientation: Signal<DataOrientation>;\n\n /** Whether the whole toolbar is disabled. */\n readonly disabled: Signal<boolean>;\n}\n\nexport const [injectToolbarRootContext, provideToolbarRootContext] = createContext<RdxToolbarRootContext>(\n 'RdxToolbarRootContext',\n 'components/toolbar'\n);\n\nexport interface RdxToolbarGroupContext {\n /** Whether the group (and therefore its items) is disabled. */\n readonly disabled: Signal<boolean>;\n}\n\nexport const [injectToolbarGroupContext, provideToolbarGroupContext] = createContext<RdxToolbarGroupContext>(\n 'RdxToolbarGroupContext',\n 'components/toolbar'\n);\n","import { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectToolbarGroupContext, injectToolbarRootContext } from './toolbar-context';\n\n/**\n * A button within a toolbar.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarButton]',\n exportAs: 'rdxToolbarButton',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.type]': 'nativeButton() ? \"button\" : undefined',\n '[attr.role]': 'nativeButton() ? undefined : \"button\"',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-focusable]': 'focusableWhenDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'isDisabled() ? \"true\" : undefined',\n '[attr.disabled]': 'isDisabled() && !focusableWhenDisabled() ? \"\" : undefined',\n '(click)': 'onClick($event)'\n }\n})\nexport class RdxToolbarButton {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly groupContext = injectToolbarGroupContext(true);\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n\n /**\n * Whether the button is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the button stays focusable while disabled (so it remains discoverable for keyboard\n * and screen-reader users).\n *\n * @default true\n */\n readonly focusableWhenDisabled = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether the host is a native `<button>`. When `false`, adds `role=\"button\"`.\n *\n * @default true\n */\n readonly nativeButton = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** @ignore Effective disabled state, combining the button, group and toolbar. */\n readonly isDisabled = computed(\n () => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled()\n );\n\n constructor() {\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.isDisabled(),\n focusableWhenDisabled: this.focusableWhenDisabled()\n });\n });\n }\n\n /** @ignore */\n protected onClick(event: Event): void {\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","import { booleanAttribute, computed, Directive, inject, input } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectToolbarRootContext, provideToolbarGroupContext, RdxToolbarGroupContext } from './toolbar-context';\n\nconst groupContext = (): RdxToolbarGroupContext => {\n const group = inject(RdxToolbarGroup);\n return { disabled: group.isDisabled };\n};\n\n/**\n * Groups several toolbar items together. Disabling the group disables all of its items.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarGroup]',\n exportAs: 'rdxToolbarGroup',\n providers: [provideToolbarGroupContext(groupContext)],\n host: {\n role: 'group',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined'\n }\n})\nexport class RdxToolbarGroup {\n protected readonly rootContext = injectToolbarRootContext();\n\n /**\n * Whether the group is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore Effective disabled state, combining the group and the toolbar. */\n readonly isDisabled = computed(() => this.disabled() || this.rootContext.disabled());\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n PLATFORM_ID\n} from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectToolbarGroupContext, injectToolbarRootContext } from './toolbar-context';\n\n/**\n * A native input within a toolbar. Participates in the toolbar's composite focus while keeping native\n * text-editing: the arrow keys move the caret within the text and only move focus to the\n * neighbouring toolbar item once the caret is at the corresponding edge (Base UI \"composite\" input).\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: 'input[rdxToolbarInput]',\n exportAs: 'rdxToolbarInput',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-focusable]': 'focusableWhenDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'isDisabled() ? \"true\" : undefined',\n '[disabled]': 'isDisabled() && !focusableWhenDisabled()'\n }\n})\nexport class RdxToolbarInput {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly groupContext = injectToolbarGroupContext(true);\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n /** The initial value of the uncontrolled input. */\n readonly defaultValue = input<string>();\n\n /**\n * Whether the input is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the input stays focusable while disabled.\n *\n * @default true\n */\n readonly focusableWhenDisabled = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** @ignore */\n readonly isDisabled = computed(\n () => this.disabled() || (this.groupContext?.disabled() ?? false) || this.rootContext.disabled()\n );\n\n private appliedDefault = false;\n\n constructor() {\n effect(() => {\n this.compositeItem.setMetadata({\n disabled: this.isDisabled(),\n focusableWhenDisabled: this.focusableWhenDisabled()\n });\n });\n\n effect(() => {\n const value = this.defaultValue();\n if (!this.appliedDefault && value !== undefined) {\n this.appliedDefault = true;\n this.elementRef.nativeElement.value = value;\n }\n });\n\n if (this.isBrowser) {\n // Registered in the constructor — i.e. before the composite root's delegated keydown\n // — so it runs first and can keep arrow keys for caret movement (via\n // `stopImmediatePropagation`) unless the caret is at the edge, where the event is allowed\n // to reach the composite root and move focus.\n const element = this.elementRef.nativeElement;\n const handler = (event: KeyboardEvent) => this.handleCaretKeydown(event);\n element.addEventListener('keydown', handler, { capture: true });\n inject(DestroyRef).onDestroy(() => element.removeEventListener('keydown', handler, { capture: true }));\n }\n }\n\n private handleCaretKeydown(event: KeyboardEvent): void {\n if (event.defaultPrevented || event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n const horizontal = this.rootContext.orientation() === 'horizontal';\n const previousKey = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const nextKey = horizontal ? 'ArrowRight' : 'ArrowDown';\n const key = event.key;\n\n if (key !== previousKey && key !== nextKey && key !== 'Home' && key !== 'End') {\n return;\n }\n\n // Home/End always move the caret within the text.\n if (key === 'Home' || key === 'End') {\n event.stopImmediatePropagation();\n return;\n }\n\n const element = this.elementRef.nativeElement;\n let start: number | null;\n let end: number | null;\n try {\n start = element.selectionStart;\n end = element.selectionEnd;\n } catch {\n // Inputs such as `type=\"number\"` don't expose a selection — let the toolbar navigate.\n return;\n }\n\n if (start === null || end === null) {\n return;\n }\n\n const length = element.value.length;\n const atStart = start === 0 && end === 0;\n const atEnd = start === length && end === length;\n\n // Keep the key for caret movement unless the caret is already at the edge we're moving toward.\n if ((key === previousKey && !atStart) || (key === nextKey && !atEnd)) {\n event.stopImmediatePropagation();\n }\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxCompositeItem } from '@radix-ng/primitives/composite';\nimport { injectToolbarRootContext } from './toolbar-context';\n\nconst TOOLBAR_LINK_METADATA = {\n disabled: false,\n focusableWhenDisabled: true\n};\n\n/**\n * A link within a toolbar.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarLink]',\n exportAs: 'rdxToolbarLink',\n hostDirectives: [RdxCompositeItem],\n host: {\n '[attr.data-orientation]': 'rootContext.orientation()'\n }\n})\nexport class RdxToolbarLink {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly compositeItem = inject(RdxCompositeItem, { self: true });\n\n constructor() {\n this.compositeItem.setMetadata(TOOLBAR_LINK_METADATA);\n }\n}\n","import { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdxCompositeMetadata, RdxCompositeRoot } from '@radix-ng/primitives/composite';\nimport { BooleanInput, DataOrientation, Direction } from '@radix-ng/primitives/core';\nimport { injectDirection } from '@radix-ng/primitives/direction-provider';\nimport { provideToolbarRootContext, RdxToolbarRootContext } from './toolbar-context';\n\nconst rootContext = (): RdxToolbarRootContext => {\n const root = inject(RdxToolbarRoot);\n return {\n orientation: root.orientation,\n disabled: root.disabled\n };\n};\n\n/**\n * A container for grouping a set of controls, such as buttons, toggle groups or menus.\n * Owns composite keyboard focus over its items.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarRoot]',\n exportAs: 'rdxToolbarRoot',\n hostDirectives: [RdxCompositeRoot],\n providers: [provideToolbarRootContext(rootContext)],\n host: {\n role: 'toolbar',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined'\n }\n})\nexport class RdxToolbarRoot {\n /**\n * The orientation of the toolbar.\n *\n * @default 'horizontal'\n */\n readonly orientation = input<DataOrientation>('horizontal');\n\n /** Text direction for arrow-key navigation. */\n readonly dirInput = input<Direction | undefined>(undefined, { alias: 'dir' });\n readonly dir = injectDirection(this.dirInput);\n\n /**\n * Whether keyboard navigation should loop from the last item back to the first.\n *\n * @default true\n */\n readonly loopFocus = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether the whole toolbar is disabled.\n *\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n private readonly compositeRoot = inject(RdxCompositeRoot, { self: true });\n private readonly itemMetadata = computed(() =>\n Array.from(this.compositeRoot.itemMap().values()).filter(isToolbarItemMetadata)\n );\n private readonly disabledIndices = computed(() =>\n this.itemMetadata()\n .filter((metadata) => metadata.disabled && !metadata.focusableWhenDisabled)\n .map((metadata) => metadata.index)\n );\n\n constructor() {\n effect(() => {\n this.compositeRoot.setOrientation(this.orientation());\n this.compositeRoot.setDir(this.dir());\n this.compositeRoot.setLoopFocus(this.loopFocus());\n this.compositeRoot.setEnableHomeAndEndKeys(true);\n });\n\n effect(() => {\n this.compositeRoot.setDisabledIndices(this.disabledIndices());\n });\n }\n}\n\nexport interface RdxToolbarItemMetadata {\n [key: string]: unknown;\n disabled: boolean;\n focusableWhenDisabled: boolean;\n}\n\nfunction isToolbarItemMetadata(\n metadata: RdxCompositeMetadata\n): metadata is RdxCompositeMetadata<RdxToolbarItemMetadata> {\n return typeof metadata['disabled'] === 'boolean' && typeof metadata['focusableWhenDisabled'] === 'boolean';\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { Orientation, RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\nimport { injectToolbarRootContext } from './toolbar-context';\n\n/**\n * A separator between toolbar items or groups.\n *\n * @see https://base-ui.com/react/components/toolbar\n */\n@Directive({\n selector: '[rdxToolbarSeparator]',\n exportAs: 'rdxToolbarSeparator',\n hostDirectives: [RdxSeparatorRootDirective]\n})\nexport class RdxToolbarSeparator {\n protected readonly rootContext = injectToolbarRootContext();\n private readonly separator = inject(RdxSeparatorRootDirective, { self: true });\n\n /**\n * The separator orientation. Defaults to the opposite of the toolbar orientation.\n */\n readonly orientation = input<Orientation | undefined>(undefined);\n\n constructor() {\n effect(() => {\n this.separator.updateOrientation(this.orientation() ?? this.defaultOrientation());\n });\n }\n\n private defaultOrientation(): Orientation {\n return this.rootContext.orientation() === 'horizontal' ? 'vertical' : 'horizontal';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxToolbarButton } from './src/toolbar-button';\nimport { RdxToolbarGroup } from './src/toolbar-group';\nimport { RdxToolbarInput } from './src/toolbar-input';\nimport { RdxToolbarLink } from './src/toolbar-link';\nimport { RdxToolbarRoot } from './src/toolbar-root';\nimport { RdxToolbarSeparator } from './src/toolbar-separator';\n\nexport * from './src/toolbar-button';\nexport * from './src/toolbar-context';\nexport * from './src/toolbar-group';\nexport * from './src/toolbar-input';\nexport * from './src/toolbar-link';\nexport * from './src/toolbar-root';\nexport * from './src/toolbar-separator';\n\nexport const toolbarImports = [\n RdxToolbarRoot,\n RdxToolbarButton,\n RdxToolbarLink,\n RdxToolbarInput,\n RdxToolbarGroup,\n RdxToolbarSeparator\n];\n\n@NgModule({\n imports: [...toolbarImports],\n exports: [...toolbarImports]\n})\nexport class RdxToolbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}