@sofya-ds/react 1.13.1 → 1.14.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.
package/dist/index.cjs CHANGED
@@ -113,6 +113,15 @@ __export(index_exports, {
113
113
  RadioGroupOptionDescription: () => RadioGroupOptionDescription,
114
114
  RadioGroupOptionIndicator: () => RadioGroupOptionIndicator,
115
115
  RadioGroupOptionLabel: () => RadioGroupOptionLabel,
116
+ ReasoningLabsWidget: () => ReasoningLabsWidget,
117
+ ReasoningSummaryWidget: () => ReasoningSummaryWidget,
118
+ ReasoningVitalsWidget: () => ReasoningVitalsWidget,
119
+ ReasoningWidget: () => ReasoningWidget,
120
+ ReasoningWidgetActionButton: () => ReasoningWidgetActionButton,
121
+ ReasoningWidgetActions: () => ReasoningWidgetActions,
122
+ ReasoningWidgetList: () => ReasoningWidgetList,
123
+ ReasoningWidgetRenderer: () => ReasoningWidgetRenderer,
124
+ ReasoningWidgetTable: () => ReasoningWidgetTable,
116
125
  RichTextToolbar: () => RichTextToolbar,
117
126
  RichTextToolbarButton: () => RichTextToolbarButton,
118
127
  RichTextToolbarGroup: () => RichTextToolbarGroup,
@@ -217,6 +226,14 @@ __export(index_exports, {
217
226
  progressSizeOptions: () => progressSizeOptions,
218
227
  radioGroupOrientationOptions: () => radioGroupOrientationOptions,
219
228
  radioGroupVariantOptions: () => radioGroupVariantOptions,
229
+ reasoningWidgetActionScopeOptions: () => reasoningWidgetActionScopeOptions,
230
+ reasoningWidgetActionToneOptions: () => reasoningWidgetActionToneOptions,
231
+ reasoningWidgetDensityOptions: () => reasoningWidgetDensityOptions,
232
+ reasoningWidgetFrameOptions: () => reasoningWidgetFrameOptions,
233
+ reasoningWidgetTableAlignOptions: () => reasoningWidgetTableAlignOptions,
234
+ reasoningWidgetTableColumnVariantOptions: () => reasoningWidgetTableColumnVariantOptions,
235
+ reasoningWidgetToneOptions: () => reasoningWidgetToneOptions,
236
+ reasoningWidgetVariantOptions: () => reasoningWidgetVariantOptions,
220
237
  renderTextContent: () => renderTextContent,
221
238
  resolveSurfaceToken: () => import_tokens4.resolveSurfaceToken,
222
239
  resolveTextStyle: () => import_tokens4.resolveTextStyle,
@@ -369,26 +386,42 @@ var React2 = __toESM(require("react"), 1);
369
386
  var import_icons_react = require("@tabler/icons-react");
370
387
  var tablerIconRegistry = {
371
388
  IconAdjustmentsHorizontalFilled: import_icons_react.IconAdjustmentsHorizontalFilled,
389
+ IconActivity: import_icons_react.IconActivity,
390
+ IconActivityHeartbeat: import_icons_react.IconActivityHeartbeat,
372
391
  IconAlignCenter: import_icons_react.IconAlignCenter,
373
392
  IconAlignJustified: import_icons_react.IconAlignJustified,
374
393
  IconAlignLeft: import_icons_react.IconAlignLeft,
375
394
  IconAlignRight: import_icons_react.IconAlignRight,
395
+ IconAlertCircle: import_icons_react.IconAlertCircle,
376
396
  IconArrowUp: import_icons_react.IconArrowUp,
377
397
  IconArchive: import_icons_react.IconArchive,
378
398
  IconBold: import_icons_react.IconBold,
399
+ IconBrain: import_icons_react.IconBrain,
379
400
  IconBuildingHospital: import_icons_react.IconBuildingHospital,
380
401
  IconBooks: import_icons_react.IconBooks,
381
402
  IconBulb: import_icons_react.IconBulb,
382
403
  IconChartBar: import_icons_react.IconChartBar,
383
404
  IconCheck: import_icons_react.IconCheck,
384
405
  IconChecklist: import_icons_react.IconChecklist,
406
+ IconClipboardList: import_icons_react.IconClipboardList,
407
+ IconClipboardText: import_icons_react.IconClipboardText,
385
408
  IconCode: import_icons_react.IconCode,
409
+ IconFileText: import_icons_react.IconFileText,
410
+ IconFlask: import_icons_react.IconFlask,
411
+ IconHeartbeat: import_icons_react.IconHeartbeat,
386
412
  IconItalic: import_icons_react.IconItalic,
387
413
  IconLink: import_icons_react.IconLink,
388
414
  IconList: import_icons_react.IconList,
415
+ IconListCheck: import_icons_react.IconListCheck,
389
416
  IconListNumbers: import_icons_react.IconListNumbers,
417
+ IconNotes: import_icons_react.IconNotes,
418
+ IconPill: import_icons_react.IconPill,
390
419
  IconQuote: import_icons_react.IconQuote,
420
+ IconReportMedical: import_icons_react.IconReportMedical,
391
421
  IconStrikethrough: import_icons_react.IconStrikethrough,
422
+ IconStethoscope: import_icons_react.IconStethoscope,
423
+ IconTable: import_icons_react.IconTable,
424
+ IconTemperature: import_icons_react.IconTemperature,
392
425
  IconUnderline: import_icons_react.IconUnderline,
393
426
  IconChevronLeft: import_icons_react.IconChevronLeft,
394
427
  IconChevronDown: import_icons_react.IconChevronDown,
@@ -456,6 +489,7 @@ var legacyIconToTablerNameMap = {
456
489
  "lightbulb": "IconBulb",
457
490
  "chats": "IconMessages",
458
491
  "file": "IconFile",
492
+ "file-text": "IconFileText",
459
493
  "folders": "IconFolders",
460
494
  "sparkle": "IconSparkles",
461
495
  "x": "IconX",
@@ -463,6 +497,21 @@ var legacyIconToTablerNameMap = {
463
497
  "search": "IconSearch",
464
498
  "arrow-up": "IconArrowUp",
465
499
  "question": "IconHelpCircle",
500
+ "activity": "IconActivity",
501
+ "activity-heartbeat": "IconActivityHeartbeat",
502
+ "alert-circle": "IconAlertCircle",
503
+ "brain": "IconBrain",
504
+ "clipboard-list": "IconClipboardList",
505
+ "clipboard-text": "IconClipboardText",
506
+ "flask": "IconFlask",
507
+ "heartbeat": "IconHeartbeat",
508
+ "list-check": "IconListCheck",
509
+ "notes": "IconNotes",
510
+ "pill": "IconPill",
511
+ "report-medical": "IconReportMedical",
512
+ "stethoscope": "IconStethoscope",
513
+ "table": "IconTable",
514
+ "temperature": "IconTemperature",
466
515
  "user-filled": "IconUserFilled",
467
516
  "caret-up": "IconChevronUp",
468
517
  "caret-left": "IconChevronLeft",
@@ -676,8 +725,10 @@ var defaultElements = {
676
725
  "body-md": "p",
677
726
  "body-sm": "p",
678
727
  body: "p",
728
+ "clinical-body": "p",
679
729
  "label-md": "span",
680
730
  "settings-section-title": "span",
731
+ "clinical-section-title": "span",
681
732
  "section-label": "span",
682
733
  "eyebrow-md": "span",
683
734
  "overline-md": "span",
@@ -705,7 +756,7 @@ var textSizeStyles = Object.fromEntries(
705
756
  fontWeight: `var(--sofya-text-${size}-font-weight)`,
706
757
  lineHeight: `var(--sofya-text-${size}-line-height)`,
707
758
  letterSpacing: `var(--sofya-text-${size}-letter-spacing)`,
708
- ...size === "settings-section-title" ? { textTransform: "uppercase" } : {}
759
+ ...size === "settings-section-title" || size === "clinical-section-title" ? { textTransform: "uppercase" } : {}
709
760
  }
710
761
  ])
711
762
  );
@@ -2185,7 +2236,8 @@ var dropdownVariantOptions = [
2185
2236
  "card",
2186
2237
  "language",
2187
2238
  "selected",
2188
- "action"
2239
+ "action",
2240
+ "inline"
2189
2241
  ];
2190
2242
  var dropdownAppearanceOptions = ["card"];
2191
2243
  var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
@@ -2198,7 +2250,8 @@ var dropdownTriggerToneClasses = {
2198
2250
  card: "text-primary",
2199
2251
  language: "",
2200
2252
  selected: "w-full border-[color:var(--sofya-border-strong)] [font-family:var(--sofya-text-tiny-font-family)] text-[length:var(--sofya-text-tiny-font-size)] [font-weight:var(--sofya-text-tiny-font-weight)] leading-[var(--sofya-text-tiny-line-height)] tracking-[var(--sofya-text-tiny-letter-spacing)]",
2201
- action: ""
2253
+ action: "",
2254
+ inline: "border-0 bg-transparent p-0 [font-family:var(--sofya-text-tiny-font-family)] text-[length:var(--sofya-text-tiny-font-size)] font-semibold leading-[var(--sofya-text-tiny-line-height)] tracking-[0.001em] text-primary shadow-none hover:bg-transparent hover:text-primary active:bg-transparent"
2202
2255
  };
2203
2256
  var dropdownTriggerSizeClasses = {
2204
2257
  regular: {
@@ -2220,6 +2273,11 @@ var dropdownTriggerSizeClasses = {
2220
2273
  default: "h-10 w-10 p-0",
2221
2274
  sm: "h-8 w-8 p-0",
2222
2275
  lg: "h-12 w-12 p-0"
2276
+ },
2277
+ inline: {
2278
+ default: "h-[18px] px-0 py-0",
2279
+ sm: "h-[18px] px-0 py-0",
2280
+ lg: "h-[18px] px-0 py-0"
2223
2281
  }
2224
2282
  };
2225
2283
  var dropdownAppearanceClasses = {
@@ -2232,13 +2290,15 @@ var dropdownContentBaseClasses = {
2232
2290
  card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2233
2291
  language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2234
2292
  selected: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[var(--radix-dropdown-menu-trigger-width)] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2235
- action: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]"
2293
+ action: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2294
+ inline: "w-[178px] min-w-[178px] border-0 text-[color:hsl(var(--sofya-muted-foreground))] shadow-[0_2px_4px_hsl(var(--sofya-foreground)/0.10)]"
2236
2295
  };
2237
2296
  var dropdownItemClasses = {
2238
2297
  card: "text-foreground",
2239
2298
  language: "text-foreground",
2240
2299
  selected: "text-foreground",
2241
- action: "text-foreground"
2300
+ action: "text-foreground",
2301
+ inline: "text-[color:hsl(var(--sofya-muted-foreground))]"
2242
2302
  };
2243
2303
  function isButtonLanguageLocale(value) {
2244
2304
  return buttonLanguageLocaleOptions.includes(value);
@@ -2267,6 +2327,9 @@ function resolveDropdownTriggerSizeFamily(variant) {
2267
2327
  if (variant === "action") {
2268
2328
  return "action";
2269
2329
  }
2330
+ if (variant === "inline") {
2331
+ return "inline";
2332
+ }
2270
2333
  return "regular";
2271
2334
  }
2272
2335
  function resolveAccessibleText(node) {
@@ -2286,6 +2349,9 @@ function resolveAccessibleText(node) {
2286
2349
  return result.length > 0 ? result : void 0;
2287
2350
  }
2288
2351
  function DefaultDropdownTriggerIcon({ variant }) {
2352
+ if (variant === "inline") {
2353
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-selected)] text-[color:var(--sofya-link-hover)]", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: "caret-down", className: "h-3 w-3" }) });
2354
+ }
2289
2355
  if (variant === "selected") {
2290
2356
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2291
2357
  Icon,
@@ -2340,6 +2406,7 @@ function Dropdown({
2340
2406
  const isLanguageVariant = variant === "language";
2341
2407
  const isSelectedVariant = variant === "selected";
2342
2408
  const isActionVariant = variant === "action";
2409
+ const isInlineVariant = variant === "inline";
2343
2410
  const isIconOnlyTrigger = iconTrigger !== void 0 && !isActionVariant;
2344
2411
  const resolvedAppearance = resolveDropdownAppearance({ appearance, variant });
2345
2412
  const triggerSizeFamily = isIconOnlyTrigger ? "action" : resolveDropdownTriggerSizeFamily(variant);
@@ -2392,7 +2459,7 @@ function Dropdown({
2392
2459
  Button,
2393
2460
  {
2394
2461
  type: "button",
2395
- variant: isLanguageVariant ? "language" : isActionVariant || isIconOnlyTrigger ? "ghost" : "dropdown",
2462
+ variant: isLanguageVariant ? "language" : isActionVariant || isIconOnlyTrigger ? "ghost" : isInlineVariant ? "ghost" : "dropdown",
2396
2463
  languageLocale: selectedLanguageLocale,
2397
2464
  "data-appearance": resolvedAppearance,
2398
2465
  "data-trigger-size": triggerSize,
@@ -2403,6 +2470,7 @@ function Dropdown({
2403
2470
  dropdownTriggerSizeClasses[triggerSizeFamily][triggerSize],
2404
2471
  !isIconOnlyTrigger && dropdownAppearanceClasses[resolvedAppearance].trigger,
2405
2472
  selectedTriggerToneClassName,
2473
+ isInlineVariant && "justify-end gap-2",
2406
2474
  isIconOnlyTrigger && "flex items-center justify-center",
2407
2475
  triggerClassName
2408
2476
  ),
@@ -2410,7 +2478,10 @@ function Dropdown({
2410
2478
  rightIcon: resolvedTriggerIcon,
2411
2479
  children: isLanguageVariant || isActionVariant || isIconOnlyTrigger ? null : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "min-w-0 truncate", children: renderTextContent(triggerLabel, {
2412
2480
  as: "span",
2413
- className: "block min-w-0 truncate text-inherit",
2481
+ className: cn(
2482
+ "block min-w-0 truncate text-inherit",
2483
+ isInlineVariant && "text-right"
2484
+ ),
2414
2485
  size: "tiny"
2415
2486
  }) })
2416
2487
  }
@@ -2425,6 +2496,7 @@ function Dropdown({
2425
2496
  "sofya-dropdown-content z-50 w-auto min-w-[var(--radix-dropdown-menu-trigger-width)] border bg-card p-2 outline-none",
2426
2497
  dropdownContentBaseClasses[variant],
2427
2498
  dropdownAppearanceClasses[resolvedAppearance].content,
2499
+ isInlineVariant && "rounded-2xl",
2428
2500
  contentClassName
2429
2501
  ),
2430
2502
  children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
@@ -2662,7 +2734,8 @@ function Dropdown({
2662
2734
  disabled: item.disabled,
2663
2735
  className: cn(
2664
2736
  "flex w-full cursor-pointer items-center rounded-[4px] [font-family:var(--sofya-text-tiny-font-family)] text-[length:var(--sofya-text-tiny-font-size)] [font-weight:var(--sofya-text-tiny-font-weight)] leading-[22px] tracking-[var(--sofya-text-tiny-letter-spacing)] outline-none transition-colors duration-sofya ease-sofya data-[disabled]:pointer-events-none data-[disabled]:opacity-40",
2665
- "px-0 py-0 data-[highlighted]:bg-transparent [&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-selected)]",
2737
+ "px-0 py-0 data-[highlighted]:bg-transparent",
2738
+ isInlineVariant ? "[&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-hover)]" : "[&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-selected)]",
2666
2739
  dropdownItemClasses[variant],
2667
2740
  itemClassName
2668
2741
  ),
@@ -2672,7 +2745,7 @@ function Dropdown({
2672
2745
  "data-dropdown-item-body": true,
2673
2746
  className: cn(
2674
2747
  "inline-flex min-w-0 items-center gap-2 rounded-full px-4 py-2 transition-colors duration-sofya ease-sofya",
2675
- isSelected ? "bg-[color:var(--sofya-surface-selected)]" : "bg-transparent"
2748
+ isSelected ? isInlineVariant ? "bg-[color:var(--sofya-surface-hover)]" : "bg-[color:var(--sofya-surface-selected)]" : "bg-transparent"
2676
2749
  ),
2677
2750
  children: [
2678
2751
  itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
@@ -5184,147 +5257,1560 @@ var RichTextToolbarButton = React31.forwardRef(function RichTextToolbarButton2({
5184
5257
  });
5185
5258
  RichTextToolbarButton.displayName = "RichTextToolbarButton";
5186
5259
 
5187
- // src/components/right-rail-action.tsx
5260
+ // src/components/reasoning-widget.tsx
5188
5261
  var React32 = __toESM(require("react"), 1);
5189
5262
  var import_jsx_runtime34 = require("react/jsx-runtime");
5190
- var RightRailAction = React32.forwardRef(
5191
- ({ active = false, className, icon, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5192
- IconButton,
5263
+ var reasoningWidgetToneOptions = [
5264
+ "default",
5265
+ "info",
5266
+ "success",
5267
+ "warning",
5268
+ "critical",
5269
+ "muted"
5270
+ ];
5271
+ var reasoningWidgetDensityOptions = ["default", "compact"];
5272
+ var reasoningWidgetVariantOptions = [
5273
+ "flat",
5274
+ "outline",
5275
+ "muted",
5276
+ "suggestion"
5277
+ ];
5278
+ var reasoningWidgetActionScopeOptions = ["item", "widget"];
5279
+ var reasoningWidgetActionToneOptions = [
5280
+ "primary",
5281
+ "neutral",
5282
+ "danger"
5283
+ ];
5284
+ var reasoningWidgetTableAlignOptions = [
5285
+ "left",
5286
+ "center",
5287
+ "right"
5288
+ ];
5289
+ var reasoningWidgetTableColumnVariantOptions = [
5290
+ "default",
5291
+ "value"
5292
+ ];
5293
+ var reasoningWidgetFrameOptions = ["bordered", "minimal"];
5294
+ var ReasoningWidgetDensityContext = React32.createContext("default");
5295
+ var actionIconNames = {
5296
+ accept: "check",
5297
+ add: "plus",
5298
+ edit: "edit",
5299
+ reject: "x",
5300
+ remove: "trash"
5301
+ };
5302
+ var actionToneById = {
5303
+ accept: "primary",
5304
+ add: "primary",
5305
+ edit: "neutral",
5306
+ reject: "danger",
5307
+ remove: "danger"
5308
+ };
5309
+ var actionVariantByTone = {
5310
+ danger: "destructive",
5311
+ neutral: "ghost",
5312
+ primary: "subtle"
5313
+ };
5314
+ var toneSurfaceClassName = {
5315
+ default: "border-[color:var(--sofya-neutral-600)] bg-card",
5316
+ info: "border-[color:var(--sofya-tone-info-border)] bg-[color:var(--sofya-tone-info-background)]",
5317
+ success: "border-[color:var(--sofya-tone-success-border)] bg-[color:var(--sofya-tone-success-background)]",
5318
+ warning: "border-[color:var(--sofya-tone-warning-border)] bg-[color:var(--sofya-tone-warning-background)]",
5319
+ critical: "border-[color:var(--sofya-tone-destructive-border)] bg-[color:var(--sofya-tone-destructive-background)]",
5320
+ muted: "border-[color:var(--sofya-neutral-600)] bg-card"
5321
+ };
5322
+ var clinicalToneMarkerClassName = {
5323
+ default: "bg-[color:var(--sofya-neutral-600)]",
5324
+ info: "bg-secondary",
5325
+ success: "bg-[color:var(--sofya-tag-green)]",
5326
+ warning: "bg-[color:var(--sofya-tag-red)]",
5327
+ critical: "bg-[color:var(--sofya-tag-red)]",
5328
+ muted: "bg-[color:var(--sofya-neutral-600)]"
5329
+ };
5330
+ var clinicalToneSurfaceClassName = {
5331
+ default: "bg-transparent",
5332
+ info: "bg-[color:var(--sofya-neutral-50)]",
5333
+ success: "bg-transparent",
5334
+ warning: "bg-transparent",
5335
+ critical: "bg-transparent",
5336
+ muted: "bg-transparent"
5337
+ };
5338
+ var clinicalToneStatusClassName = {
5339
+ default: "text-[color:var(--sofya-text-subtle)]",
5340
+ info: "text-secondary",
5341
+ success: "text-[color:var(--sofya-tag-green)]",
5342
+ warning: "text-[color:var(--sofya-tag-red)]",
5343
+ critical: "text-[color:var(--sofya-tag-red)]",
5344
+ muted: "text-[color:var(--sofya-text-subtle)]"
5345
+ };
5346
+ var clinicalToneValueClassName = {
5347
+ default: "text-[color:var(--sofya-neutral-900)]",
5348
+ info: "text-[color:var(--sofya-neutral-900)]",
5349
+ success: "text-[color:var(--sofya-neutral-900)]",
5350
+ warning: "text-[color:var(--sofya-tag-red)]",
5351
+ critical: "text-[color:var(--sofya-tag-red)]",
5352
+ muted: "text-[color:var(--sofya-neutral-900)]"
5353
+ };
5354
+ var clinicalToneBadgeClassName = {
5355
+ default: "bg-[color:var(--sofya-neutral-50)] text-[color:var(--sofya-text-subtle)]",
5356
+ info: "bg-[color:var(--sofya-neutral-50)] text-secondary",
5357
+ success: "bg-[color:var(--sofya-agent-mint)] text-[color:var(--sofya-tag-green)]",
5358
+ warning: "bg-[color:var(--sofya-tag-sand)] text-[color:var(--sofya-tag-red)]",
5359
+ critical: "bg-[color:var(--sofya-tag-sand)] text-[color:var(--sofya-tag-red)]",
5360
+ muted: "bg-[color:var(--sofya-neutral-50)] text-[color:var(--sofya-text-subtle)]"
5361
+ };
5362
+ var clinicalDataFrameClassName = {
5363
+ bordered: "w-full overflow-hidden rounded-[var(--sofya-radius-lg)] border border-[color:var(--sofya-neutral-600)] bg-card",
5364
+ minimal: "w-full overflow-hidden rounded-[var(--sofya-radius-md)] border-0 bg-[color:var(--sofya-neutral-50)]"
5365
+ };
5366
+ var clinicalDataHeaderClassName = {
5367
+ bordered: "border-b border-[color:var(--sofya-neutral-600)] bg-[color:var(--sofya-neutral-50)]",
5368
+ minimal: "border-b border-[color:var(--sofya-neutral-600)] bg-transparent"
5369
+ };
5370
+ var clinicalLabsFrameClassName = {
5371
+ bordered: "w-full overflow-x-auto overflow-y-hidden rounded-[var(--sofya-radius-lg)] border border-[color:var(--sofya-neutral-600)] bg-card",
5372
+ minimal: "w-fit max-w-full overflow-x-auto overflow-y-hidden rounded-[var(--sofya-radius-md)] border-0 bg-[color:var(--sofya-neutral-50)]"
5373
+ };
5374
+ var tableAlignClassName = {
5375
+ center: "text-center",
5376
+ left: "text-left",
5377
+ right: "text-right"
5378
+ };
5379
+ function isWidgetAction(action) {
5380
+ return action.scope === "widget";
5381
+ }
5382
+ function isItemAction(action) {
5383
+ return action.scope !== "widget";
5384
+ }
5385
+ function getActionIcon(action) {
5386
+ if (action.icon) {
5387
+ return action.icon;
5388
+ }
5389
+ return actionIconNames[action.id] ?? "square-toggle";
5390
+ }
5391
+ function getActionTone(action) {
5392
+ if (action.tone) {
5393
+ return action.tone;
5394
+ }
5395
+ return actionToneById[action.id] ?? "neutral";
5396
+ }
5397
+ function getTargetLabel(target) {
5398
+ if (!target) {
5399
+ return void 0;
5400
+ }
5401
+ if ("label" in target) {
5402
+ return typeof target.label === "string" || typeof target.label === "number" ? String(target.label) : target.id;
5403
+ }
5404
+ return target.id;
5405
+ }
5406
+ function getActionLabel(action, target) {
5407
+ if (action.ariaLabel) {
5408
+ return action.ariaLabel;
5409
+ }
5410
+ const targetLabel = getTargetLabel(target);
5411
+ return targetLabel ? `${action.label} ${targetLabel}` : action.label;
5412
+ }
5413
+ function getItemsFromDescriptor(widget) {
5414
+ return widget.items ?? widget.data?.items ?? [];
5415
+ }
5416
+ function getDescriptionFromDescriptor(widget) {
5417
+ return widget.description ?? widget.data?.description;
5418
+ }
5419
+ function getEmptyLabelFromDescriptor(widget) {
5420
+ return widget.emptyLabel ?? widget.data?.emptyLabel;
5421
+ }
5422
+ function getFrameFromDescriptor(widget) {
5423
+ return widget.frame ?? widget.data?.frame;
5424
+ }
5425
+ function getDescriptorKind(widget) {
5426
+ return `${widget.component ?? ""} ${widget.type ?? ""}`.toLowerCase();
5427
+ }
5428
+ function getIconFromDescriptor(widget) {
5429
+ if (widget.icon) {
5430
+ return widget.icon;
5431
+ }
5432
+ const descriptorKind = getDescriptorKind(widget);
5433
+ if (descriptorKind.includes("summary") || descriptorKind.includes("impression") || hasRenderableNode(widget.data?.impression)) {
5434
+ return "stethoscope";
5435
+ }
5436
+ if (descriptorKind.includes("vitals")) {
5437
+ return "activity-heartbeat";
5438
+ }
5439
+ if (descriptorKind.includes("question")) {
5440
+ return "question";
5441
+ }
5442
+ if (descriptorKind.includes("prescription") || descriptorKind.includes("medication")) {
5443
+ return "pill";
5444
+ }
5445
+ if (descriptorKind.includes("lab")) {
5446
+ return "flask";
5447
+ }
5448
+ if (descriptorKind.includes("alert")) {
5449
+ return "alert-circle";
5450
+ }
5451
+ if (widget.data?.tableColumns && widget.data.rows) {
5452
+ return "table";
5453
+ }
5454
+ return "clipboard-list";
5455
+ }
5456
+ function hasRenderableNode(value) {
5457
+ return value !== null && value !== void 0 && value !== false;
5458
+ }
5459
+ function isEditableTextValue(value) {
5460
+ return typeof value === "string" || typeof value === "number";
5461
+ }
5462
+ function ReasoningEditableText({
5463
+ as = "span",
5464
+ ariaLabel,
5465
+ className,
5466
+ editable = false,
5467
+ multiline = false,
5468
+ onCommit,
5469
+ size,
5470
+ value,
5471
+ weight
5472
+ }) {
5473
+ if (!editable || !isEditableTextValue(value)) {
5474
+ return renderTextContent(value, {
5475
+ as,
5476
+ className,
5477
+ size,
5478
+ weight
5479
+ });
5480
+ }
5481
+ const initialValue = String(value);
5482
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5483
+ Text,
5193
5484
  {
5194
- ref,
5195
- icon,
5196
- variant: "ghost",
5197
- selected: active,
5198
- "data-slot": "right-rail-action",
5485
+ as,
5486
+ "aria-label": ariaLabel,
5199
5487
  className: cn(
5200
- "size-[var(--sofya-icon-button-size-md)] rounded-[var(--sofya-radius-md)] shadow-none",
5488
+ "rounded-[4px] text-inherit outline-none transition-[background-color,box-shadow] duration-sofya ease-sofya",
5489
+ "-mx-1 px-1 hover:bg-[color:var(--sofya-surface-hover)] focus-visible:bg-card focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-strong)]",
5490
+ multiline ? "whitespace-pre-wrap" : "truncate",
5201
5491
  className
5202
5492
  ),
5203
- ...props
5204
- }
5205
- )
5206
- );
5207
- RightRailAction.displayName = "RightRailAction";
5208
-
5209
- // src/components/scroll-area.tsx
5210
- var React33 = __toESM(require("react"), 1);
5211
- var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
5212
- var import_jsx_runtime35 = require("react/jsx-runtime");
5213
- var scrollAreaOrientationOptions = ["horizontal", "vertical"];
5214
- var ScrollArea = React33.forwardRef(function ScrollArea2({ className, ...props }, ref) {
5215
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5216
- ScrollAreaPrimitive.Root,
5217
- {
5218
- ref,
5219
- "data-slot": "scroll-area",
5220
- className: cn("relative overflow-hidden", className),
5221
- ...props
5493
+ contentEditable: true,
5494
+ "data-editable": "true",
5495
+ role: "textbox",
5496
+ size,
5497
+ spellCheck: true,
5498
+ suppressContentEditableWarning: true,
5499
+ tabIndex: 0,
5500
+ weight,
5501
+ onBlur: (event) => {
5502
+ const nextValue = event.currentTarget.textContent ?? "";
5503
+ if (nextValue !== initialValue) {
5504
+ onCommit?.(nextValue);
5505
+ }
5506
+ },
5507
+ onKeyDown: (event) => {
5508
+ if (event.key === "Enter" && !multiline) {
5509
+ event.preventDefault();
5510
+ event.currentTarget.blur();
5511
+ }
5512
+ },
5513
+ children: initialValue
5222
5514
  }
5223
5515
  );
5224
- });
5225
- ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
5226
- var ScrollAreaViewport = React33.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
5227
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5228
- ScrollAreaPrimitive.Viewport,
5516
+ }
5517
+ var ReasoningWidgetActionButton = React32.forwardRef(function ReasoningWidgetActionButton2({ action, className, disabled, onAction, target, widgetId, ...props }, ref) {
5518
+ const tone = getActionTone(action);
5519
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5520
+ IconButton,
5229
5521
  {
5230
5522
  ref,
5231
- "data-slot": "scroll-area-viewport",
5523
+ "aria-label": getActionLabel(
5524
+ action,
5525
+ target
5526
+ ),
5527
+ "data-action-id": action.id,
5528
+ "data-action-scope": action.scope,
5529
+ disabled: disabled ?? action.disabled,
5530
+ icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { name: getActionIcon(action), size: "sm" }),
5531
+ size: "sm",
5532
+ variant: actionVariantByTone[tone],
5232
5533
  className: cn(
5233
- "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0",
5534
+ "rounded-[var(--sofya-radius-sm)] text-[color:var(--sofya-text-soft)]",
5535
+ tone === "primary" && "text-primary",
5234
5536
  className
5235
5537
  ),
5538
+ onClick: () => {
5539
+ onAction?.({
5540
+ action,
5541
+ target,
5542
+ widgetId
5543
+ });
5544
+ },
5236
5545
  ...props
5237
5546
  }
5238
5547
  );
5239
5548
  });
5240
- ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
5241
- var ScrollAreaScrollbar = React33.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
5242
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5243
- ScrollAreaPrimitive.Scrollbar,
5549
+ var ReasoningWidgetActions = React32.forwardRef(function ReasoningWidgetActions2({
5550
+ actions = [],
5551
+ className,
5552
+ onAction,
5553
+ reveal = "widget-hover",
5554
+ target,
5555
+ widgetId,
5556
+ ...props
5557
+ }, ref) {
5558
+ if (actions.length === 0) {
5559
+ return null;
5560
+ }
5561
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5562
+ "div",
5244
5563
  {
5245
5564
  ref,
5246
- "data-slot": "scroll-area-scrollbar",
5247
- orientation,
5565
+ "data-slot": "reasoning-widget-actions",
5566
+ "data-reveal": reveal,
5248
5567
  className: cn(
5249
- "flex touch-none select-none p-0 transition-colors duration-sofya ease-sofya data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent",
5568
+ "z-10 flex shrink-0 items-center gap-1 transition-opacity duration-sofya ease-sofya",
5569
+ reveal === "widget-hover" && "pointer-events-none opacity-0 group-hover/reasoning:pointer-events-auto group-hover/reasoning:opacity-100 group-focus-within/reasoning:pointer-events-auto group-focus-within/reasoning:opacity-100",
5570
+ reveal === "item-hover" && "pointer-events-none opacity-0 group-hover/item:pointer-events-auto group-hover/item:opacity-100 group-focus-within/item:pointer-events-auto group-focus-within/item:opacity-100",
5250
5571
  className
5251
5572
  ),
5252
5573
  ...props,
5253
- children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5254
- ScrollAreaPrimitive.Thumb,
5574
+ children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5575
+ ReasoningWidgetActionButton,
5255
5576
  {
5256
- "data-slot": "scroll-area-thumb",
5257
- className: cn(
5258
- "relative flex-1 rounded-full bg-[color:var(--sofya-border-strong)]",
5259
- thumbClassName
5260
- )
5261
- }
5262
- )
5577
+ action,
5578
+ onAction,
5579
+ target,
5580
+ widgetId
5581
+ },
5582
+ action.id
5583
+ ))
5263
5584
  }
5264
5585
  );
5265
5586
  });
5266
- ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
5267
- var ScrollAreaCorner = React33.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
5268
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5269
- ScrollAreaPrimitive.Corner,
5587
+ var ReasoningWidget = React32.forwardRef(
5588
+ function ReasoningWidget2({
5589
+ actions = [],
5590
+ children,
5591
+ className,
5592
+ density = "default",
5593
+ description,
5594
+ empty = false,
5595
+ emptyLabel = "No extracted information yet.",
5596
+ eyebrow,
5597
+ icon,
5598
+ onAction,
5599
+ sectionDivider = false,
5600
+ title,
5601
+ variant = "flat",
5602
+ widgetId,
5603
+ ...props
5604
+ }, ref) {
5605
+ const widgetActions = actions.filter(isWidgetAction);
5606
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ReasoningWidgetDensityContext.Provider, { value: density, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5607
+ "article",
5608
+ {
5609
+ ref,
5610
+ "data-density": density,
5611
+ "data-slot": "reasoning-widget",
5612
+ "data-variant": variant,
5613
+ className: cn(
5614
+ "group/reasoning w-full shadow-none",
5615
+ "transition-[border-color,box-shadow] duration-sofya ease-sofya",
5616
+ variant === "flat" && "rounded-none border-0 bg-transparent p-0",
5617
+ variant === "outline" && "rounded-[var(--sofya-radius-md)] border border-[color:var(--sofya-border-strong)] bg-card",
5618
+ variant === "muted" && "rounded-[var(--sofya-radius-md)] border-0 bg-[color:var(--sofya-surface-muted)]",
5619
+ variant === "suggestion" && "rounded-[var(--sofya-radius-md)] border border-[color:var(--sofya-border-hover)] bg-card",
5620
+ variant !== "flat" && (density === "compact" ? "p-4" : "p-5"),
5621
+ className
5622
+ ),
5623
+ ...props,
5624
+ children: [
5625
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5626
+ "div",
5627
+ {
5628
+ "data-slot": "reasoning-widget-header",
5629
+ className: "relative flex items-start gap-4",
5630
+ children: [
5631
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
5632
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex min-w-0 items-start gap-2.5", children: [
5633
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5634
+ "span",
5635
+ {
5636
+ "aria-hidden": "true",
5637
+ "data-icon": icon,
5638
+ "data-slot": "reasoning-widget-icon",
5639
+ className: "mt-0.5 inline-flex size-4 shrink-0 items-center justify-center text-secondary",
5640
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { name: icon, size: 14, strokeWidth: 1.8 })
5641
+ }
5642
+ ) : null,
5643
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "min-w-0", children: [
5644
+ eyebrow ? renderTextContent(eyebrow, {
5645
+ as: "span",
5646
+ className: "mb-1 block uppercase text-secondary [font-weight:var(--sofya-text-section-label-font-weight)]",
5647
+ size: "section-label"
5648
+ }) : null,
5649
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5650
+ "h3",
5651
+ {
5652
+ className: cn(
5653
+ "m-0",
5654
+ eyebrow ? "text-[color:var(--sofya-neutral-800)]" : "text-secondary"
5655
+ ),
5656
+ children: renderTextContent(title, {
5657
+ as: "span",
5658
+ className: cn(
5659
+ "block text-inherit",
5660
+ !eyebrow && "uppercase"
5661
+ ),
5662
+ size: eyebrow ? density === "compact" ? "label-md" : "title-sm" : density === "compact" ? "section-label" : "clinical-section-title"
5663
+ })
5664
+ }
5665
+ ),
5666
+ description ? renderTextContent(description, {
5667
+ as: "p",
5668
+ className: "mt-2 text-[color:var(--sofya-text-subtle)]",
5669
+ size: "body-md"
5670
+ }) : null
5671
+ ] })
5672
+ ] }),
5673
+ sectionDivider ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5674
+ "span",
5675
+ {
5676
+ "aria-hidden": "true",
5677
+ "data-slot": "reasoning-widget-section-divider",
5678
+ className: cn(
5679
+ "mt-2 h-px min-w-8 flex-1 bg-[color:var(--sofya-neutral-600)]",
5680
+ widgetActions.length > 0 && "mr-12"
5681
+ )
5682
+ }
5683
+ ) : null
5684
+ ] }),
5685
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5686
+ ReasoningWidgetActions,
5687
+ {
5688
+ actions: widgetActions,
5689
+ className: "absolute right-0 top-1/2 -translate-y-1/2",
5690
+ onAction,
5691
+ reveal: "widget-hover",
5692
+ widgetId
5693
+ }
5694
+ )
5695
+ ]
5696
+ }
5697
+ ),
5698
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5699
+ "div",
5700
+ {
5701
+ "data-slot": "reasoning-widget-content",
5702
+ className: cn(density === "compact" ? "mt-3" : "mt-4"),
5703
+ children: empty ? renderTextContent(emptyLabel, {
5704
+ as: "p",
5705
+ className: "m-0 text-[color:var(--sofya-text-subtle)]",
5706
+ size: "body-md"
5707
+ }) : children
5708
+ }
5709
+ )
5710
+ ]
5711
+ }
5712
+ ) });
5713
+ }
5714
+ );
5715
+ var ReasoningWidgetList = React32.forwardRef(function ReasoningWidgetList2({
5716
+ actions = [],
5717
+ className,
5718
+ editable = false,
5719
+ emptyLabel,
5720
+ items,
5721
+ onAction,
5722
+ onItemEdit,
5723
+ widgetId,
5724
+ ...props
5725
+ }, ref) {
5726
+ const itemActions = actions.filter(isItemAction);
5727
+ const density = React32.useContext(ReasoningWidgetDensityContext);
5728
+ const primaryTextSize = density === "compact" ? "body-md" : "clinical-body";
5729
+ const supportingTextSize = density === "compact" ? "body-sm" : "clinical-body";
5730
+ if (items.length === 0) {
5731
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "m-0 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(emptyLabel ?? "No extracted items.", {
5732
+ as: "span",
5733
+ className: "block text-inherit",
5734
+ size: "body-md"
5735
+ }) });
5736
+ }
5737
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5738
+ "ul",
5270
5739
  {
5271
5740
  ref,
5272
- "data-slot": "scroll-area-corner",
5273
- className: cn("bg-transparent", className),
5274
- ...props
5741
+ "data-slot": "reasoning-widget-list",
5742
+ className: cn("m-0 list-none space-y-0 p-0", className),
5743
+ ...props,
5744
+ children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5745
+ "li",
5746
+ {
5747
+ "data-slot": "reasoning-widget-list-item",
5748
+ "data-tone": item.tone,
5749
+ className: "group/item relative grid grid-cols-[auto_minmax(0,1fr)] items-start gap-3 rounded-[var(--sofya-radius-sm)] pr-2 transition-colors duration-sofya ease-sofya hover:bg-[color:var(--sofya-surface-hover)] focus-within:bg-[color:var(--sofya-surface-hover)]",
5750
+ children: [
5751
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5752
+ "span",
5753
+ {
5754
+ "aria-hidden": "true",
5755
+ "data-slot": "reasoning-widget-list-marker",
5756
+ className: "mt-2 size-2 rounded-full bg-[color:var(--sofya-text-soft)]"
5757
+ }
5758
+ ),
5759
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "min-w-0", children: [
5760
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1", children: [
5761
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "min-w-0 text-[color:var(--sofya-neutral-800)]", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5762
+ ReasoningEditableText,
5763
+ {
5764
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "item"} label`,
5765
+ className: "block text-inherit",
5766
+ editable,
5767
+ size: primaryTextSize,
5768
+ value: item.label,
5769
+ onCommit: (value) => {
5770
+ onItemEdit?.({
5771
+ field: "label",
5772
+ item,
5773
+ value,
5774
+ widgetId
5775
+ });
5776
+ }
5777
+ }
5778
+ ) }),
5779
+ hasRenderableNode(item.value) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5780
+ ReasoningEditableText,
5781
+ {
5782
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "item"} value`,
5783
+ className: "text-[color:var(--sofya-text-soft)]",
5784
+ editable,
5785
+ size: primaryTextSize,
5786
+ value: item.value,
5787
+ onCommit: (value) => {
5788
+ onItemEdit?.({
5789
+ field: "value",
5790
+ item,
5791
+ value,
5792
+ widgetId
5793
+ });
5794
+ }
5795
+ }
5796
+ ) : null,
5797
+ hasRenderableNode(item.status) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5798
+ ReasoningEditableText,
5799
+ {
5800
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "item"} status`,
5801
+ className: "text-[color:var(--sofya-text-subtle)]",
5802
+ editable,
5803
+ size: "caption",
5804
+ value: item.status,
5805
+ onCommit: (value) => {
5806
+ onItemEdit?.({
5807
+ field: "status",
5808
+ item,
5809
+ value,
5810
+ widgetId
5811
+ });
5812
+ }
5813
+ }
5814
+ ) : null
5815
+ ] }),
5816
+ hasRenderableNode(item.evidence) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5817
+ ReasoningEditableText,
5818
+ {
5819
+ as: "p",
5820
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "item"} evidence`,
5821
+ className: "mt-1 text-[color:var(--sofya-text-subtle)]",
5822
+ editable,
5823
+ multiline: true,
5824
+ size: supportingTextSize,
5825
+ value: item.evidence,
5826
+ onCommit: (value) => {
5827
+ onItemEdit?.({
5828
+ field: "evidence",
5829
+ item,
5830
+ value,
5831
+ widgetId
5832
+ });
5833
+ }
5834
+ }
5835
+ ) : null
5836
+ ] }),
5837
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5838
+ ReasoningWidgetActions,
5839
+ {
5840
+ actions: itemActions,
5841
+ className: "absolute right-1 top-1",
5842
+ onAction,
5843
+ reveal: "item-hover",
5844
+ target: item,
5845
+ widgetId
5846
+ }
5847
+ )
5848
+ ]
5849
+ },
5850
+ item.id ?? `reasoning-widget-item-${index}`
5851
+ ))
5275
5852
  }
