@raqm/ui 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +28 -0
  4. package/README.md +126 -3
  5. package/combobox/README.md +17 -0
  6. package/fesm2022/raqm-ui-accordion.mjs +414 -0
  7. package/fesm2022/raqm-ui-accordion.mjs.map +1 -0
  8. package/fesm2022/raqm-ui-alert-dialog.mjs +457 -0
  9. package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -0
  10. package/fesm2022/raqm-ui-alert.mjs +195 -0
  11. package/fesm2022/raqm-ui-alert.mjs.map +1 -0
  12. package/fesm2022/raqm-ui-aspect-ratio.mjs +66 -0
  13. package/fesm2022/raqm-ui-aspect-ratio.mjs.map +1 -0
  14. package/fesm2022/raqm-ui-attachment.mjs +435 -0
  15. package/fesm2022/raqm-ui-attachment.mjs.map +1 -0
  16. package/fesm2022/raqm-ui-avatar.mjs +337 -0
  17. package/fesm2022/raqm-ui-avatar.mjs.map +1 -0
  18. package/fesm2022/raqm-ui-badge.mjs +68 -0
  19. package/fesm2022/raqm-ui-badge.mjs.map +1 -0
  20. package/fesm2022/raqm-ui-breadcrumb.mjs +309 -0
  21. package/fesm2022/raqm-ui-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/raqm-ui-button-group.mjs +138 -0
  23. package/fesm2022/raqm-ui-button-group.mjs.map +1 -0
  24. package/fesm2022/raqm-ui-button.mjs +295 -0
  25. package/fesm2022/raqm-ui-button.mjs.map +1 -0
  26. package/fesm2022/raqm-ui-calendar.mjs +1394 -0
  27. package/fesm2022/raqm-ui-calendar.mjs.map +1 -0
  28. package/fesm2022/raqm-ui-card.mjs +331 -0
  29. package/fesm2022/raqm-ui-card.mjs.map +1 -0
  30. package/fesm2022/raqm-ui-carousel.mjs +410 -0
  31. package/fesm2022/raqm-ui-carousel.mjs.map +1 -0
  32. package/fesm2022/raqm-ui-checkbox.mjs +86 -0
  33. package/fesm2022/raqm-ui-checkbox.mjs.map +1 -0
  34. package/fesm2022/raqm-ui-collapsible.mjs +266 -0
  35. package/fesm2022/raqm-ui-collapsible.mjs.map +1 -0
  36. package/fesm2022/raqm-ui-combobox.mjs +1584 -0
  37. package/fesm2022/raqm-ui-combobox.mjs.map +1 -0
  38. package/fesm2022/raqm-ui-command.mjs +1210 -0
  39. package/fesm2022/raqm-ui-command.mjs.map +1 -0
  40. package/fesm2022/raqm-ui-context-menu.mjs +723 -0
  41. package/fesm2022/raqm-ui-context-menu.mjs.map +1 -0
  42. package/fesm2022/raqm-ui-dialog.mjs +1214 -0
  43. package/fesm2022/raqm-ui-dialog.mjs.map +1 -0
  44. package/fesm2022/raqm-ui-drawer.mjs +687 -0
  45. package/fesm2022/raqm-ui-drawer.mjs.map +1 -0
  46. package/fesm2022/raqm-ui-dropdown-menu.mjs +1168 -0
  47. package/fesm2022/raqm-ui-dropdown-menu.mjs.map +1 -0
  48. package/fesm2022/raqm-ui-empty.mjs +272 -0
  49. package/fesm2022/raqm-ui-empty.mjs.map +1 -0
  50. package/fesm2022/raqm-ui-field.mjs +517 -0
  51. package/fesm2022/raqm-ui-field.mjs.map +1 -0
  52. package/fesm2022/raqm-ui-hover-card.mjs +828 -0
  53. package/fesm2022/raqm-ui-hover-card.mjs.map +1 -0
  54. package/fesm2022/raqm-ui-input-group.mjs +270 -0
  55. package/fesm2022/raqm-ui-input-group.mjs.map +1 -0
  56. package/fesm2022/raqm-ui-input-otp.mjs +788 -0
  57. package/fesm2022/raqm-ui-input-otp.mjs.map +1 -0
  58. package/fesm2022/raqm-ui-input.mjs +73 -0
  59. package/fesm2022/raqm-ui-input.mjs.map +1 -0
  60. package/fesm2022/raqm-ui-item.mjs +495 -0
  61. package/fesm2022/raqm-ui-item.mjs.map +1 -0
  62. package/fesm2022/raqm-ui-kbd.mjs +80 -0
  63. package/fesm2022/raqm-ui-kbd.mjs.map +1 -0
  64. package/fesm2022/raqm-ui-label.mjs +44 -0
  65. package/fesm2022/raqm-ui-label.mjs.map +1 -0
  66. package/fesm2022/raqm-ui-menubar.mjs +536 -0
  67. package/fesm2022/raqm-ui-menubar.mjs.map +1 -0
  68. package/fesm2022/raqm-ui-native-select.mjs +131 -0
  69. package/fesm2022/raqm-ui-native-select.mjs.map +1 -0
  70. package/fesm2022/raqm-ui-navigation-menu.mjs +1399 -0
  71. package/fesm2022/raqm-ui-navigation-menu.mjs.map +1 -0
  72. package/fesm2022/raqm-ui-overlay-internal.mjs +185 -0
  73. package/fesm2022/raqm-ui-overlay-internal.mjs.map +1 -0
  74. package/fesm2022/raqm-ui-pagination.mjs +440 -0
  75. package/fesm2022/raqm-ui-pagination.mjs.map +1 -0
  76. package/fesm2022/raqm-ui-popover.mjs +1495 -0
  77. package/fesm2022/raqm-ui-popover.mjs.map +1 -0
  78. package/fesm2022/raqm-ui-progress.mjs +369 -0
  79. package/fesm2022/raqm-ui-progress.mjs.map +1 -0
  80. package/fesm2022/raqm-ui-questionnaire.mjs +1005 -0
  81. package/fesm2022/raqm-ui-questionnaire.mjs.map +1 -0
  82. package/fesm2022/raqm-ui-radio-group.mjs +151 -0
  83. package/fesm2022/raqm-ui-radio-group.mjs.map +1 -0
  84. package/fesm2022/raqm-ui-resizable.mjs +439 -0
  85. package/fesm2022/raqm-ui-resizable.mjs.map +1 -0
  86. package/fesm2022/raqm-ui-scroll-area.mjs +510 -0
  87. package/fesm2022/raqm-ui-scroll-area.mjs.map +1 -0
  88. package/fesm2022/raqm-ui-select.mjs +1073 -0
  89. package/fesm2022/raqm-ui-select.mjs.map +1 -0
  90. package/fesm2022/raqm-ui-separator.mjs +103 -0
  91. package/fesm2022/raqm-ui-separator.mjs.map +1 -0
  92. package/fesm2022/raqm-ui-sheet.mjs +411 -0
  93. package/fesm2022/raqm-ui-sheet.mjs.map +1 -0
  94. package/fesm2022/raqm-ui-sidebar.mjs +1784 -0
  95. package/fesm2022/raqm-ui-sidebar.mjs.map +1 -0
  96. package/fesm2022/raqm-ui-skeleton.mjs +50 -0
  97. package/fesm2022/raqm-ui-skeleton.mjs.map +1 -0
  98. package/fesm2022/raqm-ui-slider.mjs +609 -0
  99. package/fesm2022/raqm-ui-slider.mjs.map +1 -0
  100. package/fesm2022/raqm-ui-spinner.mjs +137 -0
  101. package/fesm2022/raqm-ui-spinner.mjs.map +1 -0
  102. package/fesm2022/raqm-ui-switch.mjs +109 -0
  103. package/fesm2022/raqm-ui-switch.mjs.map +1 -0
  104. package/fesm2022/raqm-ui-table.mjs +271 -0
  105. package/fesm2022/raqm-ui-table.mjs.map +1 -0
  106. package/fesm2022/raqm-ui-tabs.mjs +536 -0
  107. package/fesm2022/raqm-ui-tabs.mjs.map +1 -0
  108. package/fesm2022/raqm-ui-textarea.mjs +37 -0
  109. package/fesm2022/raqm-ui-textarea.mjs.map +1 -0
  110. package/fesm2022/raqm-ui-toast.mjs +918 -0
  111. package/fesm2022/raqm-ui-toast.mjs.map +1 -0
  112. package/fesm2022/raqm-ui-toggle-group.mjs +462 -0
  113. package/fesm2022/raqm-ui-toggle-group.mjs.map +1 -0
  114. package/fesm2022/raqm-ui-toggle.mjs +158 -0
  115. package/fesm2022/raqm-ui-toggle.mjs.map +1 -0
  116. package/fesm2022/raqm-ui-tooltip.mjs +1226 -0
  117. package/fesm2022/raqm-ui-tooltip.mjs.map +1 -0
  118. package/fesm2022/raqm-ui.mjs +50 -0
  119. package/input-otp/README.md +12 -0
  120. package/package.json +275 -3
  121. package/styles/theme.css +4324 -0
  122. package/types/raqm-ui-accordion.d.ts +124 -0
  123. package/types/raqm-ui-alert-dialog.d.ts +81 -0
  124. package/types/raqm-ui-alert.d.ts +29 -0
  125. package/types/raqm-ui-aspect-ratio.d.ts +13 -0
  126. package/types/raqm-ui-attachment.d.ts +72 -0
  127. package/types/raqm-ui-avatar.d.ts +67 -0
  128. package/types/raqm-ui-badge.d.ts +20 -0
  129. package/types/raqm-ui-breadcrumb.d.ts +35 -0
  130. package/types/raqm-ui-button-group.d.ts +27 -0
  131. package/types/raqm-ui-button.d.ts +80 -0
  132. package/types/raqm-ui-calendar.d.ts +359 -0
  133. package/types/raqm-ui-card.d.ts +34 -0
  134. package/types/raqm-ui-carousel.d.ts +81 -0
  135. package/types/raqm-ui-checkbox.d.ts +24 -0
  136. package/types/raqm-ui-collapsible.d.ts +72 -0
  137. package/types/raqm-ui-combobox.d.ts +405 -0
  138. package/types/raqm-ui-command.d.ts +256 -0
  139. package/types/raqm-ui-context-menu.d.ts +196 -0
  140. package/types/raqm-ui-dialog.d.ts +232 -0
  141. package/types/raqm-ui-drawer.d.ts +121 -0
  142. package/types/raqm-ui-dropdown-menu.d.ts +319 -0
  143. package/types/raqm-ui-empty.d.ts +35 -0
  144. package/types/raqm-ui-field.d.ts +88 -0
  145. package/types/raqm-ui-hover-card.d.ts +139 -0
  146. package/types/raqm-ui-input-group.d.ts +45 -0
  147. package/types/raqm-ui-input-otp.d.ts +197 -0
  148. package/types/raqm-ui-input.d.ts +16 -0
  149. package/types/raqm-ui-item.d.ts +71 -0
  150. package/types/raqm-ui-kbd.d.ts +12 -0
  151. package/types/raqm-ui-label.d.ts +6 -0
  152. package/types/raqm-ui-menubar.d.ts +159 -0
  153. package/types/raqm-ui-native-select.d.ts +23 -0
  154. package/types/raqm-ui-navigation-menu.d.ts +230 -0
  155. package/types/raqm-ui-overlay-internal.d.ts +5 -0
  156. package/types/raqm-ui-pagination.d.ts +84 -0
  157. package/types/raqm-ui-popover.d.ts +235 -0
  158. package/types/raqm-ui-progress.d.ts +79 -0
  159. package/types/raqm-ui-questionnaire.d.ts +217 -0
  160. package/types/raqm-ui-radio-group.d.ts +48 -0
  161. package/types/raqm-ui-resizable.d.ts +98 -0
  162. package/types/raqm-ui-scroll-area.d.ts +132 -0
  163. package/types/raqm-ui-select.d.ts +205 -0
  164. package/types/raqm-ui-separator.d.ts +21 -0
  165. package/types/raqm-ui-sheet.d.ts +79 -0
  166. package/types/raqm-ui-sidebar.d.ts +285 -0
  167. package/types/raqm-ui-skeleton.d.ts +6 -0
  168. package/types/raqm-ui-slider.d.ts +129 -0
  169. package/types/raqm-ui-spinner.d.ts +32 -0
  170. package/types/raqm-ui-switch.d.ts +32 -0
  171. package/types/raqm-ui-table.d.ts +36 -0
  172. package/types/raqm-ui-tabs.d.ts +154 -0
  173. package/types/raqm-ui-textarea.d.ts +6 -0
  174. package/types/raqm-ui-toast.d.ts +190 -0
  175. package/types/raqm-ui-toggle-group.d.ts +167 -0
  176. package/types/raqm-ui-toggle.d.ts +42 -0
  177. package/types/raqm-ui-tooltip.d.ts +207 -0
  178. package/types/raqm-ui.d.ts +50 -0
