osi-cards-lib 1.5.30 → 1.5.32

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 (88) hide show
  1. package/README.md +58 -20
  2. package/package.json +13 -25
  3. package/postcss.config.js +81 -0
  4. package/section-registry.json +3864 -0
  5. package/section-registry.schema.json +264 -0
  6. package/fesm2022/osi-cards-lib.mjs +0 -31878
  7. package/fesm2022/osi-cards-lib.mjs.map +0 -1
  8. package/index.d.ts +0 -11522
  9. package/scripts/setup-angular-styles.js +0 -169
  10. package/styles/_components.scss +0 -38
  11. package/styles/_index.scss +0 -25
  12. package/styles/_osi-cards-mixins.scss +0 -459
  13. package/styles/_osi-cards-tokens.scss +0 -333
  14. package/styles/_styles-scoped.scss +0 -81
  15. package/styles/_styles.scss +0 -26
  16. package/styles/bundles/_ai-card.scss +0 -245
  17. package/styles/bundles/_all.scss +0 -68
  18. package/styles/bundles/_base.scss +0 -60
  19. package/styles/bundles/_card-skeleton.scss +0 -290
  20. package/styles/bundles/_index.scss +0 -25
  21. package/styles/bundles/_sections.scss +0 -48
  22. package/styles/bundles/_tokens-only.scss +0 -139
  23. package/styles/components/_ai-card-renderer.scss +0 -104
  24. package/styles/components/_badges.scss +0 -317
  25. package/styles/components/_card-actions.scss +0 -169
  26. package/styles/components/_card-footer.scss +0 -47
  27. package/styles/components/_component-styles.scss +0 -205
  28. package/styles/components/_empty-state.scss +0 -630
  29. package/styles/components/_hero-card.scss +0 -422
  30. package/styles/components/_image-fallback.scss +0 -28
  31. package/styles/components/_streaming-effects.scss +0 -518
  32. package/styles/components/cards/_ai-card.scss +0 -718
  33. package/styles/components/sections/_all-sections.generated.scss +0 -41
  34. package/styles/components/sections/_all-sections.scss +0 -1086
  35. package/styles/components/sections/_balanced-compact-system.scss +0 -186
  36. package/styles/components/sections/_compact-mixins.scss +0 -180
  37. package/styles/components/sections/_component-mixins.scss +0 -454
  38. package/styles/components/sections/_design-system.scss +0 -477
  39. package/styles/components/sections/_design-tokens.scss +0 -308
  40. package/styles/components/sections/_enhanced-design-variables.scss +0 -147
  41. package/styles/components/sections/_master-compact-system.scss +0 -302
  42. package/styles/components/sections/_master-dense-system.scss +0 -239
  43. package/styles/components/sections/_minimalistic-design.scss +0 -268
  44. package/styles/components/sections/_modern-effects.scss +0 -392
  45. package/styles/components/sections/_modern-sections.scss +0 -351
  46. package/styles/components/sections/_perfect-system.scss +0 -204
  47. package/styles/components/sections/_section-animations.scss +0 -331
  48. package/styles/components/sections/_section-shell.scss +0 -337
  49. package/styles/components/sections/_section-types.generated.scss +0 -30
  50. package/styles/components/sections/_sections-all.scss +0 -26
  51. package/styles/components/sections/_sections-base.scss +0 -334
  52. package/styles/components/sections/_typography-system.scss +0 -327
  53. package/styles/components/sections/_ultra-compact-tokens.scss +0 -375
  54. package/styles/components/sections/_unified-section-style.scss +0 -157
  55. package/styles/components/sections/_utility-classes.scss +0 -567
  56. package/styles/components/sections/_visual-effects-library.scss +0 -374
  57. package/styles/core/_animations.scss +0 -1498
  58. package/styles/core/_bootstrap-reset.scss +0 -445
  59. package/styles/core/_color-helpers.scss +0 -46
  60. package/styles/core/_global-unified.scss +0 -118
  61. package/styles/core/_global.scss +0 -73
  62. package/styles/core/_mixins.scss +0 -491
  63. package/styles/core/_surface-layers.scss +0 -76
  64. package/styles/core/_utilities.scss +0 -326
  65. package/styles/core/_variables-unified.scss +0 -57
  66. package/styles/core/_variables.scss +0 -36
  67. package/styles/core/variables/_colors-source.scss +0 -34
  68. package/styles/core/variables/_colors-unified.scss +0 -26
  69. package/styles/core/variables/_colors.scss +0 -21
  70. package/styles/critical.scss +0 -353
  71. package/styles/design-system/_compact-theme.scss +0 -159
  72. package/styles/design-system/_section-base.scss +0 -426
  73. package/styles/design-system/_tokens.scss +0 -237
  74. package/styles/design-system/_unified-sections.scss +0 -215
  75. package/styles/layout/_feature-grid.scss +0 -322
  76. package/styles/layout/_masonry.scss +0 -734
  77. package/styles/layout/_tilt.scss +0 -244
  78. package/styles/micro-interactions.scss +0 -583
  79. package/styles/mixins/_section-mixins.scss +0 -280
  80. package/styles/non-critical.scss +0 -643
  81. package/styles/reset/_framework-reset.scss +0 -457
  82. package/styles/reset/_index.scss +0 -14
  83. package/styles/reset/_shadow-reset.scss +0 -383
  84. package/styles/responsive.scss +0 -326
  85. package/styles/themes.scss +0 -573
  86. package/styles/tokens/_index.scss +0 -92
  87. package/styles/tokens/_master.scss +0 -1404
  88. package/styles/tokens/_section-tokens.generated.scss +0 -140
