@radix-ng/primitives 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/alert-dialog/index.d.ts +11 -0
  2. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +3 -3
  3. package/alert-dialog/src/alert-dialog-content.directive.d.ts +3 -3
  4. package/alert-dialog/src/alert-dialog-root.directive.d.ts +3 -3
  5. package/alert-dialog/src/alert-dialog-title.directive.d.ts +3 -3
  6. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +3 -3
  7. package/alert-dialog/src/alert-dialog.service.d.ts +3 -3
  8. package/aspect-ratio/README.md +1 -0
  9. package/aspect-ratio/index.d.ts +1 -0
  10. package/aspect-ratio/src/aspect-ratio.directive.d.ts +28 -0
  11. package/compodoc/documentation.json +878 -292
  12. package/core/index.d.ts +6 -0
  13. package/core/src/accessor/provide-value-accessor.d.ts +12 -0
  14. package/core/src/auto-focus.directive.d.ts +14 -0
  15. package/core/src/document.d.ts +1 -0
  16. package/core/src/inject-ng-control.d.ts +8 -0
  17. package/core/src/is-client.d.ts +1 -0
  18. package/core/src/window.d.ts +3 -0
  19. package/esm2022/alert-dialog/index.mjs +35 -1
  20. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +7 -7
  21. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +7 -7
  22. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +7 -7
  23. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +5 -5
  24. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +7 -7
  25. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +5 -5
  26. package/esm2022/aspect-ratio/index.mjs +2 -0
  27. package/esm2022/aspect-ratio/radix-ng-primitives-aspect-ratio.mjs +5 -0
  28. package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +53 -0
  29. package/esm2022/core/index.mjs +7 -0
  30. package/esm2022/core/radix-ng-primitives-core.mjs +5 -0
  31. package/esm2022/core/src/accessor/provide-value-accessor.mjs +19 -0
  32. package/esm2022/core/src/auto-focus.directive.mjs +80 -0
  33. package/esm2022/core/src/document.mjs +6 -0
  34. package/esm2022/core/src/inject-ng-control.mjs +17 -0
  35. package/esm2022/core/src/is-client.mjs +6 -0
  36. package/esm2022/core/src/window.mjs +15 -0
  37. package/esm2022/separator/src/separator.directive.mjs +33 -15
  38. package/esm2022/visually-hidden/index.mjs +4 -0
  39. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +5 -0
  40. package/esm2022/visually-hidden/src/visually-hidden-input-bubble.directive.mjs +74 -0
  41. package/esm2022/visually-hidden/src/visually-hidden-input.directive.mjs +74 -0
  42. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +42 -0
  43. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +59 -31
  44. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +60 -0
  46. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -0
  47. package/fesm2022/radix-ng-primitives-core.mjs +144 -0
  48. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -0
  49. package/fesm2022/radix-ng-primitives-separator.mjs +32 -14
  50. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  51. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +189 -0
  52. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -0
  53. package/package.json +19 -1
  54. package/separator/src/separator.directive.d.ts +29 -5
  55. package/visually-hidden/README.md +3 -0
  56. package/visually-hidden/index.d.ts +3 -0
  57. package/visually-hidden/src/visually-hidden-input-bubble.directive.d.ts +21 -0
  58. package/visually-hidden/src/visually-hidden-input.directive.d.ts +19 -0
  59. package/visually-hidden/src/visually-hidden.directive.d.ts +15 -0
@@ -244,12 +244,12 @@
244
244
  },
245
245
  {
246
246
  "name": "SeparatorProps",
247
- "id": "interface-SeparatorProps-4949c922492b142101253d6d48cac42ca3a0b376ad10b5fc62486d2835799ec052bf8e91d3d2a6a0299a4b21e857e6b1eb34ce436753e284358d6e3349cd248b",
247
+ "id": "interface-SeparatorProps-b69bdacfd17a9613b054bf8ca89fdc318eb7cac4d0d01179b19d405de3894ec017075d1b44c9d9a19e23ca7070398a1ce34ec61a992e0b6e21349554d1300827",
248
248
  "file": "separator/src/separator.directive.ts",
249
249
  "deprecated": false,
250
250
  "deprecationMessage": "",
251
251
  "type": "interface",
252
- "sourceCode": "import { booleanAttribute, Directive, Input } from '@angular/core';\n\nconst DEFAULT_ORIENTATION = 'horizontal';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\nexport type Orientation = (typeof ORIENTATIONS)[number];\n\nexport interface SeparatorProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether the component is purely decorative. When true, accessibility-related attributes\n * are updated so that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\n@Directive({\n selector: 'div[rdxSeparatorRoot]',\n standalone: true,\n host: {\n '[attr.role]': 'decorative ? \"none\" : \"separator\"',\n // `aria-orientation` defaults to `horizontal` so we only need it if `orientation` is vertical\n '[attr.aria-orientation]': '!decorative && orientation === \"vertical\" ? \"vertical\" : null',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class RdxSeparatorRootDirective implements SeparatorProps {\n @Input() orientation: Orientation = DEFAULT_ORIENTATION;\n\n @Input({ transform: booleanAttribute }) decorative = false;\n}\n",
252
+ "sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\n\nconst DEFAULT_ORIENTATION = 'horizontal';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\nexport type Orientation = (typeof ORIENTATIONS)[number];\n\nexport interface SeparatorProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether the component is purely decorative. When true, accessibility-related attributes\n * are updated so that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\n/**\n * Directive that adds accessible and configurable separator element to the DOM.\n * This can be either horizontal or vertical and optionally decorative (which removes\n * it from the accessibility tree).\n */\n@Directive({\n selector: 'div[rdxSeparatorRoot]',\n standalone: true,\n host: {\n '[attr.role]': 'computedRole()',\n '[attr.aria-orientation]': 'computedAriaOrientation()',\n\n '[attr.data-orientation]': 'orientation()'\n }\n})\nexport class RdxSeparatorRootDirective {\n /**\n * Orientation of the separator, can be either 'horizontal' or 'vertical'.\n * Defaults to 'horizontal'.\n */\n readonly orientation = input<Orientation>(DEFAULT_ORIENTATION);\n\n /**\n * If true, the separator will be considered decorative and removed from\n * the accessibility tree. Defaults to false.\n */\n readonly decorative = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Computes the `role` attribute for the separator. If `decorative` is true,\n * the role is set to \"none\", otherwise it is \"separator\".\n */\n protected readonly computedRole = computed(() => (this.decorative() ? 'none' : 'separator'));\n\n /**\n * Computes the `aria-orientation` attribute. It is set to \"vertical\" only if\n * the separator is not decorative and the orientation is set to \"vertical\".\n * For horizontal orientation, the attribute is omitted.\n */\n protected readonly computedAriaOrientation = computed(() =>\n !this.decorative() && this.orientation() === 'vertical' ? 'vertical' : null\n );\n}\n",
253
253
  "properties": [
254
254
  {
255
255
  "name": "decorative",
@@ -258,7 +258,7 @@
258
258
  "type": "boolean",
259
259
  "optional": true,
260
260
  "description": "<p>Whether the component is purely decorative. When true, accessibility-related attributes\nare updated so that the rendered element is removed from the accessibility tree.</p>\n",
261
- "line": 18,
261
+ "line": 20,
262
262
  "rawdescription": "\n\nWhether the component is purely decorative. When true, accessibility-related attributes\nare updated so that the rendered element is removed from the accessibility tree.\n"
263
263
  },
264
264
  {
@@ -268,7 +268,7 @@
268
268
  "type": "Orientation",
269
269
  "optional": true,
270
270
  "description": "<p>Either <code>vertical</code> or <code>horizontal</code>. Defaults to <code>horizontal</code>.</p>\n",
271
- "line": 13,
271
+ "line": 15,
272
272
  "rawdescription": "\n\nEither `vertical` or `horizontal`. Defaults to `horizontal`.\n"
273
273
  }
274
274
  ],
@@ -589,8 +589,8 @@
589
589
  ],
