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,375 @@
1
+ // =====================================================================
2
+ // ULTRA-COMPACT DESIGN TOKENS - Master Design System
3
+ // =====================================================================
4
+ //
5
+ // Unified token system for maximum compactness and consistency
6
+ // 200px/400px column widths with optimized heights
7
+ //
8
+ // =====================================================================
9
+
10
+ @use "../../tokens/master" as *;
11
+
12
+ // =====================================================================
13
+ // CORE SPACING - Ultra Compact Scale
14
+ // =====================================================================
15
+
16
+ :root {
17
+ // Ultra-compact spacing (primary scale)
18
+ --uc-space-1: 1px;
19
+ --uc-space-2: 2px;
20
+ --uc-space-3: 3px;
21
+ --uc-space-4: 4px;
22
+ --uc-space-5: 5px;
23
+ --uc-space-6: 6px;
24
+ --uc-space-8: 8px;
25
+ --uc-space-10: 10px;
26
+ --uc-space-12: 12px;
27
+
28
+ // Section spacing standards
29
+ --uc-section-gap: 8px; // Between sections
30
+ --uc-card-padding: 8px; // Card internal padding
31
+ --uc-card-padding-sm: 6px; // Mobile card padding
32
+ --uc-item-padding: 6px 8px; // List item padding
33
+ --uc-item-padding-sm: 5px 6px; // Mobile item padding
34
+ --uc-internal-gap: 4px; // Between elements
35
+ --uc-internal-gap-sm: 3px; // Tight internal gap
36
+ --uc-grid-gap: 8px; // Grid gap
37
+ --uc-grid-gap-sm: 6px; // Mobile grid gap
38
+ }
39
+
40
+ // =====================================================================
41
+ // TYPOGRAPHY - Ultra Compact Scale
42
+ // =====================================================================
43
+
44
+ :root {
45
+ // Font sizes (optimized for density)
46
+ --uc-text-xs: 0.55rem; // 8.8px - Tiny labels
47
+ --uc-text-sm: 0.6rem; // 9.6px - Small labels
48
+ --uc-text-base: 0.65rem; // 10.4px - Labels, meta
49
+ --uc-text-md: 0.7rem; // 11.2px - Body text
50
+ --uc-text-lg: 0.75rem; // 12px - Titles
51
+ --uc-text-xl: 0.8rem; // 12.8px - Values
52
+ --uc-text-2xl: 0.95rem; // 15.2px - Large values
53
+ --uc-text-3xl: 1.1rem; // 17.6px - Metric values
54
+ --uc-text-4xl: 1.2rem; // 19.2px - Large metrics
55
+
56
+ // Line heights (tight)
57
+ --uc-leading-tightest: 1;
58
+ --uc-leading-tight: 1.1;
59
+ --uc-leading-snug: 1.2;
60
+ --uc-leading-normal: 1.3;
61
+ --uc-leading-relaxed: 1.4;
62
+
63
+ // Font weights
64
+ --uc-font-normal: 400;
65
+ --uc-font-medium: 500;
66
+ --uc-font-semibold: 600;
67
+ --uc-font-bold: 700;
68
+ }
69
+
70
+ // =====================================================================
71
+ // COMPONENT HEIGHTS - Optimized for 200px/400px Columns
72
+ // =====================================================================
73
+
74
+ :root {
75
+ // 200px column cards
76
+ --uc-card-height-200px: 80px; // Analytics, Financials
77
+ --uc-card-height-contact: 140px; // Contact cards
78
+ --uc-card-height-gallery: 150px; // Gallery items
79
+ --uc-card-height-social: 105px; // Social media
80
+ --uc-card-height-network: 105px; // Network cards
81
+ --uc-card-height-news: 210px; // News cards
82
+ --uc-card-height-quote: 130px; // Quotations
83
+ --uc-card-height-color: 110px; // Brand colors
84
+
85
+ // 400px full-width items
86
+ --uc-item-height-info: 42px; // Info items
87
+ --uc-item-height-list: 44px; // List items
88
+ --uc-item-height-event: 52px; // Event items
89
+ --uc-item-height-overview: 48px; // Overview items
90
+ --uc-item-height-product: 54px; // Product items
91
+ --uc-item-height-faq: 42px; // FAQ items
92
+
93
+ // Component-specific
94
+ --uc-avatar-size: 42px; // Compact avatars
95
+ --uc-icon-size: 1rem; // Standard icons
96
+ --uc-icon-size-lg: 1.6rem; // Large icons
97
+ --uc-button-height: 24px; // Compact buttons
98
+ --uc-date-badge: 44px; // Date badges
99
+ }
100
+
101
+ // =====================================================================
102
+ // BORDERS & RADIUS - Consistent System
103
+ // =====================================================================
104
+
105
+ :root {
106
+ // Border widths
107
+ --uc-border-width: 1px;
108
+ --uc-border-width-thick: 2px;
109
+
110
+ // Border colors
111
+ --uc-border: rgba(255, 255, 255, 0.06);
112
+ --uc-border-hover: rgba(255, 255, 255, 0.12);
113
+ --uc-border-separator: rgba(255, 255, 255, 0.04);
114
+ --uc-border-accent: var(--accent, #ff7900);
115
+
116
+ // Border radius
117
+ --uc-radius-sm: 4px;
118
+ --uc-radius-md: 8px;
119
+ --uc-radius-lg: 12px;
120
+ --uc-radius-full: 9999px;
121
+ }
122
+
123
+ // =====================================================================
124
+ // COLORS - Unified Palette
125
+ // =====================================================================
126
+
127
+ :root {
128
+ // Base colors
129
+ --uc-bg: var(--background, #0c0c0c);
130
+ --uc-card: var(--card, var(--background, #0c0c0c));
131
+ --uc-surface: var(--surface, rgba(255, 255, 255, 0.02));
132
+ --uc-surface-hover: rgba(255, 255, 255, 0.02);
133
+
134
+ // Text colors
135
+ --uc-text-primary: var(--foreground, #fff);
136
+ --uc-text-secondary: var(--muted-foreground, #999);
137
+ --uc-accent: var(--accent, #ff7900);
138
+ --uc-accent-bright: var(--accent-bright, #ffa347);
139
+
140
+ // Opacity levels
141
+ --uc-opacity-subtle: 0.5;
142
+ --uc-opacity-muted: 0.7;
143
+ --uc-opacity-medium: 0.8;
144
+ --uc-opacity-strong: 0.85;
145
+ }
146
+
147
+ // =====================================================================
148
+ // TRANSITIONS - Fast & Smooth
149
+ // =====================================================================
150
+
151
+ :root {
152
+ --uc-transition-fast: 150ms ease-out;
153
+ --uc-transition-base: 200ms ease-out;
154
+ --uc-transition-all: all 200ms ease-out;
155
+ --uc-transition-color: color 150ms ease-out;
156
+ --uc-transition-bg: background 150ms ease-out;
157
+ --uc-transition-transform: transform 200ms ease-out;
158
+ }
159
+
160
+ // =====================================================================
161
+ // SHADOWS - Subtle System
162
+ // =====================================================================
163
+
164
+ :root {
165
+ --uc-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2);
166
+ --uc-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
167
+ --uc-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.3);
168
+ }
169
+
170
+ // =====================================================================
171
+ // GRID SYSTEM - 200px/400px Standards
172
+ // =====================================================================
173
+
174
+ :root {
175
+ // Column widths
176
+ --uc-col-200px: 200px; // Compact sections
177
+ --uc-col-400px: 400px; // Full-width sections
178
+
179
+ // Breakpoints
180
+ --uc-bp-tiny: 420px;
181
+ --uc-bp-mobile: 480px;
182
+ --uc-bp-tablet: 640px;
183
+ --uc-bp-desktop: 768px;
184
+ }
185
+
186
+ // =====================================================================
187
+ // REUSABLE MIXINS
188
+ // =====================================================================
189
+
190
+ // Card base (200px compatible)
191
+ @mixin uc-card-200px {
192
+ position: relative;
193
+ display: flex;
194
+ flex-direction: column;
195
+ padding: var(--uc-card-padding);
196
+ background: var(--uc-card);
197
+ border: var(--uc-border-width) solid var(--uc-border);
198
+ border-radius: var(--uc-radius-md);
199
+ transition: var(--uc-transition-all);
200
+
201
+ &::before {
202
+ content: "";
203
+ position: absolute;
204
+ top: 0;
205
+ left: 0;
206
+ right: 0;
207
+ height: 1px;
208
+ background: var(--uc-border-accent);
209
+ opacity: 0;
210
+ transition: var(--uc-transition-fast);
211
+ }
212
+
213
+ &:hover {
214
+ border-color: var(--uc-border-hover);
215
+ transform: translateY(-1px);
216
+ box-shadow: var(--uc-shadow-hover);
217
+
218
+ &::before {
219
+ opacity: 0.6;
220
+ }
221
+ }
222
+ }
223
+
224
+ // List container (400px compatible)
225
+ @mixin uc-list-400px {
226
+ display: flex;
227
+ flex-direction: column;
228
+ gap: 0;
229
+ padding: var(--uc-space-4);
230
+ background: var(--uc-card);
231
+ border: var(--uc-border-width) solid var(--uc-border);
232
+ border-radius: var(--uc-radius-md);
233
+ }
234
+
235
+ // List item
236
+ @mixin uc-list-item {
237
+ padding: var(--uc-item-padding);
238
+ border-radius: var(--uc-radius-sm);
239
+ transition: var(--uc-transition-bg);
240
+
241
+ &:not(:last-child) {
242
+ border-bottom: var(--uc-border-width) solid var(--uc-border-separator);
243
+ }
244
+
245
+ &:hover {
246
+ background: var(--uc-surface-hover);
247
+ }
248
+ }
249
+
250
+ // Label text
251
+ @mixin uc-label {
252
+ font-size: var(--uc-text-sm);
253
+ font-weight: var(--uc-font-semibold);
254
+ letter-spacing: 0.05em;
255
+ text-transform: uppercase;
256
+ color: var(--uc-text-secondary);
257
+ line-height: var(--uc-leading-tight);
258
+ }
259
+
260
+ // Value text
261
+ @mixin uc-value {
262
+ font-size: var(--uc-text-xl);
263
+ font-weight: var(--uc-font-semibold);
264
+ color: var(--uc-text-primary);
265
+ line-height: var(--uc-leading-tight);
266
+ transition: var(--uc-transition-color);
267
+ }
268
+
269
+ // Title text
270
+ @mixin uc-title {
271
+ font-size: var(--uc-text-lg);
272
+ font-weight: var(--uc-font-semibold);
273
+ color: var(--uc-text-primary);
274
+ line-height: var(--uc-leading-snug);
275
+ transition: var(--uc-transition-color);
276
+ }
277
+
278
+ // Body text
279
+ @mixin uc-body {
280
+ font-size: var(--uc-text-md);
281
+ font-weight: var(--uc-font-normal);
282
+ color: var(--uc-text-secondary);
283
+ line-height: var(--uc-leading-normal);
284
+ }
285
+
286
+ // Grid 200px
287
+ @mixin uc-grid-200px {
288
+ display: grid;
289
+ grid-template-columns: repeat(auto-fit, minmax(var(--uc-col-200px), 1fr));
290
+ gap: var(--uc-grid-gap);
291
+
292
+ @media (max-width: 640px) {
293
+ grid-template-columns: repeat(2, 1fr);
294
+ gap: var(--uc-grid-gap-sm);
295
+ }
296
+
297
+ @media (max-width: 420px) {
298
+ grid-template-columns: 1fr;
299
+ }
300
+ }
301
+
302
+ // Host min-width 400px
303
+ @mixin uc-host-400px {
304
+ display: block;
305
+ width: 100%;
306
+ min-width: var(--uc-col-400px);
307
+
308
+ @media (max-width: 640px) {
309
+ min-width: 100%;
310
+ }
311
+ }
312
+
313
+ // Responsive mobile
314
+ @mixin uc-mobile {
315
+ @media (max-width: 640px) {
316
+ @content;
317
+ }
318
+ }
319
+
320
+ // Reduced motion
321
+ @mixin uc-reduced-motion {
322
+ @media (prefers-reduced-motion: reduce) {
323
+ transition: none;
324
+
325
+ &:hover {
326
+ transform: none;
327
+ }
328
+ }
329
+ }
330
+
331
+ // =====================================================================
332
+ // UTILITY CLASSES (Optional)
333
+ // =====================================================================
334
+
335
+ // Gap utilities
336
+ .uc-gap-2 {
337
+ gap: var(--uc-space-2);
338
+ }
339
+ .uc-gap-3 {
340
+ gap: var(--uc-space-3);
341
+ }
342
+ .uc-gap-4 {
343
+ gap: var(--uc-space-4);
344
+ }
345
+ .uc-gap-6 {
346
+ gap: var(--uc-space-6);
347
+ }
348
+ .uc-gap-8 {
349
+ gap: var(--uc-space-8);
350
+ }
351
+
352
+ // Padding utilities
353
+ .uc-p-4 {
354
+ padding: var(--uc-space-4);
355
+ }
356
+ .uc-p-6 {
357
+ padding: var(--uc-space-6);
358
+ }
359
+ .uc-p-8 {
360
+ padding: var(--uc-space-8);
361
+ }
362
+
363
+ // Flex utilities
364
+ .uc-flex {
365
+ display: flex;
366
+ }
367
+ .uc-flex-col {
368
+ flex-direction: column;
369
+ }
370
+ .uc-items-center {
371
+ align-items: center;
372
+ }
373
+ .uc-justify-between {
374
+ justify-content: space-between;
375
+ }
@@ -0,0 +1,157 @@
1
+ // =====================================================================
2
+ // UNIFIED SECTION STYLE - Based on Original Product Section
3
+ // =====================================================================
4
+ //
5
+ // This is the ORIGINAL style that worked well
6
+ // Clean structure, good spacing, proper hierarchy
7
+ //
8
+ // =====================================================================
9
+
10
+ @use "../../tokens/master" as *;
11
+
12
+ // =====================================================================
13
+ // STANDARD SPACING (Good balance)
14
+ // =====================================================================
15
+ // NOTE: All spacing variables are now defined in tokens/_master.scss
16
+ // Use --osi-section-* and --osi-section-item-* variables
17
+ // This file only contains mixins, no variable definitions
18
+
19
+ // =====================================================================
20
+ // STANDARD CARD (For 200px grids)
21
+ // =====================================================================
22
+
23
+ @mixin section-card {
24
+ @include card;
25
+ padding: var(--spacing-md);
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: var(--spacing-sm);
29
+ background: var(--surface);
30
+ border-radius: var(--radius-md);
31
+ transition:
32
+ box-shadow var(--duration-slow) var(--ease-out),
33
+ background var(--duration-slow) var(--ease-out);
34
+
35
+ &:hover {
36
+ box-shadow: var(--shadow-lg);
37
+ background: var(--osi-section-item-background-hover);
38
+ }
39
+ }
40
+
41
+ // =====================================================================
42
+ // STANDARD LIST (For 400px width sections)
43
+ // =====================================================================
44
+
45
+ @mixin section-list-container {
46
+ @include card;
47
+ padding: var(--spacing-md);
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: var(--spacing-md);
51
+ background: var(--surface);
52
+ border-radius: var(--radius-md);
53
+ transition: box-shadow 300ms var(--ease-out);
54
+
55
+ &:hover {
56
+ box-shadow: var(--shadow-lg);
57
+ }
58
+ }
59
+
60
+ @mixin section-list-item {
61
+ padding: var(--spacing-sm);
62
+ border-radius: var(--radius-sm);
63
+ display: flex;
64
+ flex-direction: column;
65
+ gap: var(--spacing-sm);
66
+ transition:
67
+ background var(--duration-base) var(--ease-out),
68
+ color var(--duration-base) var(--ease-out);
69
+
70
+ &:not(:last-child) {
71
+ margin-bottom: var(--spacing-xs);
72
+ }
73
+
74
+ &:hover {
75
+ background: var(--surface-hover);
76
+ color: var(--accent);
77
+ }
78
+ }
79
+
80
+ // =====================================================================
81
+ // TYPOGRAPHY MIXINS (Original hierarchy)
82
+ // =====================================================================
83
+
84
+ @mixin section-field-label {
85
+ font-size: 0.7rem;
86
+ text-transform: uppercase;
87
+ letter-spacing: 0.5px;
88
+ color: var(--muted-foreground);
89
+ font-weight: var(--font-semibold);
90
+ line-height: 1.3;
91
+ }
92
+
93
+ @mixin section-field-value {
94
+ color: var(--foreground);
95
+ font-size: var(--text-base);
96
+ line-height: var(--leading-relaxed);
97
+ }
98
+
99
+ @mixin section-metric-value {
100
+ font-size: var(--text-2xl);
101
+ font-weight: var(--font-bold);
102
+ color: var(--foreground);
103
+ line-height: 1.2;
104
+ font-variant-numeric: tabular-nums;
105
+ }
106
+
107
+ // =====================================================================
108
+ // GRID SYSTEMS
109
+ // =====================================================================
110
+
111
+ @mixin section-grid-200px {
112
+ display: grid;
113
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
114
+ gap: var(--spacing-md);
115
+
116
+ @media (max-width: 768px) {
117
+ gap: var(--spacing-sm);
118
+ }
119
+
120
+ @media (max-width: 640px) {
121
+ grid-template-columns: repeat(2, 1fr);
122
+ }
123
+
124
+ @media (max-width: 420px) {
125
+ grid-template-columns: 1fr;
126
+ }
127
+ }
128
+
129
+ @mixin section-grid-280px {
130
+ display: grid;
131
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
132
+ gap: var(--spacing-md);
133
+
134
+ @media (max-width: 768px) {
135
+ grid-template-columns: repeat(2, 1fr);
136
+ gap: var(--spacing-sm);
137
+ }
138
+
139
+ @media (max-width: 480px) {
140
+ grid-template-columns: 1fr;
141
+ }
142
+ }
143
+
144
+ // =====================================================================
145
+ // UTILITIES
146
+ // =====================================================================
147
+
148
+ @mixin section-reduced-motion {
149
+ @media (prefers-reduced-motion: reduce) {
150
+ transition: none;
151
+ animation: none;
152
+
153
+ &:hover {
154
+ transform: none;
155
+ }
156
+ }
157
+ }