@almanaclabs/blaze-ui 0.4.0 → 0.5.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 (122) hide show
  1. package/dist/components/accordion/accordion.js +2 -2
  2. package/dist/components/alert/alert.d.ts +1 -1
  3. package/dist/components/alert/alert.js +4 -4
  4. package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -1
  5. package/dist/components/alert-dialog/alert-dialog.js +3 -3
  6. package/dist/components/attachment/attachment.d.ts +2 -2
  7. package/dist/components/attachment/attachment.js +3 -3
  8. package/dist/components/avatar/avatar.d.ts +6 -4
  9. package/dist/components/avatar/avatar.d.ts.map +1 -1
  10. package/dist/components/avatar/avatar.js +10 -9
  11. package/dist/components/badge/badge.d.ts +3 -2
  12. package/dist/components/badge/badge.d.ts.map +1 -1
  13. package/dist/components/badge/badge.js +30 -14
  14. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  15. package/dist/components/breadcrumb/breadcrumb.js +2 -2
  16. package/dist/components/bubble/bubble.d.ts +1 -1
  17. package/dist/components/bubble/bubble.js +1 -1
  18. package/dist/components/button/button.d.ts +5 -3
  19. package/dist/components/button/button.d.ts.map +1 -1
  20. package/dist/components/button/button.js +46 -27
  21. package/dist/components/button/index.d.ts +1 -1
  22. package/dist/components/button/index.d.ts.map +1 -1
  23. package/dist/components/button-group/button-group.js +4 -4
  24. package/dist/components/calendar/calendar.d.ts.map +1 -1
  25. package/dist/components/calendar/calendar.js +18 -18
  26. package/dist/components/card/card.js +4 -4
  27. package/dist/components/carousel/carousel.d.ts.map +1 -1
  28. package/dist/components/carousel/carousel.js +31 -31
  29. package/dist/components/chart/chart.js +34 -34
  30. package/dist/components/checkbox/checkbox.js +1 -1
  31. package/dist/components/combobox/combobox.d.ts.map +1 -1
  32. package/dist/components/combobox/combobox.js +44 -44
  33. package/dist/components/data-table/data-table.js +1 -1
  34. package/dist/components/date-picker/date-picker.js +10 -10
  35. package/dist/components/dialog/dialog.js +3 -3
  36. package/dist/components/drawer/drawer.js +37 -37
  37. package/dist/components/dropdown-menu/dropdown-menu.js +7 -7
  38. package/dist/components/empty/empty.d.ts.map +1 -1
  39. package/dist/components/empty/empty.js +4 -4
  40. package/dist/components/field/field.d.ts.map +1 -1
  41. package/dist/components/field/field.js +28 -28
  42. package/dist/components/identity-mark/identity-mark.d.ts +5 -0
  43. package/dist/components/identity-mark/identity-mark.d.ts.map +1 -0
  44. package/dist/components/identity-mark/identity-mark.js +20 -0
  45. package/dist/components/identity-mark/index.d.ts +2 -0
  46. package/dist/components/identity-mark/index.d.ts.map +1 -0
  47. package/dist/components/input/input.d.ts +9 -2
  48. package/dist/components/input/input.d.ts.map +1 -1
  49. package/dist/components/input/input.js +23 -10
  50. package/dist/components/input-group/input-group.d.ts +11 -3
  51. package/dist/components/input-group/input-group.d.ts.map +1 -1
  52. package/dist/components/input-group/input-group.js +56 -38
  53. package/dist/components/item/item.d.ts +2 -2
  54. package/dist/components/item/item.js +2 -2
  55. package/dist/components/label/label.js +2 -2
  56. package/dist/components/marker/marker.d.ts +1 -1
  57. package/dist/components/marker/marker.js +3 -3
  58. package/dist/components/message/message.js +1 -1
  59. package/dist/components/metric-overview/index.d.ts +2 -0
  60. package/dist/components/metric-overview/index.d.ts.map +1 -0
  61. package/dist/components/metric-overview/metric-overview.d.ts +12 -0
  62. package/dist/components/metric-overview/metric-overview.d.ts.map +1 -0
  63. package/dist/components/metric-overview/metric-overview.js +42 -0
  64. package/dist/components/native-select/native-select.d.ts +2 -1
  65. package/dist/components/native-select/native-select.d.ts.map +1 -1
  66. package/dist/components/native-select/native-select.js +22 -21
  67. package/dist/components/navigation-action/index.d.ts +2 -0
  68. package/dist/components/navigation-action/index.d.ts.map +1 -0
  69. package/dist/components/navigation-action/navigation-action.d.ts +6 -0
  70. package/dist/components/navigation-action/navigation-action.d.ts.map +1 -0
  71. package/dist/components/navigation-action/navigation-action.js +18 -0
  72. package/dist/components/pagination/pagination.d.ts.map +1 -1
  73. package/dist/components/pagination/pagination.js +6 -6
  74. package/dist/components/popover/popover.js +1 -1
  75. package/dist/components/progress/progress.js +2 -2
  76. package/dist/components/questionnaire/questionnaire-primitive.js +71 -71
  77. package/dist/components/questionnaire/questionnaire.d.ts.map +1 -1
  78. package/dist/components/questionnaire/questionnaire.js +7 -7
  79. package/dist/components/scroll-area/scroll-area.js +1 -1
  80. package/dist/components/select/select.d.ts +2 -1
  81. package/dist/components/select/select.d.ts.map +1 -1
  82. package/dist/components/select/select.js +50 -49
  83. package/dist/components/sheet/sheet.js +2 -2
  84. package/dist/components/sidebar/sidebar.d.ts +13 -2
  85. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  86. package/dist/components/sidebar/sidebar.js +152 -91
  87. package/dist/components/spinner/spinner.js +1 -1
  88. package/dist/components/table/table.d.ts +4 -1
  89. package/dist/components/table/table.d.ts.map +1 -1
  90. package/dist/components/table/table.js +11 -9
  91. package/dist/components/tabs/tabs.d.ts +1 -1
  92. package/dist/components/tabs/tabs.js +2 -2
  93. package/dist/components/textarea/textarea.js +2 -2
  94. package/dist/components/toast/toast.d.ts.map +1 -1
  95. package/dist/components/toast/toast.js +6 -6
  96. package/dist/components/toggle/toggle.d.ts +1 -1
  97. package/dist/components/toggle/toggle.js +1 -1
  98. package/dist/components/toggle-group/toggle-group.js +10 -10
  99. package/dist/components/tooltip/tooltip.js +1 -1
  100. package/dist/index.d.ts +4 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +58 -55
  103. package/dist/lib/control-size.d.ts +9 -0
  104. package/dist/lib/control-size.d.ts.map +1 -0
  105. package/dist/lib/control-size.js +10 -0
  106. package/dist/recipes/recipe-runtime.d.ts +12 -0
  107. package/dist/recipes/recipe-runtime.d.ts.map +1 -1
  108. package/package.json +1 -1
  109. package/recipes/README.md +2 -0
  110. package/recipes/guided-workflow/README.md +51 -0
  111. package/recipes/guided-workflow/guided-workflow.tsx +495 -0
  112. package/recipes/manifest.json +8 -1
  113. package/recipes/workspace-shell/README.md +79 -25
  114. package/recipes/workspace-shell/assets/google-search-ads.svg +6 -0
  115. package/recipes/workspace-shell/assets/home.svg +5 -0
  116. package/recipes/workspace-shell/assets/radiant-health.png +0 -0
  117. package/recipes/workspace-shell/workspace-shell.css +55 -0
  118. package/recipes/workspace-shell/workspace-shell.tsx +470 -220
  119. package/src/styles/fonts/Sohne-Book.woff2 +0 -0
  120. package/src/styles/fonts/Sohne-Medium.woff2 +0 -0
  121. package/src/styles/fonts/Sohne-Semi.woff2 +0 -0
  122. package/src/styles/globals.css +233 -54
