@bitforgehq/ui 0.3.3 → 0.4.0

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 (39) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +4 -4
  3. package/ai/MANIFEST.index.json +36 -0
  4. package/ai/MANIFEST.json +414 -14
  5. package/ai/REFERENCE.index.json +35 -0
  6. package/ai/REFERENCE.json +184 -8
  7. package/ai/UI_GUIDE.md +25 -4
  8. package/ai/components/badge.md +39 -2
  9. package/ai/components/list-item.md +105 -9
  10. package/ai/components/step.md +112 -0
  11. package/ai/components/steps.md +124 -0
  12. package/ai/components/table.md +98 -2
  13. package/ai/components/timeline-event.md +144 -0
  14. package/ai/components/timeline.md +201 -0
  15. package/ai/components/toggle.md +11 -1
  16. package/ai/reference/bf-action-directive.md +3 -1
  17. package/ai/reference/bf-badge-emphasis.md +27 -0
  18. package/ai/reference/bf-labels.md +1 -0
  19. package/ai/reference/bf-step-heading-level.md +28 -0
  20. package/ai/reference/bf-table-align.md +1 -1
  21. package/ai/reference/bf-table-column-align.md +33 -0
  22. package/ai/reference/bf-table-column.md +7 -7
  23. package/ai/reference/bf-table-harness.md +12 -0
  24. package/ai/reference/bf-timeline-tone.md +31 -0
  25. package/ai/reference/bf-toggle-harness.md +55 -0
  26. package/ai/reference/provide-bf-labels.md +1 -1
  27. package/dark-ink.css +124 -0
  28. package/fesm2022/bitforgehq-ui-mobile.mjs +2 -1
  29. package/fesm2022/bitforgehq-ui-mobile.mjs.map +1 -1
  30. package/fesm2022/bitforgehq-ui-testing.mjs +51 -2
  31. package/fesm2022/bitforgehq-ui-testing.mjs.map +1 -1
  32. package/fesm2022/bitforgehq-ui.mjs +682 -32
  33. package/fesm2022/bitforgehq-ui.mjs.map +1 -1
  34. package/llms-full.txt +1072 -15
  35. package/llms.txt +9 -0
  36. package/package.json +2 -1
  37. package/theme.css +24 -0
  38. package/types/bitforgehq-ui-testing.d.ts +76 -1
  39. package/types/bitforgehq-ui.d.ts +288 -8
