@santi020k/lumen 2.1.0 → 3.0.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.
@@ -23,12 +23,12 @@
23
23
  "packages/compose/wear/src/main/kotlin/com/santi020k/lumen/wear"
24
24
  ],
25
25
  "toolchain": {
26
- "androidGradlePlugin": "9.3.1",
26
+ "androidGradlePlugin": "9.4.1",
27
27
  "compileSdk": 37,
28
- "gradle": "9.7.1",
28
+ "gradle": "9.8.0",
29
29
  "instrumentationApi": 35,
30
30
  "jdk": 21,
31
- "kotlin": "2.4.10",
31
+ "kotlin": "2.4.20",
32
32
  "minSdk": 23
33
33
  }
34
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@santi020k/lumen",
3
- "version": "2.1.0",
3
+ "version": "3.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -45,18 +45,18 @@
45
45
  "lumen": "./bin/lumen.mjs"
46
46
  },
47
47
  "dependencies": {
48
- "semver": "^7.8.5",
49
- "@santi020k/lumen-core": "^2.1.0"
48
+ "@santi020k/lumen-core": "^3.0.0",
49
+ "semver": "^7.8.5"
50
50
  },
51
51
  "devDependencies": {
52
- "@types/node": "^26.4.0",
53
- "@types/react": "^19.2.18",
52
+ "@types/node": "^26.6.2",
53
+ "@types/react": "~19.2.4",
54
54
  "@types/semver": "^7.8.0",
55
- "@vitest/coverage-v8": "^4.1.11",
56
- "react": "^19.2.8",
55
+ "@vitest/coverage-v8": "^5.0.1",
56
+ "react": "19.2.3",
57
57
  "tailwindcss": "^4.3.3",
58
- "typescript": "^6.0.3",
59
- "vitest": "^4.1.11"
58
+ "typescript": "~6.0.3",
59
+ "vitest": "^5.0.1"
60
60
  },
61
61
  "engines": {
62
62
  "node": ">=22.12.0"
@@ -6,7 +6,7 @@
6
6
  "com.santi020k:lumen-compose",
7
7
  "com.santi020k:lumen-compose-wear"
8
8
  ],
9
- "version": "2.1.0"
9
+ "version": "3.0.0"
10
10
  },
11
11
  "npm": {
12
12
  "packages": {
@@ -14,41 +14,41 @@
14
14
  "peerDependencies": {
15
15
  "astro": ">=5"
16
16
  },
17
- "version": "2.1.0"
17
+ "version": "3.0.0"
18
18
  },
19
19
  "@santi020k/lumen-core": {
20
20
  "peerDependencies": {},
21
- "version": "2.1.0"
21
+ "version": "3.0.0"
22
22
  },
23
23
  "@santi020k/lumen-elements": {
24
24
  "peerDependencies": {},
25
- "version": "2.1.0"
25
+ "version": "3.0.0"
26
26
  },
27
27
  "@santi020k/lumen-icons-brand": {
28
28
  "peerDependencies": {},
29
- "version": "2.0.0"
29
+ "version": "3.0.0"
30
30
  },
31
31
  "@santi020k/lumen": {
32
32
  "peerDependencies": {},
33
- "version": "2.1.0"
33
+ "version": "3.0.0"
34
34
  },
35
35
  "@santi020k/lumen-mcp": {
36
36
  "peerDependencies": {},
37
- "version": "2.1.0"
37
+ "version": "3.0.0"
38
38
  },
39
39
  "@santi020k/lumen-react": {
40
40
  "peerDependencies": {
41
41
  "react": ">=19"
42
42
  },
43
- "version": "2.1.0"
43
+ "version": "3.0.0"
44
44
  },
45
45
  "@santi020k/lumen-react-hook-form": {
46
46
  "peerDependencies": {
47
- "@santi020k/lumen-react": "^2.0.0",
47
+ "@santi020k/lumen-react": "^3.0.0",
48
48
  "react": ">=19",
49
49
  "react-hook-form": ">=7.76.0 <8"
50
50
  },
51
- "version": "2.0.0"
51
+ "version": "3.0.0"
52
52
  },
53
53
  "@santi020k/lumen-react-native": {
54
54
  "peerDependencies": {
@@ -57,42 +57,32 @@
57
57
  "react-native": ">=0.86.2",
58
58
  "react-native-svg": ">=12 <16"
59
59
  },
60
- "version": "2.1.0"
60
+ "version": "3.0.0"
61
61
  },
62
62
  "@santi020k/lumen-tokens": {
63
63
  "peerDependencies": {},
64
- "version": "2.0.0"
64
+ "version": "3.0.0"
65
65
  }
66
66
  }