@@ -1,29 +1,27 @@
1
1
  @import 'tw-animate-css';
2
2
 
3
3
  @font-face {
4
- font-family: 'Inter Variable';
4
+ font-family: 'Sohne';
5
5
  font-style: normal;
6
6
  font-display: swap;
7
- font-weight: 100 900;
8
- src: url('@fontsource-variable/inter/files/inter-latin-ext-wght-normal.woff2')
9
- format('woff2-variations');
10
- unicode-range:
11
- U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
12
- U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
13
- U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
7
+ font-weight: 400;
8
+ src: url('./fonts/Sohne-Book.woff2') format('woff2');
14
9
  }
15
10
 
16
11
  @font-face {
17
- font-family: 'Inter Variable';
12
+ font-family: 'Sohne';
18
13
  font-style: normal;
19
14
  font-display: swap;
20
- font-weight: 100 900;
21
- src: url('@fontsource-variable/inter/files/inter-latin-wght-normal.woff2')
22
- format('woff2-variations');
23
- unicode-range:
24
- U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
25
- U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
26
- U+2215, U+FEFF, U+FFFD;
15
+ font-weight: 500;
16
+ src: url('./fonts/Sohne-Medium.woff2') format('woff2');
17
+ }
18
+
19
+ @font-face {
20
+ font-family: 'Sohne';
21
+ font-style: normal;
22
+ font-display: swap;
23
+ font-weight: 600;
24
+ src: url('./fonts/Sohne-Semi.woff2') format('woff2');
27
25
  }
