@melodicdev/components 1.4.0 → 1.5.0

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 (121) hide show
  1. package/assets/melodic-components.js +3514 -1652
  2. package/assets/melodic-components.js.map +1 -1
  3. package/assets/melodic-components.min.js +5338 -3476
  4. package/lib/components/data-display/activity-feed/activity-feed-item.styles.d.ts.map +1 -1
  5. package/lib/components/data-display/activity-feed/activity-feed-item.styles.js +79 -31
  6. package/lib/components/data-display/activity-feed/activity-feed.styles.d.ts.map +1 -1
  7. package/lib/components/data-display/activity-feed/activity-feed.styles.js +5 -1
  8. package/lib/components/data-display/avatar/avatar.styles.d.ts.map +1 -1
  9. package/lib/components/data-display/avatar/avatar.styles.js +18 -7
  10. package/lib/components/data-display/badge/badge.styles.d.ts.map +1 -1
  11. package/lib/components/data-display/badge/badge.styles.js +30 -11
  12. package/lib/components/data-display/badge-group/badge-group.styles.d.ts.map +1 -1
  13. package/lib/components/data-display/badge-group/badge-group.styles.js +29 -14
  14. package/lib/components/data-display/calendar-view/calendar-view.styles.d.ts.map +1 -1
  15. package/lib/components/data-display/calendar-view/calendar-view.styles.js +155 -89
  16. package/lib/components/data-display/data-grid/data-grid.styles.d.ts.map +1 -1
  17. package/lib/components/data-display/data-grid/data-grid.styles.js +117 -61
  18. package/lib/components/data-display/list/list-item.styles.d.ts.map +1 -1
  19. package/lib/components/data-display/list/list-item.styles.js +35 -13
  20. package/lib/components/data-display/list/list.styles.d.ts.map +1 -1
  21. package/lib/components/data-display/list/list.styles.js +5 -1
  22. package/lib/components/data-display/profile-card/profile-card.styles.d.ts.map +1 -1
  23. package/lib/components/data-display/profile-card/profile-card.styles.js +66 -28
  24. package/lib/components/data-display/stat-card/stat-card.styles.d.ts.map +1 -1
  25. package/lib/components/data-display/stat-card/stat-card.styles.js +64 -26
  26. package/lib/components/data-display/table/table.styles.d.ts.map +1 -1
  27. package/lib/components/data-display/table/table.styles.js +60 -25
  28. package/lib/components/data-display/tag/tag.styles.d.ts.map +1 -1
  29. package/lib/components/data-display/tag/tag.styles.js +62 -25
  30. package/lib/components/feedback/alert/alert.styles.d.ts.map +1 -1
  31. package/lib/components/feedback/alert/alert.styles.js +41 -17
  32. package/lib/components/feedback/progress/progress.styles.d.ts.map +1 -1
  33. package/lib/components/feedback/progress/progress.styles.js +112 -56
  34. package/lib/components/feedback/spinner/spinner.styles.d.ts.map +1 -1
  35. package/lib/components/feedback/spinner/spinner.styles.js +32 -16
  36. package/lib/components/feedback/toast/toast.styles.d.ts.map +1 -1
  37. package/lib/components/feedback/toast/toast.styles.js +69 -26
  38. package/lib/components/forms/autocomplete/autocomplete.styles.d.ts.map +1 -1
  39. package/lib/components/forms/autocomplete/autocomplete.styles.js +164 -76
  40. package/lib/components/forms/button/button.styles.d.ts.map +1 -1
  41. package/lib/components/forms/button/button.styles.js +141 -116
  42. package/lib/components/forms/button-group/button-group.styles.d.ts.map +1 -1
  43. package/lib/components/forms/button-group/button-group.styles.js +8 -2
  44. package/lib/components/forms/checkbox/checkbox.styles.d.ts.map +1 -1
  45. package/lib/components/forms/checkbox/checkbox.styles.js +75 -41
  46. package/lib/components/forms/date-picker/calendar.styles.d.ts.map +1 -1
  47. package/lib/components/forms/date-picker/calendar.styles.js +108 -47
  48. package/lib/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
  49. package/lib/components/forms/date-picker/date-picker.styles.js +96 -38
  50. package/lib/components/forms/date-time-picker/date-time-picker.styles.d.ts.map +1 -1
  51. package/lib/components/forms/date-time-picker/date-time-picker.styles.js +65 -25
  52. package/lib/components/forms/file-upload/file-upload.styles.d.ts.map +1 -1
  53. package/lib/components/forms/file-upload/file-upload.styles.js +92 -39
  54. package/lib/components/forms/form-field/form-field.styles.d.ts.map +1 -1
  55. package/lib/components/forms/form-field/form-field.styles.js +72 -29
  56. package/lib/components/forms/input/input.styles.d.ts.map +1 -1
  57. package/lib/components/forms/input/input.styles.js +81 -29
  58. package/lib/components/forms/radio/radio.styles.d.ts.map +1 -1
  59. package/lib/components/forms/radio/radio.styles.js +85 -54
  60. package/lib/components/forms/radio-card-group/radio-card-group.styles.d.ts.map +1 -1
  61. package/lib/components/forms/radio-card-group/radio-card-group.styles.js +34 -12
  62. package/lib/components/forms/radio-card-group/radio-card.styles.d.ts.map +1 -1
  63. package/lib/components/forms/radio-card-group/radio-card.styles.js +108 -47
  64. package/lib/components/forms/select/select.styles.d.ts.map +1 -1
  65. package/lib/components/forms/select/select.styles.js +152 -71
  66. package/lib/components/forms/slider/slider.styles.d.ts.map +1 -1
  67. package/lib/components/forms/slider/slider.styles.js +77 -36
  68. package/lib/components/forms/textarea/textarea.styles.d.ts.map +1 -1
  69. package/lib/components/forms/textarea/textarea.styles.js +79 -31
  70. package/lib/components/forms/time-picker/time-picker.styles.d.ts.map +1 -1
  71. package/lib/components/forms/time-picker/time-picker.styles.js +196 -91
  72. package/lib/components/forms/toggle/toggle.styles.d.ts.map +1 -1
  73. package/lib/components/forms/toggle/toggle.styles.js +84 -54
  74. package/lib/components/foundation/card/card.styles.d.ts.map +1 -1
  75. package/lib/components/foundation/card/card.styles.js +48 -17
  76. package/lib/components/foundation/divider/divider.styles.d.ts.map +1 -1
  77. package/lib/components/foundation/divider/divider.styles.js +24 -12
  78. package/lib/components/general/icon/icon.styles.d.ts.map +1 -1
  79. package/lib/components/general/icon/icon.styles.js +9 -2
  80. package/lib/components/navigation/breadcrumb/breadcrumb.styles.d.ts.map +1 -1
  81. package/lib/components/navigation/breadcrumb/breadcrumb.styles.js +4 -1
  82. package/lib/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
  83. package/lib/components/navigation/pagination/pagination.styles.js +59 -23
  84. package/lib/components/navigation/sidebar/sidebar-item.styles.d.ts.map +1 -1
  85. package/lib/components/navigation/sidebar/sidebar-item.styles.js +79 -33
  86. package/lib/components/navigation/sidebar/sidebar.styles.d.ts.map +1 -1
  87. package/lib/components/navigation/sidebar/sidebar.styles.js +154 -61
  88. package/lib/components/navigation/steps/step.styles.d.ts.map +1 -1
  89. package/lib/components/navigation/steps/step.styles.js +149 -83
  90. package/lib/components/navigation/steps/steps.styles.d.ts.map +1 -1
  91. package/lib/components/navigation/steps/steps.styles.js +169 -91
  92. package/lib/components/navigation/tabs/tab.styles.d.ts.map +1 -1
  93. package/lib/components/navigation/tabs/tab.styles.js +36 -12
  94. package/lib/components/navigation/tabs/tabs.styles.d.ts.map +1 -1
  95. package/lib/components/navigation/tabs/tabs.styles.js +126 -57
  96. package/lib/components/overlays/dialog/dialog.styles.d.ts.map +1 -1
  97. package/lib/components/overlays/dialog/dialog.styles.js +73 -33
  98. package/lib/components/overlays/drawer/drawer.styles.d.ts.map +1 -1
  99. package/lib/components/overlays/drawer/drawer.styles.js +77 -33
  100. package/lib/components/overlays/dropdown/dropdown-item.styles.d.ts.map +1 -1
  101. package/lib/components/overlays/dropdown/dropdown-item.styles.js +43 -17
  102. package/lib/components/overlays/dropdown/dropdown.styles.d.ts.map +1 -1
  103. package/lib/components/overlays/dropdown/dropdown.styles.js +30 -15
  104. package/lib/components/overlays/popover/popover.styles.d.ts.map +1 -1
  105. package/lib/components/overlays/popover/popover.styles.js +29 -14
  106. package/lib/components/overlays/tooltip/tooltip.styles.d.ts.map +1 -1
  107. package/lib/components/overlays/tooltip/tooltip.styles.js +28 -12
  108. package/lib/components/pages/auth/auth-layout.styles.d.ts +1 -1
  109. package/lib/components/pages/auth/auth-layout.styles.d.ts.map +1 -1
  110. package/lib/components/pages/auth/auth-layout.styles.js +79 -31
  111. package/lib/components/pages/dashboard/dashboard-page.styles.d.ts.map +1 -1
  112. package/lib/components/pages/dashboard/dashboard-page.styles.js +34 -12
  113. package/lib/components/sections/app-shell/app-shell.styles.d.ts.map +1 -1
  114. package/lib/components/sections/app-shell/app-shell.styles.js +54 -23
  115. package/lib/components/sections/hero/hero-section.styles.d.ts.map +1 -1
  116. package/lib/components/sections/hero/hero-section.styles.js +97 -40
  117. package/lib/components/sections/page-header/page-header.styles.d.ts.map +1 -1
  118. package/lib/components/sections/page-header/page-header.styles.js +62 -28
  119. package/lib/components/sections/page-section/page-section.styles.d.ts.map +1 -1
  120. package/lib/components/sections/page-section/page-section.styles.js +51 -21
  121. package/package.json +1 -1