67
67
  },
68
68
  "swift": {
69
69
  "package": "https://github.com/santi020k/lumen.git",
70
70
  "revision": null,
71
- "tag": "v2.1.0"
71
+ "tag": "v3.0.0"
72
72
  },
73
- "version": "2.1.0"
73
+ "version": "3.0.0"
74
74
  },
75
75
  "migration": {
76
- "codemod": "lumen migrate v2 --dry-run",
76
+ "codemod": null,
77
77
  "css": {
78
78
  "astro": "@santi020k/lumen-astro/styles.css",
79
79
  "elements": "@santi020k/lumen-elements/styles.css",
80
80
  "react": "@santi020k/lumen-react/styles.css"
81
81
  },
82
82
  "deprecatedExports": [],
83
- "removedExports": [
84
- "@santi020k/lumen-astro#Sonner",
85
- "@santi020k/lumen-astro#UIPrimitives",
86
- "@santi020k/lumen-react#Sonner",
87
- "@santi020k/lumen-react#SonnerProps",
88
- "@santi020k/lumen-react-native#LumenDateField",
89
- "@santi020k/lumen-react-native#LumenDateFieldProps",
90
- "@santi020k/lumen-react-native#LumenDateRangeField",
91
- "@santi020k/lumen-react-native#LumenDateRangeFieldProps",
92
- "@santi020k/lumen-react-native#LumenDateRangeValue"
93
- ],
83
+ "removedExports": [],
94
84
  "runtime": {
95
- "astro": "Import UIPrimitives from @santi020k/lumen-astro/runtime and mount it once when an imported component declares the ui-primitives runtime.",
85
+ "astro": "Mount UIPrimitives once when an imported component declares the ui-primitives runtime.",
96
86
  "elements": "Call defineLumenElements once before rendering lumen-* elements.",
97
87
  "react": "Use the public React behavior hooks for behavior-heavy primitives."
98
88
  }
@@ -698,7 +698,7 @@
698
698
  .ui-badge--warning {
699
699
  background: hsl(var(--warning) / 0.12);
700
700
  border-color: hsl(var(--warning) / 0.36);
701
- color: hsl(var(--warning));
701
+ color: hsl(var(--ink));
702
702
  }
703
703
 
704
704
  .ui-input,
@@ -893,7 +893,7 @@
893
893
  .ui-field > p,
894
894
  .ui-field > small {
895
895
  margin: 0;
896
- color: hsl(var(--ink-muted));
896
+ color: hsl(var(--ink-soft));
897
897
  font-size: 0.8125rem;
898
898
  line-height: 1.5;
899
899
  }
@@ -1190,6 +1190,61 @@
1190
1190
  font-size: 0.875rem;
1191
1191
  }
1192
1192
 
