dalila 1.9.0 → 1.9.2

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 (36) hide show
  1. package/README.md +1 -0
  2. package/dist/components/ui/runtime.js +2 -1
  3. package/dist/core/for.d.ts +20 -0
  4. package/dist/core/for.js +40 -0
  5. package/dist/runtime/bind.js +400 -15
  6. package/package.json +1 -1
  7. package/src/components/ui/accordion/accordion.css +14 -8
  8. package/src/components/ui/badge/badge.css +13 -7
  9. package/src/components/ui/breadcrumb/breadcrumb.css +3 -3
  10. package/src/components/ui/button/button.css +21 -12
  11. package/src/components/ui/calendar/calendar.css +20 -6
  12. package/src/components/ui/card/card.css +18 -7
  13. package/src/components/ui/checkbox/checkbox.css +7 -5
  14. package/src/components/ui/chip/chip.css +7 -2
  15. package/src/components/ui/collapsible/collapsible.css +10 -4
  16. package/src/components/ui/combobox/combobox.css +18 -10
  17. package/src/components/ui/dialog/dialog.css +13 -2
  18. package/src/components/ui/drawer/drawer.css +11 -2
  19. package/src/components/ui/dropdown/dropdown.css +17 -8
  20. package/src/components/ui/dropzone/dropzone.css +17 -5
  21. package/src/components/ui/empty-state/empty-state.css +2 -2
  22. package/src/components/ui/form/form.css +1 -1
  23. package/src/components/ui/input/input.css +25 -6
  24. package/src/components/ui/pagination/pagination.css +10 -3
  25. package/src/components/ui/popover/popover.css +9 -9
  26. package/src/components/ui/radio/radio.css +5 -3
  27. package/src/components/ui/separator/separator.css +3 -3
  28. package/src/components/ui/skeleton/skeleton.css +3 -13
  29. package/src/components/ui/slider/slider.css +5 -5
  30. package/src/components/ui/table/table.css +4 -4
  31. package/src/components/ui/tabs/tabs.css +5 -1
  32. package/src/components/ui/toast/toast.css +15 -3
  33. package/src/components/ui/toggle/toggle.css +11 -9
  34. package/src/components/ui/tokens/tokens.css +12 -4
  35. package/src/components/ui/tooltip/tooltip.css +21 -5
  36. package/src/components/ui/typography/typography.css +1 -1
@@ -15,7 +15,7 @@
15
15
 
16
16
  .d-field-hint {
17
17
  font-size: var(--d-text-xs);
18
- color: var(--d-text-muted);
18
+ color: var(--d-text-tertiary);
19
19
  }
20
20
 
21
21
  .d-field-error {
@@ -36,16 +36,18 @@
36
36
  color: var(--d-text-primary);
37
37
  line-height: var(--d-leading);
38
38
 
39
- background: var(--d-surface-page);
39
+ background: var(--d-surface-card);
40
40
  border: 1px solid var(--d-border-color);
41
41
  border-radius: var(--d-radius-md);
42
42
 
43
- transition: border-color var(--d-duration-fast) ease, box-shadow var(--d-duration-fast) ease;
43
+ transition:
44
+ border-color var(--d-duration-fast) var(--d-ease),
45
+ box-shadow var(--d-duration-fast) var(--d-ease);
44
46
  }
45
47
 
46
48
  .d-input::placeholder,
47
49
  .d-textarea::placeholder {
48
- color: var(--d-text-muted);
50
+ color: var(--d-text-tertiary);
49
51
  }
50
52
 
51
53
  .d-input:focus,
@@ -53,7 +55,7 @@
53
55
  .d-select:focus {
54
56
  outline: none;
55
57
  border-color: var(--d-accent);
56
- box-shadow: none;
58
+ box-shadow: 0 0 0 3px var(--d-ring);
57
59
  }
58
60
 
59
61
  .d-input[aria-invalid="true"],
@@ -71,7 +73,7 @@
71
73
  .d-input-error:focus,
72
74
  .d-textarea-error:focus,