@@ -3,6 +3,68 @@ export const heroSectionStyles = () => css `
3
3
  :host {
4
4
  display: block;
5
5
  width: 100%;
6
+
7
+ /* Font */
8
+ --ml-hero-font-family: var(--ml-font-sans);
9
+
10
+ /* Size: sm */
11
+ --ml-hero-sm-padding: var(--ml-space-12) var(--ml-space-6);
12
+ --ml-hero-sm-title-size: var(--ml-text-3xl);
13
+ --ml-hero-sm-description-size: var(--ml-text-base);
14
+
15
+ /* Size: md */
16
+ --ml-hero-md-padding: var(--ml-space-20) var(--ml-space-6);
17
+ --ml-hero-md-title-size: var(--ml-text-4xl);
18
+ --ml-hero-md-description-size: var(--ml-text-lg);
19
+
20
+ /* Size: lg */
21
+ --ml-hero-lg-padding: calc(var(--ml-space-20) + var(--ml-space-10)) var(--ml-space-6);
22
+ --ml-hero-lg-title-size: var(--ml-text-5xl);
23
+ --ml-hero-lg-description-size: var(--ml-text-xl);
24
+
25
+ /* Background variants */
26
+ --ml-hero-bg-subtle: var(--ml-color-surface-secondary);
27
+ --ml-hero-bg-gradient: linear-gradient(
28
+ 135deg,
29
+ var(--ml-color-primary-subtle) 0%,
30
+ var(--ml-color-surface) 50%,
31
+ var(--ml-color-success-subtle, var(--ml-color-surface-secondary)) 100%
32
+ );
33
+
34
+ /* Container */
35
+ --ml-hero-container-max-width: var(--ml-container-xl, 1280px);
36
+ --ml-hero-content-max-width: 800px;
37
+ --ml-hero-split-gap: var(--ml-space-12);
38
+
39
+ /* Eyebrow */
40
+ --ml-hero-eyebrow-margin-bottom: var(--ml-space-4);
41
+ --ml-hero-eyebrow-font-size: var(--ml-text-sm);
42
+ --ml-hero-eyebrow-font-weight: var(--ml-font-semibold);
43
+ --ml-hero-eyebrow-color: var(--ml-color-primary);
44
+ --ml-hero-eyebrow-letter-spacing: 0.05em;
45
+
46
+ /* Title */
47
+ --ml-hero-title-margin-bottom: var(--ml-space-4);
48
+ --ml-hero-title-font-weight: var(--ml-font-bold);
49
+ --ml-hero-title-color: var(--ml-color-text);
50
+ --ml-hero-title-letter-spacing: -0.025em;
51
+ --ml-hero-title-line-height: var(--ml-leading-tight);
52
+
53
+ /* Description */
54
+ --ml-hero-description-margin-bottom: var(--ml-space-8);
55
+ --ml-hero-description-color: var(--ml-color-text-secondary);
56
+ --ml-hero-description-line-height: var(--ml-leading-relaxed);
57
+ --ml-hero-description-max-width: 640px;
58
+
59
+ /* Actions */
60
+ --ml-hero-actions-gap: var(--ml-space-3);
61
+
62
+ /* Media */
63
+ --ml-hero-media-radius: var(--ml-radius-lg);
64
+ --ml-hero-media-below-margin: var(--ml-space-10);
65
+
66
+ /* Social proof */
67
+ --ml-hero-social-proof-margin: var(--ml-space-10);
6
68
  }
7
69
 
8
70
  /* ============================================
@@ -11,78 +73,73 @@ export const heroSectionStyles = () => css `
11
73
  .ml-hero {
12
74
  position: relative;
13
75
  width: 100%;
14
- font-family: var(--ml-font-sans);
76
+ font-family: var(--ml-hero-font-family);
15
77
  }
