@makroz/web 1.2.1 → 1.2.3
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/dist/components/MkAccordion.module.css +79 -0
- package/dist/components/MkAlert.module.css +103 -0
- package/dist/components/MkAvatar.module.css +62 -0
- package/dist/components/MkBadge.module.css +74 -0
- package/dist/components/MkButton.module.css +85 -0
- package/dist/components/MkCard.module.css +63 -0
- package/dist/components/MkCheck.module.css +87 -0
- package/dist/components/MkDatePicker.module.css +77 -0
- package/dist/components/MkDivider.module.css +39 -0
- package/dist/components/MkDropDown.module.css +108 -0
- package/dist/components/MkEmptyState.module.css +35 -0
- package/dist/components/MkFileUpload.module.css +74 -0
- package/dist/components/MkInfiniteList.module.css +69 -0
- package/dist/components/MkInput.module.css +94 -0
- package/dist/components/MkLoading.module.css +39 -0
- package/dist/components/MkModal.module.css +107 -0
- package/dist/components/MkProgressBar.module.css +48 -0
- package/dist/components/MkRadio.module.css +74 -0
- package/dist/components/MkSearchInput.module.css +80 -0
- package/dist/components/MkSelect.module.css +177 -0
- package/dist/components/MkSkeleton.module.css +28 -0
- package/dist/components/MkSwitch.module.css +108 -0
- package/dist/components/MkTable.module.css +163 -0
- package/dist/components/MkTabs.module.css +117 -0
- package/dist/components/MkThemeEditor.module.css +177 -0
- package/dist/components/MkToastContainer.module.css +95 -0
- package/dist/components/MkTooltip.module.css +43 -0
- package/dist/components/MkWindowList.module.css +59 -0
- package/dist/context/MkAuthContext.d.ts +14 -0
- package/dist/context/MkAuthContext.d.ts.map +1 -1
- package/dist/context/MkAuthContext.js +9 -0
- package/dist/context/MkAuthContext.js.map +1 -1
- package/dist/hooks/useApi.d.ts +8 -8
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useApi.js +7 -6
- package/dist/hooks/useApi.js.map +1 -1
- package/dist/hooks/useMkInfiniteList.d.ts +1 -1
- package/dist/hooks/useMkInfiniteList.d.ts.map +1 -1
- package/dist/hooks/useMkInfiniteList.js +9 -4
- package/dist/hooks/useMkInfiniteList.js.map +1 -1
- package/dist/hooks/useMkList.d.ts +29 -11
- package/dist/hooks/useMkList.d.ts.map +1 -1
- package/dist/hooks/useMkList.js.map +1 -1
- package/dist/styles/index.css +124 -0
- package/dist/theme/MkThemeProvider.d.ts.map +1 -1
- package/dist/theme/MkThemeProvider.js +34 -28
- package/dist/theme/MkThemeProvider.js.map +1 -1
- package/package.json +19 -19
- package/LICENSE +0 -33
- package/dist/components/MkAccordion.stories.test.d.ts +0 -2
- package/dist/components/MkAccordion.stories.test.d.ts.map +0 -1
- package/dist/components/MkAccordion.stories.test.js +0 -18
- package/dist/components/MkAccordion.stories.test.js.map +0 -1
- package/dist/components/MkAlert.stories.test.d.ts +0 -2
- package/dist/components/MkAlert.stories.test.d.ts.map +0 -1
- package/dist/components/MkAlert.stories.test.js +0 -16
- package/dist/components/MkAlert.stories.test.js.map +0 -1
- package/dist/components/MkAvatar.stories.test.d.ts +0 -2
- package/dist/components/MkAvatar.stories.test.d.ts.map +0 -1
- package/dist/components/MkAvatar.stories.test.js +0 -16
- package/dist/components/MkAvatar.stories.test.js.map +0 -1
- package/dist/components/MkBadge.stories.test.d.ts +0 -2
- package/dist/components/MkBadge.stories.test.d.ts.map +0 -1
- package/dist/components/MkBadge.stories.test.js +0 -16
- package/dist/components/MkBadge.stories.test.js.map +0 -1
- package/dist/components/MkButton.test.d.ts +0 -2
- package/dist/components/MkButton.test.d.ts.map +0 -1
- package/dist/components/MkButton.test.js +0 -56
- package/dist/components/MkButton.test.js.map +0 -1
- package/dist/components/MkCheck.stories.test.d.ts +0 -2
- package/dist/components/MkCheck.stories.test.d.ts.map +0 -1
- package/dist/components/MkCheck.stories.test.js +0 -16
- package/dist/components/MkCheck.stories.test.js.map +0 -1
- package/dist/components/MkDatePicker.stories.test.d.ts +0 -2
- package/dist/components/MkDatePicker.stories.test.d.ts.map +0 -1
- package/dist/components/MkDatePicker.stories.test.js +0 -16
- package/dist/components/MkDatePicker.stories.test.js.map +0 -1
- package/dist/components/MkDivider.stories.test.d.ts +0 -2
- package/dist/components/MkDivider.stories.test.d.ts.map +0 -1
- package/dist/components/MkDivider.stories.test.js +0 -15
- package/dist/components/MkDivider.stories.test.js.map +0 -1
- package/dist/components/MkDropDown.stories.test.d.ts +0 -2
- package/dist/components/MkDropDown.stories.test.d.ts.map +0 -1
- package/dist/components/MkDropDown.stories.test.js +0 -18
- package/dist/components/MkDropDown.stories.test.js.map +0 -1
- package/dist/components/MkEmptyState.stories.test.d.ts +0 -2
- package/dist/components/MkEmptyState.stories.test.d.ts.map +0 -1
- package/dist/components/MkEmptyState.stories.test.js +0 -15
- package/dist/components/MkEmptyState.stories.test.js.map +0 -1
- package/dist/components/MkFileUpload.stories.test.d.ts +0 -2
- package/dist/components/MkFileUpload.stories.test.d.ts.map +0 -1
- package/dist/components/MkFileUpload.stories.test.js +0 -15
- package/dist/components/MkFileUpload.stories.test.js.map +0 -1
- package/dist/components/MkInfiniteList.stories.test.d.ts +0 -2
- package/dist/components/MkInfiniteList.stories.test.d.ts.map +0 -1
- package/dist/components/MkInfiniteList.stories.test.js +0 -24
- package/dist/components/MkInfiniteList.stories.test.js.map +0 -1
- package/dist/components/MkInput.stories.test.d.ts +0 -2
- package/dist/components/MkInput.stories.test.d.ts.map +0 -1
- package/dist/components/MkInput.stories.test.js +0 -16
- package/dist/components/MkInput.stories.test.js.map +0 -1
- package/dist/components/MkLoading.stories.test.d.ts +0 -2
- package/dist/components/MkLoading.stories.test.d.ts.map +0 -1
- package/dist/components/MkLoading.stories.test.js +0 -15
- package/dist/components/MkLoading.stories.test.js.map +0 -1
- package/dist/components/MkProgressBar.stories.test.d.ts +0 -2
- package/dist/components/MkProgressBar.stories.test.d.ts.map +0 -1
- package/dist/components/MkProgressBar.stories.test.js +0 -15
- package/dist/components/MkProgressBar.stories.test.js.map +0 -1
- package/dist/components/MkRadio.stories.test.d.ts +0 -2
- package/dist/components/MkRadio.stories.test.d.ts.map +0 -1
- package/dist/components/MkRadio.stories.test.js +0 -18
- package/dist/components/MkRadio.stories.test.js.map +0 -1
- package/dist/components/MkSearchInput.stories.test.d.ts +0 -2
- package/dist/components/MkSearchInput.stories.test.d.ts.map +0 -1
- package/dist/components/MkSearchInput.stories.test.js +0 -15
- package/dist/components/MkSearchInput.stories.test.js.map +0 -1
- package/dist/components/MkSelect.stories.test.d.ts +0 -2
- package/dist/components/MkSelect.stories.test.d.ts.map +0 -1
- package/dist/components/MkSelect.stories.test.js +0 -21
- package/dist/components/MkSelect.stories.test.js.map +0 -1
- package/dist/components/MkSkeleton.stories.test.d.ts +0 -2
- package/dist/components/MkSkeleton.stories.test.d.ts.map +0 -1
- package/dist/components/MkSkeleton.stories.test.js +0 -15
- package/dist/components/MkSkeleton.stories.test.js.map +0 -1
- package/dist/components/MkSwitch.stories.test.d.ts +0 -2
- package/dist/components/MkSwitch.stories.test.d.ts.map +0 -1
- package/dist/components/MkSwitch.stories.test.js +0 -15
- package/dist/components/MkSwitch.stories.test.js.map +0 -1
- package/dist/components/MkTable.stories.test.d.ts +0 -2
- package/dist/components/MkTable.stories.test.d.ts.map +0 -1
- package/dist/components/MkTable.stories.test.js +0 -25
- package/dist/components/MkTable.stories.test.js.map +0 -1
- package/dist/components/MkTextArea.stories.test.d.ts +0 -2
- package/dist/components/MkTextArea.stories.test.d.ts.map +0 -1
- package/dist/components/MkTextArea.stories.test.js +0 -15
- package/dist/components/MkTextArea.stories.test.js.map +0 -1
- package/dist/components/MkToastContainer.stories.test.d.ts +0 -2
- package/dist/components/MkToastContainer.stories.test.d.ts.map +0 -1
- package/dist/components/MkToastContainer.stories.test.js +0 -29
- package/dist/components/MkToastContainer.stories.test.js.map +0 -1
- package/dist/components/MkTooltip.stories.test.d.ts +0 -2
- package/dist/components/MkTooltip.stories.test.d.ts.map +0 -1
- package/dist/components/MkTooltip.stories.test.js +0 -15
- package/dist/components/MkTooltip.stories.test.js.map +0 -1
- package/dist/components/MkWindowList.stories.test.d.ts +0 -2
- package/dist/components/MkWindowList.stories.test.d.ts.map +0 -1
- package/dist/components/MkWindowList.stories.test.js +0 -19
- package/dist/components/MkWindowList.stories.test.js.map +0 -1
- package/dist/hooks/useApi.test.d.ts +0 -2
- package/dist/hooks/useApi.test.d.ts.map +0 -1
- package/dist/hooks/useApi.test.js +0 -184
- package/dist/hooks/useApi.test.js.map +0 -1
- package/dist/hooks/useMkCrud.test.d.ts +0 -2
- package/dist/hooks/useMkCrud.test.d.ts.map +0 -1
- package/dist/hooks/useMkCrud.test.js +0 -87
- package/dist/hooks/useMkCrud.test.js.map +0 -1
- package/dist/hooks/useMkForm.test.d.ts +0 -2
- package/dist/hooks/useMkForm.test.d.ts.map +0 -1
- package/dist/hooks/useMkForm.test.js +0 -81
- package/dist/hooks/useMkForm.test.js.map +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
.accordion {
|
|
2
|
+
--mk-accordion-border: var(--mk-border);
|
|
3
|
+
--mk-accordion-bg: transparent;
|
|
4
|
+
--mk-accordion-header-hover: var(--mk-muted);
|
|
5
|
+
--mk-accordion-radius: var(--mk-radius, 8px);
|
|
6
|
+
--mk-accordion-color: var(--mk-foreground);
|
|
7
|
+
--mk-accordion-muted-color: var(--mk-muted-foreground);
|
|
8
|
+
|
|
9
|
+
width: 100%;
|
|
10
|
+
color: var(--mk-accordion-color);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* ── Default ── */
|
|
14
|
+
.default .item { border-bottom: 1px solid var(--mk-accordion-border); }
|
|
15
|
+
.default .item:last-child { border-bottom: none; }
|
|
16
|
+
|
|
17
|
+
/* ── Bordered ── */
|
|
18
|
+
.bordered {
|
|
19
|
+
border: 1px solid var(--mk-accordion-border);
|
|
20
|
+
border-radius: var(--mk-accordion-radius);
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
}
|
|
23
|
+
.bordered .item + .item { border-top: 1px solid var(--mk-accordion-border); }
|
|
24
|
+
|
|
25
|
+
/* ── Separated ── */
|
|
26
|
+
.separated { display: flex; flex-direction: column; gap: 0.5rem; }
|
|
27
|
+
.separated .item {
|
|
28
|
+
border: 1px solid var(--mk-accordion-border);
|
|
29
|
+
border-radius: var(--mk-accordion-radius);
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* ── Header ── */
|
|
34
|
+
.header {
|
|
35
|
+
display: flex;
|
|
36
|
+
justify-content: space-between;
|
|
37
|
+
align-items: center;
|
|
38
|
+
width: 100%;
|
|
39
|
+
padding: 0.875rem 1rem;
|
|
40
|
+
background-color: var(--mk-accordion-bg);
|
|
41
|
+
border: none;
|
|
42
|
+
cursor: pointer;
|
|
43
|
+
color: inherit;
|
|
44
|
+
font-size: 0.9375rem;
|
|
45
|
+
font-weight: 500;
|
|
46
|
+
outline: none;
|
|
47
|
+
transition: background-color 0.15s ease;
|
|
48
|
+
text-align: left;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.header:hover { background-color: var(--mk-accordion-header-hover); }
|
|
52
|
+
.header:focus-visible { box-shadow: inset 0 0 0 2px var(--mk-primary); }
|
|
53
|
+
.header:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
54
|
+
|
|
55
|
+
.title { flex: 1; }
|
|
56
|
+
|
|
57
|
+
.chevron {
|
|
58
|
+
display: flex;
|
|
59
|
+
color: var(--mk-accordion-muted-color);
|
|
60
|
+
transition: transform 0.2s ease;
|
|
61
|
+
flex-shrink: 0;
|
|
62
|
+
}
|
|
63
|
+
.chevronOpen { transform: rotate(180deg); }
|
|
64
|
+
|
|
65
|
+
/* ── Body ── */
|
|
66
|
+
.body {
|
|
67
|
+
max-height: 0;
|
|
68
|
+
overflow: hidden;
|
|
69
|
+
transition: max-height 0.25s ease;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.bodyOpen { max-height: 1000px; }
|
|
73
|
+
|
|
74
|
+
.content {
|
|
75
|
+
padding: 0 1rem 1rem;
|
|
76
|
+
font-size: 0.875rem;
|
|
77
|
+
color: var(--mk-accordion-muted-color);
|
|
78
|
+
line-height: 1.6;
|
|
79
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
.alert {
|
|
2
|
+
--mk-alert-bg: var(--mk-muted);
|
|
3
|
+
--mk-alert-border: var(--mk-primary);
|
|
4
|
+
--mk-alert-color: var(--mk-foreground);
|
|
5
|
+
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: flex-start;
|
|
8
|
+
gap: 0.75rem;
|
|
9
|
+
padding: 0.875rem 1rem;
|
|
10
|
+
border-radius: var(--mk-radius, 8px);
|
|
11
|
+
border-left: 4px solid var(--mk-alert-border);
|
|
12
|
+
background-color: var(--mk-alert-bg);
|
|
13
|
+
color: var(--mk-alert-color);
|
|
14
|
+
transition: all 0.2s ease;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.icon {
|
|
18
|
+
font-size: 1.1rem;
|
|
19
|
+
flex-shrink: 0;
|
|
20
|
+
padding-top: 1px;
|
|
21
|
+
color: var(--mk-alert-border);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.body {
|
|
25
|
+
flex: 1;
|
|
26
|
+
min-width: 0;
|
|
27
|
+
}
|
|
28
|
+
.title {
|
|
29
|
+
display: block;
|
|
30
|
+
font-size: 0.9375rem;
|
|
31
|
+
font-weight: 600;
|
|
32
|
+
margin-bottom: 0.25rem;
|
|
33
|
+
}
|
|
34
|
+
.content {
|
|
35
|
+
margin: 0;
|
|
36
|
+
font-size: 0.875rem;
|
|
37
|
+
line-height: 1.5;
|
|
38
|
+
}
|
|
39
|
+
.action {
|
|
40
|
+
margin-top: 0.5rem;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.dismiss {
|
|
44
|
+
background: none;
|
|
45
|
+
border: none;
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
font-size: 0.875rem;
|
|
48
|
+
flex-shrink: 0;
|
|
49
|
+
padding: 2px 4px;
|
|
50
|
+
border-radius: 4px;
|
|
51
|
+
line-height: 1;
|
|
52
|
+
color: currentColor;
|
|
53
|
+
opacity: 0.6;
|
|
54
|
+
transition: opacity 0.15s;
|
|
55
|
+
}
|
|
56
|
+
.dismiss:hover {
|
|
57
|
+
opacity: 1;
|
|
58
|
+
background-color: rgba(0, 0, 0, 0.05);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Variants - solid tinted backgrounds (12% color, not 90% transparent) */
|
|
62
|
+
.info {
|
|
63
|
+
--mk-alert-border: #3b82f6;
|
|
64
|
+
--mk-alert-bg: color-mix(in srgb, #3b82f6 12%, var(--mk-background));
|
|
65
|
+
--mk-alert-color: #1e3a5f;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.success {
|
|
69
|
+
--mk-alert-border: #22c55e;
|
|
70
|
+
--mk-alert-bg: color-mix(in srgb, #22c55e 12%, var(--mk-background));
|
|
71
|
+
--mk-alert-color: #14532d;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.warning {
|
|
75
|
+
--mk-alert-border: #f59e0b;
|
|
76
|
+
--mk-alert-bg: color-mix(in srgb, #f59e0b 12%, var(--mk-background));
|
|
77
|
+
--mk-alert-color: #78350f;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.error {
|
|
81
|
+
--mk-alert-border: #ef4444;
|
|
82
|
+
--mk-alert-bg: color-mix(in srgb, #ef4444 12%, var(--mk-background));
|
|
83
|
+
--mk-alert-color: #7f1d1d;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.default {
|
|
87
|
+
--mk-alert-border: var(--mk-primary);
|
|
88
|
+
--mk-alert-bg: var(--mk-muted);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* Dark mode overrides */
|
|
92
|
+
.mk-dark .info {
|
|
93
|
+
--mk-alert-color: #bfdbfe;
|
|
94
|
+
}
|
|
95
|
+
.mk-dark .success {
|
|
96
|
+
--mk-alert-color: #bbf7d0;
|
|
97
|
+
}
|
|
98
|
+
.mk-dark .warning {
|
|
99
|
+
--mk-alert-color: #fde68a;
|
|
100
|
+
}
|
|
101
|
+
.mk-dark .error {
|
|
102
|
+
--mk-alert-color: #fecaca;
|
|
103
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
.avatar {
|
|
2
|
+
--mk-avatar-bg: var(--mk-muted);
|
|
3
|
+
--mk-avatar-color: var(--mk-foreground);
|
|
4
|
+
--mk-avatar-radius: 50%;
|
|
5
|
+
|
|
6
|
+
position: relative;
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
border-radius: var(--mk-avatar-radius);
|
|
11
|
+
background-color: var(--mk-avatar-bg);
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
flex-shrink: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.image {
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 100%;
|
|
19
|
+
object-fit: cover;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.initials {
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100%;
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
color: var(--mk-avatar-color);
|
|
29
|
+
font-weight: 600;
|
|
30
|
+
letter-spacing: 0.025em;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.status {
|
|
34
|
+
--mk-status-border: var(--mk-background);
|
|
35
|
+
|
|
36
|
+
position: absolute;
|
|
37
|
+
bottom: 0;
|
|
38
|
+
right: 0;
|
|
39
|
+
width: 25%;
|
|
40
|
+
height: 25%;
|
|
41
|
+
min-width: 8px;
|
|
42
|
+
min-height: 8px;
|
|
43
|
+
border-radius: 50%;
|
|
44
|
+
border: 2px solid var(--mk-status-border);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.online {
|
|
48
|
+
--mk-status-bg: #22c55e;
|
|
49
|
+
background-color: var(--mk-status-bg);
|
|
50
|
+
}
|
|
51
|
+
.offline {
|
|
52
|
+
--mk-status-bg: #9ca3af;
|
|
53
|
+
background-color: var(--mk-status-bg);
|
|
54
|
+
}
|
|
55
|
+
.away {
|
|
56
|
+
--mk-status-bg: #f59e0b;
|
|
57
|
+
background-color: var(--mk-status-bg);
|
|
58
|
+
}
|
|
59
|
+
.busy {
|
|
60
|
+
--mk-status-bg: #ef4444;
|
|
61
|
+
background-color: var(--mk-status-bg);
|
|
62
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
.badge {
|
|
2
|
+
--mk-badge-bg: var(--mk-muted);
|
|
3
|
+
--mk-badge-color: var(--mk-foreground);
|
|
4
|
+
--mk-badge-radius: 999px;
|
|
5
|
+
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
gap: 0.25rem;
|
|
9
|
+
font-weight: 500;
|
|
10
|
+
border-radius: var(--mk-badge-radius);
|
|
11
|
+
white-space: nowrap;
|
|
12
|
+
line-height: 1;
|
|
13
|
+
background-color: var(--mk-badge-bg);
|
|
14
|
+
color: var(--mk-badge-color);
|
|
15
|
+
transition: all 0.2s ease;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.sm {
|
|
19
|
+
font-size: 0.6875rem;
|
|
20
|
+
padding: 0.125rem 0.5rem;
|
|
21
|
+
}
|
|
22
|
+
.md {
|
|
23
|
+
font-size: 0.75rem;
|
|
24
|
+
padding: 0.25rem 0.625rem;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Variants - solid background with contrasting text */
|
|
28
|
+
.default {
|
|
29
|
+
--mk-badge-bg: var(--mk-muted);
|
|
30
|
+
--mk-badge-color: var(--mk-foreground);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.primary {
|
|
34
|
+
--mk-badge-bg: var(--mk-primary);
|
|
35
|
+
--mk-badge-color: var(--mk-primary-foreground);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.success {
|
|
39
|
+
--mk-badge-bg: #22c55e;
|
|
40
|
+
--mk-badge-color: #ffffff;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.warning {
|
|
44
|
+
--mk-badge-bg: #f59e0b;
|
|
45
|
+
--mk-badge-color: #ffffff;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.error {
|
|
49
|
+
--mk-badge-bg: #ef4444;
|
|
50
|
+
--mk-badge-color: #ffffff;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.info {
|
|
54
|
+
--mk-badge-bg: #3b82f6;
|
|
55
|
+
--mk-badge-color: #ffffff;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Dark mode - adjust for better visibility */
|
|
59
|
+
.mk-dark .success {
|
|
60
|
+
--mk-badge-bg: #16a34a;
|
|
61
|
+
--mk-badge-color: #ffffff;
|
|
62
|
+
}
|
|
63
|
+
.mk-dark .warning {
|
|
64
|
+
--mk-badge-bg: #d97706;
|
|
65
|
+
--mk-badge-color: #ffffff;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.dot {
|
|
69
|
+
width: 6px;
|
|
70
|
+
height: 6px;
|
|
71
|
+
border-radius: 50%;
|
|
72
|
+
background: currentColor;
|
|
73
|
+
flex-shrink: 0;
|
|
74
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
.button {
|
|
2
|
+
--mk-btn-bg: var(--mk-primary);
|
|
3
|
+
--mk-btn-color: var(--mk-primary-foreground);
|
|
4
|
+
--mk-btn-border: transparent;
|
|
5
|
+
--mk-btn-radius: var(--mk-radius, 8px);
|
|
6
|
+
--mk-btn-padding: 0.5rem 1rem;
|
|
7
|
+
--mk-btn-font-size: 0.875rem;
|
|
8
|
+
--mk-btn-gap: 0.5rem;
|
|
9
|
+
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
padding: var(--mk-btn-padding);
|
|
14
|
+
font-family: var(--mk-font-sans);
|
|
15
|
+
font-weight: 500;
|
|
16
|
+
font-size: var(--mk-btn-font-size);
|
|
17
|
+
border-radius: var(--mk-btn-radius);
|
|
18
|
+
background-color: var(--mk-btn-bg);
|
|
19
|
+
color: var(--mk-btn-color);
|
|
20
|
+
border: 1px solid var(--mk-btn-border);
|
|
21
|
+
gap: var(--mk-btn-gap);
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
transition: var(--mk-transition);
|
|
24
|
+
outline: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.button:active {
|
|
28
|
+
transform: scale(0.98);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.button:disabled {
|
|
32
|
+
opacity: 0.5;
|
|
33
|
+
cursor: not-allowed;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Variants */
|
|
37
|
+
.primary {
|
|
38
|
+
--mk-btn-bg: var(--mk-primary);
|
|
39
|
+
--mk-btn-color: var(--mk-primary-foreground);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.primary:hover:not(:disabled) {
|
|
43
|
+
filter: brightness(1.1);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.outline {
|
|
47
|
+
--mk-btn-bg: transparent;
|
|
48
|
+
--mk-btn-border: var(--mk-border);
|
|
49
|
+
--mk-btn-color: var(--mk-foreground);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.outline:hover:not(:disabled) {
|
|
53
|
+
background-color: var(--mk-accent);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.ghost {
|
|
57
|
+
--mk-btn-bg: transparent;
|
|
58
|
+
--mk-btn-border: transparent;
|
|
59
|
+
--mk-btn-color: var(--mk-foreground);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.ghost:hover:not(:disabled) {
|
|
63
|
+
background-color: var(--mk-accent);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.error {
|
|
67
|
+
--mk-btn-bg: var(--mk-error);
|
|
68
|
+
--mk-btn-color: #ffffff;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Loader Animation */
|
|
72
|
+
.loader {
|
|
73
|
+
width: 1rem;
|
|
74
|
+
height: 1rem;
|
|
75
|
+
border: 2px solid currentColor;
|
|
76
|
+
border-bottom-color: transparent;
|
|
77
|
+
border-radius: 50%;
|
|
78
|
+
display: inline-block;
|
|
79
|
+
animation: rotation 1s linear infinite;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@keyframes rotation {
|
|
83
|
+
0% { transform: rotate(0deg); }
|
|
84
|
+
100% { transform: rotate(360deg); }
|
|
85
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.card {
|
|
2
|
+
--mk-card-bg: var(--mk-background);
|
|
3
|
+
--mk-card-border: var(--mk-border);
|
|
4
|
+
--mk-card-radius: var(--mk-radius, 8px);
|
|
5
|
+
--mk-card-shadow: none;
|
|
6
|
+
--mk-card-hover-shadow: 0 6px 16px rgba(0,0,0,0.1);
|
|
7
|
+
--mk-card-color: var(--mk-foreground);
|
|
8
|
+
--mk-card-muted-color: var(--mk-muted-foreground);
|
|
9
|
+
|
|
10
|
+
border-radius: var(--mk-card-radius);
|
|
11
|
+
background-color: var(--mk-card-bg);
|
|
12
|
+
color: var(--mk-card-color);
|
|
13
|
+
transition: var(--mk-transition);
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:global([data-theme='dark']) .card {
|
|
18
|
+
--mk-card-hover-shadow: 0 6px 16px rgba(0,0,0,0.4);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.default { border: 1px solid var(--mk-card-border); }
|
|
22
|
+
.outlined { border: 2px solid var(--mk-card-border); background: transparent; }
|
|
23
|
+
.elevated {
|
|
24
|
+
--mk-card-shadow: 0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.06);
|
|
25
|
+
border: none;
|
|
26
|
+
box-shadow: var(--mk-card-shadow);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:global([data-theme='dark']) .elevated {
|
|
30
|
+
--mk-card-shadow: 0 4px 12px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.2);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.pad-none {}
|
|
34
|
+
.pad-sm { padding: 0.75rem; }
|
|
35
|
+
.pad-md { padding: 1rem; }
|
|
36
|
+
.pad-lg { padding: 1.5rem; }
|
|
37
|
+
|
|
38
|
+
.clickable { cursor: pointer; }
|
|
39
|
+
.clickable:hover { box-shadow: var(--mk-card-hover-shadow); transform: translateY(-1px); }
|
|
40
|
+
|
|
41
|
+
.header {
|
|
42
|
+
display: flex;
|
|
43
|
+
justify-content: space-between;
|
|
44
|
+
align-items: flex-start;
|
|
45
|
+
margin-bottom: 0.75rem;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.title {
|
|
49
|
+
margin: 0;
|
|
50
|
+
font-size: 1rem;
|
|
51
|
+
font-weight: 600;
|
|
52
|
+
color: inherit;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.subtitle {
|
|
56
|
+
margin: 0.125rem 0 0;
|
|
57
|
+
font-size: 0.8125rem;
|
|
58
|
+
color: var(--mk-card-muted-color);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.headerRight { flex-shrink: 0; }
|
|
62
|
+
.body {}
|
|
63
|
+
.footer { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--mk-card-border); }
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
--mk-check-bg: var(--mk-background);
|
|
3
|
+
--mk-check-border: var(--mk-border);
|
|
4
|
+
--mk-check-checked-bg: var(--mk-primary);
|
|
5
|
+
--mk-check-radius: calc(var(--mk-radius, 8px) * 0.375);
|
|
6
|
+
--mk-check-color: var(--mk-foreground);
|
|
7
|
+
--mk-check-accent: var(--mk-primary);
|
|
8
|
+
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
gap: 0.25rem;
|
|
12
|
+
color: var(--mk-check-color);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.label {
|
|
16
|
+
display: inline-flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
gap: 0.5rem;
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
user-select: none;
|
|
21
|
+
color: inherit;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.label.disabled {
|
|
25
|
+
opacity: 0.5;
|
|
26
|
+
cursor: not-allowed;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.checkbox {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
justify-content: center;
|
|
33
|
+
border: 2px solid var(--mk-check-border);
|
|
34
|
+
border-radius: var(--mk-check-radius);
|
|
35
|
+
background-color: var(--mk-check-bg);
|
|
36
|
+
transition: all 0.15s ease;
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.sm { width: 16px; height: 16px; }
|
|
42
|
+
.md { width: 20px; height: 20px; }
|
|
43
|
+
.lg { width: 24px; height: 24px; }
|
|
44
|
+
|
|
45
|
+
.checkbox:hover {
|
|
46
|
+
border-color: var(--mk-check-accent);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.checkbox:focus-visible {
|
|
50
|
+
outline: none;
|
|
51
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--mk-check-accent), transparent 80%);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.checked {
|
|
55
|
+
background-color: var(--mk-check-checked-bg);
|
|
56
|
+
border-color: var(--mk-check-checked-bg);
|
|
57
|
+
color: var(--mk-primary-foreground, #fff);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.indeterminate {
|
|
61
|
+
background-color: var(--mk-check-checked-bg);
|
|
62
|
+
border-color: var(--mk-check-checked-bg);
|
|
63
|
+
color: var(--mk-primary-foreground, #fff);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.error {
|
|
67
|
+
--mk-check-border: var(--mk-error);
|
|
68
|
+
--mk-check-accent: var(--mk-error);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.icon {
|
|
72
|
+
width: 12px;
|
|
73
|
+
height: 12px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.text {
|
|
77
|
+
font-size: 0.875rem;
|
|
78
|
+
color: inherit;
|
|
79
|
+
line-height: 1.4;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.errorText {
|
|
83
|
+
font-size: 0.75rem;
|
|
84
|
+
color: var(--mk-error);
|
|
85
|
+
font-weight: 500;
|
|
86
|
+
margin-left: 1.75rem;
|
|
87
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
.wrapper {
|
|
2
|
+
--mk-datepicker-bg: var(--mk-background);
|
|
3
|
+
--mk-datepicker-border: var(--mk-border);
|
|
4
|
+
--mk-datepicker-color: var(--mk-foreground);
|
|
5
|
+
--mk-datepicker-radius: var(--mk-radius, 8px);
|
|
6
|
+
--mk-datepicker-focus: var(--mk-primary);
|
|
7
|
+
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
gap: 0.375rem;
|
|
11
|
+
width: 100%;
|
|
12
|
+
color: var(--mk-datepicker-color);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.label {
|
|
16
|
+
font-size: 0.875rem;
|
|
17
|
+
font-weight: 500;
|
|
18
|
+
color: inherit;
|
|
19
|
+
opacity: 0.9;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.inputContainer {
|
|
23
|
+
position: relative;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.input {
|
|
28
|
+
width: 100%;
|
|
29
|
+
padding: 0.625rem 0.875rem;
|
|
30
|
+
font-size: 0.875rem;
|
|
31
|
+
color: inherit;
|
|
32
|
+
background-color: var(--mk-datepicker-bg);
|
|
33
|
+
border: 1px solid var(--mk-datepicker-border);
|
|
34
|
+
border-radius: var(--mk-datepicker-radius);
|
|
35
|
+
transition: all 0.2s ease;
|
|
36
|
+
outline: none;
|
|
37
|
+
font-family: inherit;
|
|
38
|
+
appearance: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Browser calendar indicator */
|
|
42
|
+
.input::-webkit-calendar-picker-indicator {
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
opacity: 0.6;
|
|
45
|
+
transition: opacity 0.2s ease;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:global([data-theme='dark']) .input::-webkit-calendar-picker-indicator {
|
|
49
|
+
filter: invert(1);
|
|
50
|
+
opacity: 0.8;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.input::-webkit-calendar-picker-indicator:hover {
|
|
54
|
+
opacity: 1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.input:focus {
|
|
58
|
+
border-color: var(--mk-datepicker-focus);
|
|
59
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--mk-datepicker-focus), transparent 85%);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.hasError {
|
|
63
|
+
--mk-datepicker-border: var(--mk-error);
|
|
64
|
+
--mk-datepicker-focus: var(--mk-error);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.disabled {
|
|
68
|
+
opacity: 0.5;
|
|
69
|
+
cursor: not-allowed;
|
|
70
|
+
background-color: var(--mk-muted);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.errorText {
|
|
74
|
+
font-size: 0.75rem;
|
|
75
|
+
font-weight: 500;
|
|
76
|
+
color: var(--mk-error);
|
|
77
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.horizontal {
|
|
2
|
+
--mk-divider-color: var(--mk-border);
|
|
3
|
+
--mk-divider-thickness: 1px;
|
|
4
|
+
|
|
5
|
+
width: 100%;
|
|
6
|
+
height: var(--mk-divider-thickness);
|
|
7
|
+
background-color: var(--mk-divider-color);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.solid { border-style: none; }
|
|
11
|
+
.dashed { background: none; border-top: var(--mk-divider-thickness) dashed var(--mk-divider-color); height: 0; }
|
|
12
|
+
.dotted { background: none; border-top: var(--mk-divider-thickness) dotted var(--mk-divider-color); height: 0; }
|
|
13
|
+
|
|
14
|
+
.h-sm { margin: 0.5rem 0; }
|
|
15
|
+
.h-md { margin: 1rem 0; }
|
|
16
|
+
.h-lg { margin: 1.5rem 0; }
|
|
17
|
+
|
|
18
|
+
.vertical {
|
|
19
|
+
--mk-divider-color: var(--mk-border);
|
|
20
|
+
--mk-divider-thickness: 1px;
|
|
21
|
+
|
|
22
|
+
width: var(--mk-divider-thickness);
|
|
23
|
+
align-self: stretch;
|
|
24
|
+
background-color: var(--mk-divider-color);
|
|
25
|
+
min-height: 1em;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.v-sm { margin: 0 0.5rem; }
|
|
29
|
+
.v-md { margin: 0 1rem; }
|
|
30
|
+
.v-lg { margin: 0 1.5rem; }
|
|
31
|
+
|
|
32
|
+
.withLabel {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
gap: 0.75rem;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.line { flex: 1; height: var(--mk-divider-thickness, 1px); background-color: var(--mk-divider-color, var(--mk-border)); }
|
|
39
|
+
.label { font-size: 0.75rem; color: var(--mk-muted-foreground); white-space: nowrap; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; }
|