28
26
 
29
27
  @custom-variant dark (&:is(.dark *));
@@ -48,7 +46,7 @@
48
46
  }
49
47
 
50
48
  --font-heading: var(--font-sans);
51
- --font-sans: 'Inter Variable', sans-serif;
49
+ --font-sans: 'Sohne', -apple-system, BlinkMacSystemFont, sans-serif;
52
50
  --color-sidebar-ring: var(--sidebar-ring);
53
51
  --color-sidebar-border: var(--sidebar-border);
54
52
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
@@ -66,6 +64,15 @@
66
64
  --color-input: var(--input);
67
65
  --color-border: var(--border);
68
66
  --color-destructive: var(--destructive);
67
+ --color-success: var(--success);
68
+ --color-warning: var(--warning);
69
+ --color-info: var(--info);
70
+ --color-foreground-secondary: var(--foreground-secondary);
71
+ --color-foreground-tertiary: var(--foreground-tertiary);
72
+ --color-surface-subtle: var(--surface-subtle);
73
+ --color-surface-muted: var(--surface-muted);
74
+ --color-navigation-selected: var(--navigation-selected);
75
+ --color-border-subtle: var(--border-subtle);
69
76
  --color-accent-foreground: var(--accent-foreground);
70
77
  --color-accent: var(--accent);
71
78
  --color-muted-foreground: var(--muted-foreground);
@@ -80,34 +87,78 @@
80
87
  --color-card: var(--card);
81
88
  --color-foreground: var(--foreground);
82
89
  --color-background: var(--background);
83
- --radius-sm: calc(var(--radius) * 0.6);
84
- --radius-md: calc(var(--radius) * 0.8);
90
+ --radius-sm: 0.375rem;
91
+ --radius-md: 0.5rem;
85
92
  --radius-lg: var(--radius);
86
- --radius-xl: calc(var(--radius) * 1.4);
87
- --radius-2xl: calc(var(--radius) * 1.8);
88
- --radius-3xl: calc(var(--radius) * 2.2);
89
- --radius-4xl: calc(var(--radius) * 2.6);
93
+ --radius-xl: 0.75rem;
94
+ --radius-2xl: 0.875rem;
95
+ --radius-3xl: 1rem;
96
+ --radius-4xl: 1.25rem;
90
97
  }
91
98
 