5276
5853
  );
5277
5854
  });
5278
- ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
5279
-
5280
- // src/components/select.tsx
5281
- var React34 = __toESM(require("react"), 1);
5282
- var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
5283
-
5284
- // src/lib/form-control-classes.ts
5285
- var formControlBaseClasses = "flex w-full items-center justify-between gap-4 rounded-[10px] border border-[color:var(--sofya-border-strong)] bg-card px-4 text-left [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[color:var(--sofya-text-default)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] focus:outline-none focus:ring-2 focus:ring-[color:var(--sofya-focus-ring-soft)] focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[color:var(--sofya-focus-ring-soft)] disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus:ring-destructive/20 data-[placeholder]:text-[color:var(--sofya-text-placeholder)]";
5286
-
5287
- // src/components/select.tsx
5288
- var import_jsx_runtime36 = require("react/jsx-runtime");
5289
- var selectSizeOptions = ["default", "sm"];
5290
- var Select = SelectPrimitive.Root;
5291
- var SelectGroup = SelectPrimitive.Group;
5292
- var SelectValue = React34.forwardRef(function SelectValue2({ className, ...props }, ref) {
5293
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
5294
- Text,
5295
- {
5296
- ref,
5855
+ var ReasoningWidgetTable = React32.forwardRef(function ReasoningWidgetTable2({
5856
+ actions = [],
5857
+ className,
5858
+ columns,
5859
+ editable = false,
5860
+ emptyLabel = "No rows available.",
5861
+ onAction,
5862
+ onCellEdit,
5863
+ rows,
5864
+ showHeader = true,
5865
+ widgetId,
5866
+ ...props
5867
+ }, ref) {
5868
+ const itemActions = actions.filter(isItemAction);
5869
+ const hasActions = itemActions.length > 0;
5870
+ const density = React32.useContext(ReasoningWidgetDensityContext);
5871
+ const headerTextSize = density === "compact" ? "label-md" : "body-sm";
5872
+ const cellTextSize = density === "compact" ? "body-sm" : "body-sm";
5873
+ if (rows.length === 0) {
5874
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "m-0 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(emptyLabel, {
5297
5875
  as: "span",
5298
- "data-slot": "select-value",
5299
- className: cn("block truncate text-inherit", className),
5300
- size: "tiny",
5301
- style: inheritedTypographyStyle,
5302
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectPrimitive.Value, { className: "block truncate", ...props })
5303
- }
5304
- );
5305
- });
5306
- SelectValue.displayName = SelectPrimitive.Value.displayName;
5307
- var SelectTrigger = React34.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
5308
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
5309
- SelectPrimitive.Trigger,
5876
+ className: "block text-inherit",
5877
+ size: "body-md"
5878
+ }) });
5879
+ }
5880
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5881
+ "div",
5310
5882
  {
5311
5883
  ref,
5312
- "data-slot": "select-trigger",
5313
- "data-size": size,
5884
+ "data-slot": "reasoning-widget-table",
5314
5885
  className: cn(
5315
- formControlBaseClasses,
5316
- "data-[size=default]:h-10 data-[size=default]:py-2 data-[size=sm]:h-9 data-[size=sm]:px-2 data-[size=sm]:text-[14px] data-[size=sm]:leading-5 [&>span]:line-clamp-1 [&>span]:flex-1",
5886
+ "overflow-hidden rounded-[10px] border border-[color:var(--sofya-neutral-600)] bg-[color:var(--sofya-neutral-50)]",
5317
5887
  className
5318
5888
  ),
5319
5889
  ...props,
5320
- children: [
5321
- children,
5322
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
5323
- Icon,
5890
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("table", { className: "w-full border-collapse table-fixed", children: [
5891
+ showHeader ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("tr", { className: "border-b border-[color:var(--sofya-neutral-600)]", children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5892
+ "th",
5324
5893
  {
5325
- name: "caret-down",
5326
- size: size === "sm" ? 12 : 14,
5327
- className: "shrink-0 text-[color:var(--sofya-text-subtle)]"
5894
+ className: cn(
5895
+ "align-middle text-[color:var(--sofya-text-subtle)]",
5896
+ density === "compact" ? "px-3 py-2" : "px-4 py-2",
5897
+ columnIndex > 0 && "border-l border-[color:var(--sofya-neutral-600)]",
5898
+ tableAlignClassName[column.align ?? "left"]
5899
+ ),
5900
+ style: column.width ? { width: column.width } : void 0,
5901
+ scope: "col",
5902
+ children: renderTextContent(column.header, {
5903
+ as: "span",
5904
+ className: "block truncate text-inherit",
5905
+ size: headerTextSize
5906
+ })
5907
+ },
5908
+ column.key
5909
+ )) }) }) : null,
5910
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("tbody", { children: rows.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5911
+ "tr",
5912
+ {
5913
+ "data-tone": row.tone,
5914
+ className: cn(
5915
+ "group/item border-t border-[color:var(--sofya-neutral-600)] transition-colors duration-sofya ease-sofya first:border-t-0 hover:bg-[color:var(--sofya-surface-hover)] focus-within:bg-[color:var(--sofya-surface-hover)]",
5916
+ row.tone && toneSurfaceClassName[row.tone]
5917
+ ),
5918
+ children: columns.map((column, columnIndex) => {
5919
+ const isLastColumn = columnIndex === columns.length - 1;
5920
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5921
+ "td",
5922
+ {
5923
+ className: cn(
5924
+ "relative min-w-0 align-top",
5925
+ density === "compact" ? "px-3 py-2" : "px-4 py-2",
5926
+ column.variant === "value" ? "text-[color:var(--sofya-neutral-800)]" : "text-[color:var(--sofya-neutral-800)]",
5927
+ columnIndex > 0 && "border-l border-[color:var(--sofya-neutral-600)]",
5928
+ hasActions && isLastColumn && "pr-24",
5929
+ tableAlignClassName[column.align ?? "left"]
5930
+ ),
5931
+ children: [
5932
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5933
+ ReasoningEditableText,
5934
+ {
5935
+ ariaLabel: `Edit ${row.id ?? "row"} ${column.key}`,
5936
+ className: "block truncate text-inherit",
5937
+ editable,
5938
+ size: cellTextSize,
5939
+ value: row.cells[column.key] ?? null,
5940
+ weight: column.variant === "value" ? 600 : void 0,
5941
+ onCommit: (value) => {
5942
+ onCellEdit?.({
5943
+ columnKey: column.key,
5944
+ row,
5945
+ value,
5946
+ widgetId
5947
+ });
5948
+ }
5949
+ }
5950
+ ),
5951
+ hasActions && isLastColumn ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5952
+ ReasoningWidgetActions,
5953
+ {
5954
+ actions: itemActions,
5955
+ className: "absolute right-2 top-1/2 -translate-y-1/2",
5956
+ onAction,
5957
+ reveal: "item-hover",
5958
+ target: row,
5959
+ widgetId
5960
+ }
5961
+ ) : null
5962
+ ]
5963
+ },
5964
+ column.key
5965
+ );
5966
+ })
5967
+ },
5968
+ row.id ?? `reasoning-widget-row-${rowIndex}`
5969
+ )) })
5970
+ ] })
5971
+ }
5972
+ );
5973
+ });
5974
+ var ReasoningVitalsWidget = React32.forwardRef(function ReasoningVitalsWidget2({
5975
+ actions = [],
5976
+ editable = false,
5977
+ emptyLabel = "No vitals extracted.",
5978
+ frame = "bordered",
5979
+ icon = "activity-heartbeat",
5980
+ items,
5981
+ onAction,
5982
+ onItemEdit,
5983
+ title = "Vitals",
5984
+ widgetId,
5985
+ ...props
5986
+ }, ref) {
5987
+ const itemActions = actions.filter(isItemAction);
5988
+ const hasActions = itemActions.length > 0;
5989
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5990
+ ReasoningWidget,
5991
+ {
5992
+ ref,
5993
+ actions,
5994
+ empty: items.length === 0,
5995
+ emptyLabel,
5996
+ icon,
5997
+ onAction,
5998
+ title,
5999
+ widgetId,
6000
+ ...props,
6001
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6002
+ "div",
6003
+ {
6004
+ "data-slot": "reasoning-vitals-list",
6005
+ "data-frame": frame,
6006
+ className: clinicalDataFrameClassName[frame],
6007
+ children: items.map((item, index) => {
6008
+ const tone = item.tone ?? "muted";
6009
+ const unit = item.unit ?? (typeof item.metadata?.unit === "string" ? item.metadata.unit : void 0);
6010
+ const hasValue = hasRenderableNode(item.value);
6011
+ const value = hasValue ? item.value : item.label;
6012
+ const label = hasValue ? item.label : void 0;
6013
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6014
+ "div",
6015
+ {
6016
+ "data-slot": "reasoning-vital",
6017
+ "data-tone": tone,
6018
+ className: cn(
6019
+ "group/item relative grid min-w-0 grid-cols-[auto_minmax(0,1fr)_auto] items-stretch gap-0 border-t border-[color:var(--sofya-neutral-600)] transition-colors duration-sofya ease-sofya first:border-t-0 hover:bg-[color:var(--sofya-surface-hover)] focus-within:bg-[color:var(--sofya-surface-hover)]",
6020
+ clinicalToneSurfaceClassName[tone]
6021
+ ),
6022
+ children: [
6023
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6024
+ "span",
6025
+ {
6026
+ "aria-hidden": "true",
6027
+ "data-slot": "reasoning-vital-marker",
6028
+ className: cn(
6029
+ "my-5 ml-0 mr-5 w-1 rounded-r-full",
6030
+ clinicalToneMarkerClassName[tone]
6031
+ )
6032
+ }
6033
+ ),
6034
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "min-w-0 py-5", children: [
6035
+ hasRenderableNode(label) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6036
+ ReasoningEditableText,
6037
+ {
6038
+ as: "p",
6039
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} label`,
6040
+ className: "text-[color:var(--sofya-neutral-900)]",
6041
+ editable,
6042
+ size: "title-sm",
6043
+ weight: 500,
6044
+ value: label,
6045
+ onCommit: (nextValue) => {
6046
+ onItemEdit?.({
6047
+ field: "label",
6048
+ item,
6049
+ value: nextValue,
6050
+ widgetId
6051
+ });
6052
+ }
6053
+ }
6054
+ ) : null,
6055
+ hasRenderableNode(item.referenceRange) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6056
+ ReasoningEditableText,
6057
+ {
6058
+ as: "p",
6059
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} reference range`,
6060
+ className: "mt-1 text-[color:var(--sofya-text-subtle)]",
6061
+ editable,
6062
+ size: "body-sm",
6063
+ value: item.referenceRange,
6064
+ onCommit: (nextValue) => {
6065
+ onItemEdit?.({
6066
+ field: "referenceRange",
6067
+ item,
6068
+ value: nextValue,
6069
+ widgetId
6070
+ });
6071
+ }
6072
+ }
6073
+ ) : null,
6074
+ hasRenderableNode(item.evidence) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6075
+ ReasoningEditableText,
6076
+ {
6077
+ as: "p",
6078
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} evidence`,
6079
+ className: "mt-1 text-[color:var(--sofya-text-subtle)]",
6080
+ editable,
6081
+ multiline: true,
6082
+ size: "body-sm",
6083
+ value: item.evidence,
6084
+ onCommit: (nextValue) => {
6085
+ onItemEdit?.({
6086
+ field: "evidence",
6087
+ item,
6088
+ value: nextValue,
6089
+ widgetId
6090
+ });
6091
+ }
6092
+ }
6093
+ ) : null,
6094
+ hasRenderableNode(item.observedAt) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6095
+ ReasoningEditableText,
6096
+ {
6097
+ as: "p",
6098
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} observed time`,
6099
+ className: "mt-1 text-[color:var(--sofya-text-subtle)]",
6100
+ editable,
6101
+ size: "body-sm",
6102
+ value: item.observedAt,
6103
+ onCommit: (nextValue) => {
6104
+ onItemEdit?.({
6105
+ field: "observedAt",
6106
+ item,
6107
+ value: nextValue,
6108
+ widgetId
6109
+ });
6110
+ }
6111
+ }
6112
+ ) : null
6113
+ ] }),
6114
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6115
+ "div",
6116
+ {
6117
+ className: cn(
6118
+ "min-w-[7.5rem] py-4 pr-6 text-right",
6119
+ hasActions && "pr-24"
6120
+ ),
6121
+ children: [
6122
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex min-w-0 items-baseline justify-end gap-1", children: [
6123
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6124
+ "span",
6125
+ {
6126
+ className: cn("min-w-0", clinicalToneValueClassName[tone]),
6127
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6128
+ ReasoningEditableText,
6129
+ {
6130
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} value`,
6131
+ className: "block text-inherit",
6132
+ editable,
6133
+ size: "title-md",
6134
+ value,
6135
+ weight: 600,
6136
+ onCommit: (nextValue) => {
6137
+ onItemEdit?.({
6138
+ field: hasValue ? "value" : "label",
6139
+ item,
6140
+ value: nextValue,
6141
+ widgetId
6142
+ });
6143
+ }
6144
+ }
6145
+ )
6146
+ }
6147
+ ),
6148
+ hasRenderableNode(unit) && hasValue ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6149
+ ReasoningEditableText,
6150
+ {
6151
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} unit`,
6152
+ className: "text-[color:var(--sofya-text-subtle)]",
6153
+ editable,
6154
+ size: "body-sm",
6155
+ value: unit,
6156
+ onCommit: (nextValue) => {
6157
+ onItemEdit?.({
6158
+ field: "unit",
6159
+ item,
6160
+ value: nextValue,
6161
+ widgetId
6162
+ });
6163
+ }
6164
+ }
6165
+ ) : null
6166
+ ] }),
6167
+ hasRenderableNode(item.status) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6168
+ ReasoningEditableText,
6169
+ {
6170
+ as: "p",
6171
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "vital"} status`,
6172
+ className: cn(
6173
+ "mt-1 text-right",
6174
+ clinicalToneStatusClassName[tone]
6175
+ ),
6176
+ editable,
6177
+ size: "label-md",
6178
+ value: item.status,
6179
+ weight: 600,
6180
+ onCommit: (nextValue) => {
6181
+ onItemEdit?.({
6182
+ field: "status",
6183
+ item,
6184
+ value: nextValue,
6185
+ widgetId
6186
+ });
6187
+ }
6188
+ }
6189
+ ) : null
6190
+ ]
6191
+ }
6192
+ ),
6193
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6194
+ ReasoningWidgetActions,
6195
+ {
6196
+ actions: itemActions,
6197
+ className: "absolute right-2 top-1/2 -translate-y-1/2",
6198
+ onAction,
6199
+ reveal: "item-hover",
6200
+ target: item,
6201
+ widgetId
6202
+ }
6203
+ )
6204
+ ]
6205
+ },
6206
+ item.id ?? `reasoning-vital-${index}`
6207
+ );
6208
+ })
6209
+ }
6210
+ )
6211
+ }
6212
+ );
6213
+ });
6214
+ var ReasoningLabsWidget = React32.forwardRef(function ReasoningLabsWidget2({
6215
+ actions = [],
6216
+ columnLabels,
6217
+ editable = false,
6218
+ emptyLabel = "No labs extracted.",
6219
+ frame = "bordered",
6220
+ icon = "flask",
6221
+ items,
6222
+ onAction,
6223
+ onItemEdit,
6224
+ title = "Labs",
6225
+ widgetId,
6226
+ ...props
6227
+ }, ref) {
6228
+ const itemActions = actions.filter(isItemAction);
6229
+ const labColumns = [
6230
+ {
6231
+ key: "test",
6232
+ label: columnLabels?.test ?? "Test",
6233
+ width: "260px"
6234
+ },
6235
+ {
6236
+ key: "result",
6237
+ label: columnLabels?.result ?? "Result",
6238
+ width: "150px"
6239
+ },
6240
+ {
6241
+ key: "reference",
6242
+ label: columnLabels?.reference ?? "Reference",
6243
+ width: "150px"
6244
+ },
6245
+ {
6246
+ key: "flag",
6247
+ label: columnLabels?.flag ?? "Flag",
6248
+ width: "160px"
6249
+ }
6250
+ ];
6251
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6252
+ ReasoningWidget,
6253
+ {
6254
+ ref,
6255
+ actions,
6256
+ empty: items.length === 0,
6257
+ emptyLabel,
6258
+ icon,
6259
+ onAction,
6260
+ title,
6261
+ widgetId,
6262
+ ...props,
6263
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6264
+ "div",
6265
+ {
6266
+ "data-slot": "reasoning-labs-table",
6267
+ "data-frame": frame,
6268
+ className: clinicalLabsFrameClassName[frame],
6269
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("table", { className: "w-auto min-w-[720px] border-collapse table-fixed", children: [
6270
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("tr", { className: clinicalDataHeaderClassName[frame], children: [
6271
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("th", { className: "w-7 px-4 py-3", scope: "col", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "sr-only", children: columnLabels?.tone ?? "Tone" }) }),
6272
+ labColumns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6273
+ "th",
6274
+ {
6275
+ className: "px-4 py-3 text-left align-middle text-[color:var(--sofya-text-subtle)]",
6276
+ scope: "col",
6277
+ style: { width: column.width },
6278
+ children: renderTextContent(column.label, {
6279
+ as: "span",
6280
+ className: "block truncate text-inherit",
6281
+ size: "clinical-section-title"
6282
+ })
6283
+ },
6284
+ column.key
6285
+ ))
6286
+ ] }) }),
6287
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("tbody", { children: items.map((item, index) => {
6288
+ const tone = item.tone ?? "muted";
6289
+ const unit = item.unit ?? (typeof item.metadata?.unit === "string" ? item.metadata.unit : void 0);
6290
+ const interpretation = item.interpretation ?? item.status;
6291
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6292
+ "tr",
6293
+ {
6294
+ "data-slot": "reasoning-lab",
6295
+ "data-tone": tone,
6296
+ className: cn(
6297
+ "group/item border-t border-[color:var(--sofya-neutral-600)] transition-colors duration-sofya ease-sofya first:border-t-0 hover:bg-[color:var(--sofya-surface-hover)] focus-within:bg-[color:var(--sofya-surface-hover)]",
6298
+ clinicalToneSurfaceClassName[tone]
6299
+ ),
6300
+ children: [
6301
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("td", { className: "px-0 py-4 align-top", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6302
+ "span",
6303
+ {
6304
+ "aria-hidden": "true",
6305
+ "data-slot": "reasoning-lab-marker",
6306
+ className: cn(
6307
+ "mt-1 block h-12 w-1 rounded-r-full",
6308
+ clinicalToneMarkerClassName[tone]
6309
+ )
6310
+ }
6311
+ ) }),
6312
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("td", { className: "min-w-0 px-4 py-4 align-top text-[color:var(--sofya-neutral-900)]", children: [
6313
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6314
+ ReasoningEditableText,
6315
+ {
6316
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "lab"} label`,
6317
+ className: "block text-inherit",
6318
+ editable,
6319
+ size: "title-sm",
6320
+ value: item.label,
6321
+ weight: 500,
6322
+ onCommit: (nextValue) => {
6323
+ onItemEdit?.({
6324
+ field: "label",
6325
+ item,
6326
+ value: nextValue,
6327
+ widgetId
6328
+ });
6329
+ }
6330
+ }
6331
+ ),
6332
+ hasRenderableNode(item.evidence) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6333
+ ReasoningEditableText,
6334
+ {
6335
+ as: "p",
6336
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "lab"} evidence`,
6337
+ className: "mt-1 text-[color:var(--sofya-text-subtle)]",
6338
+ editable,
6339
+ multiline: true,
6340
+ size: "body-sm",
6341
+ value: item.evidence,
6342
+ onCommit: (nextValue) => {
6343
+ onItemEdit?.({
6344
+ field: "evidence",
6345
+ item,
6346
+ value: nextValue,
6347
+ widgetId
6348
+ });
6349
+ }
6350
+ }
6351
+ ) : null
6352
+ ] }),
6353
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("td", { className: "min-w-0 px-4 py-4 align-top", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex min-w-0 flex-col items-start", children: [
6354
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6355
+ "span",
6356
+ {
6357
+ className: cn(
6358
+ "min-w-0",
6359
+ clinicalToneValueClassName[tone]
6360
+ ),
6361
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6362
+ ReasoningEditableText,
6363
+ {
6364
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "lab"} value`,
6365
+ className: "block text-inherit",
6366
+ editable,
6367
+ size: "title-sm",
6368
+ value: item.value ?? null,
6369
+ weight: 600,
6370
+ onCommit: (nextValue) => {
6371
+ onItemEdit?.({
6372
+ field: "value",
6373
+ item,
6374
+ value: nextValue,
6375
+ widgetId
6376
+ });
6377
+ }
6378
+ }
6379
+ )
6380
+ }
6381
+ ),
6382
+ hasRenderableNode(unit) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6383
+ ReasoningEditableText,
6384
+ {
6385
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "lab"} unit`,
6386
+ className: "text-[color:var(--sofya-text-subtle)]",
6387
+ editable,
6388
+ size: "body-sm",
6389
+ value: unit,
6390
+ onCommit: (nextValue) => {
6391
+ onItemEdit?.({
6392
+ field: "unit",
6393
+ item,
6394
+ value: nextValue,
6395
+ widgetId
6396
+ });
6397
+ }
6398
+ }
6399
+ ) : null
6400
+ ] }) }),
6401
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("td", { className: "min-w-0 px-4 py-4 align-top text-[color:var(--sofya-text-soft)]", children: hasRenderableNode(item.referenceRange) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6402
+ ReasoningEditableText,
6403
+ {
6404
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "lab"} reference range`,
6405
+ className: "block truncate text-inherit",
6406
+ editable,
6407
+ size: "body-sm",
6408
+ value: item.referenceRange,
6409
+ onCommit: (nextValue) => {
6410
+ onItemEdit?.({
6411
+ field: "referenceRange",
6412
+ item,
6413
+ value: nextValue,
6414
+ widgetId
6415
+ });
6416
+ }
6417
+ }
6418
+ ) : null }),
6419
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("td", { className: "relative min-w-0 px-4 py-4 align-top", children: [
6420
+ hasRenderableNode(interpretation) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6421
+ ReasoningEditableText,
6422
+ {
6423
+ ariaLabel: `Edit ${getTargetLabel(item) ?? "lab"} interpretation`,
6424
+ className: cn(
6425
+ "inline-flex rounded-full px-3 py-1",
6426
+ clinicalToneBadgeClassName[tone]
6427
+ ),
6428
+ editable,
6429
+ multiline: true,
6430
+ size: "label-md",
6431
+ value: interpretation,
6432
+ weight: tone === "muted" ? void 0 : 600,
6433
+ onCommit: (nextValue) => {
6434
+ onItemEdit?.({
6435
+ field: "status",
6436
+ item,
6437
+ value: nextValue,
6438
+ widgetId
6439
+ });
6440
+ }
6441
+ }
6442
+ ) : null,
6443
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6444
+ ReasoningWidgetActions,
6445
+ {
6446
+ actions: itemActions,
6447
+ className: "absolute right-2 top-1/2 -translate-y-1/2",
6448
+ onAction,
6449
+ reveal: "item-hover",
6450
+ target: item,
6451
+ widgetId
6452
+ }
6453
+ )
6454
+ ] })
6455
+ ]
6456
+ },
6457
+ item.id ?? `reasoning-lab-${index}`
6458
+ );
6459
+ }) })
6460
+ ] })
6461
+ }
6462
+ )
6463
+ }
6464
+ );
6465
+ });
6466
+ var ReasoningSummaryWidget = React32.forwardRef(function ReasoningSummaryWidget2({
6467
+ actions,
6468
+ clinicalImpression,
6469
+ description,
6470
+ editable = false,
6471
+ findings = [],
6472
+ eyebrow = "Summary",
6473
+ icon = "stethoscope",
6474
+ onAction,
6475
+ onItemEdit,
6476
+ onSummaryEdit,
6477
+ title,
6478
+ widgetId,
6479
+ ...props
6480
+ }, ref) {
6481
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
6482
+ ReasoningWidget,
6483
+ {
6484
+ ref,
6485
+ actions,
6486
+ description,
6487
+ eyebrow,
6488
+ icon,
6489
+ onAction,
6490
+ title,
6491
+ widgetId,
6492
+ ...props,
6493
+ children: [
6494
+ hasRenderableNode(clinicalImpression) ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6495
+ ReasoningEditableText,
6496
+ {
6497
+ as: "p",
6498
+ ariaLabel: "Edit clinical impression",
6499
+ className: "m-0 text-[color:var(--sofya-neutral-800)]",
6500
+ editable,
6501
+ multiline: true,
6502
+ size: "clinical-body",
6503
+ value: clinicalImpression,
6504
+ onCommit: (value) => {
6505
+ onSummaryEdit?.({
6506
+ field: "clinicalImpression",
6507
+ value,
6508
+ widgetId
6509
+ });
6510
+ }
6511
+ }
6512
+ ) : null,
6513
+ findings.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6514
+ ReasoningWidgetList,
6515
+ {
6516
+ actions,
6517
+ className: hasRenderableNode(clinicalImpression) ? "mt-3" : void 0,
6518
+ editable,
6519
+ items: findings,
6520
+ onAction,
6521
+ onItemEdit,
6522
+ widgetId
6523
+ }
6524
+ ) : null
6525
+ ]
6526
+ }
6527
+ );
6528
+ });
6529
+ function ReasoningWidgetRenderer({
6530
+ editable = false,
6531
+ onAction,
6532
+ onCellEdit,
6533
+ onItemEdit,
6534
+ onSummaryEdit,
6535
+ widget,
6536
+ ...props
6537
+ }) {
6538
+ const descriptorKind = getDescriptorKind(widget);
6539
+ const description = getDescriptionFromDescriptor(widget);
6540
+ const emptyLabel = getEmptyLabelFromDescriptor(widget);
6541
+ const frame = getFrameFromDescriptor(widget);
6542
+ const items = getItemsFromDescriptor(widget);
6543
+ const actions = widget.actions ?? [];
6544
+ const icon = getIconFromDescriptor(widget);
6545
+ if (descriptorKind.includes("summary") || hasRenderableNode(widget.data?.impression)) {
6546
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6547
+ ReasoningSummaryWidget,
6548
+ {
6549
+ actions,
6550
+ clinicalImpression: widget.data?.impression,
6551
+ description,
6552
+ editable,
6553
+ findings: items,
6554
+ icon,
6555
+ onAction,
6556
+ onItemEdit,
6557
+ onSummaryEdit,
6558
+ sectionDivider: widget.sectionDivider,
6559
+ title: widget.title,
6560
+ widgetId: widget.id,
6561
+ ...props
6562
+ }
6563
+ );
6564
+ }
6565
+ if (descriptorKind.includes("vitals")) {
6566
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6567
+ ReasoningVitalsWidget,
6568
+ {
6569
+ actions,
6570
+ description,
6571
+ editable,
6572
+ emptyLabel,
6573
+ frame,
6574
+ icon,
6575
+ items,
6576
+ onAction,
6577
+ onItemEdit,
6578
+ sectionDivider: widget.sectionDivider,
6579
+ title: widget.title,
6580
+ widgetId: widget.id,
6581
+ ...props
6582
+ }
6583
+ );
6584
+ }
6585
+ if (descriptorKind.includes("lab") && items.length > 0) {
6586
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6587
+ ReasoningLabsWidget,
6588
+ {
6589
+ actions,
6590
+ columnLabels: widget.data?.labColumnLabels,
6591
+ description,
6592
+ editable,
6593
+ emptyLabel,
6594
+ frame,
6595
+ icon,
6596
+ items,
6597
+ onAction,
6598
+ onItemEdit,
6599
+ sectionDivider: widget.sectionDivider,
6600
+ title: widget.title,
6601
+ widgetId: widget.id,
6602
+ ...props
6603
+ }
6604
+ );
6605
+ }
6606
+ if (widget.data?.tableColumns && widget.data.rows) {
6607
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6608
+ ReasoningWidget,
6609
+ {
6610
+ actions,
6611
+ description,
6612
+ empty: widget.data.rows.length === 0,
6613
+ emptyLabel,
6614
+ icon,
6615
+ onAction,
6616
+ sectionDivider: widget.sectionDivider,
6617
+ title: widget.title,
6618
+ widgetId: widget.id,
6619
+ ...props,
6620
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6621
+ ReasoningWidgetTable,
6622
+ {
6623
+ actions,
6624
+ columns: widget.data.tableColumns,
6625
+ editable,
6626
+ emptyLabel,
6627
+ onAction,
6628
+ onCellEdit,
6629
+ rows: widget.data.rows,
6630
+ widgetId: widget.id
6631
+ }
6632
+ )
6633
+ }
6634
+ );
6635
+ }
6636
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6637
+ ReasoningWidget,
6638
+ {
6639
+ actions,
6640
+ description,
6641
+ empty: items.length === 0,
6642
+ emptyLabel,
6643
+ icon,
6644
+ onAction,
6645
+ sectionDivider: widget.sectionDivider,
6646
+ title: widget.title,
6647
+ widgetId: widget.id,
6648
+ ...props,
6649
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
6650
+ ReasoningWidgetList,
6651
+ {
6652
+ actions,
6653
+ editable,
6654
+ emptyLabel,
6655
+ items,
6656
+ onAction,
6657
+ onItemEdit,
6658
+ widgetId: widget.id
6659
+ }
6660
+ )
6661
+ }
6662
+ );
6663
+ }
6664
+ ReasoningWidgetActionButton.displayName = "ReasoningWidgetActionButton";
6665
+ ReasoningWidgetActions.displayName = "ReasoningWidgetActions";
6666
+ ReasoningWidget.displayName = "ReasoningWidget";
6667
+ ReasoningWidgetList.displayName = "ReasoningWidgetList";
6668
+ ReasoningWidgetTable.displayName = "ReasoningWidgetTable";
6669
+ ReasoningVitalsWidget.displayName = "ReasoningVitalsWidget";
6670
+ ReasoningLabsWidget.displayName = "ReasoningLabsWidget";
6671
+ ReasoningSummaryWidget.displayName = "ReasoningSummaryWidget";
6672
+
6673
+ // src/components/right-rail-action.tsx
6674
+ var React33 = __toESM(require("react"), 1);
6675
+ var import_jsx_runtime35 = require("react/jsx-runtime");
6676
+ var RightRailAction = React33.forwardRef(
6677
+ ({ active = false, className, icon, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
6678
+ IconButton,
6679
+ {
6680
+ ref,
6681
+ icon,
6682
+ variant: "ghost",
6683
+ selected: active,
6684
+ "data-slot": "right-rail-action",
6685
+ className: cn(
6686
+ "size-[var(--sofya-icon-button-size-md)] rounded-[var(--sofya-radius-md)] shadow-none",
6687
+ className
6688
+ ),
6689
+ ...props
6690
+ }
6691
+ )
6692
+ );
6693
+ RightRailAction.displayName = "RightRailAction";
6694
+
6695
+ // src/components/scroll-area.tsx
6696
+ var React34 = __toESM(require("react"), 1);
6697
+ var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
6698
+ var import_jsx_runtime36 = require("react/jsx-runtime");
6699
+ var scrollAreaOrientationOptions = ["horizontal", "vertical"];
6700
+ var ScrollArea = React34.forwardRef(function ScrollArea2({ className, ...props }, ref) {
6701
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6702
+ ScrollAreaPrimitive.Root,
6703
+ {
6704
+ ref,
6705
+ "data-slot": "scroll-area",
6706
+ className: cn("relative overflow-hidden", className),
6707
+ ...props
6708
+ }
6709
+ );
6710
+ });
6711
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
6712
+ var ScrollAreaViewport = React34.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
6713
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6714
+ ScrollAreaPrimitive.Viewport,
6715
+ {
6716
+ ref,
6717
+ "data-slot": "scroll-area-viewport",
6718
+ className: cn(
6719
+ "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0",
6720
+ className
6721
+ ),
6722
+ ...props
6723
+ }
6724
+ );
6725
+ });
6726
+ ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
6727
+ var ScrollAreaScrollbar = React34.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
6728
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6729
+ ScrollAreaPrimitive.Scrollbar,
6730
+ {
6731
+ ref,
6732
+ "data-slot": "scroll-area-scrollbar",
6733
+ orientation,
6734
+ className: cn(
6735
+ "flex touch-none select-none p-0 transition-colors duration-sofya ease-sofya data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent",
6736
+ className
6737
+ ),
6738
+ ...props,
6739
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6740
+ ScrollAreaPrimitive.Thumb,
6741
+ {
6742
+ "data-slot": "scroll-area-thumb",
6743
+ className: cn(
6744
+ "relative flex-1 rounded-full bg-[color:var(--sofya-border-strong)]",
6745
+ thumbClassName
6746
+ )
6747
+ }
6748
+ )
6749
+ }
6750
+ );
6751
+ });
6752
+ ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
6753
+ var ScrollAreaCorner = React34.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
6754
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6755
+ ScrollAreaPrimitive.Corner,
6756
+ {
6757
+ ref,
6758
+ "data-slot": "scroll-area-corner",
6759
+ className: cn("bg-transparent", className),
6760
+ ...props
6761
+ }
6762
+ );
6763
+ });
6764
+ ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
6765
+
6766
+ // src/components/select.tsx
6767
+ var React35 = __toESM(require("react"), 1);
6768
+ var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
6769
+
6770
+ // src/lib/form-control-classes.ts
6771
+ var formControlBaseClasses = "flex w-full items-center justify-between gap-4 rounded-[10px] border border-[color:var(--sofya-border-strong)] bg-card px-4 text-left [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[color:var(--sofya-text-default)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] focus:outline-none focus:ring-2 focus:ring-[color:var(--sofya-focus-ring-soft)] focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[color:var(--sofya-focus-ring-soft)] disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus:ring-destructive/20 data-[placeholder]:text-[color:var(--sofya-text-placeholder)]";
6772
+
6773
+ // src/components/select.tsx
6774
+ var import_jsx_runtime37 = require("react/jsx-runtime");
6775
+ var selectSizeOptions = ["default", "sm"];
6776
+ var Select = SelectPrimitive.Root;
6777
+ var SelectGroup = SelectPrimitive.Group;
6778
+ var SelectValue = React35.forwardRef(function SelectValue2({ className, ...props }, ref) {
6779
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
6780
+ Text,
6781
+ {
6782
+ ref,
6783
+ as: "span",
6784
+ "data-slot": "select-value",
6785
+ className: cn("block truncate text-inherit", className),
6786
+ size: "tiny",
6787
+ style: inheritedTypographyStyle,
6788
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectPrimitive.Value, { className: "block truncate", ...props })
6789
+ }
6790
+ );
6791
+ });
6792
+ SelectValue.displayName = SelectPrimitive.Value.displayName;
6793
+ var SelectTrigger = React35.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
6794
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
6795
+ SelectPrimitive.Trigger,
6796
+ {
6797
+ ref,
6798
+ "data-slot": "select-trigger",
6799
+ "data-size": size,
6800
+ className: cn(
6801
+ formControlBaseClasses,
6802
+ "data-[size=default]:h-10 data-[size=default]:py-2 data-[size=sm]:h-9 data-[size=sm]:px-2 data-[size=sm]:text-[14px] data-[size=sm]:leading-5 [&>span]:line-clamp-1 [&>span]:flex-1",
6803
+ className
6804
+ ),
6805
+ ...props,
6806
+ children: [
6807
+ children,
6808
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
6809
+ Icon,
6810
+ {
6811
+ name: "caret-down",
6812
+ size: size === "sm" ? 12 : 14,
6813
+ className: "shrink-0 text-[color:var(--sofya-text-subtle)]"
5328
6814
  }
5329
6815
  ) })
