@rojaostudio/ds-core 1.1.0-next.14 → 1.1.0-next.15

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.
@@ -999,10 +999,12 @@ var ROLES = [
999
999
  ["surface/inverse", "d", "d"],
1000
1000
  ["text/on-inverse", "d", "d"],
1001
1001
  ["text/on-inverse-subtle", "d", "d"],
1002
- ["text/on/success-strong", "d", "d"]
1002
+ ["text/on/success-strong", "d", "d"],
1003
+ ["text/selected", "d", "b"]
1003
1004
  ];
1004
1005
  var SUCCESS_STRONG_ON = { light: WHITE, dark: BLACK };
1005
1006
  var coal = palettes.coal;
1007
+ var selectedOn = (primary, scale, tints, fallback) => readableFrom(primary, scale, tints, awayFrom(tints[0]), fallback);
1006
1008
  var inverseOf = (primary) => contrastRatio(WHITE, primary) >= AA ? primary : coal[900];
1007
1009
  function inverseSubtle(fill) {
1008
1010
  for (let p = 70; p < 100; p += 5) if (contrastRatio(over(white(p), fill), fill) >= AA) return white(p);
@@ -1182,6 +1184,7 @@ function generateRdsTheme(def, opts = {}) {
1182
1184
  l["logo/accent"] = l["colors/accent/logo"];
1183
1185
  l["logo/accent-2"] = l["colors/secondary/default"];
1184
1186
  l["logo/accent-3"] = l["colors/accent/default"];
1187
+ l["text/selected"] = selectedOn(l["colors/primary/default"], K, [l["surface/tint/default"], l["surface/tint/subtle"]], BLACK);
1185
1188
  const d = __spreadProps(__spreadValues({
1186
1189
  "surface/page": N[900],
1187
1190
  "surface/panel": N[900],
@@ -1287,6 +1290,7 @@ function generateRdsTheme(def, opts = {}) {
1287
1290
  [d["colors/accent/hover"]] = stateFills(A.scale, d["colors/accent/default"], d["text/on/accent"], [d["colors/accent/hover"]]);
1288
1291
  d["border/error"] = readableFrom(red[400], red, [d["surface/card"]], awayFrom(d["surface/card"]), WHITE, NON_TEXT);
1289
1292
  d["chart/series/1"] = readableFrom(P.scale[400], P.scale, [d["surface/card"]], awayFrom(d["surface/card"]), WHITE, NON_TEXT);
1293
+ d["text/selected"] = selectedOn(d["colors/primary/default"], K, [d["surface/tint/default"], d["surface/tint/subtle"]], WHITE);
1290
1294
  const ink0 = on(P.base);
1291
1295
  const plate = contrastRatio(ink0, P.base) >= PLATE_MIN ? P.base : readableFrom(P.base, P.scale, [ink0], ink0 === WHITE ? "darker" : "lighter", ink0 === WHITE ? BLACK : WHITE, PLATE_MIN);
1292
1296
  const ink = on(plate);
@@ -1346,7 +1350,9 @@ function generateRdsTheme(def, opts = {}) {
1346
1350
  "surface/muted-strong": ov(20),
1347
1351
  "border/strong": fieldBorder,
1348
1352
  "border/strong-hover": fieldAlpha + 20 < 100 ? inkA(fieldAlpha + 20) : ink,
1349
- "text/on/primary-subtle": inkA(30)
1353
+ "text/on/primary-subtle": inkA(30),
1354
+ // The selected item on the plate: the ink, which the plate's overlays (ov) are drawn to carry at AA.
1355
+ "text/selected": ink
1350
1356
  };
1351
1357
  for (const role of ["colors/primary/dark", "colors/primary/light"])
1352
1358
  br[role] = carry(P.scale, br["colors/primary/default"], br["text/on/primary-strong"], br[role]);
@@ -1541,6 +1547,8 @@ var RDS_CONTRAST_PAIRS = [
1541
1547
  ["text/muted", "surface/tint/default"],
1542
1548
  ["text/on/tint", "surface/tint/subtle"],
1543
1549
  ["text/action", "surface/action/strong"],
1550
+ ["text/selected", "surface/tint/default"],
1551
+ ["text/selected", "surface/tint/subtle"],
1544
1552
  ["text/muted", "surface/page"],
1545
1553
  ["text/muted", "surface/panel"],
1546
1554
  ["text/subtle", "surface/card"],
@@ -1597,7 +1605,9 @@ function laterFallback(role, mode, primary) {
1597
1605
  var isColourRef = (v) => /^[a-z][a-z0-9-]*\/[a-z]?\d+$/i.test(v);
1598
1606
  var ADDED_ROLES = {
1599
1607
  // Figma: light → base colors/state/error, dark → base dark/colors/state/error-strong, brand → base dark/text/error.
1600
- "border/error": { light: "colors/state/error", dark: "colors/state/error-strong", brand: "text/error" }
1608
+ "border/error": { light: "colors/state/error", dark: "colors/state/error-strong", brand: "text/error" },
1609
+ // Figma: colors/primary/default of each mode (base colors/primary/default, dark/…, brand/…).
1610
+ "text/selected": { light: "colors/primary/default", dark: "colors/primary/default", brand: "colors/primary/default" }
1601
1611
  };
1602
1612
  function rdsThemeFromTable(table, opts = {}) {
1603
1613
  var _a, _b, _c;
package/dist/generate.js CHANGED
@@ -1,3 +1,3 @@
1
- export { RDS_CONTRAST_PAIRS, RDS_MEDIA_TYPE, RDS_NON_TEXT_PAIRS, RDS_PRINT_ON_WHITE, RDS_PRINT_TRANSPARENT, RDS_PRINT_WHITE, ROLES as RDS_ROLES, RDS_SCOPE_SELECTORS, RDS_TOKEN_SCOPE, RdsValidationError, SCALE_STEPS, brandTones, buildScale, contrastRatio, emitClaudeMd, emitCss, emitRdsCss, generateRdsTheme, generateTheme, hexToHsl, hslToHex, isHex, isNeutralBrand, isSafeColor, isSafeFont, isSafeVarName, onColor, rdsContrast, rdsContrastReport, rdsPrintMode, rdsThemeFromTable, refToHex, relativeLuminance, resolveTheme, roleVar } from './chunk-QJN6R2DB.js';
1
+ export { RDS_CONTRAST_PAIRS, RDS_MEDIA_TYPE, RDS_NON_TEXT_PAIRS, RDS_PRINT_ON_WHITE, RDS_PRINT_TRANSPARENT, RDS_PRINT_WHITE, ROLES as RDS_ROLES, RDS_SCOPE_SELECTORS, RDS_TOKEN_SCOPE, RdsValidationError, SCALE_STEPS, brandTones, buildScale, contrastRatio, emitClaudeMd, emitCss, emitRdsCss, generateRdsTheme, generateTheme, hexToHsl, hslToHex, isHex, isNeutralBrand, isSafeColor, isSafeFont, isSafeVarName, onColor, rdsContrast, rdsContrastReport, rdsPrintMode, rdsThemeFromTable, refToHex, relativeLuminance, resolveTheme, roleVar } from './chunk-N2Y3UCKN.js';
2
2
  import './chunk-FRWRLCYM.js';
3
3
  import './chunk-ORMEWXMH.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { recipes } from './chunk-PV6GFEAM.js';
2
- export { RDS_CONTRAST_PAIRS, RDS_MEDIA_TYPE, RDS_NON_TEXT_PAIRS, RDS_PRINT_ON_WHITE, RDS_PRINT_TRANSPARENT, RDS_PRINT_WHITE, ROLES as RDS_ROLES, RDS_SCOPE_SELECTORS, RDS_TOKEN_SCOPE, RdsValidationError, SCALE_STEPS, brandTones, buildScale, contrastRatio, emitClaudeMd, emitCss, emitRdsCss, generateRdsTheme, generateTheme, hexToHsl, hslToHex, isHex, isNeutralBrand, isSafeColor, isSafeFont, isSafeVarName, onColor, rdsContrast, rdsContrastReport, rdsPrintMode, rdsThemeFromTable, refToHex, relativeLuminance, resolveTheme, roleVar } from './chunk-QJN6R2DB.js';
2
+ export { RDS_CONTRAST_PAIRS, RDS_MEDIA_TYPE, RDS_NON_TEXT_PAIRS, RDS_PRINT_ON_WHITE, RDS_PRINT_TRANSPARENT, RDS_PRINT_WHITE, ROLES as RDS_ROLES, RDS_SCOPE_SELECTORS, RDS_TOKEN_SCOPE, RdsValidationError, SCALE_STEPS, brandTones, buildScale, contrastRatio, emitClaudeMd, emitCss, emitRdsCss, generateRdsTheme, generateTheme, hexToHsl, hslToHex, isHex, isNeutralBrand, isSafeColor, isSafeFont, isSafeVarName, onColor, rdsContrast, rdsContrastReport, rdsPrintMode, rdsThemeFromTable, refToHex, relativeLuminance, resolveTheme, roleVar } from './chunk-N2Y3UCKN.js';
3
3
  export { primitives, tokens } from './chunk-FRWRLCYM.js';
4
4
  import './chunk-ORMEWXMH.js';
package/dist/themes.js CHANGED
@@ -1,4 +1,4 @@
1
- import { generateTheme } from './chunk-QJN6R2DB.js';
1
+ import { generateTheme } from './chunk-N2Y3UCKN.js';
2
2
  import './chunk-FRWRLCYM.js';
3
3
  import { __spreadValues, __objRest } from './chunk-ORMEWXMH.js';
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rojaostudio/ds-core",
3
- "version": "1.1.0-next.14",
3
+ "version": "1.1.0-next.15",
4
4
  "description": "O motor do Rojão DS — tokens, derivação de tema e emissores. Sem React, sem Tailwind, sem CSS.",
5
5
  "license": "MIT",
6
6
  "author": "Rojão Studio (https://rojao.studio)",