92
99
  :root {
93
- --background: oklch(1 0 0);
94
- --foreground: oklch(0.145 0 0);
95
- --card: oklch(1 0 0);
96
- --card-foreground: oklch(0.145 0 0);
97
- --popover: oklch(1 0 0);
98
- --popover-foreground: oklch(0.145 0 0);
99
- --primary: oklch(0.205 0 0);
100
- --primary-foreground: oklch(0.985 0 0);
101
- --secondary: oklch(0.97 0 0);
102
- --secondary-foreground: oklch(0.205 0 0);
103
- --muted: oklch(0.97 0 0);
104
- --muted-foreground: oklch(0.535 0 0);
105
- --accent: oklch(0.97 0 0);
106
- --accent-foreground: oklch(0.205 0 0);
107
- --destructive: oklch(0.505 0.213 27.518);
108
- --border: oklch(0.922 0 0);
109
- --input: oklch(0.922 0 0);
110
- --ring: oklch(0.708 0 0);
100
+ --type-page-title-size: 1.5rem;
101
+ --type-page-title-line-height: 1.1;
102
+ --type-page-title-letter-spacing: -0.0125rem;
103
+ --type-section-title-size: 1.375rem;
104
+ --type-section-title-line-height: 1.2727;
105
+ --type-section-title-letter-spacing: 0;
106
+ --type-content-size: 1rem;
107
+ --type-content-line-height: 1.4;
108
+ --type-content-letter-spacing: 0.02em;
109
+ --type-label-size: 0.875rem;
110
+ --type-label-line-height: 1.4286;
111
+ --type-label-letter-spacing: 0.02em;
112
+ --type-body-size: 0.875rem;
113
+ --type-body-line-height: 1.5;
114
+ --type-body-letter-spacing: 0.02em;
115
+ --type-meta-size: 0.75rem;
116
+ --type-meta-line-height: 1.5;
117
+ --type-meta-letter-spacing: 0.02em;
118
+ /* Positive values move editable/selectable values down from line-box center. */
119
+ --sohne-control-optical-offset: 0.0625rem;
120
+ /*
121
+ * These are rendered CSS-pixel widths, not Tabler view-box units. Shape-level
122
+ * non-scaling strokes keep them stable as icons resize. The scale uses only
123
+ * quarter- and sixth-pixel increments, preserves compact-icon legibility, and
124
+ * compounds the optical reduction until task and display icons plateau at 3/2px.
125
+ */
126
+ --icon-stroke-8: calc(3px / 4);
127
+ --icon-stroke-12: 1px;
128
+ --icon-stroke-14: calc(7px / 6);
129
+ --icon-stroke-15: calc(7px / 6);
130
+ --icon-stroke-16: 1.25px;
131
+ --icon-stroke-18: calc(4px / 3);
132
+ --icon-stroke-20: 1.5px;
133
+ --icon-stroke-24: 1.5px;
134
+ --icon-stroke-32: 1.5px;
135
+ --background: #fff;
136
+ --foreground: rgb(0 0 0 / 90%);
137
+ --foreground-secondary: rgb(0 0 0 / 60%);
138
+ --foreground-tertiary: rgb(0 0 0 / 56%);
139
+ --card: #fff;
140
+ --card-foreground: rgb(0 0 0 / 90%);
141
+ --popover: #fff;
142
+ --popover-foreground: rgb(0 0 0 / 90%);
143
+ --primary: rgb(0 0 0 / 90%);
144
+ --primary-foreground: #fff;
145
+ --secondary: rgb(0 0 0 / 3%);
146
+ --secondary-foreground: rgb(0 0 0 / 90%);
147
+ --muted: rgb(0 0 0 / 3%);
148
+ --muted-foreground: rgb(0 0 0 / 60%);
149
+ --accent: rgb(0 0 0 / 5%);
150
+ --accent-foreground: rgb(0 0 0 / 90%);
151
+ --surface-subtle: rgb(0 0 0 / 2%);
152
+ --surface-muted: rgb(0 0 0 / 3%);
153
+ --navigation-selected: rgb(0 0 0 / 8%);
154
+ --destructive: #ad0006;
155
+ --success: #005f45;
156
+ --warning: #896900;
157
+ --info: #2b6595;
158
+ --border: rgb(0 0 0 / 8%);
159
+ --border-subtle: rgb(0 0 0 / 5%);
160
+ --input: rgb(0 0 0 / 8%);
161
+ --ring: rgb(0 0 0 / 40%);
111
162
  --chart-1: oklch(0.87 0 0);
112
163
  --chart-2: oklch(0.556 0 0);
113
164
  --chart-3: oklch(0.439 0 0);
@@ -126,23 +177,32 @@
126
177
 
127
178
  .dark {
128
179
  --background: oklch(0.145 0 0);
129
- --foreground: oklch(0.985 0 0);
180
+ --foreground: rgb(255 255 255 / 90%);
181
+ --foreground-secondary: rgb(255 255 255 / 60%);
182
+ --foreground-tertiary: rgb(255 255 255 / 56%);
130
183
  --card: oklch(0.205 0 0);
131
- --card-foreground: oklch(0.985 0 0);
184
+ --card-foreground: rgb(255 255 255 / 90%);
132
185
  --popover: oklch(0.205 0 0);
133
- --popover-foreground: oklch(0.985 0 0);
134
- --primary: oklch(0.922 0 0);
186
+ --popover-foreground: rgb(255 255 255 / 90%);
187
+ --primary: rgb(255 255 255 / 90%);
135
188
  --primary-foreground: oklch(0.205 0 0);
136
- --secondary: oklch(0.269 0 0);
137
- --secondary-foreground: oklch(0.985 0 0);
138
- --muted: oklch(0.269 0 0);
139
- --muted-foreground: oklch(0.708 0 0);
140
- --accent: oklch(0.269 0 0);
141
- --accent-foreground: oklch(0.985 0 0);
189
+ --secondary: rgb(255 255 255 / 6%);
190
+ --secondary-foreground: rgb(255 255 255 / 90%);
191
+ --muted: rgb(255 255 255 / 6%);
192
+ --muted-foreground: rgb(255 255 255 / 60%);
193
+ --accent: rgb(255 255 255 / 8%);
194
+ --accent-foreground: rgb(255 255 255 / 90%);
195
+ --surface-subtle: rgb(255 255 255 / 4%);
196
+ --surface-muted: rgb(255 255 255 / 6%);
197
+ --navigation-selected: rgb(255 255 255 / 10%);
142
198
  --destructive: oklch(0.704 0.191 22.216);
143
- --border: oklch(1 0 0 / 10%);
144
- --input: oklch(1 0 0 / 15%);
145
- --ring: oklch(0.556 0 0);
199
+ --success: #65c9a6;
200
+ --warning: #e5c559;
201
+ --info: #7bb5e3;
202
+ --border: rgb(255 255 255 / 12%);
203
+ --border-subtle: rgb(255 255 255 / 8%);
204
+ --input: rgb(255 255 255 / 12%);
205
+ --ring: rgb(255 255 255 / 45%);
146
206
  --chart-1: oklch(0.87 0 0);
147
207
  --chart-2: oklch(0.556 0 0);
148
208
  --chart-3: oklch(0.439 0 0);
@@ -165,8 +225,14 @@
165
225
  }
166
226
 
167
227
  body {
228
+ -webkit-font-smoothing: antialiased;
229
+ -moz-osx-font-smoothing: grayscale;
168
230
  background-color: var(--background);
169
231
  color: var(--foreground);
232
+ font-family: var(--font-sans);
233
+ font-size: var(--type-body-size);
234
+ line-height: var(--type-body-line-height);
235
+ letter-spacing: var(--type-body-letter-spacing);
170
236
  }
171
237
 
172
238
  button:not(:disabled):not([aria-disabled='true']),
@@ -175,6 +241,119 @@
175
241
  }