73
75
  .d-select-error:focus {
74
- box-shadow: none;
76
+ box-shadow: 0 0 0 3px var(--d-error-light);
75
77
  }
76
78
 
77
79
  .d-input:disabled,
@@ -92,13 +94,30 @@
92
94
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath stroke='%23737373' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");
93
95
  background-repeat: no-repeat;
94
96
  background-position: right var(--d-space-3) center;
97
+ background-size: 0.75rem 0.75rem;
95
98
  padding-right: var(--d-space-8);
99
+ cursor: pointer;
96
100
  }
97
101
 
98
102
  [data-theme="light"] .d-select {
99
103
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");
100
104
  }
101
105
 
106
+ .d-select option {
107
+ background: var(--d-surface-card);
108
+ color: var(--d-text-primary);
109
+ font-family: var(--d-font-sans);
110
+ font-size: var(--d-text-sm);
111
+ font-weight: var(--d-font-normal);
112
+ padding: var(--d-space-1) var(--d-space-3);
113
+ }
114
+
115
+ .d-select option:checked {
116
+ color: var(--d-accent);
117
+ font-weight: var(--d-font-medium);
118
+ background: var(--d-surface-raised);
119
+ }
120
+
102
121
  .d-input-sm {
103
122
  padding: var(--d-space-1) var(--d-space-2);
104
123
  min-height: 1.75rem;
@@ -21,7 +21,9 @@
21
21
  border: 1px solid transparent;
22
22
  border-radius: var(--d-radius-sm);
23
23
  cursor: pointer;
24
- transition: all var(--d-duration-fast) ease;
24
+ transition:
25
+ background var(--d-duration-fast) var(--d-ease),
26
+ color var(--d-duration-fast) var(--d-ease);
25
27
  text-decoration: none;
26
28
  }
27
29
 
@@ -30,10 +32,15 @@
30
32
  color: var(--d-text-primary);
31
33
  }
32
34
 
35
+ .d-page:focus-visible {
36
+ outline: none;
37
+ box-shadow: 0 0 0 2px var(--d-accent);
38
+ }
39
+
33
40
  .d-page.active,
34
41
  .d-page[aria-current="page"] {
35
42
  background: var(--d-accent);
36
- color: #fff;
43
+ color: var(--d-text-inverse);
37
44
  border-color: var(--d-accent);
38
45
  }
39
46
 
@@ -50,6 +57,6 @@
50
57
  min-width: 2rem;
51
58
  height: 2rem;
52
59
  font-size: var(--d-text-sm);
53
- color: var(--d-text-muted);
60
+ color: var(--d-text-tertiary);
54
61
  cursor: default;
55
62
  }
@@ -3,8 +3,8 @@
3
3
  .d-popover {
4
4
  margin: 0;
5
5
  padding: var(--d-space-4);
6
- border: 1px solid var(--d-border-color);
7
- border-radius: var(--d-radius-md);
6
+ border: 1px solid var(--d-border-light);
7
+ border-radius: var(--d-radius-lg);
8
8
  background: var(--d-surface-card);
9
9
  color: var(--d-text-primary);
10
10
  box-shadow: var(--d-shadow-md);
@@ -16,23 +16,23 @@
16
16
  isolation: isolate;
17
17
 
18
18
  opacity: 0;
19
- transform: scale(0.97);
19
+ transform: scale(0.97) translateY(4px);
20
20
  transition:
21
- opacity var(--d-duration-fast) ease,
22
- transform var(--d-duration-fast) ease,
23
- overlay var(--d-duration-fast) ease allow-discrete,
24
- display var(--d-duration-fast) ease allow-discrete;
21
+ opacity var(--d-duration-fast) var(--d-ease),
22
+ transform var(--d-duration-fast) var(--d-ease),
23
+ overlay var(--d-duration-fast) var(--d-ease) allow-discrete,
24
+ display var(--d-duration-fast) var(--d-ease) allow-discrete;
25
25
  }
26
26
 
27
27
  .d-popover:popover-open {
28
28
  opacity: 1;
29
- transform: scale(1);
29
+ transform: scale(1) translateY(0);
30
30
  }