16
78
 
17
79
  /* ============================================
18
80
  SIZE VARIANTS (padding & font sizes)
19
81
  ============================================ */
20
82
  .ml-hero--sm {
21
- padding: var(--ml-space-12) var(--ml-space-6);
83
+ padding: var(--ml-hero-sm-padding);
22
84
  }
23
85
 
24
86
  .ml-hero--md {
25
- padding: var(--ml-space-20) var(--ml-space-6);
87
+ padding: var(--ml-hero-md-padding);
26
88
  }
27
89
 
28
90
  .ml-hero--lg {
29
- padding: calc(var(--ml-space-20) + var(--ml-space-10)) var(--ml-space-6);
91
+ padding: var(--ml-hero-lg-padding);
30
92
  }
31
93
 
32
94
  .ml-hero--sm .ml-hero__title,
33
95
  .ml-hero--sm ::slotted([slot="title"]) {
34
- font-size: var(--ml-text-3xl);
35
- line-height: var(--ml-leading-tight);
96
+ font-size: var(--ml-hero-sm-title-size);
97
+ line-height: var(--ml-hero-title-line-height);
36
98
  }
37
99
 
38
100
  .ml-hero--md .ml-hero__title,
39
101
  .ml-hero--md ::slotted([slot="title"]) {
40
- font-size: var(--ml-text-4xl);
41
- line-height: var(--ml-leading-tight);
102
+ font-size: var(--ml-hero-md-title-size);
103
+ line-height: var(--ml-hero-title-line-height);
42
104
  }
