mac-human-design 0.1.17 → 0.1.19

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/changelog.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  This file tracks changes between published npm versions of `mac-human-design`.
4
4
 
5
+ ## 0.1.19
6
+
7
+ ### Fixed
8
+
9
+ - Declared Tauri's `cfg(mobile)` build configuration in the shared system
10
+ symbols crate so macOS consumers no longer see an `unexpected_cfgs` warning
11
+ when running native builds.
12
+
13
+ ### Changed
14
+
15
+ - Bumped the package to `0.1.19`.
16
+
17
+ ## 0.1.18
18
+
19
+ ### Changed
20
+
21
+ - Added Motion-backed entrance behavior and live-region semantics to
22
+ `StatusMessage`.
23
+ - Added shared motion defaults for toast surfaces, chips, chip remove buttons,
24
+ and scroll thumbs.
25
+ - Tuned floating surface transform origins from placement side attributes, plus
26
+ hover and transition polish for avatars, chips, scrollbars, and status
27
+ surfaces.
28
+ - Bumped the package to `0.1.18`.
29
+
5
30
  ## 0.1.17
6
31
 
7
32
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mac-human-design",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "Reusable macOS-oriented UI primitives and SF Symbols bridge for Tauri apps.",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -200,7 +200,7 @@ function getMotionDefaults(macClassName: string, props: Record<string, unknown>)
200
200
  };
201
201
  }
202
202
 
203
- if (includesAny(macClassName, ["hd-mac-popup", "hd-mac-popover", "hd-mac-preview-card"])) {
203
+ if (includesAny(macClassName, ["hd-mac-popup", "hd-mac-popover", "hd-mac-preview-card", "hd-mac-toast"])) {
204
204
  return fadeScaleDefaults({ opacity: 0, scale: 0.97, y: 4 });
205
205
  }
206
206
 
@@ -261,6 +261,23 @@ function getMotionDefaults(macClassName: string, props: Record<string, unknown>)
261
261
  return fadeScaleDefaults({ opacity: 0, scale: 0.92 });
262
262
  }
263
263
 
264
+ if (includesAny(macClassName, ["hd-mac-chip", "hd-mac-chip-remove"])) {
265
+ return {
266
+ initial: { opacity: 0, scale: 0.94 },
267
+ animate: { opacity: 1, scale: 1 },
268
+ whileHover: macClassName.includes("hd-mac-chip-remove") ? { scale: 1.08 } : { scale: 1.015 },
269
+ whileTap: { scale: 0.96 },
270
+ transition: macFastTransition,
271
+ };
272
+ }
273
+
274
+ if (macClassName.includes("hd-mac-scroll-thumb")) {
275
+ return {
276
+ whileHover: { scaleX: 1.18 },
277
+ transition: macFastTransition,
278
+ };
279
+ }
280
+
264
281
  if (includesAny(macClassName, ["hd-mac-error-text", "hd-mac-help-text", "hd-mac-status-text", "hd-mac-validity"])) {
265
282
  return fadeScaleDefaults({ opacity: 0, y: -3 }, { opacity: 1, y: 0 }, macFastTransition);
266
283
  }
