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,186 @@
1
+ // =====================================================================
2
+ // BALANCED COMPACT SYSTEM - Smart Structure + Visual Appeal
3
+ // =====================================================================
4
+ //
5
+ // The key is SMART STRUCTURE, not just removing padding
6
+ // Balance between efficiency and aesthetics
7
+ //
8
+ // =====================================================================
9
+
10
+ :root {
11
+ // BALANCED spacing (not too cramped, not too spacious)
12
+ --balanced-space-2: 2px;
13
+ --balanced-space-3: 4px;
14
+ --balanced-space-4: 6px;
15
+ --balanced-space-5: 8px;
16
+ --balanced-space-6: 10px;
17
+ --balanced-space-7: 12px;
18
+ --balanced-space-8: 14px;
19
+
20
+ // Component spacing (visually pleasant)
21
+ --balanced-card-padding: 12px; // Cards need breathing room
22
+ --balanced-card-padding-mobile: 10px;
23
+ --balanced-item-padding-y: 10px; // Comfortable for touch
24
+ --balanced-item-padding-x: 12px;
25
+ --balanced-gap-tight: 6px; // Between close elements
26
+ --balanced-gap-comfortable: 8px; // Standard gap
27
+ --balanced-gap-spacious: 10px; // For visual separation
28
+ --balanced-section-gap: 10px; // Between sections
29
+ }
30
+
31
+ // =====================================================================
32
+ // VISUAL APPEAL MIXINS
33
+ // =====================================================================
34
+
35
+ @mixin beautiful-card {
36
+ position: relative;
37
+ background: var(--card, #0c0c0c);
38
+ border: 1px solid rgba(255, 255, 255, 0.08);
39
+ border-radius: 10px;
40
+ transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
41
+ box-sizing: border-box;
42
+
43
+ // Subtle accent line
44
+ &::before {
45
+ content: "";
46
+ position: absolute;
47
+ top: 0;
48
+ left: 0;
49
+ right: 0;
50
+ height: 2px;
51
+ background: linear-gradient(90deg, var(--accent, #ff7900) 0%, transparent 100%);
52
+ opacity: 0;
53
+ transition: opacity 250ms ease-out;
54
+ }
55
+
56
+ &:hover {
57
+ border-color: rgba(255, 255, 255, 0.15);
58
+ transform: translateY(-2px);
59
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
60
+
61
+ &::before {
62
+ opacity: 0.7;
63
+ }
64
+ }
65
+ }
66
+
67
+ @mixin beautiful-list {
68
+ padding: var(--balanced-space-4);
69
+ background: var(--card, #0c0c0c);
70
+ border: 1px solid rgba(255, 255, 255, 0.08);
71
+ border-radius: 10px;
72
+ box-sizing: border-box;
73
+ }
74
+
75
+ @mixin beautiful-item {
76
+ padding: var(--balanced-item-padding-y) var(--balanced-item-padding-x);
77
+ border-radius: 6px;
78
+ transition: all 200ms ease-out;
79
+ box-sizing: border-box;
80
+
81
+ &:not(:last-child) {
82
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
83
+ }
84
+
85
+ &:hover {
86
+ background: rgba(255, 255, 255, 0.03);
87
+ }
88
+ }
89
+
90
+ // =====================================================================
91
+ // TYPOGRAPHY - BALANCED (Readable + Compact)
92
+ // =====================================================================
93
+
94
+ @mixin text-label-balanced {
95
+ font-size: 0.65rem;
96
+ font-weight: 600;
97
+ letter-spacing: 0.05em;
98
+ text-transform: uppercase;
99
+ color: var(--muted-foreground, #999);
100
+ line-height: 1.2;
101
+ }
102
+
103
+ @mixin text-value-balanced {
104
+ font-size: 1.3rem;
105
+ font-weight: 700;
106
+ font-variant-numeric: tabular-nums;
107
+ color: var(--foreground, #fff);
108
+ line-height: 1.1;
109
+ }
110
+
111
+ @mixin text-title-balanced {
112
+ font-size: 0.8rem;
113
+ font-weight: 600;
114
+ color: var(--foreground, #fff);
115
+ line-height: 1.3;
116
+ }
117
+
118
+ @mixin text-body-balanced {
119
+ font-size: 0.75rem;
120
+ font-weight: 400;
121
+ color: var(--muted-foreground, #999);
122
+ line-height: 1.4;
123
+ }
124
+
125
+ // =====================================================================
126
+ // RESPONSIVE GRID - WITH PROPER GAPS
127
+ // =====================================================================
128
+
129
+ @mixin responsive-grid-200px-balanced {
130
+ display: grid;
131
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
132
+ gap: var(--balanced-gap-spacious);
133
+
134
+ @media (max-width: 640px) {
135
+ grid-template-columns: repeat(2, 1fr);
136
+ gap: var(--balanced-gap-comfortable);
137
+ }
138
+
139
+ @media (max-width: 420px) {
140
+ grid-template-columns: 1fr;
141
+ }
142
+ }
143
+
144
+ @mixin responsive-list-400px-balanced {
145
+ display: block;
146
+ width: 100%;
147
+ min-width: 400px;
148
+
149
+ @media (max-width: 640px) {
150
+ min-width: 100%;
151
+ }
152
+ }
153
+
154
+ // =====================================================================
155
+ // INTERACTIVE STATES - BEAUTIFUL ANIMATIONS
156
+ // =====================================================================
157
+
158
+ @mixin interactive-beautiful {
159
+ cursor: pointer;
160
+
161
+ &:hover {
162
+ .accent-text {
163
+ color: var(--accent, #ff7900);
164
+ }
165
+ }
166
+
167
+ &:active {
168
+ transform: translateY(0);
169
+ }
170
+
171
+ &:focus-visible {
172
+ outline: 2px solid var(--accent, #ff7900);
173
+ outline-offset: 2px;
174
+ }
175
+ }
176
+
177
+ @mixin reduced-motion-safe {
178
+ @media (prefers-reduced-motion: reduce) {
179
+ transition: none;
180
+ animation: none;
181
+
182
+ &:hover {
183
+ transform: none;
184
+ }
185
+ }
186
+ }
@@ -0,0 +1,180 @@
1
+ // =====================================================================
2
+ // COMPACT LAYOUT MIXINS
3
+ // =====================================================================
4
+ //
5
+ // Optimized mixins for denser, more compact section layouts.
6
+ // Uses reduced spacing while maintaining readability.
7
+ //
8
+ // =====================================================================
9
+
10
+ @use "design-tokens" as *;
11
+ @use "sections-base" as base;
12
+ @use "component-mixins" as components;
13
+ @use "modern-effects" as effects;
14
+ @use "typography-system" as typo;
15
+
16
+ // =====================================================================
17
+ // COMPACT SECTION CONTAINER
18
+ // =====================================================================
19
+
20
+ @mixin section-container-compact {
21
+ display: flex;
22
+ flex-direction: column;
23
+ gap: var(--section-header-gap);
24
+ }
25
+
26
+ @mixin section-header-compact {
27
+ margin-bottom: var(--spacing-compact-sm);
28
+
29
+ .section-title,
30
+ h3 {
31
+ font-size: var(--text-xl);
32
+ font-weight: var(--font-bold);
33
+ line-height: var(--leading-tight);
34
+ color: var(--foreground);
35
+ margin: 0 0 var(--spacing-compact-xs);
36
+ }
37
+
38
+ .section-description,
39
+ p {
40
+ font-size: var(--text-sm);
41
+ color: var(--muted-foreground);
42
+ line-height: var(--leading-snug);
43
+ margin: 0;
44
+ }
45
+ }
46
+
47
+ // =====================================================================
48
+ // COMPACT CARD VARIANTS
49
+ // =====================================================================
50
+
51
+ @mixin card-compact {
52
+ @include base.card;
53
+ padding: var(--spacing-compact-base) var(--spacing-compact-md);
54
+ gap: var(--spacing-compact-sm);
55
+ min-height: var(--section-card-compact-height);
56
+ }
57
+
58
+ @mixin card-compact-elevated {
59
+ @include card-compact;
60
+ @include effects.elevated-card;
61
+ }
62
+
63
+ @mixin card-compact-glass {
64
+ @include card-compact;
65
+ @include effects.glass-card;
66
+ }
67
+
68
+ // =====================================================================
69
+ // COMPACT GRID LAYOUTS
70
+ // =====================================================================
71
+
72
+ @mixin grid-compact($min-width: 140px) {
73
+ @include section-grid($min-width, var(--spacing-compact-md));
74
+ }
75
+
76
+ @mixin list-compact {
77
+ @include list-stack(var(--spacing-compact-sm));
78
+ }
79
+
80
+ // =====================================================================
81
+ // COMPACT TYPOGRAPHY
82
+ // =====================================================================
83
+
84
+ @mixin heading-compact($level: 5) {
85
+ font-size: var(--text-base);
86
+ font-weight: var(--font-semibold);
87
+ line-height: var(--leading-tight);
88
+ color: var(--foreground);
89
+ margin: 0;
90
+ }
91
+
92
+ @mixin body-compact {
93
+ font-size: var(--text-sm);
94
+ font-weight: var(--font-normal);
95
+ line-height: var(--leading-snug);
96
+ color: var(--foreground);
97
+ margin: 0;
98
+ }
99
+
100
+ @mixin caption-compact {
101
+ font-size: 0.6rem;
102
+ font-weight: var(--font-medium);
103
+ line-height: var(--leading-tight);
104
+ color: var(--muted-foreground);
105
+ margin: 0;
106
+ }
107
+
108
+ @mixin label-compact {
109
+ font-size: 0.6rem;
110
+ font-weight: var(--font-semibold);
111
+ text-transform: uppercase;
112
+ letter-spacing: 0.04em;
113
+ color: var(--muted-foreground);
114
+ line-height: 1.2;
115
+ }
116
+
117
+ // =====================================================================
118
+ // COMPACT BADGES & INDICATORS
119
+ // =====================================================================
120
+
121
+ @mixin badge-compact($variant: "default") {
122
+ @include components.badge-modern($variant);
123
+ font-size: 0.55rem;
124
+ padding: 1px 4px;
125
+ gap: 2px;
126
+ }
127
+
128
+ // =====================================================================
129
+ // COMPACT EMPTY STATES
130
+ // =====================================================================
131
+
132
+ @mixin empty-state-compact {
133
+ display: flex;
134
+ flex-direction: column;
135
+ align-items: center;
136
+ justify-content: center;
137
+ gap: var(--spacing-compact-sm);
138
+ padding: var(--spacing-lg);
139
+ text-align: center;
140
+
141
+ .empty-icon {
142
+ font-size: 36px;
143
+ opacity: 0.25;
144
+ }
145
+
146
+ .empty-text {
147
+ font-size: var(--text-sm);
148
+ color: var(--muted-foreground);
149
+ margin: 0;
150
+ }
151
+ }
152
+
153
+ // =====================================================================
154
+ // UTILITY: Apply Compact Mode to Section
155
+ // =====================================================================
156
+
157
+ @mixin apply-compact-mode {
158
+ // Reduce all spacing
159
+ gap: var(--spacing-compact-md);
160
+
161
+ // Reduce padding on cards
162
+ .card,
163
+ [class*="-card"],
164
+ [class$="-card"] {
165
+ padding: var(--spacing-compact-base) var(--spacing-compact-md);
166
+ gap: var(--spacing-compact-sm);
167
+ }
168
+
169
+ // Reduce grid gaps
170
+ [class*="-grid"],
171
+ [class$="-grid"] {
172
+ gap: var(--spacing-compact-md);
173
+ }
174
+
175
+ // Reduce list gaps
176
+ [class*="-list"],
177
+ [class$="-list"] {
178
+ gap: var(--spacing-compact-sm);
179
+ }
180
+ }