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,68 +0,0 @@
1
- // ============================================
2
- // ALL COMPONENTS BUNDLE
3
- // ============================================
4
- //
5
- // Complete bundle including all OSI Cards styles.
6
- // Use this for simple integration when bundle size is not a concern.
7
- //
8
- // Usage in Shadow DOM component:
9
- // @use 'osi-cards-lib/styles/bundles/all';
10
- //
11
- // ============================================
12
-
13
- // 1. Master tokens (single source of truth)
14
- @use "../tokens/master" as *;
15
-
16
- // 2. Shadow DOM reset (full isolation)
17
- @use "../reset/shadow-reset";
18
-
19
- // 3. Generate CSS custom properties
20
- :host {
21
- @include osi-theme-base("integration", true);
22
- @include osi-tokens("integration", true);
23
- }
24
-
25
- :host([data-theme="night"]),
26
- :host-context([data-theme="night"]) {
27
- @include osi-theme-dark("integration", true);
28
- }
29
-
30
- :host([data-theme="day"]),
31
- :host-context([data-theme="day"]) {
32
- @include osi-theme-light("integration", true);
33
- }
34
-
35
- // 4. Core styles
36
- @import "../core/mixins";
37
- @import "../core/surface-layers";
38
- @import "../core/utilities";
39
- @import "../core/animations";
40
-
41
- // 5. Layout styles
42
- @import "../layout/tilt";
43
- @import "../layout/masonry";
44
-
45
- // 6. Component styles
46
- @import "../components/cards/ai-card";
47
-
48
- // 7. Section styles (consolidated import)
49
- @import "../components/sections/sections-all";
50
-
51
- // 8. Accessibility support
52
- @media (prefers-reduced-motion: reduce) {
53
- :host {
54
- @include osi-tokens-reduced-motion();
55
- }
56
- }
57
-
58
- @media (prefers-contrast: high) {
59
- :host {
60
- @include osi-tokens-high-contrast();
61
- }
62
- }
63
-
64
- @media (forced-colors: active) {
65
- :host {
66
- @include osi-tokens-forced-colors();
67
- }
68
- }
@@ -1,60 +0,0 @@
1
- // ============================================
2
- // BASE BUNDLE
3
- // ============================================
4
- //
5
- // Shared foundation for all component bundles.
6
- // Contains tokens, reset, and core styles without section-specific code.
7
- //
8
- // Usage: Import in individual section bundles
9
- // @use 'base';
10
- //
11
- // ============================================
12
-
13
- // 1. Master tokens
14
- @use "../tokens/master" as *;
15
-
16
- // 2. Shadow DOM reset
17
- @use "../reset/shadow-reset";
18
-
19
- // 3. Generate CSS custom properties
20
- :host {
21
- @include osi-theme-base("integration", true);
22
- @include osi-tokens("integration", true);
23
- }
24
-
25
- :host([data-theme="night"]),
26
- :host-context([data-theme="night"]) {
27
- @include osi-theme-dark("integration", true);
28
- }
29
-
30
- :host([data-theme="day"]),
31
- :host-context([data-theme="day"]) {
32
- @include osi-theme-light("integration", true);
33
- }
34
-
35
- // 4. Core styles
36
- @import "../core/mixins";
37
- @import "../core/utilities";
38
- @import "../core/animations";
39
-
40
- // 5. Section foundation (consolidated styles)
41
- @import "../components/sections/sections-all";
42
-
43
- // 6. Accessibility
44
- @media (prefers-reduced-motion: reduce) {
45
- :host {
46
- @include osi-tokens-reduced-motion();
47
- }
48
- }
49
-
50
- @media (prefers-contrast: high) {
51
- :host {
52
- @include osi-tokens-high-contrast();
53
- }
54
- }
55
-
56
- @media (forced-colors: active) {
57
- :host {
58
- @include osi-tokens-forced-colors();
59
- }
60
- }
@@ -1,290 +0,0 @@
1
- // ============================================
2
- // CARD SKELETON COMPONENT BUNDLE
3
- // ============================================
4
- //
5
- // Self-contained bundle for the Card Skeleton component.
6
- // Includes all styles needed to render loading skeleton states.
7
- //
8
- // Usage in Shadow DOM component:
9
- // styleUrls: ['../../styles/bundles/_card-skeleton.scss']
10
- //
11
- // ============================================
12
-
13
- // 1. Master tokens (single source of truth)
14
- @use "../tokens/master" as *;
15
-
16
- // 2. Shadow DOM reset (full isolation)
17
- @use "../reset/shadow-reset";
18
-
19
- // 3. Generate CSS custom properties
20
- :host {
21
- @include osi-theme-base("integration", true);
22
- @include osi-tokens("integration", true);
23
-
24
- display: block;
25
- width: 100%;
26
- }
27
-
28
- :host([data-theme="night"]),
29
- :host-context([data-theme="night"]) {
30
- @include osi-theme-dark("integration", true);
31
- }
32
-
33
- :host([data-theme="day"]),
34
- :host-context([data-theme="day"]) {
35
- @include osi-theme-light("integration", true);
36
- }
37
-
38
- // ============================================
39
- // SKELETON KEYFRAME ANIMATIONS
40
- // ============================================
41
-
42
- @keyframes shimmerWave {
43
- 0% {
44
- background-position: -200% 0;
45
- }
46
- 100% {
47
- background-position: 200% 0;
48
- }
49
- }
50
-
51
- @keyframes skeleton-fade-in {
52
- from {
53
- opacity: 0;
54
- transform: translate3d(0, 10px, 0);
55
- }
56
- to {
57
- opacity: 1;
58
- transform: translate3d(0, 0, 0);
59
- }
60
- }
61
-
62
- @keyframes skeletonPulse {
63
- 0%,
64
- 100% {
65
- opacity: 0.6;
66
- }
67
- 50% {
68
- opacity: 1;
69
- }
70
- }
71
-
72
- // ============================================
73
- // CARD SKELETON STYLES
74
- // ============================================
75
-
76
- .card-skeleton {
77
- width: 100%;
78
- min-height: 400px;
79
- background: var(--card-background, var(--background, #ffffff));
80
- border: 1px solid var(--border, rgba(200, 200, 200, 0.5));
81
- border-radius: var(--card-border-radius, 1rem);
82
- padding: var(--card-main-padding, 1.5rem);
83
- display: flex;
84
- flex-direction: column;
85
- gap: 1.5rem;
86
- position: relative;
87
- overflow: hidden;
88
- }
89
-
90
- .card-skeleton--fullscreen {
91
- min-height: 100%;
92
- border-radius: 0;
93
- }
94
-
95
- .card-skeleton-header {
96
- padding-bottom: 1rem;
97
- border-bottom: 1px solid var(--border, rgba(200, 200, 200, 0.5));
98
- }
99
-
100
- .skeleton-title {
101
- font-size: 1.5rem;
102
- font-weight: 600;
103
- color: var(--foreground, #1c1c1f);
104
- min-height: 2rem;
105
- display: flex;
106
- align-items: center;
107
- }
108
-
109
- .skeleton-title-placeholder {
110
- width: 60%;
111
- height: 2rem;
112
- background: linear-gradient(
113
- 90deg,
114
- color-mix(in srgb, var(--muted, #f4f4f6) 100%, transparent) 0%,
115
- color-mix(in srgb, var(--muted-foreground, #555861) 100%, transparent) 20%,
116
- color-mix(in srgb, var(--color-brand, #ff7900) 15%, transparent) 50%,
117
- color-mix(in srgb, var(--muted, #f4f4f6) 100%, transparent) 100%
118
- );
119
- background-size: 200% 100%;
120
- border-radius: 0.5rem;
121
- animation: shimmerWave 1.5s ease-in-out infinite;
122
- position: relative;
123
- overflow: hidden;
124
- box-shadow: 0 2px 4px color-mix(in srgb, var(--foreground, #1c1c1f) 5%, transparent);
125
- }
126
-
127
- .skeleton-title-placeholder::after {
128
- content: "";
129
- position: absolute;
130
- top: 0;
131
- left: -100%;
132
- width: 100%;
133
- height: 100%;
134
- background: linear-gradient(
135
- 90deg,
136
- transparent 0%,
137
- color-mix(in srgb, var(--color-brand, #ff7900) 20%, transparent) 50%,
138
- transparent 100%
139
- );
140
- animation: shimmerWave 1.5s ease-in-out infinite;
141
- }
142
-
143
- .card-skeleton-sections {
144
- display: flex;
145
- flex-direction: column;
146
- gap: 1.5rem;
147
- flex: 1;
148
- }
149
-
150
- .skeleton-section {
151
- opacity: 0;
152
- animation: skeleton-fade-in 0.4s ease-out forwards;
153
- padding: 1.25rem;
154
- border: 1px solid color-mix(in srgb, var(--border, rgba(200, 200, 200, 0.5)) 60%, transparent);
155
- border-radius: 0.75rem;
156
- background: linear-gradient(
157
- 135deg,
158
- var(--card-background, var(--background, #ffffff)) 0%,
159
- color-mix(
160
- in srgb,
161
- var(--card-background, var(--background, #ffffff)) 98%,
162
- var(--color-brand, #ff7900) 2%
163
- )
164
- 100%
165
- );
166
- box-shadow: 0 2px 4px color-mix(in srgb, var(--foreground, #1c1c1f) 5%, transparent);
167
- position: relative;
168
- overflow: hidden;
169
- }
170
-
171
- .skeleton-section::before {
172
- content: "";
173
- position: absolute;
174
- left: 0;
175
- top: 0;
176
- bottom: 0;
177
- width: 2px;
178
- background: linear-gradient(
179
- 180deg,
180
- var(--color-brand, #ff7900),
181
- color-mix(in srgb, var(--color-brand, #ff7900) 50%, transparent)
182
- );
183
- opacity: 0.3;
184
- }
185
-
186
- // Stagger animation delays for skeleton sections
187
- @for $i from 1 through 10 {
188
- .skeleton-section:nth-child(#{$i}) {
189
- animation-delay: #{$i * 0.1}s;
190
- }
191
- }
192
-
193
- .skeleton-section-header {
194
- margin-bottom: 0.75rem;
195
- }
196
-
197
- .skeleton-section-content {
198
- display: flex;
199
- flex-direction: column;
200
- gap: 0.5rem;
201
- }
202
-
203
- .skeleton-line {
204
- height: 1rem;
205
- background: linear-gradient(
206
- 90deg,
207
- color-mix(in srgb, var(--muted, #f4f4f6) 100%, transparent) 0%,
208
- color-mix(in srgb, var(--muted-foreground, #555861) 100%, transparent) 20%,
209
- color-mix(in srgb, var(--color-brand, #ff7900) 10%, transparent) 50%,
210
- color-mix(in srgb, var(--muted, #f4f4f6) 100%, transparent) 100%
211
- );
212
- background-size: 200% 100%;
213
- border-radius: 0.375rem;
214
- animation: shimmerWave 1.5s ease-in-out infinite;
215
- position: relative;
216
- overflow: hidden;
217
- }
218
-
219
- .skeleton-line::after {
220
- content: "";
221
- position: absolute;
222
- top: 0;
223
- left: -100%;
224
- width: 100%;
225
- height: 100%;
226
- background: linear-gradient(
227
- 90deg,
228
- transparent 0%,
229
- color-mix(in srgb, var(--color-brand, #ff7900) 15%, transparent) 50%,
230
- transparent 100%
231
- );
232
- animation: shimmerWave 1.5s ease-in-out infinite;
233
- }
234
-
235
- .skeleton-line--title {
236
- width: 40%;
237
- height: 1.25rem;
238
- }
239
-
240
- .skeleton-line:not(.skeleton-line--title) {
241
- width: 100%;
242
- }
243
-
244
- .skeleton-line:not(.skeleton-line--title):nth-child(2) {
245
- width: 80%;
246
- }
247
-
248
- .card-skeleton-empty {
249
- padding: 2rem;
250
- display: flex;
251
- align-items: center;
252
- justify-content: center;
253
- min-height: 200px;
254
- }
255
-
256
- .skeleton-line--empty {
257
- width: 60%;
258
- height: 1.5rem;
259
- }
260
-
261
- // ============================================
262
- // ACCESSIBILITY SUPPORT
263
- // ============================================
264
-
265
- @media (prefers-reduced-motion: reduce) {
266
- :host {
267
- @include osi-tokens-reduced-motion();
268
- }
269
-
270
- .skeleton-title-placeholder,
271
- .skeleton-title-placeholder::after,
272
- .skeleton-line,
273
- .skeleton-line::after,
274
- .skeleton-section {
275
- animation: none !important;
276
- opacity: 1 !important;
277
- }
278
- }
279
-
280
- @media (prefers-contrast: high) {
281
- :host {
282
- @include osi-tokens-high-contrast();
283
- }
284
- }
285
-
286
- @media (forced-colors: active) {
287
- :host {
288
- @include osi-tokens-forced-colors();
289
- }
290
- }
@@ -1,25 +0,0 @@
1
- // ============================================
2
- // BUNDLES INDEX
3
- // ============================================
4
- //
5
- // Available bundles for Shadow DOM components:
6
- //
7
- // FULL BUNDLES:
8
- // @use 'bundles/all' - Everything included
9
- // @use 'bundles/ai-card' - AI Card with all sections
10
- // @use 'bundles/sections' - All sections without card chrome
11
- //
12
- // BASE BUNDLE:
13
- // @use 'bundles/base' - Foundation only (tokens, reset, core)
14
- //
15
- // Note: Individual section bundles have been consolidated into
16
- // 'sections' bundle to reduce redundancy. Use 'base' + 'sections'
17
- // for section-specific styles.
18
- //
19
- // ============================================
20
-
21
- // Re-export all bundles
22
- @forward "all";
23
- @forward "ai-card";
24
- @forward "sections";
25
- @forward "base";
@@ -1,48 +0,0 @@
1
- // ============================================
2
- // ALL SECTIONS BUNDLE
3
- // ============================================
4
- //
5
- // Bundle containing all section styles.
6
- // Use this when you need multiple section types.
7
- //
8
- // Usage in Shadow DOM component:
9
- // @use 'osi-cards-lib/styles/bundles/sections';
10
- //
11
- // ============================================
12
-
13
- // 1. Master tokens
14
- @use "../tokens/master" as *;
15
-
16
- // 2. Shadow DOM reset
17
- @use "../reset/shadow-reset";
18
-
19
- // 3. Generate CSS custom properties
20
- :host {
21
- @include osi-theme-base("integration", true);
22
- @include osi-tokens("integration", true);
23
- }
24
-
25
- :host([data-theme="night"]),
26
- :host-context([data-theme="night"]) {
27
- @include osi-theme-dark("integration", true);
28
- }
29
-
30
- :host([data-theme="day"]),
31
- :host-context([data-theme="day"]) {
32
- @include osi-theme-light("integration", true);
33
- }
34
-
35
- // 4. Core styles
36
- @import "../core/mixins";
37
- @import "../core/utilities";
38
- @import "../core/animations";
39
-
40
- // 5. All section styles (consolidated)
41
- @import "../components/sections/sections-all";
42
-
43
- // 8. Accessibility
44
- @media (prefers-reduced-motion: reduce) {
45
- :host {
46
- @include osi-tokens-reduced-motion();
47
- }
48
- }
@@ -1,139 +0,0 @@
1
- // ============================================
2
- // TOKENS ONLY - CSS Custom Properties for Host Apps
3
- // ============================================
4
- //
5
- // This file provides ONLY the CSS custom properties (tokens) without
6
- // any component styles. Use this when you want the host app to define
7
- // the design tokens that OSI Cards components will consume.
8
- //
9
- // Include this in your host app's global styles to enable theming:
10
- //
11
- // @import 'osi-cards-lib/styles/bundles/tokens-only';
12
- //
13
- // Or import the compiled CSS:
14
- //
15
- // @import 'osi-cards-lib/styles/osi-cards-tokens.css';
16
- //
17
- // The components will read these CSS variables through Shadow DOM
18
- // (CSS custom properties pass through Shadow DOM boundaries).
19
- //
20
- // ============================================
21
-
22
- @use "../tokens/master" as *;
23
-
24
- // ============================================
25
- // ROOT-LEVEL TOKEN DEFINITIONS
26
- // ============================================
27
-
28
- // Apply to :root for global token availability
29
- :root {
30
- // Base colors
31
- @include osi-base-colors();
32
-
33
- // Status colors
34
- @include osi-status-colors();
35
-
36
- // Shadows
37
- @include osi-shadows();
38
-
39
- // Radius
40
- @include osi-radius();
41
-
42
- // Spacing
43
- @include osi-spacing();
44
-
45
- // Animation
46
- @include osi-animation();
47
-
48
- // Opacity
49
- @include osi-opacity();
50
-
51
- // Typography (demo variant for standalone apps)
52
- @include osi-typography("demo");
53
-
54
- // Card typography
55
- @include osi-card-typography("demo");
56
-
57
- // Card layout
58
- @include osi-card-layout();
59
-
60
- // Interactive states
61
- @include osi-interactive();
62
-
63
- // Default theme (light)
64
- @include osi-theme-base("demo", false);
65
- }
66
-
67
- // ============================================
68
- // THEME VARIANTS
69
- // ============================================
70
-
71
- // Dark theme
72
- :root[data-theme="night"],
73
- [data-theme="night"] {
74
- @include osi-theme-dark("demo", false);
75
- }
76
-
77
- // Light theme
78
- :root[data-theme="day"],
79
- [data-theme="day"] {
80
- @include osi-theme-light("demo", false);
81
- }
82
-
83
- // ============================================
84
- // ACCESSIBILITY OVERRIDES
85
- // ============================================
86
-
87
- // Reduced motion
88
- @media (prefers-reduced-motion: reduce) {
89
- :root {
90
- @include osi-tokens-reduced-motion();
91
- }
92
- }
93
-
94
- // High contrast
95
- @media (prefers-contrast: high) {
96
- :root {
97
- @include osi-tokens-high-contrast();
98
- }
99
- }
100
-
101
- // Forced colors (Windows High Contrast)
102
- @media (forced-colors: active) {
103
- :root {
104
- @include osi-tokens-forced-colors();
105
- }
106
- }
107
-
108
- // ============================================
109
- // INTEGRATION VARIANT
110
- // ============================================
111
-
112
- // For embedding in external apps with scoped container
113
- .osi-cards-container {
114
- // Scoped theme base
115
- @include osi-theme-base("integration", true);
116
- @include osi-tokens("integration", true);
117
-
118
- // Scoped theme variants
119
- &[data-theme="night"] {
120
- @include osi-theme-dark("integration", true);
121
- }
122
-
123
- &[data-theme="day"] {
124
- @include osi-theme-light("integration", true);
125
- }
126
-
127
- // Scoped accessibility overrides
128
- @media (prefers-reduced-motion: reduce) {
129
- @include osi-tokens-reduced-motion();
130
- }
131
-
132
- @media (prefers-contrast: high) {
133
- @include osi-tokens-high-contrast();
134
- }
135
-
136
- @media (forced-colors: active) {
137
- @include osi-tokens-forced-colors();
138
- }
139
- }