@biffo/cli 0.248.2 → 0.249.1

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.
@@ -13,6 +13,7 @@
13
13
  "e2e": "playwright test"
14
14
  },
15
15
  "dependencies": {
16
+ "@biffo/design-tokens": "^0.248.2",
16
17
  "amazon-cognito-identity-js": "^6.3.12",
17
18
  "next": "^15.5.22",
18
19
  "react": "^19.0.0",
@@ -14,6 +14,9 @@ importers:
14
14
 
15
15
  .:
16
16
  dependencies:
17
+ '@biffo/design-tokens':
18
+ specifier: ^0.248.2
19
+ version: 0.248.2
17
20
  amazon-cognito-identity-js:
18
21
  specifier: ^6.3.12
19
22
  version: 6.3.18
@@ -189,6 +192,9 @@ packages:
189
192
  resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
190
193
  engines: {node: '>=6.9.0'}
191
194
 
195
+ '@biffo/design-tokens@0.248.2':
196
+ resolution: {integrity: sha512-tIj3qlIcf75pAnVI5JjVVCzrO2fqSzELrKSMPE8+/jTPYytcaMDYa0ZLMJu6HOVQG7+BkkBt/giugCKT4A/ucg==}
197
+
192
198
  '@bramus/specificity@2.4.2':
193
199
  resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==}
194
200
  hasBin: true
@@ -2771,6 +2777,8 @@ snapshots:
2771
2777
  '@babel/helper-string-parser': 7.29.7
2772
2778
  '@babel/helper-validator-identifier': 7.29.7
2773
2779
 
2780
+ '@biffo/design-tokens@0.248.2': {}
2781
+
2774
2782
  '@bramus/specificity@2.4.2':
2775
2783
  dependencies:
2776
2784
  css-tree: 3.2.1
@@ -3966,8 +3974,8 @@ snapshots:
3966
3974
  '@typescript-eslint/parser': 8.62.1(eslint@9.39.4)(typescript@5.9.3)
3967
3975
  eslint: 9.39.4
3968
3976
  eslint-import-resolver-node: 0.3.10
3969
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4)
3970
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4)
3977
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4)
3978
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4)
3971
3979
  eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4)
3972
3980
  eslint-plugin-react: 7.37.5(eslint@9.39.4)
3973
3981
  eslint-plugin-react-hooks: 5.2.0(eslint@9.39.4)
@@ -3986,7 +3994,7 @@ snapshots:
3986
3994
  transitivePeerDependencies:
3987
3995
  - supports-color
3988
3996
 
3989
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4):
3997
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4):
3990
3998
  dependencies:
3991
3999
  '@nolyfill/is-core-module': 1.0.39
3992
4000
  debug: 4.4.3
@@ -3997,22 +4005,22 @@ snapshots:
3997
4005
  tinyglobby: 0.2.17
3998
4006
  unrs-resolver: 1.12.2
3999
4007
  optionalDependencies:
4000
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4)
4008
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4)
4001
4009
  transitivePeerDependencies:
4002
4010
  - supports-color
4003
4011
 
4004
- eslint-module-utils@2.14.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4):
4012
+ eslint-module-utils@2.14.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4):
4005
4013
  dependencies:
4006
4014
  debug: 3.2.7
4007
4015
  optionalDependencies:
4008
4016
  '@typescript-eslint/parser': 8.62.1(eslint@9.39.4)(typescript@5.9.3)
4009
4017
  eslint: 9.39.4
4010
4018
  eslint-import-resolver-node: 0.3.10
4011
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4)
4019
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4)
4012
4020
  transitivePeerDependencies:
4013
4021
  - supports-color
4014
4022
 
4015
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4):
4023
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4):
4016
4024
  dependencies:
4017
4025
  '@rtsao/scc': 1.1.0
4018
4026
  array-includes: 3.1.9
@@ -4023,7 +4031,7 @@ snapshots:
4023
4031
  doctrine: 2.1.0
4024
4032
  eslint: 9.39.4
4025
4033
  eslint-import-resolver-node: 0.3.10
4026
- eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4)
4034
+ eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4)
4027
4035
  hasown: 2.0.4
4028
4036
  is-core-module: 2.16.2
4029
4037
  is-glob: 4.0.3
