cursedbelt 5.27.0 → 5.28.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 (75) hide show
  1. package/dist/react/charts/IntervalTimeline.d.ts.map +1 -1
  2. package/dist/react/charts/IntervalTimeline.js +6 -2
  3. package/dist/react/charts/IntervalTimeline.js.map +1 -1
  4. package/dist/react/components/CodeArea.d.ts.map +1 -1
  5. package/dist/react/components/CodeArea.js +3 -1
  6. package/dist/react/components/CodeArea.js.map +1 -1
  7. package/dist/react/components/DataTable/DataTable.js +2 -2
  8. package/dist/react/components/DataTable/DataTable.js.map +1 -1
  9. package/dist/react/components/DataTable/TableFilterBuilder.d.ts.map +1 -1
  10. package/dist/react/components/DataTable/TableFilterBuilder.js +2 -1
  11. package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -1
  12. package/dist/react/components/FindingsList.d.ts.map +1 -1
  13. package/dist/react/components/FindingsList.js +2 -1
  14. package/dist/react/components/FindingsList.js.map +1 -1
  15. package/dist/react/components/InfoHint.d.ts.map +1 -1
  16. package/dist/react/components/InfoHint.js +3 -1
  17. package/dist/react/components/InfoHint.js.map +1 -1
  18. package/dist/react/components/Section.d.ts.map +1 -1
  19. package/dist/react/components/Section.js +3 -1
  20. package/dist/react/components/Section.js.map +1 -1
  21. package/dist/react/components/calendar/MonthGrid.d.ts.map +1 -1
  22. package/dist/react/components/calendar/MonthGrid.js +33 -32
  23. package/dist/react/components/calendar/MonthGrid.js.map +1 -1
  24. package/dist/react/components/calendar/WeekView.d.ts.map +1 -1
  25. package/dist/react/components/calendar/WeekView.js +2 -1
  26. package/dist/react/components/calendar/WeekView.js.map +1 -1
  27. package/dist/react/components/sharing/RecipientPicker.d.ts.map +1 -1
  28. package/dist/react/components/sharing/RecipientPicker.js +3 -1
  29. package/dist/react/components/sharing/RecipientPicker.js.map +1 -1
  30. package/dist/react/dashboard-grid/WidgetFrame.d.ts.map +1 -1
  31. package/dist/react/dashboard-grid/WidgetFrame.js +2 -1
  32. package/dist/react/dashboard-grid/WidgetFrame.js.map +1 -1
  33. package/dist/react/diff-viewer/TextComparePane.d.ts.map +1 -1
  34. package/dist/react/diff-viewer/TextComparePane.js +2 -1
  35. package/dist/react/diff-viewer/TextComparePane.js.map +1 -1
  36. package/dist/react/emoji/EmojiAutocomplete.d.ts.map +1 -1
  37. package/dist/react/emoji/EmojiAutocomplete.js +3 -1
  38. package/dist/react/emoji/EmojiAutocomplete.js.map +1 -1
  39. package/dist/react/folder-tree/FolderPicker.d.ts.map +1 -1
  40. package/dist/react/folder-tree/FolderPicker.js +3 -2
  41. package/dist/react/folder-tree/FolderPicker.js.map +1 -1
  42. package/dist/react/layoutEngine/LayoutCanvas.d.ts.map +1 -1
  43. package/dist/react/layoutEngine/LayoutCanvas.js.map +1 -1
  44. package/dist/react/layoutEngine/NodeInspector.d.ts.map +1 -1
  45. package/dist/react/layoutEngine/NodeInspector.js +2 -1
  46. package/dist/react/layoutEngine/NodeInspector.js.map +1 -1
  47. package/dist/react/media/TrimRangeSlider.d.ts.map +1 -1
  48. package/dist/react/media/TrimRangeSlider.js +3 -1
  49. package/dist/react/media/TrimRangeSlider.js.map +1 -1
  50. package/dist/react/problem-detail/ProblemDetailView.d.ts.map +1 -1
  51. package/dist/react/problem-detail/ProblemDetailView.js +2 -1
  52. package/dist/react/problem-detail/ProblemDetailView.js.map +1 -1
  53. package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
  54. package/package.json +8 -2
  55. package/scripts/guardrails-baseline.json +2 -1
  56. package/scripts/guardrailsEnforce.spec.ts +36 -0
  57. package/scripts/guardrailsEnforce.ts +66 -0
  58. package/src/react/charts/IntervalTimeline.tsx +2 -0
  59. package/src/react/components/CodeArea.tsx +1 -0
  60. package/src/react/components/DataTable/DataTable.tsx +4 -4
  61. package/src/react/components/DataTable/TableFilterBuilder.tsx +3 -2
  62. package/src/react/components/FindingsList.tsx +9 -5
  63. package/src/react/components/InfoHint.tsx +1 -0
  64. package/src/react/components/Section.tsx +1 -0
  65. package/src/react/components/calendar/MonthGrid.tsx +3 -1
  66. package/src/react/components/calendar/WeekView.tsx +3 -2
  67. package/src/react/components/sharing/RecipientPicker.tsx +4 -1
  68. package/src/react/dashboard-grid/WidgetFrame.tsx +4 -6
  69. package/src/react/diff-viewer/TextComparePane.tsx +4 -6
  70. package/src/react/emoji/EmojiAutocomplete.tsx +1 -0
  71. package/src/react/folder-tree/FolderPicker.tsx +5 -4
  72. package/src/react/layoutEngine/LayoutCanvas.tsx +1 -0
  73. package/src/react/layoutEngine/NodeInspector.tsx +3 -2
  74. package/src/react/media/TrimRangeSlider.tsx +1 -0
  75. package/src/react/problem-detail/ProblemDetailView.tsx +14 -5
