@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 +1801 -298
- package/dist/index.css +1 -1
- package/dist/index.d.cts +228 -4
- package/dist/index.d.ts +228 -4
- package/dist/index.js +1724 -222
- package/package.json +2 -2
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:
|
|
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
|
|
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/
|
|
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
|
|
5191
|
-
|
|
5192
|
-
|
|
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
|
-
|
|
5195
|
-
|
|
5196
|
-
variant: "ghost",
|
|
5197
|
-
selected: active,
|
|
5198
|
-
"data-slot": "right-rail-action",
|
|
5485
|
+
as,
|
|
5486
|
+
"aria-label": ariaLabel,
|
|
5199
5487
|
className: cn(
|
|
5200
|
-
"
|
|
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
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
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
|
-
|
|
5226
|
-
|
|
5227
|
-
return /* @__PURE__ */ (0,
|
|
5228
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
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": "
|
|
5247
|
-
|
|
5565
|
+
"data-slot": "reasoning-widget-actions",
|
|
5566
|
+
"data-reveal": reveal,
|
|
5248
5567
|
className: cn(
|
|
5249
|
-
"flex
|
|
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,
|
|
5254
|
-
|
|
5574
|
+
children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
5575
|
+
ReasoningWidgetActionButton,
|
|
5255
5576
|
{
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
)
|
|
5577
|
+
action,
|
|
5578
|
+
onAction,
|
|
5579
|
+
target,
|
|
5580
|
+
widgetId
|
|
5581
|
+
},
|
|
5582
|
+
action.id
|
|
5583
|
+
))
|
|
5263
5584
|
}
|
|
5264
5585
|
);
|
|
5265
5586
|
});
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
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": "
|
|
5273
|
-
className: cn("
|
|
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
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
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
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
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": "
|
|
5313
|
-
"data-size": size,
|
|
5884
|
+
"data-slot": "reasoning-widget-table",
|
|
5314
5885
|
className: cn(
|
|
5315
|
-
|
|
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
|
-
|
|
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
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
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 =
|
|
5336
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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 =
|
|
5352
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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 =
|
|
5368
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
5382
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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 =
|
|
5397
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
5420
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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 =
|
|
5444
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
6943
|
+
var React36 = __toESM(require("react"), 1);
|
|
5458
6944
|
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
|
|
5459
|
-
var
|
|
5460
|
-
var Separator2 =
|
|
5461
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
5481
|
-
var
|
|
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 =
|
|
6980
|
+
var SidebarNav = React37.forwardRef(
|
|
5495
6981
|
({ as, className, ...props }, ref) => {
|
|
5496
6982
|
const Comp = as ?? "nav";
|
|
5497
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
5510
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
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 =
|
|
7007
|
+
var SidebarNavSectionLabel = React37.forwardRef(
|
|
5522
7008
|
({ as, className, children, ...props }, ref) => {
|
|
5523
7009
|
const Comp = as ?? "h5";
|
|
5524
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
5542
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
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 =
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
5621
|
-
var
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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,
|
|
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,
|
|
5732
|
-
label ? /* @__PURE__ */ (0,
|
|
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,
|
|
5744
|
-
showValue ? /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
5833
|
-
var
|
|
5834
|
-
var Skeleton =
|
|
5835
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
7336
|
+
var React40 = __toESM(require("react"), 1);
|
|
5851
7337
|
var import_sonner = require("sonner");
|
|
5852
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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 =
|
|
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,
|
|
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
|
|
7479
|
+
var React42 = __toESM(require("react"), 1);
|
|
5994
7480
|
|
|
5995
7481
|
// src/components/tooltip.tsx
|
|
5996
|
-
var
|
|
7482
|
+
var React41 = __toESM(require("react"), 1);
|
|
5997
7483
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
5998
|
-
var
|
|
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 =
|
|
6017
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
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,
|
|
7544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children });
|
|
6059
7545
|
}
|
|
6060
|
-
return /* @__PURE__ */ (0,
|
|
6061
|
-
/* @__PURE__ */ (0,
|
|
6062
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
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 =
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
7700
|
+
var React43 = __toESM(require("react"), 1);
|
|
6215
7701
|
var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
|
|
6216
|
-
var
|
|
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 =
|
|
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 =
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
6291
|
-
label ? /* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
6332
|
-
var
|
|
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 =
|
|
6343
|
-
var TableHeaderDensityContext =
|
|
7828
|
+
var TableDensityContext = React44.createContext("default");
|
|
7829
|
+
var TableHeaderDensityContext = React44.createContext("default");
|
|
6344
7830
|
function useTableDensity(density) {
|
|
6345
|
-
const inheritedDensity =
|
|
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 =
|
|
6402
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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 =
|
|
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,
|
|
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 =
|
|
6442
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
6453
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
7952
|
+
var TableRow = React44.forwardRef(
|
|
6467
7953
|
function TableRow2({ className, density, ...props }, ref) {
|
|
6468
7954
|
const resolvedDensity = useTableDensity(density);
|
|
6469
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
6486
|
-
const headerDensity =
|
|
6487
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
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,
|
|
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 =
|
|
6537
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
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,
|
|
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 =
|
|
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,
|
|
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,
|
|
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 =
|
|
6633
|
-
return /* @__PURE__ */ (0,
|
|
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 =
|
|
6652
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
6680
|
-
var
|
|
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 =
|
|
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,
|
|
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,
|
|
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 =
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
6802
|
-
var
|
|
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 =
|
|
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,
|
|
6834
|
-
showFavoriteAction ? /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
6856
|
-
showInlineStar ? /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
6936
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
6955
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
6959
|
-
/* @__PURE__ */ (0,
|
|
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 =
|
|
6971
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
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
|
|
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 =
|
|
7004
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
7051
|
-
item.loading ? /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
7096
|
-
var
|
|
7097
|
-
var Textarea =
|
|
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 =
|
|
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,
|
|
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,
|
|
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
|
|
8625
|
+
var React49 = __toESM(require("react"), 1);
|
|
7140
8626
|
var SwitchPrimitives2 = __toESM(require("@radix-ui/react-switch"), 1);
|
|
7141
|
-
var
|
|
7142
|
-
var Toggle =
|
|
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 =
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
7201
|
-
label ? /* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
8722
|
+
var React50 = __toESM(require("react"), 1);
|
|
7237
8723
|
var import_tokens3 = require("@sofya-ds/tokens");
|
|
7238
|
-
var
|
|
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
|
-
|
|
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,
|
|
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,
|