590
590
  "injectables": [
591
591
  {
592
- "name": "AlertDialogService",
593
- "id": "injectable-AlertDialogService-8d428f987df697adb3ff9b46401d634adbe4fbab8d25020545ec97ce84f75c2f3bb2d4d9f85b618d8eeaed93609fbf75d33baab663fd5086249e232966e5e79d",
592
+ "name": "RdxAlertDialogService",
593
+ "id": "injectable-RdxAlertDialogService-c42754b80223a5530d730417173e6eb90164a45164d767268b011c59e9012ff88d313a8ba20407a578b1a07d48bc540233a05a6f1c033230e0cf1deeda736aee",
594
594
  "file": "alert-dialog/src/alert-dialog.service.ts",
595
595
  "properties": [],
596
596
  "methods": [
@@ -662,7 +662,7 @@
662
662
  "deprecationMessage": "",
663
663
  "description": "",
664
664
  "rawdescription": "\n",
665
- "sourceCode": "import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertDialogService {\n private overlayRef: OverlayRef | null | undefined;\n private dialogContent:\n | {\n viewContainerRef: ViewContainerRef;\n template: TemplateRef<any>;\n }\n | undefined;\n\n constructor(private overlay: Overlay) {}\n\n setDialogContent(viewContainerRef: ViewContainerRef, template: TemplateRef<any>) {\n this.dialogContent = { viewContainerRef, template };\n }\n\n open() {\n if (!this.dialogContent) {\n throw new Error('Dialog content is not set');\n }\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically()\n });\n\n const templatePortal = new TemplatePortal(this.dialogContent.template, this.dialogContent.viewContainerRef);\n this.overlayRef.attach(templatePortal);\n\n this.overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape' || event.code === 'Escape') {\n this.close();\n }\n });\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n}\n",
665
+ "sourceCode": "import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RdxAlertDialogService {\n private overlayRef: OverlayRef | null | undefined;\n private dialogContent:\n | {\n viewContainerRef: ViewContainerRef;\n template: TemplateRef<any>;\n }\n | undefined;\n\n constructor(private overlay: Overlay) {}\n\n setDialogContent(viewContainerRef: ViewContainerRef, template: TemplateRef<any>) {\n this.dialogContent = { viewContainerRef, template };\n }\n\n open() {\n if (!this.dialogContent) {\n throw new Error('Dialog content is not set');\n }\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically()\n });\n\n const templatePortal = new TemplatePortal(this.dialogContent.template, this.dialogContent.viewContainerRef);\n this.overlayRef.attach(templatePortal);\n\n this.overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape' || event.code === 'Escape') {\n this.close();\n }\n });\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n}\n",
666
666
  "constructorObj": {
667
667
  "name": "constructor",
668
668
  "description": "",
@@ -1133,226 +1133,6 @@
1133
1133
  }
1134
1134
  ],
1135
1135
  "directives": [
1136
- {
1137
- "name": "AlertDialogCancelDirective",
1138
- "id": "directive-AlertDialogCancelDirective-ec486d3f2722528a718f88338533047b00f831f74a494264f69d6c4a190cde897fe0fc0316dfc2379fbda1fa9c2b4c3c47d8445604113be819acd9d8aa46aad0",
1139
- "file": "alert-dialog/src/alert-dialog-cancel.directive.ts",
1140
- "type": "directive",
1141
- "description": "",
1142
- "rawdescription": "\n",
1143
- "sourceCode": "import { Directive, inject } from '@angular/core';\nimport { AlertDialogService } from './alert-dialog.service';\n\n@Directive({\n selector: '[rdxAlertDialogCancel]',\n standalone: true,\n host: {\n '(click)': 'onClick()'\n }\n})\nexport class AlertDialogCancelDirective {\n private readonly alertDialogService = inject(AlertDialogService);\n\n onClick() {\n this.alertDialogService.close();\n }\n}\n",
1144
- "selector": "[rdxAlertDialogCancel]",
1145
- "providers": [],
1146
- "hostDirectives": [],
1147
- "standalone": true,
1148
- "inputsClass": [],
1149
- "outputsClass": [],
1150
- "deprecated": false,
1151
- "deprecationMessage": "",
1152
- "hostBindings": [],
1153
- "hostListeners": [],
1154
- "propertiesClass": [],
1155
- "methodsClass": [
1156
- {
1157
- "name": "onClick",
1158
- "args": [],
1159
- "optional": false,
1160
- "returnType": "void",
1161
- "typeParameters": [],
1162
- "line": 14,
1163
- "deprecated": false,
1164
- "deprecationMessage": ""
1165
- }
1166
- ],
1167
- "extends": []
1168
- },
1169
- {
1170
- "name": "AlertDialogContentDirective",
1171
- "id": "directive-AlertDialogContentDirective-fc5389414aee2ba13bf816c13ff24988883abbde938768bd1416238547bb3f21f1eec0996df1099cb0a248c9cbcd801e7e4586643221faa866010c5bc2981cc5",
1172
- "file": "alert-dialog/src/alert-dialog-content.directive.ts",
1173
- "type": "directive",
1174
- "description": "",
1175
- "rawdescription": "\n",
1176
- "sourceCode": "import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, inject, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[rdxAlertDialogContent]',\n hostDirectives: [\n {\n directive: CdkTrapFocus\n }\n ],\n standalone: true,\n host: {\n '[attr.data-state]': 'open',\n '[attr.cdkTrapFocusAutoCapture]': 'true'\n }\n})\nexport class AlertDialogContentDirective {\n private readonly renderer = inject(Renderer2);\n private readonly elementRef = inject(ElementRef);\n\n @Input() set maxWidth(value: string) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'maxWidth', value);\n }\n}\n",
1177
- "selector": "[rdxAlertDialogContent]",
1178
- "providers": [],
1179
- "hostDirectives": [
1180
- {
1181
- "name": "CdkTrapFocus",
1182
- "inputs": [],
1183
- "outputs": []
1184
- }
1185
- ],
1186
- "standalone": true,
1187
- "inputsClass": [
1188
- {
1189
- "name": "maxWidth",
1190
- "deprecated": false,
1191
- "deprecationMessage": "",
1192
- "line": 21,
1193
- "type": "string",
1194
- "decorators": []
1195
- }
1196
- ],
1197
- "outputsClass": [],
1198
- "deprecated": false,
1199
- "deprecationMessage": "",
1200
- "hostBindings": [],
1201
- "hostListeners": [],
1202
- "propertiesClass": [],
1203
- "methodsClass": [],
1204
- "extends": [],
1205
- "accessors": {
1206
- "maxWidth": {
1207
- "name": "maxWidth",
1208
- "setSignature": {
1209
- "name": "maxWidth",
1210
- "type": "void",
1211
- "deprecated": false,
1212
- "deprecationMessage": "",
1213
- "args": [
1214
- {
1215
- "name": "value",
1216
- "type": "string",
1217
- "deprecated": false,
1218
- "deprecationMessage": ""
1219
- }
1220
- ],
1221
- "returnType": "void",
1222
- "line": 21,
1223
- "jsdoctags": [
1224
- {
1225
- "name": "value",
1226
- "type": "string",
1227
- "deprecated": false,
1228
- "deprecationMessage": "",
1229
- "tagName": {
1230
- "text": "param"
1231
- }
1232
- }
1233
- ]
1234
- }
1235
- }
1236
- }
1237
- },
1238
- {
1239
- "name": "AlertDialogRootDirective",
1240
- "id": "directive-AlertDialogRootDirective-6d55043842c1b716957eb02fa934bad8a762c5a8f858e51cd0713938af47093c4103291bdd6195269978940b957c77900a759a1a7eacd12e33f954f59518f57e",
1241
- "file": "alert-dialog/src/alert-dialog-root.directive.ts",
1242
- "type": "directive",
1243
- "description": "",
1244
- "rawdescription": "\n",
1245
- "sourceCode": "import { Directive, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AlertDialogService } from './alert-dialog.service';\n\n@Directive({\n selector: '[rdxAlertDialogRoot]',\n standalone: true\n})\nexport class AlertDialogRootDirective {\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly alertDialogService = inject(AlertDialogService);\n\n @Input() set content(template: TemplateRef<any>) {\n this.alertDialogService.setDialogContent(this.viewContainerRef, template);\n }\n}\n",
1246
- "selector": "[rdxAlertDialogRoot]",
1247
- "providers": [],
1248
- "hostDirectives": [],
1249
- "standalone": true,
1250
- "inputsClass": [
1251
- {
1252
- "name": "content",
1253
- "deprecated": false,
1254
- "deprecationMessage": "",
1255
- "line": 12,
1256
- "type": "TemplateRef<any>",
1257
- "decorators": []
1258
- }
1259
- ],
1260
- "outputsClass": [],
1261
- "deprecated": false,
1262
- "deprecationMessage": "",
1263
- "hostBindings": [],
1264
- "hostListeners": [],
1265
- "propertiesClass": [],
1266
- "methodsClass": [],
1267
- "extends": [],
1268
- "accessors": {
1269
- "content": {
1270
- "name": "content",
1271
- "setSignature": {
1272
- "name": "content",
1273
- "type": "void",
1274
- "deprecated": false,
1275
- "deprecationMessage": "",
1276
- "args": [
1277
- {
1278
- "name": "template",
1279
- "type": "TemplateRef<any>",
1280
- "deprecated": false,
1281
- "deprecationMessage": ""
1282
- }
1283
- ],
1284
- "returnType": "void",
1285
- "line": 12,
1286
- "jsdoctags": [
1287
- {
1288
- "name": "template",
1289
- "type": "TemplateRef<any>",
1290
- "deprecated": false,
1291
- "deprecationMessage": "",
1292
- "tagName": {
1293
- "text": "param"
1294
- }
1295
- }
1296
- ]
1297
- }
1298
- }
1299
- }
1300
- },
1301
- {
1302
- "name": "AlertDialogTitleDirective",
1303
- "id": "directive-AlertDialogTitleDirective-f00d6c32a66df82c82b0e83689b047ca8b2a3e61239b43ead945e45ccfb480dba01e597dcfe1c7cf5ab4bf44ffd1178cc0c4f8514924f04d3326dedfa8790dbd",
1304
- "file": "alert-dialog/src/alert-dialog-title.directive.ts",
1305
- "type": "directive",
1306
- "description": "",
1307
- "rawdescription": "\n",
1308
- "sourceCode": "import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxAlertDialogTitle]',\n standalone: true\n})\nexport class AlertDialogTitleDirective {}\n",
1309
- "selector": "[rdxAlertDialogTitle]",
1310
- "providers": [],
1311
- "hostDirectives": [],
1312
- "standalone": true,
1313
- "inputsClass": [],
1314
- "outputsClass": [],
1315
- "deprecated": false,
1316
- "deprecationMessage": "",
1317
- "hostBindings": [],
1318
- "hostListeners": [],
1319
- "propertiesClass": [],
1320
- "methodsClass": [],
1321
- "extends": []
1322
- },
1323
- {
1324
- "name": "AlertDialogTriggerDirective",
1325
- "id": "directive-AlertDialogTriggerDirective-dd69bd1802ec0fddc8a5056a6ad30b0b655ef4f889001904d4dad8fdd78a9c4a067ade3b6466973c049824d81b5610184f01409bcb6d4c71c3ea70c781a1ffe9",
1326
- "file": "alert-dialog/src/alert-dialog-trigger.directive.ts",
1327
- "type": "directive",
1328
- "description": "",
1329
- "rawdescription": "\n",
1330
- "sourceCode": "import { Directive, inject } from '@angular/core';\nimport { AlertDialogService } from './alert-dialog.service';\n\n@Directive({\n selector: '[rdxAlertDialogTrigger]',\n standalone: true,\n host: {\n '(click)': 'handleClick()'\n }\n})\nexport class AlertDialogTriggerDirective {\n private readonly alertDialogService = inject(AlertDialogService);\n\n handleClick() {\n this.alertDialogService.open();\n }\n}\n",
1331
- "selector": "[rdxAlertDialogTrigger]",
1332
- "providers": [],
1333
- "hostDirectives": [],
1334
- "standalone": true,
1335
- "inputsClass": [],
1336
- "outputsClass": [],
1337
- "deprecated": false,
1338
- "deprecationMessage": "",
1339
- "hostBindings": [],
1340
- "hostListeners": [],
1341
- "propertiesClass": [],
1342
- "methodsClass": [
1343
- {
1344
- "name": "handleClick",
1345
- "args": [],
1346
- "optional": false,
1347
- "returnType": "void",
1348
- "typeParameters": [],
1349
- "line": 14,
1350
- "deprecated": false,
1351
- "deprecationMessage": ""
1352
- }
1353
- ],
1354
- "extends": []
1355
- },
1356
1136
  {
1357
1137
  "name": "OnMountDirective",
1358
1138
  "id": "directive-OnMountDirective-f1da695b0136450bf11acf48f95325bc4b4fcbd954ee2e2f98ecf0edecfc8aad023d6ca9d3f1c28ca07481a5526c6276e09a761bc8f572e200a4d94da96f8b33",
@@ -2107,24 +1887,300 @@
2107
1887
  "extends": []
2108
1888
  },
2109
1889
  {
2110
- "name": "RdxAutoFocusDirective",
2111
- "id": "directive-RdxAutoFocusDirective-36fdd916db27dba985b1c2f77905595edbce993570293a337d7b80f0efa4ef852996b041e5caad932322228c1d26e64ac067d0aac41a4e3e390475bed79dfb5d",
2112
- "file": "core/src/auto-focus.directive.ts",
1890
+ "name": "RdxAlertDialogCancelDirective",
1891
+ "id": "directive-RdxAlertDialogCancelDirective-d80bbcc24200cb95f19a5dd6a1f1e57d6c949b31566fc80c29d4b81d4558efdd1c5b7e257efa93d549ad088e73be6fd00e831786aebf3c43c6e5bffcd69fe53a",
1892
+ "file": "alert-dialog/src/alert-dialog-cancel.directive.ts",
2113
1893
  "type": "directive",
2114
1894
  "description": "",
2115
1895
  "rawdescription": "\n",
2116
- "sourceCode": "import { booleanAttribute, Directive, ElementRef, inject, Input, NgZone } from '@angular/core';\n\n/*\n * <div [rdxAutoFocus]=\"true\"></div>\n */\n\n@Directive({\n selector: '[rdxAutoFocus]',\n standalone: true\n})\nexport class RdxAutoFocusDirective {\n #elementRef = inject(ElementRef);\n #ngZone = inject(NgZone);\n\n private _autoSelect = false;\n\n /**\n * @default false\n */\n @Input({ alias: 'rdxAutoFocus', transform: booleanAttribute })\n set autoFocus(value: boolean) {\n if (value) {\n // Note: Running this outside Angular's zone because `element.focus()` does not trigger change detection.\n this.#ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout which might lead to frame drops on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask executed within the current rendering frame.\n // Animation tasks are executed in the next rendering frame.\n reqAnimationFrame(() => {\n this.#elementRef.nativeElement.focus();\n if (this._autoSelect && this.#elementRef.nativeElement.select) {\n this.#elementRef.nativeElement.select();\n }\n })\n );\n }\n }\n\n // Setter for autoSelect attribute to enable text selection when autoFocus is true.\n @Input({ transform: booleanAttribute })\n set autoSelect(value: boolean) {\n this._autoSelect = value;\n }\n}\n\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n\n return function (callback: FrameRequestCallback): number {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall) as any;\n\n lastTime = currTime + timeToCall;\n\n return id;\n };\n}\n\n// Function to get the appropriate requestAnimationFrame method with fallback to polyfill.\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\n\n// Get the requestAnimationFrame function or its polyfill.\nconst reqAnimationFrame = getRequestAnimationFrame();\n",
2117
- "selector": "[rdxAutoFocus]",
1896
+ "sourceCode": "import { Directive, inject } from '@angular/core';\nimport { RdxAlertDialogService } from './alert-dialog.service';\n\n@Directive({\n selector: '[rdxAlertDialogCancel]',\n standalone: true,\n host: {\n '(click)': 'onClick()'\n }\n})\nexport class RdxAlertDialogCancelDirective {\n private readonly alertDialogService = inject(RdxAlertDialogService);\n\n onClick() {\n this.alertDialogService.close();\n }\n}\n",
1897
+ "selector": "[rdxAlertDialogCancel]",
2118
1898
  "providers": [],
2119
1899
  "hostDirectives": [],
2120
1900
  "standalone": true,
1901
+ "inputsClass": [],
1902
+ "outputsClass": [],
1903
+ "deprecated": false,
1904
+ "deprecationMessage": "",
1905
+ "hostBindings": [],
1906
+ "hostListeners": [],
1907
+ "propertiesClass": [],
1908
+ "methodsClass": [
1909
+ {
1910
+ "name": "onClick",
1911
+ "args": [],
1912
+ "optional": false,
1913
+ "returnType": "void",
1914
+ "typeParameters": [],
1915
+ "line": 14,
1916
+ "deprecated": false,
1917
+ "deprecationMessage": ""
1918
+ }
1919
+ ],
1920
+ "extends": []
1921
+ },
1922
+ {
1923
+ "name": "RdxAlertDialogContentDirective",
1924
+ "id": "directive-RdxAlertDialogContentDirective-bcd379f8a36aafcdcddf8ed7d03e62ca30b760e9666397ded9ec4f69b08fb8dc849894cf891d03d233b5f79939f9aa7b388f8104e7d360a6a5469a40bc815680",
1925
+ "file": "alert-dialog/src/alert-dialog-content.directive.ts",
1926
+ "type": "directive",
1927
+ "description": "",
1928
+ "rawdescription": "\n",
1929
+ "sourceCode": "import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, inject, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[rdxAlertDialogContent]',\n standalone: true,\n hostDirectives: [\n {\n directive: CdkTrapFocus\n }\n ],\n host: {\n '[attr.data-state]': '\"open\"',\n '[attr.cdkTrapFocusAutoCapture]': 'true'\n }\n})\nexport class RdxAlertDialogContentDirective {\n private readonly renderer = inject(Renderer2);\n private readonly elementRef = inject(ElementRef);\n\n @Input() set maxWidth(value: string) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'maxWidth', value);\n }\n}\n",
1930
+ "selector": "[rdxAlertDialogContent]",
1931
+ "providers": [],
1932
+ "hostDirectives": [
1933
+ {
1934
+ "name": "CdkTrapFocus",
1935
+ "inputs": [],
1936
+ "outputs": []
1937
+ }
1938
+ ],
1939
+ "standalone": true,
2121
1940
  "inputsClass": [
2122
1941
  {
2123
- "required": false,
2124
- "name": "autoSelect",
1942
+ "name": "maxWidth",
2125
1943
  "deprecated": false,
2126
1944
  "deprecationMessage": "",
2127
- "line": 41,
1945
+ "line": 21,
1946
+ "type": "string",
1947
+ "decorators": []
1948
+ }
1949
+ ],
1950
+ "outputsClass": [],
1951
+ "deprecated": false,
1952
+ "deprecationMessage": "",
1953
+ "hostBindings": [],
1954
+ "hostListeners": [],
1955
+ "propertiesClass": [],
1956
+ "methodsClass": [],
1957
+ "extends": [],
1958
+ "accessors": {
1959
+ "maxWidth": {
1960
+ "name": "maxWidth",
1961
+ "setSignature": {
1962
+ "name": "maxWidth",
1963
+ "type": "void",
1964
+ "deprecated": false,
1965
+ "deprecationMessage": "",
1966
+ "args": [
1967
+ {
1968
+ "name": "value",
1969
+ "type": "string",
1970
+ "deprecated": false,
1971
+ "deprecationMessage": ""
1972
+ }
1973
+ ],
1974
+ "returnType": "void",
1975
+ "line": 21,
1976
+ "jsdoctags": [
1977
+ {
1978
+ "name": "value",
1979
+ "type": "string",
1980
+ "deprecated": false,
1981
+ "deprecationMessage": "",
1982
+ "tagName": {
1983
+ "text": "param"
1984
+ }
1985
+ }
1986
+ ]
1987
+ }
1988
+ }
1989
+ }
1990
+ },
1991
+ {
1992
+ "name": "RdxAlertDialogRootDirective",
1993
+ "id": "directive-RdxAlertDialogRootDirective-4cb3487f643dbbef236c48379c7da78bf400ec2cf09d4ac725947e8c86e7dd0bebe63e406112cb8e58de641f984309e1b643ea857d8312574530a815a448a79e",
1994
+ "file": "alert-dialog/src/alert-dialog-root.directive.ts",
1995
+ "type": "directive",
1996
+ "description": "",
1997
+ "rawdescription": "\n",
1998
+ "sourceCode": "import { Directive, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { RdxAlertDialogService } from './alert-dialog.service';\n\n@Directive({\n selector: '[rdxAlertDialogRoot]',\n standalone: true\n})\nexport class RdxAlertDialogRootDirective {\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly alertDialogService = inject(RdxAlertDialogService);\n\n @Input() set content(template: TemplateRef<any>) {\n this.alertDialogService.setDialogContent(this.viewContainerRef, template);\n }\n}\n",
1999
+ "selector": "[rdxAlertDialogRoot]",
2000
+ "providers": [],
2001
+ "hostDirectives": [],
2002
+ "standalone": true,
2003
+ "inputsClass": [
2004
+ {
2005
+ "name": "content",
2006
+ "deprecated": false,
2007
+ "deprecationMessage": "",
2008
+ "line": 12,
2009
+ "type": "TemplateRef<any>",
2010
+ "decorators": []
2011
+ }
2012
+ ],
2013
+ "outputsClass": [],
2014
+ "deprecated": false,
2015
+ "deprecationMessage": "",
2016
+ "hostBindings": [],
2017
+ "hostListeners": [],
2018
+ "propertiesClass": [],
2019
+ "methodsClass": [],
2020
+ "extends": [],
2021
+ "accessors": {
2022
+ "content": {
2023
+ "name": "content",
2024
+ "setSignature": {
2025
+ "name": "content",
2026
+ "type": "void",
2027
+ "deprecated": false,
2028
+ "deprecationMessage": "",
2029
+ "args": [
2030
+ {
2031
+ "name": "template",
2032
+ "type": "TemplateRef<any>",
2033
+ "deprecated": false,
2034
+ "deprecationMessage": ""
2035
+ }
2036
+ ],
2037
+ "returnType": "void",
2038
+ "line": 12,
2039
+ "jsdoctags": [
2040
+ {
2041
+ "name": "template",
2042
+ "type": "TemplateRef<any>",
2043
+ "deprecated": false,
2044
+ "deprecationMessage": "",
2045
+ "tagName": {
2046
+ "text": "param"
2047
+ }
2048
+ }
2049
+ ]
2050
+ }
2051
+ }
2052
+ }
2053
+ },
2054
+ {
2055
+ "name": "RdxAlertDialogTitleDirective",
2056
+ "id": "directive-RdxAlertDialogTitleDirective-9c00bcacce12a6a8a942c7696d936890dc26e3a7654205edf07def508039eb099fad0368f7b5eca7f5aea4efc156b3802d63cd96c52abcc6ff5190d70e0c09b5",
2057
+ "file": "alert-dialog/src/alert-dialog-title.directive.ts",
2058
+ "type": "directive",
2059
+ "description": "",
2060
+ "rawdescription": "\n",
2061
+ "sourceCode": "import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxAlertDialogTitle]',\n standalone: true\n})\nexport class RdxAlertDialogTitleDirective {}\n",
2062
+ "selector": "[rdxAlertDialogTitle]",
2063
+ "providers": [],
2064
+ "hostDirectives": [],
2065
+ "standalone": true,
2066
+ "inputsClass": [],
2067
+ "outputsClass": [],
2068
+ "deprecated": false,
2069
+ "deprecationMessage": "",
2070
+ "hostBindings": [],
2071
+ "hostListeners": [],
2072
+ "propertiesClass": [],
2073
+ "methodsClass": [],
2074
+ "extends": []
2075
+ },
2076
+ {
2077
+ "name": "RdxAlertDialogTriggerDirective",
2078
+ "id": "directive-RdxAlertDialogTriggerDirective-422c72ac6dd420ea1027d9205052dc8fadb62cc127fc0dfd24099d56c973163df8719acef428bf74d102c4a5e6bd0a6aaf2f1957bb11a35ff9866ad4eb80e9b0",
2079
+ "file": "alert-dialog/src/alert-dialog-trigger.directive.ts",
2080
+ "type": "directive",
2081
+ "description": "",
2082
+ "rawdescription": "\n",
2083
+ "sourceCode": "import { Directive, inject } from '@angular/core';\nimport { RdxAlertDialogService } from './alert-dialog.service';\n\n@Directive({\n selector: '[rdxAlertDialogTrigger]',\n standalone: true,\n host: {\n '(click)': 'handleClick()'\n }\n})\nexport class RdxAlertDialogTriggerDirective {\n private readonly alertDialogService = inject(RdxAlertDialogService);\n\n handleClick() {\n this.alertDialogService.open();\n }\n}\n",
2084
+ "selector": "[rdxAlertDialogTrigger]",
2085
+ "providers": [],
2086
+ "hostDirectives": [],
2087
+ "standalone": true,
2088
+ "inputsClass": [],
2089
+ "outputsClass": [],
2090
+ "deprecated": false,
2091
+ "deprecationMessage": "",
2092
+ "hostBindings": [],
2093
+ "hostListeners": [],
2094
+ "propertiesClass": [],
2095
+ "methodsClass": [
2096
+ {
2097
+ "name": "handleClick",
2098
+ "args": [],
2099
+ "optional": false,
2100
+ "returnType": "void",
2101
+ "typeParameters": [],
2102
+ "line": 14,
2103
+ "deprecated": false,
2104
+ "deprecationMessage": ""
2105
+ }
2106
+ ],
2107
+ "extends": []
2108
+ },
2109
+ {
2110
+ "name": "RdxAspectRatioDirective",
2111
+ "id": "directive-RdxAspectRatioDirective-b883c7bbe79c382fa6312aba8d6b55b2774a26494dc6d49d77e3d654fd0e27d8142fce11b91158010431c1e125d8b1cd424acbf9cd93a07c2c3020863090e54b",
2112
+ "file": "aspect-ratio/src/aspect-ratio.directive.ts",
2113
+ "type": "directive",
2114
+ "description": "<p>Directive to maintain an aspect ratio for an element.\nThe element will have its <code>padding-bottom</code> dynamically calculated\nbased on the provided aspect ratio to maintain the desired ratio.\nThe content inside the element will be positioned absolutely.</p>\n",
2115
+ "rawdescription": "\n\nDirective to maintain an aspect ratio for an element.\nThe element will have its `padding-bottom` dynamically calculated\nbased on the provided aspect ratio to maintain the desired ratio.\nThe content inside the element will be positioned absolutely.\n",
2116
+ "sourceCode": "import { NumberInput } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n Renderer2\n} from '@angular/core';\n\n/**\n * Directive to maintain an aspect ratio for an element.\n * The element will have its `padding-bottom` dynamically calculated\n * based on the provided aspect ratio to maintain the desired ratio.\n * The content inside the element will be positioned absolutely.\n */\n@Directive({\n selector: '[rdxAspectRatio]',\n exportAs: 'rdxAspectRatio',\n standalone: true,\n host: {\n '[style.position]': `'relative'`,\n '[style.width]': `'100%'`,\n '[style.padding-bottom]': 'paddingBottom()'\n }\n})\nexport class RdxAspectRatioDirective implements AfterViewInit {\n private element = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n /**\n * The desired aspect ratio (e.g., 16/9).\n * By default, it is set to 1 (which results in a square, 1:1).\n */\n readonly ratio = input<number, NumberInput>(1, { transform: numberAttribute });\n\n /**\n * Dynamically computed `padding-bottom` style for the element.\n * This value is calculated based on the inverse of the aspect ratio.\n *\n * If the ratio is zero, it defaults to `0%` to avoid division by zero.\n */\n protected readonly paddingBottom = computed(() => {\n const ratioValue = this.ratio();\n return `${ratioValue !== 0 ? (1 / ratioValue) * 100 : 0}%`;\n });\n\n ngAfterViewInit() {\n const content = this.element.nativeElement.firstElementChild;\n if (content) {\n // Set the content to cover the entire element with absolute positioning\n this.renderer.setStyle(content, 'position', 'absolute');\n this.renderer.setStyle(content, 'inset', '0');\n }\n }\n}\n",
2117
+ "selector": "[rdxAspectRatio]",
2118
+ "providers": [],
2119
+ "exportAs": "rdxAspectRatio",
2120
+ "hostDirectives": [],
2121
+ "standalone": true,
2122
+ "inputsClass": [],
2123
+ "outputsClass": [],
2124
+ "deprecated": false,
2125
+ "deprecationMessage": "",
2126
+ "hostBindings": [],
2127
+ "hostListeners": [],
2128
+ "propertiesClass": [
2129
+ {
2130
+ "name": "paddingBottom",
2131
+ "defaultValue": "computed(() => {\n const ratioValue = this.ratio();\n return `${ratioValue !== 0 ? (1 / ratioValue) * 100 : 0}%`;\n })",
2132
+ "deprecated": false,
2133
+ "deprecationMessage": "",
2134
+ "type": "",
2135
+ "optional": false,
2136
+ "description": "<p>Dynamically computed <code>padding-bottom</code> style for the element.\nThis value is calculated based on the inverse of the aspect ratio.</p>\n<p>If the ratio is zero, it defaults to <code>0%</code> to avoid division by zero.</p>\n",
2137
+ "line": 45,
2138
+ "rawdescription": "\n\nDynamically computed `padding-bottom` style for the element.\nThis value is calculated based on the inverse of the aspect ratio.\n\nIf the ratio is zero, it defaults to `0%` to avoid division by zero.\n",
2139
+ "modifierKind": [
2140
+ 124,
2141
+ 148
2142
+ ]
2143
+ },
2144
+ {
2145
+ "name": "ratio",
2146
+ "defaultValue": "input<number, NumberInput>(1, { transform: numberAttribute })",
2147
+ "deprecated": false,
2148
+ "deprecationMessage": "",
2149
+ "type": "",
2150
+ "optional": false,
2151
+ "description": "<p>The desired aspect ratio (e.g., 16/9).\nBy default, it is set to 1 (which results in a square, 1:1).</p>\n",
2152
+ "line": 37,
2153
+ "rawdescription": "\n\nThe desired aspect ratio (e.g., 16/9).\nBy default, it is set to 1 (which results in a square, 1:1).\n",
2154
+ "modifierKind": [
2155
+ 148
2156
+ ]
2157
+ }
2158
+ ],
2159
+ "methodsClass": [],
2160
+ "extends": [],
2161
+ "implements": [
2162
+ "AfterViewInit"
2163
+ ]
2164
+ },
2165
+ {
2166
+ "name": "RdxAutoFocusDirective",
2167
+ "id": "directive-RdxAutoFocusDirective-36fdd916db27dba985b1c2f77905595edbce993570293a337d7b80f0efa4ef852996b041e5caad932322228c1d26e64ac067d0aac41a4e3e390475bed79dfb5d",
2168
+ "file": "core/src/auto-focus.directive.ts",
2169
+ "type": "directive",
2170
+ "description": "",
2171
+ "rawdescription": "\n",
2172
+ "sourceCode": "import { booleanAttribute, Directive, ElementRef, inject, Input, NgZone } from '@angular/core';\n\n/*\n * <div [rdxAutoFocus]=\"true\"></div>\n */\n\n@Directive({\n selector: '[rdxAutoFocus]',\n standalone: true\n})\nexport class RdxAutoFocusDirective {\n #elementRef = inject(ElementRef);\n #ngZone = inject(NgZone);\n\n private _autoSelect = false;\n\n /**\n * @default false\n */\n @Input({ alias: 'rdxAutoFocus', transform: booleanAttribute })\n set autoFocus(value: boolean) {\n if (value) {\n // Note: Running this outside Angular's zone because `element.focus()` does not trigger change detection.\n this.#ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout which might lead to frame drops on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask executed within the current rendering frame.\n // Animation tasks are executed in the next rendering frame.\n reqAnimationFrame(() => {\n this.#elementRef.nativeElement.focus();\n if (this._autoSelect && this.#elementRef.nativeElement.select) {\n this.#elementRef.nativeElement.select();\n }\n })\n );\n }\n }\n\n // Setter for autoSelect attribute to enable text selection when autoFocus is true.\n @Input({ transform: booleanAttribute })\n set autoSelect(value: boolean) {\n this._autoSelect = value;\n }\n}\n\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n\n return function (callback: FrameRequestCallback): number {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall) as any;\n\n lastTime = currTime + timeToCall;\n\n return id;\n };\n}\n\n// Function to get the appropriate requestAnimationFrame method with fallback to polyfill.\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\n\n// Get the requestAnimationFrame function or its polyfill.\nconst reqAnimationFrame = getRequestAnimationFrame();\n",
2173
+ "selector": "[rdxAutoFocus]",
2174
+ "providers": [],
2175
+ "hostDirectives": [],
2176
+ "standalone": true,
2177
+ "inputsClass": [
2178
+ {
2179
+ "required": false,
2180
+ "name": "autoSelect",
2181
+ "deprecated": false,
2182
+ "deprecationMessage": "",
2183
+ "line": 41,
2128
2184
  "type": "boolean",
2129
2185
  "decorators": []
2130
2186
  },
@@ -7726,35 +7782,31 @@
7726
7782
  },
7727
7783
  {
7728
7784
  "name": "RdxSeparatorRootDirective",
7729
- "id": "directive-RdxSeparatorRootDirective-4949c922492b142101253d6d48cac42ca3a0b376ad10b5fc62486d2835799ec052bf8e91d3d2a6a0299a4b21e857e6b1eb34ce436753e284358d6e3349cd248b",
7785
+ "id": "directive-RdxSeparatorRootDirective-b69bdacfd17a9613b054bf8ca89fdc318eb7cac4d0d01179b19d405de3894ec017075d1b44c9d9a19e23ca7070398a1ce34ec61a992e0b6e21349554d1300827",
7730
7786
  "file": "separator/src/separator.directive.ts",
7731
7787
  "type": "directive",
7732
- "description": "",
7733
- "rawdescription": "\n",
7734
- "sourceCode": "import { booleanAttribute, Directive, Input } from '@angular/core';\n\nconst DEFAULT_ORIENTATION = 'horizontal';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\nexport type Orientation = (typeof ORIENTATIONS)[number];\n\nexport interface SeparatorProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether the component is purely decorative. When true, accessibility-related attributes\n * are updated so that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\n@Directive({\n selector: 'div[rdxSeparatorRoot]',\n standalone: true,\n host: {\n '[attr.role]': 'decorative ? \"none\" : \"separator\"',\n // `aria-orientation` defaults to `horizontal` so we only need it if `orientation` is vertical\n '[attr.aria-orientation]': '!decorative && orientation === \"vertical\" ? \"vertical\" : null',\n '[attr.data-orientation]': 'orientation'\n }\n})\nexport class RdxSeparatorRootDirective implements SeparatorProps {\n @Input() orientation: Orientation = DEFAULT_ORIENTATION;\n\n @Input({ transform: booleanAttribute }) decorative = false;\n}\n",
7788
+ "description": "<p>Directive that adds accessible and configurable separator element to the DOM.\nThis can be either horizontal or vertical and optionally decorative (which removes\nit from the accessibility tree).</p>\n",
7789
+ "rawdescription": "\n\nDirective that adds accessible and configurable separator element to the DOM.\nThis can be either horizontal or vertical and optionally decorative (which removes\nit from the accessibility tree).\n",
7790
+ "sourceCode": "import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\n\nconst DEFAULT_ORIENTATION = 'horizontal';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\nexport type Orientation = (typeof ORIENTATIONS)[number];\n\nexport interface SeparatorProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether the component is purely decorative. When true, accessibility-related attributes\n * are updated so that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\n/**\n * Directive that adds accessible and configurable separator element to the DOM.\n * This can be either horizontal or vertical and optionally decorative (which removes\n * it from the accessibility tree).\n */\n@Directive({\n selector: 'div[rdxSeparatorRoot]',\n standalone: true,\n host: {\n '[attr.role]': 'computedRole()',\n '[attr.aria-orientation]': 'computedAriaOrientation()',\n\n '[attr.data-orientation]': 'orientation()'\n }\n})\nexport class RdxSeparatorRootDirective {\n /**\n * Orientation of the separator, can be either 'horizontal' or 'vertical'.\n * Defaults to 'horizontal'.\n */\n readonly orientation = input<Orientation>(DEFAULT_ORIENTATION);\n\n /**\n * If true, the separator will be considered decorative and removed from\n * the accessibility tree. Defaults to false.\n */\n readonly decorative = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Computes the `role` attribute for the separator. If `decorative` is true,\n * the role is set to \"none\", otherwise it is \"separator\".\n */\n protected readonly computedRole = computed(() => (this.decorative() ? 'none' : 'separator'));\n\n /**\n * Computes the `aria-orientation` attribute. It is set to \"vertical\" only if\n * the separator is not decorative and the orientation is set to \"vertical\".\n * For horizontal orientation, the attribute is omitted.\n */\n protected readonly computedAriaOrientation = computed(() =>\n !this.decorative() && this.orientation() === 'vertical' ? 'vertical' : null\n );\n}\n",
7735
7791
  "selector": "div[rdxSeparatorRoot]",
7736
7792
  "providers": [],
7737
7793
  "hostDirectives": [],
7738
7794
  "standalone": true,
7739
7795
  "inputsClass": [
7740
- {
7741
- "required": false,
7742
- "name": "decorative",
7743
- "defaultValue": "false",
7744
- "deprecated": false,
7745
- "deprecationMessage": "",
7746
- "line": 34,
7747
- "type": "boolean",
7748
- "decorators": []
7749
- },
7750
7796
  {
7751
7797
  "name": "orientation",
7752
7798
  "defaultValue": "DEFAULT_ORIENTATION",
7753
7799
  "deprecated": false,
7754
7800
  "deprecationMessage": "",
7755
- "line": 32,
7756
- "type": "Orientation",
7757
- "decorators": []
7801
+ "type": "",
7802
+ "optional": false,
7803
+ "description": "<p>Orientation of the separator, can be either &#39;horizontal&#39; or &#39;vertical&#39;.\nDefaults to &#39;horizontal&#39;.</p>\n",
7804
+ "line": 43,
7805
+ "rawdescription": "\n\nOrientation of the separator, can be either 'horizontal' or 'vertical'.\nDefaults to 'horizontal'.\n",
7806
+ "modifierKind": [
7807
+ 148
7808
+ ],
7809
+ "required": false
7758
7810
  }
7759
7811
  ],
7760
7812
  "outputsClass": [],
@@ -7762,12 +7814,69 @@
7762
7814
  "deprecationMessage": "",
7763
7815
  "hostBindings": [],
7764
7816
  "hostListeners": [],
7765
- "propertiesClass": [],
7817
+ "propertiesClass": [
7818
+ {
7819
+ "name": "computedAriaOrientation",
7820
+ "defaultValue": "computed(() =>\n !this.decorative() && this.orientation() === 'vertical' ? 'vertical' : null\n )",
7821
+ "deprecated": false,
7822
+ "deprecationMessage": "",
7823
+ "type": "",
7824
+ "optional": false,
7825
+ "description": "<p>Computes the <code>aria-orientation</code> attribute. It is set to &quot;vertical&quot; only if\nthe separator is not decorative and the orientation is set to &quot;vertical&quot;.\nFor horizontal orientation, the attribute is omitted.</p>\n",
7826
+ "line": 62,
7827
+ "rawdescription": "\n\nComputes the `aria-orientation` attribute. It is set to \"vertical\" only if\nthe separator is not decorative and the orientation is set to \"vertical\".\nFor horizontal orientation, the attribute is omitted.\n",
7828
+ "modifierKind": [
7829
+ 124,
7830
+ 148
7831
+ ]
7832
+ },
7833
+ {
7834
+ "name": "computedRole",
7835
+ "defaultValue": "computed(() => (this.decorative() ? 'none' : 'separator'))",
7836
+ "deprecated": false,
7837
+ "deprecationMessage": "",
7838
+ "type": "",
7839
+ "optional": false,
7840
+ "description": "<p>Computes the <code>role</code> attribute for the separator. If <code>decorative</code> is true,\nthe role is set to &quot;none&quot;, otherwise it is &quot;separator&quot;.</p>\n",
7841
+ "line": 55,
7842
+ "rawdescription": "\n\nComputes the `role` attribute for the separator. If `decorative` is true,\nthe role is set to \"none\", otherwise it is \"separator\".\n",
7843
+ "modifierKind": [
7844
+ 124,
7845
+ 148
7846
+ ]
7847
+ },
7848
+ {
7849
+ "name": "decorative",
7850
+ "defaultValue": "input<boolean, BooleanInput>(false, { transform: booleanAttribute })",
7851
+ "deprecated": false,
7852
+ "deprecationMessage": "",
7853
+ "type": "",
7854
+ "optional": false,
7855
+ "description": "<p>If true, the separator will be considered decorative and removed from\nthe accessibility tree. Defaults to false.</p>\n",
7856
+ "line": 49,
7857
+ "rawdescription": "\n\nIf true, the separator will be considered decorative and removed from\nthe accessibility tree. Defaults to false.\n",
7858
+ "modifierKind": [
7859
+ 148
7860
+ ]
7861
+ },
7862
+ {
7863
+ "name": "orientation",
7864
+ "defaultValue": "DEFAULT_ORIENTATION",
7865
+ "deprecated": false,
7866
+ "deprecationMessage": "",
7867
+ "type": "",
7868
+ "optional": false,
7869
+ "description": "<p>Orientation of the separator, can be either &#39;horizontal&#39; or &#39;vertical&#39;.\nDefaults to &#39;horizontal&#39;.</p>\n",
7870
+ "line": 43,
7871
+ "rawdescription": "\n\nOrientation of the separator, can be either 'horizontal' or 'vertical'.\nDefaults to 'horizontal'.\n",
7872
+ "modifierKind": [
7873
+ 148
7874
+ ],
7875
+ "required": false
7876
+ }
7877
+ ],
7766
7878
  "methodsClass": [],
7767
- "extends": [],
7768
- "implements": [
7769
- "SeparatorProps"
7770
- ]
7879
+ "extends": []
7771
7880
  },
7772
7881
  {
7773
7882
  "name": "RdxSliderDirective",
@@ -9074,58 +9183,355 @@
9074
9183
  "deprecationMessage": "",
9075
9184
  "hostBindings": [],
9076
9185
  "hostListeners": [],
9077
- "propertiesClass": [],
9078
- "methodsClass": [
9186
+ "propertiesClass": [],
9187
+ "methodsClass": [
9188
+ {
9189
+ "name": "handleKeydown",
9190
+ "args": [
9191
+ {
9192
+ "name": "event",
9193
+ "type": "KeyboardEvent",
9194
+ "deprecated": false,
9195
+ "deprecationMessage": ""
9196
+ }
9197
+ ],
9198
+ "optional": false,
9199
+ "returnType": "void",
9200
+ "typeParameters": [],
9201
+ "line": 116,
9202
+ "deprecated": false,
9203
+ "deprecationMessage": "",
9204
+ "modifierKind": [
9205
+ 124
9206
+ ],
9207
+ "jsdoctags": [
9208
+ {
9209
+ "name": "event",
9210
+ "type": "KeyboardEvent",
9211
+ "deprecated": false,
9212
+ "deprecationMessage": "",
9213
+ "tagName": {
9214
+ "text": "param"
9215
+ }
9216
+ }
9217
+ ]
9218
+ },
9219
+ {
9220
+ "name": "onFocusIn",
9221
+ "args": [],
9222
+ "optional": false,
9223
+ "returnType": "void",
9224
+ "typeParameters": [],
9225
+ "line": 110,
9226
+ "deprecated": false,
9227
+ "deprecationMessage": "",
9228
+ "modifierKind": [
9229
+ 124
9230
+ ]
9231
+ }
9232
+ ],
9233
+ "extends": [],
9234
+ "implements": [
9235
+ "OnChanges",
9236
+ "AfterContentInit",
9237
+ "ControlValueAccessor"
9238
+ ]
9239
+ },
9240
+ {
9241
+ "name": "RdxVisuallyHiddenDirective",
9242
+ "id": "directive-RdxVisuallyHiddenDirective-2486bcf46a8ae494e882cd43e8d4b6dc3f610595bc3d915c03f7c3e5d435d294e61608376a6489be59457c1034173d53dafe6b6d1d97c1290a2d9fdc1cb377de",
9243
+ "file": "visually-hidden/src/visually-hidden.directive.ts",
9244
+ "type": "directive",
9245
+ "description": "<p>&lt;span rdxVisuallyHidden [feature]=&quot;&#39;fully-hidden&#39;&quot;&gt;\n <ng-content></ng-content>\n</span></p>\n<p>&lt;button (click)=&quot;directiveInstance.feature.set(&#39;focusable&#39;)&quot;&gt;Make Focusable</button>\n&lt;button (click)=&quot;directiveInstance.feature.set(&#39;fully-hidden&#39;)&quot;&gt;Hide</button></p>\n",
9246
+ "rawdescription": "\n\n\n<span rdxVisuallyHidden [feature]=\"'fully-hidden'\">\n <ng-content></ng-content>\n</span>\n\n<button (click)=\"directiveInstance.feature.set('focusable')\">Make Focusable</button>\n<button (click)=\"directiveInstance.feature.set('fully-hidden')\">Hide</button>\n",
9247
+ "sourceCode": "import { Directive, input } from '@angular/core';\n\n/**\n *\n * <span rdxVisuallyHidden [feature]=\"'fully-hidden'\">\n * <ng-content></ng-content>\n * </span>\n *\n * <button (click)=\"directiveInstance.feature.set('focusable')\">Make Focusable</button>\n * <button (click)=\"directiveInstance.feature.set('fully-hidden')\">Hide</button>\n */\n@Directive({\n selector: '[rdxVisuallyHidden]',\n standalone: true,\n host: {\n '[attr.aria-hidden]': 'feature() === \"focusable\" ? \"true\" : null',\n '[hidden]': 'feature() === \"fully-hidden\" ? true : null',\n '[attr.tabindex]': 'feature() === \"fully-hidden\" ? \"-1\" : null',\n '[style.position]': '\"absolute\"',\n '[style.border]': '\"0\"',\n '[style.width]': '\"1px\"',\n '[style.display]': 'feature() === \"focusable\" ? \"inline-block\" : \"none\"',\n '[style.height]': '\"1px\"',\n '[style.padding]': '\"0\"',\n '[style.margin]': '\"-1px\"',\n '[style.overflow]': '\"hidden\"',\n '[style.clip]': '\"rect(0, 0, 0, 0)\"',\n '[style.white-space]': '\"nowrap\"',\n '[style.word-wrap]': '\"normal\"'\n }\n})\nexport class RdxVisuallyHiddenDirective {\n readonly feature = input<'focusable' | 'fully-hidden'>('focusable');\n}\n",
9248
+ "selector": "[rdxVisuallyHidden]",
9249
+ "providers": [],
9250
+ "hostDirectives": [],
9251
+ "standalone": true,
9252
+ "inputsClass": [],
9253
+ "outputsClass": [],
9254
+ "deprecated": false,
9255
+ "deprecationMessage": "",
9256
+ "hostBindings": [],
9257
+ "hostListeners": [],
9258
+ "propertiesClass": [
9259
+ {
9260
+ "name": "feature",
9261
+ "defaultValue": "input<'focusable' | 'fully-hidden'>('focusable')",
9262
+ "deprecated": false,
9263
+ "deprecationMessage": "",
9264
+ "type": "",
9265
+ "optional": false,
9266
+ "description": "",
9267
+ "line": 33,
9268
+ "modifierKind": [
9269
+ 148
9270
+ ]
9271
+ }
9272
+ ],
9273
+ "methodsClass": [],
9274
+ "extends": []
9275
+ },
9276
+ {
9277
+ "name": "RdxVisuallyHiddenInputBubbleDirective",
9278
+ "id": "directive-RdxVisuallyHiddenInputBubbleDirective-f224287b6276012f697c2f366e570f826079a8257239ee8db19e9c603d52302e7bd2be94651ae4bea39a68f8c64173a96c05c0c52cd869ef10c2fdf92aff5bdd",
9279
+ "file": "visually-hidden/src/visually-hidden-input-bubble.directive.ts",
9280
+ "type": "directive",
9281
+ "description": "",
9282
+ "rawdescription": "\n\n\n",
9283
+ "sourceCode": "import { Directive, effect, ElementRef, inject, input } from '@angular/core';\nimport { RdxVisuallyHiddenDirective } from './visually-hidden.directive';\n\n/**\n *\n */\n@Directive({\n selector: '[rdxVisuallyHiddenInputBubble]',\n standalone: true,\n hostDirectives: [{ directive: RdxVisuallyHiddenDirective, inputs: ['feature: feature'] }],\n host: {\n '[attr.name]': 'name()',\n '[attr.required]': 'required()',\n '[attr.disabled]': 'disabled()',\n '[attr.checked]': 'checked()',\n '[value]': 'value()',\n '(change)': 'onChange()'\n }\n})\nexport class RdxVisuallyHiddenInputBubbleDirective<T> {\n private readonly elementRef = inject(ElementRef);\n\n readonly name = input<string>('');\n readonly value = input<T | null>(null);\n readonly checked = input<boolean | undefined>(undefined);\n readonly required = input<boolean | undefined>(undefined);\n readonly disabled = input<boolean | undefined>(undefined);\n readonly feature = input<string>('fully-hidden');\n\n constructor() {\n effect(() => {\n this.updateInputValue();\n });\n }\n\n protected onChange() {\n this.updateInputValue();\n }\n\n private updateInputValue() {\n let valueChanged = false;\n let checkedChanged = false;\n\n // Check if the value has changed before applying the update\n const currentValue = this.inputElement.value;\n const newValue = String(this.value());\n\n if (currentValue !== newValue) {\n this.inputElement.value = newValue;\n valueChanged = true;\n }\n\n if (this.inputElement.type === 'checkbox' || this.inputElement.type === 'radio') {\n const currentChecked = this.inputElement.checked;\n const newChecked = !!this.checked();\n\n if (currentChecked !== newChecked) {\n this.inputElement.checked = newChecked;\n checkedChanged = true;\n }\n }\n\n if (valueChanged || checkedChanged) {\n this.dispatchInputEvents();\n }\n }\n\n private get inputElement() {\n return this.elementRef.nativeElement;\n }\n\n private dispatchInputEvents() {\n const inputEvent = new Event('input', { bubbles: true });\n const changeEvent = new Event('change', { bubbles: true });\n\n this.inputElement.dispatchEvent(inputEvent);\n this.inputElement.dispatchEvent(changeEvent);\n }\n}\n",
9284
+ "selector": "[rdxVisuallyHiddenInputBubble]",
9285
+ "providers": [],
9286
+ "hostDirectives": [
9287
+ {
9288
+ "name": "RdxVisuallyHiddenDirective",
9289
+ "inputs": [
9290
+ "feature: feature"
9291
+ ],
9292
+ "outputs": []
9293
+ }
9294
+ ],
9295
+ "standalone": true,
9296
+ "inputsClass": [],
9297
+ "outputsClass": [],
9298
+ "deprecated": false,
9299
+ "deprecationMessage": "",
9300
+ "hostBindings": [],
9301
+ "hostListeners": [],
9302
+ "propertiesClass": [
9303
+ {
9304
+ "name": "checked",
9305
+ "defaultValue": "input<boolean | undefined>(undefined)",
9306
+ "deprecated": false,
9307
+ "deprecationMessage": "",
9308
+ "type": "",
9309
+ "optional": false,
9310
+ "description": "",
9311
+ "line": 25,
9312
+ "modifierKind": [
9313
+ 148
9314
+ ]
9315
+ },
9316
+ {
9317
+ "name": "disabled",
9318
+ "defaultValue": "input<boolean | undefined>(undefined)",
9319
+ "deprecated": false,
9320
+ "deprecationMessage": "",
9321
+ "type": "",
9322
+ "optional": false,
9323
+ "description": "",
9324
+ "line": 27,
9325
+ "modifierKind": [
9326
+ 148
9327
+ ]
9328
+ },
9329
+ {
9330
+ "name": "feature",
9331
+ "defaultValue": "input<string>('fully-hidden')",
9332
+ "deprecated": false,
9333
+ "deprecationMessage": "",
9334
+ "type": "",
9335
+ "optional": false,
9336
+ "description": "",
9337
+ "line": 28,
9338
+ "modifierKind": [
9339
+ 148
9340
+ ]
9341
+ },
9342
+ {
9343
+ "name": "name",
9344
+ "defaultValue": "input<string>('')",
9345
+ "deprecated": false,
9346
+ "deprecationMessage": "",
9347
+ "type": "",
9348
+ "optional": false,
9349
+ "description": "",
9350
+ "line": 23,
9351
+ "modifierKind": [
9352
+ 148
9353
+ ]
9354
+ },
9355
+ {
9356
+ "name": "required",
9357
+ "defaultValue": "input<boolean | undefined>(undefined)",
9358
+ "deprecated": false,
9359
+ "deprecationMessage": "",
9360
+ "type": "",
9361
+ "optional": false,
9362
+ "description": "",
9363
+ "line": 26,
9364
+ "modifierKind": [
9365
+ 148
9366
+ ]
9367
+ },
9368
+ {
9369
+ "name": "value",
9370
+ "defaultValue": "input<T | null>(null)",
9371
+ "deprecated": false,
9372
+ "deprecationMessage": "",
9373
+ "type": "",
9374
+ "optional": false,
9375
+ "description": "",
9376
+ "line": 24,
9377
+ "modifierKind": [
9378
+ 148
9379
+ ]
9380
+ }
9381
+ ],
9382
+ "methodsClass": [
9383
+ {
9384
+ "name": "onChange",
9385
+ "args": [],
9386
+ "optional": false,
9387
+ "returnType": "void",
9388
+ "typeParameters": [],
9389
+ "line": 36,
9390
+ "deprecated": false,
9391
+ "deprecationMessage": "",
9392
+ "modifierKind": [
9393
+ 124
9394
+ ]
9395
+ }
9396
+ ],
9397
+ "extends": [],
9398
+ "constructorObj": {
9399
+ "name": "constructor",
9400
+ "description": "",
9401
+ "deprecated": false,
9402
+ "deprecationMessage": "",
9403
+ "args": [],
9404
+ "line": 28
9405
+ }
9406
+ },
9407
+ {
9408
+ "name": "RdxVisuallyHiddenInputDirective",
9409
+ "id": "directive-RdxVisuallyHiddenInputDirective-8de94a85e1953c9b820ea4160db45b0ed69d36f12bebf0283fa16f999ab74275a02156bdb61a122f4328e156fcc635e9727894c3f73df0b14fad1e35f0b51065",
9410
+ "file": "visually-hidden/src/visually-hidden-input.directive.ts",
9411
+ "type": "directive",
9412
+ "description": "",
9413
+ "rawdescription": "\n",
9414
+ "sourceCode": "import { Directive, ElementRef, OnInit, computed, inject, input } from '@angular/core';\nimport { RdxVisuallyHiddenInputBubbleDirective } from './visually-hidden-input-bubble.directive';\n\n@Directive({\n selector: '[rdxVisuallyHiddenInput]',\n standalone: true,\n hostDirectives: [\n {\n directive: RdxVisuallyHiddenInputBubbleDirective,\n inputs: [\n 'feature: feature',\n 'name: name ',\n 'value: value',\n 'checked: checked',\n 'disabled: disabled',\n 'required: required'\n ]\n }\n ]\n})\nexport class RdxVisuallyHiddenInputDirective<T> implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n readonly name = input<string>('');\n readonly value = input<T | null>(null);\n readonly checked = input<boolean | undefined>(undefined);\n readonly required = input<boolean | undefined>(undefined);\n readonly disabled = input<boolean | undefined>(undefined);\n readonly feature = input<'focusable' | 'fully-hidden'>('fully-hidden');\n\n readonly parsedValue = computed<{ name: string; value: any }[]>(() => {\n const value = this.value();\n const name = this.name();\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return [{ name, value }];\n }\n\n if (Array.isArray(value)) {\n return value.flatMap((obj, index) => {\n if (typeof obj === 'object') {\n return Object.entries(obj).map(([key, val]) => ({\n name: `[${name}][${index}][${key}]`,\n value: val\n }));\n } else {\n return { name: `[${name}][${index}]`, value: obj };\n }\n });\n }\n\n if (value !== null && typeof value === 'object') {\n return Object.entries(value).map(([key, val]) => ({\n name: `[${name}][${key}]`,\n value: val\n }));\n }\n\n return [];\n });\n\n ngOnInit() {\n const parsedValues = this.parsedValue();\n\n parsedValues.forEach((parsed) => {\n const inputElement = this.elementRef.nativeElement;\n inputElement.setAttribute('name', parsed.name);\n inputElement.setAttribute('value', parsed.value);\n });\n }\n}\n",
9415
+ "selector": "[rdxVisuallyHiddenInput]",
9416
+ "providers": [],
9417
+ "hostDirectives": [
9418
+ {
9419
+ "name": "RdxVisuallyHiddenInputBubbleDirective",
9420
+ "inputs": [
9421
+ "feature: feature",
9422
+ "name: name ",
9423
+ "value: value",
9424
+ "checked: checked",
9425
+ "disabled: disabled",
9426
+ "required: required"
9427
+ ],
9428
+ "outputs": []
9429
+ }
9430
+ ],
9431
+ "standalone": true,
9432
+ "inputsClass": [],
9433
+ "outputsClass": [],
9434
+ "deprecated": false,
9435
+ "deprecationMessage": "",
9436
+ "hostBindings": [],
9437
+ "hostListeners": [],
9438
+ "propertiesClass": [
9079
9439
  {
9080
- "name": "handleKeydown",
9081
- "args": [
9082
- {
9083
- "name": "event",
9084
- "type": "KeyboardEvent",
9085
- "deprecated": false,
9086
- "deprecationMessage": ""
9087
- }
9088
- ],
9440
+ "name": "checked",
9441
+ "defaultValue": "input<boolean | undefined>(undefined)",
9442
+ "deprecated": false,
9443
+ "deprecationMessage": "",
9444
+ "type": "",
9089
9445
  "optional": false,
9090
- "returnType": "void",
9091
- "typeParameters": [],
9092
- "line": 116,
9446
+ "description": "",
9447
+ "line": 28,
9448
+ "modifierKind": [
9449
+ 148
9450
+ ]
9451
+ },
9452
+ {
9453
+ "name": "disabled",
9454
+ "defaultValue": "input<boolean | undefined>(undefined)",
9093
9455
  "deprecated": false,
9094
9456
  "deprecationMessage": "",
9457
+ "type": "",
9458
+ "optional": false,
9459
+ "description": "",
9460
+ "line": 30,
9095
9461
  "modifierKind": [
9096
- 124
9097
- ],
9098
- "jsdoctags": [
9099
- {
9100
- "name": "event",
9101
- "type": "KeyboardEvent",
9102
- "deprecated": false,
9103
- "deprecationMessage": "",
9104
- "tagName": {
9105
- "text": "param"
9106
- }
9107
- }
9462
+ 148
9108
9463
  ]
9109
9464
  },
9110
9465
  {
9111
- "name": "onFocusIn",
9112
- "args": [],
9466
+ "name": "feature",
9467
+ "defaultValue": "input<'focusable' | 'fully-hidden'>('fully-hidden')",
9468
+ "deprecated": false,
9469
+ "deprecationMessage": "",
9470
+ "type": "",
9113
9471
  "optional": false,
9114
- "returnType": "void",
9115
- "typeParameters": [],
9116
- "line": 110,
9472
+ "description": "",
9473
+ "line": 31,
9474
+ "modifierKind": [
9475
+ 148
9476
+ ]
9477
+ },
9478
+ {
9479
+ "name": "name",
9480
+ "defaultValue": "input<string>('')",
9481
+ "deprecated": false,
9482
+ "deprecationMessage": "",
9483
+ "type": "",
9484
+ "optional": false,
9485
+ "description": "",
9486
+ "line": 26,
9487
+ "modifierKind": [
9488
+ 148
9489
+ ]
9490
+ },
9491
+ {
9492
+ "name": "parsedValue",
9493
+ "defaultValue": "computed<{ name: string; value: any }[]>(() => {\n const value = this.value();\n const name = this.name();\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return [{ name, value }];\n }\n\n if (Array.isArray(value)) {\n return value.flatMap((obj, index) => {\n if (typeof obj === 'object') {\n return Object.entries(obj).map(([key, val]) => ({\n name: `[${name}][${index}][${key}]`,\n value: val\n }));\n } else {\n return { name: `[${name}][${index}]`, value: obj };\n }\n });\n }\n\n if (value !== null && typeof value === 'object') {\n return Object.entries(value).map(([key, val]) => ({\n name: `[${name}][${key}]`,\n value: val\n }));\n }\n\n return [];\n })",
9117
9494
  "deprecated": false,
9118
9495
  "deprecationMessage": "",
9496
+ "type": "",
9497
+ "optional": false,
9498
+ "description": "",
9499
+ "line": 33,
9119
9500
  "modifierKind": [
9120
- 124
9501
+ 148
9502
+ ]
9503
+ },
9504
+ {
9505
+ "name": "required",
9506
+ "defaultValue": "input<boolean | undefined>(undefined)",
9507
+ "deprecated": false,
9508
+ "deprecationMessage": "",
9509
+ "type": "",
9510
+ "optional": false,
9511
+ "description": "",
9512
+ "line": 29,
9513
+ "modifierKind": [
9514
+ 148
9515
+ ]
9516
+ },
9517
+ {
9518
+ "name": "value",
9519
+ "defaultValue": "input<T | null>(null)",
9520
+ "deprecated": false,
9521
+ "deprecationMessage": "",
9522
+ "type": "",
9523
+ "optional": false,
9524
+ "description": "",
9525
+ "line": 27,
9526
+ "modifierKind": [
9527
+ 148
9121
9528
  ]
9122
9529
  }
9123
9530
  ],
9531
+ "methodsClass": [],
9124
9532
  "extends": [],
9125
9533
  "implements": [
9126
- "OnChanges",
9127
- "AfterContentInit",
9128
- "ControlValueAccessor"
9534
+ "OnInit"
9129
9535
  ]
9130
9536
  },
9131
9537
  {
@@ -10395,6 +10801,74 @@
10395
10801
  }
10396
10802
  ]
10397
10803
  },
10804
+ {
10805
+ "name": "RdxAlertDialogModule",
10806
+ "id": "module-RdxAlertDialogModule-d3e998524d0054b4cfd40d33a96bac63142ac9c816f7cbeb8a25c35948987be3cebdf91feea730c87aa648b7d973c885ddfae5dd0158133e7654ca87fa3de6b8",
10807
+ "description": "",
10808
+ "deprecationMessage": "",
10809
+ "deprecated": false,
10810
+ "file": "alert-dialog/index.ts",
10811
+ "methods": [],
10812
+ "sourceCode": "import { NgModule } from '@angular/core';\nimport { RdxAlertDialogCancelDirective } from './src/alert-dialog-cancel.directive';\nimport { RdxAlertDialogContentDirective } from './src/alert-dialog-content.directive';\nimport { RdxAlertDialogRootDirective } from './src/alert-dialog-root.directive';\nimport { RdxAlertDialogTitleDirective } from './src/alert-dialog-title.directive';\nimport { RdxAlertDialogTriggerDirective } from './src/alert-dialog-trigger.directive';\n\nexport * from './src/alert-dialog-cancel.directive';\nexport * from './src/alert-dialog-content.directive';\nexport * from './src/alert-dialog-root.directive';\nexport * from './src/alert-dialog-title.directive';\nexport * from './src/alert-dialog-trigger.directive';\n\nexport * from './src/alert-dialog.service';\n\nconst _imports = [\n RdxAlertDialogRootDirective,\n RdxAlertDialogContentDirective,\n RdxAlertDialogCancelDirective,\n RdxAlertDialogTriggerDirective,\n RdxAlertDialogTitleDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxAlertDialogModule {}\n",
10813
+ "children": [
10814
+ {
10815
+ "type": "providers",
10816
+ "elements": []
10817
+ },
10818
+ {
10819
+ "type": "declarations",
10820
+ "elements": []
10821
+ },
10822
+ {
10823
+ "type": "imports",
10824
+ "elements": [
10825
+ {
10826
+ "name": "RdxAccordionContentDirective"
10827
+ },
10828
+ {
10829
+ "name": "RdxAccordionHeaderDirective"
10830
+ },
10831
+ {
10832
+ "name": "RdxAccordionItemDirective"
10833
+ },
10834
+ {
10835
+ "name": "RdxAccordionRootDirective"
10836
+ },
10837
+ {
10838
+ "name": "RdxAccordionTriggerDirective"
10839
+ }
10840
+ ]
10841
+ },
10842
+ {
10843
+ "type": "exports",
10844
+ "elements": [
10845
+ {
10846
+ "name": "RdxAccordionContentDirective"
10847
+ },
10848
+ {
10849
+ "name": "RdxAccordionHeaderDirective"
10850
+ },
10851
+ {
10852
+ "name": "RdxAccordionItemDirective"
10853
+ },
10854
+ {
10855
+ "name": "RdxAccordionRootDirective"
10856
+ },
10857
+ {
10858
+ "name": "RdxAccordionTriggerDirective"
10859
+ }
10860
+ ]
10861
+ },
10862
+ {
10863
+ "type": "bootstrap",
10864
+ "elements": []
10865
+ },
10866
+ {
10867
+ "type": "classes",
10868
+ "elements": []
10869
+ }
10870
+ ]
10871
+ },
10398
10872
  {
10399
10873
  "name": "RdxContextMenuModule",
10400
10874
  "id": "module-RdxContextMenuModule-ae9a10be40adfa46fc65f5b123ada1b03497abba3f3f504d7b4b139f166b94164ca84a4daf2d6f2982807dbca7e074074ae7c773f91ddc7535160a8b3fbf93f9",
@@ -10734,6 +11208,16 @@
10734
11208
  "type": "[]",
10735
11209
  "defaultValue": "[\n RdxAccordionContentDirective,\n RdxAccordionHeaderDirective,\n RdxAccordionItemDirective,\n RdxAccordionRootDirective,\n RdxAccordionTriggerDirective\n]"
10736
11210
  },
11211
+ {
11212
+ "name": "_imports",
11213
+ "ctype": "miscellaneous",
11214
+ "subtype": "variable",
11215
+ "file": "alert-dialog/index.ts",
11216
+ "deprecated": false,
11217
+ "deprecationMessage": "",
11218
+ "type": "[]",
11219
+ "defaultValue": "[\n RdxAlertDialogRootDirective,\n RdxAlertDialogContentDirective,\n RdxAlertDialogCancelDirective,\n RdxAlertDialogTriggerDirective,\n RdxAlertDialogTitleDirective\n]"
11220
+ },
10737
11221
  {
10738
11222
  "name": "_imports",
10739
11223
  "ctype": "miscellaneous",
@@ -11301,6 +11785,16 @@
11301
11785
  "defaultValue": "<T>(\n zone: NgZone,\n element: HTMLElement,\n startFn: TransitionStartFn<T>,\n options: TransitionOptions<T>\n): Observable<void> => {\n let context = options.context || <T>{};\n\n const transitionTimerDelayMs = options.transitionTimerDelayMs ?? 5;\n const state = options.state ?? 'stop';\n\n const running = TransitionsMap.get(element);\n\n if (running) {\n switch (state) {\n case 'continue':\n return EMPTY;\n case 'stop':\n zone.run(() => running.transition$.complete());\n context = { ...running.context, ...context };\n TransitionsMap.delete(element);\n break;\n }\n }\n const endFn = startFn(element, options.animation, context) || noopFn;\n\n if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\n zone.run(() => endFn());\n return of(undefined).pipe(runInZone(zone));\n }\n\n const transition$ = new Subject<void>();\n const finishTransition$ = new Subject<void>();\n const stop$ = transition$.pipe(endWith(true));\n\n TransitionsMap.set(element, {\n transition$,\n complete: () => {\n finishTransition$.next();\n finishTransition$.complete();\n },\n context\n });\n\n const transitionDurationMs = getTransitionDurationMs(element);\n\n zone.runOutsideAngular(() => {\n const transitionEnd$ = fromEvent<TransitionEvent>(element, 'transitionend').pipe(\n filter(({ target }) => target === element),\n takeUntil(stop$)\n );\n const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\n\n race(timer$, transitionEnd$, finishTransition$)\n .pipe(takeUntil(stop$))\n .subscribe(() => {\n TransitionsMap.delete(element);\n zone.run(() => {\n endFn();\n transition$.next();\n transition$.complete();\n });\n });\n });\n\n return transition$.asObservable();\n}",
11302
11786
  "rawdescription": "Manages the presence of an element with optional transition animation.",
11303
11787
  "description": "<p>Manages the presence of an element with optional transition animation.</p>\n"
11788
+ },
11789
+ {
11790
+ "name": "WINDOW",
11791
+ "ctype": "miscellaneous",
11792
+ "subtype": "variable",
11793
+ "file": "core/src/window.ts",
11794
+ "deprecated": false,
11795
+ "deprecationMessage": "",
11796
+ "type": "",
11797
+ "defaultValue": "new InjectionToken<Window & typeof globalThis>('An abstraction over global window object', {\n factory: () => {\n const { defaultView } = injectDocument();\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n return defaultView;\n }\n})"
11304
11798
  }
11305
11799
  ],
11306
11800
  "functions": [
@@ -11489,6 +11983,27 @@
11489
11983
  "description": "",
11490
11984
  "args": []
11491
11985
  },
11986
+ {
11987
+ "name": "injectDocument",
11988
+ "file": "core/src/document.ts",
11989
+ "ctype": "miscellaneous",
11990
+ "subtype": "function",
11991
+ "deprecated": false,
11992
+ "deprecationMessage": "",
11993
+ "description": "",
11994
+ "args": [],
11995
+ "returnType": "Document"
11996
+ },
11997
+ {
11998
+ "name": "injectIsClient",
11999
+ "file": "core/src/is-client.ts",
12000
+ "ctype": "miscellaneous",
12001
+ "subtype": "function",
12002
+ "deprecated": false,
12003
+ "deprecationMessage": "",
12004
+ "description": "",
12005
+ "args": []
12006
+ },
11492
12007
  {
11493
12008
  "name": "injectNgControl",
11494
12009
  "file": "core/src/inject-ng-control.ts",
@@ -11640,6 +12155,16 @@
11640
12155
  "args": [],
11641
12156
  "returnType": "RdxToggleGroupDirective | RdxToggleGroupMultipleDirective"
11642
12157
  },
12158
+ {
12159
+ "name": "injectWindow",
12160
+ "file": "core/src/window.ts",
12161
+ "ctype": "miscellaneous",
12162
+ "subtype": "function",
12163
+ "deprecated": false,
12164
+ "deprecationMessage": "",
12165
+ "description": "",
12166
+ "args": []
12167
+ },
11643
12168
  {
11644
12169
  "name": "isDismissed",
11645
12170
  "file": "dialog/src/dialog-ref.ts",
@@ -12384,6 +12909,18 @@
12384
12909
  "defaultValue": "[\n RdxAccordionContentDirective,\n RdxAccordionHeaderDirective,\n RdxAccordionItemDirective,\n RdxAccordionRootDirective,\n RdxAccordionTriggerDirective\n]"
12385
12910
  }
12386
12911
  ],
12912
+ "alert-dialog/index.ts": [
12913
+ {
12914
+ "name": "_imports",
12915
+ "ctype": "miscellaneous",
12916
+ "subtype": "variable",
12917
+ "file": "alert-dialog/index.ts",
12918
+ "deprecated": false,
12919
+ "deprecationMessage": "",
12920
+ "type": "[]",
12921
+ "defaultValue": "[\n RdxAlertDialogRootDirective,\n RdxAlertDialogContentDirective,\n RdxAlertDialogCancelDirective,\n RdxAlertDialogTriggerDirective,\n RdxAlertDialogTitleDirective\n]"
12922
+ }
12923
+ ],
12387
12924
  "context-menu/index.ts": [
12388
12925
  {
12389
12926
  "name": "_imports",
@@ -13025,6 +13562,18 @@
13025
13562
  "type": "TransitionStartFn",
13026
13563
  "defaultValue": "({ classList }: HTMLElement) => {\n classList.add('showing');\n return () => {\n classList.remove('show', 'showing');\n };\n}"
13027
13564
  }
13565
+ ],
13566
+ "core/src/window.ts": [
13567
+ {
13568
+ "name": "WINDOW",
13569
+ "ctype": "miscellaneous",
13570
+ "subtype": "variable",
13571
+ "file": "core/src/window.ts",
13572
+ "deprecated": false,
13573
+ "deprecationMessage": "",
13574
+ "type": "",
13575
+ "defaultValue": "new InjectionToken<Window & typeof globalThis>('An abstraction over global window object', {\n factory: () => {\n const { defaultView } = injectDocument();\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n return defaultView;\n }\n})"
13576
+ }
13028
13577
  ]
13029
13578
  },