31
31
 
32
32
  @starting-style {
33
33
  .d-popover:popover-open {
34
34
  opacity: 0;
35
- transform: scale(0.97);
35
+ transform: scale(0.97) translateY(4px);
36
36
  }
37
37
  }
38
38
 
@@ -17,11 +17,13 @@
17
17
  width: 1.125rem;
18
18
  height: 1.125rem;
19
19
  flex-shrink: 0;
20
- background: var(--d-surface-page);
20
+ background: var(--d-surface-card);
21
21
  border: 2px solid var(--d-border-color);
22
22
  border-radius: 50%;
23
23
  cursor: pointer;
24
- transition: all var(--d-duration-fast) ease;
24
+ transition:
25
+ border-color var(--d-duration-fast) var(--d-ease),
26
+ border-width var(--d-duration-fast) var(--d-ease);
25
27
  }
26
28
 
27
29
  .d-radio input:checked {
@@ -31,7 +33,7 @@
31
33
 
32
34
  .d-radio input:focus-visible {
33
35
  outline: none;
34
- box-shadow: var(--d-shadow-glow);
36
+ box-shadow: 0 0 0 2px var(--d-surface-page), 0 0 0 4px var(--d-accent);
35
37
  }
36
38
 
37
39
  .d-radio input:disabled {
@@ -3,7 +3,7 @@
3
3
  .d-separator {
4
4
  border: none;
5
5
  height: 1px;
6
- background: var(--d-border-color);
6
+ background: var(--d-border-light);
7
7
  margin: var(--d-space-4) 0;
8
8
  }
9
9
 
@@ -23,7 +23,7 @@
23
23
  gap: var(--d-space-3);
24
24
  font-family: var(--d-font-sans);
25
25
  font-size: var(--d-text-xs);
26
- color: var(--d-text-muted);
26
+ color: var(--d-text-tertiary);
27
27
  text-transform: uppercase;
28
28
  letter-spacing: 0.05em;
29
29
  margin: var(--d-space-4) 0;
@@ -34,5 +34,5 @@
34
34
  content: "";
35
35
  flex: 1;
36
36
  height: 1px;
37
- background: var(--d-border-color);
37
+ background: var(--d-border-light);
38
38
  }
@@ -9,25 +9,15 @@
9
9
  display: block;
10
10
  background: linear-gradient(
11
11
  90deg,
12
- var(--d-surface-card) 25%,
13
- var(--d-surface-raised) 50%,
14
- var(--d-surface-card) 75%
12
+ var(--d-surface-raised) 25%,
13
+ var(--d-surface-card) 50%,
14
+ var(--d-surface-raised) 75%
15
15
  );
16
16
  background-size: 200% 100%;
17
17
  animation: d-shimmer 1.6s ease infinite;
18
18
  border-radius: var(--d-radius-sm);
19
19
  }
20
20
 
21
- [data-theme="light"] .d-skeleton {
22
- background: linear-gradient(
23
- 90deg,
24
- #ececec 25%,
25
- #f4f4f4 50%,
26
- #ececec 75%
27
- );
28
- background-size: 200% 100%;
29
- }
30
-
31
21
  .d-skeleton-text {
32
22
  height: 0.875rem;
33
23
  width: 100%;
@@ -16,10 +16,10 @@
16
16
  width: 1.125rem;
17
17
  height: 1.125rem;
18
18
  background: var(--d-accent);
19
- border: 2px solid #fff;
19
+ border: 2px solid var(--d-surface-card);
20
20
  border-radius: 50%;
21
21
  cursor: pointer;
22
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
22
+ box-shadow: var(--d-shadow-xs);
23
23
  transition: transform var(--d-duration-fast) var(--d-ease-bounce);
24
24
  }
25
25
 
@@ -27,10 +27,10 @@
27
27
  width: 1.125rem;
28
28
  height: 1.125rem;
29
29
  background: var(--d-accent);
