@weeehaoooz/talos-ui 0.1.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 (180) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -0
  3. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs +237 -0
  4. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +1 -0
  5. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +93 -0
  6. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +1 -0
  7. package/fesm2022/weeehaoooz-talos-ui-core.mjs +438 -0
  8. package/fesm2022/weeehaoooz-talos-ui-core.mjs.map +1 -0
  9. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +233 -0
  10. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +1 -0
  11. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +361 -0
  12. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +1 -0
  13. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +312 -0
  14. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +1 -0
  15. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +235 -0
  16. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +1 -0
  17. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +462 -0
  18. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +1 -0
  19. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +805 -0
  20. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +1 -0
  21. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +267 -0
  22. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +1 -0
  23. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +351 -0
  24. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +1 -0
  25. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +566 -0
  26. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +1 -0
  27. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +534 -0
  28. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +1 -0
  29. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +446 -0
  30. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +1 -0
  31. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +376 -0
  32. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +1 -0
  33. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +147 -0
  34. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +1 -0
  35. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +242 -0
  36. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +1 -0
  37. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +514 -0
  38. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +1 -0
  39. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +548 -0
  40. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +1 -0
  41. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +692 -0
  42. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +1 -0
  43. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +761 -0
  44. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +1 -0
  45. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +896 -0
  46. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +1 -0
  47. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +872 -0
  48. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +1 -0
  49. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +119 -0
  50. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +1 -0
  51. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +135 -0
  52. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +1 -0
  53. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +666 -0
  54. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +1 -0
  55. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +147 -0
  56. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +1 -0
  57. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +33 -0
  58. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +1 -0
  59. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +455 -0
  60. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +1 -0
  61. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +379 -0
  62. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +1 -0
  63. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +297 -0
  64. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +1 -0
  65. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +661 -0
  66. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +1 -0
  67. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +346 -0
  68. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +1 -0
  69. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +896 -0
  70. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +1 -0
  71. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +252 -0
  72. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +1 -0
  73. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +916 -0
  74. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +1 -0
  75. package/fesm2022/weeehaoooz-talos-ui-layout.mjs +851 -0
  76. package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -0
  77. package/fesm2022/weeehaoooz-talos-ui-nav.mjs +897 -0
  78. package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -0
  79. package/fesm2022/weeehaoooz-talos-ui.mjs +17058 -0
  80. package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -0
  81. package/package.json +203 -0
  82. package/schematics/collection.json +10 -0
  83. package/schematics/ng-add/index.d.ts +3 -0
  84. package/schematics/ng-add/index.js +99 -0
  85. package/schematics/ng-add/schema.d.ts +10 -0
  86. package/schematics/ng-add/schema.js +2 -0
  87. package/schematics/ng-add/schema.json +52 -0
  88. package/styles/_alert.scss +56 -0
  89. package/styles/_badge.scss +279 -0
  90. package/styles/_button-group.scss +470 -0
  91. package/styles/_buttons.scss +442 -0
  92. package/styles/_card.scss +18 -0
  93. package/styles/_dialog.scss +116 -0
  94. package/styles/_drop-zone.scss +19 -0
  95. package/styles/_form-controls.scss +660 -0
  96. package/styles/_slide-toggle.scss +171 -0
  97. package/styles/_status-tag.scss +108 -0
  98. package/styles/_timeline.scss +19 -0
  99. package/styles/_tooltip.scss +32 -0
  100. package/styles/_typography.scss +279 -0
  101. package/styles/_variables.scss +590 -0
  102. package/styles/index.scss +15 -0
  103. package/types/weeehaoooz-talos-ui-button-button-group.d.ts +59 -0
  104. package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +1 -0
  105. package/types/weeehaoooz-talos-ui-button-button.d.ts +38 -0
  106. package/types/weeehaoooz-talos-ui-button-button.d.ts.map +1 -0
  107. package/types/weeehaoooz-talos-ui-core.d.ts +95 -0
  108. package/types/weeehaoooz-talos-ui-core.d.ts.map +1 -0
  109. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +119 -0
  110. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +1 -0
  111. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +135 -0
  112. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +1 -0
  113. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +144 -0
  114. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +1 -0
  115. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +83 -0
  116. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +1 -0
  117. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +255 -0
  118. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +1 -0
  119. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +204 -0
  120. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +1 -0
  121. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +101 -0
  122. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +1 -0
  123. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +138 -0
  124. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +1 -0
  125. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +161 -0
  126. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +1 -0
  127. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +212 -0
  128. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +1 -0
  129. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +259 -0
  130. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +1 -0
  131. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +147 -0
  132. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +1 -0
  133. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +32 -0
  134. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +1 -0
  135. package/types/weeehaoooz-talos-ui-form-affix.d.ts +88 -0
  136. package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +1 -0
  137. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +113 -0
  138. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +1 -0
  139. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +165 -0
  140. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +1 -0
  141. package/types/weeehaoooz-talos-ui-form-chips.d.ts +152 -0
  142. package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +1 -0
  143. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +144 -0
  144. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +1 -0
  145. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +138 -0
  146. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +1 -0
  147. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +148 -0
  148. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +1 -0
  149. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +44 -0
  150. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +1 -0
  151. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +48 -0
  152. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +1 -0
  153. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +227 -0
  154. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +1 -0
  155. package/types/weeehaoooz-talos-ui-form-form-field.d.ts +42 -0
  156. package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +1 -0
  157. package/types/weeehaoooz-talos-ui-form-input.d.ts +15 -0
  158. package/types/weeehaoooz-talos-ui-form-input.d.ts.map +1 -0
  159. package/types/weeehaoooz-talos-ui-form-otp.d.ts +111 -0
  160. package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +1 -0
  161. package/types/weeehaoooz-talos-ui-form-password-input.d.ts +145 -0
  162. package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +1 -0
  163. package/types/weeehaoooz-talos-ui-form-radio.d.ts +84 -0
  164. package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +1 -0
  165. package/types/weeehaoooz-talos-ui-form-range-input.d.ts +181 -0
  166. package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +1 -0
  167. package/types/weeehaoooz-talos-ui-form-rating.d.ts +110 -0
  168. package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +1 -0
  169. package/types/weeehaoooz-talos-ui-form-select-input.d.ts +195 -0
  170. package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +1 -0
  171. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +79 -0
  172. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +1 -0
  173. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +192 -0
  174. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +1 -0
  175. package/types/weeehaoooz-talos-ui-layout.d.ts +286 -0
  176. package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -0
  177. package/types/weeehaoooz-talos-ui-nav.d.ts +384 -0
  178. package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -0
  179. package/types/weeehaoooz-talos-ui.d.ts +5050 -0
  180. package/types/weeehaoooz-talos-ui.d.ts.map +1 -0