5330
6816
  ]
@@ -5332,8 +6818,8 @@ var SelectTrigger = React34.forwardRef(function SelectTrigger2({ className, chil
5332
6818
  );
5333
6819
  });
5334
6820
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
5335
- var SelectScrollUpButton = React34.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
5336
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6821
+ var SelectScrollUpButton = React35.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
6822
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5337
6823
  SelectPrimitive.ScrollUpButton,
5338
6824
  {
5339
6825
  ref,
@@ -5343,13 +6829,13 @@ var SelectScrollUpButton = React34.forwardRef(function SelectScrollUpButton2({ c
5343
6829
  className
5344
6830
  ),
5345
6831
  ...props,
5346
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon, { name: "caret-up", size: 12 })
6832
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: "caret-up", size: 12 })
5347
6833
  }
5348
6834
  );
5349
6835
  });
5350
6836
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
5351
- var SelectScrollDownButton = React34.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
5352
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6837
+ var SelectScrollDownButton = React35.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
6838
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5353
6839
  SelectPrimitive.ScrollDownButton,
5354
6840
  {
5355
6841
  ref,
@@ -5359,13 +6845,13 @@ var SelectScrollDownButton = React34.forwardRef(function SelectScrollDownButton2
5359
6845
  className
5360
6846
  ),
5361
6847
  ...props,
5362
- children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon, { name: "caret-down", size: 12 })
6848
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: "caret-down", size: 12 })
5363
6849
  }
