osi-cards-lib 1.5.32 → 1.5.34

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 (87) hide show
  1. package/fesm2022/osi-cards-lib.mjs +31889 -0
  2. package/fesm2022/osi-cards-lib.mjs.map +1 -0
  3. package/index.d.ts +11528 -0
  4. package/package.json +25 -13
  5. package/scripts/setup-angular-styles.js +169 -0
  6. package/styles/_components.scss +38 -0
  7. package/styles/_index.scss +25 -0
  8. package/styles/_osi-cards-mixins.scss +459 -0
  9. package/styles/_osi-cards-tokens.scss +333 -0
  10. package/styles/_styles-scoped.scss +81 -0
  11. package/styles/_styles.scss +26 -0
  12. package/styles/bundles/_ai-card.scss +245 -0
  13. package/styles/bundles/_all.scss +68 -0
  14. package/styles/bundles/_base.scss +60 -0
  15. package/styles/bundles/_card-skeleton.scss +290 -0
  16. package/styles/bundles/_index.scss +25 -0
  17. package/styles/bundles/_sections.scss +48 -0
  18. package/styles/bundles/_tokens-only.scss +139 -0
  19. package/styles/components/_ai-card-renderer.scss +104 -0
  20. package/styles/components/_badges.scss +317 -0
  21. package/styles/components/_card-actions.scss +169 -0
  22. package/styles/components/_card-footer.scss +47 -0
  23. package/styles/components/_component-styles.scss +205 -0
  24. package/styles/components/_empty-state.scss +630 -0
  25. package/styles/components/_hero-card.scss +422 -0
  26. package/styles/components/_image-fallback.scss +28 -0
  27. package/styles/components/_streaming-effects.scss +518 -0
  28. package/styles/components/cards/_ai-card.scss +718 -0
  29. package/styles/components/sections/_all-sections.generated.scss +41 -0
  30. package/styles/components/sections/_all-sections.scss +1086 -0
  31. package/styles/components/sections/_balanced-compact-system.scss +186 -0
  32. package/styles/components/sections/_compact-mixins.scss +180 -0
  33. package/styles/components/sections/_component-mixins.scss +454 -0
  34. package/styles/components/sections/_design-system.scss +477 -0
  35. package/styles/components/sections/_design-tokens.scss +308 -0
  36. package/styles/components/sections/_enhanced-design-variables.scss +147 -0
  37. package/styles/components/sections/_master-compact-system.scss +302 -0
  38. package/styles/components/sections/_master-dense-system.scss +239 -0
  39. package/styles/components/sections/_minimalistic-design.scss +268 -0
  40. package/styles/components/sections/_modern-effects.scss +392 -0
  41. package/styles/components/sections/_modern-sections.scss +351 -0
  42. package/styles/components/sections/_perfect-system.scss +204 -0
  43. package/styles/components/sections/_section-animations.scss +331 -0
  44. package/styles/components/sections/_section-shell.scss +337 -0
  45. package/styles/components/sections/_section-types.generated.scss +30 -0
  46. package/styles/components/sections/_sections-all.scss +26 -0
  47. package/styles/components/sections/_sections-base.scss +334 -0
  48. package/styles/components/sections/_typography-system.scss +327 -0
  49. package/styles/components/sections/_ultra-compact-tokens.scss +375 -0
  50. package/styles/components/sections/_unified-section-style.scss +157 -0
  51. package/styles/components/sections/_utility-classes.scss +567 -0
  52. package/styles/components/sections/_visual-effects-library.scss +374 -0
  53. package/styles/core/_animations.scss +1498 -0
  54. package/styles/core/_bootstrap-reset.scss +445 -0
  55. package/styles/core/_color-helpers.scss +46 -0
  56. package/styles/core/_global-unified.scss +118 -0
  57. package/styles/core/_global.scss +73 -0
  58. package/styles/core/_mixins.scss +491 -0
  59. package/styles/core/_surface-layers.scss +76 -0
  60. package/styles/core/_utilities.scss +326 -0
  61. package/styles/core/_variables-unified.scss +57 -0
  62. package/styles/core/_variables.scss +36 -0
  63. package/styles/core/variables/_colors-source.scss +34 -0
  64. package/styles/core/variables/_colors-unified.scss +26 -0
  65. package/styles/core/variables/_colors.scss +21 -0
  66. package/styles/critical.scss +353 -0
  67. package/styles/design-system/_compact-theme.scss +159 -0
  68. package/styles/design-system/_section-base.scss +426 -0
  69. package/styles/design-system/_tokens.scss +237 -0
  70. package/styles/design-system/_unified-sections.scss +215 -0
  71. package/styles/layout/_feature-grid.scss +322 -0
  72. package/styles/layout/_masonry.scss +734 -0
  73. package/styles/layout/_tilt.scss +244 -0
  74. package/styles/micro-interactions.scss +583 -0
  75. package/styles/mixins/_section-mixins.scss +280 -0
  76. package/styles/non-critical.scss +643 -0
  77. package/styles/reset/_framework-reset.scss +457 -0
  78. package/styles/reset/_index.scss +14 -0
  79. package/styles/reset/_shadow-reset.scss +383 -0
  80. package/styles/responsive.scss +326 -0
  81. package/styles/themes.scss +573 -0
  82. package/styles/tokens/_index.scss +92 -0
  83. package/styles/tokens/_master.scss +1404 -0
  84. package/styles/tokens/_section-tokens.generated.scss +140 -0
  85. package/postcss.config.js +0 -81
  86. package/section-registry.json +0 -3864
  87. package/section-registry.schema.json +0 -264
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Section Mixins
3
+ *
4
+ * Common SCSS mixins for section components to reduce duplication
5
+ * and ensure consistent styling across all section types.
6
+ */
7
+
8
+ /**
9
+ * Base section container styles
10
+ * Apply to all section root elements
11
+ */
12
+ @mixin section-base {
13
+ padding: var(--section-padding, 1rem);
14
+ border-radius: var(--section-border-radius, 0.5rem);
15
+ background: var(--section-background, transparent);
16
+ transition: background var(--osi-card-transition-normal, 200ms) ease;
17
+ }
18
+
19
+ /**
20
+ * Section header styles
21
+ * Apply to section title/header elements
22
+ */
23
+ @mixin section-header {
24
+ font-size: var(--section-title-size, 1rem);
25
+ font-weight: var(--section-title-weight, 600);
26
+ color: var(--section-title-color, var(--osi-card-foreground));
27
+ margin-bottom: var(--section-header-gap, 0.75rem);
28
+ line-height: 1.3;
29
+ }
30
+
31
+ /**
32
+ * Section footer styles
33
+ * Apply to section footer elements
34
+ */
35
+ @mixin section-footer {
36
+ margin-top: var(--section-footer-gap, 0.75rem);
37
+ padding-top: var(--section-footer-gap, 0.75rem);
38
+ border-top: 1px solid var(--osi-card-border, #e5e7eb);
39
+ font-size: var(--section-footer-size, 0.75rem);
40
+ color: var(--osi-card-muted, #6b7280);
41
+ }
42
+
43
+ /**
44
+ * Field grid layout for key-value pairs
45
+ * @param $columns - Number of columns (default: 2)
46
+ */
47
+ @mixin section-field-grid($columns: 2) {
48
+ display: grid;
49
+ grid-template-columns: repeat($columns, 1fr);
50
+ gap: var(--section-field-gap, 0.75rem);
51
+
52
+ @media (max-width: 640px) {
53
+ grid-template-columns: 1fr; // Single column on mobile
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Field item styles (for individual fields)
59
+ */
60
+ @mixin field-item {
61
+ padding: var(--field-padding, 0.75rem);
62
+ border-radius: var(--field-border-radius, 0.375rem);
63
+ background: var(--field-background, rgba(0, 0, 0, 0.02));
64
+ border: 1px solid var(--field-border-color, transparent);
65
+ transition: all var(--osi-card-transition-fast, 150ms) ease;
66
+
67
+ &:hover {
68
+ background: var(--field-background-hover, rgba(0, 0, 0, 0.04));
69
+ border-color: var(--field-border-hover, var(--osi-card-border));
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Field label styles
75
+ */
76
+ @mixin field-label {
77
+ font-size: var(--field-label-size, 0.75rem);
78
+ font-weight: var(--field-label-weight, 500);
79
+ color: var(--field-label-color, var(--osi-card-muted));
80
+ text-transform: uppercase;
81
+ letter-spacing: 0.05em;
82
+ margin-bottom: 0.25rem;
83
+ }
84
+
85
+ /**
86
+ * Field value styles
87
+ */
88
+ @mixin field-value {
89
+ font-size: var(--field-value-size, 0.875rem);
90
+ font-weight: var(--field-value-weight, 400);
91
+ color: var(--field-value-color, var(--osi-card-foreground));
92
+ line-height: 1.4;
93
+ }
94
+
95
+ /**
96
+ * Item list layout (for list-based sections)
97
+ */
98
+ @mixin section-item-list {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: var(--section-item-gap, 0.5rem);
102
+ }
103
+
104
+ /**
105
+ * Individual item in a list
106
+ */
107
+ @mixin list-item {
108
+ padding: var(--item-padding, 0.75rem);
109
+ border-radius: var(--item-border-radius, 0.375rem);
110
+ background: var(--item-background, transparent);
111
+ border: 1px solid var(--item-border-color, var(--osi-card-border));
112
+ transition: all var(--osi-card-transition-fast, 150ms) ease;
113
+
114
+ &:hover {
115
+ background: var(--item-background-hover, rgba(0, 0, 0, 0.02));
116
+ border-color: var(--item-border-hover, var(--osi-card-accent));
117
+ transform: translateX(2px);
118
+ }
119
+ }
120
+
121
+ /**
122
+ * Responsive grid that adapts to container size
123
+ * @param $min-width - Minimum column width
124
+ */
125
+ @mixin responsive-grid($min-width: 260px) {
126
+ display: grid;
127
+ grid-template-columns: repeat(auto-fit, minmax($min-width, 1fr));
128
+ gap: var(--grid-gap, 1rem);
129
+ }
130
+
131
+ /**
132
+ * Compact mode for dense layouts
133
+ */
134
+ @mixin compact-mode {
135
+ padding: var(--section-padding-compact, 0.5rem);
136
+
137
+ .field-item {
138
+ padding: var(--field-padding-compact, 0.5rem);
139
+ }
140
+
141
+ .section-header {
142
+ font-size: var(--section-title-size-compact, 0.875rem);
143
+ margin-bottom: var(--section-header-gap-compact, 0.5rem);
144
+ }
145
+ }
146
+
147
+ /**
148
+ * Loading state placeholder
149
+ */
150
+ @mixin loading-state {
151
+ opacity: 0.6;
152
+ pointer-events: none;
153
+
154
+ &::after {
155
+ content: "";
156
+ position: absolute;
157
+ top: 0;
158
+ left: 0;
159
+ right: 0;
160
+ bottom: 0;
161
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
162
+ animation: loading-shimmer 1.5s infinite;
163
+ }
164
+
165
+ @keyframes loading-shimmer {
166
+ 0% {
167
+ transform: translateX(-100%);
168
+ }
169
+ 100% {
170
+ transform: translateX(100%);
171
+ }
172
+ }
173
+ }
174
+
175
+ /**
176
+ * Error state styling
177
+ */
178
+ @mixin error-state {
179
+ border-color: var(--osi-card-destructive, #ef4444);
180
+ background: rgba(239, 68, 68, 0.05);
181
+
182
+ .section-header {
183
+ color: var(--osi-card-destructive, #ef4444);
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Action bar at bottom of sections
189
+ */
190
+ @mixin section-action-bar {
191
+ display: flex;
192
+ gap: 0.5rem;
193
+ margin-top: 1rem;
194
+ padding-top: 0.75rem;
195
+ border-top: 1px solid var(--osi-card-border, #e5e7eb);
196
+
197
+ button {
198
+ padding: 0.5rem 1rem;
199
+ border-radius: 0.25rem;
200
+ font-size: 0.875rem;
201
+ font-weight: 500;
202
+ cursor: pointer;
203
+ transition: all var(--osi-card-transition-fast, 150ms) ease;
204
+
205
+ &:hover {
206
+ opacity: 0.9;
207
+ }
208
+ }
209
+ }
210
+
211
+ /**
212
+ * Metric card styling (for analytics sections)
213
+ */
214
+ @mixin metric-card {
215
+ padding: var(--metric-padding, 1rem);
216
+ border-radius: var(--metric-border-radius, 0.5rem);
217
+ background: var(--metric-background, var(--osi-card-accent));
218
+ color: var(--metric-foreground, var(--osi-card-accent-foreground));
219
+ text-align: center;
220
+
221
+ .metric-value {
222
+ font-size: var(--metric-value-size, 1.5rem);
223
+ font-weight: var(--metric-value-weight, 700);
224
+ margin-bottom: 0.25rem;
225
+ }
226
+
227
+ .metric-label {
228
+ font-size: var(--metric-label-size, 0.75rem);
229
+ opacity: 0.9;
230
+ text-transform: uppercase;
231
+ letter-spacing: 0.05em;
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Section with icon styling
237
+ */
238
+ @mixin section-with-icons {
239
+ .field-item,
240
+ .list-item {
241
+ display: flex;
242
+ align-items: center;
243
+ gap: 0.75rem;
244
+
245
+ .icon {
246
+ width: 20px;
247
+ height: 20px;
248
+ flex-shrink: 0;
249
+ color: var(--osi-card-accent, #6366f1);
250
+ }
251
+ }
252
+ }
253
+
254
+ /**
255
+ * Scrollable section container
256
+ */
257
+ @mixin scrollable-section($max-height: 400px) {
258
+ max-height: $max-height;
259
+ overflow-y: auto;
260
+ overscroll-behavior: contain;
261
+
262
+ // Custom scrollbar
263
+ &::-webkit-scrollbar {
264
+ width: 8px;
265
+ }
266
+
267
+ &::-webkit-scrollbar-track {
268
+ background: var(--osi-card-border, #e5e7eb);
269
+ border-radius: 4px;
270
+ }
271
+
272
+ &::-webkit-scrollbar-thumb {
273
+ background: var(--osi-card-accent, #6366f1);
274
+ border-radius: 4px;
275
+
276
+ &:hover {
277
+ background: var(--osi-card-accent-hover, #4f46e5);
278
+ }
279
+ }
280
+ }