@@ -0,0 +1,297 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive, inject, ChangeDetectorRef, computed, ViewChild, Component, ElementRef, output, contentChildren, signal, effect, forwardRef, NgModule } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+
5
+ class TalosRadioDirective {
6
+ /** Sizing variation for the radio button */
7
+ size = input('md', /* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
9
+ /** Visual color variant for the radio button */
10
+ variant = input('primary', /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
12
+ /** Whether the radio button is in an invalid error state */
13
+ invalid = input(false, /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.1", type: TalosRadioDirective, isStandalone: true, selector: "input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.radio-sm": "size() === \"sm\"", "class.radio-md": "size() === \"md\"", "class.radio-lg": "size() === \"lg\"", "class.talos-radio-primary": "variant() === \"primary\"", "class.talos-radio-secondary": "variant() === \"secondary\"", "class.talos-radio-success": "variant() === \"success\"", "class.talos-radio-danger": "variant() === \"danger\"", "class.is-invalid": "invalid()" }, classAttribute: "talos-radio" }, ngImport: i0 });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: 'input[type="radio"][talosRadio], input[type="radio"][talos-radio]',
22
+ host: {
23
+ 'class': 'talos-radio',
24
+ '[class.radio-sm]': 'size() === "sm"',
25
+ '[class.radio-md]': 'size() === "md"',
26
+ '[class.radio-lg]': 'size() === "lg"',
27
+ '[class.talos-radio-primary]': 'variant() === "primary"',
28
+ '[class.talos-radio-secondary]': 'variant() === "secondary"',
29
+ '[class.talos-radio-success]': 'variant() === "success"',
30
+ '[class.talos-radio-danger]': 'variant() === "danger"',
31
+ '[class.is-invalid]': 'invalid()'
32
+ }
33
+ }]
34
+ }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }] } });
35
+
36
+ let radioOptionCounter = 0;
37
+ class TalosRadioComponent {
38
+ radioGroup = inject(TalosRadioGroupComponent, { optional: true });
39
+ cdr = inject(ChangeDetectorRef);
40
+ radioInputEl;
41
+ // Signal Inputs
42
+ value = input.required(/* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
44
+ disabled = input(false, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
46
+ size = input(undefined, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
48
+ variant = input(undefined, /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
50
+ id = input('', /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
52
+ // Internal Unique ID
53
+ defaultId = `talos-radio-opt-${++radioOptionCounter}`;
54
+ elementId = computed(() => this.id() || this.defaultId, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "elementId" }] : /* istanbul ignore next */ []));
56
+ // Cascading properties from group or standalone defaults
57
+ effectiveName = computed(() => this.radioGroup?.name() || 'talos-radio', /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "effectiveName" }] : /* istanbul ignore next */ []));
59
+ effectiveSize = computed(() => this.size() ?? this.radioGroup?.size() ?? 'md', /* @ts-ignore */
60
+ ...(ngDevMode ? [{ debugName: "effectiveSize" }] : /* istanbul ignore next */ []));
61
+ effectiveVariant = computed(() => this.variant() ?? this.radioGroup?.variant() ?? 'primary', /* @ts-ignore */
62
+ ...(ngDevMode ? [{ debugName: "effectiveVariant" }] : /* istanbul ignore next */ []));
63
+ effectiveDisabled = computed(() => this.disabled() || (this.radioGroup?.effectiveDisabled() ?? false), /* @ts-ignore */
64
+ ...(ngDevMode ? [{ debugName: "effectiveDisabled" }] : /* istanbul ignore next */ []));
65
+ // Selection state
66
+ checked = computed(() => {
67
+ if (!this.radioGroup)
68
+ return false;
69
+ return this.radioGroup.value() === this.value();
70
+ }, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
72
+ onRadioChange(event) {
73
+ if (this.effectiveDisabled())
74
+ return;
75
+ if (this.radioGroup) {
76
+ this.radioGroup.selectValue(this.value());
77
+ }
78
+ }
79
+ focusInput() {
80
+ this.radioInputEl?.nativeElement.focus();
81
+ }
82
+ markForCheck() {
83
+ this.cdr.markForCheck();
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.1", type: TalosRadioComponent, isStandalone: true, selector: "talos-radio", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "talos-radio-host" }, viewQueries: [{ propertyName: "radioInputEl", first: true, predicate: ["radioInput"], descendants: true }], ngImport: i0, template: `
87
+ <label class="talos-radio-wrapper" [class.is-disabled]="effectiveDisabled()" [class.is-checked]="checked()">
88
+ <input
89
+ #radioInput
90
+ type="radio"
91
+ talosRadio
92
+ [id]="elementId()"
93
+ [name]="effectiveName()"
94
+ [size]="effectiveSize()"
95
+ [variant]="effectiveVariant()"
96
+ [checked]="checked()"
97
+ [disabled]="effectiveDisabled()"
98
+ (change)="onRadioChange($event)"
99
+ />
100
+ <span class="talos-radio-label">
101
+ <ng-content></ng-content>
102
+ </span>
103
+ </label>
104
+ `, isInline: true, dependencies: [{ kind: "directive", type: TalosRadioDirective, selector: "input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]", inputs: ["size", "variant", "invalid"] }] });
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioComponent, decorators: [{
107
+ type: Component,
108
+ args: [{
109
+ selector: 'talos-radio',
110
+ imports: [TalosRadioDirective],
111
+ template: `
112
+ <label class="talos-radio-wrapper" [class.is-disabled]="effectiveDisabled()" [class.is-checked]="checked()">
113
+ <input
114
+ #radioInput
115
+ type="radio"
116
+ talosRadio
117
+ [id]="elementId()"
118
+ [name]="effectiveName()"
119
+ [size]="effectiveSize()"
120
+ [variant]="effectiveVariant()"
121
+ [checked]="checked()"
122
+ [disabled]="effectiveDisabled()"
123
+ (change)="onRadioChange($event)"
124
+ />
125
+ <span class="talos-radio-label">
126
+ <ng-content></ng-content>
127
+ </span>
128
+ </label>
129
+ `,
130
+ host: {
131
+ 'class': 'talos-radio-host'
132
+ }
133
+ }]
134
+ }], propDecorators: { radioInputEl: [{
135
+ type: ViewChild,
136
+ args: ['radioInput']
137
+ }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
138
+
139
+ let groupUniqueIdCounter = 0;
140
+ class TalosRadioGroupComponent {
141
+ elementRef = inject((ElementRef));
142
+ // Signal Inputs
143
+ name = input(`talos-radio-group-${++groupUniqueIdCounter}`, /* @ts-ignore */
144
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
145
+ size = input('md', /* @ts-ignore */
146
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
147
+ variant = input('primary', /* @ts-ignore */
148
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
149
+ direction = input('vertical', /* @ts-ignore */
150
+ ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
151
+ disabled = input(false, /* @ts-ignore */
152
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
153
+ invalid = input(false, /* @ts-ignore */
154
+ ...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
155
+ // Signal Outputs
156
+ valueChange = output();
157
+ // Content Queries for child radios
158
+ radios = contentChildren(TalosRadioComponent, { ...(ngDevMode ? { debugName: "radios" } : /* istanbul ignore next */ {}), descendants: true });
159
+ // Internal reactive state
160
+ value = signal(null, /* @ts-ignore */
161
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
162
+ isDisabled = signal(false, /* @ts-ignore */
163
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
164
+ isTouched = signal(false, /* @ts-ignore */
165
+ ...(ngDevMode ? [{ debugName: "isTouched" }] : /* istanbul ignore next */ []));
166
+ // Computed state
167
+ effectiveDisabled = computed(() => this.disabled() || this.isDisabled(), /* @ts-ignore */
168
+ ...(ngDevMode ? [{ debugName: "effectiveDisabled" }] : /* istanbul ignore next */ []));
169
+ // ControlValueAccessor Callbacks
170
+ onChange = () => { };
171
+ onTouched = () => { };
172
+ constructor() {
173
+ // Notify child radios when group state changes
174
+ effect(() => {
175
+ const childRadios = this.radios();
176
+ const currentVal = this.value();
177
+ childRadios.forEach((radio) => {
178
+ radio.markForCheck();
179
+ });
180
+ });
181
+ }
182
+ // --- ControlValueAccessor Interface ---
183
+ writeValue(val) {
184
+ this.value.set(val);
185
+ }
186
+ registerOnChange(fn) {
187
+ this.onChange = fn;
188
+ }
189
+ registerOnTouched(fn) {
190
+ this.onTouched = fn;
191
+ }
192
+ setDisabledState(isDisabled) {
193
+ this.isDisabled.set(isDisabled);
194
+ }
195
+ selectValue(val) {
196
+ if (this.effectiveDisabled())
197
+ return;
198
+ if (this.value() !== val) {
199
+ this.value.set(val);
200
+ this.onChange(val);
201
+ this.valueChange.emit(val);
202
+ }
203
+ this.markAsTouched();
204
+ }
205
+ markAsTouched() {
206
+ if (!this.isTouched()) {
207
+ this.isTouched.set(true);
208
+ this.onTouched();
209
+ }
210
+ }
211
+ // --- Keyboard Navigation (Arrow Keys) ---
212
+ onKeyDown(event) {
213
+ if (this.effectiveDisabled())
214
+ return;
215
+ const childRadios = this.radios().filter((r) => !r.effectiveDisabled());
216
+ if (childRadios.length === 0)
217
+ return;
218
+ const currentIdx = childRadios.findIndex((r) => r.value() === this.value());
219
+ switch (event.key) {
220
+ case 'ArrowDown':
221
+ case 'ArrowRight': {
222
+ event.preventDefault();
223
+ const nextIdx = currentIdx < 0 ? 0 : (currentIdx + 1) % childRadios.length;
224
+ const nextRadio = childRadios[nextIdx];
225
+ this.selectValue(nextRadio.value());
226
+ nextRadio.focusInput();
227
+ break;
228
+ }
229
+ case 'ArrowUp':
230
+ case 'ArrowLeft': {
231
+ event.preventDefault();
232
+ const prevIdx = currentIdx < 0 ? childRadios.length - 1 : (currentIdx - 1 + childRadios.length) % childRadios.length;
233
+ const prevRadio = childRadios[prevIdx];
234
+ this.selectValue(prevRadio.value());
235
+ prevRadio.focusInput();
236
+ break;
237
+ }
238
+ }
239
+ }
240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
241
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosRadioGroupComponent, isStandalone: true, selector: "talos-radio-group", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "class.direction-vertical": "direction() === \"vertical\"", "class.direction-horizontal": "direction() === \"horizontal\"", "class.is-disabled": "effectiveDisabled()", "class.is-invalid": "invalid()" }, classAttribute: "talos-radio-group" }, providers: [
242
+ {
243
+ provide: NG_VALUE_ACCESSOR,
244
+ useExisting: forwardRef(() => TalosRadioGroupComponent),
245
+ multi: true
246
+ }
247
+ ], queries: [{ propertyName: "radios", predicate: TalosRadioComponent, descendants: true, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
248
+ }
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioGroupComponent, decorators: [{
250
+ type: Component,
251
+ args: [{
252
+ selector: 'talos-radio-group',
253
+ template: '<ng-content></ng-content>',
254
+ providers: [
255
+ {
256
+ provide: NG_VALUE_ACCESSOR,
257
+ useExisting: forwardRef(() => TalosRadioGroupComponent),
258
+ multi: true
259
+ }
260
+ ],
261
+ host: {
262
+ 'class': 'talos-radio-group',
263
+ 'role': 'radiogroup',
264
+ '[class.direction-vertical]': 'direction() === "vertical"',
265
+ '[class.direction-horizontal]': 'direction() === "horizontal"',
266
+ '[class.is-disabled]': 'effectiveDisabled()',
267
+ '[class.is-invalid]': 'invalid()',
268
+ '(keydown)': 'onKeyDown($event)'
269
+ }
270
+ }]
271
+ }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], radios: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TalosRadioComponent), { ...{ descendants: true }, isSignal: true }] }] } });
272
+
273
+ /**
274
+ * Convenience NgModule wrapping the standalone radio components and directive.
275
+ *
276
+ * Allows developers who prefer `TalosRadioModule` to import it into standalone components
277
+ * or legacy NgModule-based applications.
278
+ */
279
+ class TalosRadioModule {
280
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
281
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule, imports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent], exports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent] });
282
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule });
283
+ }
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosRadioModule, decorators: [{
285
+ type: NgModule,
286
+ args: [{
287
+ imports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent],
288
+ exports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent]
289
+ }]
290
+ }] });
291
+
292
+ /**
293
+ * Generated bundle index. Do not edit.
294
+ */
295
+
296
+ export { TalosRadioComponent, TalosRadioDirective, TalosRadioGroupComponent, TalosRadioModule };
297
+ //# sourceMappingURL=weeehaoooz-talos-ui-form-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weeehaoooz-talos-ui-form-radio.mjs","sources":["../../../projects/talos-ui/form/radio/radio/radio.directive.ts","../../../projects/talos-ui/form/radio/radio/radio.component.ts","../../../projects/talos-ui/form/radio/radio-group/radio-group.component.ts","../../../projects/talos-ui/form/radio/radio.module.ts","../../../projects/talos-ui/form/radio/weeehaoooz-talos-ui-form-radio.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\n\nexport type RadioSize = 'sm' | 'md' | 'lg';\nexport type RadioVariant = 'primary' | 'secondary' | 'success' | 'danger';\n\n@Directive({\n selector: 'input[type=\"radio\"][talosRadio], input[type=\"radio\"][talos-radio]',\n host: {\n 'class': 'talos-radio',\n '[class.radio-sm]': 'size() === \"sm\"',\n '[class.radio-md]': 'size() === \"md\"',\n '[class.radio-lg]': 'size() === \"lg\"',\n '[class.talos-radio-primary]': 'variant() === \"primary\"',\n '[class.talos-radio-secondary]': 'variant() === \"secondary\"',\n '[class.talos-radio-success]': 'variant() === \"success\"',\n '[class.talos-radio-danger]': 'variant() === \"danger\"',\n '[class.is-invalid]': 'invalid()'\n }\n})\nexport class TalosRadioDirective {\n /** Sizing variation for the radio button */\n readonly size = input<RadioSize>('md');\n\n /** Visual color variant for the radio button */\n readonly variant = input<RadioVariant>('primary');\n\n /** Whether the radio button is in an invalid error state */\n readonly invalid = input<boolean>(false);\n}\n","import {\n Component,\n ElementRef,\n ViewChild,\n ChangeDetectorRef,\n computed,\n inject,\n input\n} from '@angular/core';\nimport { TalosRadioDirective, RadioSize, RadioVariant } from './radio.directive';\nimport { TalosRadioGroupComponent } from '../radio-group/radio-group.component';\n\nlet radioOptionCounter = 0;\n\n@Component({\n selector: 'talos-radio',\n imports: [TalosRadioDirective],\n template: `\n <label class=\"talos-radio-wrapper\" [class.is-disabled]=\"effectiveDisabled()\" [class.is-checked]=\"checked()\">\n <input\n #radioInput\n type=\"radio\"\n talosRadio\n [id]=\"elementId()\"\n [name]=\"effectiveName()\"\n [size]=\"effectiveSize()\"\n [variant]=\"effectiveVariant()\"\n [checked]=\"checked()\"\n [disabled]=\"effectiveDisabled()\"\n (change)=\"onRadioChange($event)\"\n />\n <span class=\"talos-radio-label\">\n <ng-content></ng-content>\n </span>\n </label>\n `,\n host: {\n 'class': 'talos-radio-host'\n }\n})\nexport class TalosRadioComponent {\n private readonly radioGroup = inject(TalosRadioGroupComponent, { optional: true });\n private readonly cdr = inject(ChangeDetectorRef);\n\n @ViewChild('radioInput') radioInputEl?: ElementRef<HTMLInputElement>;\n\n // Signal Inputs\n readonly value = input.required<unknown>();\n readonly disabled = input<boolean>(false);\n readonly size = input<RadioSize | undefined>(undefined);\n readonly variant = input<RadioVariant | undefined>(undefined);\n readonly id = input<string>('');\n\n // Internal Unique ID\n private readonly defaultId = `talos-radio-opt-${++radioOptionCounter}`;\n readonly elementId = computed(() => this.id() || this.defaultId);\n\n // Cascading properties from group or standalone defaults\n readonly effectiveName = computed(() => this.radioGroup?.name() || 'talos-radio');\n readonly effectiveSize = computed(() => this.size() ?? this.radioGroup?.size() ?? 'md');\n readonly effectiveVariant = computed(() => this.variant() ?? this.radioGroup?.variant() ?? 'primary');\n readonly effectiveDisabled = computed(() => this.disabled() || (this.radioGroup?.effectiveDisabled() ?? false));\n\n // Selection state\n readonly checked = computed(() => {\n if (!this.radioGroup) return false;\n return this.radioGroup.value() === this.value();\n });\n\n onRadioChange(event: Event): void {\n if (this.effectiveDisabled()) return;\n if (this.radioGroup) {\n this.radioGroup.selectValue(this.value());\n }\n }\n\n focusInput(): void {\n this.radioInputEl?.nativeElement.focus();\n }\n\n markForCheck(): void {\n this.cdr.markForCheck();\n }\n}\n","import {\n Component,\n ElementRef,\n computed,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TalosRadioDirective, RadioSize, RadioVariant } from '../radio/radio.directive';\nimport { TalosRadioComponent } from '../radio/radio.component';\n\nexport type RadioDirection = 'vertical' | 'horizontal';\n\nlet groupUniqueIdCounter = 0;\n\n@Component({\n selector: 'talos-radio-group',\n template: '<ng-content></ng-content>',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalosRadioGroupComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-radio-group',\n 'role': 'radiogroup',\n '[class.direction-vertical]': 'direction() === \"vertical\"',\n '[class.direction-horizontal]': 'direction() === \"horizontal\"',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[class.is-invalid]': 'invalid()',\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class TalosRadioGroupComponent implements ControlValueAccessor {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly name = input<string>(`talos-radio-group-${++groupUniqueIdCounter}`);\n readonly size = input<RadioSize>('md');\n readonly variant = input<RadioVariant>('primary');\n readonly direction = input<RadioDirection>('vertical');\n readonly disabled = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n\n // Signal Outputs\n readonly valueChange = output<unknown>();\n\n // Content Queries for child radios\n readonly radios = contentChildren(TalosRadioComponent, { descendants: true });\n\n // Internal reactive state\n readonly value = signal<unknown>(null);\n readonly isDisabled = signal<boolean>(false);\n readonly isTouched = signal<boolean>(false);\n\n // Computed state\n readonly effectiveDisabled = computed(() => this.disabled() || this.isDisabled());\n\n // ControlValueAccessor Callbacks\n private onChange: (val: unknown) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor() {\n // Notify child radios when group state changes\n effect(() => {\n const childRadios = this.radios();\n const currentVal = this.value();\n childRadios.forEach((radio) => {\n radio.markForCheck();\n });\n });\n }\n\n // --- ControlValueAccessor Interface ---\n writeValue(val: unknown): void {\n this.value.set(val);\n }\n\n registerOnChange(fn: (val: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled);\n }\n\n selectValue(val: unknown): void {\n if (this.effectiveDisabled()) return;\n if (this.value() !== val) {\n this.value.set(val);\n this.onChange(val);\n this.valueChange.emit(val);\n }\n this.markAsTouched();\n }\n\n markAsTouched(): void {\n if (!this.isTouched()) {\n this.isTouched.set(true);\n this.onTouched();\n }\n }\n\n // --- Keyboard Navigation (Arrow Keys) ---\n onKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled()) return;\n\n const childRadios = this.radios().filter((r) => !r.effectiveDisabled());\n if (childRadios.length === 0) return;\n\n const currentIdx = childRadios.findIndex((r) => r.value() === this.value());\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n event.preventDefault();\n const nextIdx = currentIdx < 0 ? 0 : (currentIdx + 1) % childRadios.length;\n const nextRadio = childRadios[nextIdx];\n this.selectValue(nextRadio.value());\n nextRadio.focusInput();\n break;\n }\n case 'ArrowUp':\n case 'ArrowLeft': {\n event.preventDefault();\n const prevIdx = currentIdx < 0 ? childRadios.length - 1 : (currentIdx - 1 + childRadios.length) % childRadios.length;\n const prevRadio = childRadios[prevIdx];\n this.selectValue(prevRadio.value());\n prevRadio.focusInput();\n break;\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TalosRadioDirective } from './radio/radio.directive';\nimport { TalosRadioGroupComponent } from './radio-group/radio-group.component';\nimport { TalosRadioComponent } from './radio/radio.component';\n\n/**\n * Convenience NgModule wrapping the standalone radio components and directive.\n * \n * Allows developers who prefer `TalosRadioModule` to import it into standalone components\n * or legacy NgModule-based applications.\n */\n@NgModule({\n imports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent],\n exports: [TalosRadioDirective, TalosRadioGroupComponent, TalosRadioComponent]\n})\nexport class TalosRadioModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}