@bfrs/agentic-components 0.3.0 → 0.3.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.
Files changed (28) hide show
  1. package/BFRS_AGENTIC_COMPONENTS.md +15 -1
  2. package/README.md +15 -1
  3. package/dist/components/ui/primitives/Text/Text.d.ts +4 -2
  4. package/dist/custom-elements.js +20 -8
  5. package/dist/custom-elements.js.map +1 -1
  6. package/dist/font/sfprofonts/SF-Pro-Display-Black.otf +0 -0
  7. package/dist/font/sfprofonts/SF-Pro-Display-BlackItalic.otf +0 -0
  8. package/dist/font/sfprofonts/SF-Pro-Display-Bold.otf +0 -0
  9. package/dist/font/sfprofonts/SF-Pro-Display-BoldItalic.otf +0 -0
  10. package/dist/font/sfprofonts/SF-Pro-Display-Heavy.otf +0 -0
  11. package/dist/font/sfprofonts/SF-Pro-Display-HeavyItalic.otf +0 -0
  12. package/dist/font/sfprofonts/SF-Pro-Display-Light.otf +0 -0
  13. package/dist/font/sfprofonts/SF-Pro-Display-LightItalic.otf +0 -0
  14. package/dist/font/sfprofonts/SF-Pro-Display-Medium.otf +0 -0
  15. package/dist/font/sfprofonts/SF-Pro-Display-MediumItalic.otf +0 -0
  16. package/dist/font/sfprofonts/SF-Pro-Display-Regular.otf +0 -0
  17. package/dist/font/sfprofonts/SF-Pro-Display-RegularItalic.otf +0 -0
  18. package/dist/font/sfprofonts/SF-Pro-Display-Semibold.otf +0 -0
  19. package/dist/font/sfprofonts/SF-Pro-Display-SemiboldItalic.otf +0 -0
  20. package/dist/font/sfprofonts/SF-Pro-Display-Thin.otf +0 -0
  21. package/dist/font/sfprofonts/SF-Pro-Display-ThinItalic.otf +0 -0
  22. package/dist/font/sfprofonts/SF-Pro-Display-Ultralight.otf +0 -0
  23. package/dist/font/sfprofonts/SF-Pro-Display-UltralightItalic.otf +0 -0
  24. package/dist/fonts.css +152 -0
  25. package/dist/index.js +17 -6
  26. package/dist/index.js.map +1 -1
  27. package/dist/style.css +1 -1
  28. package/package.json +8 -2