@@ -1,12 +1,19 @@
1
- :root {
2
- color-scheme: light;
3
- }
1
+ /* This sibling's visual language comes from `@biffo/design-tokens`, the
2
+ * single definition shared by the portal, other siblings and plugin
3
+ * frontends (see packages/design-tokens/tokens.css in biffo-template for the
4
+ * full rationale). Do NOT redeclare `--bg`, `--brand` etc. locally here — a
5
+ * local copy is exactly how three different brand blues shipped across
6
+ * surfaces a founder sees in one page. Add product-specific styles below the
7
+ * import, expressed in terms of these variables, so re-skinning the product
8
+ * is a one-line change upstream rather than a hunt through every consumer.
9
+ */
10
+ @import '@biffo/design-tokens/tokens.css';
4
11
 
5
12
  body {
6
13
  margin: 0;
7
14
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
8
- background: #f9fafb;
9
- color: #111827;
15
+ background: var(--bg-subtle);
16
+ color: var(--text);
10
17
  }
11
18
 
12
19
  .center-screen {
@@ -22,8 +29,8 @@ body {
22
29
  width: 2rem;
23
30
  height: 2rem;
24
31
  border-radius: 9999px;
25
- border: 4px solid #d1d5db;
26
- border-top-color: #2563eb;
32
+ border: 4px solid var(--border-strong);
33
+ border-top-color: var(--brand);
27
34
  animation: spin 0.8s linear infinite;
28
35
  }
29
36
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biffo/cli",
3
- "version": "0.248.2",
3
+ "version": "0.249.1",
4
4
  "description": "Biffo project scaffolding CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/scripts/verify.sh CHANGED
@@ -411,8 +411,27 @@ else
411
411
  NO_CI=1
412
412
  fi
413
413
 
414
- if [ -n "$CI_YML_UNREADABLE" ]; then
415
- printf '\n\033[31mverify: CANNOT TELL - .github/workflows/ci.yml exists but could not be read\033[0m\n'
414
+ # release-guards.yml (#1319): the "Release Guards" job's own trigger needed
415
+ # `edited` added to it (so a PR title/body correction re-evaluates
416
+ # automatically), and giving that trigger to the WHOLE build matrix in
417
+ # ci.yml would re-run every heavy job on every description tweak -- so the
418
+ # job moved to this second file instead (see that file's own header). Its
419
+ # absence does NOT mean "no CI to mirror" -- ci.yml alone is still a real CI
420
+ # and NO_CI must not fire just because a repo has not adopted the split (a
421
+ # sibling never will; an instance not yet upgraded past #1319 has not yet).
422
+ # But if it EXISTS and cannot be READ, that is the identical #1218 shape as
423
+ # ci.yml itself, and ci_has() must search it too or "practices-monotonic"
424
+ # (moved into it) would silently stop being locally mirrored the moment it
425
+ # left ci.yml -- covered less than verify.sh claims, with nothing saying so.
426
+ RELEASE_GUARDS_YML_UNREADABLE=""
427
+ if [ -f .github/workflows/release-guards.yml ] && [ ! -r .github/workflows/release-guards.yml ]; then
428
+ RELEASE_GUARDS_YML_UNREADABLE=1
429
+ fi
430
+
431
+ if [ -n "$CI_YML_UNREADABLE" ] || [ -n "$RELEASE_GUARDS_YML_UNREADABLE" ]; then
432
+ printf '\n\033[31mverify: CANNOT TELL - a core workflow file exists but could not be read\033[0m\n'
433
+ [ -n "$CI_YML_UNREADABLE" ] && printf ' .github/workflows/ci.yml\n'
434
+ [ -n "$RELEASE_GUARDS_YML_UNREADABLE" ] && printf ' .github/workflows/release-guards.yml\n'
416
435
  printf 'Permissions, a partial checkout, or a filesystem error -- not "no CI to\n'
417
436
  printf 'mirror" (that is a missing ci.yml, handled separately, and does not\n'
418
437
  printf 'block). Every check gated on ci_has() would silently be skipped and the\n'
@@ -424,7 +443,8 @@ fi
424
443
 
425
444
  ci_has() {
426
445
  [ -n "${NO_CI:-}" ] && return 0
427
- grep -qE "$1" .github/workflows/ci.yml
446
+ grep -qE "$1" .github/workflows/ci.yml && return 0
447
+ [ -f .github/workflows/release-guards.yml ] && grep -qE "$1" .github/workflows/release-guards.yml
428
448
  }
429
449
 
430
450
  have_script() {