1193
+ .ui-table__label {
1194
+ display: none;
1195
+ }
1196
+
1197
+ @media (max-width: 48rem) {
1198
+ .ui-table-wrap--records table,
1199
+ .ui-table-wrap--records tbody {
1200
+ display: block;
1201
+ min-width: 0;
1202
+ }
1203
+
1204
+ .ui-table-wrap--records thead {
1205
+ position: absolute;
1206
+ width: 1px;
1207
+ height: 1px;
1208
+ padding: 0;
1209
+ overflow: hidden;
1210
+ clip-path: inset(50%);
1211
+ white-space: nowrap;
1212
+ }
1213
+
1214
+ .ui-table-wrap--records tbody tr {
1215
+ display: grid;
1216
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
1217
+ gap: 1rem;
1218
+ padding: 1rem;
1219
+ }
1220
+
1221
+ .ui-table-wrap--records tbody tr + tr {
1222
+ border-top: 1px solid hsl(var(--line));
1223
+ }
1224
+
1225
+ .ui-table-wrap--records tbody td {
1226
+ display: block;
1227
+ min-width: 0;
1228
+ padding: 0;
1229
+ border: 0;
1230
+ overflow-wrap: anywhere;
1231
+ white-space: normal;
1232
+ text-align: start;
1233
+ }
1234
+
1235
+ .ui-table-wrap--records .ui-table__label {
1236
+ display: block;
1237
+ margin-bottom: 0.25rem;
1238
+ color: hsl(var(--ink-soft));
1239
+ font-size: 0.75rem;
1240
+ font-weight: 600;
1241
+ }
1242
+
1243
+ .ui-table-wrap--records .ui-table__cell--wide {
1244
+ grid-column: 1 / -1;
1245
+ }
1246
+ }
1247
+
1193
1248
  .ui-table-wrap th,
1194
1249
  .ui-data-table th {
1195
1250
  border-bottom: 1px solid hsl(var(--line));
package/styles.css CHANGED
@@ -1491,7 +1491,7 @@
1491
1491
  .ui-badge--warning {
1492
1492
  background: hsl(var(--warning) / 0.12);
1493
1493
  border-color: hsl(var(--warning) / 0.36);
1494
- color: hsl(var(--warning));
1494
+ color: hsl(var(--ink));
1495
1495
  }
1496
1496
 
1497
1497
  .ui-input,
@@ -1734,7 +1734,7 @@
1734
1734
  .ui-field > p,
1735
1735
  .ui-field > small {
1736
1736
  margin: 0;
1737
- color: hsl(var(--ink-muted));
1737
+ color: hsl(var(--ink-soft));
1738
1738
  font-size: 0.8125rem;
1739
1739
  line-height: 1.5;
1740
1740
  }
@@ -2795,6 +2795,62 @@
2795
2795
  font-size: 0.875rem;
2796
2796
  }
2797
2797
 
2798
+ /* Mobile record labels are aria-hidden; retain explicit table roles. */
2799
+ .ui-table__label {
2800
+ display: none;
2801
+ }
2802
+
2803
+ @media (max-width: 48rem) {
2804
+ .ui-table-wrap--records table,
2805
+ .ui-table-wrap--records tbody {
2806
+ display: block;
2807
+ min-width: 0;
2808
+ }
2809
+
2810
+ .ui-table-wrap--records thead {
2811
+ position: absolute;
2812
+ width: 1px;
2813
+ height: 1px;
2814
+ padding: 0;
2815
+ overflow: hidden;
2816
+ clip-path: inset(50%);
2817
+ white-space: nowrap;
2818
+ }
2819
+
2820
+ .ui-table-wrap--records tbody tr {
2821
+ display: grid;
2822
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
2823
+ gap: 1rem;
2824
+ padding: 1rem;
2825
+ }
2826
+
2827
+ .ui-table-wrap--records tbody tr + tr {
2828
+ border-top: 1px solid hsl(var(--line));
2829
+ }
2830
+
2831
+ .ui-table-wrap--records tbody td {
2832
+ display: block;
2833
+ min-width: 0;
2834
+ padding: 0;
2835
+ border: 0;
2836
+ overflow-wrap: anywhere;
2837
+ white-space: normal;
2838
+ text-align: start;
2839
+ }
2840
+
2841
+ .ui-table-wrap--records .ui-table__label {
2842
+ display: block;
2843
+ margin-bottom: 0.25rem;
2844
+ color: hsl(var(--ink-soft));
2845
+ font-size: 0.75rem;
2846
+ font-weight: 600;
2847
+ }
2848
+
2849
+ .ui-table-wrap--records .ui-table__cell--wide {
2850
+ grid-column: 1 / -1;
2851
+ }
2852
+ }
2853
+
2798
2854
  .ui-table-wrap th,
2799
2855
  .ui-data-table th {
2800
2856
  border-bottom: 1px solid hsl(var(--line));