@@ -1,3 +1,5 @@
1
+ import { motion } from "motion/react";
2
+
1
3
  type StatusMessageProps = {
2
4
  intent: "error" | "success" | "info";
3
5
  message: string;
@@ -5,8 +7,15 @@ type StatusMessageProps = {
5
7
 
6
8
  export function StatusMessage({ intent, message }: StatusMessageProps) {
7
9
  return (
8
- <div className="hd-mac-status-message" data-intent={intent}>
10
+ <motion.div
11
+ initial={{ opacity: 0, y: -4, scale: 0.99 }}
12
+ animate={{ opacity: 1, y: 0, scale: 1 }}
13
+ transition={{ type: "spring", stiffness: 520, damping: 38, mass: 0.8 }}
14
+ className="hd-mac-status-message"
15
+ data-intent={intent}
16
+ role={intent === "error" ? "alert" : "status"}
17
+ >
9
18
  {message}
10
- </div>
19
+ </motion.div>
11
20
  );
12
21
  }
@@ -70,6 +70,12 @@
70
70
  .hd-mac-radio,
71
71
  .hd-mac-tab,
72
72
  .hd-mac-menu-item,
73
+ .hd-mac-toast,
74
+ .hd-mac-chip,
75
+ .hd-mac-chip-remove,
76
+ .hd-mac-avatar,
77
+ .hd-mac-scroll-thumb,
78
+ .hd-mac-status-message,
73
79
  .hd-mac-window-toolbar,
74
80
  .hd-mac-data-table,
75
81
  .hd-mac-data-table-row {
@@ -134,6 +140,12 @@
134
140
  background: color-mix(in srgb, var(--hd-mac-blue) 10%, transparent);
135
141
  color: var(--hd-mac-blue-active);
136
142
  font: 400 13px/18px var(--hd-mac-font);
143
+ transform-origin: top center;
144
+ transition:
145
+ background-color var(--hd-mac-motion-standard),
146
+ border-color var(--hd-mac-motion-standard),
147
+ color var(--hd-mac-motion-standard),
148
+ box-shadow var(--hd-mac-motion-standard);
137
149
  }
138
150
 
139
151
  .hd-mac-status-message[data-intent="error"] {
@@ -535,6 +547,38 @@
535
547
  box-shadow var(--hd-mac-motion-surface);
536
548
  }
537
549
 
550
+ .hd-mac-positioner[data-side="top"] .hd-mac-popup,
551
+ .hd-mac-positioner[data-side="top"] .hd-mac-popover,
552
+ .hd-mac-positioner[data-side="top"] .hd-mac-preview-card,
553
+ .hd-mac-positioner[data-side="top"] .hd-mac-menu,
554
+ .hd-mac-positioner[data-side="top"] .hd-mac-tooltip {
555
+ transform-origin: bottom center;
556
+ }
557
+
558
+ .hd-mac-positioner[data-side="bottom"] .hd-mac-popup,
559
+ .hd-mac-positioner[data-side="bottom"] .hd-mac-popover,
560
+ .hd-mac-positioner[data-side="bottom"] .hd-mac-preview-card,
561
+ .hd-mac-positioner[data-side="bottom"] .hd-mac-menu,
562
+ .hd-mac-positioner[data-side="bottom"] .hd-mac-tooltip {
563
+ transform-origin: top center;
564
+ }
565
+
566
+ .hd-mac-positioner[data-side="left"] .hd-mac-popup,
567
+ .hd-mac-positioner[data-side="left"] .hd-mac-popover,
568
+ .hd-mac-positioner[data-side="left"] .hd-mac-preview-card,
569
+ .hd-mac-positioner[data-side="left"] .hd-mac-menu,
570
+ .hd-mac-positioner[data-side="left"] .hd-mac-tooltip {
571
+ transform-origin: center right;
572
+ }
573
+
574
+ .hd-mac-positioner[data-side="right"] .hd-mac-popup,
575
+ .hd-mac-positioner[data-side="right"] .hd-mac-popover,
576
+ .hd-mac-positioner[data-side="right"] .hd-mac-preview-card,
577
+ .hd-mac-positioner[data-side="right"] .hd-mac-menu,
578
+ .hd-mac-positioner[data-side="right"] .hd-mac-tooltip {
579
+ transform-origin: center left;
580
+ }
581
+
538
582
  .hd-mac-popup,
539
583
  .hd-mac-popover,
540
584
  .hd-mac-preview-card,
@@ -1131,6 +1175,14 @@
1131
1175
  background: var(--hd-mac-fill-pressed);
1132
1176
  color: var(--hd-mac-secondary-text);
1133
1177
  font: 590 13px/18px var(--hd-mac-font);
1178
+ box-shadow:
1179
+ 0 1px 0 rgba(255, 255, 255, 0.2) inset,
1180
+ 0 1px 2px rgba(0, 0, 0, 0.12);
1181
+ transform-origin: center;
1182
+ transition:
1183
+ background-color var(--hd-mac-motion-standard),
1184
+ box-shadow var(--hd-mac-motion-standard),
1185
+ transform var(--hd-mac-motion-fast);
1134
1186
  }
1135
1187
 
1136
1188
  .hd-mac-avatar-image {
@@ -1144,6 +1196,7 @@
1144
1196
  width: 100%;
1145
1197
  height: 100%;
1146
1198
  place-items: center;
1199
+ transform-origin: center;
1147
1200
  }
1148
1201
 
1149
1202
  .hd-mac-collapsible {
@@ -1167,12 +1220,34 @@
1167
1220
  background: var(--hd-mac-fill);
1168
1221
  color: var(--hd-mac-text);
1169
1222
  font: 400 12px/16px var(--hd-mac-font);
1223
+ transform-origin: center;
1224
+ transition:
1225
+ background-color var(--hd-mac-motion-standard),
1226
+ color var(--hd-mac-motion-standard),
1227
+ box-shadow var(--hd-mac-motion-standard),
1228
+ transform var(--hd-mac-motion-fast);
1229
+ }
1230
+
1231
+ .hd-mac-chip:hover {
1232
+ background: var(--hd-mac-fill-hover);
1233
+ box-shadow: 0 1px 1px rgba(15, 23, 42, 0.08);
1170
1234
  }
1171
1235
 
1172
1236
  .hd-mac-chip-remove {
1173
1237
  border: 0;
1238
+ border-radius: 999px;
1174
1239
  background: transparent;
1175
1240
  color: var(--hd-mac-muted-text);
1241
+ transform-origin: center;
1242
+ transition:
1243
+ background-color var(--hd-mac-motion-fast),
1244
+ color var(--hd-mac-motion-fast),
1245
+ transform var(--hd-mac-motion-fast);
1246
+ }
1247
+
1248
+ .hd-mac-chip-remove:hover {
1249
+ background: var(--hd-mac-fill-hover);
1250
+ color: var(--hd-mac-text);
1176
1251
  }
1177
1252
 
1178
1253
  .hd-mac-scroll-area {
@@ -1196,12 +1271,28 @@
1196
1271
  width: 10px;
1197
1272
  padding: 2px;
1198
1273
  background: transparent;
1274
+ opacity: 0.72;
1275
+ transition:
1276
+ opacity var(--hd-mac-motion-standard),
1277
+ width var(--hd-mac-motion-standard);
1278
+ }
1279
+
1280
+ .hd-mac-scroll-area:hover .hd-mac-scrollbar {
1281
+ opacity: 1;
1199
1282
  }
1200
1283
 
1201
1284
  .hd-mac-scroll-thumb {
1202
1285
  flex: 1;
1203
1286
  border-radius: 999px;
1204
1287
  background: color-mix(in srgb, var(--hd-mac-muted-text) 42%, transparent);
1288
+ transform-origin: center;
1289
+ transition:
1290
+ background-color var(--hd-mac-motion-standard),
1291
+ transform var(--hd-mac-motion-fast);
1292
+ }
1293
+
1294
+ .hd-mac-scroll-thumb:hover {
1295
+ background: color-mix(in srgb, var(--hd-mac-muted-text) 60%, transparent);
1205
1296
  }
1206
1297
 
1207
1298
  .hd-mac-scroll-corner {
@@ -1231,6 +1322,12 @@
1231
1322
  .hd-mac-toast {
1232
1323
  border-radius: 12px;
1233
1324
  padding: 12px;
1325
+ transform-origin: bottom right;
1326
+ transition:
1327
+ opacity var(--hd-mac-motion-surface),
1328
+ transform var(--hd-mac-motion-surface),
1329
+ box-shadow var(--hd-mac-motion-surface),
1330
+ border-color var(--hd-mac-motion-standard);
1234
1331
  }
1235
1332
 
1236
1333
  .hd-mac-toast-positioner {
@@ -9,6 +9,9 @@ license = "MIT"
9
9
  [dependencies]
10
10
  tauri = { version = "2", features = ["macos-private-api"] }
11
11
 
12
+ [lints.rust]
13
+ unexpected_cfgs = { level = "warn", check-cfg = ['cfg(mobile)'] }
14
+
12
15
  [target.'cfg(target_os = "macos")'.dependencies]
13
16
  base64 = "0.22"
14
17
  objc2 = "0.6"