43
105
 
44
106
  .ml-hero--lg .ml-hero__title,
45
107
  .ml-hero--lg ::slotted([slot="title"]) {
46
- font-size: var(--ml-text-5xl);
47
- line-height: var(--ml-leading-tight);
108
+ font-size: var(--ml-hero-lg-title-size);
109
+ line-height: var(--ml-hero-title-line-height);
48
110
  }
49
111
 
50
112
  .ml-hero--sm .ml-hero__description,
51
113
  .ml-hero--sm ::slotted([slot="description"]) {
52
- font-size: var(--ml-text-base);
114
+ font-size: var(--ml-hero-sm-description-size);
53
115
  }
54
116
 
55
117
  .ml-hero--md .ml-hero__description,
56
118
  .ml-hero--md ::slotted([slot="description"]) {
57
- font-size: var(--ml-text-lg);
119
+ font-size: var(--ml-hero-md-description-size);
58
120
  }
59
121
 
60
122
  .ml-hero--lg .ml-hero__description,
61
123
  .ml-hero--lg ::slotted([slot="description"]) {
62
- font-size: var(--ml-text-xl);
124
+ font-size: var(--ml-hero-lg-description-size);
63
125
  }
64
126
 
65
127
  /* ============================================
66
128
  BACKGROUND VARIANTS
67
129
  ============================================ */
68
130
  .ml-hero--bg-subtle {
69
- background-color: var(--ml-color-surface-secondary);
131
+ background-color: var(--ml-hero-bg-subtle);
70
132
  }
71
133
 
72
134
  .ml-hero--bg-gradient {
73
- background: linear-gradient(
74
- 135deg,
75
- var(--ml-color-primary-subtle) 0%,
76
- var(--ml-color-surface) 50%,
77
- var(--ml-color-success-subtle, var(--ml-color-surface-secondary)) 100%
78
- );
135
+ background: var(--ml-hero-bg-gradient);
79
136
  }
80
137
 
81
138
  /* ============================================
82
139
  LAYOUT: CONTAINER
83
140
  ============================================ */
84
141
  .ml-hero__container {
85
- max-width: var(--ml-container-xl, 1280px);
142
+ max-width: var(--ml-hero-container-max-width);
86
143
  margin: 0 auto;
87
144
  width: 100%;
88
145
  }
@@ -101,11 +158,11 @@ export const heroSectionStyles = () => css `
101
158
  flex-direction: column;
102
159
  align-items: center;
103
160
  text-align: center;
104
- max-width: 800px;
161
+ max-width: var(--ml-hero-content-max-width);
105
162
  }
106
163
 
107
164
  .ml-hero--centered .ml-hero__media--below {
108
- margin-top: var(--ml-space-10);
165
+ margin-top: var(--ml-hero-media-below-margin);
109
166
  width: 100%;
110
167
  display: flex;
111
168
  justify-content: center;
@@ -118,7 +175,7 @@ export const heroSectionStyles = () => css `
118
175
  .ml-hero--split-reverse .ml-hero__container {
119
176
  display: grid;
120
177
  grid-template-columns: 1fr 1fr;
121
- gap: var(--ml-space-12);
178
+ gap: var(--ml-hero-split-gap);
122
179
  align-items: center;
123
180
  }