@@ -1,353 +0,0 @@
1
- /**
2
- * OSI Cards - Critical CSS
3
- *
4
- * This stylesheet contains above-the-fold critical styles that should be
5
- * inlined or loaded synchronously for optimal First Contentful Paint (FCP).
6
- *
7
- * Include these styles in your HTML <head> for best performance:
8
- *
9
- * @example
10
- * ```html
11
- * <style>
12
- * @import 'osi-cards-lib/styles/critical';
13
- * </style>
14
- * ```
15
- *
16
- * Or inline via build tooling:
17
- * ```js
18
- * // In your build config
19
- * const criticalCSS = require('osi-cards-lib/styles/critical.css');
20
- * ```
21
- */
22
-
23
- // =============================================================================
24
- // CSS CUSTOM PROPERTIES (CRITICAL)
25
- // =============================================================================
26
-
27
- :root {
28
- // Core colors
29
- --osi-color-brand: #ff7900;
30
- --osi-color-brand-rgb: 255, 121, 0;
31
- --osi-color-brand-dark: #e66a00;
32
- --osi-color-text: #333333;
33
- --osi-color-text-secondary: #666666;
34
- --osi-color-background: #ffffff;
35
- --osi-color-background-soft: #f8f9fa;
36
- --osi-color-border: #e9ecef;
37
-
38
- // Spacing (critical only)
39
- --osi-spacing-xs: 4px;
40
- --osi-spacing-sm: 8px;
41
- --osi-spacing-md: 16px;
42
- --osi-spacing-lg: 24px;
43
-
44
- // Typography (critical)
45
- --osi-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
46
- --osi-font-size-sm: 0.875rem;
47
- --osi-font-size-base: 1rem;
48
- --osi-font-size-lg: 1.125rem;
49
- --osi-font-size-xl: 1.25rem;
50
- --osi-font-size-2xl: 1.5rem;
51
-
52
- // Border radius
53
- --osi-border-radius-sm: 4px;
54
- --osi-border-radius-md: 8px;
55
- --osi-border-radius-lg: 12px;
56
-
57
- // Shadows (critical only)
58
- --osi-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
59
- --osi-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
60
-
61
- // Z-index
62
- --osi-z-index-card: 1;
63
- --osi-z-index-dropdown: 100;
64
- --osi-z-index-modal: 1000;
65
- }
66
-
67
- // Dark mode critical variables
68
- @media (prefers-color-scheme: dark) {
69
- :root {
70
- --osi-color-text: #f0f0f0;
71
- --osi-color-text-secondary: #a0a0a0;
72
- --osi-color-background: #1a1a1a;
73
- --osi-color-background-soft: #2a2a2a;
74
- --osi-color-border: #3a3a3a;
75
- }
76
- }
77
-
78
- // =============================================================================
79
- // CONTAINER CRITICAL STYLES
80
- // =============================================================================
81
-
82
- .osi-cards-container {
83
- font-family: var(--osi-font-family);
84
- font-size: var(--osi-font-size-base);
85
- line-height: 1.5;
86
- color: var(--osi-color-text);
87
- -webkit-font-smoothing: antialiased;
88
- -moz-osx-font-smoothing: grayscale;
89
- }
90
-
91
- // =============================================================================
92
- // CARD CRITICAL STYLES
93
- // =============================================================================
94
-
95
- .osi-card {
96
- position: relative;
97
- background: var(--osi-color-background);
98
- border-radius: var(--osi-border-radius-lg);
99
- box-shadow: var(--osi-shadow-md);
100
- overflow: hidden;
101
- }
102
-
103
- .osi-card-surface {
104
- position: relative;
105
- width: 100%;
106
- height: 100%;
107
- background: var(--osi-color-background);
108
- border-radius: inherit;
109
- overflow: hidden;
110
- will-change: transform;
111
- }
112
-
113
- .osi-card-content {
114
- padding: var(--osi-spacing-lg);
115
- }
116
-
117
- // =============================================================================
118
- // CARD HEADER CRITICAL STYLES
119
- // =============================================================================
120
-
121
- .osi-card-header {
122
- display: flex;
123
- align-items: flex-start;
124
- justify-content: space-between;
125
- padding: var(--osi-spacing-lg);
126
- padding-bottom: var(--osi-spacing-md);
127
- }
128
-
129
- .osi-card-title {
130
- margin: 0;
131
- font-size: var(--osi-font-size-2xl);
132
- font-weight: 700;
133
- line-height: 1.2;
134
- color: var(--osi-color-text);
135
- }
136
-
137
- .osi-card-subtitle {
138
- margin-top: var(--osi-spacing-xs);
139
- font-size: var(--osi-font-size-sm);
140
- color: var(--osi-color-text-secondary);
141
- }
142
-
143
- // =============================================================================
144
- // SECTION CRITICAL STYLES
145
- // =============================================================================
146
-
147
- .osi-section {
148
- padding: var(--osi-spacing-md) var(--osi-spacing-lg);
149
- border-top: 1px solid var(--osi-color-border);
150
-
151
- &:first-of-type {
152
- border-top: none;
153
- }
154
- }
155
-
156
- .osi-section-title {
157
- margin: 0 0 var(--osi-spacing-sm);
158
- font-size: var(--osi-font-size-lg);
159
- font-weight: 600;
160
- color: var(--osi-color-text);
161
- }
162
-
163
- .osi-section-content {
164
- font-size: var(--osi-font-size-base);
165
- }
166
-
167
- // =============================================================================
168
- // FIELD CRITICAL STYLES
169
- // =============================================================================
170
-
171
- .osi-field {
172
- display: flex;
173
- justify-content: space-between;
174
- align-items: baseline;
175
- padding: var(--osi-spacing-sm) 0;
176
- gap: var(--osi-spacing-md);
177
- }
178
-
179
- .osi-field-label {
180
- font-size: var(--osi-font-size-sm);
181
- color: var(--osi-color-text-secondary);
182
- flex-shrink: 0;
183
- }
184
-
185
- .osi-field-value {
186
- font-weight: 500;
187
- text-align: right;
188
- word-break: break-word;
189
- }
190
-
191
- // =============================================================================
192
- // ITEM CRITICAL STYLES
193
- // =============================================================================
194
-
195
- .osi-item {
196
- display: flex;
197
- align-items: flex-start;
198
- padding: var(--osi-spacing-sm) 0;
199
- gap: var(--osi-spacing-md);
200
- }
201
-
202
- .osi-item-icon {
203
- flex-shrink: 0;
204
- width: 24px;
205
- height: 24px;
206
- font-size: 20px;
207
- line-height: 24px;
208
- text-align: center;
209
- }
210
-
211
- .osi-item-content {
212
- flex: 1;
213
- min-width: 0;
214
- }
215
-
216
- .osi-item-title {
217
- font-weight: 500;
218
- margin: 0;
219
- }
220
-
221
- .osi-item-description {
222
- font-size: var(--osi-font-size-sm);
223
- color: var(--osi-color-text-secondary);
224
- margin: var(--osi-spacing-xs) 0 0;
225
- }
226
-
227
- // =============================================================================
228
- // ACTION BUTTON CRITICAL STYLES
229
- // =============================================================================
230
-
231
- .osi-card-actions {
232
- display: flex;
233
- flex-wrap: wrap;
234
- gap: var(--osi-spacing-sm);
235
- padding: var(--osi-spacing-md) var(--osi-spacing-lg);
236
- border-top: 1px solid var(--osi-color-border);
237
- }
238
-
239
- .osi-action-button {
240
- display: inline-flex;
241
- align-items: center;
242
- justify-content: center;
243
- gap: var(--osi-spacing-xs);
244
- padding: var(--osi-spacing-sm) var(--osi-spacing-md);
245
- font-family: inherit;
246
- font-size: var(--osi-font-size-sm);
247
- font-weight: 500;
248
- text-decoration: none;
249
- border-radius: var(--osi-border-radius-md);
250
- cursor: pointer;
251
- transition: none; // Start with no transition for critical
252
-
253
- // Primary variant (default)
254
- &--primary {
255
- background: var(--osi-color-brand);
256
- color: white;
257
- border: none;
258
- }
259
-
260
- // Secondary variant
261
- &--secondary {
262
- background: var(--osi-color-background-soft);
263
- color: var(--osi-color-text);
264
- border: 1px solid var(--osi-color-border);
265
- }
266
-
267
- // Outline variant
268
- &--outline {
269
- background: transparent;
270
- color: var(--osi-color-brand);
271
- border: 1px solid var(--osi-color-brand);
272
- }
273
-
274
- // Ghost variant
275
- &--ghost {
276
- background: transparent;
277
- color: var(--osi-color-text-secondary);
278
- border: none;
279
- }
280
- }
281
-
282
- // =============================================================================
283
- // SKELETON/LOADING CRITICAL STYLES
284
- // =============================================================================
285
-
286
- .osi-skeleton {
287
- background: var(--osi-color-background-soft);
288
- border-radius: var(--osi-border-radius-sm);
289
- // Animation added in non-critical CSS
290
- }
291
-
292
- .osi-skeleton-text {
293
- height: 16px;
294
- margin-bottom: var(--osi-spacing-sm);
295
-
296
- &:last-child {
297
- width: 70%;
298
- margin-bottom: 0;
299
- }
300
- }
301
-
302
- .osi-skeleton-title {
303
- height: 24px;
304
- width: 60%;
305
- margin-bottom: var(--osi-spacing-md);
306
- }
307
-
308
- // =============================================================================
309
- // FOCUS & ACCESSIBILITY CRITICAL STYLES
310
- // =============================================================================
311
-
312
- // Focus visible for keyboard users
313
- :focus-visible {
314
- outline: 2px solid var(--osi-color-brand);
315
- outline-offset: 2px;
316
- }
317
-
318
- // Reduced motion support
319
- @media (prefers-reduced-motion: reduce) {
320
- *,
321
- *::before,
322
- *::after {
323
- animation-duration: 0.01ms !important;
324
- animation-iteration-count: 1 !important;
325
- transition-duration: 0.01ms !important;
326
- }
327
- }
328
-
329
- // =============================================================================
330
- // UTILITY CLASSES (CRITICAL ONLY)
331
- // =============================================================================
332
-
333
- .osi-visually-hidden {
334
- position: absolute !important;
335
- width: 1px !important;
336
- height: 1px !important;
337
- padding: 0 !important;
338
- margin: -1px !important;
339
- overflow: hidden !important;
340
- clip: rect(0, 0, 0, 0) !important;
341
- white-space: nowrap !important;
342
- border: 0 !important;
343
- }
344
-
345
- .osi-truncate {
346
- overflow: hidden;
347
- text-overflow: ellipsis;
348
- white-space: nowrap;
349
- }
350
-
351
- .osi-sr-only {
352
- @extend .osi-visually-hidden;
353
- }
@@ -1,159 +0,0 @@
1
- // =====================================================================
2
- // COMPACT THEME - Tighter Spacing for Dense Information Display
3
- // =====================================================================
4
-
5
- @use "./tokens" as *;
6
-
7
- // ═══════════════════════════════════════════════════════════════════
8
- // COMPACT SPACING TOKENS
9
- // ═══════════════════════════════════════════════════════════════════
10
-
11
- :root {
12
- // Compact spacing scale (reduce by ~33%)
13
- --osi-spacing-compact-xs: 2px;
14
- --osi-spacing-compact-sm: 6px;
15
- --osi-spacing-compact-md: 8px;
16
- --osi-spacing-compact-lg: 10px;
17
- --osi-spacing-compact-xl: 16px;
18
-
19
- // Compact section-specific
20
- --osi-section-header-gap-compact: var(--osi-spacing-compact-sm);
21
- --osi-section-padding-compact: var(--osi-spacing-compact-md);
22
- --osi-item-padding-compact: var(--osi-spacing-compact-md);
23
- --osi-item-gap-compact: var(--osi-spacing-compact-sm);
24
- --osi-element-gap-compact: var(--osi-spacing-compact-xs);
25
- }
26
-
27
- // ═══════════════════════════════════════════════════════════════════
28
- // COMPACT TYPOGRAPHY (Slightly smaller, tighter)
29
- // ═══════════════════════════════════════════════════════════════════
30
-
31
- @mixin compact-section-title {
32
- font-size: var(--osi-text-base); // 16px (was 18px)
33
- font-weight: var(--osi-font-bold);
34
- line-height: var(--osi-leading-tight);
35
- margin: 0;
36
- }
37
-
38
- @mixin compact-section-description {
39
- font-size: var(--osi-text-sm); // 14px
40
- font-weight: var(--osi-font-normal);
41
- line-height: var(--osi-leading-snug);
42
- margin: 0;
43
- }
44
-
45
- @mixin compact-item-title {
46
- font-size: var(--osi-text-sm); // 14px (was 16px)
47
- font-weight: var(--osi-font-semibold);
48
- line-height: var(--osi-leading-snug);
49
- margin: 0;
50
- }
51
-
52
- @mixin compact-item-label {
53
- font-size: 0.7rem; // 11.2px (was 12px)
54
- font-weight: var(--osi-font-medium);
55
- line-height: var(--osi-leading-tight);
56
- text-transform: uppercase;
57
- letter-spacing: 0.04em;
58
- }
59
-
60
- @mixin compact-item-value {
61
- font-size: var(--osi-text-sm); // 14px (was 16px)
62
- font-weight: var(--osi-font-semibold);
63
- line-height: var(--osi-leading-normal);
64
- }
65
-
66
- @mixin compact-number-display {
67
- font-size: var(--osi-text-xl); // 24px (was 30px)
68
- font-weight: var(--osi-font-bold);
69
- line-height: 1;
70
- letter-spacing: var(--osi-tracking-tight);
71
- font-variant-numeric: tabular-nums;
72
- }
73
-
74
- // ═══════════════════════════════════════════════════════════════════
75
- // COMPACT CARD & ITEM MIXINS
76
- // ═══════════════════════════════════════════════════════════════════
77
-
78
- @mixin compact-card {
79
- padding: var(--osi-spacing-compact-md);
80
- border-radius: var(--osi-radius-sm);
81
- gap: var(--osi-spacing-compact-sm);
82
- min-height: auto; // Remove fixed heights
83
- }
84
-
85
- @mixin compact-item {
86
- padding: var(--osi-spacing-compact-md);
87
- gap: var(--osi-spacing-compact-sm);
88
- }
89
-
90
- @mixin compact-grid {
91
- gap: var(--osi-spacing-compact-md);
92
- }
93
-
94
- @mixin compact-list {
95
- gap: var(--osi-spacing-compact-sm);
96
- padding: var(--osi-spacing-compact-sm);
97
- }
98
-
99
- // ═══════════════════════════════════════════════════════════════════
100
- // APPLY COMPACT THEME
101
- // ═══════════════════════════════════════════════════════════════════
102
-
103
- // Apply to host element with [data-compact] attribute
104
- :host-context([data-compact]),
105
- :host([data-compact]) {
106
- // Override spacing tokens
107
- --osi-section-header-gap: var(--osi-section-header-gap-compact);
108
- --osi-section-padding: var(--osi-section-padding-compact);
109
- --osi-item-padding: var(--osi-item-padding-compact);
110
- --osi-item-gap: var(--osi-item-gap-compact);
111
- --osi-element-gap: var(--osi-element-gap-compact);
112
-
113
- // Reduce min-heights
114
- .metric-card,
115
- .contact-card,
116
- .solution-card {
117
- min-height: auto;
118
- }
119
- }
120
-
121
- // ═══════════════════════════════════════════════════════════════════
122
- // COMPACT MODIFIER CLASS
123
- // ═══════════════════════════════════════════════════════════════════
124
-
125
- .section-compact {
126
- // Section-level compact mode
127
- --osi-section-header-gap: var(--osi-section-header-gap-compact);
128
- --osi-section-padding: var(--osi-section-padding-compact);
129
- --osi-item-padding: var(--osi-item-padding-compact);
130
- --osi-item-gap: var(--osi-item-gap-compact);
131
-
132
- // Typography adjustments
133
- .section-title,
134
- h3 {
135
- font-size: var(--osi-text-base);
136
- margin-bottom: var(--osi-spacing-compact-xs);
137
- }
138
-
139
- .section-description {
140
- font-size: var(--osi-text-sm);
141
- line-height: var(--osi-leading-snug);
142
- }
143
-
144
- // Card/item adjustments
145
- .metric-card,
146
- .contact-card,
147
- .list-item,
148
- .info-item {
149
- padding: var(--osi-spacing-compact-md);
150
- min-height: auto;
151
- }
152
-
153
- // Grid adjustments
154
- .analytics-grid,
155
- .contacts-grid,
156
- .news-grid {
157
- gap: var(--osi-spacing-compact-md);
158
- }
159
- }