30
- border: 2px solid #fff;
30
+ border: 2px solid var(--d-surface-card);
31
31
  border-radius: 50%;
32
32
  cursor: pointer;
33
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
33
+ box-shadow: var(--d-shadow-xs);
34
34
  transition: transform var(--d-duration-fast) var(--d-ease-bounce);
35
35
  }
36
36
 
@@ -43,7 +43,7 @@
43
43
  }
44
44
 
45
45
  .d-slider:focus-visible {
46
- box-shadow: var(--d-shadow-glow);
46
+ box-shadow: 0 0 0 2px var(--d-surface-page), 0 0 0 4px var(--d-accent);
47
47
  }
48
48
 
49
49
  .d-slider:disabled {
@@ -4,7 +4,7 @@
4
4
  width: 100%;
5
5
  overflow-x: auto;
6
6
  border: 1px solid var(--d-border-color);
7
- border-radius: var(--d-radius-md);
7
+ border-radius: var(--d-radius-lg);
8
8
  }
9
9
 
10
10
  .d-table {
@@ -21,7 +21,7 @@
21
21
  font-size: var(--d-text-xs);
22
22
  text-transform: uppercase;
23
23
  letter-spacing: 0.05em;
24
- color: var(--d-text-muted);
24
+ color: var(--d-text-tertiary);
25
25
  text-align: left;
26
26
  background: var(--d-surface-raised);
27
27
  border-bottom: 1px solid var(--d-border-color);
@@ -29,7 +29,7 @@
29
29
 
30
30
  .d-table td {
31
31
  padding: var(--d-space-3) var(--d-space-4);
32
- border-bottom: 1px solid var(--d-border-color);
32
+ border-bottom: 1px solid var(--d-border-light);
33
33
  }
34
34
 
35
35
  .d-table tbody tr:last-child td {
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  .d-table tbody tr {
40
- transition: background var(--d-duration-fast) ease;
40
+ transition: background var(--d-duration-fast) var(--d-ease);
41
41
  }
42
42
 
43
43
  .d-table tbody tr:hover {
@@ -22,7 +22,10 @@
22
22
  border-bottom: 2px solid transparent;
23
23
  cursor: pointer;
24
24
  white-space: nowrap;
25
- transition: all var(--d-duration-fast) ease;
25
+ transition:
26
+ color var(--d-duration-fast) var(--d-ease),
27
+ border-color var(--d-duration-fast) var(--d-ease),
28
+ background var(--d-duration-fast) var(--d-ease);
26
29
  margin-bottom: -1px;
27
30
  }
28
31
 
@@ -71,4 +74,5 @@
71
74
  background: var(--d-surface-card);
72
75
  color: var(--d-text-primary);
73
76
  border-color: var(--d-border-color);
77
+ box-shadow: var(--d-shadow-xs);
74
78
  }
@@ -30,9 +30,9 @@
30
30
  gap: var(--d-space-3);
31
31
  padding: var(--d-space-4) var(--d-space-4) var(--d-space-4) var(--d-space-5);
32
32
  background: var(--d-surface-card);
33
- border: 1px solid var(--d-border-color);
33
+ border: 1px solid var(--d-border-light);
34
34
  border-radius: var(--d-radius-lg);
35
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
35
+ box-shadow: var(--d-shadow-md);
36
36
  font-family: var(--d-font-sans);
37
37
  animation: d-toast-in var(--d-duration-slow) var(--d-ease) forwards;
38
38
  }
@@ -72,29 +72,41 @@
72
72
  color: var(--d-text-muted);
73
73
  cursor: pointer;
74
74
  border-radius: var(--d-radius-sm);
75
- transition: color var(--d-duration-fast) ease;
75
+ transition:
76
+ color var(--d-duration-fast) var(--d-ease),
77
+ background var(--d-duration-fast) var(--d-ease);
76
78
  }
77
79
 
78
80
  .d-toast-close:hover {
79
81
  color: var(--d-text-primary);
82
+ background: var(--d-surface-raised);
83
+ }
84
+
85
+ .d-toast-close:focus-visible {
86
+ outline: none;
87
+ box-shadow: 0 0 0 2px var(--d-accent);
80
88
  }