124
181
 
@@ -143,36 +200,36 @@ export const heroSectionStyles = () => css `
143
200
  /* Eyebrow */
144
201
  ::slotted([slot="eyebrow"]) {
145
202
  display: inline-block;
146
- margin-bottom: var(--ml-space-4);
147
- font-size: var(--ml-text-sm);
148
- font-weight: var(--ml-font-semibold);
149
- color: var(--ml-color-primary);
203
+ margin-bottom: var(--ml-hero-eyebrow-margin-bottom);
204
+ font-size: var(--ml-hero-eyebrow-font-size);
205
+ font-weight: var(--ml-hero-eyebrow-font-weight);
206
+ color: var(--ml-hero-eyebrow-color);
150
207
  text-transform: uppercase;
151
- letter-spacing: 0.05em;
208
+ letter-spacing: var(--ml-hero-eyebrow-letter-spacing);
152
209
  }
153
210
 
154
211
  /* Title */
155
212
  .ml-hero__title,
156
213
  ::slotted([slot="title"]) {
157
- margin: 0 0 var(--ml-space-4) 0;
158
- font-weight: var(--ml-font-bold);
159
- color: var(--ml-color-text);
160
- letter-spacing: -0.025em;
214
+ margin: 0 0 var(--ml-hero-title-margin-bottom) 0;
215
+ font-weight: var(--ml-hero-title-font-weight);
216
+ color: var(--ml-hero-title-color);
217
+ letter-spacing: var(--ml-hero-title-letter-spacing);
161
218
  }
162
219
 
163
220
  /* Description */
164
221
  .ml-hero__description,
165
222
  ::slotted([slot="description"]) {
166
- margin: 0 0 var(--ml-space-8) 0;
167
- color: var(--ml-color-text-secondary);
168
- line-height: var(--ml-leading-relaxed);
169
- max-width: 640px;
223
+ margin: 0 0 var(--ml-hero-description-margin-bottom) 0;
224
+ color: var(--ml-hero-description-color);
225
+ line-height: var(--ml-hero-description-line-height);
226
+ max-width: var(--ml-hero-description-max-width);
170
227
  }
171
228
 
172
229
  /* Actions */
173
230
  .ml-hero__actions {
174
231
  display: flex;
175
- gap: var(--ml-space-3);
232
+ gap: var(--ml-hero-actions-gap);
176
233
  flex-wrap: wrap;
177
234
  }
178
235
 
@@ -198,12 +255,12 @@ export const heroSectionStyles = () => css `
198
255
  ::slotted([slot="media"]) {
199
256
  max-width: 100%;
200
257
  height: auto;
201
- border-radius: var(--ml-radius-lg);
258
+ border-radius: var(--ml-hero-media-radius);
202
259
  }
203
260
 
204
261
  /* Social proof */
205
262
  .ml-hero__social-proof {
206
- margin-top: var(--ml-space-10);
263
+ margin-top: var(--ml-hero-social-proof-margin);
207
264
  width: 100%;
208
265
  }
