@weeehaoooz/talos-ui 0.1.0 → 0.1.2

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 (187) hide show
  1. package/README.md +2 -0
  2. package/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs} +115 -18
  3. package/fesm2022/weeehaoooz-talos-ui-button.mjs.map +1 -0
  4. package/fesm2022/weeehaoooz-talos-ui-data-display.mjs +3110 -0
  5. package/fesm2022/weeehaoooz-talos-ui-data-display.mjs.map +1 -0
  6. package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs +2414 -0
  7. package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs.map +1 -0
  8. package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs +1039 -0
  9. package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs.map +1 -0
  10. package/fesm2022/weeehaoooz-talos-ui-feedback.mjs +2885 -0
  11. package/fesm2022/weeehaoooz-talos-ui-feedback.mjs.map +1 -0
  12. package/fesm2022/weeehaoooz-talos-ui-form.mjs +10799 -0
  13. package/fesm2022/weeehaoooz-talos-ui-form.mjs.map +1 -0
  14. package/fesm2022/weeehaoooz-talos-ui-layout.mjs +1320 -11
  15. package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
  16. package/fesm2022/weeehaoooz-talos-ui-nav.mjs +119 -72
  17. package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
  18. package/fesm2022/weeehaoooz-talos-ui.mjs +22190 -15213
  19. package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
  20. package/package.json +20 -135
  21. package/styles/_breadcrumb.scss +16 -0
  22. package/styles/_button-group.scss +156 -7
  23. package/styles/_buttons.scss +156 -8
  24. package/styles/_dropdown.scss +438 -0
  25. package/styles/_form-controls.scss +13 -0
  26. package/styles/_progress-bar.scss +43 -0
  27. package/styles/_skeleton.scss +176 -0
  28. package/styles/_spinner.scss +58 -0
  29. package/styles/_variables.scss +37 -0
  30. package/styles/index.scss +6 -1
  31. package/types/weeehaoooz-talos-ui-button.d.ts +92 -0
  32. package/types/weeehaoooz-talos-ui-button.d.ts.map +1 -0
  33. package/types/weeehaoooz-talos-ui-data-display.d.ts +1018 -0
  34. package/types/weeehaoooz-talos-ui-data-display.d.ts.map +1 -0
  35. package/types/weeehaoooz-talos-ui-data-viz.d.ts +839 -0
  36. package/types/weeehaoooz-talos-ui-data-viz.d.ts.map +1 -0
  37. package/types/weeehaoooz-talos-ui-dropdown.d.ts +187 -0
  38. package/types/weeehaoooz-talos-ui-dropdown.d.ts.map +1 -0
  39. package/types/weeehaoooz-talos-ui-feedback.d.ts +1495 -0
  40. package/types/weeehaoooz-talos-ui-feedback.d.ts.map +1 -0
  41. package/types/weeehaoooz-talos-ui-form.d.ts +2639 -0
  42. package/types/weeehaoooz-talos-ui-form.d.ts.map +1 -0
  43. package/types/weeehaoooz-talos-ui-layout.d.ts +851 -3
  44. package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -1
  45. package/types/weeehaoooz-talos-ui-nav.d.ts +36 -10
  46. package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -1
  47. package/types/weeehaoooz-talos-ui.d.ts +6949 -4137
  48. package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
  49. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +0 -1
  50. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +0 -93
  51. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +0 -1
  52. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +0 -233
  53. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +0 -1
  54. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +0 -361
  55. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +0 -1
  56. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +0 -312
  57. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +0 -1
  58. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +0 -235
  59. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +0 -1
  60. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +0 -462
  61. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +0 -1
  62. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +0 -805
  63. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +0 -1
  64. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +0 -267
  65. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +0 -1
  66. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +0 -351
  67. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +0 -1
  68. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +0 -566
  69. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +0 -1
  70. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +0 -534
  71. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +0 -1
  72. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +0 -446
  73. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +0 -1
  74. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +0 -376
  75. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +0 -1
  76. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +0 -147
  77. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +0 -1
  78. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +0 -242
  79. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +0 -1
  80. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +0 -514
  81. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +0 -1
  82. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +0 -548
  83. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +0 -1
  84. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +0 -692
  85. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +0 -1
  86. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +0 -761
  87. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +0 -1
  88. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +0 -896
  89. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +0 -1
  90. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +0 -872
  91. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +0 -1
  92. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +0 -119
  93. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +0 -1
  94. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +0 -135
  95. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +0 -1
  96. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +0 -666
  97. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +0 -1
  98. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +0 -147
  99. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +0 -1
  100. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +0 -33
  101. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +0 -1
  102. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +0 -455
  103. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +0 -1
  104. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +0 -379
  105. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +0 -1
  106. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +0 -297
  107. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +0 -1
  108. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +0 -661
  109. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +0 -1
  110. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +0 -346
  111. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +0 -1
  112. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +0 -896
  113. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +0 -1
  114. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +0 -252
  115. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +0 -1
  116. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +0 -916
  117. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +0 -1
  118. package/types/weeehaoooz-talos-ui-button-button-group.d.ts +0 -59
  119. package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +0 -1
  120. package/types/weeehaoooz-talos-ui-button-button.d.ts +0 -38
  121. package/types/weeehaoooz-talos-ui-button-button.d.ts.map +0 -1
  122. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +0 -119
  123. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +0 -1
  124. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +0 -135
  125. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +0 -1
  126. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +0 -144
  127. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +0 -1
  128. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +0 -83
  129. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +0 -1
  130. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +0 -255
  131. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +0 -1
  132. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +0 -204
  133. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +0 -1
  134. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +0 -101
  135. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +0 -1
  136. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +0 -138
  137. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +0 -1
  138. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +0 -161
  139. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +0 -1
  140. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +0 -212
  141. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +0 -1
  142. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +0 -259
  143. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +0 -1
  144. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +0 -147
  145. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +0 -1
  146. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +0 -32
  147. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +0 -1
  148. package/types/weeehaoooz-talos-ui-form-affix.d.ts +0 -88
  149. package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +0 -1
  150. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +0 -113
  151. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +0 -1
  152. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +0 -165
  153. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +0 -1
  154. package/types/weeehaoooz-talos-ui-form-chips.d.ts +0 -152
  155. package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +0 -1
  156. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +0 -144
  157. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +0 -1
  158. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +0 -138
  159. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +0 -1
  160. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +0 -148
  161. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +0 -1
  162. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +0 -44
  163. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +0 -1
  164. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +0 -48
  165. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +0 -1
  166. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +0 -227
  167. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +0 -1
  168. package/types/weeehaoooz-talos-ui-form-form-field.d.ts +0 -42
  169. package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +0 -1
  170. package/types/weeehaoooz-talos-ui-form-input.d.ts +0 -15
  171. package/types/weeehaoooz-talos-ui-form-input.d.ts.map +0 -1
  172. package/types/weeehaoooz-talos-ui-form-otp.d.ts +0 -111
  173. package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +0 -1
  174. package/types/weeehaoooz-talos-ui-form-password-input.d.ts +0 -145
  175. package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +0 -1
  176. package/types/weeehaoooz-talos-ui-form-radio.d.ts +0 -84
  177. package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +0 -1
  178. package/types/weeehaoooz-talos-ui-form-range-input.d.ts +0 -181
  179. package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +0 -1
  180. package/types/weeehaoooz-talos-ui-form-rating.d.ts +0 -110
  181. package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +0 -1
  182. package/types/weeehaoooz-talos-ui-form-select-input.d.ts +0 -195
  183. package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +0 -1
  184. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +0 -79
  185. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +0 -1
  186. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +0 -192
  187. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"weeehaoooz-talos-ui-data-viz-sparkline.mjs","sources":["../../../projects/talos-ui/data-viz/sparkline/sparkline.types.ts","../../../projects/talos-ui/data-viz/sparkline/sparkline.component.ts","../../../projects/talos-ui/data-viz/sparkline/sparkline.component.html","../../../projects/talos-ui/data-viz/sparkline/sparkline.module.ts","../../../projects/talos-ui/data-viz/sparkline/weeehaoooz-talos-ui-data-viz-sparkline.ts"],"sourcesContent":["/**\n * Types and interfaces for TalosSparklineComponent\n */\n\nexport type SparklineType = 'line' | 'area' | 'bar';\n\nexport type SparklineSize = 'xs' | 'sm' | 'md' | 'lg' | 'responsive' | 'custom';\n\nexport type SparklineColorScheme =\n | 'primary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'info'\n | 'violet'\n | 'emerald'\n | 'rose'\n | 'amber'\n | 'cyan'\n | 'slate'\n | string;\n\nexport type SparklineMarkerMode = 'none' | 'all' | 'endpoints' | 'min-max' | 'last';\n\nexport interface SparklinePoint {\n value: number;\n label?: string;\n date?: string;\n color?: string;\n}\n\nexport type SparklineInputData = (number | SparklinePoint)[];\n\nexport const GOLDEN_RATIO = 1.618;\n\nexport type SparklineAspectRatio = number | 'golden' | string;\n\nexport interface SparklineHoverEvent {\n index: number;\n value: number;\n label?: string;\n x: number;\n y: number;\n}\n","import {\n Component,\n DestroyRef,\n ElementRef,\n afterNextRender,\n computed,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport {\n GOLDEN_RATIO,\n SparklineAspectRatio,\n SparklineColorScheme,\n SparklineHoverEvent,\n SparklineInputData,\n SparklineMarkerMode,\n SparklinePoint,\n SparklineSize,\n SparklineType\n} from './sparkline.types';\n\nconst PRESET_PALETTES: Record<string, { stroke: string; fillStart: string; fillEnd: string }> = {\n primary: { stroke: '#2563eb', fillStart: 'rgba(37, 99, 235, 0.35)', fillEnd: 'rgba(37, 99, 235, 0.0)' },\n blue: { stroke: '#3b82f6', fillStart: 'rgba(59, 130, 246, 0.35)', fillEnd: 'rgba(59, 130, 246, 0.0)' },\n success: { stroke: '#16a34a', fillStart: 'rgba(22, 163, 74, 0.35)', fillEnd: 'rgba(22, 163, 74, 0.0)' },\n emerald: { stroke: '#10b981', fillStart: 'rgba(16, 185, 129, 0.35)', fillEnd: 'rgba(16, 185, 129, 0.0)' },\n danger: { stroke: '#ef4444', fillStart: 'rgba(239, 68, 68, 0.35)', fillEnd: 'rgba(239, 68, 68, 0.0)' },\n rose: { stroke: '#f43f5e', fillStart: 'rgba(244, 63, 94, 0.35)', fillEnd: 'rgba(244, 63, 94, 0.0)' },\n warning: { stroke: '#f59e0b', fillStart: 'rgba(245, 158, 11, 0.35)', fillEnd: 'rgba(245, 158, 11, 0.0)' },\n amber: { stroke: '#d97706', fillStart: 'rgba(217, 119, 6, 0.35)', fillEnd: 'rgba(217, 119, 6, 0.0)' },\n info: { stroke: '#0284c7', fillStart: 'rgba(2, 132, 199, 0.35)', fillEnd: 'rgba(2, 132, 199, 0.0)' },\n cyan: { stroke: '#06b6d4', fillStart: 'rgba(6, 182, 212, 0.35)', fillEnd: 'rgba(6, 182, 212, 0.0)' },\n violet: { stroke: '#8b5cf6', fillStart: 'rgba(139, 92, 246, 0.35)', fillEnd: 'rgba(139, 92, 246, 0.0)' },\n slate: { stroke: '#64748b', fillStart: 'rgba(100, 116, 139, 0.3)', fillEnd: 'rgba(100, 116, 139, 0.0)' }\n};\n\n// Golden Ratio (~1.618:1) and proportional defaults\nconst DEFAULT_SIZE_DIMENSIONS: Record<SparklineSize, { width: number; height: number }> = {\n xs: { width: 64, height: 40 },\n sm: { width: 96, height: 60 },\n md: { width: 130, height: 80 },\n lg: { width: 180, height: 110 },\n responsive: { width: 240, height: 60 },\n custom: { width: 130, height: 80 }\n};\n\nlet uniqueIdCounter = 0;\n\ninterface InternalPoint {\n index: number;\n value: number;\n label?: string;\n date?: string;\n x: number;\n y: number;\n color?: string;\n isMin?: boolean;\n isMax?: boolean;\n isFirst?: boolean;\n isLast?: boolean;\n}\n\ninterface BarSegment {\n index: number;\n value: number;\n label?: string;\n x: number;\n y: number;\n width: number;\n height: number;\n color: string;\n}\n\n@Component({\n selector: 'talos-sparkline',\n templateUrl: './sparkline.component.html',\n styleUrl: './sparkline.component.scss',\n host: {\n 'class': 'talos-sparkline',\n '[class.talos-sparkline-xs]': 'size() === \"xs\"',\n '[class.talos-sparkline-sm]': 'size() === \"sm\"',\n '[class.talos-sparkline-md]': 'size() === \"md\"',\n '[class.talos-sparkline-lg]': 'size() === \"lg\"',\n '[class.talos-sparkline-responsive]': 'size() === \"responsive\"',\n '[style.width]': 'hostWidth()',\n '[style.height]': 'hostHeight()',\n '[style.aspectRatio]': 'computedAspectRatio()',\n '[attr.role]': '\"img\"',\n '[attr.aria-label]': 'computedAriaLabel()'\n }\n})\nexport class TalosSparklineComponent {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private resizeObserver?: ResizeObserver;\n\n /** Data points (numbers or objects) */\n readonly data = input<SparklineInputData>([]);\n\n /** Chart type: line, area, or bar */\n readonly type = input<SparklineType>('area');\n\n /** Visual color theme or custom hex code */\n readonly color = input<SparklineColorScheme>('primary');\n\n /** Automatically choose green/red based on first -> last delta */\n readonly autoColorTrend = input<boolean>(false);\n\n /** Smooth Bezier interpolation vs straight line */\n readonly smooth = input<boolean>(true);\n\n /** Stroke line width */\n readonly strokeWidth = input<number>(2);\n\n /** Marker dots display mode */\n readonly showMarkers = input<SparklineMarkerMode>('none');\n\n /** Marker circle radius */\n readonly markerRadius = input<number>(3.5);\n\n /** Optional reference horizontal baseline */\n readonly referenceValue = input<number | null>(null);\n\n /** Show interactive hover tooltip */\n readonly showTooltip = input<boolean>(true);\n\n /** Interactive mouse events enabled */\n readonly interactive = input<boolean>(true);\n\n /** Gap between bars for bar sparklines */\n readonly barGap = input<number>(3);\n\n /** Corner radius for bars */\n readonly barRadius = input<number>(2);\n\n /** Preset size */\n readonly size = input<SparklineSize>('md');\n\n /** Aspect ratio configuration (e.g. 'golden', 1.618, '2:1', '16:9') */\n readonly aspectRatio = input<SparklineAspectRatio | null>(null);\n\n /** Custom width override (e.g. '120px' or '100%') */\n readonly width = input<number | string | null>(null);\n\n /** Custom height override (e.g. '36px') */\n readonly height = input<number | string | null>(null);\n\n /** Explicit minimum value bounds */\n readonly min = input<number | null>(null);\n\n /** Explicit maximum value bounds */\n readonly max = input<number | null>(null);\n\n /** Custom accessible label */\n readonly ariaLabel = input<string | null>(null);\n\n /** Value formatter for tooltip */\n readonly valueFormatter = input<(val: number) => string>((val) => val.toLocaleString());\n\n /** Hover event emitter */\n readonly pointHover = output<SparklineHoverEvent | null>();\n\n /** Click event emitter */\n readonly pointClick = output<SparklineHoverEvent>();\n\n // Unique ID for SVG linear gradient IDs\n readonly gradientId = `talos-sparkline-grad-${++uniqueIdCounter}`;\n\n // Interactive hover state\n protected readonly hoveredPoint = signal<InternalPoint | null>(null);\n protected readonly isHovering = signal<boolean>(false);\n\n // Dynamic container dimensions for 1:1 SVG coordinate rendering (prevents non-uniform stretching)\n protected readonly containerWidth = signal<number>(120);\n protected readonly containerHeight = signal<number>(36);\n\n readonly svgWidth = computed(() => this.containerWidth());\n readonly svgHeight = computed(() => this.containerHeight());\n\n protected readonly padding = computed(() => {\n if (this.type() === 'bar') return 2;\n if (this.showMarkers() !== 'none' || this.interactive()) return 5;\n return 3;\n });\n\n constructor() {\n afterNextRender(() => {\n this.updateDimensions();\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) {\n this.containerWidth.set(Math.round(width));\n this.containerHeight.set(Math.round(height));\n }\n }\n });\n this.resizeObserver.observe(this.elementRef.nativeElement);\n }\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.resizeObserver?.disconnect();\n });\n }\n\n private updateDimensions(): void {\n const el = this.elementRef.nativeElement;\n const rect = el.getBoundingClientRect();\n if (rect.width > 0 && rect.height > 0) {\n this.containerWidth.set(Math.round(rect.width));\n this.containerHeight.set(Math.round(rect.height));\n } else {\n const defaultDims = DEFAULT_SIZE_DIMENSIONS[this.size()] || DEFAULT_SIZE_DIMENSIONS.md;\n this.containerWidth.set(defaultDims.width);\n this.containerHeight.set(defaultDims.height);\n }\n }\n\n /** Host styles */\n readonly hostWidth = computed(() => {\n const custom = this.width();\n if (custom !== null) return typeof custom === 'number' ? `${custom}px` : custom;\n return null;\n });\n\n readonly hostHeight = computed(() => {\n const custom = this.height();\n if (custom !== null) return typeof custom === 'number' ? `${custom}px` : custom;\n return null;\n });\n\n readonly computedAspectRatio = computed(() => {\n const ar = this.aspectRatio();\n if (ar === 'golden') return `${GOLDEN_RATIO} / 1`;\n if (typeof ar === 'number') return `${ar} / 1`;\n if (typeof ar === 'string') {\n if (ar.includes(':')) {\n const [w, h] = ar.split(':');\n return `${w.trim()} / ${h.trim()}`;\n }\n return ar;\n }\n return null;\n });\n\n /** Normalized points array */\n readonly normalizedPoints = computed<SparklinePoint[]>(() => {\n const raw = this.data();\n if (!raw || raw.length === 0) return [];\n return raw.map((item, idx) => {\n if (typeof item === 'number') {\n return { value: item };\n }\n return item;\n });\n });\n\n /** Determine effective color palette */\n readonly effectiveColor = computed(() => {\n if (this.autoColorTrend()) {\n const pts = this.normalizedPoints();\n if (pts.length >= 2) {\n const first = pts[0].value;\n const last = pts[pts.length - 1].value;\n if (last >= first) {\n return PRESET_PALETTES['success'];\n } else {\n return PRESET_PALETTES['danger'];\n }\n }\n }\n\n const c = this.color();\n if (PRESET_PALETTES[c]) {\n return PRESET_PALETTES[c];\n }\n // Custom hex/rgb\n return {\n stroke: c,\n fillStart: c.startsWith('#') ? `${c}40` : 'rgba(37, 99, 235, 0.3)',\n fillEnd: c.startsWith('#') ? `${c}00` : 'rgba(37, 99, 235, 0.0)'\n };\n });\n\n /** Min & Max calculation */\n readonly valueBounds = computed(() => {\n const pts = this.normalizedPoints();\n if (pts.length === 0) return { min: 0, max: 100, span: 100, rawMin: 0, rawMax: 100 };\n\n let calculatedMin = pts[0].value;\n let calculatedMax = pts[0].value;\n\n for (const p of pts) {\n if (p.value < calculatedMin) calculatedMin = p.value;\n if (p.value > calculatedMax) calculatedMax = p.value;\n }\n\n // Include reference value if set\n const ref = this.referenceValue();\n if (ref !== null) {\n if (ref < calculatedMin) calculatedMin = ref;\n if (ref > calculatedMax) calculatedMax = ref;\n }\n\n // Explicit override\n const explicitMin = this.min();\n const explicitMax = this.max();\n\n const finalMin = explicitMin !== null ? explicitMin : calculatedMin;\n const finalMax = explicitMax !== null ? explicitMax : calculatedMax;\n\n // Prevent divide by zero if constant value\n const span = finalMax === finalMin ? 1 : finalMax - finalMin;\n\n return { min: finalMin, max: finalMax, span, rawMin: calculatedMin, rawMax: calculatedMax };\n });\n\n /** Computed internal points with SVG coordinates */\n readonly internalPoints = computed<InternalPoint[]>(() => {\n const pts = this.normalizedPoints();\n if (pts.length === 0) return [];\n\n const { min, span, rawMin, rawMax } = this.valueBounds();\n const w = this.svgWidth();\n const h = this.svgHeight();\n const p = this.padding();\n const availableW = Math.max(1, w - p * 2);\n const availableH = Math.max(1, h - p * 2);\n\n const count = pts.length;\n const stepX = count > 1 ? availableW / (count - 1) : availableW / 2;\n\n return pts.map((pt, idx) => {\n const x = count === 1 ? w / 2 : p + idx * stepX;\n // Invert Y because SVG 0 is top\n const normalizedRatio = (pt.value - min) / span;\n const y = h - p - normalizedRatio * availableH;\n\n return {\n index: idx,\n value: pt.value,\n label: pt.label,\n date: pt.date,\n x,\n y,\n color: pt.color,\n isMin: pt.value === rawMin,\n isMax: pt.value === rawMax,\n isFirst: idx === 0,\n isLast: idx === count - 1\n };\n });\n });\n\n /** SVG Path line data */\n readonly linePath = computed<string>(() => {\n const pts = this.internalPoints();\n if (pts.length < 2) return '';\n\n if (!this.smooth()) {\n return pts.map((p, idx) => `${idx === 0 ? 'M' : 'L'} ${p.x.toFixed(2)} ${p.y.toFixed(2)}`).join(' ');\n }\n\n // Smooth Bezier Curve (Catmull-Rom or Monotone-like control points)\n let d = `M ${pts[0].x.toFixed(2)} ${pts[0].y.toFixed(2)}`;\n for (let i = 0; i < pts.length - 1; i++) {\n const p0 = i > 0 ? pts[i - 1] : pts[i];\n const p1 = pts[i];\n const p2 = pts[i + 1];\n const p3 = i < pts.length - 2 ? pts[i + 2] : p2;\n\n const cp1x = p1.x + (p2.x - p0.x) / 6;\n const cp1y = p1.y + (p2.y - p0.y) / 6;\n const cp2x = p2.x - (p3.x - p1.x) / 6;\n const cp2y = p2.y - (p3.y - p1.y) / 6;\n\n d += ` C ${cp1x.toFixed(2)} ${cp1y.toFixed(2)}, ${cp2x.toFixed(2)} ${cp2y.toFixed(2)}, ${p2.x.toFixed(2)} ${p2.y.toFixed(2)}`;\n }\n return d;\n });\n\n /** SVG Area path (closed polygon under curve) */\n readonly areaPath = computed<string>(() => {\n const line = this.linePath();\n const pts = this.internalPoints();\n if (!line || pts.length < 2) return '';\n\n const lastPt = pts[pts.length - 1];\n const firstPt = pts[0];\n const baselineY = this.svgHeight();\n\n return `${line} L ${lastPt.x.toFixed(2)} ${baselineY} L ${firstPt.x.toFixed(2)} ${baselineY} Z`;\n });\n\n /** Bar chart segments */\n readonly barSegments = computed<BarSegment[]>(() => {\n const pts = this.normalizedPoints();\n if (pts.length === 0) return [];\n\n const explicitMin = this.min();\n const explicitMax = this.max();\n const { rawMin, rawMax } = this.valueBounds();\n\n // For bar charts, default baseline is 0 unless min is explicitly provided\n const barMin = explicitMin !== null ? explicitMin : Math.min(0, rawMin);\n const barMax = explicitMax !== null ? explicitMax : Math.max(0, rawMax);\n const barSpan = barMax === barMin ? (barMax !== 0 ? Math.abs(barMax) : 1) : barMax - barMin;\n\n const w = this.svgWidth();\n const h = this.svgHeight();\n const p = this.padding();\n const gap = this.barGap();\n const count = pts.length;\n\n const availableW = Math.max(1, w - p * 2);\n const totalGaps = (count - 1) * gap;\n const barW = Math.max(2, (availableW - totalGaps) / count);\n const availableH = Math.max(1, h - p * 2);\n const baseColor = this.effectiveColor().stroke;\n\n // Calculate Y position of zero baseline\n const zeroRatio = Math.max(0, Math.min(1, (0 - barMin) / barSpan));\n const zeroY = h - p - zeroRatio * availableH;\n\n return pts.map((pt, idx) => {\n const x = p + idx * (barW + gap);\n const val = pt.value;\n\n let y: number;\n let barH: number;\n\n if (barMin >= 0) {\n // All positive (standard case)\n const ratio = Math.max(0, Math.min(1, (val - barMin) / barSpan));\n barH = Math.max(2, ratio * availableH);\n y = h - p - barH;\n } else if (barMax <= 0) {\n // All negative\n const ratio = Math.max(0, Math.min(1, Math.abs(val) / barSpan));\n barH = Math.max(2, ratio * availableH);\n y = p;\n } else {\n // Mixed positive & negative values around zero baseline\n if (val >= 0) {\n const ratio = Math.min(1, val / barSpan);\n barH = Math.max(2, ratio * availableH);\n y = zeroY - barH;\n } else {\n const ratio = Math.min(1, Math.abs(val) / barSpan);\n barH = Math.max(2, ratio * availableH);\n y = zeroY;\n }\n }\n\n return {\n index: idx,\n value: pt.value,\n label: pt.label,\n x,\n y,\n width: barW,\n height: barH,\n color: pt.color || baseColor\n };\n });\n });\n\n /** Highlight markers based on showMarkers input */\n readonly markersToRender = computed<InternalPoint[]>(() => {\n const mode = this.showMarkers();\n if (mode === 'none') return [];\n const pts = this.internalPoints();\n\n switch (mode) {\n case 'all':\n return pts;\n case 'endpoints':\n return pts.filter((p) => p.isFirst || p.isLast);\n case 'min-max':\n return pts.filter((p) => p.isMin || p.isMax);\n case 'last':\n return pts.length > 0 ? [pts[pts.length - 1]] : [];\n default:\n return [];\n }\n });\n\n /** Reference baseline Y coordinate */\n readonly referenceLineY = computed<number | null>(() => {\n const ref = this.referenceValue();\n if (ref === null) return null;\n\n const { min, span } = this.valueBounds();\n const h = this.svgHeight();\n const p = this.padding();\n const availableH = Math.max(1, h - p * 2);\n const ratio = (ref - min) / span;\n return h - p - ratio * availableH;\n });\n\n /** Aria label for accessibility */\n readonly computedAriaLabel = computed(() => {\n const custom = this.ariaLabel();\n if (custom) return custom;\n\n const pts = this.normalizedPoints();\n if (pts.length === 0) return 'Empty sparkline';\n const first = pts[0].value;\n const last = pts[pts.length - 1].value;\n const delta = last - first;\n const direction = delta >= 0 ? 'increased' : 'decreased';\n return `Sparkline trend: ${first} to ${last} (${direction} by ${Math.abs(delta).toFixed(1)})`;\n });\n\n /** Handle mouse move for interactive hover tracking */\n protected onMouseMove(event: MouseEvent): void {\n if (!this.interactive()) return;\n\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const mouseX = event.clientX - rect.left;\n\n if (this.type() === 'bar') {\n const bars = this.barSegments();\n if (bars.length === 0) return;\n\n let nearest = bars[0];\n let minDistance = Math.abs(bars[0].x + bars[0].width / 2 - mouseX);\n\n for (let i = 1; i < bars.length; i++) {\n const centerX = bars[i].x + bars[i].width / 2;\n const dist = Math.abs(centerX - mouseX);\n if (dist < minDistance) {\n minDistance = dist;\n nearest = bars[i];\n }\n }\n\n const point: InternalPoint = {\n index: nearest.index,\n value: nearest.value,\n label: nearest.label,\n x: Math.round(nearest.x + nearest.width / 2),\n y: nearest.y\n };\n\n this.hoveredPoint.set(point);\n this.isHovering.set(true);\n\n this.pointHover.emit({\n index: nearest.index,\n value: nearest.value,\n label: nearest.label,\n x: point.x,\n y: point.y\n });\n return;\n }\n\n const pts = this.internalPoints();\n if (pts.length === 0) return;\n\n // Find nearest point based on direct pixel coordinate\n let nearest = pts[0];\n let minDistance = Math.abs(pts[0].x - mouseX);\n\n for (let i = 1; i < pts.length; i++) {\n const dist = Math.abs(pts[i].x - mouseX);\n if (dist < minDistance) {\n minDistance = dist;\n nearest = pts[i];\n }\n }\n\n this.hoveredPoint.set(nearest);\n this.isHovering.set(true);\n\n this.pointHover.emit({\n index: nearest.index,\n value: nearest.value,\n label: nearest.label,\n x: nearest.x,\n y: nearest.y\n });\n }\n\n /** Handle mouse leave */\n protected onMouseLeave(): void {\n if (!this.interactive()) return;\n this.hoveredPoint.set(null);\n this.isHovering.set(false);\n this.pointHover.emit(null);\n }\n\n /** Handle point click */\n protected onPointClick(point: InternalPoint | BarSegment): void {\n const x = 'width' in point ? Math.round(point.x + point.width / 2) : ('x' in point ? point.x : 0);\n this.pointClick.emit({\n index: point.index,\n value: point.value,\n label: point.label,\n x,\n y: 'y' in point ? point.y : 0\n });\n }\n}\n","<svg\n class=\"talos-sparkline-svg\"\n [attr.viewBox]=\"'0 0 ' + svgWidth() + ' ' + svgHeight()\"\n (mousemove)=\"onMouseMove($event)\"\n (mouseleave)=\"onMouseLeave()\"\n aria-hidden=\"true\"\n>\n <defs>\n <linearGradient [id]=\"gradientId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"effectiveColor().fillStart\" />\n <stop offset=\"100%\" [attr.stop-color]=\"effectiveColor().fillEnd\" />\n </linearGradient>\n </defs>\n\n <!-- Reference Baseline (if provided) -->\n @if (referenceLineY() !== null) {\n <line\n class=\"talos-sparkline-reference-line\"\n [attr.x1]=\"0\"\n [attr.y1]=\"referenceLineY()\"\n [attr.x2]=\"svgWidth()\"\n [attr.y2]=\"referenceLineY()\"\n />\n }\n\n <!-- Chart Type: Area / Line -->\n @if (type() === 'area' || type() === 'line') {\n @if (type() === 'area' && areaPath()) {\n <path\n class=\"talos-sparkline-area\"\n [attr.d]=\"areaPath()\"\n [attr.fill]=\"'url(#' + gradientId + ')'\"\n />\n }\n\n @if (linePath()) {\n <path\n class=\"talos-sparkline-line\"\n [attr.d]=\"linePath()\"\n [attr.stroke]=\"effectiveColor().stroke\"\n [attr.stroke-width]=\"strokeWidth()\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n }\n }\n\n <!-- Chart Type: Bar -->\n @if (type() === 'bar') {\n @for (bar of barSegments(); track bar.index) {\n <rect\n class=\"talos-sparkline-bar\"\n [class.talos-sparkline-bar-hovered]=\"isHovering() && hoveredPoint()?.index === bar.index\"\n [attr.x]=\"bar.x\"\n [attr.y]=\"bar.y\"\n [attr.width]=\"bar.width\"\n [attr.height]=\"bar.height\"\n [attr.rx]=\"barRadius()\"\n [attr.ry]=\"barRadius()\"\n [attr.fill]=\"bar.color\"\n (click)=\"onPointClick(bar)\"\n />\n }\n }\n\n <!-- Highlight Markers -->\n @for (marker of markersToRender(); track marker.index) {\n <circle\n class=\"talos-sparkline-marker\"\n [attr.cx]=\"marker.x\"\n [attr.cy]=\"marker.y\"\n [attr.r]=\"markerRadius()\"\n [attr.fill]=\"marker.color || effectiveColor().stroke\"\n [attr.stroke]=\"'#ffffff'\"\n [attr.stroke-width]=\"1.5\"\n (click)=\"onPointClick(marker)\"\n />\n }\n\n <!-- Interactive Hover Crosshair / Cursor Dot (Line/Area only) -->\n @if (type() !== 'bar' && isHovering() && hoveredPoint(); as pt) {\n <line\n class=\"talos-sparkline-cursor-line\"\n [attr.x1]=\"pt.x\"\n [attr.y1]=\"0\"\n [attr.x2]=\"pt.x\"\n [attr.y2]=\"svgHeight()\"\n />\n <circle\n class=\"talos-sparkline-hover-dot-outer\"\n [attr.cx]=\"pt.x\"\n [attr.cy]=\"pt.y\"\n [attr.r]=\"markerRadius() + 2.5\"\n [attr.fill]=\"effectiveColor().stroke\"\n opacity=\"0.25\"\n />\n <circle\n class=\"talos-sparkline-hover-dot\"\n [attr.cx]=\"pt.x\"\n [attr.cy]=\"pt.y\"\n [attr.r]=\"markerRadius() + 0.5\"\n [attr.fill]=\"effectiveColor().stroke\"\n stroke=\"#ffffff\"\n [attr.stroke-width]=\"1.5\"\n />\n }\n</svg>\n\n<!-- Floating Tooltip on Hover -->\n@if (showTooltip() && isHovering() && hoveredPoint(); as pt) {\n <div\n class=\"talos-sparkline-tooltip\"\n [style.left.px]=\"pt.x\"\n >\n @if (pt.label) {\n <span class=\"talos-sparkline-tooltip-label\">{{ pt.label }}</span>\n }\n <span class=\"talos-sparkline-tooltip-value\">{{ valueFormatter()(pt.value) }}</span>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { TalosSparklineComponent } from './sparkline.component';\n\n@NgModule({\n imports: [TalosSparklineComponent],\n exports: [TalosSparklineComponent]\n})\nexport class TalosSparklineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}