13030
13579
  "groupedFunctions": {
@@ -13378,6 +13927,31 @@
13378
13927
  "args": []
13379
13928
  }
13380
13929
  ],
13930
+ "core/src/document.ts": [
13931
+ {
13932
+ "name": "injectDocument",
13933
+ "file": "core/src/document.ts",
13934
+ "ctype": "miscellaneous",
13935
+ "subtype": "function",
13936
+ "deprecated": false,
13937
+ "deprecationMessage": "",
13938
+ "description": "",
13939
+ "args": [],
13940
+ "returnType": "Document"
13941
+ }
13942
+ ],
13943
+ "core/src/is-client.ts": [
13944
+ {
13945
+ "name": "injectIsClient",
13946
+ "file": "core/src/is-client.ts",
13947
+ "ctype": "miscellaneous",
13948
+ "subtype": "function",
13949
+ "deprecated": false,
13950
+ "deprecationMessage": "",
13951
+ "description": "",
13952
+ "args": []
13953
+ }
13954
+ ],
13381
13955
  "core/src/inject-ng-control.ts": [
13382
13956
  {
13383
13957
  "name": "injectNgControl",
@@ -13539,6 +14113,18 @@
13539
14113
  "returnType": "RdxToggleGroupDirective | RdxToggleGroupMultipleDirective"
13540
14114
  }
13541
14115
  ],
14116
+ "core/src/window.ts": [
14117
+ {
14118
+ "name": "injectWindow",
14119
+ "file": "core/src/window.ts",
14120
+ "ctype": "miscellaneous",
14121
+ "subtype": "function",
14122
+ "deprecated": false,
14123
+ "deprecationMessage": "",
14124
+ "description": "",
14125
+ "args": []
14126
+ }
14127
+ ],
13542
14128
  "dialog/src/dialog-ref.ts": [
13543
14129
  {
13544
14130
  "name": "isDismissed",