209
266
 
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-header/page-header.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,iDAoK5B,CAAC"}
1
+ {"version":3,"file":"page-header.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-header/page-header.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,iDAsM5B,CAAC"}
@@ -2,29 +2,63 @@ import { css } from '@melodicdev/core';
2
2
  export const pageHeaderStyles = () => css `
3
3
  :host {
4
4
  display: block;
5
+
6
+ /* Padding */
7
+ --ml-page-header-padding: var(--ml-space-6) var(--ml-space-6) var(--ml-space-4);
8
+ --ml-page-header-compact-padding: var(--ml-space-4) var(--ml-space-6) var(--ml-space-3);
9
+ --ml-page-header-mobile-padding: var(--ml-space-4);
10
+
11
+ /* Font */
12
+ --ml-page-header-font-family: var(--ml-font-sans);
13
+
14
+ /* Border */
15
+ --ml-page-header-border-width: var(--ml-border);
16
+ --ml-page-header-border-color: var(--ml-color-border);
17
+
18
+ /* Title */
19
+ --ml-page-header-title-size: var(--ml-text-2xl);
20
+ --ml-page-header-title-weight: var(--ml-font-semibold);
21
+ --ml-page-header-title-line-height: var(--ml-leading-tight);
22
+ --ml-page-header-title-color: var(--ml-color-text);
23
+ --ml-page-header-compact-title-size: var(--ml-text-lg);
24
+
25
+ /* Description */
26
+ --ml-page-header-description-size: var(--ml-text-sm);
27
+ --ml-page-header-description-line-height: var(--ml-leading-normal);
28
+ --ml-page-header-description-color: var(--ml-color-text-secondary);
29
+
30
+ /* Spacing */
31
+ --ml-page-header-breadcrumb-margin: var(--ml-space-3);
32
+ --ml-page-header-main-gap: var(--ml-space-4);
33
+ --ml-page-header-content-gap: var(--ml-space-1);
34
+ --ml-page-header-meta-gap: var(--ml-space-2);
35
+ --ml-page-header-meta-margin: var(--ml-space-2);
36
+ --ml-page-header-actions-gap: var(--ml-space-2);
37
+ --ml-page-header-centered-actions-margin: var(--ml-space-4);
38
+ --ml-page-header-tabs-margin: var(--ml-space-4);
5
39
  }
6
40
 
7
41
  /* ============================================
8
42
  PAGE HEADER CONTAINER
9
43
  ============================================ */
10
44
  .ml-page-header {
11
- padding: var(--ml-space-6) var(--ml-space-6) var(--ml-space-4);
12
- font-family: var(--ml-font-sans);
45
+ padding: var(--ml-page-header-padding);
46
+ font-family: var(--ml-page-header-font-family);
13
47
  }
14
48
 
15
49
  .ml-page-header--divider {
16
- border-bottom: var(--ml-border) solid var(--ml-color-border);
50
+ border-bottom: var(--ml-page-header-border-width) solid var(--ml-page-header-border-color);
17
51
  }
18
52
 
19
53
  /* ============================================
20
54
  COMPACT VARIANT
21
55
  ============================================ */
22
56
  .ml-page-header--compact {
23
- padding: var(--ml-space-4) var(--ml-space-6) var(--ml-space-3);
57
+ padding: var(--ml-page-header-compact-padding);
24
58
  }
25
59
 
26
60
  .ml-page-header--compact .ml-page-header__title h1 {
27
- font-size: var(--ml-text-lg);
61
+ font-size: var(--ml-page-header-compact-title-size);
28
62
  }
29
63
 
30
64
  /* ============================================
@@ -44,7 +78,7 @@ export const pageHeaderStyles = () => css `
44
78
  }
45
79
 
46
80
  .ml-page-header--centered .ml-page-header__actions {
47
- margin-top: var(--ml-space-4);
81
+ margin-top: var(--ml-page-header-centered-actions-margin);
48
82
  }
49
83
 
50
84
  .ml-page-header--centered .ml-page-header__breadcrumb {
@@ -56,7 +90,7 @@ export const pageHeaderStyles = () => css `
56
90
  ============================================ */
57
91
  .ml-page-header__breadcrumb {
58
92
  display: flex;
59
- margin-bottom: var(--ml-space-3);
93
+ margin-bottom: var(--ml-page-header-breadcrumb-margin);
60
94
  }
61
95
 
62
96
  /* ============================================
@@ -66,7 +100,7 @@ export const pageHeaderStyles = () => css `
66
100
  display: flex;
67
101
  align-items: flex-start;
68
102
  justify-content: space-between;
69
- gap: var(--ml-space-4);
103
+ gap: var(--ml-page-header-main-gap);
70
104
  }
71
105
 
72
106
  /* ============================================
@@ -75,7 +109,7 @@ export const pageHeaderStyles = () => css `
75
109
  .ml-page-header__content {
76
110
  display: flex;
77
111
  flex-direction: column;
78
- gap: var(--ml-space-1);
112
+ gap: var(--ml-page-header-content-gap);
79
113
  min-width: 0;
80
114
  flex: 1;
81
115
  }
@@ -85,18 +119,18 @@ export const pageHeaderStyles = () => css `
85
119
  ============================================ */
86
120
  .ml-page-header__title h1 {
87
121
  margin: 0;
88
- font-size: var(--ml-text-2xl);
89
- font-weight: var(--ml-font-semibold);
90
- line-height: var(--ml-leading-tight);
91
- color: var(--ml-color-text);
122
+ font-size: var(--ml-page-header-title-size);
123
+ font-weight: var(--ml-page-header-title-weight);
124
+ line-height: var(--ml-page-header-title-line-height);
125
+ color: var(--ml-page-header-title-color);
92
126
  }
93
127
 