81
89
 
82
90
  .d-toast-success {
83
91
  --_tone: var(--d-success);
84
92
  --_tone-bg: var(--d-success-light);
93
+ border-left: 3px solid var(--d-success);
85
94
  }
86
95
 
87
96
  .d-toast-error {
88
97
  --_tone: var(--d-error);
89
98
  --_tone-bg: var(--d-error-light);
99
+ border-left: 3px solid var(--d-error);
90
100
  }
91
101
 
92
102
  .d-toast-warning {
93
103
  --_tone: var(--d-warning);
94
104
  --_tone-bg: var(--d-warning-light);
105
+ border-left: 3px solid var(--d-warning);
95
106
  }
96
107
 
97
108
  .d-toast-info {
98
109
  --_tone: var(--d-info);
99
110
  --_tone-bg: var(--d-info-light);
111
+ border-left: 3px solid var(--d-info);
100
112
  }
@@ -25,11 +25,13 @@
25
25
  width: 2.75rem;
26
26
  height: 1.5rem;
27
27
 
28
- background: var(--d-surface-raised);
28
+ background: var(--d-border-color);
29
29
  border: 1px solid var(--d-border-color);
30
30
  border-radius: var(--d-radius-full);
31
31
 
32
- transition: background var(--d-duration-fast) ease, border-color var(--d-duration-fast) ease;
32
+ transition:
33
+ background var(--d-duration-fast) var(--d-ease),
34
+ border-color var(--d-duration-fast) var(--d-ease);
33
35
  }
34
36
 
35
37
  .d-toggle-track::after {
@@ -40,13 +42,12 @@
40
42
  width: 1.125rem;
41
43
  height: 1.125rem;
42
44
 
43
- background: #ffffff;
45
+ background: var(--d-surface-card);
44
46
  border-radius: 50%;
45
- transition: transform var(--d-duration) var(--d-ease-bounce);
46
- }
47
-
48
- [data-theme="light"] .d-toggle-track::after {
49
- background: #0a0a0a;
47
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
48
+ transition:
49
+ transform var(--d-duration) var(--d-ease-bounce),
50
+ background var(--d-duration-fast) var(--d-ease);
50
51
  }
51
52
 
