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,331 @@
1
+ // =====================================================================
2
+ // SECTION ANIMATIONS - Unified Animation System
3
+ // =====================================================================
4
+ //
5
+ // Consolidated animation system for all sections.
6
+ // All hover effects use shadow/color changes only (no transforms).
7
+ // Easy to maintain and consistent across all sections.
8
+ //
9
+ // =====================================================================
10
+
11
+ @use "design-tokens" as *;
12
+
13
+ // =====================================================================
14
+ // STANDARD CARD HOVER EFFECT
15
+ // =====================================================================
16
+ //
17
+ // Primary hover effect for section cards.
18
+ // Uses shadow and color transitions only (no transforms).
19
+ //
20
+
21
+ @mixin section-card-hover {
22
+ transition:
23
+ box-shadow var(--duration-base) var(--ease-out),
24
+ background var(--duration-base) var(--ease-out),
25
+ border-color var(--duration-base) var(--ease-out);
26
+
27
+ &:hover {
28
+ box-shadow: var(--shadow-lg);
29
+ background: var(--osi-section-item-background-hover);
30
+ border-color: var(--osi-section-item-border-hover);
31
+ }
32
+
33
+ &:focus-visible {
34
+ outline: 2px solid var(--accent);
35
+ outline-offset: 2px;
36
+ box-shadow:
37
+ var(--shadow-lg),
38
+ 0 0 0 4px rgba(var(--accent-rgb, 255, 121, 0), 0.1);
39
+ }
40
+
41
+ @media (prefers-reduced-motion: reduce) {
42
+ transition: none;
43
+
44
+ &:hover {
45
+ box-shadow: var(--shadow-md);
46
+ }
47
+ }
48
+ }
49
+
50
+ // =====================================================================
51
+ // ELEVATED CARD HOVER (Stronger Shadow)
52
+ // =====================================================================
53
+ //
54
+ // For cards that need more prominent hover feedback.
55
+ //
56
+
57
+ @mixin section-card-hover-elevated {
58
+ transition:
59
+ box-shadow var(--duration-slow) var(--ease-out),
60
+ background var(--duration-slow) var(--ease-out),
61
+ border-color var(--duration-slow) var(--ease-out);
62
+
63
+ &:hover {
64
+ box-shadow: var(--shadow-xl);
65
+ background: var(--osi-section-item-background-hover);
66
+ border-color: var(--osi-section-item-border-hover);
67
+ }
68
+
69
+ @media (prefers-reduced-motion: reduce) {
70
+ transition: none;
71
+ }
72
+ }
73
+
74
+ // =====================================================================
75
+ // SUBTLE CARD HOVER (Lighter Shadow)
76
+ // =====================================================================
77
+ //
78
+ // For cards that need minimal hover feedback.
79
+ //
80
+
81
+ @mixin section-card-hover-subtle {
82
+ transition:
83
+ box-shadow var(--duration-base) var(--ease-out),
84
+ background var(--duration-base) var(--ease-out);
85
+
86
+ &:hover {
87
+ box-shadow: var(--shadow-md);
88
+ background: var(--osi-section-item-background-hover);
89
+ }
90
+
91
+ @media (prefers-reduced-motion: reduce) {
92
+ transition: none;
93
+ }
94
+ }
95
+
96
+ // =====================================================================
97
+ // LIST ITEM HOVER
98
+ // =====================================================================
99
+ //
100
+ // For list items - background and color changes only.
101
+ //
102
+
103
+ @mixin section-list-item-hover {
104
+ transition:
105
+ background var(--duration-base) var(--ease-out),
106
+ color var(--duration-base) var(--ease-out),
107
+ border-color var(--duration-base) var(--ease-out);
108
+
109
+ &:hover {
110
+ background: var(--surface-raised);
111
+ color: var(--foreground);
112
+ border-color: var(--border-strong);
113
+ }
114
+
115
+ @media (prefers-reduced-motion: reduce) {
116
+ transition: none;
117
+ }
118
+ }
119
+
120
+ // =====================================================================
121
+ // INTERACTIVE SURFACE HOVER
122
+ // =====================================================================
123
+ //
124
+ // For clickable surfaces - color transitions only.
125
+ //
126
+
127
+ @mixin section-interactive-hover {
128
+ transition:
129
+ background var(--duration-base) var(--ease-out),
130
+ color var(--duration-base) var(--ease-out),
131
+ border-color var(--duration-base) var(--ease-out);
132
+
133
+ &:hover {
134
+ background: color-mix(in srgb, var(--osi-section-item-background) 90%, var(--foreground) 10%);
135
+ color: var(--accent);
136
+ }
137
+
138
+ &:active {
139
+ background: color-mix(in srgb, var(--osi-section-item-background) 85%, var(--foreground) 15%);
140
+ }
141
+
142
+ @media (prefers-reduced-motion: reduce) {
143
+ transition: none;
144
+ }
145
+ }
146
+
147
+ // =====================================================================
148
+ // GLOW HOVER EFFECT
149
+ // =====================================================================
150
+ //
151
+ // Adds a subtle glow effect on hover using box-shadow.
152
+ //
153
+
154
+ @mixin section-glow-hover {
155
+ transition:
156
+ box-shadow var(--duration-slow) var(--ease-out),
157
+ border-color var(--duration-slow) var(--ease-out);
158
+
159
+ &:hover {
160
+ box-shadow:
161
+ var(--shadow-lg),
162
+ 0 0 20px rgba(var(--accent-rgb, 255, 121, 0), 0.2);
163
+ border-color: var(--accent);
164
+ }
165
+
166
+ @media (prefers-reduced-motion: reduce) {
167
+ transition: none;
168
+ }
169
+ }
170
+
171
+ // =====================================================================
172
+ // ACCENT LINE HOVER
173
+ // =====================================================================
174
+ //
175
+ // Shows an accent line on hover (top border effect).
176
+ //
177
+
178
+ @mixin section-accent-line-hover {
179
+ position: relative;
180
+
181
+ &::before {
182
+ content: "";
183
+ position: absolute;
184
+ top: 0;
185
+ left: 0;
186
+ right: 0;
187
+ height: 2px;
188
+ background: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
189
+ opacity: 0;
190
+ transition: opacity var(--duration-base) var(--ease-out);
191
+ border-radius: var(--osi-section-item-border-radius) var(--osi-section-item-border-radius) 0 0;
192
+ }
193
+
194
+ &:hover::before {
195
+ opacity: 0.8;
196
+ }
197
+
198
+ @media (prefers-reduced-motion: reduce) {
199
+ &::before {
200
+ display: none;
201
+ }
202
+ }
203
+ }
204
+
205
+ // =====================================================================
206
+ // ENTRANCE ANIMATIONS
207
+ // =====================================================================
208
+ //
209
+ // Keyframe animations for section/item entrance.
210
+ //
211
+
212
+ @keyframes section-item-stream {
213
+ 0% {
214
+ opacity: 0;
215
+ }
216
+ 100% {
217
+ opacity: 1;
218
+ }
219
+ }
220
+
221
+ @keyframes section-fade-in {
222
+ from {
223
+ opacity: 0;
224
+ }
225
+ to {
226
+ opacity: 1;
227
+ }
228
+ }
229
+
230
+ @keyframes section-fade-in-up {
231
+ from {
232
+ opacity: 0;
233
+ }
234
+ to {
235
+ opacity: 1;
236
+ }
237
+ }
238
+
239
+ // =====================================================================
240
+ // STAGGER ANIMATION MIXINS
241
+ // =====================================================================
242
+ //
243
+ // For animating lists of items with staggered delays.
244
+ //
245
+
246
+ @mixin section-item-animation {
247
+ &.section-item-streaming {
248
+ animation: section-item-stream var(--duration-base) var(--ease-out) forwards;
249
+ }
250
+
251
+ &.section-item-entered {
252
+ animation: none;
253
+ }
254
+
255
+ @for $i from 0 through 15 {
256
+ &.section-item-stagger-#{$i} {
257
+ animation-delay: calc(#{$i} * 30ms);
258
+ }
259
+ }
260
+
261
+ @media (prefers-reduced-motion: reduce) {
262
+ animation: none !important;
263
+ }
264
+ }
265
+
266
+ @mixin legacy-item-animation {
267
+ &.item-streaming {
268
+ animation: section-item-stream var(--duration-base) var(--ease-out) forwards;
269
+ }
270
+
271
+ &.item-entered {
272
+ animation: none;
273
+ }
274
+
275
+ @for $i from 0 through 15 {
276
+ &.item-stagger-#{$i} {
277
+ animation-delay: calc(#{$i} * 30ms);
278
+ }
279
+ }
280
+
281
+ @media (prefers-reduced-motion: reduce) {
282
+ animation: none !important;
283
+ }
284
+ }
285
+
286
+ @mixin legacy-field-animation {
287
+ &.field-streaming {
288
+ animation: section-item-stream var(--duration-base) var(--ease-out) forwards;
289
+ }
290
+
291
+ &.field-entered {
292
+ animation: none;
293
+ }
294
+
295
+ @for $i from 0 through 15 {
296
+ &.field-stagger-#{$i} {
297
+ animation-delay: calc(#{$i} * 30ms);
298
+ }
299
+ }
300
+
301
+ @media (prefers-reduced-motion: reduce) {
302
+ animation: none !important;
303
+ }
304
+ }
305
+
306
+ // =====================================================================
307
+ // REDUCED MOTION SUPPORT
308
+ // =====================================================================
309
+ //
310
+ // Global reduced motion rules for all section animations.
311
+ //
312
+
313
+ @media (prefers-reduced-motion: reduce) {
314
+ .unified-card,
315
+ .section-card,
316
+ [class*="__card"],
317
+ [class*="-card"],
318
+ [class*="__item"],
319
+ [class*="-item"],
320
+ .metric-card,
321
+ .list-item,
322
+ .analytics-card {
323
+ transition: none !important;
324
+ animation: none !important;
325
+
326
+ &:hover {
327
+ transform: none !important;
328
+ }
329
+ }
330
+ }
331
+
@@ -0,0 +1,337 @@
1
+ /* Base AI section container styling shared across card sections */
2
+ /* =========================================================== */
3
+ /* Consistent spacing across ALL sections - GLOBALLY ENFORCED */
4
+ @import "design-system";
5
+ @import "../../core/color-helpers";
6
+
7
+ .ai-section {
8
+ --section-accent: var(--osi-section-accent);
9
+ --section-border-hover: var(--osi-section-border-hover);
10
+ --section-background: var(--osi-section-background);
11
+ --section-background-hover: var(--osi-section-background-hover);
12
+ --section-backdrop-filter: var(--osi-section-backdrop-filter);
13
+ --section-spacing-bottom: var(--osi-section-spacing-bottom);
14
+ --section-glow-background: var(--osi-section-glow-background);
15
+ --section-glow-opacity-hover: var(--osi-section-glow-opacity-hover);
16
+ --section-title-underline-length: var(--osi-section-title-underline-length);
17
+ --section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);
18
+ --section-title-underline-height: var(--osi-section-title-underline-height);
19
+ --section-title-underline-offset: var(--osi-section-title-underline-offset);
20
+ --section-title-hover-color: var(--osi-section-title-hover-color);
21
+ height: 100% !important;
22
+ margin-bottom: var(--section-spacing-bottom) !important;
23
+ -webkit-font-smoothing: antialiased !important;
24
+ -moz-osx-font-smoothing: grayscale !important;
25
+
26
+ /* Performance optimization: CSS containment (no paint to avoid clipping shadows/glow) */
27
+ contain: layout style;
28
+
29
+ * {
30
+ -webkit-font-smoothing: antialiased !important;
31
+ -moz-osx-font-smoothing: grayscale !important;
32
+ }
33
+
34
+ &:not(.masonry-item .ai-section) {
35
+ @include section-wrapper;
36
+ }
37
+
38
+ .masonry-item & {
39
+ display: flex !important;
40
+ flex-direction: column !important;
41
+ gap: var(--osi-section-gap) !important;
42
+ }
43
+ }
44
+
45
+ .ai-section--main {
46
+ --section-background: var(--osi-section-background-main);
47
+ --section-background-hover: var(--osi-section-background-main-hover);
48
+ }
49
+
50
+ .ai-section--contrast {
51
+ --section-background: var(--osi-section-background-contrast);
52
+ --section-background-hover: var(--osi-section-background-contrast-hover);
53
+ }
54
+
55
+ .ai-section__header {
56
+ @include section-header(column, var(--osi-section-header-gap));
57
+ flex-direction: column !important;
58
+ align-items: flex-start !important;
59
+ justify-content: flex-start !important;
60
+ padding: 0 0 var(--osi-section-header-padding-bottom) 0 !important;
61
+ border-bottom: none !important;
62
+ background: transparent !important;
63
+ margin: 0 !important;
64
+ flex-wrap: wrap !important;
65
+ gap: var(--osi-section-header-gap) !important;
66
+ text-align: left !important;
67
+ }
68
+
69
+ .ai-section__title {
70
+ @include section-heading-text;
71
+ font-size: var(--osi-section-title-font-size) !important;
72
+ font-weight: var(--osi-section-title-font-weight) !important;
73
+ letter-spacing: var(--osi-section-title-letter-spacing) !important;
74
+ line-height: var(--osi-section-title-line-height) !important;
75
+ color: var(--osi-section-title-color) !important;
76
+ opacity: 1 !important;
77
+ overflow: hidden !important;
78
+ text-overflow: ellipsis !important;
79
+ white-space: nowrap !important;
80
+ position: relative !important;
81
+ transition: var(--osi-section-title-transition) !important;
82
+ padding: 0 !important;
83
+ margin: 0 0 var(--osi-section-title-margin-bottom) 0 !important;
84
+ text-align: left !important;
85
+ font-family: inherit !important;
86
+ border: none !important;
87
+
88
+ &::before {
89
+ content: "" !important;
90
+ position: absolute !important;
91
+ left: 0 !important;
92
+ bottom: var(--osi-section-title-underline-offset) !important;
93
+ width: var(--osi-section-title-underline-length) !important;
94
+ height: var(--osi-section-title-underline-height) !important;
95
+ background: var(--osi-section-title-underline-color) !important;
96
+ border-radius: var(--radius-xs) !important;
97
+ transition:
98
+ width 0.22s ease,
99
+ opacity 0.22s ease !important;
100
+ transform-origin: left !important;
101
+ opacity: 0.6 !important;
102
+ }
103
+
104
+ &:hover {
105
+ color: var(--osi-section-title-color) !important;
106
+
107
+ &::before {
108
+ width: var(--osi-section-title-underline-hover-length) !important;
109
+ opacity: 1 !important;
110
+ }
111
+ }
112
+ }
113
+
114
+ .ai-section__icon {
115
+ display: none !important;
116
+ width: var(--icon-size-section) !important;
117
+ height: var(--icon-size-section) !important;
118
+ }
119
+
120
+ .ai-section__details {
121
+ display: flex !important;
122
+ flex-direction: column !important;
123
+ gap: var(--osi-section-header-gap) !important;
124
+ align-items: flex-start !important;
125
+ text-align: left !important;
126
+ }
127
+
128
+ .ai-section__description {
129
+ @include section-description-text;
130
+ color: var(--osi-section-description-color) !important;
131
+ letter-spacing: 0.01em !important;
132
+ line-height: 1.2 !important;
133
+ font-weight: 400 !important;
134
+ overflow: hidden !important;
135
+ text-overflow: ellipsis !important;
136
+ display: -webkit-box !important;
137
+ -webkit-line-clamp: 2 !important;
138
+ -webkit-box-orient: vertical !important;
139
+ margin-top: 0 !important;
140
+ padding-top: 0 !important;
141
+ text-align: left !important;
142
+ transition: var(--osi-section-description-transition) !important;
143
+ font-family: inherit !important;
144
+ }
145
+
146
+ .ai-section:hover .ai-section__description {
147
+ color: var(--osi-section-description-color-hover) !important;
148
+ }
149
+
150
+ .ai-section__badge {
151
+ @include standard-badge;
152
+ display: none !important;
153
+ padding: var(--tag-padding-y-sm) var(--tag-padding-x) !important;
154
+ border-radius: var(--radius-sm) !important;
155
+ }
156
+
157
+ /* Show badge for sections that need it */
158
+ .ai-section--contact-card .ai-section__badge,
159
+ .ai-section--solutions .ai-section__badge,
160
+ .ai-section--event .ai-section__badge,
161
+ .ai-section--chart .ai-section__badge,
162
+ .ai-section--financials .ai-section__badge {
163
+ display: none !important;
164
+ align-items: center !important;
165
+ padding: var(--osi-section-badge-padding) !important;
166
+ background: var(--osi-section-badge-bg) !important;
167
+ color: var(--osi-section-badge-color) !important;
168
+ border: none !important;
169
+ box-shadow: none !important;
170
+ border-radius: var(--osi-section-border-radius) !important;
171
+ font-size: var(--card-meta-font-size, 0.6rem) !important;
172
+ font-weight: var(--card-meta-font-weight, 500) !important;
173
+ transition:
174
+ opacity 0.2s ease,
175
+ background 0.2s ease !important;
176
+ line-height: 1.2 !important;
177
+ }
178
+
179
+ .ai-section:hover .ai-section__badge {
180
+ opacity: 1 !important;
181
+ background: var(--osi-section-badge-bg-hover) !important;
182
+ }
183
+
184
+ .ai-section__body {
185
+ @include section-body(var(--osi-section-gap-internal));
186
+ padding: 0 !important;
187
+ margin: 0 !important;
188
+ }
189
+
190
+ /* Consistent empty state styling for all sections */
191
+ .ai-section .section-empty {
192
+ display: flex !important;
193
+ flex-direction: column !important;
194
+ align-items: center !important;
195
+ justify-content: center !important;
196
+ padding: var(--osi-section-padding) !important;
197
+ text-align: center !important;
198
+ color: var(--muted-foreground) !important;
199
+ min-height: auto !important;
200
+ border-radius: var(--radius-md) !important;
201
+ background: var(--osi-section-empty-bg) !important;
202
+ border: var(--osi-section-empty-border) !important;
203
+ transition:
204
+ opacity 0.2s ease,
205
+ background 0.2s ease !important;
206
+
207
+ lucide-icon {
208
+ margin-bottom: var(--osi-section-gap) !important;
209
+ opacity: var(--osi-section-empty-icon-opacity) !important;
210
+ color: var(--accent) !important;
211
+ transition: all 0.2s ease !important;
212
+ }
213
+
214
+ p {
215
+ font-size: var(--font-section-description, 0.85rem) !important;
216
+ margin: 0 !important;
217
+ font-weight: 500 !important;
218
+ font-family: inherit !important;
219
+ }
220
+
221
+ &:hover {
222
+ background: var(--osi-section-empty-bg-hover) !important;
223
+ border-color: var(--osi-section-empty-border-hover) !important;
224
+
225
+ lucide-icon {
226
+ opacity: var(--osi-section-empty-icon-opacity-hover) !important;
227
+ }
228
+ }
229
+ }
230
+
231
+ /* Section type differentiation - subtle visual identities */
232
+ .ai-section--info {
233
+ --section-accent: var(--osi-section-accent-info);
234
+ }
235
+
236
+ .ai-section--analytics {
237
+ --section-accent: var(--osi-section-accent-analytics);
238
+ }
239
+
240
+ .ai-section--financials {
241
+ --section-accent: var(--osi-section-accent-financials);
242
+ }
243
+
244
+ .ai-section--map {
245
+ --section-accent: var(--osi-section-accent-map);
246
+ }
247
+
248
+ .ai-section--network-card {
249
+ --section-accent: var(--osi-section-accent-network);
250
+ }
251
+
252
+ .ai-section--contact-card {
253
+ --section-accent: var(--osi-section-accent-contact);
254
+ }
255
+
256
+ .ai-section--product {
257
+ --section-accent: var(--osi-section-accent-product);
258
+ }
259
+
260
+ .ai-section--solutions {
261
+ --section-accent: var(--osi-section-accent-solutions);
262
+ }
263
+
264
+ .ai-section--overview {
265
+ --section-accent: var(--osi-section-accent-overview);
266
+ }
267
+
268
+ .ai-section--list,
269
+ .ai-section--info-list {
270
+ --section-accent: var(--osi-section-accent-list);
271
+ }
272
+
273
+ .ai-section--event {
274
+ --section-accent: var(--osi-section-accent-event);
275
+ }
276
+
277
+ .ai-section--chart {
278
+ --section-accent: var(--osi-section-accent-chart);
279
+ }
280
+
281
+ .ai-section--text-reference {
282
+ --section-accent: var(--osi-section-accent-reference);
283
+ }
284
+
285
+ .ai-section--quotation {
286
+ --section-accent: var(--osi-section-accent-quotation);
287
+ }
288
+
289
+ /* Fullscreen mode - consistent padding using main variables */
290
+ .ai-card-surface--fullscreen {
291
+ .ai-section {
292
+ --section-padding: var(--osi-section-padding);
293
+ --section-spacing-bottom: var(--osi-section-spacing-bottom);
294
+ --section-gap: var(--osi-section-gap);
295
+ --section-gap-internal: var(--osi-section-gap-internal);
296
+ --section-title-underline-length: var(--osi-section-title-underline-length);
297
+ --section-title-underline-hover-length: var(--osi-section-title-underline-hover-length);
298
+ --section-title-underline-height: var(--osi-section-title-underline-height);
299
+ --section-title-underline-offset: var(--osi-section-title-underline-offset);
300
+ --section-box-shadow: none !important;
301
+ --section-box-shadow-hover: none !important;
302
+ }
303
+
304
+ .masonry-item {
305
+ box-shadow: var(--osi-section-shadow-fullscreen) !important;
306
+
307
+ &:hover {
308
+ box-shadow: var(--osi-section-shadow-fullscreen) !important;
309
+ }
310
+ }
311
+
312
+ .ai-section__header {
313
+ padding: 0 0 var(--osi-section-header-padding-bottom) 0 !important;
314
+ gap: var(--osi-section-header-gap) !important;
315
+ }
316
+
317
+ .ai-section__title {
318
+ font-size: var(--card-title-font-size, 0.95rem) !important;
319
+ }
320
+
321
+ .ai-section__body {
322
+ gap: var(--osi-section-gap-internal) !important;
323
+ }
324
+
325
+ .ai-section__description {
326
+ font-size: var(--card-meta-font-size, 0.6rem) !important;
327
+ margin-top: 0 !important;
328
+ padding-top: 0 !important;
329
+ }
330
+ }
331
+
332
+ /* Theme overrides are handled automatically by theme system */
333
+ /* No hardcoded colors needed - all sections use theme variables */
334
+ /* Variables adapt based on theme selection (night/day/auto) */
335
+
336
+ /* Theme system handles all light/dark variations automatically */
337
+ /* All colors adapt through CSS variables defined in tokens/_master.scss */
@@ -0,0 +1,30 @@
1
+ // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
2
+ // Generated from section-registry.json
3
+ // Run: npm run generate:from-registry
4
+ //
5
+ // Imports section SCSS files from their section folders.
6
+ // Each section can inherit from design-system and add custom styles.
7
+
8
+ // Section type styles - imported from section folders
9
+ @import "../../../components/sections/analytics-section/analytics-section.scss"; // analytics
10
+ @import "../../../components/sections/brand-colors-section/brand-colors-section.scss"; // brand-colors
11
+ @import "../../../components/sections/chart-section/chart-section.scss"; // chart
12
+ @import "../../../components/sections/contact-card-section/contact-card-section.scss"; // contact-card
13
+ @import "../../../components/sections/event-section/event-section.scss"; // event
14
+ @import "../../../components/sections/fallback-section/fallback-section.scss"; // fallback
15
+ @import "../../../components/sections/faq-section/faq-section.scss"; // faq
16
+ @import "../../../components/sections/financials-section/financials-section.scss"; // financials
17
+ @import "../../../components/sections/gallery-section/gallery-section.scss"; // gallery
18
+ @import "../../../components/sections/info-section/info-section.scss"; // info
19
+ @import "../../../components/sections/list-section/list-section.scss"; // list
20
+ @import "../../../components/sections/map-section/map-section.scss"; // map
21
+ @import "../../../components/sections/network-card-section/network-card-section.scss"; // network-card
22
+ @import "../../../components/sections/news-section/news-section.scss"; // news
23
+ @import "../../../components/sections/overview-section/overview-section.scss"; // overview
24
+ @import "../../../components/sections/product-section/product-section.scss"; // product
25
+ @import "../../../components/sections/quotation-section/quotation-section.scss"; // quotation
26
+ @import "../../../components/sections/social-media-section/social-media-section.scss"; // social-media
27
+ @import "../../../components/sections/solutions-section/solutions-section.scss"; // solutions
28
+ @import "../../../components/sections/text-reference-section/text-reference-section.scss"; // text-reference
29
+ @import "../../../components/sections/timeline-section/timeline-section.scss"; // timeline
30
+ @import "../../../components/sections/video-section/video-section.scss"; // video