94
128
  .ml-page-header__title ::slotted(*) {
95
129
  margin: 0;
96
- font-size: var(--ml-text-2xl);
97
- font-weight: var(--ml-font-semibold);
98
- line-height: var(--ml-leading-tight);
99
- color: var(--ml-color-text);
130
+ font-size: var(--ml-page-header-title-size);
131
+ font-weight: var(--ml-page-header-title-weight);
132
+ line-height: var(--ml-page-header-title-line-height);
133
+ color: var(--ml-page-header-title-color);
100
134
  }
101
135
 
102
136
  /* ============================================
@@ -104,16 +138,16 @@ export const pageHeaderStyles = () => css `
104
138
  ============================================ */
105
139
  .ml-page-header__description p {
106
140
  margin: 0;
107
- font-size: var(--ml-text-sm);
108
- line-height: var(--ml-leading-normal);
109
- color: var(--ml-color-text-secondary);
141
+ font-size: var(--ml-page-header-description-size);
142
+ line-height: var(--ml-page-header-description-line-height);
143
+ color: var(--ml-page-header-description-color);
110
144
  }
111
145
 
112
146
  .ml-page-header__description ::slotted(*) {
113
147
  margin: 0;
114
- font-size: var(--ml-text-sm);
115
- line-height: var(--ml-leading-normal);
116
- color: var(--ml-color-text-secondary);
148
+ font-size: var(--ml-page-header-description-size);
149
+ line-height: var(--ml-page-header-description-line-height);
150
+ color: var(--ml-page-header-description-color);
117
151
  }
118
152
 
119
153
  /* ============================================
@@ -122,8 +156,8 @@ export const pageHeaderStyles = () => css `
122
156
  .ml-page-header__meta {
123
157
  display: flex;
124
158
  align-items: center;
125
- gap: var(--ml-space-2);
126
- margin-top: var(--ml-space-2);
159
+ gap: var(--ml-page-header-meta-gap);
160
+ margin-top: var(--ml-page-header-meta-margin);
127
161
  }
128
162
 
129
163
  /* ============================================
@@ -132,7 +166,7 @@ export const pageHeaderStyles = () => css `
132
166
  .ml-page-header__actions {
133
167
  display: flex;
134
168
  align-items: center;
135
- gap: var(--ml-space-2);
169
+ gap: var(--ml-page-header-actions-gap);
136
170
  flex-shrink: 0;
137
171
  }
138
172
 
@@ -140,7 +174,7 @@ export const pageHeaderStyles = () => css `
140
174
  TABS
141
175
  ============================================ */
142
176
  .ml-page-header__tabs {
143
- margin-top: var(--ml-space-4);
177
+ margin-top: var(--ml-page-header-tabs-margin);
144
178
  }
145
179
 
146
180
  /* ============================================
@@ -148,7 +182,7 @@ export const pageHeaderStyles = () => css `
148
182
  ============================================ */