52
53
  .d-toggle input:checked + .d-toggle-track {
@@ -56,11 +57,12 @@
56
57
 
57
58
  .d-toggle input:checked + .d-toggle-track::after {
58
59
  transform: translateX(1.25rem);
60
+ background: var(--d-text-inverse);
59
61
  }
60
62
 
61
63
  .d-toggle input:focus-visible + .d-toggle-track {
62
64
  outline: none;
63
- box-shadow: var(--d-shadow-glow);
65
+ box-shadow: 0 0 0 2px var(--d-surface-page), 0 0 0 4px var(--d-accent);
64
66
  }
65
67
 
66
68
  .d-toggle input:disabled + .d-toggle-track {
@@ -3,13 +3,14 @@
3
3
  :root,
4
4
  [data-theme="light"] {
5
5
  --d-bg: #ffffff;
6
- --d-bg-card: #f8f8f8;
7
- --d-bg-elevated: #f0f0f0;
6
+ --d-bg-card: #ffffff;
7
+ --d-bg-elevated: #f5f5f5;
8
8
  --d-fg: #0a0a0a;
9
9
  --d-fg-muted: #6b7280;
10
10
  --d-accent: #2563eb;
11
11
  --d-accent-hover: #1d4ed8;
12
12
  --d-border: #e5e5e5;
13
+ --d-border-light: rgba(0, 0, 0, 0.06);
13
14
 
14
15
  --d-primary-50: #eff6ff;
15
16
  --d-primary-100: #dbeafe;
@@ -101,8 +102,8 @@
101
102
  --d-radius-xl: 14px;
102
103
  --d-radius-full: 9999px;
103
104
 
104
- --d-shadow-xs: none;
105
- --d-shadow-sm: none;
105
+ --d-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
106
+ --d-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
106
107
  --d-shadow-md: 0 10px 26px rgba(0, 0, 0, 0.08);
107
108
  --d-shadow-lg: 0 18px 42px rgba(0, 0, 0, 0.12);
108
109
  --d-shadow-glow: 0 0 0 1px var(--d-accent);
@@ -120,6 +121,7 @@
120
121
 
121
122
  --d-text-primary: var(--d-fg);
122
123
  --d-text-secondary: var(--d-fg-muted);
124
+ --d-text-tertiary: #a1a1aa;
123
125
  --d-text-muted: var(--d-fg-muted);
124
126
  --d-text-inverse: #ffffff;
125
127
 
@@ -144,6 +146,12 @@
144
146
  --d-accent: #3b82f6;
145
147
  --d-accent-hover: #2563eb;
146
148
  --d-border: #262626;
149
+ --d-border-light: rgba(255, 255, 255, 0.06);
150
+
151
+ --d-text-tertiary: #52525b;
152
+
153
+ --d-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.2);
154
+ --d-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
147
155
 
148
156
  --d-success: #22c55e;
149
157
  --d-success-light: rgba(34, 197, 94, 0.14);
@@ -9,18 +9,20 @@
9
9
  position: absolute;
10
10
  bottom: calc(100% + 6px);
11
11
  left: 50%;
12
- transform: translateX(-50%);
12
+ transform: translateX(-50%) translateY(4px);
13
13
  padding: var(--d-space-1) var(--d-space-2);
14
14
  font-family: var(--d-font-sans);
15
15
  font-size: var(--d-text-xs);
16
16
  font-weight: var(--d-font-medium);
17
- color: #fff;
17
+ color: var(--d-text-inverse);
18
18
  background: var(--d-slate-900);
19
19
  border-radius: var(--d-radius-sm);
20
20
  white-space: nowrap;
21
21
  pointer-events: none;
22
22
  opacity: 0;
23
- transition: opacity var(--d-duration-fast) ease;
23
+ transition:
24
+ opacity var(--d-duration-fast) var(--d-ease),
25
+ transform var(--d-duration-fast) var(--d-ease);
24
26
  z-index: var(--d-z-tooltip);
25
27
  }
26
28
 
@@ -30,11 +32,17 @@
30
32
 
31
33
  .d-tooltip:hover::after {
32
34
  opacity: 1;
35
+ transform: translateX(-50%) translateY(0);
33
36
  }
34
37
 
35
38
  .d-tooltip-bottom::after {
36
39
  bottom: auto;
37
40
  top: calc(100% + 6px);
41
+ transform: translateX(-50%) translateY(-4px);
42
+ }
43
+
44
+ .d-tooltip-bottom:hover::after {
45
+ transform: translateX(-50%) translateY(0);
38
46
  }
39
47
 
40
48
  .d-tooltip-left::after {
@@ -42,12 +50,20 @@
42
50
  top: 50%;
43
51
  left: auto;
44
52
  right: calc(100% + 6px);
45
- transform: translateY(-50%);
53
+ transform: translateY(-50%) translateX(4px);
54
+ }
55
+
56
+ .d-tooltip-left:hover::after {
57
+ transform: translateY(-50%) translateX(0);
46
58
  }
47
59
 
48
60
  .d-tooltip-right::after {
49
61
  bottom: auto;
50
62
  top: 50%;
51
63
  left: calc(100% + 6px);
52
- transform: translateY(-50%);
64
+ transform: translateY(-50%) translateX(-4px);
65
+ }
66
+
67
+ .d-tooltip-right:hover::after {
68
+ transform: translateY(-50%) translateX(0);
53
69
  }
@@ -40,7 +40,7 @@
40
40
  .d-link {
41
41
  color: var(--d-accent);
42
42
  text-decoration: none;
43
- transition: color var(--d-duration-fast) ease;
43
+ transition: color var(--d-duration-fast) var(--d-ease);
44
44
  }
45
45
 
46
46
  .d-link:hover {