@radix-ng/primitives 0.51.0 → 1.0.0-beta.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 (178) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
  6. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
  9. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  11. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  12. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
  18. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +735 -744
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
  25. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
  27. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
  29. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
  31. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  33. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  34. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  36. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  37. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  38. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  39. package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  42. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  43. package/fesm2022/radix-ng-primitives-label.mjs +6 -6
  44. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
  46. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  48. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  50. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
  52. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  53. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
  54. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  65. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
  67. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
  71. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select.mjs +791 -509
  73. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
  95. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  96. package/meter/README.md +3 -0
  97. package/navigation-menu/README.md +2 -1
  98. package/package.json +31 -18
  99. package/portal/README.md +2 -0
  100. package/preview-card/README.md +3 -0
  101. package/schematics/collection.json +1 -0
  102. package/schematics/ng-add/index.d.ts +3 -2
  103. package/schematics/ng-add/index.js +62 -31
  104. package/schematics/ng-add/index.js.map +1 -1
  105. package/schematics/ng-add/package-config.d.ts +4 -2
  106. package/schematics/ng-add/package-config.js +10 -2
  107. package/schematics/ng-add/package-config.js.map +1 -1
  108. package/schematics/ng-add/schema.d.ts +3 -0
  109. package/schematics/ng-add/schema.js +3 -0
  110. package/schematics/ng-add/schema.js.map +1 -0
  111. package/schematics/ng-add/schema.json +14 -0
  112. package/select/README.md +2 -0
  113. package/types/radix-ng-primitives-accordion.d.ts +48 -14
  114. package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
  115. package/types/radix-ng-primitives-arrow.d.ts +1 -1
  116. package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
  117. package/types/radix-ng-primitives-avatar.d.ts +7 -11
  118. package/types/radix-ng-primitives-button.d.ts +73 -0
  119. package/types/radix-ng-primitives-calendar.d.ts +1 -2
  120. package/types/radix-ng-primitives-checkbox.d.ts +201 -32
  121. package/types/radix-ng-primitives-collapsible.d.ts +112 -39
  122. package/types/radix-ng-primitives-collection.d.ts +38 -34
  123. package/types/radix-ng-primitives-config.d.ts +1 -1
  124. package/types/radix-ng-primitives-context-menu.d.ts +60 -116
  125. package/types/radix-ng-primitives-core.d.ts +307 -236
  126. package/types/radix-ng-primitives-cropper.d.ts +2 -2
  127. package/types/radix-ng-primitives-date-field.d.ts +38 -23
  128. package/types/radix-ng-primitives-dialog.d.ts +282 -165
  129. package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
  130. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  131. package/types/radix-ng-primitives-editable.d.ts +1 -1
  132. package/types/radix-ng-primitives-field.d.ts +373 -0
  133. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  134. package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
  135. package/types/radix-ng-primitives-input.d.ts +87 -0
  136. package/types/radix-ng-primitives-label.d.ts +0 -1
  137. package/types/radix-ng-primitives-menu.d.ts +572 -99
  138. package/types/radix-ng-primitives-menubar.d.ts +60 -50
  139. package/types/radix-ng-primitives-meter.d.ts +193 -0
  140. package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
  141. package/types/radix-ng-primitives-number-field.d.ts +405 -145
  142. package/types/radix-ng-primitives-pagination.d.ts +2 -2
  143. package/types/radix-ng-primitives-popover.d.ts +365 -351
  144. package/types/radix-ng-primitives-popper.d.ts +49 -9
  145. package/types/radix-ng-primitives-portal.d.ts +14 -6
  146. package/types/radix-ng-primitives-presence.d.ts +28 -76
  147. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  148. package/types/radix-ng-primitives-progress.d.ts +174 -48
  149. package/types/radix-ng-primitives-radio.d.ts +55 -25
  150. package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
  151. package/types/radix-ng-primitives-select.d.ts +475 -177
  152. package/types/radix-ng-primitives-separator.d.ts +7 -32
  153. package/types/radix-ng-primitives-slider.d.ts +315 -201
  154. package/types/radix-ng-primitives-stepper.d.ts +5 -7
  155. package/types/radix-ng-primitives-switch.d.ts +86 -71
  156. package/types/radix-ng-primitives-tabs.d.ts +213 -79
  157. package/types/radix-ng-primitives-time-field.d.ts +42 -27
  158. package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
  159. package/types/radix-ng-primitives-toggle.d.ts +43 -53
  160. package/types/radix-ng-primitives-toolbar.d.ts +163 -38
  161. package/types/radix-ng-primitives-tooltip.d.ts +347 -384
  162. package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
  163. package/dropdown-menu/README.md +0 -1
  164. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
  165. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  166. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
  167. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  168. package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
  169. package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
  170. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
  171. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  172. package/hover-card/README.md +0 -3
  173. package/select2/README.md +0 -3
  174. package/tooltip2/README.md +0 -3
  175. package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
  176. package/types/radix-ng-primitives-hover-card.d.ts +0 -471
  177. package/types/radix-ng-primitives-select2.d.ts +0 -511
  178. package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-visually-hidden.mjs","sources":["../../../packages/primitives/visually-hidden/src/visually-hidden.directive.ts","../../../packages/primitives/visually-hidden/src/visually-hidden-input-bubble.directive.ts","../../../packages/primitives/visually-hidden/src/visually-hidden-input.directive.ts","../../../packages/primitives/visually-hidden/radix-ng-primitives-visually-hidden.ts"],"sourcesContent":["import { Directive, input, linkedSignal } from '@angular/core';\n\nexport type VisuallyHidden = 'focusable' | 'fully-hidden';\n\n/**\n *\n * <span rdxVisuallyHidden [feature]=\"'fully-hidden'\">\n * <ng-content />\n * </span>\n *\n * <button (click)=\"directiveInstance.setFeature('focusable')\">Make Focusable</button>\n * <button (click)=\"directiveInstance.setFeature('fully-hidden')\">Hide</button>\n */\n@Directive({\n selector: '[rdxVisuallyHidden]',\n host: {\n '[attr.tabindex]': 'computedFeature() === \"fully-hidden\" ? \"-1\" : undefined',\n '[attr.aria-hidden]': 'computedFeature() === \"focusable\" ? \"true\" : undefined',\n '[attr.data-hidden]': 'computedFeature() === \"fully-hidden\" ? \"\" : undefined',\n '[hidden]': 'computedFeature() === \"fully-hidden\" ? true : undefined',\n '[style]': `{\n position: 'absolute',\n border: 0,\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal',\n top: '-1px',\n left: '-1px'\n }`,\n '[style.display]': 'feature() === \"focusable\" ? \"inline-block\" : \"none\"'\n }\n})\nexport class RdxVisuallyHiddenDirective {\n readonly feature = input<VisuallyHidden>('focusable');\n\n protected readonly computedFeature = linkedSignal(this.feature);\n\n setFeature(feature: VisuallyHidden) {\n this.computedFeature.set(feature);\n }\n}\n","import { computed, Directive, effect, ElementRef, inject, input, linkedSignal } from '@angular/core';\nimport { watch } from '@radix-ng/primitives/core';\nimport { RdxVisuallyHiddenDirective, VisuallyHidden } from './visually-hidden.directive';\n\n/**\n *\n */\n@Directive({\n selector: 'input[rdxVisuallyHiddenInputBubble]',\n hostDirectives: [\n {\n directive: RdxVisuallyHiddenDirective,\n inputs: ['feature: feature']\n }\n ],\n host: {\n '[attr.name]': 'name()',\n '[attr.required]': 'required()',\n '[attr.disabled]': 'disabled()',\n '[attr.checked]': 'checked()',\n '[attr.value]': 'computedValue()'\n }\n})\nexport class RdxVisuallyHiddenInputBubbleDirective<T> {\n private readonly elementRef = inject(ElementRef);\n private readonly visuallyHidden = inject(RdxVisuallyHiddenDirective);\n\n readonly feature = input<VisuallyHidden>('fully-hidden');\n\n readonly name = input<string | undefined>(undefined);\n readonly value = input<T | string | null>();\n readonly checked = input<boolean | undefined>(undefined);\n readonly required = input<boolean | undefined>(undefined);\n readonly disabled = input<boolean | undefined>(undefined);\n\n protected readonly computedFeature = linkedSignal(this.feature);\n protected readonly computedValue = linkedSignal(this.value);\n\n readonly valueState = computed(() => this.checked() ?? this.computedValue());\n\n constructor() {\n watch([this.valueState], ([cur]) => {\n if (!this.elementRef.nativeElement) {\n return;\n }\n\n const input = this.elementRef.nativeElement as HTMLInputElement;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (setValue) {\n const inputEvent = new Event('input', { bubbles: true });\n const changeEvent = new Event('change', { bubbles: true });\n setValue.call(input, cur);\n input.dispatchEvent(inputEvent);\n input.dispatchEvent(changeEvent);\n }\n });\n\n effect(() => {\n this.visuallyHidden.setFeature(this.computedFeature());\n });\n }\n\n setValue(value: string) {\n this.computedValue.set(value);\n }\n\n setFeature(feature: VisuallyHidden) {\n this.computedFeature.set(feature);\n }\n}\n","// Implementation from https://github.com/unovue/radix-vue\n\nimport { Directive, ElementRef, Injector, afterNextRender, computed, effect, inject, input } from '@angular/core';\nimport { RdxVisuallyHiddenInputBubbleDirective } from './visually-hidden-input-bubble.directive';\nimport { VisuallyHidden } from './visually-hidden.directive';\n\n@Directive({\n selector: '[rdxVisuallyHiddenInput]',\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> {\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n readonly name = input<string | undefined>(undefined);\n readonly value = input<T | string>();\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<VisuallyHidden>('fully-hidden');\n\n readonly parsedValue = computed(() => {\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 constructor() {\n afterNextRender(() => {\n effect(\n () => {\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 { injector: this.injector }\n );\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxVisuallyHiddenDirective","i1.RdxVisuallyHiddenInputBubbleDirective"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-visually-hidden.mjs","sources":["../../../packages/primitives/visually-hidden/src/visually-hidden.directive.ts","../../../packages/primitives/visually-hidden/src/visually-hidden-input-bubble.directive.ts","../../../packages/primitives/visually-hidden/src/visually-hidden-input.directive.ts","../../../packages/primitives/visually-hidden/radix-ng-primitives-visually-hidden.ts"],"sourcesContent":["import { Directive, input, linkedSignal } from '@angular/core';\n\nexport type VisuallyHidden = 'focusable' | 'fully-hidden';\n\n/**\n *\n * <span rdxVisuallyHidden [feature]=\"'fully-hidden'\">\n * <ng-content />\n * </span>\n *\n * <button (click)=\"directiveInstance.setFeature('focusable')\">Make Focusable</button>\n * <button (click)=\"directiveInstance.setFeature('fully-hidden')\">Hide</button>\n */\n@Directive({\n selector: '[rdxVisuallyHidden]',\n host: {\n '[attr.tabindex]': 'computedFeature() === \"fully-hidden\" ? \"-1\" : undefined',\n '[attr.aria-hidden]': 'computedFeature() === \"fully-hidden\" ? \"true\" : undefined',\n '[attr.data-hidden]': 'computedFeature() === \"fully-hidden\" ? \"\" : undefined',\n '[hidden]': 'computedFeature() === \"fully-hidden\" ? true : undefined',\n '[style]': `{\n position: 'absolute',\n border: 0,\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n }`,\n '[style.display]': 'computedFeature() === \"focusable\" ? \"inline-block\" : \"none\"'\n }\n})\nexport class RdxVisuallyHiddenDirective {\n readonly feature = input<VisuallyHidden>('focusable');\n\n protected readonly computedFeature = linkedSignal(this.feature);\n\n setFeature(feature: VisuallyHidden) {\n this.computedFeature.set(feature);\n }\n}\n","import { computed, Directive, effect, ElementRef, inject, input, linkedSignal } from '@angular/core';\nimport { watch } from '@radix-ng/primitives/core';\nimport { RdxVisuallyHiddenDirective, VisuallyHidden } from './visually-hidden.directive';\n\n/**\n *\n */\n@Directive({\n selector: 'input[rdxVisuallyHiddenInputBubble]',\n hostDirectives: [\n {\n directive: RdxVisuallyHiddenDirective,\n inputs: ['feature: feature']\n }\n ],\n host: {\n '[attr.name]': 'name()',\n '[attr.required]': 'required()',\n '[attr.disabled]': 'disabled()',\n '[attr.checked]': 'checked()',\n '[attr.value]': 'computedValue()'\n }\n})\nexport class RdxVisuallyHiddenInputBubbleDirective<T> {\n private readonly elementRef = inject(ElementRef);\n private readonly visuallyHidden = inject(RdxVisuallyHiddenDirective);\n\n readonly feature = input<VisuallyHidden>('fully-hidden');\n\n readonly name = input<string | undefined>(undefined);\n readonly value = input<T | string | null>();\n readonly checked = input<boolean | undefined>(undefined);\n readonly required = input<boolean | undefined>(undefined);\n readonly disabled = input<boolean | undefined>(undefined);\n\n protected readonly computedFeature = linkedSignal(this.feature);\n protected readonly computedValue = linkedSignal(this.value);\n\n readonly valueState = computed(() => this.checked() ?? this.computedValue());\n\n constructor() {\n watch([this.valueState], ([cur]) => {\n if (!this.elementRef.nativeElement) {\n return;\n }\n\n const input = this.elementRef.nativeElement as HTMLInputElement;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (setValue) {\n const inputEvent = new Event('input', { bubbles: true });\n const changeEvent = new Event('change', { bubbles: true });\n setValue.call(input, cur);\n input.dispatchEvent(inputEvent);\n input.dispatchEvent(changeEvent);\n }\n });\n\n effect(() => {\n this.visuallyHidden.setFeature(this.computedFeature());\n });\n }\n\n setValue(value: string) {\n this.computedValue.set(value);\n }\n\n setFeature(feature: VisuallyHidden) {\n this.computedFeature.set(feature);\n }\n}\n","import { Directive } from '@angular/core';\nimport { RdxVisuallyHiddenInputBubbleDirective } from './visually-hidden-input-bubble.directive';\n\n/**\n * Mirrors a control's value into a visually hidden `<input>` so it participates in form\n * submission while staying out of the visual and (when `fully-hidden`) accessibility tree.\n *\n * Apply it to a real `<input>` element. It carries a **single scalar value** — the composed\n * {@link RdxVisuallyHiddenInputBubbleDirective} owns `name`/`value`/`checked` and keeps the\n * native value in sync, re-dispatching `input`/`change` events so the value bubbles to the form.\n *\n * A single `<input>` can only represent one form field, so object/array values are not\n * supported here; render one directive per field instead.\n *\n * @example\n * ```html\n * <input rdxVisuallyHiddenInput [name]=\"'agree'\" [value]=\"checked() ? 'on' : 'off'\" />\n * ```\n */\n@Directive({\n selector: 'input[rdxVisuallyHiddenInput]',\n hostDirectives: [\n {\n directive: RdxVisuallyHiddenInputBubbleDirective,\n inputs: ['feature', 'name', 'value', 'checked', 'required', 'disabled']\n }\n ]\n})\nexport class RdxVisuallyHiddenInputDirective {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxVisuallyHiddenDirective","i1.RdxVisuallyHiddenInputBubbleDirective"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ # @radix-ng/primitives/meter