package/dist/fonts.css ADDED
@@ -0,0 +1,152 @@
1
+ /*
2
+ * @bfrs/agentic-components/fonts.css — OPT-IN SF Pro Display webfont.
3
+ *
4
+ * The main stylesheet (`@bfrs/agentic-components/styles`) only references the
5
+ * font family by NAME (`--bfrs-font-sans`) and intentionally ships no
6
+ * `@font-face` so it never leaks into a host document. Import THIS file once,
7
+ * in addition, when you want the library to provide and apply SF Pro itself:
8
+ *
9
+ * import "@bfrs/agentic-components/styles";
10
+ * import "@bfrs/agentic-components/fonts.css";
11
+ *
12
+ * It bundles the font files (relative URLs, so any base path works), defines
13
+ * `--bfrs-font-sans` at the document root, and applies it to `html, body` so
14
+ * the WHOLE app uses SF Pro — not just BFRS-scoped components.
15
+ */
16
+
17
+ @font-face {
18
+ font-family: "SF Pro Display";
19
+ src: url("./font/sfprofonts/SF-Pro-Display-Ultralight.otf") format("opentype");
20
+ font-style: normal;
21
+ font-weight: 200;
22
+ font-display: swap;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: "SF Pro Display";
27
+ src: url("./font/sfprofonts/SF-Pro-Display-UltralightItalic.otf") format("opentype");
28
+ font-style: italic;
29
+ font-weight: 200;
30
+ font-display: swap;
31
+ }
32
+
33
+ @font-face {
34
+ font-family: "SF Pro Display";
35
+ src: url("./font/sfprofonts/SF-Pro-Display-Light.otf") format("opentype");
36
+ font-style: normal;
37
+ font-weight: 300;
38
+ font-display: swap;
39
+ }
40
+
41
+ @font-face {
42
+ font-family: "SF Pro Display";
43
+ src: url("./font/sfprofonts/SF-Pro-Display-LightItalic.otf") format("opentype");
44
+ font-style: italic;
45
+ font-weight: 300;
46
+ font-display: swap;
47
+ }
48
+
49
+ @font-face {
50
+ font-family: "SF Pro Display";
51
+ src: url("./font/sfprofonts/SF-Pro-Display-Regular.otf") format("opentype");
52
+ font-style: normal;
53
+ font-weight: 400;
54
+ font-display: swap;
55
+ }
56
+
57
+ @font-face {
58
+ font-family: "SF Pro Display";
59
+ src: url("./font/sfprofonts/SF-Pro-Display-RegularItalic.otf") format("opentype");
60
+ font-style: italic;
61
+ font-weight: 400;
62
+ font-display: swap;
63
+ }
64
+
65
+ @font-face {
66
+ font-family: "SF Pro Display";
67
+ src: url("./font/sfprofonts/SF-Pro-Display-Medium.otf") format("opentype");
68
+ font-style: normal;
69
+ font-weight: 500;
70
+ font-display: swap;
71
+ }
72
+
73
+ @font-face {
74
+ font-family: "SF Pro Display";
75
+ src: url("./font/sfprofonts/SF-Pro-Display-MediumItalic.otf") format("opentype");
76
+ font-style: italic;
77
+ font-weight: 500;
78
+ font-display: swap;
79
+ }
80
+
81
+ @font-face {
82
+ font-family: "SF Pro Display";
83
+ src: url("./font/sfprofonts/SF-Pro-Display-Semibold.otf") format("opentype");
84
+ font-style: normal;
85
+ font-weight: 600;
86
+ font-display: swap;
87
+ }
88
+
89
+ @font-face {
90
+ font-family: "SF Pro Display";
91
+ src: url("./font/sfprofonts/SF-Pro-Display-SemiboldItalic.otf") format("opentype");
92
+ font-style: italic;
93
+ font-weight: 600;
94
+ font-display: swap;
95
+ }
96
+
97
+ @font-face {
98
+ font-family: "SF Pro Display";
99
+ src: url("./font/sfprofonts/SF-Pro-Display-Bold.otf") format("opentype");
100
+ font-style: normal;
101
+ font-weight: 700;
102
+ font-display: swap;
103
+ }
104
+
105
+ @font-face {
106
+ font-family: "SF Pro Display";
107
+ src: url("./font/sfprofonts/SF-Pro-Display-BoldItalic.otf") format("opentype");
108
+ font-style: italic;
109
+ font-weight: 700;
110
+ font-display: swap;
111
+ }
112
+
113
+ @font-face {
114
+ font-family: "SF Pro Display";
115
+ src: url("./font/sfprofonts/SF-Pro-Display-Heavy.otf") format("opentype");
116
+ font-style: normal;
117
+ font-weight: 800;
118
+ font-display: swap;
119
+ }
120
+
121
+ @font-face {
122
+ font-family: "SF Pro Display";
123
+ src: url("./font/sfprofonts/SF-Pro-Display-HeavyItalic.otf") format("opentype");
124
+ font-style: italic;
125
+ font-weight: 800;
126
+ font-display: swap;
127
+ }
128
+
129
+ @font-face {
130
+ font-family: "SF Pro Display";
131
+ src: url("./font/sfprofonts/SF-Pro-Display-Black.otf") format("opentype");
132
+ font-style: normal;
133
+ font-weight: 900;
134
+ font-display: swap;
135
+ }
136
+
137
+ @font-face {
138
+ font-family: "SF Pro Display";
139
+ src: url("./font/sfprofonts/SF-Pro-Display-BlackItalic.otf") format("opentype");
140
+ font-style: italic;
141
+ font-weight: 900;
142
+ font-display: swap;
143
+ }
144
+
145
+ :root {
146
+ --bfrs-font-sans: "SF Pro Display", "SF Pro Text", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
147
+ }
148
+
149
+ html,
150
+ body {
151
+ font-family: var(--bfrs-font-sans);
152
+ }
package/dist/index.js CHANGED
@@ -3230,6 +3230,7 @@ const Cd = je("bfrs-tracking-normal", {
3230
3230
  title: "bfrs-text-xl bfrs-font-semibold bfrs-leading-snug",
3231
3231
  body: "bfrs-text-base bfrs-font-normal bfrs-leading-7",
3232
3232
  "body-sm": "bfrs-text-sm bfrs-font-normal bfrs-leading-[1.45]",
3233
+ "body-xs": "bfrs-text-[12px] bfrs-font-normal bfrs-leading-[1.4]",
3233
3234
  caption: "bfrs-text-xs bfrs-font-normal bfrs-leading-normal",
3234
3235
  label: "bfrs-text-[10px] bfrs-font-bold bfrs-uppercase bfrs-leading-normal bfrs-tracking-[0.16em]"
3235
3236
  },
@@ -3241,6 +3242,15 @@ const Cd = je("bfrs-tracking-normal", {
3241
3242
  danger: "bfrs-text-danger",
3242
3243
  success: "bfrs-text-success",
3243
3244
  accent: "bfrs-text-accent"
3245
+ },
3246
+ // Optional override for each variant's default weight — e.g. make a small
3247
+ // caption bold, or a large heading normal. Applied after the variant class,
3248
+ // so it wins the font-weight conflict via tailwind-merge in cn().
3249
+ weight: {
3250
+ normal: "bfrs-font-normal",
3251
+ medium: "bfrs-font-medium",
3252
+ semibold: "bfrs-font-semibold",
3253
+ bold: "bfrs-font-bold"
3244
3254
  }
3245
3255
  },
3246
3256
  defaultVariants: {
@@ -3255,11 +3265,12 @@ const Cd = je("bfrs-tracking-normal", {
3255
3265
  title: "p",
3256
3266
  body: "p",
3257
3267
  "body-sm": "p",
3268
+ "body-xs": "p",
3258
3269
  caption: "p",
3259
3270
  label: "span"
3260
- }, bn = G(({ as: e, className: r, variant: t, tone: s, ...a }, o) => {
3261
- const l = t ?? "body", c = e ?? Md[l];
3262
- return /* @__PURE__ */ i(c, { ref: o, className: E(Cd({ variant: l, tone: s }), r), ...a });
3271
+ }, bn = G(({ as: e, className: r, variant: t, tone: s, weight: a, ...o }, l) => {
3272
+ const c = t ?? "body", f = e ?? Md[c];
3273
+ return /* @__PURE__ */ i(f, { ref: l, className: E(Cd({ variant: c, tone: s, weight: a }), r), ...o });
3263
3274
  });
3264
3275
  bn.displayName = "Text";
3265
3276
  const Ad = {
@@ -8465,10 +8476,10 @@ const ym = G(
8465
8476
  const p = l !== void 0, [v, h] = ae(c), g = p ? l : v, x = (k = e.find((M) => M.value === g)) == null ? void 0 : k.label, y = Fr(null), [w, C] = ae(!1);
8466
8477
  Pr(() => {
8467
8478
  const M = y.current;
8468
- if (!M || typeof ResizeObserver > "u") return;
8479
+ if (!M || typeof globalThis.ResizeObserver > "u") return;
8469
8480
  const V = () => C(M.scrollWidth > M.clientWidth + 1);
8470
8481
  V();
8471
- const $ = new ResizeObserver(V);
8482
+ const $ = new globalThis.ResizeObserver(V);
8472
8483
  return $.observe(M), () => $.disconnect();
8473
8484
  }, [x]);
8474
8485
  const A = (M) => {
@@ -13984,7 +13995,7 @@ function G6({
13984
13995
  {
13985
13996
  "aria-label": o,
13986
13997
  title: o,
13987
- variant: "ghost",
13998
+ variant: "secondary",
13988
13999
  size: "sm",
13989
14000
  className: E(
13990
14001
  "bfrs-size-[26px] bfrs-rounded-[6px] bfrs-bg-surface-card bfrs-text-text-muted hover:bfrs-bg-primary-soft",