149
183
  @media (max-width: 640px) {
150
184
  .ml-page-header {
151
- padding: var(--ml-space-4);
185
+ padding: var(--ml-page-header-mobile-padding);
152
186
  }
153
187
 
154
188
  .ml-page-header__main {
@@ -1 +1 @@
1
- {"version":3,"file":"page-section.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-section/page-section.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,iDAsE7B,CAAC"}
1
+ {"version":3,"file":"page-section.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-section/page-section.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,iDAoG7B,CAAC"}
@@ -2,37 +2,67 @@ import { css } from '@melodicdev/core';
2
2
  export const pageSectionStyles = () => css `
3
3
  :host {
4
4
  display: block;
5
+
6
+ /* Header spacing */
7
+ --ml-page-section-gap: var(--ml-space-4);
8
+ --ml-page-section-heading-gap: var(--ml-space-1);
9
+
10
+ /* Title */
11
+ --ml-page-section-title-font: 'Cormorant Garamond', 'Georgia', serif;
12
+ --ml-page-section-title-size: var(--ml-text-2xl);
13
+ --ml-page-section-title-weight: var(--ml-font-semibold);
14
+ --ml-page-section-title-color: var(--ml-color-text);
15
+ --ml-page-section-title-line-height: var(--ml-leading-tight);
16
+
17
+ /* Subtitle */
18
+ --ml-page-section-subtitle-font: var(--ml-font-sans);
19
+ --ml-page-section-subtitle-size: var(--ml-text-sm);
20
+ --ml-page-section-subtitle-color: var(--ml-color-text-muted);
21
+ --ml-page-section-subtitle-line-height: var(--ml-leading-normal);
22
+
23
+ /* Action link */
24
+ --ml-page-section-action-font: var(--ml-font-sans);
25
+ --ml-page-section-action-size: var(--ml-text-sm);
26
+ --ml-page-section-action-weight: var(--ml-font-medium);
27
+ --ml-page-section-action-color: var(--ml-color-primary);
28
+ --ml-page-section-action-hover-color: var(--ml-color-primary-hover);
29
+ --ml-page-section-action-transition: var(--ml-duration-150);
30
+
31
+ /* Content padding variants */
32
+ --ml-page-section-pad-sm: var(--ml-space-2) 0;
33
+ --ml-page-section-pad-md: var(--ml-space-4) 0;
34
+ --ml-page-section-pad-lg: var(--ml-space-6) 0;
5
35
  }
6
36
 
7
37
  .ml-page-section__header {
8
38
  display: flex;
9
39
  align-items: flex-start;
10
40
  justify-content: space-between;
11
- gap: var(--ml-space-4);
12
- margin-bottom: var(--ml-page-section-gap, var(--ml-space-4));
41
+ gap: var(--ml-page-section-gap);
42
+ margin-bottom: var(--ml-page-section-gap);
13
43
  }
14
44
 
15
45
  .ml-page-section__heading {
16
46
  display: flex;
17
47
  flex-direction: column;
18
- gap: var(--ml-space-1);
48
+ gap: var(--ml-page-section-heading-gap);
19
49
  }
20
50
 
21
51
  .ml-page-section__title {
22
52
  margin: 0;
23
- font-family: var(--ml-page-section-title-font, 'Cormorant Garamond', 'Georgia', serif);
24
- font-size: var(--ml-page-section-title-size, var(--ml-text-2xl));
25
- font-weight: var(--ml-font-semibold);
26
- color: var(--ml-color-text);
27
- line-height: var(--ml-leading-tight);
53
+ font-family: var(--ml-page-section-title-font);
54
+ font-size: var(--ml-page-section-title-size);
55
+ font-weight: var(--ml-page-section-title-weight);
56
+ color: var(--ml-page-section-title-color);
57
+ line-height: var(--ml-page-section-title-line-height);
28
58
  }
29
59
 
30
60
  .ml-page-section__subtitle {
31
61
  margin: 0;
32
- font-family: var(--ml-font-sans);
33
- font-size: var(--ml-text-sm);
34
- color: var(--ml-color-text-muted);
35
- line-height: var(--ml-leading-normal);
62
+ font-family: var(--ml-page-section-subtitle-font);
63
+ font-size: var(--ml-page-section-subtitle-size);
64
+ color: var(--ml-page-section-subtitle-color);
65
+ line-height: var(--ml-page-section-subtitle-line-height);
36
66
  }
37
67
 
38
68
  .ml-page-section__action {
@@ -40,16 +70,16 @@ export const pageSectionStyles = () => css `
40
70
  }
41
71
 
42
72
  .ml-page-section__action-link {
43
- font-family: var(--ml-font-sans);
44
- font-size: var(--ml-text-sm);
45
- font-weight: var(--ml-font-medium);
46
- color: var(--ml-color-primary);
73
+ font-family: var(--ml-page-section-action-font);
74
+ font-size: var(--ml-page-section-action-size);
75
+ font-weight: var(--ml-page-section-action-weight);
76
+ color: var(--ml-page-section-action-color);
47
77
  text-decoration: none;
48
- transition: color var(--ml-duration-150) var(--ml-ease-in-out);
78
+ transition: color var(--ml-page-section-action-transition) var(--ml-ease-in-out);
49
79
  }
50
80
 
51
81
  .ml-page-section__action-link:hover {
52
- color: var(--ml-color-primary-hover);
82
+ color: var(--ml-page-section-action-hover-color);
53
83
  text-decoration: underline;
54
84
  }
55
85
 
@@ -59,14 +89,14 @@ export const pageSectionStyles = () => css `
59
89
  }
60
90
 
61
91
  .ml-page-section--pad-sm .ml-page-section__content {
62
- padding: var(--ml-space-2) 0;
92
+ padding: var(--ml-page-section-pad-sm);
63
93
  }
64
94
 
65
95
  .ml-page-section--pad-md .ml-page-section__content {
66
- padding: var(--ml-space-4) 0;
96
+ padding: var(--ml-page-section-pad-md);
67
97
  }
68
98
 
69
99
  .ml-page-section--pad-lg .ml-page-section__content {
70
- padding: var(--ml-space-6) 0;
100
+ padding: var(--ml-page-section-pad-lg);
71
101
  }
72
102
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melodicdev/components",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Themeable UI component library built on the Melodic Framework",
5
5
  "license": "MIT",
6
6
  "author": "Melodic Development",