2
+
3
+ Secondary entry point of `@radix-ng/primitives`.
@@ -1,3 +1,4 @@
1
1
  # @radix-ng/primitives/navigation-menu
2
2
 
3
- A responsive navigation component that automatically collapses navigation items into a menu when space is limited. Follows the WAI-ARIA Menu Button Pattern for accessibility.
3
+ A collection of links and menus for website navigation. A menubar of triggers and links whose content
4
+ is rendered into one shared, floating-positioned popup, modeled on Base UI's Navigation Menu.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ng/primitives",
3
- "version": "0.51.0",
3
+ "version": "1.0.0-beta.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -19,13 +19,14 @@
19
19
  ],
20
20
  "peerDependencies": {
21
21
  "@angular/core": "^19.2.0 || ^20.0.0 || ^21.0.0",
22
- "@angular/cdk": "^19.2.0 || ^20.0.0 || ^21.0.0",
23
- "@floating-ui/dom": "^1.7.4"
22
+ "@floating-ui/dom": "^1.7.4",
23
+ "@internationalized/date": "^3.12.2",
24
+ "@internationalized/number": "^3.6.7"
24
25
  },
25
26
  "schematics": "./schematics/collection.json",
26
27
  "sideEffects": false,
27
28
  "ng-add": {
28
- "save": "true"
29
+ "save": true
29
30
  },