5364
6850
  );
5365
6851
  });
5366
6852
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
5367
- var SelectContent = React34.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
5368
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
6853
+ var SelectContent = React35.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
6854
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
5369
6855
  SelectPrimitive.Content,
5370
6856
  {
5371
6857
  ref,
@@ -5378,8 +6864,8 @@ var SelectContent = React34.forwardRef(function SelectContent2({ className, chil
5378
6864
  ),
5379
6865
  ...props,
5380
6866
  children: [
5381
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectScrollUpButton, {}),
5382
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6867
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectScrollUpButton, {}),
6868
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5383
6869
  SelectPrimitive.Viewport,
5384
6870
  {
5385
6871
  "data-slot": "select-viewport",
@@ -5387,14 +6873,14 @@ var SelectContent = React34.forwardRef(function SelectContent2({ className, chil
5387
6873
  children
5388
6874
  }
5389
6875
  ),
5390
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectScrollDownButton, {})
6876
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectScrollDownButton, {})
5391
6877
  ]
5392
6878
  }
5393
6879
  ) });
5394
6880
  });
5395
6881
  SelectContent.displayName = SelectPrimitive.Content.displayName;
5396
- var SelectLabel = React34.forwardRef(function SelectLabel2({ className, ...props }, ref) {
5397
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6882
+ var SelectLabel = React35.forwardRef(function SelectLabel2({ className, ...props }, ref) {
6883
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5398
6884
  SelectPrimitive.Label,
5399
6885
  {
5400
6886
  ref,
@@ -5416,8 +6902,8 @@ var SelectLabel = React34.forwardRef(function SelectLabel2({ className, ...props
5416
6902
  );
5417
6903
  });
5418
6904
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
5419
- var SelectItem = React34.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
5420
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
6905
+ var SelectItem = React35.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
6906
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
5421
6907
  SelectPrimitive.Item,
5422
6908
  {
5423
6909
  ref,
@@ -5428,20 +6914,20 @@ var SelectItem = React34.forwardRef(function SelectItem2({ className, children,
5428
6914
  ),
5429
6915
  ...props,
5430
6916
  children: [
5431
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
6917
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
5432
6918
  as: "span",
5433
6919
  className: "block truncate text-[color:var(--sofya-text-default)]",
5434
6920
  size: "tiny",
5435
6921
  style: inheritedTypographyStyle
5436
6922
  }) }),
5437
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon, { name: "check", size: 14 }) }) })
6923
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: "check", size: 14 }) }) })
5438
6924
  ]