176
242
  }
177
243
 
244
+ @layer utilities {
245
+ .type-page-title {
246
+ font-size: var(--type-page-title-size);
247
+ line-height: var(--type-page-title-line-height);
248
+ letter-spacing: var(--type-page-title-letter-spacing);
249
+ }
250
+
251
+ .type-section-title {
252
+ font-size: var(--type-section-title-size);
253
+ line-height: var(--type-section-title-line-height);
254
+ letter-spacing: var(--type-section-title-letter-spacing);
255
+ }
256
+
257
+ .type-body-lg {
258
+ font-size: var(--type-content-size);
259
+ line-height: var(--type-content-line-height);
260
+ letter-spacing: var(--type-content-letter-spacing);
261
+ }
262
+
263
+ .type-content {
264
+ font-size: var(--type-content-size);
265
+ line-height: var(--type-content-line-height);
266
+ letter-spacing: var(--type-content-letter-spacing);
267
+ }
268
+
269
+ .type-label {
270
+ font-size: var(--type-label-size);
271
+ line-height: var(--type-label-line-height);
272
+ letter-spacing: var(--type-label-letter-spacing);
273
+ }
274
+
275
+ .type-body {
276
+ font-size: var(--type-body-size);
277
+ line-height: var(--type-body-line-height);
278
+ letter-spacing: var(--type-body-letter-spacing);
279
+ }
280
+
281
+ .type-meta {
282
+ font-size: var(--type-meta-size);
283
+ line-height: var(--type-meta-line-height);
284
+ letter-spacing: var(--type-meta-letter-spacing);
285
+ }
286
+
287
+ /* Use these paired size/stroke utilities for Tabler icons outside components. */
288
+ .icon-optical-8 {
289
+ width: 0.5rem;
290
+ height: 0.5rem;
291
+ stroke-width: var(--icon-stroke-8);
292
+ }
293
+
294
+ .icon-optical-12 {
295
+ width: 0.75rem;
296
+ height: 0.75rem;
297
+ stroke-width: var(--icon-stroke-12);
298
+ }
299
+
300
+ .icon-optical-14 {
301
+ width: 0.875rem;
302
+ height: 0.875rem;
303
+ stroke-width: var(--icon-stroke-14);
304
+ }
305
+
306
+ .icon-optical-15 {
307
+ width: 0.9375rem;
308
+ height: 0.9375rem;
309
+ stroke-width: var(--icon-stroke-15);
310
+ }
311
+
312
+ .icon-optical-16 {
313
+ width: 1rem;
314
+ height: 1rem;
315
+ stroke-width: var(--icon-stroke-16);
316
+ }
317
+
318
+ .icon-optical-18 {
319
+ width: 1.125rem;
320
+ height: 1.125rem;
321
+ stroke-width: var(--icon-stroke-18);
322
+ }
323
+
324
+ .icon-optical-20 {
325
+ width: 1.25rem;
326
+ height: 1.25rem;
327
+ stroke-width: var(--icon-stroke-20);
328
+ }
329
+
330
+ .icon-optical-24 {
331
+ width: 1.5rem;
332
+ height: 1.5rem;
333
+ stroke-width: var(--icon-stroke-24);
334
+ }
335
+
336
+ .icon-optical-32 {
337
+ width: 2rem;
338
+ height: 2rem;
339
+ stroke-width: var(--icon-stroke-32);
340
+ }
341
+ }
342
+
343
+ @layer components {
344
+ [data-slot] svg.tabler-icon {
345
+ stroke-width: var(--icon-stroke-width, var(--icon-stroke-16));
346
+ }
347
+
348
+ [data-slot]
349
+ svg.tabler-icon
350
+ :where(path, circle, ellipse, line, polyline, polygon, rect),
351
+ svg.tabler-icon[class*='icon-optical-']
352
+ :where(path, circle, ellipse, line, polyline, polygon, rect) {
353
+ vector-effect: non-scaling-stroke;
354
+ }
355
+ }
356
+
178
357
  @media (prefers-reduced-motion: reduce) {
179
358
  [data-slot],
180
359
  [data-slot]::before,