@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,442 @@
1
+ /* Talos UI Button Design System Styles */
2
+
3
+ @keyframes talos-ripple {
4
+ 0% {
5
+ width: 0px;
6
+ height: 0px;
7
+ opacity: 0.6;
8
+ }
9
+
10
+ 100% {
11
+ width: 300px;
12
+ height: 300px;
13
+ opacity: 0;
14
+ }
15
+ }
16
+
17
+ @keyframes talos-btn-spin {
18
+ 0% {
19
+ transform: rotate(0deg);
20
+ }
21
+
22
+ 100% {
23
+ transform: rotate(360deg);
24
+ }
25
+ }
26
+
27
+ .talos-btn,
28
+ .btn {
29
+ position: relative;
30
+ overflow: hidden;
31
+
32
+ &.talos-badge-host {
33
+ overflow: visible;
34
+ }
35
+
36
+ display: inline-flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ gap: 0.5rem;
40
+ font-family: var(--talos-btn-font-family, inherit);
41
+ font-weight: var(--talos-btn-font-weight, 600);
42
+ line-height: 1;
43
+ white-space: nowrap;
44
+ border-radius: var(--talos-btn-border-radius, 0.375rem);
45
+ border: 1px solid transparent;
46
+ cursor: pointer;
47
+ text-decoration: none;
48
+ user-select: none;
49
+ vertical-align: middle;
50
+ box-sizing: border-box;
51
+ transition: var(--talos-btn-transition, all 0.18s cubic-bezier(0.4, 0, 0.2, 1));
52
+ height: var(--talos-btn-height-md, 2.25rem);
53
+ padding: 0 var(--talos-btn-padding-x-md, 0.875rem);
54
+ font-size: var(--talos-btn-font-size-md, 0.8125rem);
55
+ color: var(--talos-text-color, #0f172a);
56
+ background-color: var(--talos-card-bg, #ffffff);
57
+
58
+ /* Touch / Click Ripple Effect pseudo-element */
59
+ &::after {
60
+ content: '';
61
+ position: absolute;
62
+ top: var(--ripple-y, 50%);
63
+ left: var(--ripple-x, 50%);
64
+ width: 0;
65
+ height: 0;
66
+ border-radius: 50%;
67
+ background: var(--talos-btn-ripple-color, rgba(255, 255, 255, 0.35));
68
+ transform: translate(-50%, -50%);
69
+ pointer-events: none;
70
+ opacity: 0;
71
+ }
72
+
73
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading)::after,
74
+ &.is-rippling::after {
75
+ animation: talos-ripple 0.5s ease-out;
76
+ }
77
+
78
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
79
+ transform: translateY(-1px);
80
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
81
+ }
82
+
83
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading) {
84
+ transform: translateY(0);
85
+ box-shadow: none;
86
+ }
87
+
88
+ &:focus-visible {
89
+ outline: none;
90
+ box-shadow: var(--talos-focus-ring, var(--focus-ring, 0 0 0 3px rgba(37, 99, 235, 0.2)));
91
+ }
92
+
93
+ &:disabled,
94
+ &.is-disabled {
95
+ opacity: 0.6;
96
+ cursor: not-allowed;
97
+ transform: none !important;
98
+ box-shadow: none !important;
99
+ }
100
+
101
+ &.is-loading {
102
+ cursor: wait;
103
+ pointer-events: none;
104
+ opacity: 0.85;
105
+
106
+ &::before {
107
+ content: '';
108
+ display: inline-block;
109
+ width: 0.875em;
110
+ height: 0.875em;
111
+ border: 2px solid currentColor;
112
+ border-right-color: transparent;
113
+ border-radius: 50%;
114
+ animation: talos-btn-spin 0.75s linear infinite;
115
+ flex-shrink: 0;
116
+ }
117
+ }
118
+ }
119
+
120
+ /* Variants */
121
+ .talos-btn-primary,
122
+ .btn-primary {
123
+ background-color: var(--talos-btn-primary-bg, var(--talos-primary-color, var(--primary-color, #2563eb)));
124
+ color: var(--talos-btn-primary-text, #ffffff);
125
+ border-color: transparent;
126
+
127
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
128
+ background-color: var(--talos-btn-primary-hover, var(--talos-primary-hover, var(--primary-hover, #1d4ed8)));
129
+ }
130
+
131
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading) {
132
+ background-color: var(--talos-btn-primary-active, var(--talos-primary-active, var(--primary-active, #1e40af)));
133
+ }
134
+ }
135
+
136
+ .talos-btn-secondary,
137
+ .btn-secondary {
138
+ background-color: var(--talos-btn-secondary-bg, #475569);
139
+ color: var(--talos-btn-secondary-text, #ffffff);
140
+ border-color: transparent;
141
+
142
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
143
+ background-color: var(--talos-btn-secondary-hover, #334155);
144
+ }
145
+
146
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading) {
147
+ background-color: var(--talos-btn-secondary-active, #1e293b);
148
+ }
149
+ }
150
+
151
+ .talos-btn-outline,
152
+ .btn-outline {
153
+ background-color: var(--talos-btn-outline-bg, var(--talos-card-bg, #ffffff));
154
+ border-color: var(--talos-btn-outline-border, var(--talos-border-color, #cbd5e1));
155
+ color: var(--talos-btn-outline-text, var(--talos-text-color, #334155));
156
+
157
+ --talos-btn-ripple-color: var(--talos-primary-light-hover, rgba(37, 99, 235, 0.15));
158
+
159
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
160
+ background-color: var(--talos-btn-outline-hover-bg, var(--talos-bg-color, #f8fafc));
161
+ border-color: var(--talos-btn-outline-hover-border, var(--talos-border-hover, #64748b));
162
+ color: var(--talos-btn-outline-hover-text, var(--talos-text-color, #0f172a));
163
+ }
164
+ }
165
+
166
+ .talos-btn-ghost,
167
+ .btn-ghost,
168
+ .talos-btn-subtle,
169
+ .btn-subtle {
170
+ background-color: var(--talos-btn-ghost-bg, transparent);
171
+ border-color: transparent;
172
+ color: var(--talos-btn-ghost-text, var(--talos-text-muted, #64748b));
173
+
174
+ --talos-btn-ripple-color: rgba(15, 23, 42, 0.12);
175
+
176
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
177
+ transform: none;
178
+ box-shadow: none;
179
+ background-color: var(--talos-btn-ghost-hover-bg, var(--talos-primary-light, var(--primary-light, #f1f5f9)));
180
+ color: var(--talos-btn-ghost-hover-text, var(--talos-text-color, #0f172a));
181
+ }
182
+
183
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading) {
184
+ transform: none;
185
+ box-shadow: none;
186
+ background-color: var(--talos-btn-ghost-active-bg, var(--talos-primary-light-hover, var(--primary-light-hover, #e2e8f0)));
187
+ }
188
+ }
189
+
190
+ .talos-btn-danger,
191
+ .btn-danger {
192
+ background-color: var(--talos-btn-danger-bg, var(--talos-error-color, #ef4444));
193
+ color: var(--talos-btn-danger-text, #ffffff);
194
+ border-color: transparent;
195
+
196
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
197
+ background-color: var(--talos-btn-danger-hover, #dc2626);
198
+ }
199
+
200
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading) {
201
+ background-color: var(--talos-btn-danger-active, #b91c1c);
202
+ }
203
+ }
204
+
205
+ .talos-btn-success,
206
+ .btn-success {
207
+ background-color: var(--talos-btn-success-bg, #16a34a);
208
+ color: var(--talos-btn-success-text, #ffffff);
209
+ border-color: transparent;
210
+
211
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
212
+ background-color: var(--talos-btn-success-hover, #15803d);
213
+ }
214
+
215
+ &:active:not(:disabled):not(.is-disabled):not(.is-loading) {
216
+ background-color: var(--talos-btn-success-active, #166534);
217
+ }
218
+ }
219
+
220
+ .talos-btn-link,
221
+ .btn-link {
222
+ background: transparent;
223
+ border: none;
224
+ color: var(--talos-btn-link-text, var(--talos-primary-color, var(--primary-color, #2563eb)));
225
+ padding: 0;
226
+ height: auto;
227
+
228
+ &:hover:not(:disabled):not(.is-disabled):not(.is-loading) {
229
+ text-decoration: underline;
230
+ transform: none;
231
+ box-shadow: none;
232
+ }
233
+ }
234
+
235
+ /* Sizes */
236
+ .talos-btn-sm,
237
+ .btn-sm {
238
+ height: var(--talos-btn-height-sm, 2rem);
239
+ padding: 0 var(--talos-btn-padding-x-sm, 0.625rem);
240
+ font-size: var(--talos-btn-font-size-sm, 0.75rem);
241
+ }
242
+
243
+ .talos-btn-md,
244
+ .btn-md {
245
+ height: var(--talos-btn-height-md, 2.25rem);
246
+ padding: 0 var(--talos-btn-padding-x-md, 0.875rem);
247
+ font-size: var(--talos-btn-font-size-md, 0.8125rem);
248
+ }
249
+
250
+ .talos-btn-lg,
251
+ .btn-lg {
252
+ height: var(--talos-btn-height-lg, 2.625rem);
253
+ padding: 0 var(--talos-btn-padding-x-lg, 1.125rem);
254
+ font-size: var(--talos-btn-font-size-lg, 0.875rem);
255
+ }
256
+
257
+ .talos-btn-icon,
258
+ .btn-icon {
259
+ padding: 0 !important;
260
+ width: var(--talos-btn-height-md, 2.25rem);
261
+ height: var(--talos-btn-height-md, 2.25rem);
262
+ min-width: var(--talos-btn-height-md, 2.25rem);
263
+ justify-content: center;
264
+ flex-shrink: 0;
265
+
266
+ &.talos-btn-sm,
267
+ &.btn-sm {
268
+ width: var(--talos-btn-height-sm, 2rem);
269
+ height: var(--talos-btn-height-sm, 2rem);
270
+ min-width: var(--talos-btn-height-sm, 2rem);
271
+ }
272
+
273
+ &.talos-btn-md,
274
+ &.btn-md {
275
+ width: var(--talos-btn-height-md, 2.25rem);
276
+ height: var(--talos-btn-height-md, 2.25rem);
277
+ min-width: var(--talos-btn-height-md, 2.25rem);
278
+ }
279
+
280
+ &.talos-btn-lg,
281
+ &.btn-lg {
282
+ width: var(--talos-btn-height-lg, 2.625rem);
283
+ height: var(--talos-btn-height-lg, 2.625rem);
284
+ min-width: var(--talos-btn-height-lg, 2.625rem);
285
+ }
286
+ }
287
+
288
+ /* Shapes & Display Modifiers */
289
+ .talos-btn-pill,
290
+ .btn-pill {
291
+ border-radius: 9999px;
292
+ }
293
+
294
+ .talos-btn-full,
295
+ .btn-block {
296
+ display: flex;
297
+ width: 100%;
298
+ }
299
+
300
+ /* ─── Button & Affix Micro-Interactions & Animations ─── */
301
+ @keyframes talos-spin {
302
+ from {
303
+ transform: rotate(0deg);
304
+ }
305
+ to {
306
+ transform: rotate(360deg);
307
+ }
308
+ }
309
+
310
+ @keyframes talos-spin-once {
311
+ 0% {
312
+ transform: rotate(0deg) scale(0.92);
313
+ }
314
+ 60% {
315
+ transform: rotate(380deg) scale(1.08);
316
+ }
317
+ 100% {
318
+ transform: rotate(360deg) scale(1);
319
+ }
320
+ }
321
+
322
+ @keyframes talos-pop {
323
+ 0% {
324
+ transform: scale(0.85);
325
+ }
326
+ 50% {
327
+ transform: scale(1.18);
328
+ }
329
+ 100% {
330
+ transform: scale(1);
331
+ }
332
+ }
333
+
334
+ @keyframes talos-shake {
335
+ 0%, 100% {
336
+ transform: translateX(0);
337
+ }
338
+ 20%, 60% {
339
+ transform: translateX(-3px);
340
+ }
341
+ 40%, 80% {
342
+ transform: translateX(3px);
343
+ }
344
+ }
345
+
346
+ @keyframes talos-pulse {
347
+ 0%, 100% {
348
+ transform: scale(1);
349
+ opacity: 1;
350
+ }
351
+ 50% {
352
+ transform: scale(1.06);
353
+ opacity: 0.88;
354
+ }
355
+ }
356
+
357
+ @keyframes talos-bounce {
358
+ 0%, 100% {
359
+ transform: translateY(0);
360
+ }
361
+ 40% {
362
+ transform: translateY(-4px);
363
+ }
364
+ 60% {
365
+ transform: translateY(-2px);
366
+ }
367
+ }
368
+
369
+ .talos-btn,
370
+ .btn,
371
+ .talos-affix-btn,
372
+ .talos-affix-element {
373
+ /* Continuous spin on icon inside button/affix */
374
+ &.talos-anim-spin svg,
375
+ &.talos-anim-spin [lucideIcon],
376
+ &.talos-anim-spin i,
377
+ &.talos-anim-spin .lucide,
378
+ &.affix-anim-spin svg,
379
+ &.affix-anim-spin [lucideIcon],
380
+ &.affix-anim-spin i,
381
+ &.affix-anim-spin .lucide {
382
+ animation: talos-spin 0.8s linear infinite;
383
+ }
384
+
385
+ /* Single 360° spin on icon inside button/affix */
386
+ &.talos-anim-spin-once svg,
387
+ &.talos-anim-spin-once [lucideIcon],
388
+ &.talos-anim-spin-once i,
389
+ &.talos-anim-spin-once .lucide,
390
+ &.affix-anim-spin-once svg,
391
+ &.affix-anim-spin-once [lucideIcon],
392
+ &.affix-anim-spin-once i,
393
+ &.affix-anim-spin-once .lucide {
394
+ animation: talos-spin-once 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
395
+ }
396
+
397
+ /* Scale Pop micro-interaction */
398
+ &.talos-anim-pop,
399
+ &.affix-anim-pop {
400
+ animation: talos-pop 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
401
+ }
402
+
403
+ /* Shake micro-interaction */
404
+ &.talos-anim-shake,
405
+ &.affix-anim-shake {
406
+ animation: talos-shake 0.4s ease-in-out;
407
+ }
408
+
409
+ /* Pulse micro-interaction */
410
+ &.talos-anim-pulse,
411
+ &.affix-anim-pulse {
412
+ animation: talos-pulse 1.2s ease-in-out infinite;
413
+ }
414
+
415
+ /* Bounce micro-interaction */
416
+ &.talos-anim-bounce,
417
+ &.affix-anim-bounce {
418
+ animation: talos-bounce 0.5s ease-out;
419
+ }
420
+
421
+ /* Success Feedback State */
422
+ &.talos-feedback-success,
423
+ &.affix-feedback-success {
424
+ color: var(--talos-success-color, #10b981) !important;
425
+ animation: talos-pop 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
426
+
427
+ svg, [lucideIcon], i, .lucide {
428
+ color: var(--talos-success-color, #10b981) !important;
429
+ }
430
+ }
431
+
432
+ /* Error Feedback State */
433
+ &.talos-feedback-error,
434
+ &.affix-feedback-error {
435
+ color: var(--talos-error-color, #ef4444) !important;
436
+ animation: talos-shake 0.4s ease-in-out;
437
+
438
+ svg, [lucideIcon], i, .lucide {
439
+ color: var(--talos-error-color, #ef4444) !important;
440
+ }
441
+ }
442
+ }
@@ -0,0 +1,18 @@
1
+ /* Talos UI Card Tokens and Utilities */
2
+
3
+ :root {
4
+ --talos-card-radius: var(--border-radius-lg, 0.75rem);
5
+ --talos-card-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px -1px rgba(0, 0, 0, 0.03);
6
+ --talos-card-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
7
+ --talos-card-header-border: var(--talos-border-subtle, #f1f5f9);
8
+ --talos-card-footer-border: var(--talos-border-subtle, #f1f5f9);
9
+ }
10
+
11
+ [data-theme='dark'],
12
+ .dark-theme,
13
+ .dark {
14
+ --talos-card-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.06);
15
+ --talos-card-shadow-hover: 0 12px 28px -4px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.1);
16
+ --talos-card-header-border: var(--talos-border-subtle, rgba(255, 255, 255, 0.06));
17
+ --talos-card-footer-border: var(--talos-border-subtle, rgba(255, 255, 255, 0.06));
18
+ }
@@ -0,0 +1,116 @@
1
+ /* Talos Dialog / Modal Styles */
2
+
3
+ /* Base Overlay Panel */
4
+ .cdk-overlay-pane:has(.talos-dialog-panel) {
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ padding: 1.5rem;
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ .talos-dialog-panel {
13
+ display: flex;
14
+ flex-direction: column;
15
+ box-sizing: border-box;
16
+ background-color: var(--talos-dialog-bg, var(--talos-card-bg, #ffffff));
17
+ border: 1px solid var(--talos-dialog-border, var(--talos-border-color, #e2e8f0));
18
+ border-radius: var(--talos-dialog-radius, 0.75rem);
19
+ box-shadow: var(--talos-dialog-shadow, 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1));
20
+ overflow: hidden;
21
+ position: relative;
22
+ outline: none;
23
+ animation: talos-dialog-enter 0.22s cubic-bezier(0.16, 1, 0.3, 1) forwards;
24
+
25
+ /* Sizing Presets */
26
+ &.talos-dialog-size-auto {
27
+ width: auto;
28
+ min-width: 20rem;
29
+ max-width: min(90vw, 1200px);
30
+ max-height: calc(100vh - 3rem);
31
+ }
32
+
33
+ &.talos-dialog-size-sm {
34
+ width: 100%;
35
+ max-width: 26.25rem; /* ~420px */
36
+ max-height: calc(100vh - 3rem);
37
+ }
38
+
39
+ &.talos-dialog-size-md {
40
+ width: 100%;
41
+ max-width: 35rem; /* ~560px */
42
+ max-height: calc(100vh - 3rem);
43
+ }
44
+
45
+ &.talos-dialog-size-lg {
46
+ width: 100%;
47
+ max-width: 48rem; /* ~768px */
48
+ max-height: calc(100vh - 3rem);
49
+ }
50
+
51
+ &.talos-dialog-size-xl {
52
+ width: 100%;
53
+ max-width: 64rem; /* ~1024px */
54
+ max-height: calc(100vh - 3rem);
55
+ }
56
+
57
+ &.talos-dialog-size-fullscreen {
58
+ width: 100vw !important;
59
+ height: 100vh !important;
60
+ max-width: 100vw !important;
61
+ max-height: 100vh !important;
62
+ border-radius: 0 !important;
63
+ border: none !important;
64
+ }
65
+ }
66
+
67
+ .cdk-overlay-pane:has(.talos-dialog-size-fullscreen) {
68
+ padding: 0 !important;
69
+ }
70
+
71
+ /* Backdrop Styles */
72
+ .talos-dialog-backdrop {
73
+ background-color: var(--talos-dialog-backdrop-bg, rgba(15, 23, 42, 0.45));
74
+ transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), backdrop-filter 0.2s cubic-bezier(0.16, 1, 0.3, 1);
75
+
76
+ &.talos-dialog-backdrop-blur-sm {
77
+ backdrop-filter: blur(4px);
78
+ -webkit-backdrop-filter: blur(4px);
79
+ background-color: var(--talos-dialog-backdrop-blur-bg, rgba(15, 23, 42, 0.3));
80
+ }
81
+
82
+ &.talos-dialog-backdrop-blur-md {
83
+ backdrop-filter: blur(8px);
84
+ -webkit-backdrop-filter: blur(8px);
85
+ background-color: var(--talos-dialog-backdrop-blur-bg, rgba(15, 23, 42, 0.35));
86
+ }
87
+
88
+ &.talos-dialog-backdrop-blur-lg {
89
+ backdrop-filter: blur(16px);
90
+ -webkit-backdrop-filter: blur(16px);
91
+ background-color: var(--talos-dialog-backdrop-blur-bg, rgba(15, 23, 42, 0.4));
92
+ }
93
+ }
94
+
95
+ /* Micro Animations */
96
+ @keyframes talos-dialog-enter {
97
+ 0% {
98
+ opacity: 0;
99
+ transform: scale(0.96) translateY(6px);
100
+ }
101
+ 100% {
102
+ opacity: 1;
103
+ transform: scale(1) translateY(0);
104
+ }
105
+ }
106
+
107
+ @keyframes talos-dialog-exit {
108
+ 0% {
109
+ opacity: 1;
110
+ transform: scale(1) translateY(0);
111
+ }
112
+ 100% {
113
+ opacity: 0;
114
+ transform: scale(0.96) translateY(6px);
115
+ }
116
+ }
@@ -0,0 +1,19 @@
1
+ /* Talos UI Drop Zone / File Upload Component Styles */
2
+
3
+ .talos-drop-zone-host {
4
+ display: block;
5
+ width: 100%;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ .talos-file-drop-target {
10
+ transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
11
+ background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
12
+ box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
13
+
14
+ &.is-drag-over {
15
+ border-color: var(--talos-dropzone-drag-border, var(--talos-primary-color)) !important;
16
+ background-color: var(--talos-dropzone-drag-bg, var(--talos-primary-light)) !important;
17
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
18
+ }
19
+ }