5439
6925
  }
5440
6926
  );
5441
6927
  });
5442
6928
  SelectItem.displayName = SelectPrimitive.Item.displayName;
5443
- var SelectSeparator = React34.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
5444
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6929
+ var SelectSeparator = React35.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
6930
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5445
6931
  SelectPrimitive.Separator,
5446
6932
  {
5447
6933
  ref,
@@ -5454,11 +6940,11 @@ var SelectSeparator = React34.forwardRef(function SelectSeparator2({ className,
5454
6940
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
5455
6941
 
5456
6942
  // src/components/separator.tsx
5457
- var React35 = __toESM(require("react"), 1);
6943
+ var React36 = __toESM(require("react"), 1);
5458
6944
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
5459
- var import_jsx_runtime37 = require("react/jsx-runtime");
5460
- var Separator2 = React35.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
5461
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
6945
+ var import_jsx_runtime38 = require("react/jsx-runtime");
6946
+ var Separator2 = React36.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
6947
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5462
6948
  SeparatorPrimitive.Root,
5463
6949
  {
5464
6950
  ref,
@@ -5477,8 +6963,8 @@ var Separator2 = React35.forwardRef(function Separator3({ className, decorative
5477
6963
  Separator2.displayName = SeparatorPrimitive.Root.displayName;
5478
6964
 
5479
6965
  // src/components/sidebar-nav-item.tsx
5480
- var React36 = __toESM(require("react"), 1);
5481
- var import_jsx_runtime38 = require("react/jsx-runtime");
6966
+ var React37 = __toESM(require("react"), 1);
6967
+ var import_jsx_runtime39 = require("react/jsx-runtime");
5482
6968
  var sidebarNavItemAppearanceClassNames = {
5483
6969
  settings: "rounded-[var(--sofya-radius-md)] py-[var(--sofya-space-2)] pl-[var(--sofya-space-3)] pr-[var(--sofya-space-3)] text-[color:var(--sofya-text-soft)] hover:bg-[color:var(--sofya-surface-hover)] hover:text-[color:var(--sofya-text-default)] data-[active=true]:bg-[color:var(--sofya-surface-selected)] data-[active=true]:text-[color:var(--sofya-text-default)] data-[active=true]:hover:bg-[color:var(--sofya-surface-selected-strong)] data-[disabled=true]:text-[color:var(--sofya-text-subtle)] data-[disabled=true]:hover:bg-transparent",
5484
6970
  workspace: "rounded-[var(--sofya-radius-sm)] bg-transparent px-0 py-0 text-[color:var(--sofya-text-subtle)] hover:bg-transparent hover:text-[color:var(--sofya-text-default)] data-[active=true]:bg-transparent data-[active=true]:text-primary data-[active=true]:hover:bg-transparent data-[active=true]:hover:text-primary data-[disabled=true]:text-[color:var(--sofya-text-subtle)] data-[disabled=true]:hover:bg-transparent"
@@ -5491,10 +6977,10 @@ var sidebarNavItemTextSize = {
5491
6977
  settings: "sidebar-title",
5492
6978
  workspace: "sidebar-title-regular"
5493
6979
  };
5494
- var SidebarNav = React36.forwardRef(
6980
+ var SidebarNav = React37.forwardRef(
5495
6981
  ({ as, className, ...props }, ref) => {
5496
6982
  const Comp = as ?? "nav";
5497
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6983
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5498
6984
  Comp,
5499
6985
  {
5500
6986
  ref,
@@ -5506,8 +6992,8 @@ var SidebarNav = React36.forwardRef(
5506
6992
  }
5507
6993
  );
5508
6994
  SidebarNav.displayName = "SidebarNav";
5509
- var SidebarNavSection = React36.forwardRef(
5510
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6995
+ var SidebarNavSection = React37.forwardRef(
6996
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5511
6997
  "div",
5512
6998
  {
5513
6999
  ref,
@@ -5518,10 +7004,10 @@ var SidebarNavSection = React36.forwardRef(
5518
7004
  )
5519
7005
  );
5520
7006
  SidebarNavSection.displayName = "SidebarNavSection";
5521
- var SidebarNavSectionLabel = React36.forwardRef(
7007
+ var SidebarNavSectionLabel = React37.forwardRef(
5522
7008
  ({ as, className, children, ...props }, ref) => {
5523
7009
  const Comp = as ?? "h5";
5524
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7010
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5525
7011
  Comp,
5526
7012
  {
5527
7013
  ref,
@@ -5538,8 +7024,8 @@ var SidebarNavSectionLabel = React36.forwardRef(
5538
7024
  }
5539
7025
  );
5540
7026
  SidebarNavSectionLabel.displayName = "SidebarNavSectionLabel";
5541
- var SidebarNavSectionItems = React36.forwardRef(
5542
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7027
+ var SidebarNavSectionItems = React37.forwardRef(
7028
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5543
7029
  "div",
5544
7030
  {
5545
7031
  ref,
@@ -5550,7 +7036,7 @@ var SidebarNavSectionItems = React36.forwardRef(
5550
7036
  )
5551
7037
  );
5552
7038
  SidebarNavSectionItems.displayName = "SidebarNavSectionItems";
5553
- var SidebarNavItem = React36.forwardRef(
7039
+ var SidebarNavItem = React37.forwardRef(
5554
7040
  function SidebarNavItem2({
5555
7041
  as,
5556
7042
  active = false,
@@ -5563,7 +7049,7 @@ var SidebarNavItem = React36.forwardRef(
5563
7049
  }, ref) {
5564
7050
  const Comp = as ?? (props.href ? "a" : "button");
5565
7051
  const isNativeButton = Comp === "button";
5566
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
7052
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
5567
7053
  Comp,
5568
7054
  {
5569
7055
  ref,
@@ -5584,7 +7070,7 @@ var SidebarNavItem = React36.forwardRef(
5584
7070
  ),
5585
7071
  ...props,
5586
7072
  children: [
5587
- appearance === "settings" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7073
+ appearance === "settings" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5588
7074
  "span",
5589
7075
  {
5590
7076
  "aria-hidden": "true",
@@ -5595,7 +7081,7 @@ var SidebarNavItem = React36.forwardRef(
5595
7081
  )
5596
7082
  }
5597
7083
  ) : null,
5598
- icon ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7084
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5599
7085
  "span",
5600
7086
  {
5601
7087
  "data-slot": "sidebar-nav-item-icon",
@@ -5603,7 +7089,7 @@ var SidebarNavItem = React36.forwardRef(
5603
7089
  children: icon
5604
7090
  }
5605
7091
  ) : null,
5606
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "min-w-0 flex-1 truncate", children: renderTextContent(children, {
7092
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "min-w-0 flex-1 truncate", children: renderTextContent(children, {
5607
7093
  as: "span",
5608
7094
  className: "block min-w-0 truncate text-inherit",
5609
7095
  size: sidebarNavItemTextSize[appearance]
@@ -5617,8 +7103,8 @@ SidebarNavItem.displayName = "SidebarNavItem";
5617
7103
  var SettingsNavItem = SidebarNavItem;
5618
7104
 
5619
7105
  // src/components/slider.tsx
5620
- var React37 = __toESM(require("react"), 1);
5621
- var import_jsx_runtime39 = require("react/jsx-runtime");
7106
+ var React38 = __toESM(require("react"), 1);
7107
+ var import_jsx_runtime40 = require("react/jsx-runtime");
5622
7108
  function clampSliderValue(value, min, max) {
5623
7109
  if (Number.isNaN(value)) {
5624
7110
  return min;
@@ -5643,7 +7129,7 @@ function resolveSliderMeasurement(value, fallback) {
5643
7129
  function isTextValue(value) {
5644
7130
  return typeof value === "string" || typeof value === "number";
5645
7131
  }
5646
- var Slider = React37.forwardRef(function Slider2({
7132
+ var Slider = React38.forwardRef(function Slider2({
5647
7133
  className,
5648
7134
  defaultValue,
5649
7135
  formatValue,
@@ -5666,7 +7152,7 @@ var Slider = React37.forwardRef(function Slider2({
5666
7152
  valueClassName,
5667
7153
  ...props
5668
7154
  }, ref) {
5669
- const resolvedId = React37.useId();
7155
+ const resolvedId = React38.useId();
5670
7156
  const inputId = id ?? resolvedId;
5671
7157
  const safeMin = min;
5672
7158
  const safeMax = resolveSliderMax(safeMin, max);
@@ -5675,7 +7161,7 @@ var Slider = React37.forwardRef(function Slider2({
5675
7161
  onChange: onValueChange,
5676
7162
  value
5677
7163
  });
5678
- React37.useEffect(() => {
7164
+ React38.useEffect(() => {
5679
7165
  if (value !== void 0) {
5680
7166
  return;
5681
7167
  }
@@ -5722,14 +7208,14 @@ var Slider = React37.forwardRef(function Slider2({
5722
7208
  setControllableValue(nextValue);
5723
7209
  onChange?.(event);
5724
7210
  };
5725
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
7211
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
5726
7212
  "div",
5727
7213
  {
5728
7214
  "data-slot": "slider",
5729
7215
  className: cn("grid w-full gap-2", className),
5730
7216
  children: [
5731
- label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
5732
- label ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
7217
+ label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
7218
+ label ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5733
7219
  FieldLabel,
5734
7220
  {
5735
7221
  htmlFor: inputId,
@@ -5740,8 +7226,8 @@ var Slider = React37.forwardRef(function Slider2({
5740
7226
  textClassName: "block min-w-0 text-[color:var(--sofya-text-default)]",
5741
7227
  children: label
5742
7228
  }
5743
- ) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", {}),
5744
- showValue ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
7229
+ ) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", {}),
7230
+ showValue ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5745
7231
  "div",
5746
7232
  {
5747
7233
  className: cn(
@@ -5759,7 +7245,7 @@ var Slider = React37.forwardRef(function Slider2({
5759
7245
  }
5760
7246
  ) : null
5761
7247
  ] }) : null,
5762
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
7248
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
5763
7249
  "div",
5764
7250
  {
5765
7251
  "data-slot": "slider-control",
@@ -5769,7 +7255,7 @@ var Slider = React37.forwardRef(function Slider2({
5769
7255
  ),
5770
7256
  style: controlStyle,
5771
7257
  children: [
5772
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
7258
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5773
7259
  "input",
5774
7260
  {
5775
7261
  ...props,
@@ -5786,7 +7272,7 @@ var Slider = React37.forwardRef(function Slider2({
5786
7272
  style: inputBoundsStyle
5787
7273
  }
5788
7274
  ),
5789
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
7275
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5790
7276
  "div",
5791
7277
  {
5792
7278
  "data-slot": "slider-track",
@@ -5797,7 +7283,7 @@ var Slider = React37.forwardRef(function Slider2({
5797
7283
  style: trackBoundsStyle
5798
7284
  }
5799
7285
  ),
5800
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
7286
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5801
7287
  "div",
5802
7288
  {
5803
7289
  "data-slot": "slider-range",
@@ -5808,7 +7294,7 @@ var Slider = React37.forwardRef(function Slider2({
5808
7294
  style: rangeStyle
5809
7295
  }
5810
7296
  ),
5811
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
7297
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5812
7298
  "div",
5813
7299
  {
5814
7300
  "data-slot": "slider-thumb",
@@ -5829,10 +7315,10 @@ var Slider = React37.forwardRef(function Slider2({
5829
7315
  Slider.displayName = "Slider";
5830
7316
 
5831
7317
  // src/components/skeleton.tsx
5832
- var React38 = __toESM(require("react"), 1);
5833
- var import_jsx_runtime40 = require("react/jsx-runtime");
5834
- var Skeleton = React38.forwardRef(function Skeleton2({ className, ...props }, ref) {
5835
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7318
+ var React39 = __toESM(require("react"), 1);
7319
+ var import_jsx_runtime41 = require("react/jsx-runtime");
7320
+ var Skeleton = React39.forwardRef(function Skeleton2({ className, ...props }, ref) {
7321
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5836
7322
  "div",
5837
7323
  {
5838
7324
  ref,
@@ -5847,15 +7333,15 @@ var Skeleton = React38.forwardRef(function Skeleton2({ className, ...props }, re
5847
7333
  Skeleton.displayName = "Skeleton";
5848
7334
 
5849
7335
  // src/components/sonner.tsx
5850
- var React39 = __toESM(require("react"), 1);
7336
+ var React40 = __toESM(require("react"), 1);
5851
7337
  var import_sonner = require("sonner");
5852
- var import_jsx_runtime41 = require("react/jsx-runtime");
7338
+ var import_jsx_runtime42 = require("react/jsx-runtime");
5853
7339
  var notificationVariantOptions = ["default", "success", "error", "warning"];
5854
7340
  function ToastStatusIcon({
5855
7341
  iconName,
5856
7342
  className
5857
7343
  }) {
5858
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7344
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5859
7345
  "span",
5860
7346
  {
5861
7347
  "aria-hidden": "true",
@@ -5863,7 +7349,7 @@ function ToastStatusIcon({
5863
7349
  "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border shadow-none",
5864
7350
  className
5865
7351
  ),
5866
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icon, { name: iconName, size: 16 })
7352
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { name: iconName, size: 16 })
5867
7353
  }
5868
7354
  );
5869
7355
  }
@@ -5887,35 +7373,35 @@ var defaultToastClassNames = {
5887
7373
  loading: "border-border bg-card text-foreground"
5888
7374
  };
5889
7375
  var defaultToastIcons = {
5890
- success: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7376
+ success: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5891
7377
  ToastStatusIcon,
5892
7378
  {
5893
7379
  iconName: "check",
5894
7380
  className: "border-success/15 bg-success/12 text-success"
5895
7381
  }
5896
7382
  ),
5897
- error: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7383
+ error: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5898
7384
  ToastStatusIcon,
5899
7385
  {
5900
7386
  iconName: "x",
5901
7387
  className: "border-destructive/15 bg-destructive/12 text-destructive"
5902
7388
  }
5903
7389
  ),
5904
- warning: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7390
+ warning: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5905
7391
  ToastStatusIcon,
5906
7392
  {
5907
7393
  iconName: "question",
5908
7394
  className: "border-warning/20 bg-warning/15 text-foreground"
5909
7395
  }
5910
7396
  ),
5911
- info: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7397
+ info: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5912
7398
  ToastStatusIcon,
5913
7399
  {
5914
7400
  iconName: "question",
5915
7401
  className: "border-primary/15 bg-primary/10 text-primary"
5916
7402
  }
5917
7403
  ),
5918
- close: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icon, { name: "x", size: 12 })
7404
+ close: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { name: "x", size: 12 })
5919
7405
  };
5920
7406
  function mergeToastClassNames(overrides) {
5921
7407
  return {
@@ -5923,7 +7409,7 @@ function mergeToastClassNames(overrides) {
5923
7409
  ...overrides
5924
7410
  };
5925
7411
  }
5926
- var Toaster = React39.forwardRef(
7412
+ var Toaster = React40.forwardRef(
5927
7413
  function Toaster2({
5928
7414
  className,
5929
7415
  closeButton = true,
@@ -5935,7 +7421,7 @@ var Toaster = React39.forwardRef(
5935
7421
  visibleToasts = 5,
5936
7422
  ...props
5937
7423
  }, ref) {
5938
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7424
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5939
7425
  import_sonner.Toaster,
5940
7426
  {
5941
7427
  ref,
@@ -5990,12 +7476,12 @@ notify.dismiss = import_sonner.toast.dismiss;
5990
7476
  notify.promise = import_sonner.toast.promise;
5991
7477
 
5992
7478
  // src/components/status-indicator.tsx
5993
- var React41 = __toESM(require("react"), 1);
7479
+ var React42 = __toESM(require("react"), 1);
5994
7480
 
5995
7481
  // src/components/tooltip.tsx
5996
- var React40 = __toESM(require("react"), 1);
7482
+ var React41 = __toESM(require("react"), 1);
5997
7483
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
5998
- var import_jsx_runtime42 = require("react/jsx-runtime");
7484
+ var import_jsx_runtime43 = require("react/jsx-runtime");
5999
7485
  var TooltipProvider = TooltipPrimitive.Provider;
6000
7486
  var Tooltip = TooltipPrimitive.Root;
6001
7487
  var TooltipTrigger = TooltipPrimitive.Trigger;
@@ -6013,8 +7499,8 @@ var tooltipToneClassNames = {
6013
7499
  warning: "border-[color:var(--sofya-tone-warning-border)] bg-[color:var(--sofya-tone-warning-background)] text-[color:var(--sofya-tone-warning-foreground)]",
6014
7500
  destructive: "border-[color:var(--sofya-tone-destructive-border)] bg-[color:var(--sofya-tone-destructive-background)] text-[color:var(--sofya-tone-destructive-foreground)]"
6015
7501
  };
6016
- var TooltipContent = React40.forwardRef(function TooltipContent2({ className, sideOffset = 8, align = "center", tone = "default", ...props }, ref) {
6017
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7502
+ var TooltipContent = React41.forwardRef(function TooltipContent2({ className, sideOffset = 8, align = "center", tone = "default", ...props }, ref) {
7503
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
6018
7504
  TooltipPrimitive.Content,
6019
7505
  {
6020
7506
  ref,
@@ -6040,7 +7526,7 @@ var TooltipContent = React40.forwardRef(function TooltipContent2({ className, si
6040
7526
  ) });
6041
7527
  });
6042
7528
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
6043
- var StatusTooltip = React40.forwardRef(function StatusTooltip2({
7529
+ var StatusTooltip = React41.forwardRef(function StatusTooltip2({
6044
7530
  children,
6045
7531
  label,
6046
7532
  status = "default",
@@ -6055,11 +7541,11 @@ var StatusTooltip = React40.forwardRef(function StatusTooltip2({
6055
7541
  className
6056
7542
  }, ref) {
6057
7543
  if (disabled) {
6058
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children });
7544
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children });
6059
7545
  }
6060
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipProvider, { delayDuration, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Tooltip, { open, defaultOpen, onOpenChange, children: [
6061
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipTrigger, { asChild: true, children }),
6062
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7546
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(TooltipProvider, { delayDuration, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Tooltip, { open, defaultOpen, onOpenChange, children: [
7547
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(TooltipTrigger, { asChild: true, children }),
7548
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
6063
7549
  TooltipContent,
6064
7550
  {
6065
7551
  ref,
@@ -6077,7 +7563,7 @@ var StatusTooltip = React40.forwardRef(function StatusTooltip2({
6077
7563
  StatusTooltip.displayName = "StatusTooltip";
6078
7564
 
6079
7565
  // src/components/status-indicator.tsx
6080
- var import_jsx_runtime43 = require("react/jsx-runtime");
7566
+ var import_jsx_runtime44 = require("react/jsx-runtime");
6081
7567
  var workflowStatusOptions = [
6082
7568
  "draft",
6083
7569
  "in_progress",
@@ -6158,7 +7644,7 @@ var toneTextClassName = {
6158
7644
  warning: "text-[color:var(--sofya-tone-warning-foreground)]",
6159
7645
  destructive: "text-[color:var(--sofya-tone-destructive-foreground)]"
6160
7646
  };
6161
- var StatusIndicator = React41.forwardRef(
7647
+ var StatusIndicator = React42.forwardRef(
6162
7648
  function StatusIndicator2({
6163
7649
  className,
6164
7650
  label,
@@ -6169,7 +7655,7 @@ var StatusIndicator = React41.forwardRef(
6169
7655
  ...props
6170
7656
  }, ref) {
6171
7657
  const resolved = resolveWorkflowStatus(status, { label });
6172
- const indicator = /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
7658
+ const indicator = /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
6173
7659
  "span",
6174
7660
  {
6175
7661
  ref,
@@ -6184,7 +7670,7 @@ var StatusIndicator = React41.forwardRef(
6184
7670
  ),
6185
7671
  ...props,
6186
7672
  children: [
6187
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7673
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6188
7674
  "span",
6189
7675
  {
6190
7676
  "aria-hidden": "true",
@@ -6205,15 +7691,15 @@ var StatusIndicator = React41.forwardRef(
6205
7691
  if (!tooltip) {
6206
7692
  return indicator;
6207
7693
  }
6208
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(StatusTooltip, { status: resolved.tone, label: resolved.label, side, children: indicator });
7694
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(StatusTooltip, { status: resolved.tone, label: resolved.label, side, children: indicator });
6209
7695
  }
6210
7696
  );
6211
7697
  StatusIndicator.displayName = "StatusIndicator";
6212
7698
 
6213
7699
  // src/components/switch.tsx
6214
- var React42 = __toESM(require("react"), 1);
7700
+ var React43 = __toESM(require("react"), 1);
6215
7701
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
6216
- var import_jsx_runtime44 = require("react/jsx-runtime");
7702
+ var import_jsx_runtime45 = require("react/jsx-runtime");
6217
7703
  var switchSizeOptions = ["default", "sm"];
6218
7704
  var switchRootSizeClasses = {
6219
7705
  default: "h-6 w-11",
@@ -6223,7 +7709,7 @@ var switchThumbSizeClasses = {
6223
7709
  default: "h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",
6224
7710
  sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
6225
7711
  };
6226
- var Switch = React42.forwardRef(
7712
+ var Switch = React43.forwardRef(
6227
7713
  ({
6228
7714
  "aria-describedby": ariaDescribedBy,
6229
7715
  "aria-labelledby": ariaLabelledBy,
@@ -6238,7 +7724,7 @@ var Switch = React42.forwardRef(
6238
7724
  size,
6239
7725
  ...props
6240
7726
  }, ref) => {
6241
- const generatedId = React42.useId();
7727
+ const generatedId = React43.useId();
6242
7728
  const resolvedId = id ?? generatedId;
6243
7729
  const labelId = label ? `${resolvedId}-label` : void 0;
6244
7730
  const descriptionId = description ? `${resolvedId}-description` : void 0;
@@ -6247,7 +7733,7 @@ var Switch = React42.forwardRef(
6247
7733
  const alignClassName2 = description ? "items-start" : "items-center";
6248
7734
  const resolvedAriaDescribedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ") || void 0;
6249
7735
  const resolvedAriaLabelledBy = ariaLabelledBy ?? labelId;
6250
- const switchControl = /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7736
+ const switchControl = /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
6251
7737
  SwitchPrimitives.Root,
6252
7738
  {
6253
7739
  id: resolvedId,
@@ -6262,7 +7748,7 @@ var Switch = React42.forwardRef(
6262
7748
  "data-size": resolvedSize,
6263
7749
  ...props,
6264
7750
  ref,
6265
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7751
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
6266
7752
  SwitchPrimitives.Thumb,
6267
7753
  {
6268
7754
  className: cn(
@@ -6276,7 +7762,7 @@ var Switch = React42.forwardRef(
6276
7762
  if (!hasTextContent) {
6277
7763
  return switchControl;
6278
7764
  }
6279
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7765
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
6280
7766
  "div",
6281
7767
  {
6282
7768
  "data-slot": "switch-container",
@@ -6287,8 +7773,8 @@ var Switch = React42.forwardRef(
6287
7773
  }),
6288
7774
  children: [
6289
7775
  switchControl,
6290
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
6291
- label ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7776
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
7777
+ label ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
6292
7778
  "span",
6293
7779
  {
6294
7780
  id: labelId,
@@ -6303,7 +7789,7 @@ var Switch = React42.forwardRef(
6303
7789
  })
6304
7790
  }
6305
7791
  ) }) : null,
6306
- description ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7792
+ description ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
6307
7793
  "span",
6308
7794
  {
6309
7795
  id: descriptionId,
@@ -6328,8 +7814,8 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
6328
7814
 
6329
7815
  // src/components/table.tsx
6330
7816
  var import_class_variance_authority8 = require("class-variance-authority");
6331
- var React43 = __toESM(require("react"), 1);
6332
- var import_jsx_runtime45 = require("react/jsx-runtime");
7817
+ var React44 = __toESM(require("react"), 1);
7818
+ var import_jsx_runtime46 = require("react/jsx-runtime");
6333
7819
  var tableDensityOptions = ["default", "compact"];
6334
7820
  var tableCellVariantOptions = ["default", "primary", "muted"];
6335
7821
  var tableStatusToneOptions = [
@@ -6339,10 +7825,10 @@ var tableStatusToneOptions = [
6339
7825
  "warning"
6340
7826
  ];
6341
7827
  var tableActionToneOptions = ["primary", "neutral", "danger"];
6342
- var TableDensityContext = React43.createContext("default");
6343
- var TableHeaderDensityContext = React43.createContext("default");
7828
+ var TableDensityContext = React44.createContext("default");
7829
+ var TableHeaderDensityContext = React44.createContext("default");
6344
7830
  function useTableDensity(density) {
6345
- const inheritedDensity = React43.useContext(TableDensityContext);
7831
+ const inheritedDensity = React44.useContext(TableDensityContext);
6346
7832
  return density ?? inheritedDensity;
6347
7833
  }
6348
7834
  var tableCellVariants = (0, import_class_variance_authority8.cva)(
@@ -6398,13 +7884,13 @@ var tableActionButtonVariants = (0, import_class_variance_authority8.cva)(
6398
7884
  }
6399
7885
  }
6400
7886
  );
6401
- var Table = React43.forwardRef(function Table2({ className, density = "default", ...props }, ref) {
6402
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TableDensityContext.Provider, { value: density, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7887
+ var Table = React44.forwardRef(function Table2({ className, density = "default", ...props }, ref) {
7888
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableDensityContext.Provider, { value: density, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6403
7889
  "div",
6404
7890
  {
6405
7891
  "data-slot": "table-container",
6406
7892
  className: "relative w-full overflow-x-auto",
6407
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7893
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6408
7894
  "table",
6409
7895
  {
6410
7896
  "data-density": density,
@@ -6421,10 +7907,10 @@ var Table = React43.forwardRef(function Table2({ className, density = "default",
6421
7907
  }
6422
7908
  ) });
6423
7909
  });
6424
- var TableHeader = React43.forwardRef(function TableHeader2({ className, density, ...props }, ref) {
7910
+ var TableHeader = React44.forwardRef(function TableHeader2({ className, density, ...props }, ref) {
6425
7911
  const tableDensity = useTableDensity();
6426
7912
  const headerDensity = density ?? tableDensity;
6427
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TableHeaderDensityContext.Provider, { value: headerDensity, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TableDensityContext.Provider, { value: "default", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7913
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableHeaderDensityContext.Provider, { value: headerDensity, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableDensityContext.Provider, { value: "default", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6428
7914
  "thead",
6429
7915
  {
6430
7916
  "data-slot": "table-header",
@@ -6438,8 +7924,8 @@ var TableHeader = React43.forwardRef(function TableHeader2({ className, density,
6438
7924
  }
6439
7925
  ) }) });
6440
7926
  });
6441
- var TableBody = React43.forwardRef(function TableBody2({ className, ...props }, ref) {
6442
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7927
+ var TableBody = React44.forwardRef(function TableBody2({ className, ...props }, ref) {
7928
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6443
7929
  "tbody",
6444
7930
  {
6445
7931
  "data-slot": "table-body",
@@ -6449,8 +7935,8 @@ var TableBody = React43.forwardRef(function TableBody2({ className, ...props },
6449
7935
  }
6450
7936
  );
6451
7937
  });
6452
- var TableFooter = React43.forwardRef(function TableFooter2({ className, ...props }, ref) {
6453
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7938
+ var TableFooter = React44.forwardRef(function TableFooter2({ className, ...props }, ref) {
7939
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6454
7940
  "tfoot",
6455
7941
  {
6456
7942
  "data-slot": "table-footer",
@@ -6463,10 +7949,10 @@ var TableFooter = React43.forwardRef(function TableFooter2({ className, ...props
6463
7949
  }
6464
7950
  );
6465
7951
  });
6466
- var TableRow = React43.forwardRef(
7952
+ var TableRow = React44.forwardRef(
6467
7953
  function TableRow2({ className, density, ...props }, ref) {
6468
7954
  const resolvedDensity = useTableDensity(density);
6469
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TableDensityContext.Provider, { value: resolvedDensity, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7955
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableDensityContext.Provider, { value: resolvedDensity, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6470
7956
  "tr",
6471
7957
  {
6472
7958
  "data-density": resolvedDensity,
@@ -6482,9 +7968,9 @@ var TableRow = React43.forwardRef(
6482
7968
  ) });
6483
7969
  }
6484
7970
  );
6485
- var TableHead = React43.forwardRef(function TableHead2({ className, children, ...props }, ref) {
6486
- const headerDensity = React43.useContext(TableHeaderDensityContext);
6487
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7971
+ var TableHead = React44.forwardRef(function TableHead2({ className, children, ...props }, ref) {
7972
+ const headerDensity = React44.useContext(TableHeaderDensityContext);
7973
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6488
7974
  "th",
6489
7975
  {
6490
7976
  "data-slot": "table-head",
@@ -6505,10 +7991,10 @@ var TableHead = React43.forwardRef(function TableHead2({ className, children, ..
6505
7991
  }
6506
7992
  );
6507
7993
  });
6508
- var TableCell = React43.forwardRef(
7994
+ var TableCell = React44.forwardRef(
6509
7995
  function TableCell2({ className, density, variant, truncate, children, ...props }, ref) {
6510
7996
  const resolvedDensity = useTableDensity(density);
6511
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7997
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6512
7998
  "td",
6513
7999
  {
6514
8000
  "data-density": resolvedDensity,
@@ -6533,8 +8019,8 @@ var TableCell = React43.forwardRef(
6533
8019
  );
6534
8020
  }
6535
8021
  );
6536
- var TableCaption = React43.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
6537
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8022
+ var TableCaption = React44.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
8023
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6538
8024
  "caption",
6539
8025
  {
6540
8026
  "data-slot": "table-caption",
@@ -6553,12 +8039,12 @@ var TableCaption = React43.forwardRef(function TableCaption2({ className, childr
6553
8039
  }
6554
8040
  );
6555
8041
  });
6556
- var TableCellTitle = React43.forwardRef(
8042
+ var TableCellTitle = React44.forwardRef(
6557
8043
  function TableCellTitle2({ className, children, size, ...props }, ref) {
6558
8044
  const density = useTableDensity();
6559
8045
  const resolvedSize = size ?? (density === "compact" ? "compact" : "default");
6560
8046
  const textSize = resolvedSize === "compact" ? "label-md" : "body";
6561
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8047
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6562
8048
  "span",
6563
8049
  {
6564
8050
  "data-slot": "table-cell-title",
@@ -6578,11 +8064,11 @@ var TableCellTitle = React43.forwardRef(
6578
8064
  );
6579
8065
  }
6580
8066
  );
6581
- var TableCellDescription = React43.forwardRef(function TableCellDescription2({ className, children, size, ...props }, ref) {
8067
+ var TableCellDescription = React44.forwardRef(function TableCellDescription2({ className, children, size, ...props }, ref) {
6582
8068
  const density = useTableDensity();
6583
8069
  const resolvedSize = size ?? (density === "compact" ? "compact" : "default");
6584
8070
  const textSize = resolvedSize === "compact" ? "body-sm" : "tiny";
6585
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8071
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6586
8072
  "span",
6587
8073
  {
6588
8074
  "data-slot": "table-cell-description",
@@ -6610,7 +8096,7 @@ function TableStatusBadge({
6610
8096
  ...props
6611
8097
  }) {
6612
8098
  const resolvedDensity = useTableDensity(density);
6613
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8099
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6614
8100
  Badge,
6615
8101
  {
6616
8102
  "data-density": resolvedDensity,
@@ -6629,8 +8115,8 @@ function TableStatusBadge({
6629
8115
  }
6630
8116
  );
6631
8117
  }
6632
- var TableActionButton = React43.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
6633
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8118
+ var TableActionButton = React44.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
8119
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6634
8120
  Button,
6635
8121
  {
6636
8122
  ref,
@@ -6648,8 +8134,8 @@ var TableActionButton = React43.forwardRef(function TableActionButton2({ classNa
6648
8134
  }
6649
8135
  );
6650
8136
  });
6651
- var TableActions = React43.forwardRef(function TableActions2({ className, ...props }, ref) {
6652
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8137
+ var TableActions = React44.forwardRef(function TableActions2({ className, ...props }, ref) {
8138
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6653
8139
  "div",
6654
8140
  {
6655
8141
  ref,
@@ -6676,8 +8162,8 @@ TableActions.displayName = "TableActions";
6676
8162
 
6677
8163
  // src/components/tag.tsx
6678
8164
  var import_class_variance_authority9 = require("class-variance-authority");
6679
- var React44 = __toESM(require("react"), 1);
6680
- var import_jsx_runtime46 = require("react/jsx-runtime");
8165
+ var React45 = __toESM(require("react"), 1);
8166
+ var import_jsx_runtime47 = require("react/jsx-runtime");
6681
8167
  var tagVariantOptions = [
6682
8168
  "neutral",
6683
8169
  "organization",
@@ -6718,9 +8204,9 @@ var tagStatusToneClasses = {
6718
8204
  warning: "border-[color:var(--sofya-tone-warning-border)] bg-[color:var(--sofya-tone-warning-background)] text-[color:var(--sofya-tone-warning-foreground)]",
6719
8205
  destructive: "border-[color:var(--sofya-tone-destructive-border)] bg-[color:var(--sofya-tone-destructive-background)] text-[color:var(--sofya-tone-destructive-foreground)]"
6720
8206
  };
6721
- var Tag = React44.forwardRef(function Tag2({ children, className, icon, tone = "info", truncate = false, variant, ...props }, ref) {
8207
+ var Tag = React45.forwardRef(function Tag2({ children, className, icon, tone = "info", truncate = false, variant, ...props }, ref) {
6722
8208
  const resolvedVariant = variant ?? "neutral";
6723
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
8209
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
6724
8210
  "span",
6725
8211
  {
6726
8212
  ref,
@@ -6734,7 +8220,7 @@ var Tag = React44.forwardRef(function Tag2({ children, className, icon, tone = "
6734
8220
  ),
6735
8221
  ...props,
6736
8222
  children: [
6737
- icon ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "inline-flex shrink-0 items-center justify-center", children: icon }) : null,
8223
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "inline-flex shrink-0 items-center justify-center", children: icon }) : null,
6738
8224
  renderTextContent(children, {
6739
8225
  as: "span",
6740
8226
  className: cn("text-inherit", truncate && "min-w-0 truncate"),
@@ -6755,11 +8241,11 @@ var privacyDefaultLabels = {
6755
8241
  organization: "Minha organiza\xE7\xE3o",
6756
8242
  public: "P\xFAblico"
6757
8243
  };
6758
- var PrivacyLabel = React44.forwardRef(
8244
+ var PrivacyLabel = React45.forwardRef(
6759
8245
  function PrivacyLabel2({ appearance = "text", className, icon, label, privacy, ...props }, ref) {
6760
8246
  const content = label ?? privacyDefaultLabels[privacy];
6761
8247
  if (appearance === "tag") {
6762
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
8248
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
6763
8249
  Tag,
6764
8250
  {
6765
8251
  ref,
@@ -6772,7 +8258,7 @@ var PrivacyLabel = React44.forwardRef(
6772
8258
  }
6773
8259
  );
6774
8260
  }
6775
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
8261
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
6776
8262
  "span",
6777
8263
  {
6778
8264
  ref,
@@ -6784,7 +8270,7 @@ var PrivacyLabel = React44.forwardRef(
6784
8270
  ),
6785
8271
  ...props,
6786
8272
  children: [
6787
- icon ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "inline-flex shrink-0 items-center justify-center", children: icon }) : null,
8273
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "inline-flex shrink-0 items-center justify-center", children: icon }) : null,
6788
8274
  renderTextContent(content, {
6789
8275
  as: "span",
6790
8276
  className: "text-inherit",
@@ -6798,12 +8284,12 @@ var PrivacyLabel = React44.forwardRef(
6798
8284
  PrivacyLabel.displayName = "PrivacyLabel";
6799
8285
 
6800
8286
  // src/components/template-card.tsx
6801
- var React45 = __toESM(require("react"), 1);
6802
- var import_jsx_runtime47 = require("react/jsx-runtime");
8287
+ var React46 = __toESM(require("react"), 1);
8288
+ var import_jsx_runtime48 = require("react/jsx-runtime");
6803
8289
  var templateCardLayoutOptions = ["card", "list"];
6804
8290
  var templateCardFavoriteDisplayOptions = ["action", "inline"];
6805
8291
  var templateCardMetaPlacementOptions = ["block", "inline"];
6806
- var TemplateCard = React45.forwardRef(
8292
+ var TemplateCard = React46.forwardRef(
6807
8293
  function TemplateCard2({
6808
8294
  className,
6809
8295
  description,
@@ -6830,14 +8316,14 @@ var TemplateCard = React45.forwardRef(
6830
8316
  const showInlineMeta = metaPlacement === "inline" && Boolean(meta);
6831
8317
  const showBlockMeta = metaPlacement !== "inline" && Boolean(meta);
6832
8318
  const showFavoriteAction = favoriteDisplay !== "inline" && (onToggleFavorite !== void 0 || favorited !== void 0);
6833
- const actions = showFavoriteAction || overflow ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex shrink-0 items-center gap-[var(--sofya-gap-tight)]", children: [
6834
- showFavoriteAction ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8319
+ const actions = showFavoriteAction || overflow ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex shrink-0 items-center gap-[var(--sofya-gap-tight)]", children: [
8320
+ showFavoriteAction ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6835
8321
  IconButton,
6836
8322
  {
6837
8323
  "aria-label": favoriteLabel,
6838
8324
  selected: Boolean(favorited),
6839
8325
  onClick: onToggleFavorite,
6840
- icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Icon, { name: "star", size: 18 })
8326
+ icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Icon, { name: "star", size: 18 })
6841
8327
  }
6842
8328
  ) : null,
6843
8329
  overflow
@@ -6852,10 +8338,10 @@ var TemplateCard = React45.forwardRef(
6852
8338
  style: selectable ? { fontSize: "15px", lineHeight: "26px", fontWeight: 600 } : void 0
6853
8339
  });
6854
8340
  const hasInlineTitleExtras = showInlineStar || showInlineMeta;
6855
- const titleRow = hasInlineTitleExtras ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex min-w-0 items-center gap-[var(--sofya-gap-tight)]", children: [
6856
- showInlineStar ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Icon, { name: "star-filled", size: 18, color: "primary" }) : null,
8341
+ const titleRow = hasInlineTitleExtras ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex min-w-0 items-center gap-[var(--sofya-gap-tight)]", children: [
8342
+ showInlineStar ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Icon, { name: "star-filled", size: 18, color: "primary" }) : null,
6857
8343
  titleNode,
6858
- showInlineMeta ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8344
+ showInlineMeta ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6859
8345
  "span",
6860
8346
  {
6861
8347
  "data-slot": "template-card-meta-inline",
@@ -6864,7 +8350,7 @@ var TemplateCard = React45.forwardRef(
6864
8350
  }
6865
8351
  ) : null
6866
8352
  ] }) : titleNode;
6867
- const heading = /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex min-w-0 flex-col gap-[var(--sofya-space-1)]", children: [
8353
+ const heading = /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex min-w-0 flex-col gap-[var(--sofya-space-1)]", children: [
6868
8354
  titleRow,
6869
8355
  description ? renderTextContent(description, {
6870
8356
  as: "span",
@@ -6882,7 +8368,7 @@ var TemplateCard = React45.forwardRef(
6882
8368
  style: selectable ? { fontSize: "14px", lineHeight: "18px", fontWeight: 400 } : void 0
6883
8369
  }) : null
6884
8370
  ] });
6885
- const blockMeta = showBlockMeta ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8371
+ const blockMeta = showBlockMeta ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6886
8372
  "div",
6887
8373
  {
6888
8374
  "data-slot": "template-card-meta",
@@ -6906,7 +8392,7 @@ var TemplateCard = React45.forwardRef(
6906
8392
  }
6907
8393
  onKeyDown?.(event);
6908
8394
  };
6909
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8395
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6910
8396
  "div",
6911
8397
  {
6912
8398
  ref,
@@ -6932,13 +8418,13 @@ var TemplateCard = React45.forwardRef(
6932
8418
  className
6933
8419
  ),
6934
8420
  ...props,
6935
- children: selectable ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
6936
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8421
+ children: selectable ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
8422
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6937
8423
  "span",
6938
8424
  {
6939
8425
  className: "shrink-0",
6940
8426
  onClick: (event) => event.stopPropagation(),
6941
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
8427
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6942
8428
  Checkbox,
6943
8429
  {
6944
8430
  checked: selected,
@@ -6948,15 +8434,15 @@ var TemplateCard = React45.forwardRef(
6948
8434
  )
6949
8435
  }
6950
8436
  ),
6951
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "min-w-0 flex-1", children: heading }),
8437
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "min-w-0 flex-1", children: heading }),
6952
8438
  blockMeta,
6953
8439
  actions
6954
- ] }) : isList ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
6955
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "min-w-0 flex-1", children: heading }),
8440
+ ] }) : isList ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
8441
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "min-w-0 flex-1", children: heading }),
6956
8442
  blockMeta,
6957
8443
  actions
6958
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
6959
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-start justify-between gap-[var(--sofya-gap-compact)]", children: [
8444
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
8445
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-start justify-between gap-[var(--sofya-gap-compact)]", children: [
6960
8446
  heading,
6961
8447
  actions
6962
8448
  ] }),
@@ -6967,16 +8453,16 @@ var TemplateCard = React45.forwardRef(
6967
8453
  }
6968
8454
  );
6969
8455
  TemplateCard.displayName = "TemplateCard";
6970
- var TemplateListItem = React45.forwardRef(function TemplateListItem2(props, ref) {
6971
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TemplateCard, { ref, layout: "list", ...props });
8456
+ var TemplateListItem = React46.forwardRef(function TemplateListItem2(props, ref) {
8457
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TemplateCard, { ref, layout: "list", ...props });
6972
8458
  });
6973
8459
  TemplateListItem.displayName = "TemplateListItem";
6974
8460
 
6975
8461
  // src/components/tabs.tsx
6976
- var React46 = __toESM(require("react"), 1);
8462
+ var React47 = __toESM(require("react"), 1);
6977
8463
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
6978
8464
  var import_react3 = require("motion/react");
6979
- var import_jsx_runtime48 = require("react/jsx-runtime");
8465
+ var import_jsx_runtime49 = require("react/jsx-runtime");
6980
8466
  function resolveDefaultValue(items, defaultValue) {
6981
8467
  if (defaultValue) {
6982
8468
  return defaultValue;
@@ -7000,13 +8486,13 @@ function Tabs({
7000
8486
  onChange: onValueChange,
7001
8487
  value
7002
8488
  });
7003
- const indicatorLayoutId = React46.useId();
7004
- React46.useEffect(() => {
8489
+ const indicatorLayoutId = React47.useId();
8490
+ React47.useEffect(() => {
7005
8491
  if (value === void 0) {
7006
8492
  setUncontrolledCurrentValue(resolvedDefaultValue);
7007
8493
  }
7008
8494
  }, [resolvedDefaultValue, setUncontrolledCurrentValue, value]);
7009
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
8495
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
7010
8496
  TabsPrimitive.Root,
7011
8497
  {
7012
8498
  className: cn("w-full", className),
@@ -7014,7 +8500,7 @@ function Tabs({
7014
8500
  value: currentValue,
7015
8501
  ...props,
7016
8502
  children: [
7017
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
8503
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7018
8504
  TabsPrimitive.List,
7019
8505
  {
7020
8506
  "aria-label": "Subtelas navegaveis",
@@ -7025,7 +8511,7 @@ function Tabs({
7025
8511
  children: items.map((item) => {
7026
8512
  const isUnavailable = item.disabled || item.loading;
7027
8513
  const isActive = item.value === currentValue;
7028
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
8514
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
7029
8515
  TabsPrimitive.Trigger,
7030
8516
  {
7031
8517
  value: item.value,
@@ -7037,7 +8523,7 @@ function Tabs({
7037
8523
  item.triggerClassName
7038
8524
  ),
7039
8525
  children: [
7040
- isActive ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
8526
+ isActive ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7041
8527
  import_react3.motion.span,
7042
8528
  {
7043
8529
  "aria-hidden": "true",
@@ -7047,15 +8533,15 @@ function Tabs({
7047
8533
  transition: { duration: 0.25, ease: "easeInOut" }
7048
8534
  }
7049
8535
  ) : null,
7050
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
7051
- item.loading ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
8536
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
8537
+ item.loading ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7052
8538
  "span",
7053
8539
  {
7054
8540
  "aria-hidden": "true",
7055
8541
  className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent"
7056
8542
  }
7057
8543
  ) : null,
7058
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { children: renderTextContent(item.label, {
8544
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: renderTextContent(item.label, {
7059
8545
  as: "span",
7060
8546
  className: "block text-inherit",
7061
8547
  size: "body"
@@ -7069,7 +8555,7 @@ function Tabs({
7069
8555
  }
7070
8556
  ),
7071
8557
  items.map(
7072
- (item) => item.content !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
8558
+ (item) => item.content !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
7073
8559
  TabsPrimitive.Content,
7074
8560
  {
7075
8561
  value: item.value,
@@ -7092,9 +8578,9 @@ function Tabs({
7092
8578
  Tabs.displayName = "Tabs";
7093
8579
 
7094
8580
  // src/components/textarea.tsx
7095
- var React47 = __toESM(require("react"), 1);
7096
- var import_jsx_runtime49 = require("react/jsx-runtime");
7097
- var Textarea = React47.forwardRef(
8581
+ var React48 = __toESM(require("react"), 1);
8582
+ var import_jsx_runtime50 = require("react/jsx-runtime");
8583
+ var Textarea = React48.forwardRef(
7098
8584
  ({
7099
8585
  className,
7100
8586
  containerClassName,
@@ -7104,10 +8590,10 @@ var Textarea = React47.forwardRef(
7104
8590
  rows = 5,
7105
8591
  ...props
7106
8592
  }, ref) => {
7107
- const generatedId = React47.useId();
8593
+ const generatedId = React48.useId();
7108
8594
  const resolvedId = id ?? generatedId;
7109
8595
  const ariaLabel = props["aria-label"] ?? (typeof label === "string" ? label : void 0);
7110
- const control = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8596
+ const control = /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
7111
8597
  "textarea",
7112
8598
  {
7113
8599
  className: cn(
@@ -7121,7 +8607,7 @@ var Textarea = React47.forwardRef(
7121
8607
  "aria-label": ariaLabel
7122
8608
  }
7123
8609
  );
7124
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8610
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
7125
8611
  FieldShell,
7126
8612
  {
7127
8613
  control,
@@ -7136,10 +8622,10 @@ var Textarea = React47.forwardRef(
7136
8622
  Textarea.displayName = "Textarea";
7137
8623
 
7138
8624
  // src/components/toggle.tsx
7139
- var React48 = __toESM(require("react"), 1);
8625
+ var React49 = __toESM(require("react"), 1);
7140
8626
  var SwitchPrimitives2 = __toESM(require("@radix-ui/react-switch"), 1);
7141
- var import_jsx_runtime50 = require("react/jsx-runtime");
7142
- var Toggle = React48.forwardRef(function Toggle2({
8627
+ var import_jsx_runtime51 = require("react/jsx-runtime");
8628
+ var Toggle = React49.forwardRef(function Toggle2({
7143
8629
  "aria-describedby": ariaDescribedBy,
7144
8630
  "aria-labelledby": ariaLabelledBy,
7145
8631
  className,
@@ -7152,7 +8638,7 @@ var Toggle = React48.forwardRef(function Toggle2({
7152
8638
  labelClassName,
7153
8639
  ...props
7154
8640
  }, ref) {
7155
- const generatedId = React48.useId();
8641
+ const generatedId = React49.useId();
7156
8642
  const resolvedId = id ?? generatedId;
7157
8643
  const labelId = label ? `${resolvedId}-label` : void 0;
7158
8644
  const descriptionId = description ? `${resolvedId}-description` : void 0;
@@ -7160,7 +8646,7 @@ var Toggle = React48.forwardRef(function Toggle2({
7160
8646
  const alignClassName2 = description ? "items-start" : "items-center";
7161
8647
  const resolvedAriaDescribedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ") || void 0;
7162
8648
  const resolvedAriaLabelledBy = ariaLabelledBy ?? labelId;
7163
- const toggleControl = /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8649
+ const toggleControl = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
7164
8650
  SwitchPrimitives2.Root,
7165
8651
  {
7166
8652
  id: resolvedId,
@@ -7174,7 +8660,7 @@ var Toggle = React48.forwardRef(function Toggle2({
7174
8660
  className
7175
8661
  ),
7176
8662
  ...props,
7177
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8663
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
7178
8664
  SwitchPrimitives2.Thumb,
7179
8665
  {
7180
8666
  "data-slot": "toggle-thumb",
@@ -7186,7 +8672,7 @@ var Toggle = React48.forwardRef(function Toggle2({
7186
8672
  if (!hasTextContent) {
7187
8673
  return toggleControl;
7188
8674
  }
7189
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
8675
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
7190
8676
  "div",
7191
8677
  {
7192
8678
  "data-slot": "toggle-container",
@@ -7197,8 +8683,8 @@ var Toggle = React48.forwardRef(function Toggle2({
7197
8683
  }),
7198
8684
  children: [
7199
8685
  toggleControl,
7200
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
7201
- label ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8686
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
8687
+ label ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
7202
8688
  "span",
7203
8689
  {
7204
8690
  id: labelId,
@@ -7210,7 +8696,7 @@ var Toggle = React48.forwardRef(function Toggle2({
7210
8696
  })
7211
8697
  }
7212
8698
  ) }) : null,
7213
- description ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8699
+ description ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
7214
8700
  "span",
7215
8701
  {
7216
8702
  id: descriptionId,
@@ -7233,9 +8719,9 @@ var Toggle = React48.forwardRef(function Toggle2({
7233
8719
  Toggle.displayName = "Toggle";
7234
8720
 
7235
8721
  // src/theme/provider.tsx
7236
- var React49 = __toESM(require("react"), 1);
8722
+ var React50 = __toESM(require("react"), 1);
7237
8723
  var import_tokens3 = require("@sofya-ds/tokens");
7238
- var import_jsx_runtime51 = require("react/jsx-runtime");
8724
+ var import_jsx_runtime52 = require("react/jsx-runtime");
7239
8725
  var SOFYA_FONT_LINKS = [
7240
8726
  {
7241
8727
  id: "preconnect-googleapis",
@@ -7255,7 +8741,7 @@ var SOFYA_FONT_LINKS = [
7255
8741
  }
7256
8742
  ];
7257
8743
  function useSofyaFontLinks() {
7258
- React49.useEffect(() => {
8744
+ React50.useEffect(() => {
7259
8745
  if (typeof document === "undefined") {
7260
8746
  return;
7261
8747
  }
@@ -7288,7 +8774,7 @@ function SofyaProvider({
7288
8774
  useSofyaFontLinks();
7289
8775
  const theme = (0, import_tokens3.createWhitelabelTheme)(overrides ?? {}, preset);
7290
8776
  const cssVariables = (0, import_tokens3.themeToCssVariables)(theme);
7291
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8777
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7292
8778
  "div",
7293
8779
  {
7294
8780
  "data-sofya-theme": theme.name,
@@ -7387,6 +8873,15 @@ var import_tokens4 = require("@sofya-ds/tokens");
7387
8873
  RadioGroupOptionDescription,
7388
8874
  RadioGroupOptionIndicator,
7389
8875
  RadioGroupOptionLabel,
8876
+ ReasoningLabsWidget,
8877
+ ReasoningSummaryWidget,
8878
+ ReasoningVitalsWidget,
8879
+ ReasoningWidget,
8880
+ ReasoningWidgetActionButton,
8881
+ ReasoningWidgetActions,
8882
+ ReasoningWidgetList,
8883
+ ReasoningWidgetRenderer,
8884
+ ReasoningWidgetTable,
7390
8885
  RichTextToolbar,
7391
8886
  RichTextToolbarButton,
7392
8887
  RichTextToolbarGroup,
@@ -7491,6 +8986,14 @@ var import_tokens4 = require("@sofya-ds/tokens");
7491
8986
  progressSizeOptions,
7492
8987
  radioGroupOrientationOptions,
7493
8988
  radioGroupVariantOptions,
8989
+ reasoningWidgetActionScopeOptions,
8990
+ reasoningWidgetActionToneOptions,
8991
+ reasoningWidgetDensityOptions,
8992
+ reasoningWidgetFrameOptions,
8993
+ reasoningWidgetTableAlignOptions,
8994
+ reasoningWidgetTableColumnVariantOptions,
8995
+ reasoningWidgetToneOptions,
8996
+ reasoningWidgetVariantOptions,
7494
8997
  renderTextContent,
7495
8998
  resolveSurfaceToken,
7496
8999
  resolveTextStyle,