@@ -18,6 +18,7 @@ import { cn } from '../lib/cn.js';
18
18
  import type { BindingResolver } from './LayoutRenderer.js';
19
19
  import { compatibleWidgets, widgetDef } from './registry.js';
20
20
  import type { WidgetRegistry } from './types.js';
21
+ import { Surface } from '../components/Surface.js';
21
22
 
22
23
  // The property panel for the selected node — rebuilt for NON-TECHNICAL editing. The
23
24
  // primary layer answers "what should this block look like?" in plain language: pick a
@@ -177,7 +178,7 @@ function Preview<F extends LayoutField>({
177
178
  resolved.kind === 'column' || resolved.kind === 'aggregate' ? resolved.field : undefined;
178
179
  return (
179
180
  <Labeled label='Preview'>
180
- <div className='min-w-0 break-words rounded-md border border-border bg-surface p-3 text-sm text-foreground'>
181
+ <Surface level="flat" pad="sm" radius="md" className='min-w-0 break-words text-sm text-foreground'>
181
182
  {def?.render({
182
183
  node,
183
184
  resolved,
@@ -187,7 +188,7 @@ function Preview<F extends LayoutField>({
187
188
  row: sampleRow,
188
189
  rows: sampleRows,
189
190
  }) ?? <span className='text-muted-foreground'>No preview</span>}
190
- </div>
191
+ </Surface>
191
192
  </Labeled>
192
193
  );
193
194
  }
@@ -92,6 +92,7 @@ export function TrimRangeSlider({
92
92
  return (
93
93
  <div className='select-none' data-cb-trim-slider>
94
94
  <div
95
+ // guardrails-ignore no-hand-rolled-surface: the trim slider's TRACK — a pointer-driven control, not a container
95
96
  ref={trackRef}
96
97
  className='relative h-16 w-full cursor-pointer overflow-hidden rounded-md border border-border bg-muted'
97
98
  onPointerMove={onPointerMove}
@@ -5,6 +5,7 @@ import { Badge } from '../components/Badge.js';
5
5
  import { CopyButton } from '../components/CopyButton.js';
6
6
  import { PathText } from '../components/PathText.js';
7
7
  import { cn } from '../lib/cn.js';
8
+ import { Surface } from '../components/Surface.js';
8
9
 
9
10
  /**
10
11
  * A reusable, presentational "why is this problem happening" drill-down.
@@ -153,13 +154,13 @@ export function ProblemDetailView({
153
154
  <section className='grid gap-2 sm:grid-cols-2'>
154
155
  {EXPLAIN_ROWS.map(({ key, label, icon }) =>
155
156
  explain[key] ? (
156
- <div key={key} className='rounded-lg border border-border bg-card p-3'>
157
+ <Surface key={key} level="flat" pad="sm" radius="lg" className='bg-card'>
157
158
  <div className='mb-1 flex items-center gap-1.5 text-muted-foreground'>
158
159
  <span className='shrink-0'>{icon}</span>
159
160
  <span className='text-caption font-semibold uppercase tracking-wide'>{label}</span>
160
161
  </div>
161
162
  <p className='leading-snug text-foreground'>{explain[key]}</p>
162
- </div>
163
+ </Surface>
163
164
  ) : null,
164
165
  )}
165
166
  </section>
@@ -208,10 +209,15 @@ export function ProblemDetailView({
208
209
  </div>
209
210
  <ul className='flex flex-col gap-1'>
210
211
  {ready.slice(0, 12).map((t) => (
211
- <li
212
+ <Surface
212
213
  key={t.file}
213
- className='flex items-center gap-2 rounded border border-border/60 bg-card/50 px-2 py-1'
214
+ asChild
215
+ level='flat'
216
+ pad='none'
217
+ radius='md'
218
+ className='flex items-center gap-2 rounded border-border/60 bg-card/50 px-2 py-1'
214
219
  >
220
+ <li>
215
221
  <span className='min-w-0 flex-1 truncate font-mono text-caption text-foreground'>
216
222
  {t.file}
217
223
  </span>
@@ -221,6 +227,7 @@ export function ProblemDetailView({
221
227
  </Badge>
222
228
  )}
223
229
  </li>
230
+ </Surface>
224
231
  ))}
225
232
  </ul>
226
233
  {ready.length > 12 && (
@@ -268,7 +275,8 @@ export function ProblemDetailView({
268
275
  )}
269
276
 
270
277
  {triage && (
271
- <section className='rounded-lg border border-border bg-muted/30 p-3 text-xs'>
278
+ <Surface asChild level='flat' pad='sm' radius='lg' className='bg-muted/30 text-xs'>
279
+ <section>
272
280
  <span className='text-caption font-semibold uppercase tracking-wide text-muted-foreground'>
273
281
  System verdict · {triage.status}
274
282
  </span>
@@ -278,6 +286,7 @@ export function ProblemDetailView({
278
286
  <p className='mt-1 text-caption text-muted-foreground'>decided by {triage.decidedBy}</p>
279
287
  )}
280
288
  </section>
289
+ </Surface>
281
290
  )}
282
291
 
283
292
  {detail?.trim() && (