@melodicdev/components 1.3.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.
- package/assets/melodic-components.js +3550 -1656
- package/assets/melodic-components.js.map +1 -1
- package/assets/melodic-components.min.js +5497 -3605
- package/lib/components/data-display/activity-feed/activity-feed-item.component.d.ts +5 -3
- package/lib/components/data-display/activity-feed/activity-feed-item.component.d.ts.map +1 -1
- package/lib/components/data-display/activity-feed/activity-feed-item.component.js +6 -1
- package/lib/components/data-display/activity-feed/activity-feed-item.styles.d.ts.map +1 -1
- package/lib/components/data-display/activity-feed/activity-feed-item.styles.js +80 -31
- package/lib/components/data-display/activity-feed/activity-feed-item.template.d.ts.map +1 -1
- package/lib/components/data-display/activity-feed/activity-feed-item.template.js +2 -1
- package/lib/components/data-display/activity-feed/activity-feed.component.d.ts.map +1 -1
- package/lib/components/data-display/activity-feed/activity-feed.styles.d.ts.map +1 -1
- package/lib/components/data-display/activity-feed/activity-feed.styles.js +5 -1
- package/lib/components/data-display/avatar/avatar.component.d.ts.map +1 -1
- package/lib/components/data-display/avatar/avatar.styles.d.ts.map +1 -1
- package/lib/components/data-display/avatar/avatar.styles.js +18 -7
- package/lib/components/data-display/badge/badge.component.d.ts +2 -0
- package/lib/components/data-display/badge/badge.component.d.ts.map +1 -1
- package/lib/components/data-display/badge/badge.component.js +3 -1
- package/lib/components/data-display/badge/badge.styles.d.ts.map +1 -1
- package/lib/components/data-display/badge/badge.styles.js +35 -10
- package/lib/components/data-display/badge/badge.template.d.ts.map +1 -1
- package/lib/components/data-display/badge/badge.template.js +4 -1
- package/lib/components/data-display/badge-group/badge-group.component.d.ts.map +1 -1
- package/lib/components/data-display/badge-group/badge-group.styles.d.ts.map +1 -1
- package/lib/components/data-display/badge-group/badge-group.styles.js +29 -14
- package/lib/components/data-display/calendar-view/calendar-view.component.d.ts.map +1 -1
- package/lib/components/data-display/calendar-view/calendar-view.styles.d.ts.map +1 -1
- package/lib/components/data-display/calendar-view/calendar-view.styles.js +155 -89
- package/lib/components/data-display/data-grid/data-grid.component.d.ts.map +1 -1
- package/lib/components/data-display/data-grid/data-grid.styles.d.ts.map +1 -1
- package/lib/components/data-display/data-grid/data-grid.styles.js +117 -61
- package/lib/components/data-display/list/list-item.component.d.ts.map +1 -1
- package/lib/components/data-display/list/list-item.styles.d.ts.map +1 -1
- package/lib/components/data-display/list/list-item.styles.js +35 -13
- package/lib/components/data-display/list/list.component.d.ts.map +1 -1
- package/lib/components/data-display/list/list.styles.d.ts.map +1 -1
- package/lib/components/data-display/list/list.styles.js +5 -1
- package/lib/components/data-display/profile-card/index.d.ts +2 -0
- package/lib/components/data-display/profile-card/index.d.ts.map +1 -0
- package/lib/components/data-display/profile-card/index.js +1 -0
- package/lib/components/data-display/profile-card/profile-card.component.d.ts +61 -0
- package/lib/components/data-display/profile-card/profile-card.component.d.ts.map +1 -0
- package/lib/components/data-display/profile-card/profile-card.component.js +102 -0
- package/lib/components/data-display/profile-card/profile-card.styles.d.ts +2 -0
- package/lib/components/data-display/profile-card/profile-card.styles.d.ts.map +1 -0
- package/lib/components/data-display/profile-card/profile-card.styles.js +182 -0
- package/lib/components/data-display/profile-card/profile-card.template.d.ts +3 -0
- package/lib/components/data-display/profile-card/profile-card.template.d.ts.map +1 -0
- package/lib/components/data-display/profile-card/profile-card.template.js +52 -0
- package/lib/components/data-display/stat-card/index.d.ts +2 -0
- package/lib/components/data-display/stat-card/index.d.ts.map +1 -0
- package/lib/components/data-display/stat-card/index.js +1 -0
- package/lib/components/data-display/stat-card/stat-card.component.d.ts +45 -0
- package/lib/components/data-display/stat-card/stat-card.component.d.ts.map +1 -0
- package/lib/components/data-display/stat-card/stat-card.component.js +59 -0
- package/lib/components/data-display/stat-card/stat-card.styles.d.ts +2 -0
- package/lib/components/data-display/stat-card/stat-card.styles.d.ts.map +1 -0
- package/lib/components/data-display/stat-card/stat-card.styles.js +119 -0
- package/lib/components/data-display/stat-card/stat-card.template.d.ts +3 -0
- package/lib/components/data-display/stat-card/stat-card.template.d.ts.map +1 -0
- package/lib/components/data-display/stat-card/stat-card.template.js +27 -0
- package/lib/components/data-display/table/table.component.d.ts.map +1 -1
- package/lib/components/data-display/table/table.styles.d.ts.map +1 -1
- package/lib/components/data-display/table/table.styles.js +61 -23
- package/lib/components/data-display/tag/tag.component.d.ts.map +1 -1
- package/lib/components/data-display/tag/tag.styles.d.ts.map +1 -1
- package/lib/components/data-display/tag/tag.styles.js +62 -25
- package/lib/components/feedback/alert/alert.component.d.ts.map +1 -1
- package/lib/components/feedback/alert/alert.styles.d.ts.map +1 -1
- package/lib/components/feedback/alert/alert.styles.js +41 -17
- package/lib/components/feedback/progress/progress.component.d.ts.map +1 -1
- package/lib/components/feedback/progress/progress.styles.d.ts.map +1 -1
- package/lib/components/feedback/progress/progress.styles.js +112 -56
- package/lib/components/feedback/spinner/spinner.component.d.ts.map +1 -1
- package/lib/components/feedback/spinner/spinner.styles.d.ts.map +1 -1
- package/lib/components/feedback/spinner/spinner.styles.js +32 -16
- package/lib/components/feedback/toast/toast-container.component.d.ts.map +1 -1
- package/lib/components/feedback/toast/toast.component.d.ts.map +1 -1
- package/lib/components/feedback/toast/toast.service.d.ts.map +1 -1
- package/lib/components/feedback/toast/toast.styles.d.ts.map +1 -1
- package/lib/components/feedback/toast/toast.styles.js +69 -26
- package/lib/components/forms/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/lib/components/forms/autocomplete/autocomplete.styles.d.ts.map +1 -1
- package/lib/components/forms/autocomplete/autocomplete.styles.js +164 -76
- package/lib/components/forms/button/button.component.d.ts.map +1 -1
- package/lib/components/forms/button/button.styles.d.ts.map +1 -1
- package/lib/components/forms/button/button.styles.js +141 -116
- package/lib/components/forms/button-group/button-group-item.component.d.ts.map +1 -1
- package/lib/components/forms/button-group/button-group.component.d.ts.map +1 -1
- package/lib/components/forms/button-group/button-group.styles.d.ts.map +1 -1
- package/lib/components/forms/button-group/button-group.styles.js +8 -2
- package/lib/components/forms/checkbox/checkbox.component.d.ts.map +1 -1
- package/lib/components/forms/checkbox/checkbox.styles.d.ts.map +1 -1
- package/lib/components/forms/checkbox/checkbox.styles.js +75 -41
- package/lib/components/forms/date-picker/calendar.component.d.ts.map +1 -1
- package/lib/components/forms/date-picker/calendar.styles.d.ts.map +1 -1
- package/lib/components/forms/date-picker/calendar.styles.js +108 -47
- package/lib/components/forms/date-picker/date-picker.component.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.styles.js +96 -38
- package/lib/components/forms/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/lib/components/forms/date-time-picker/date-time-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/date-time-picker/date-time-picker.styles.js +65 -25
- package/lib/components/forms/file-upload/file-icon.component.d.ts.map +1 -1
- package/lib/components/forms/file-upload/file-upload-item.component.d.ts.map +1 -1
- package/lib/components/forms/file-upload/file-upload.component.d.ts +2 -2
- package/lib/components/forms/file-upload/file-upload.component.d.ts.map +1 -1
- package/lib/components/forms/file-upload/file-upload.component.js +3 -3
- package/lib/components/forms/file-upload/file-upload.styles.d.ts.map +1 -1
- package/lib/components/forms/file-upload/file-upload.styles.js +92 -39
- package/lib/components/forms/form-field/form-field.component.d.ts.map +1 -1
- package/lib/components/forms/form-field/form-field.styles.d.ts.map +1 -1
- package/lib/components/forms/form-field/form-field.styles.js +72 -29
- package/lib/components/forms/input/input.component.d.ts.map +1 -1
- package/lib/components/forms/input/input.styles.d.ts.map +1 -1
- package/lib/components/forms/input/input.styles.js +81 -29
- package/lib/components/forms/radio/radio-group.component.d.ts.map +1 -1
- package/lib/components/forms/radio/radio.component.d.ts.map +1 -1
- package/lib/components/forms/radio/radio.styles.d.ts.map +1 -1
- package/lib/components/forms/radio/radio.styles.js +85 -54
- package/lib/components/forms/radio-card-group/radio-card-group.component.d.ts.map +1 -1
- package/lib/components/forms/radio-card-group/radio-card-group.styles.d.ts.map +1 -1
- package/lib/components/forms/radio-card-group/radio-card-group.styles.js +34 -12
- package/lib/components/forms/radio-card-group/radio-card.component.d.ts.map +1 -1
- package/lib/components/forms/radio-card-group/radio-card.styles.d.ts.map +1 -1
- package/lib/components/forms/radio-card-group/radio-card.styles.js +108 -47
- package/lib/components/forms/select/select.component.d.ts.map +1 -1
- package/lib/components/forms/select/select.styles.d.ts.map +1 -1
- package/lib/components/forms/select/select.styles.js +152 -71
- package/lib/components/forms/slider/slider.component.d.ts.map +1 -1
- package/lib/components/forms/slider/slider.styles.d.ts.map +1 -1
- package/lib/components/forms/slider/slider.styles.js +77 -36
- package/lib/components/forms/textarea/textarea.component.d.ts.map +1 -1
- package/lib/components/forms/textarea/textarea.styles.d.ts.map +1 -1
- package/lib/components/forms/textarea/textarea.styles.js +79 -31
- package/lib/components/forms/time-picker/time-picker.component.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.styles.js +196 -91
- package/lib/components/forms/toggle/toggle.component.d.ts.map +1 -1
- package/lib/components/forms/toggle/toggle.styles.d.ts.map +1 -1
- package/lib/components/forms/toggle/toggle.styles.js +84 -54
- package/lib/components/foundation/card/card.component.d.ts.map +1 -1
- package/lib/components/foundation/card/card.styles.d.ts.map +1 -1
- package/lib/components/foundation/card/card.styles.js +48 -17
- package/lib/components/foundation/container/container.component.d.ts.map +1 -1
- package/lib/components/foundation/divider/divider.component.d.ts.map +1 -1
- package/lib/components/foundation/divider/divider.styles.d.ts.map +1 -1
- package/lib/components/foundation/divider/divider.styles.js +24 -12
- package/lib/components/foundation/stack/stack.component.d.ts.map +1 -1
- package/lib/components/general/icon/icon.component.d.ts.map +1 -1
- package/lib/components/general/icon/icon.styles.d.ts.map +1 -1
- package/lib/components/general/icon/icon.styles.js +9 -2
- package/lib/components/navigation/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
- package/lib/components/navigation/breadcrumb/breadcrumb.component.d.ts.map +1 -1
- package/lib/components/navigation/breadcrumb/breadcrumb.styles.d.ts.map +1 -1
- package/lib/components/navigation/breadcrumb/breadcrumb.styles.js +4 -1
- package/lib/components/navigation/pagination/pagination.component.d.ts.map +1 -1
- package/lib/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
- package/lib/components/navigation/pagination/pagination.styles.js +59 -23
- package/lib/components/navigation/sidebar/sidebar-group.component.d.ts.map +1 -1
- package/lib/components/navigation/sidebar/sidebar-item.component.d.ts +3 -1
- package/lib/components/navigation/sidebar/sidebar-item.component.d.ts.map +1 -1
- package/lib/components/navigation/sidebar/sidebar-item.component.js +3 -1
- package/lib/components/navigation/sidebar/sidebar-item.styles.d.ts.map +1 -1
- package/lib/components/navigation/sidebar/sidebar-item.styles.js +79 -33
- package/lib/components/navigation/sidebar/sidebar-item.template.js +1 -1
- package/lib/components/navigation/sidebar/sidebar.component.d.ts +1 -3
- package/lib/components/navigation/sidebar/sidebar.component.d.ts.map +1 -1
- package/lib/components/navigation/sidebar/sidebar.component.js +1 -5
- package/lib/components/navigation/sidebar/sidebar.styles.d.ts.map +1 -1
- package/lib/components/navigation/sidebar/sidebar.styles.js +154 -61
- package/lib/components/navigation/steps/step-panel.component.d.ts.map +1 -1
- package/lib/components/navigation/steps/step.component.d.ts.map +1 -1
- package/lib/components/navigation/steps/step.styles.d.ts.map +1 -1
- package/lib/components/navigation/steps/step.styles.js +149 -83
- package/lib/components/navigation/steps/steps.component.d.ts +1 -1
- package/lib/components/navigation/steps/steps.component.d.ts.map +1 -1
- package/lib/components/navigation/steps/steps.styles.d.ts.map +1 -1
- package/lib/components/navigation/steps/steps.styles.js +169 -91
- package/lib/components/navigation/tabs/tab-panel.component.d.ts.map +1 -1
- package/lib/components/navigation/tabs/tab.component.d.ts.map +1 -1
- package/lib/components/navigation/tabs/tab.styles.d.ts.map +1 -1
- package/lib/components/navigation/tabs/tab.styles.js +36 -12
- package/lib/components/navigation/tabs/tabs.component.d.ts +1 -1
- package/lib/components/navigation/tabs/tabs.component.d.ts.map +1 -1
- package/lib/components/navigation/tabs/tabs.styles.d.ts.map +1 -1
- package/lib/components/navigation/tabs/tabs.styles.js +126 -57
- package/lib/components/overlays/dialog/dialog-ref.class.d.ts.map +1 -1
- package/lib/components/overlays/dialog/dialog.component.d.ts.map +1 -1
- package/lib/components/overlays/dialog/dialog.service.d.ts.map +1 -1
- package/lib/components/overlays/dialog/dialog.styles.d.ts.map +1 -1
- package/lib/components/overlays/dialog/dialog.styles.js +73 -33
- package/lib/components/overlays/drawer/drawer.component.d.ts.map +1 -1
- package/lib/components/overlays/drawer/drawer.styles.d.ts.map +1 -1
- package/lib/components/overlays/drawer/drawer.styles.js +77 -33
- package/lib/components/overlays/dropdown/dropdown-group.component.d.ts.map +1 -1
- package/lib/components/overlays/dropdown/dropdown-item.component.d.ts.map +1 -1
- package/lib/components/overlays/dropdown/dropdown-item.styles.d.ts.map +1 -1
- package/lib/components/overlays/dropdown/dropdown-item.styles.js +43 -17
- package/lib/components/overlays/dropdown/dropdown.component.d.ts.map +1 -1
- package/lib/components/overlays/dropdown/dropdown.styles.d.ts.map +1 -1
- package/lib/components/overlays/dropdown/dropdown.styles.js +30 -15
- package/lib/components/overlays/popover/popover.component.d.ts.map +1 -1
- package/lib/components/overlays/popover/popover.styles.d.ts.map +1 -1
- package/lib/components/overlays/popover/popover.styles.js +29 -14
- package/lib/components/overlays/tooltip/tooltip.component.d.ts.map +1 -1
- package/lib/components/overlays/tooltip/tooltip.styles.d.ts.map +1 -1
- package/lib/components/overlays/tooltip/tooltip.styles.js +28 -12
- package/lib/components/pages/auth/auth-layout.styles.d.ts +1 -1
- package/lib/components/pages/auth/auth-layout.styles.d.ts.map +1 -1
- package/lib/components/pages/auth/auth-layout.styles.js +79 -31
- package/lib/components/pages/auth/login-page.component.d.ts.map +1 -1
- package/lib/components/pages/auth/signup-page.component.d.ts.map +1 -1
- package/lib/components/pages/dashboard/dashboard-page.component.d.ts.map +1 -1
- package/lib/components/pages/dashboard/dashboard-page.styles.d.ts.map +1 -1
- package/lib/components/pages/dashboard/dashboard-page.styles.js +34 -12
- package/lib/components/sections/app-shell/app-shell.component.d.ts.map +1 -1
- package/lib/components/sections/app-shell/app-shell.styles.d.ts.map +1 -1
- package/lib/components/sections/app-shell/app-shell.styles.js +54 -23
- package/lib/components/sections/hero/hero-section.component.d.ts.map +1 -1
- package/lib/components/sections/hero/hero-section.styles.d.ts.map +1 -1
- package/lib/components/sections/hero/hero-section.styles.js +97 -40
- package/lib/components/sections/page-header/page-header.component.d.ts.map +1 -1
- package/lib/components/sections/page-header/page-header.styles.d.ts.map +1 -1
- package/lib/components/sections/page-header/page-header.styles.js +62 -28
- package/lib/components/sections/page-section/index.d.ts +2 -0
- package/lib/components/sections/page-section/index.d.ts.map +1 -0
- package/lib/components/sections/page-section/index.js +1 -0
- package/lib/components/sections/page-section/page-section.component.d.ts +39 -0
- package/lib/components/sections/page-section/page-section.component.d.ts.map +1 -0
- package/lib/components/sections/page-section/page-section.component.js +56 -0
- package/lib/components/sections/page-section/page-section.styles.d.ts +2 -0
- package/lib/components/sections/page-section/page-section.styles.d.ts.map +1 -0
- package/lib/components/sections/page-section/page-section.styles.js +102 -0
- package/lib/components/sections/page-section/page-section.template.d.ts +3 -0
- package/lib/components/sections/page-section/page-section.template.d.ts.map +1 -0
- package/lib/components/sections/page-section/page-section.template.js +30 -0
- package/lib/utils/virtual-scroll/index.d.ts.map +1 -1
- package/package.json +13 -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-
|
|
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-
|
|
83
|
+
padding: var(--ml-hero-sm-padding);
|
|
22
84
|
}
|
|
23
85
|
|
|
24
86
|
.ml-hero--md {
|
|
25
|
-
padding: var(--ml-
|
|
87
|
+
padding: var(--ml-hero-md-padding);
|
|
26
88
|
}
|
|
27
89
|
|
|
28
90
|
.ml-hero--lg {
|
|
29
|
-
padding:
|
|
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-
|
|
35
|
-
line-height: var(--ml-
|
|
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-
|
|
41
|
-
line-height: var(--ml-
|
|
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-
|
|
47
|
-
line-height: var(--ml-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
131
|
+
background-color: var(--ml-hero-bg-subtle);
|
|
70
132
|
}
|
|
71
133
|
|
|
72
134
|
.ml-hero--bg-gradient {
|
|
73
|
-
background:
|
|
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-
|
|
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:
|
|
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-
|
|
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-
|
|
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-
|
|
147
|
-
font-size: var(--ml-
|
|
148
|
-
font-weight: var(--ml-font-
|
|
149
|
-
color: var(--ml-color
|
|
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:
|
|
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-
|
|
158
|
-
font-weight: var(--ml-font-
|
|
159
|
-
color: var(--ml-color
|
|
160
|
-
letter-spacing: -
|
|
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-
|
|
167
|
-
color: var(--ml-
|
|
168
|
-
line-height: var(--ml-
|
|
169
|
-
max-width:
|
|
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-
|
|
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
|
|
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-
|
|
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.component.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-header/page-header.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAMa,mBAAoB,YAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"page-header.component.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-header/page-header.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAMa,mBAAoB,YAAW,WAAW;IAC/C,UAAU,EAAG,WAAW,CAAC;IAEhC,sBAAsB;IACf,KAAK,SAAM;IAElB,4BAA4B;IACrB,WAAW,SAAM;IAExB,qBAAqB;IACd,OAAO,EAAE,iBAAiB,CAAa;IAE9C,yBAAyB;IAClB,OAAO,UAAQ;IAEtB,2CAA2C;IAC3C,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,sCAAsC;IACtC,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,4CAA4C;IAC5C,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IAED,wCAAwC;IACxC,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,qCAAqC;IACrC,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,qCAAqC;IACrC,IAAW,OAAO,IAAI,OAAO,CAE5B;CACD"}
|
|
@@ -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,
|
|
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-
|
|
12
|
-
font-family: var(--ml-font-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
89
|
-
font-weight: var(--ml-
|
|
90
|
-
line-height: var(--ml-
|
|
91
|
-
color: var(--ml-color
|
|
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-
|
|
97
|
-
font-weight: var(--ml-
|
|
98
|
-
line-height: var(--ml-
|
|
99
|
-
color: var(--ml-color
|
|
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-
|
|
108
|
-
line-height: var(--ml-
|
|
109
|
-
color: var(--ml-
|
|
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-
|
|
115
|
-
line-height: var(--ml-
|
|
116
|
-
color: var(--ml-
|
|
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-
|
|
126
|
-
margin-top: var(--ml-
|
|
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-
|
|
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-
|
|
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-
|
|
185
|
+
padding: var(--ml-page-header-mobile-padding);
|
|
152
186
|
}
|
|
153
187
|
|
|
154
188
|
.ml-page-header__main {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-section/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PageSectionComponent } from './page-section.component.js';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { IElementRef } from '@melodicdev/core';
|
|
2
|
+
type SectionPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
3
|
+
/**
|
|
4
|
+
* ml-page-section - Titled content section with consistent heading typography
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```html
|
|
8
|
+
* <ml-page-section title="Recent Activity" subtitle="Last 7 days">
|
|
9
|
+
* <div>Section content here</div>
|
|
10
|
+
* </ml-page-section>
|
|
11
|
+
*
|
|
12
|
+
* <ml-page-section title="Members" action-label="View All" action-href="/members">
|
|
13
|
+
* <div>Members list</div>
|
|
14
|
+
* </ml-page-section>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @slot default - Section content
|
|
18
|
+
* @slot action - Override for complex action content (replaces action-label link)
|
|
19
|
+
*
|
|
20
|
+
* @cssproperty --ml-page-section-title-font - Title font family (default: 'Cormorant Garamond', serif)
|
|
21
|
+
* @cssproperty --ml-page-section-gap - Gap between header and content (default: var(--ml-space-4))
|
|
22
|
+
*/
|
|
23
|
+
export declare class PageSectionComponent implements IElementRef {
|
|
24
|
+
elementRef: HTMLElement;
|
|
25
|
+
/** Section title */
|
|
26
|
+
title: string;
|
|
27
|
+
/** Subtitle text */
|
|
28
|
+
subtitle: string;
|
|
29
|
+
/** Action link label */
|
|
30
|
+
'action-label': string;
|
|
31
|
+
/** Action link URL */
|
|
32
|
+
'action-href': string;
|
|
33
|
+
/** Content padding */
|
|
34
|
+
padding: SectionPadding;
|
|
35
|
+
/** Check if action slot has content */
|
|
36
|
+
get hasActionSlot(): boolean;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=page-section.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-section.component.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/page-section/page-section.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,KAAK,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAMa,oBAAqB,YAAW,WAAW;IAChD,UAAU,EAAG,WAAW,CAAC;IAEhC,oBAAoB;IACb,KAAK,SAAM;IAElB,oBAAoB;IACb,QAAQ,SAAM;IAErB,wBAAwB;IACjB,cAAc,SAAM;IAE3B,sBAAsB;IACf,aAAa,SAAM;IAE1B,sBAAsB;IACf,OAAO,EAAE,cAAc,CAAQ;IAEtC,uCAAuC;IACvC,IAAW,aAAa,IAAI,OAAO,CAElC;CACD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { MelodicComponent } from '@melodicdev/core';
|
|
8
|
+
import { pageSectionTemplate } from './page-section.template.js';
|
|
9
|
+
import { pageSectionStyles } from './page-section.styles.js';
|
|
10
|
+
/**
|
|
11
|
+
* ml-page-section - Titled content section with consistent heading typography
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```html
|
|
15
|
+
* <ml-page-section title="Recent Activity" subtitle="Last 7 days">
|
|
16
|
+
* <div>Section content here</div>
|
|
17
|
+
* </ml-page-section>
|
|
18
|
+
*
|
|
19
|
+
* <ml-page-section title="Members" action-label="View All" action-href="/members">
|
|
20
|
+
* <div>Members list</div>
|
|
21
|
+
* </ml-page-section>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @slot default - Section content
|
|
25
|
+
* @slot action - Override for complex action content (replaces action-label link)
|
|
26
|
+
*
|
|
27
|
+
* @cssproperty --ml-page-section-title-font - Title font family (default: 'Cormorant Garamond', serif)
|
|
28
|
+
* @cssproperty --ml-page-section-gap - Gap between header and content (default: var(--ml-space-4))
|
|
29
|
+
*/
|
|
30
|
+
let PageSectionComponent = class PageSectionComponent {
|
|
31
|
+
constructor() {
|
|
32
|
+
/** Section title */
|
|
33
|
+
this.title = '';
|
|
34
|
+
/** Subtitle text */
|
|
35
|
+
this.subtitle = '';
|
|
36
|
+
/** Action link label */
|
|
37
|
+
this['action-label'] = '';
|
|
38
|
+
/** Action link URL */
|
|
39
|
+
this['action-href'] = '';
|
|
40
|
+
/** Content padding */
|
|
41
|
+
this.padding = 'md';
|
|
42
|
+
}
|
|
43
|
+
/** Check if action slot has content */
|
|
44
|
+
get hasActionSlot() {
|
|
45
|
+
return this.elementRef?.querySelector('[slot="action"]') !== null;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
PageSectionComponent = __decorate([
|
|
49
|
+
MelodicComponent({
|
|
50
|
+
selector: 'ml-page-section',
|
|
51
|
+
template: pageSectionTemplate,
|
|
52
|
+
styles: pageSectionStyles,
|
|
53
|
+
attributes: ['title', 'subtitle', 'action-label', 'action-href', 'padding']
|
|
54
|
+
})
|
|
55
|
+
], PageSectionComponent);
|
|
56
|
+
export { PageSectionComponent };
|
|
@@ -0,0 +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,iDAoG7B,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { css } from '@melodicdev/core';
|
|
2
|
+
export const pageSectionStyles = () => css `
|
|
3
|
+
:host {
|
|
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;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.ml-page-section__header {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: flex-start;
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
gap: var(--ml-page-section-gap);
|
|
42
|
+
margin-bottom: var(--ml-page-section-gap);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.ml-page-section__heading {
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
gap: var(--ml-page-section-heading-gap);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.ml-page-section__title {
|
|
52
|
+
margin: 0;
|
|
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);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.ml-page-section__subtitle {
|
|
61
|
+
margin: 0;
|
|
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);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ml-page-section__action {
|
|
69
|
+
flex-shrink: 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.ml-page-section__action-link {
|
|
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);
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
transition: color var(--ml-page-section-action-transition) var(--ml-ease-in-out);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.ml-page-section__action-link:hover {
|
|
82
|
+
color: var(--ml-page-section-action-hover-color);
|
|
83
|
+
text-decoration: underline;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Padding variants */
|
|
87
|
+
.ml-page-section--pad-none .ml-page-section__content {
|
|
88
|
+
padding: 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ml-page-section--pad-sm .ml-page-section__content {
|
|
92
|
+
padding: var(--ml-page-section-pad-sm);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.ml-page-section--pad-md .ml-page-section__content {
|
|
96
|
+
padding: var(--ml-page-section-pad-md);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.ml-page-section--pad-lg .ml-page-section__content {
|
|
100
|
+
padding: var(--ml-page-section-pad-lg);
|
|
101
|
+
}
|
|
102
|
+
`;
|