30
31
  "module": "fesm2022/radix-ng-primitives.mjs",
31
32
  "typings": "types/radix-ng-primitives.d.ts",
@@ -57,6 +58,10 @@
57
58
  "types": "./types/radix-ng-primitives-avatar.d.ts",
58
59
  "default": "./fesm2022/radix-ng-primitives-avatar.mjs"
59
60
  },
61
+ "./button": {
62
+ "types": "./types/radix-ng-primitives-button.d.ts",
63
+ "default": "./fesm2022/radix-ng-primitives-button.mjs"
64
+ },
60
65
  "./calendar": {
61
66
  "types": "./types/radix-ng-primitives-calendar.d.ts",
62
67
  "default": "./fesm2022/radix-ng-primitives-calendar.mjs"
@@ -101,14 +106,22 @@
101
106
  "types": "./types/radix-ng-primitives-dismissable-layer.d.ts",
102
107
  "default": "./fesm2022/radix-ng-primitives-dismissable-layer.mjs"
103
108
  },
104
- "./dropdown-menu": {
105
- "types": "./types/radix-ng-primitives-dropdown-menu.d.ts",
106
- "default": "./fesm2022/radix-ng-primitives-dropdown-menu.mjs"
109
+ "./drawer": {
110
+ "types": "./types/radix-ng-primitives-drawer.d.ts",
111
+ "default": "./fesm2022/radix-ng-primitives-drawer.mjs"
107
112
  },
108
113
  "./editable": {
109
114
  "types": "./types/radix-ng-primitives-editable.d.ts",
110
115
  "default": "./fesm2022/radix-ng-primitives-editable.mjs"
111
116
  },
117
+ "./field": {
118
+ "types": "./types/radix-ng-primitives-field.d.ts",
119
+ "default": "./fesm2022/radix-ng-primitives-field.mjs"
120
+ },
121
+ "./fieldset": {
122
+ "types": "./types/radix-ng-primitives-fieldset.d.ts",
123
+ "default": "./fesm2022/radix-ng-primitives-fieldset.mjs"
124
+ },
112
125
  "./focus-guards": {
113
126
  "types": "./types/radix-ng-primitives-focus-guards.d.ts",
114
127
  "default": "./fesm2022/radix-ng-primitives-focus-guards.mjs"
@@ -117,9 +130,9 @@
117
130
  "types": "./types/radix-ng-primitives-focus-scope.d.ts",
118
131
  "default": "./fesm2022/radix-ng-primitives-focus-scope.mjs"
119
132
  },
120
- "./hover-card": {
121
- "types": "./types/radix-ng-primitives-hover-card.d.ts",
122
- "default": "./fesm2022/radix-ng-primitives-hover-card.mjs"
133
+ "./input": {
134
+ "types": "./types/radix-ng-primitives-input.d.ts",
135
+ "default": "./fesm2022/radix-ng-primitives-input.mjs"
123
136
  },
124
137
  "./label": {
125
138
  "types": "./types/radix-ng-primitives-label.d.ts",
@@ -133,6 +146,10 @@
133
146
  "types": "./types/radix-ng-primitives-menubar.d.ts",
134
147
  "default": "./fesm2022/radix-ng-primitives-menubar.mjs"
135
148
  },
149
+ "./meter": {
150
+ "types": "./types/radix-ng-primitives-meter.d.ts",
151
+ "default": "./fesm2022/radix-ng-primitives-meter.mjs"
152
+ },
136
153
  "./navigation-menu": {
137
154
  "types": "./types/radix-ng-primitives-navigation-menu.d.ts",
138
155
  "default": "./fesm2022/radix-ng-primitives-navigation-menu.mjs"
@@ -161,6 +178,10 @@
161
178
  "types": "./types/radix-ng-primitives-presence.d.ts",
162
179
  "default": "./fesm2022/radix-ng-primitives-presence.mjs"
163
180
  },
181
+ "./preview-card": {
182
+ "types": "./types/radix-ng-primitives-preview-card.d.ts",
183
+ "default": "./fesm2022/radix-ng-primitives-preview-card.mjs"
184
+ },
164
185
  "./progress": {
165
186
  "types": "./types/radix-ng-primitives-progress.d.ts",
166
187
  "default": "./fesm2022/radix-ng-primitives-progress.mjs"
@@ -177,10 +198,6 @@
177
198
  "types": "./types/radix-ng-primitives-select.d.ts",
178
199
  "default": "./fesm2022/radix-ng-primitives-select.mjs"
179
200
  },
180
- "./select2": {
181
- "types": "./types/radix-ng-primitives-select2.d.ts",
182
- "default": "./fesm2022/radix-ng-primitives-select2.mjs"
183
- },
184
201
  "./separator": {
185
202
  "types": "./types/radix-ng-primitives-separator.d.ts",
186
203
  "default": "./fesm2022/radix-ng-primitives-separator.mjs"
@@ -221,10 +238,6 @@
221
238
  "types": "./types/radix-ng-primitives-tooltip.d.ts",
222
239
  "default": "./fesm2022/radix-ng-primitives-tooltip.mjs"
223
240
  },
224
- "./tooltip2": {
225
- "types": "./types/radix-ng-primitives-tooltip2.d.ts",
226
- "default": "./fesm2022/radix-ng-primitives-tooltip2.mjs"
227
- },
228
241
  "./visually-hidden": {
229
242
  "types": "./types/radix-ng-primitives-visually-hidden.d.ts",
230
243
  "default": "./fesm2022/radix-ng-primitives-visually-hidden.mjs"
package/portal/README.md CHANGED
@@ -1 +1,3 @@
1
1
  # @radix-ng/primitives/portal
2
+
3
+ Secondary entry point of `@radix-ng/primitives`. It can be used by importing from `@radix-ng/primitives/portal`.
@@ -0,0 +1,3 @@
1
+ # @radix-ng/primitives/preview-card
2
+
3
+ Secondary entry point of `@radix-ng/primitives`. It can be used by importing from `@radix-ng/primitives/preview-card`.
@@ -4,6 +4,7 @@
4
4
  "ng-add": {
5
5
  "description": "Add RadixNG to the application.",
6
6
  "factory": "./ng-add/index#ngAdd",
7
+ "schema": "./ng-add/schema.json",
7
8
  "aliases": ["install"]
8
9
  }
9
10
  }
@@ -1,6 +1,7 @@
1
1
  import { Rule } from '@angular-devkit/schematics';
2
+ import { Schema } from './schema';
2
3
  /**
3
4
  * This is executed when `ng add @radix-ng/primitives` is run.
4
- * It installs all dependencies in the 'package.json'.
5
+ * It adds the package and its runtime peer dependencies to package.json.
5
6
  */
6
- export declare function ngAdd(): Rule;
7
+ export declare function ngAdd(options?: Schema): Rule;
@@ -4,57 +4,88 @@ exports.ngAdd = ngAdd;
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
5
  const tasks_1 = require("@angular-devkit/schematics/tasks");
6
6
  const dependencies_1 = require("@schematics/angular/utility/dependencies");
7
- const pkgJson = require("../../package.json");
8
7
  const package_config_1 = require("./package-config");
8
+ const PACKAGE_NAME = '@radix-ng/primitives';
9
+ const PEER_DEPENDENCIES = {
10
+ '@floating-ui/dom': '^1.7.4',
11
+ '@internationalized/date': '^3.12.2',
12
+ '@internationalized/number': '^3.6.7'
13
+ };
14
+ function logDependencyGroup(context, label, dependencies) {
15
+ if (!dependencies.length) {
16
+ return;
17
+ }
18
+ context.logger.info(` ${label}:`);
19
+ dependencies.forEach((dependency) => context.logger.info(` - ${dependency}`));
20
+ }
9
21
  /**
10
22
  * This is executed when `ng add @radix-ng/primitives` is run.
11
- * It installs all dependencies in the 'package.json'.
23
+ * It adds the package and its runtime peer dependencies to package.json.
12
24
  */
13
- function ngAdd() {
25
+ function ngAdd(options = {}) {
14
26
  return (tree, context) => {
15
- const pkg = pkgJson;
16
27
  context.logger.info(``);
17
- context.logger.info(`Installing ${pkg.name} dependencies...`);
28
+ context.logger.info(`Radix NG Primitives`);
29
+ context.logger.info(`Setting up ${PACKAGE_NAME} for this Angular workspace.`);
30
+ context.logger.info(``);
18
31
  const ngCoreVersionTag = (0, package_config_1.getPackageVersionFromPackageJson)(tree, '@angular/core');
19
- context.logger.info(`@angular/core version ${ngCoreVersionTag}`);
20
32
  if (!ngCoreVersionTag) {
21
- throw new schematics_1.SchematicsException('@angular/core version not found');
33
+ throw new schematics_1.SchematicsException('Could not find @angular/core in package.json.');
22
34
  }
23
- const projectDeps = [
35
+ const getPeerVersion = (name) => {
36
+ const version = PEER_DEPENDENCIES[name];
37
+ if (!version) {
38
+ throw new schematics_1.SchematicsException(`Could not find ${name} in ${PACKAGE_NAME} peer dependencies.`);
39
+ }
40
+ return version;
41
+ };
42
+ const dependencies = [
43
+ { name: '@angular/common', type: dependencies_1.NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false },
24
44
  {
25
- name: '@angular/animations',
45
+ name: '@floating-ui/dom',
26
46
  type: dependencies_1.NodeDependencyType.Default,
27
- version: ngCoreVersionTag,
47
+ version: getPeerVersion('@floating-ui/dom'),
28
48
  overwrite: false
29
49
  },
30
- { name: '@angular/common', type: dependencies_1.NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false },
31
- { name: '@angular/core', type: dependencies_1.NodeDependencyType.Default, version: ngCoreVersionTag, overwrite: false }
32
- ];
33
- projectDeps.forEach((dep) => {
34
- (0, dependencies_1.addPackageJsonDependency)(tree, dep);
35
- context.logger.info(`Added dependency: ${dep.name}@${dep.version}`);
36
- });
37
- const libraryDeps = [
38
50
  {
39
- name: '@angular/cdk',
51
+ name: '@internationalized/date',
40
52
  type: dependencies_1.NodeDependencyType.Default,
41
- version: pkg.peerDependencies['@angular/cdk'],
53
+ version: getPeerVersion('@internationalized/date'),
54
+ overwrite: false
55
+ },
56
+ {
57
+ name: '@internationalized/number',
58
+ type: dependencies_1.NodeDependencyType.Default,
59
+ version: getPeerVersion('@internationalized/number'),
42
60
  overwrite: false
43
61
  }
44
62
  ];
45
- libraryDeps.forEach((dep) => {
63
+ const added = [];
64
+ const existing = [];
65
+ dependencies.forEach((dep) => {
66
+ const existingDependency = (0, dependencies_1.getPackageJsonDependency)(tree, dep.name);
46
67
  (0, dependencies_1.addPackageJsonDependency)(tree, dep);
47
- context.logger.info(`Added dependency: ${dep.name}@${dep.version}`);
68
+ if (existingDependency) {
69
+ existing.push(`${dep.name}@${existingDependency.version}`);
70
+ }
71
+ else {
72
+ added.push(`${dep.name}@${dep.version}`);
73
+ }
48
74
  });
49
- const library = {
50
- name: pkg.name,
51
- type: dependencies_1.NodeDependencyType.Default,
52
- version: `~${pkg.version}`,
53
- overwrite: true
54
- };
55
- (0, dependencies_1.addPackageJsonDependency)(tree, library);
56
- context.logger.info(`Installing ${library.name}@${library.version}`);
57
- context.addTask(new tasks_1.NodePackageInstallTask());
75
+ context.logger.info(`Updated package.json`);
76
+ logDependencyGroup(context, 'Added', added);
77
+ logDependencyGroup(context, 'Already present', existing);
78
+ if (options.skipInstall) {
79
+ context.logger.info(``);
80
+ context.logger.info(`Skipped package manager install.`);
81
+ }
82
+ else {
83
+ context.addTask(new tasks_1.NodePackageInstallTask());
84
+ context.logger.info(``);
85
+ context.logger.info(`Installing packages with your configured package manager...`);
86
+ }
87
+ context.logger.info(``);
88
+ context.logger.info(`Configuration complete. You can import primitives from ${PACKAGE_NAME}/<primitive>.`);
58
89
  return tree;
59
90
  };
60
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAUA,sBA0DC;AApED,2DAA+F;AAC/F,4DAA0E;AAC1E,2EAAwH;AACxH,8CAA8C;AAC9C,qDAAiF;AAEjF;;;GAGG;AACH,SAAgB,KAAK;IACjB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,OAAiC,CAAC;QAE9C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAE9D,MAAM,gBAAgB,GAAG,IAAA,iDAAgC,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,gBAAgB,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,IAAI,gCAAmB,CAAC,iCAAiC,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,WAAW,GAAqB;YAClC;gBACI,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,iCAAkB,CAAC,OAAO;gBAChC,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,KAAK;aACnB;YACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iCAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE;YAC1G,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,iCAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE;SAC3G,CAAC;QAEF,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,IAAA,uCAAwB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAqB;YAClC;gBACI,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,iCAAkB,CAAC,OAAO;gBAChC,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC;gBAC7C,SAAS,EAAE,KAAK;aACnB;SACJ,CAAC;QAEF,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,IAAA,uCAAwB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAmB;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,iCAAkB,CAAC,OAAO;YAChC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE;YAC1B,SAAS,EAAE,IAAI;SAClB,CAAC;QAEF,IAAA,uCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAErE,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,11 @@
7
7
  */
8
8
  import { Tree } from '@angular-devkit/schematics';
9
9
  export interface PackageJson {
10
- dependencies: Record<string, string>;
10
+ dependencies?: Record<string, string>;
11
+ devDependencies?: Record<string, string>;
11
12
  name: string;
12
- peerDependencies: Record<string, string>;
13
+ optionalDependencies?: Record<string, string>;
14
+ peerDependencies?: Record<string, string>;
13
15
  version: string;
14
16
  }
15
17
  /** Adds a package to the package.json in the given host tree. */
@@ -43,8 +43,16 @@ function getPackageVersionFromPackageJson(tree, name) {
43
43
  return null;
44
44
  }
45
45
  const packageJson = JSON.parse(tree.read('package.json').toString('utf8'));
46
- if (packageJson.dependencies && packageJson.dependencies[name]) {
47
- return packageJson.dependencies[name];
46
+ const dependencyTypes = [
47
+ packageJson.dependencies,
48
+ packageJson.devDependencies,
49
+ packageJson.peerDependencies,
50
+ packageJson.optionalDependencies
51
+ ];
52
+ for (const dependencies of dependencyTypes) {
53
+ if (dependencies?.[name]) {
54
+ return dependencies[name];
55
+ }
48
56
  }
49
57
  return null;
50
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"package-config.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/package-config.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA4BH,0DAkBC;AAGD,4EAYC;AAlDD;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAA2B;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SAClB,IAAI,EAAE;SACN,MAAM,CACH,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAA4B,CAC/B,CAAC;AACV,CAAC;AAED,iEAAiE;AACjE,SAAgB,uBAAuB,CAAC,IAAU,EAAE,GAAW,EAAE,OAAe;IAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAgB,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,kGAAkG;AAClG,SAAgB,gCAAgC,CAAC,IAAU,EAAE,IAAY;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgB,CAAC;IAE3F,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"package-config.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/package-config.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA8BH,0DAkBC;AAGD,4EAoBC;AA1DD;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAA2B;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SAClB,IAAI,EAAE;SACN,MAAM,CACH,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC,EACD,EAA4B,CAC/B,CAAC;AACV,CAAC;AAED,iEAAiE;AACjE,SAAgB,uBAAuB,CAAC,IAAU,EAAE,GAAW,EAAE,OAAe;IAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAgB,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,kGAAkG;AAClG,SAAgB,gCAAgC,CAAC,IAAU,EAAE,IAAY;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgB,CAAC;IAC3F,MAAM,eAAe,GAAG;QACpB,WAAW,CAAC,YAAY;QACxB,WAAW,CAAC,eAAe;QAC3B,WAAW,CAAC,gBAAgB;QAC5B,WAAW,CAAC,oBAAoB;KACnC,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface Schema {
2
+ skipInstall?: boolean;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../packages/primitives/schematics/ng-add/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "RadixNgPrimitivesNgAdd",
4
+ "title": "Radix NG Primitives ng-add options",
5
+ "type": "object",
6
+ "properties": {
7
+ "skipInstall": {
8
+ "description": "Skip package manager install after updating package.json.",
9
+ "type": "boolean",
10
+ "default": false
11
+ }
12
+ },
13
+ "additionalProperties": false
14
+ }
package/select/README.md CHANGED
@@ -1 +1,3 @@
1
1
  # @radix-ng/primitives/select
2
+
3
+ Secondary entry point of `@radix-ng/primitives`. It can be used by importing from `@radix-ng/primitives/select`.
@@ -1,16 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal, ElementRef, InputSignalWithTransform, InputSignal, ModelSignal } from '@angular/core';
2
+ import { Signal, WritableSignal, ElementRef, InputSignalWithTransform, InputSignal, ModelSignal } from '@angular/core';
3
3
  import * as _radix_ng_primitives_accordion from '@radix-ng/primitives/accordion';
4
4
  import * as i1 from '@radix-ng/primitives/collapsible';
5
- import { BooleanInput } from '@angular/cdk/coercion';
6
- import { Direction } from '@angular/cdk/bidi';
7
- import { DataOrientation } from '@radix-ng/primitives/core';
5
+ import { BooleanInput, Direction, DataOrientation, AcceptableValue } from '@radix-ng/primitives/core';
8
6
 
9
7
  declare class RdxAccordionContentDirective {
10
8
  protected readonly rootContext: _radix_ng_primitives_accordion.AccordionRootContext;
11
9
  protected readonly itemContext: _radix_ng_primitives_accordion.AccordionItemContext;
12
10
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionContentDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionContentDirective, "[rdxAccordionContent]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxCollapsibleContentDirective; inputs: {}; outputs: {}; }]>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionContentDirective, "[rdxAccordionContent]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxCollapsiblePanelDirective; inputs: {}; outputs: {}; }]>;
14
12
  }
15
13
 
16
14
  declare class RdxAccordionHeaderDirective {
@@ -24,12 +22,13 @@ type RdxAccordionItemState = 'open' | 'closed';
24
22
  type AccordionItemContext = {
25
23
  open: Signal<boolean>;
26
24
  disabled: Signal<boolean>;
27
- triggerId: string;
25
+ triggerId: WritableSignal<string>;
28
26
  dataState: Signal<RdxAccordionItemState>;
29
27
  dataDisabled: Signal<boolean>;
30
28
  currentElement: ElementRef<HTMLElement>;
31
29
  value: Signal<string | undefined>;
32
30
  updateOpen: () => void;
31
+ index: Signal<number>;
33
32
  };
34
33
  declare const injectAccordionItemContext: (optional?: boolean) => AccordionItemContext | null;
35
34
  declare const provideAccordionItemContext: (useFactory: () => AccordionItemContext) => i0.Provider;
@@ -51,17 +50,24 @@ declare class RdxAccordionItemDirective {
51
50
  * @group Props
52
51
  */
53
52
  readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
53
+ /**
54
+ * Event handler called when the panel open state changes.
55
+ * @group Emits
56
+ */
57
+ readonly onOpenChange: i0.OutputEmitterRef<boolean>;
54
58
  readonly isDisabled: Signal<boolean>;
55
- readonly open: Signal<any>;
59
+ readonly open: Signal<boolean>;
56
60
  readonly dataState: Signal<RdxAccordionItemState>;
61
+ /** Set by the trigger; links the content's `aria-labelledby` to the trigger `id`. */
62
+ readonly triggerId: WritableSignal<string>;
63
+ readonly index: Signal<number>;
57
64
  constructor();
58
65
  updateOpen: () => void;
59
66
  handleArrowKey(event: Event): void;
60
67
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionItemDirective, never>;
61
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionItemDirective, "[rdxAccordionItem]", ["rdxAccordionItem"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxCollapsibleRootDirective; inputs: { "disabled": "disabled"; "open": "open"; }; outputs: {}; }]>;
68
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionItemDirective, "[rdxAccordionItem]", ["rdxAccordionItem"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "onOpenChange": "onOpenChange"; }, never, never, true, [{ directive: typeof i1.RdxCollapsibleRootDirective; inputs: { "disabled": "disabled"; "open": "open"; }; outputs: {}; }]>;
62
69
  }
63
70
 
64
- type AcceptableValue = string | Record<string, any> | null;
65
71
  type AccordionRootContext = {
66
72
  disabled: InputSignalWithTransform<boolean, BooleanInput>;
67
73
  direction: InputSignal<Direction>;
@@ -69,6 +75,8 @@ type AccordionRootContext = {
69
75
  value: ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
70
76
  collapsible: Signal<boolean>;
71
77
  isSingle: Signal<boolean>;
78
+ loopFocus: InputSignalWithTransform<boolean, BooleanInput>;
79
+ keepMounted: InputSignalWithTransform<boolean, BooleanInput>;
72
80
  elementRef: ElementRef<HTMLElement>;
73
81
  changeModelValue: (value: string) => void;
74
82
  };
@@ -127,17 +135,43 @@ declare class RdxAccordionRootDirective {
127
135
  */
128
136
  readonly type: InputSignal<"multiple" | "single">;
129
137
  /**
130
- * Event handler called when the expanded state of an item changes and type is "multiple".
138
+ * Allow multiple panels to be open simultaneously.
139
+ * Takes precedence over `type` when `true`.
140
+ *
141
+ * @defaultValue false
142
+ * @group Props
143
+ */
144
+ readonly multiple: InputSignalWithTransform<boolean, BooleanInput>;
145
+ /**
146
+ * Whether keyboard focus wraps from the last item to the first and vice versa.
147
+ *
148
+ * @defaultValue true
149
+ * @group Props
150
+ */
151
+ readonly loopFocus: InputSignalWithTransform<boolean, BooleanInput>;
152
+ /**
153
+ * Whether to keep the content of collapsed items mounted in the DOM.
154
+ * When `true`, closed panels keep their element in the DOM instead of
155
+ * receiving a `hidden` attribute. Applies to the always-mounted
156
+ * `rdxAccordionContent`; the `rdxAccordionContentPresence` variant always
157
+ * unmounts.
158
+ *
159
+ * @defaultValue false
160
+ * @group Props
161
+ */
162
+ readonly keepMounted: InputSignalWithTransform<boolean, BooleanInput>;
163
+ /**
164
+ * Event handler called when the expanded state of an item changes.
131
165
  * @group Emits
132
166
  */
133
- readonly onValueChange: i0.OutputEmitterRef<void>;
167
+ readonly onValueChange: i0.OutputEmitterRef<AcceptableValue | AcceptableValue[] | undefined>;
134
168
  readonly isSingle: Signal<boolean>;
135
169
  constructor();
136
170
  changeModelValue: (newValue: string) => void;
137
171
  private isValueEqualOrExist;
138
172
  private isEqual;
139
173
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionRootDirective, never>;
140
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionRootDirective, "[rdxAccordionRoot]", ["rdxAccordionRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
174
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionRootDirective, "[rdxAccordionRoot]", ["rdxAccordionRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "loopFocus": { "alias": "loopFocus"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
141
175
  }
142
176
 
143
177
  declare class RdxAccordionTriggerDirective {
@@ -146,12 +180,12 @@ declare class RdxAccordionTriggerDirective {
146
180
  constructor();
147
181
  changeItem(): void;
148
182
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionTriggerDirective, never>;
149
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionTriggerDirective, "[rdxAccordionTrigger]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxCollapsibleTriggerDirective; inputs: {}; outputs: {}; }]>;
183
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionTriggerDirective, "[rdxAccordionTrigger]", never, {}, {}, never, never, true, never>;
150
184
  }
151
185
 
152
186
  declare class RdxAccordionContentPresenceDirective {
153
187
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionContentPresenceDirective, never>;
154
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionContentPresenceDirective, "ng-template[rdxAccordionContentPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxCollapsibleContentPresenceDirective; inputs: {}; outputs: {}; }]>;
188
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionContentPresenceDirective, "ng-template[rdxAccordionContentPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxCollapsiblePanelPresenceDirective; inputs: {}; outputs: {}; }]>;
155
189
  }
156
190
 
157
191
  declare class RdxAccordionModule {