mac-human-design 0.1.20 → 0.1.21

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,21 @@
2
2
 
3
3
  This file tracks changes between published npm versions of `mac-human-design`.
4
4
 
5
+ ## 0.1.21
6
+
7
+ ### Added
8
+
9
+ - Added macOS gallery coverage for loading and disabled `SymbolIconButton`
10
+ states plus info, success, and error `StatusMessage` states.
11
+ - Extended the macOS design verifier to require those icon and status states in
12
+ gallery builds.
13
+
14
+ ### Changed
15
+
16
+ - Added compact gallery status-stack styling for grouped status message
17
+ previews.
18
+ - Bumped the package to `0.1.21`.
19
+
5
20
  ## 0.1.20
6
21
 
7
22
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mac-human-design",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
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",
@@ -7,6 +7,7 @@ const stylesPath = path.join(repoRoot, "src", "styles", "macosBaseUi.css");
7
7
  const packageJsonPath = path.join(repoRoot, "package.json");
8
8
  const wrapperPath = path.join(repoRoot, "src", "components", "MacBaseUI.tsx");
9
9
  const symbolIconButtonPath = path.join(repoRoot, "src", "components", "SymbolIconButton.tsx");
10
+ const galleryPath = path.join(repoRoot, "src", "components", "MacBaseUIGallery.tsx");
10
11
  const symbolServicePath = path.join(repoRoot, "src", "symbols", "systemSymbolService.ts");
11
12
 
12
13
  function readText(filePath) {
@@ -46,6 +47,7 @@ const stylesSource = readText(stylesPath);
46
47
  const packageJson = JSON.parse(readText(packageJsonPath));
47
48
  const wrapperSource = readText(wrapperPath);
48
49
  const symbolIconButtonSource = readText(symbolIconButtonPath);
50
+ const gallerySource = readText(galleryPath);
49
51
  const symbolServiceSource = readText(symbolServicePath);
50
52
 
51
53
  function getCssRuleBody(selector) {
@@ -196,6 +198,21 @@ if (missingSymbolIconRequirements.length > 0) {
196
198
  fail("Missing SymbolIconButton alignment invariants.", missingSymbolIconRequirements);
197
199
  }
198
200
 
201
+ const missingGalleryStateCoverage = [
202
+ ["loading symbol icon button", /<SymbolIconButton[\s\S]*?\bisLoading\b/],
203
+ ["disabled symbol icon button", /<SymbolIconButton[\s\S]*?\bdisabled\b/],
204
+ ["info status message", /<StatusMessage\s+intent=["']info["']/],
205
+ ["success status message", /<StatusMessage\s+intent=["']success["']/],
206
+ ["error status message", /<StatusMessage\s+intent=["']error["']/],
207
+ ].filter(([, pattern]) => !pattern.test(gallerySource));
208
+
209
+ if (missingGalleryStateCoverage.length > 0) {
210
+ fail(
211
+ "Missing macOS gallery coverage for critical icon and status states.",
212
+ missingGalleryStateCoverage.map(([label]) => label),
213
+ );
214
+ }
215
+
199
216
  const missingSymbolServiceRequirements = [
200
217
  ["transparent symbol padding trim", /trimTransparentSymbolPadding/],
201
218
  ["alpha threshold trim", /TRANSPARENT_ALPHA_THRESHOLD/],
@@ -56,6 +56,7 @@ import {
56
56
  import { MacDataTable } from "./MacDataTable";
57
57
  import { MacSegmentedControl } from "./MacSegmentedControl";
58
58
  import { MacWindowToolbar } from "./MacWindowToolbar";
59
+ import { StatusMessage } from "./StatusMessage";
59
60
  import { SymbolIconButton } from "./SymbolIconButton";
60
61
 
61
62
  const choices = [
@@ -97,6 +98,8 @@ export function MacBaseUIGallery() {
97
98
  <SymbolIconButton label="Refresh" symbolName="arrow.clockwise" fallback="↻" onClick={() => {}} />
98
99
  <SymbolIconButton label="Upload" symbolName="square.and.arrow.up" fallback="↑" onClick={() => {}} />
99
100
  <SymbolIconButton label="Fallback refresh" symbolName="arrow.clockwise" fallback="↻" onClick={() => {}} symbolEnabled={false} />
101
+ <SymbolIconButton label="Loading refresh" symbolName="arrow.clockwise" fallback="↻" onClick={() => {}} isLoading />
102
+ <SymbolIconButton label="Disabled upload" symbolName="square.and.arrow.up" fallback="↑" onClick={() => {}} disabled />
100
103
  <MacHelpButton aria-label="Help">?</MacHelpButton>
101
104
  </GallerySection>
102
105
 
@@ -366,6 +369,7 @@ export function MacBaseUIGallery() {
366
369
  <MacButton disabled>Disabled</MacButton>
367
370
  <MacPrimaryButton disabled>Disabled Primary</MacPrimaryButton>
368
371
  <MacInput disabled placeholder="Disabled text field" />
372
+ <SymbolIconButton label="Disabled refresh" symbolName="arrow.clockwise" fallback="↻" onClick={() => {}} disabled />
369
373
  <label className="hd-mac-gallery-inline-choice">
370
374
  <MacCheckbox.Root indeterminate>
371
375
  <MacCheckbox.Indicator />
@@ -378,6 +382,11 @@ export function MacBaseUIGallery() {
378
382
  </GallerySection>
379
383
 
380
384
  <GallerySection title="Feedback">
385
+ <div className="hd-mac-gallery-status-stack">
386
+ <StatusMessage intent="info" message="Connected to the selected bucket." />
387
+ <StatusMessage intent="success" message="Upload completed." />
388
+ <StatusMessage intent="error" message="Unable to fetch object metadata." />
389
+ </div>
381
390
  <MacProgress.Root value={62}>
382
391
  <MacProgress.Label>Progress</MacProgress.Label>
383
392
  <MacProgress.Track>
@@ -1544,6 +1544,16 @@
1544
1544
  font: 400 13px/18px var(--hd-mac-font);
1545
1545
  }
1546
1546
 
1547
+ .hd-mac-gallery-status-stack {
1548
+ display: grid;
1549
+ min-width: min(340px, 100%);
1550
+ gap: 6px;
1551
+ }
1552
+
1553
+ .hd-mac-gallery-status-stack > .hd-mac-status-message {
1554
+ margin-top: 0;
1555
+ }
1556
+
1547
1557
  .hd-mac-gallery-scroll {
1548
1558
  width: 190px;
1549
1559
  height: 48px;