package/dark-ink.css ADDED
@@ -0,0 +1,124 @@
1
+ /*
2
+ * @bitforgehq/ui — Ink, an opt-in dark preset: near-black surfaces one small step apart,
3
+ * see-through status tints, 1 px edges instead of heavy shadows, off-white text.
4
+ *
5
+ * Usage: import it AFTER theme.css. It redefines tokens under .dark only, so light mode is
6
+ * untouched, and it wins over theme.css's own .dark block by order:
7
+ * @import 'tailwindcss';
8
+ * @import '@bitforgehq/ui/theme.css';
9
+ * @import '@bitforgehq/ui/dark-ink.css';
10
+ *
11
+ * It sets every colour and shadow token theme.css's .dark block sets except the brand set (the
12
+ * primary family below), so the app's brand primary stays: the default dark indigo, or the
13
+ * app's own .dark brand override placed after this import. For the monochrome look of the
14
+ * mockups, paste this optional block after the import as well:
15
+ *
16
+ * .dark {
17
+ * --color-primary: #ececee;
18
+ * --color-primary-hover: #dcdce0;
19
+ * --color-primary-pressed: #cdcdd2;
20
+ * --color-primary-soft: rgb(255 255 255 / 0.08);
21
+ * --color-primary-soft-hover: rgb(255 255 255 / 0.11);
22
+ * --color-primary-soft-pressed: rgb(255 255 255 / 0.14);
23
+ * --color-primary-strong: #ffffff;
24
+ * --color-on-primary: #0b0c0e;
25
+ * --color-primary-text: #e8e9ec;
26
+ * }
27
+ *
28
+ * Every pair is contrast-checked in theme.spec.ts, alpha tints composited over the surface they
29
+ * sit on (bg, surface, surface-muted and surface-sunken), with the default dark brand and with
30
+ * the monochrome block.
31
+ */
32
+
33
+ /* Tailwind inlines a shadow token's value into the shadow-* utilities when it compiles them, so
34
+ redefining --shadow-* under .dark alone changes nothing that the utilities draw. These read
35
+ the dark value through --bf-shadow-*, which only .dark below sets; in light mode the fallback
36
+ is theme.css's own light value, so light mode compiles to the same shadows. */
37
+ @theme {
38
+ --shadow-raised: var(
39
+ --bf-shadow-raised,
40
+ 0 1px 2px rgb(31 42 34 / 0.06),
41
+ 0 8px 24px rgb(31 42 34 / 0.08)
42
+ );
43
+ --shadow-floating: var(--bf-shadow-floating, 0 10px 30px rgb(31 42 34 / 0.18));
44
+ --shadow-segment: var(--bf-shadow-segment, 0 1px 3px rgb(31 42 34 / 0.14));
45
+ }
46
+
47
+ .dark {
48
+ /* Surfaces: the page and cards near black, one step apart. */
49
+ --color-bg: #0b0c0e;
50
+ --color-surface: #121316;
51
+ --color-surface-muted: #191a1e; /* hover */
52
+ --color-surface-sunken: #0e0f11;
53
+ --color-surface-pressed: #202126;
54
+ --color-selected: rgb(255 255 255 / 0.06);
55
+
56
+ /* Status: the colour as text, its soft tint the same colour at 12 % (a see-through tint that
57
+ sits on any surface, >= 5:1 under its text on bg, surface, surface-muted and surface-sunken). */
58
+ --color-success: #4cc38a;
59
+ --color-success-soft: rgb(76 195 138 / 0.12);
60
+ --color-warning: #e5b454;
61
+ --color-warning-soft: rgb(229 180 84 / 0.12);
62
+ --color-danger: #f2706a;
63
+ /* Opaque (the danger colour at 13 % over surface), not see-through: the danger button's hover
64
+ and pressed states write danger-soft as text on the danger fill, where a tint would vanish. */
65
+ --color-danger-soft: #2f1f21;
66
+ --color-danger-pressed: #f59994;
67
+ --color-danger-border: #c9372c;
68
+ --color-info: #5eb1ef;
69
+ --color-info-soft: rgb(94 177 239 / 0.12);
70
+ /* Strong fills (>= 3:1 on bg, surface and surface-sunken), text on them >= 4.5:1. */
71
+ --color-neutral-strong: #9a9da5;
72
+ --color-on-neutral-strong: #0b0c0e; /* 7.2:1 */
73
+ --color-success-strong: #26804f;
74
+ --color-on-success-strong: #ffffff; /* 4.9:1 */
75
+ --color-warning-strong: #d99a3c;
76
+ --color-on-warning-strong: #1a1206; /* 7.6:1 */
77
+ --color-danger-strong: #c9372c;
78
+ --color-on-danger-strong: #ffffff; /* 5.2:1 */
79
+ --color-info-strong: #2a7aa8;
80
+ --color-on-info-strong: #ffffff; /* 4.7:1 */
81
+ --color-tooltip: #e8e9ec;
82
+ --color-on-tooltip: #121316; /* 15.3:1 on tooltip */
83
+
84
+ /* Charts: the default dark series (each >= 5:1 on bg and surface here, adjacent pairs distinct
85
+ under colour vision deficiency); grid lines as faint as the border, the axis >= 3:1. */
86
+ --color-chart-1: #3e9e66;
87
+ --color-chart-2: #7479ee;
88
+ --color-chart-3: #d8692f;
89
+ --color-chart-4: #1f9cb8;
90
+ --color-chart-5: #b08a1c;
91
+ --color-chart-6: #dc5893;
92
+ --color-chart-7: #a072e6;
93
+ --color-chart-8: #7f9c2c;
94
+ --color-chart-grid: #1f2024;
95
+ --color-chart-axis: #64676e;
96
+ --color-neutral: #a9adb5;
97
+ --color-neutral-soft: rgb(255 255 255 / 0.06);
98
+
99
+ /* Lines: border-strong and control-off >= 3:1 on bg, surface, surface-muted, surface-sunken. */
100
+ --color-border: #1f2024;
101
+ --color-border-strong: #64676e;
102
+ --color-divider: #18191c;
103
+ --color-control-off: #64676e;
104
+ --color-scrim: #000000;
105
+
106
+ /* Text: off-white, never pure white; muted >= 4.5:1 on every surface and on primary-soft. */
107
+ --color-text: #e8e9ec;
108
+ --color-text-secondary: #b4b7bd;
109
+ --color-text-muted: #90949b;
110
+ --color-text-subtle: #63676f; /* icons and chevrons only (>= 3:1), never text */
111
+ --color-text-disabled: #4a4d53;
112
+ --color-text-done: #6e727a;
113
+
114
+ /* A neutral focus ring (>= 5:1 on bg and surface), so it fits any brand. */
115
+ --color-ring: #8b8f97;
116
+
117
+ /* Edges instead of shadows: a 1 px white ring inside the raised and floating shadows. */
118
+ --shadow-raised: 0 0 0 1px rgb(255 255 255 / 0.06), 0 1px 2px rgb(0 0 0 / 0.6);
119
+ --shadow-floating: 0 0 0 1px rgb(255 255 255 / 0.08), 0 16px 48px rgb(0 0 0 / 0.7);
120
+ --shadow-segment: 0 1px 3px rgb(0 0 0 / 0.5);
121
+ --bf-shadow-raised: var(--shadow-raised);
122
+ --bf-shadow-floating: var(--shadow-floating);
123
+ --bf-shadow-segment: var(--shadow-segment);
124
+ }
@@ -5166,7 +5166,8 @@ var BfActionSheetComponent = class BfActionSheetComponent {
5166
5166
  "interactive",
5167
5167
  "chevron",
5168
5168
  "disabled",
5169
- "truncate"
5169
+ "truncate",
5170
+ "unread"
5170
5171
  ],
5171
5172
  outputs: ["clicked"]
5172
5173
  },