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,302 +0,0 @@
1
- // =====================================================================
2
- // MASTER COMPACT SYSTEM - Intelligent Structure
3
- // =====================================================================
4
- //
5
- // This isn't just about reducing padding - it's about SMART LAYOUT
6
- // Horizontal when possible, vertical when needed, adaptive always
7
- //
8
- // =====================================================================
9
-
10
- // =====================================================================
11
- // CONSISTENT SPACING SYSTEM
12
- // =====================================================================
13
-
14
- :root {
15
- // Base spacing scale (strictly enforced)
16
- --compact-space-1: 2px; // Micro
17
- --compact-space-2: 4px; // Tight
18
- --compact-space-3: 6px; // Compact
19
- --compact-space-4: 8px; // Standard
20
- --compact-space-5: 10px; // Comfortable
21
- --compact-space-6: 12px; // Spacious
22
-
23
- // Component spacing (consistent application)
24
- --compact-card-padding: 8px;
25
- --compact-item-padding-y: 6px;
26
- --compact-item-padding-x: 8px;
27
- --compact-gap-tight: 4px;
28
- --compact-gap-standard: 6px;
29
- --compact-gap-comfortable: 8px;
30
- }
31
-
32
- // =====================================================================
33
- // INTELLIGENT LAYOUT MIXINS
34
- // =====================================================================
35
-
36
- // Smart card that uses horizontal space wisely
37
- @mixin smart-card-horizontal {
38
- display: grid;
39
- grid-template-columns: auto 1fr auto;
40
- grid-template-rows: auto auto;
41
- gap: var(--compact-gap-tight);
42
- align-items: center;
43
-
44
- // On narrow screens, switch to vertical
45
- @media (max-width: 200px) {
46
- grid-template-columns: 1fr;
47
- grid-template-rows: auto;
48
- }
49
- }
50
-
51
- // Metric card optimized for 200px width
52
- @mixin metric-card-200px {
53
- padding: var(--compact-card-padding);
54
- display: grid;
55
- grid-template-areas:
56
- "label trend"
57
- "value value"
58
- "extra extra";
59
- grid-template-columns: 1fr auto;
60
- gap: var(--compact-gap-tight);
61
- align-items: start;
62
- min-height: 75px;
63
-
64
- .label {
65
- grid-area: label;
66
- }
67
- .trend {
68
- grid-area: trend;
69
- }
70
- .value {
71
- grid-area: value;
72
- }
73
- .extra {
74
- grid-area: extra;
75
- }
76
- }
77
-
78
- // List item optimized for 400px width
79
- @mixin list-item-400px {
80
- padding: var(--compact-item-padding-y) var(--compact-item-padding-x);
81
- display: grid;
82
- grid-template-columns: auto 1fr auto;
83
- gap: var(--compact-gap-standard);
84
- align-items: center;
85
- min-height: 40px;
86
- }
87
-
88
- // Contact card optimized for vertical space
89
- @mixin contact-card-compact {
90
- padding: var(--compact-card-padding);
91
- display: grid;
92
- grid-template-areas:
93
- "avatar"
94
- "info"
95
- "actions";
96
- grid-template-rows: auto 1fr auto;
97
- gap: var(--compact-gap-tight);
98
- justify-items: center;
99
- text-align: center;
100
- }
101
-
102
- // =====================================================================
103
- // RESPONSIVE GRID SYSTEM
104
- // =====================================================================
105
-
106
- @mixin responsive-grid-200px {
107
- display: grid;
108
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
109
- gap: var(--compact-gap-comfortable);
110
-
111
- @media (max-width: 640px) {
112
- grid-template-columns: repeat(2, 1fr);
113
- gap: var(--compact-gap-standard);
114
- }
115
-
116
- @media (max-width: 420px) {
117
- grid-template-columns: 1fr;
118
- }
119
- }
120
-
121
- @mixin responsive-list-400px {
122
- display: flex;
123
- flex-direction: column;
124
- gap: 0;
125
- min-width: 400px;
126
-
127
- @media (max-width: 640px) {
128
- min-width: 100%;
129
- }
130
- }
131
-
132
- // =====================================================================
133
- // CONSISTENT CARD STRUCTURE
134
- // =====================================================================
135
-
136
- @mixin base-card {
137
- position: relative;
138
- background: var(--card, #0c0c0c);
139
- border: 1px solid rgba(255, 255, 255, 0.06);
140
- border-radius: 8px;
141
- transition: all 200ms ease-out;
142
- box-sizing: border-box;
143
-
144
- // Accent line (consistent across all cards)
145
- &::before {
146
- content: "";
147
- position: absolute;
148
- top: 0;
149
- left: 0;
150
- right: 0;
151
- height: 1px;
152
- background: var(--accent, #ff7900);
153
- opacity: 0;
154
- transition: opacity 200ms ease-out;
155
- }
156
-
157
- &:hover {
158
- border-color: rgba(255, 255, 255, 0.12);
159
- transform: translateY(-1px);
160
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
161
-
162
- &::before {
163
- opacity: 0.6;
164
- }
165
- }
166
- }
167
-
168
- @mixin base-list {
169
- padding: var(--compact-space-2);
170
- background: var(--card, #0c0c0c);
171
- border: 1px solid rgba(255, 255, 255, 0.06);
172
- border-radius: 8px;
173
- box-sizing: border-box;
174
- }
175
-
176
- @mixin base-item {
177
- padding: var(--compact-item-padding-y) var(--compact-item-padding-x);
178
- border-radius: 4px;
179
- transition: background 150ms ease-out;
180
- box-sizing: border-box;
181
-
182
- &:not(:last-child) {
183
- border-bottom: 1px solid rgba(255, 255, 255, 0.04);
184
- }
185
-
186
- &:hover {
187
- background: rgba(255, 255, 255, 0.02);
188
- }
189
- }
190
-
191
- // =====================================================================
192
- // TYPOGRAPHY - CONSISTENT SYSTEM
193
- // =====================================================================
194
-
195
- @mixin text-label-compact {
196
- font-size: 0.6rem;
197
- font-weight: 600;
198
- letter-spacing: 0.05em;
199
- text-transform: uppercase;
200
- color: var(--muted-foreground, #999);
201
- line-height: 1.1;
202
- }
203
-
204
- @mixin text-value-compact {
205
- font-size: 1.1rem;
206
- font-weight: 700;
207
- font-variant-numeric: tabular-nums;
208
- color: var(--foreground, #fff);
209
- line-height: 1;
210
- }
211
-
212
- @mixin text-title-compact {
213
- font-size: 0.75rem;
214
- font-weight: 600;
215
- color: var(--foreground, #fff);
216
- line-height: 1.2;
217
- }
218
-
219
- @mixin text-body-compact {
220
- font-size: 0.7rem;
221
- font-weight: 400;
222
- color: var(--muted-foreground, #999);
223
- line-height: 1.3;
224
- }
225
-
226
- // =====================================================================
227
- // REDUCED MOTION - CONSISTENT
228
- // =====================================================================
229
-
230
- @mixin reduced-motion-safe {
231
- @media (prefers-reduced-motion: reduce) {
232
- transition: none;
233
- animation: none;
234
-
235
- &:hover {
236
- transform: none;
237
- }
238
- }
239
- }
240
-
241
- // =====================================================================
242
- // VISUAL HIERARCHY - SMART SPACING
243
- // =====================================================================
244
-
245
- // Breathing room for visual appeal
246
- @mixin visual-spacing {
247
- // Not everything needs to be cramped
248
- // Strategic spacing for visual hierarchy
249
-
250
- > *:not(:first-child) {
251
- margin-top: var(--compact-gap-tight);
252
- }
253
-
254
- .primary-content {
255
- margin: var(--compact-gap-standard) 0;
256
- }
257
-
258
- .secondary-content {
259
- margin-top: auto; // Push to bottom
260
- }
261
- }
262
-
263
- // =====================================================================
264
- // SMART TRUNCATION
265
- // =====================================================================
266
-
267
- @mixin smart-truncate($lines: 1) {
268
- @if $lines == 1 {
269
- white-space: nowrap;
270
- overflow: hidden;
271
- text-overflow: ellipsis;
272
- } @else {
273
- display: -webkit-box;
274
- -webkit-line-clamp: $lines;
275
- -webkit-box-orient: vertical;
276
- overflow: hidden;
277
- text-overflow: ellipsis;
278
- }
279
- }
280
-
281
- // =====================================================================
282
- // INTERACTIVE STATES - CONSISTENT
283
- // =====================================================================
284
-
285
- @mixin interactive-card {
286
- cursor: pointer;
287
-
288
- &:hover {
289
- .accent-text {
290
- color: var(--accent, #ff7900);
291
- }
292
- }
293
-
294
- &:active {
295
- transform: translateY(0);
296
- }
297
-
298
- &:focus-visible {
299
- outline: 2px solid var(--accent, #ff7900);
300
- outline-offset: 2px;
301
- }
302
- }
@@ -1,239 +0,0 @@
1
- // =====================================================================
2
- // MASTER DENSE SYSTEM - Final Consolidated Design Library
3
- // =====================================================================
4
- //
5
- // Optimized typography, smart structures, adaptive layouts
6
- // Each component preserves style while maximizing density
7
- //
8
- // =====================================================================
9
-
10
- // =====================================================================
11
- // CONSOLIDATED SPACING (Consistent across all sections)
12
- // =====================================================================
13
-
14
- :root {
15
- // Standard spacing
16
- --ds-space-2: 2px;
17
- --ds-space-4: 4px;
18
- --ds-space-6: 6px;
19
- --ds-space-8: 8px;
20
- --ds-space-10: 10px;
21
- --ds-space-12: 12px;
22
- --ds-space-14: 14px;
23
- --ds-space-16: 16px;
24
-
25
- // Component spacing (final standards)
26
- --ds-card-padding: 14px 12px; // Slightly reduced
27
- --ds-card-gap: 8px; // Tighter internal
28
- --ds-item-padding: 10px 12px; // Good for lists
29
- --ds-grid-gap: 12px; // Between cards
30
- --ds-section-gap: 10px; // Section to content
31
- }
32
-
33
- // =====================================================================
34
- // CONSOLIDATED TYPOGRAPHY (Reduced sizes, tight hierarchy)
35
- // =====================================================================
36
-
37
- :root {
38
- // Reduced font scale
39
- --ds-text-xs: 0.5625rem; // 9px - Tiny meta
40
- --ds-text-sm: 0.625rem; // 10px - Labels
41
- --ds-text-base: 0.6875rem; // 11px - Small body
42
- --ds-text-md: 0.75rem; // 12px - Body text
43
- --ds-text-lg: 0.8125rem; // 13px - Titles
44
- --ds-text-xl: 0.875rem; // 14px - Large titles
45
- --ds-text-2xl: 1rem; // 16px - Values
46
- --ds-text-3xl: 1.125rem; // 18px - Large values
47
- --ds-text-4xl: 1.25rem; // 20px - Metrics
48
-
49
- // Tight line heights
50
- --ds-leading-tight: 1;
51
- --ds-leading-snug: 1.1;
52
- --ds-leading-normal: 1.2;
53
- --ds-leading-relaxed: 1.3;
54
- --ds-leading-loose: 1.4;
55
- }
56
-
57
- // =====================================================================
58
- // MASTER CARD MIXIN (Consolidated)
59
- // =====================================================================
60
-
61
- @mixin ds-card {
62
- position: relative;
63
- background: var(--surface);
64
- border: 1px solid var(--border);
65
- border-radius: var(--radius-md);
66
- padding: var(--ds-card-padding);
67
- display: flex;
68
- flex-direction: column;
69
- gap: var(--ds-card-gap);
70
- transition: all 300ms var(--ease-out);
71
-
72
- &::after {
73
- content: "";
74
- position: absolute;
75
- bottom: 0;
76
- left: 0;
77
- right: 0;
78
- height: 2px;
79
- background: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
80
- opacity: 0;
81
- transition: opacity 300ms var(--ease-out);
82
- }
83
-
84
- &:hover {
85
- transform: translateY(-3px);
86
- box-shadow: var(--shadow-lg);
87
-
88
- &::after {
89
- opacity: 0.8;
90
- }
91
- }
92
- }
93
-
94
- // =====================================================================
95
- // MASTER LIST MIXINS (Consolidated)
96
- // =====================================================================
97
-
98
- @mixin ds-list {
99
- background: var(--surface);
100
- border: 1px solid var(--border);
101
- border-radius: var(--radius-md);
102
- padding: 8px 10px;
103
- display: flex;
104
- flex-direction: column;
105
- gap: 0;
106
- }
107
-
108
- @mixin ds-item {
109
- padding: var(--ds-item-padding);
110
- border-radius: var(--radius-sm);
111
- transition: all 200ms var(--ease-out);
112
-
113
- &:not(:last-child) {
114
- border-bottom: 1px solid var(--border);
115
- }
116
-
117
- &:hover {
118
- background: var(--surface-raised);
119
- }
120
- }
121
-
122
- // =====================================================================
123
- // TYPOGRAPHY MIXINS (Consolidated & Reduced)
124
- // =====================================================================
125
-
126
- @mixin ds-label {
127
- font-size: var(--ds-text-sm);
128
- font-weight: 600;
129
- letter-spacing: 0.05em;
130
- text-transform: uppercase;
131
- color: var(--muted-foreground);
132
- line-height: var(--ds-leading-snug);
133
- }
134
-
135
- @mixin ds-title {
136
- font-size: var(--ds-text-lg);
137
- font-weight: 600;
138
- color: var(--foreground);
139
- line-height: var(--ds-leading-normal);
140
- transition: color 200ms ease-out;
141
- }
142
-
143
- @mixin ds-body {
144
- font-size: var(--ds-text-md);
145
- font-weight: 400;
146
- color: var(--muted-foreground);
147
- line-height: var(--ds-leading-relaxed);
148
- }
149
-
150
- @mixin ds-value {
151
- font-size: var(--ds-text-4xl);
152
- font-weight: 700;
153
- color: var(--foreground);
154
- line-height: var(--ds-leading-tight);
155
- font-variant-numeric: tabular-nums;
156
- }
157
-
158
- @mixin ds-meta {
159
- font-size: var(--ds-text-base);
160
- color: var(--muted-foreground);
161
- opacity: 0.7;
162
- line-height: var(--ds-leading-snug);
163
- }
164
-
165
- // =====================================================================
166
- // GRID SYSTEMS (Responsive & Adaptive)
167
- // =====================================================================
168
-
169
- @mixin ds-grid-adaptive($min-width) {
170
- display: grid;
171
- grid-template-columns: repeat(auto-fit, minmax($min-width, 1fr));
172
- gap: var(--ds-grid-gap);
173
-
174
- @media (max-width: 768px) {
175
- gap: 10px;
176
- }
177
-
178
- @media (max-width: 640px) {
179
- grid-template-columns: repeat(2, 1fr);
180
- gap: 8px;
181
- }
182
-
183
- @media (max-width: 420px) {
184
- grid-template-columns: 1fr;
185
- }
186
- }
187
-
188
- // =====================================================================
189
- // OVERLAY SYSTEM (For max density)
190
- // =====================================================================
191
-
192
- @mixin ds-overlay-dark {
193
- position: absolute;
194
- bottom: 0;
195
- left: 0;
196
- right: 0;
197
- padding: 8px 10px;
198
- background: linear-gradient(
199
- to top,
200
- rgba(0, 0, 0, 0.88) 0%,
201
- rgba(0, 0, 0, 0.65) 65%,
202
- transparent 100%
203
- );
204
- -webkit-backdrop-filter: blur(6px);
205
- backdrop-filter: blur(6px);
206
- }
207
-
208
- @mixin ds-text-overlay {
209
- color: #fff;
210
- text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
211
- line-height: var(--ds-leading-snug);
212
- }
213
-
214
- // =====================================================================
215
- // UTILITIES
216
- // =====================================================================
217
-
218
- @mixin ds-truncate($lines: 1) {
219
- @if $lines == 1 {
220
- white-space: nowrap;
221
- overflow: hidden;
222
- text-overflow: ellipsis;
223
- } @else {
224
- display: -webkit-box;
225
- -webkit-line-clamp: $lines;
226
- -webkit-box-orient: vertical;
227
- overflow: hidden;
228
- }
229
- }
230
-
231
- @mixin ds-reduced-motion {
232
- @media (prefers-reduced-motion: reduce) {
233
- transition: none;
234
- animation: none;
235
- &:hover {
236
- transform: none;
237
- }
238
- }
239
- }