@weeehaoooz/talos-ui 0.1.1 → 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 (190) hide show
  1. package/README.md +2 -0
  2. package/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs} +91 -15
  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 +1316 -7
  15. package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
  16. package/fesm2022/weeehaoooz-talos-ui-nav.mjs +3 -3
  17. package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
  18. package/fesm2022/weeehaoooz-talos-ui.mjs +21592 -16293
  19. package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
  20. package/package.json +20 -139
  21. package/styles/_breadcrumb.scss +16 -0
  22. package/styles/_button-group.scss +2 -1
  23. package/styles/_buttons.scss +51 -0
  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 +33 -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 +1 -1
  46. package/types/weeehaoooz-talos-ui.d.ts +7148 -4629
  47. package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
  48. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +0 -1
  49. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +0 -94
  50. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +0 -1
  51. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +0 -233
  52. package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +0 -1
  53. package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs +0 -1627
  54. package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs.map +0 -1
  55. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +0 -361
  56. package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +0 -1
  57. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +0 -312
  58. package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +0 -1
  59. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +0 -235
  60. package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +0 -1
  61. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +0 -462
  62. package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +0 -1
  63. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +0 -805
  64. package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +0 -1
  65. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +0 -267
  66. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +0 -1
  67. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +0 -351
  68. package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +0 -1
  69. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +0 -566
  70. package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +0 -1
  71. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +0 -534
  72. package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +0 -1
  73. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +0 -446
  74. package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +0 -1
  75. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +0 -376
  76. package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +0 -1
  77. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +0 -147
  78. package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +0 -1
  79. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +0 -242
  80. package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +0 -1
  81. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +0 -514
  82. package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +0 -1
  83. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +0 -548
  84. package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +0 -1
  85. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +0 -692
  86. package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +0 -1
  87. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +0 -761
  88. package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +0 -1
  89. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +0 -896
  90. package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +0 -1
  91. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +0 -872
  92. package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +0 -1
  93. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +0 -119
  94. package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +0 -1
  95. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +0 -135
  96. package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +0 -1
  97. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +0 -666
  98. package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +0 -1
  99. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +0 -147
  100. package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +0 -1
  101. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +0 -33
  102. package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +0 -1
  103. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +0 -455
  104. package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +0 -1
  105. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +0 -379
  106. package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +0 -1
  107. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +0 -297
  108. package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +0 -1
  109. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +0 -661
  110. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +0 -1
  111. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +0 -346
  112. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +0 -1
  113. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +0 -896
  114. package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +0 -1
  115. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +0 -252
  116. package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +0 -1
  117. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +0 -916
  118. package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +0 -1
  119. package/types/weeehaoooz-talos-ui-button-button-group.d.ts +0 -62
  120. package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +0 -1
  121. package/types/weeehaoooz-talos-ui-button-button.d.ts +0 -38
  122. package/types/weeehaoooz-talos-ui-button-button.d.ts.map +0 -1
  123. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +0 -119
  124. package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +0 -1
  125. package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts +0 -272
  126. package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts.map +0 -1
  127. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +0 -135
  128. package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +0 -1
  129. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +0 -144
  130. package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +0 -1
  131. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +0 -83
  132. package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +0 -1
  133. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +0 -255
  134. package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +0 -1
  135. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +0 -204
  136. package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +0 -1
  137. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +0 -101
  138. package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +0 -1
  139. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +0 -138
  140. package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +0 -1
  141. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +0 -161
  142. package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +0 -1
  143. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +0 -212
  144. package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +0 -1
  145. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +0 -259
  146. package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +0 -1
  147. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +0 -147
  148. package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +0 -1
  149. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +0 -32
  150. package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +0 -1
  151. package/types/weeehaoooz-talos-ui-form-affix.d.ts +0 -88
  152. package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +0 -1
  153. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +0 -113
  154. package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +0 -1
  155. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +0 -165
  156. package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +0 -1
  157. package/types/weeehaoooz-talos-ui-form-chips.d.ts +0 -152
  158. package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +0 -1
  159. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +0 -144
  160. package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +0 -1
  161. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +0 -138
  162. package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +0 -1
  163. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +0 -148
  164. package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +0 -1
  165. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +0 -44
  166. package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +0 -1
  167. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +0 -48
  168. package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +0 -1
  169. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +0 -227
  170. package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +0 -1
  171. package/types/weeehaoooz-talos-ui-form-form-field.d.ts +0 -42
  172. package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +0 -1
  173. package/types/weeehaoooz-talos-ui-form-input.d.ts +0 -15
  174. package/types/weeehaoooz-talos-ui-form-input.d.ts.map +0 -1
  175. package/types/weeehaoooz-talos-ui-form-otp.d.ts +0 -111
  176. package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +0 -1
  177. package/types/weeehaoooz-talos-ui-form-password-input.d.ts +0 -145
  178. package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +0 -1
  179. package/types/weeehaoooz-talos-ui-form-radio.d.ts +0 -84
  180. package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +0 -1
  181. package/types/weeehaoooz-talos-ui-form-range-input.d.ts +0 -181
  182. package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +0 -1
  183. package/types/weeehaoooz-talos-ui-form-rating.d.ts +0 -110
  184. package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +0 -1
  185. package/types/weeehaoooz-talos-ui-form-select-input.d.ts +0 -195
  186. package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +0 -1
  187. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +0 -79
  188. package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +0 -1
  189. package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +0 -192
  190. 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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"}