@@ -0,0 +1,158 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, ElementRef, booleanAttribute, computed, inject, input, model } from "@angular/core";
3
+ var RaqmToggle = class RaqmToggle {
4
+ host = inject(ElementRef);
5
+ appearance = input("default", {
6
+ ...ngDevMode ? { debugName: "appearance" } : /* istanbul ignore next */ {},
7
+ alias: "raqm-toggle",
8
+ transform: (value) => value === "outline" ? "outline" : "default"
9
+ });
10
+ small = input(false, {
11
+ ...ngDevMode ? { debugName: "small" } : /* istanbul ignore next */ {},
12
+ transform: booleanAttribute
13
+ });
14
+ large = input(false, {
15
+ ...ngDevMode ? { debugName: "large" } : /* istanbul ignore next */ {},
16
+ transform: booleanAttribute
17
+ });
18
+ activeSize = computed(() => {
19
+ const small = this.small();
20
+ const large = this.large();
21
+ if (small && large) throw new Error("raqm-toggle: use either small or large, not both.");
22
+ return large ? "large" : small ? "small" : "default";
23
+ }, ...ngDevMode ? [{ debugName: "activeSize" }] : /* istanbul ignore next */ []);
24
+ pressed = model(false, ...ngDevMode ? [{ debugName: "pressed" }] : /* istanbul ignore next */ []);
25
+ constructor() {
26
+ const element = this.host.nativeElement;
27
+ if (!element.hasAttribute("type")) element.setAttribute("type", "button");
28
+ }
29
+ onToggleClick() {
30
+ if (this.host.nativeElement.disabled) return;
31
+ this.pressed.update((value) => !value);
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({
34
+ minVersion: "12.0.0",
35
+ version: "22.2.2",
36
+ ngImport: i0,
37
+ type: RaqmToggle,
38
+ deps: [],
39
+ target: i0.ɵɵFactoryTarget.Component
40
+ });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({
42
+ minVersion: "17.1.0",
43
+ version: "22.2.2",
44
+ type: RaqmToggle,
45
+ isStandalone: true,
46
+ selector: "button[raqm-toggle]",
47
+ inputs: {
48
+ appearance: {
49
+ classPropertyName: "appearance",
50
+ publicName: "raqm-toggle",
51
+ isSignal: true,
52
+ isRequired: false,
53
+ transformFunction: null
54
+ },
55
+ small: {
56
+ classPropertyName: "small",
57
+ publicName: "small",
58
+ isSignal: true,
59
+ isRequired: false,
60
+ transformFunction: null
61
+ },
62
+ large: {
63
+ classPropertyName: "large",
64
+ publicName: "large",
65
+ isSignal: true,
66
+ isRequired: false,
67
+ transformFunction: null
68
+ },
69
+ pressed: {
70
+ classPropertyName: "pressed",
71
+ publicName: "pressed",
72
+ isSignal: true,
73
+ isRequired: false,
74
+ transformFunction: null
75
+ }
76
+ },
77
+ outputs: { pressed: "pressedChange" },
78
+ host: {
79
+ listeners: { "click": "onToggleClick()" },
80
+ properties: {
81
+ "attr.data-raqm-variant": "appearance()",
82
+ "attr.data-raqm-small": "activeSize() === \"small\" ? \"\" : null",
83
+ "attr.data-raqm-large": "activeSize() === \"large\" ? \"\" : null",
84
+ "attr.aria-pressed": "pressed() ? \"true\" : \"false\""
85
+ },
86
+ classAttribute: "raqm-toggle"
87
+ },
88
+ ngImport: i0,
89
+ template: "<ng-content />",
90
+ isInline: true,
91
+ styles: [":host{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;-webkit-user-select:none;user-select:none;vertical-align:middle;gap:calc(var(--raqm-spacing) * 1);border-radius:var(--raqm-radius-lg);font-size:var(--raqm-font-size-sm);font-weight:var(--raqm-font-weight-medium);transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--raqm-duration-base);transition-timing-function:var(--raqm-ease-standard);outline:none;border:0;background-color:transparent;block-size:calc(var(--raqm-spacing) * 8);min-inline-size:calc(var(--raqm-spacing) * 8);padding-inline:calc(var(--raqm-spacing) * 2.5)}:host([data-raqm-small]){block-size:calc(var(--raqm-spacing) * 7);min-inline-size:calc(var(--raqm-spacing) * 7);border-radius:min(var(--raqm-radius-md),12px);padding-inline:calc(var(--raqm-spacing) * 2.5);font-size:.8rem}:host([data-raqm-large]){block-size:calc(var(--raqm-spacing) * 9);min-inline-size:calc(var(--raqm-spacing) * 9);padding-inline:calc(var(--raqm-spacing) * 2.5)}:host([data-raqm-variant=outline]){border:1px solid var(--raqm-input);background-color:transparent}:host(:hover){background-color:var(--raqm-muted);color:var(--raqm-foreground)}:host([aria-pressed=true]){background-color:var(--raqm-muted)}:host(:focus-visible){border-color:var(--raqm-ring);box-shadow:0 0 0 var(--raqm-focus-ring-width) var(--raqm-focus-ring-color)}:host([aria-invalid=true]){border-color:var(--raqm-invalid-border);box-shadow:0 0 0 var(--raqm-focus-ring-width) var(--raqm-invalid-ring)}:host(:disabled){pointer-events:none;opacity:var(--raqm-disabled-opacity)}\n"],
92
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
93
+ });
94
+ };
95
+ i0.ɵɵngDeclareClassMetadata({
96
+ minVersion: "12.0.0",
97
+ version: "22.2.2",
98
+ ngImport: i0,
99
+ type: RaqmToggle,
100
+ decorators: [{
101
+ type: Component,
102
+ args: [{
103
+ selector: "button[raqm-toggle]",
104
+ template: "<ng-content />",
105
+ changeDetection: ChangeDetectionStrategy.OnPush,
106
+ host: {
107
+ class: "raqm-toggle",
108
+ "[attr.data-raqm-variant]": "appearance()",
109
+ "[attr.data-raqm-small]": "activeSize() === \"small\" ? \"\" : null",
110
+ "[attr.data-raqm-large]": "activeSize() === \"large\" ? \"\" : null",
111
+ "[attr.aria-pressed]": "pressed() ? \"true\" : \"false\"",
112
+ "(click)": "onToggleClick()"
113
+ },
114
+ styles: [":host{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;-webkit-user-select:none;user-select:none;vertical-align:middle;gap:calc(var(--raqm-spacing) * 1);border-radius:var(--raqm-radius-lg);font-size:var(--raqm-font-size-sm);font-weight:var(--raqm-font-weight-medium);transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--raqm-duration-base);transition-timing-function:var(--raqm-ease-standard);outline:none;border:0;background-color:transparent;block-size:calc(var(--raqm-spacing) * 8);min-inline-size:calc(var(--raqm-spacing) * 8);padding-inline:calc(var(--raqm-spacing) * 2.5)}:host([data-raqm-small]){block-size:calc(var(--raqm-spacing) * 7);min-inline-size:calc(var(--raqm-spacing) * 7);border-radius:min(var(--raqm-radius-md),12px);padding-inline:calc(var(--raqm-spacing) * 2.5);font-size:.8rem}:host([data-raqm-large]){block-size:calc(var(--raqm-spacing) * 9);min-inline-size:calc(var(--raqm-spacing) * 9);padding-inline:calc(var(--raqm-spacing) * 2.5)}:host([data-raqm-variant=outline]){border:1px solid var(--raqm-input);background-color:transparent}:host(:hover){background-color:var(--raqm-muted);color:var(--raqm-foreground)}:host([aria-pressed=true]){background-color:var(--raqm-muted)}:host(:focus-visible){border-color:var(--raqm-ring);box-shadow:0 0 0 var(--raqm-focus-ring-width) var(--raqm-focus-ring-color)}:host([aria-invalid=true]){border-color:var(--raqm-invalid-border);box-shadow:0 0 0 var(--raqm-focus-ring-width) var(--raqm-invalid-ring)}:host(:disabled){pointer-events:none;opacity:var(--raqm-disabled-opacity)}\n"]
115
+ }]
116
+ }],
117
+ ctorParameters: () => [],
118
+ propDecorators: {
119
+ appearance: [{
120
+ type: i0.Input,
121
+ args: [{
122
+ isSignal: true,
123
+ alias: "raqm-toggle",
124
+ required: false
125
+ }]
126
+ }],
127
+ small: [{
128
+ type: i0.Input,
129
+ args: [{
130
+ isSignal: true,
131
+ alias: "small",
132
+ required: false
133
+ }]
134
+ }],
135
+ large: [{
136
+ type: i0.Input,
137
+ args: [{
138
+ isSignal: true,
139
+ alias: "large",
140
+ required: false
141
+ }]
142
+ }],
143
+ pressed: [{
144
+ type: i0.Input,
145
+ args: [{
146
+ isSignal: true,
147
+ alias: "pressed",
148
+ required: false
149
+ }]
150
+ }, {
151
+ type: i0.Output,
152
+ args: ["pressedChange"]
153
+ }]
154
+ }
155
+ });
156
+ export { RaqmToggle };
157
+
158
+ //# sourceMappingURL=raqm-ui-toggle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raqm-ui-toggle.mjs","names":[],"sources":["../../../projects/ui/toggle/toggle.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n model,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Native `<button>` toggle with a two-way `pressed` model and a derived `aria-pressed`.\r\n * `small`/`large` are mutually exclusive; the application owns the accessible name.\r\n */\r\n@Component({\r\n selector: 'button[raqm-toggle]',\r\n template: '<ng-content />',\r\n styleUrl: './toggle.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-toggle',\r\n '[attr.data-raqm-variant]': 'appearance()',\r\n '[attr.data-raqm-small]': 'activeSize() === \"small\" ? \"\" : null',\r\n '[attr.data-raqm-large]': 'activeSize() === \"large\" ? \"\" : null',\r\n // Exposed as a real ARIA state, never a role override.\r\n '[attr.aria-pressed]': 'pressed() ? \"true\" : \"false\"',\r\n '(click)': 'onToggleClick()',\r\n },\r\n})\r\nexport class RaqmToggle {\r\n private readonly host = inject(ElementRef<HTMLButtonElement>);\r\n\r\n // Public appearance marker; bare `raqm-toggle` means the default appearance.\r\n readonly appearance = input<'default' | 'outline'>('default', {\r\n alias: 'raqm-toggle',\r\n transform: (value: unknown): 'default' | 'outline' =>\r\n value === 'outline' ? 'outline' : 'default',\r\n });\r\n\r\n // Public size API: full-word booleans; neither means the default.\r\n readonly small = input(false, { transform: booleanAttribute });\r\n readonly large = input(false, { transform: booleanAttribute });\r\n\r\n /** The resolved size; setting both attributes is rejected. */\r\n protected readonly activeSize = computed<'default' | 'small' | 'large'>(() => {\r\n const small = this.small();\r\n const large = this.large();\r\n if (small && large) {\r\n throw new Error('raqm-toggle: use either small or large, not both.');\r\n }\r\n return large ? 'large' : small ? 'small' : 'default';\r\n });\r\n\r\n // Two-way pressed state; the application owns the value.\r\n readonly pressed = model<boolean>(false);\r\n\r\n constructor() {\r\n // `button` is set only when no consumer `type` exists; an explicit native value is preserved.\r\n const element = this.host.nativeElement;\r\n if (!element.hasAttribute('type')) {\r\n element.setAttribute('type', 'button');\r\n }\r\n }\r\n\r\n /** Toggles once per native activation; the guard is defensive because disabled buttons already suppress click. */\r\n protected onToggleClick(): void {\r\n if (this.host.nativeElement.disabled) {\r\n return;\r\n }\r\n this.pressed.update((value) => !value);\r\n }\r\n}\r\n"],"mappings":";;AA8BA,IAAa,aAAb,MAAa,WAAU;CACJ,OAAO,OAAO,UAA6B;CAGnD,aAAa,MAA6B,WAAS;EAAA,GAAA,YAAA,EAAA,WAAA,aAAA,+BAAA,CAAA;EAC1D,OAAO;EACP,YAAY,UACV,UAAU,YAAY,YAAY;CAAS,CAAA;CAItC,QAAQ,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,QAAA,+BAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAClD,QAAQ,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,QAAA,+BAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CAGxC,aAAa,eAA6C;EAC3E,MAAM,QAAQ,KAAK,MAAK;EACxB,MAAM,QAAQ,KAAK,MAAK;EACxB,IAAI,SAAS,OACX,MAAM,IAAI,MAAM,mDAAmD;EAErE,OAAO,QAAQ,UAAU,QAAQ,UAAU;CAC7C,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAGO,UAAU,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAExC,cAAA;EAEE,MAAM,UAAU,KAAK,KAAK;EAC1B,IAAI,CAAC,QAAQ,aAAa,MAAM,GAC9B,QAAQ,aAAa,QAAQ,QAAQ;CAEzC;CAGU,gBAAa;EACrB,IAAI,KAAK,KAAK,cAAc,UAC1B;EAEF,KAAK,QAAQ,QAAQ,UAAU,CAAC,KAAK;CACvC;CAzCW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAU,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAV,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAU,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,YAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA,EAAA,SAAA,gBAAA;EAAA,MAAA;GAAA,WAAA,EAAA,SAAA,kBAAA;GAAA,YAAA;IAAA,0BAAA;IAAA,wBAAA;IAAA,wBAAA;IAAA,qBAAA;GAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;EAAA,UAbX;EAAgB,UAAA;EAAA,QAAA,CAAA,4kDAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAaf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAU,YAAA,CAAA;EAftB,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAqB,UACrB;GAAgB,iBAET,wBAAwB;GAAM,MACzC;IACJ,OAAO;IACP,4BAA4B;IAC5B,0BAA0B;IAC1B,0BAA0B;IAE1B,uBAAuB;IACvB,WAAW;GACZ;GAAA,QAAA,CAAA,4kDAAA;EAAA,CAAA"}