@mieweb/ui 0.11.0-dev.32 → 0.11.0-dev.34
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/{chunk-PJN4HM2X.cjs → chunk-3O3Q3DX7.cjs} +21 -21
- package/dist/{chunk-PJN4HM2X.cjs.map → chunk-3O3Q3DX7.cjs.map} +1 -1
- package/dist/{chunk-M42FTWY2.cjs → chunk-46RYJYN2.cjs} +6 -6
- package/dist/{chunk-M42FTWY2.cjs.map → chunk-46RYJYN2.cjs.map} +1 -1
- package/dist/{chunk-JMAZ2GKT.js → chunk-4GSFVD5V.js} +3 -3
- package/dist/{chunk-JMAZ2GKT.js.map → chunk-4GSFVD5V.js.map} +1 -1
- package/dist/{chunk-2R3ILG4Y.cjs → chunk-4M2KE4O5.cjs} +7 -7
- package/dist/{chunk-2R3ILG4Y.cjs.map → chunk-4M2KE4O5.cjs.map} +1 -1
- package/dist/{chunk-L52HKEUD.js → chunk-4SUEBKTY.js} +3 -3
- package/dist/{chunk-L52HKEUD.js.map → chunk-4SUEBKTY.js.map} +1 -1
- package/dist/{chunk-SCYLVQWA.cjs → chunk-6O6EYKOG.cjs} +130 -874
- package/dist/chunk-6O6EYKOG.cjs.map +1 -0
- package/dist/{chunk-INMDLVUB.cjs → chunk-6UYMO3PF.cjs} +7 -2
- package/dist/chunk-6UYMO3PF.cjs.map +1 -0
- package/dist/{chunk-2Z2GFDRS.cjs → chunk-DXNVQQYN.cjs} +4 -4
- package/dist/{chunk-2Z2GFDRS.cjs.map → chunk-DXNVQQYN.cjs.map} +1 -1
- package/dist/{chunk-JN2CL7MK.js → chunk-EWPNM6OO.js} +25 -5
- package/dist/chunk-EWPNM6OO.js.map +1 -0
- package/dist/{chunk-JQAGNAY2.js → chunk-EX7Q5545.js} +4 -4
- package/dist/{chunk-JQAGNAY2.js.map → chunk-EX7Q5545.js.map} +1 -1
- package/dist/{chunk-YG7BR76Y.js → chunk-GMNF4E7B.js} +3 -42
- package/dist/chunk-GMNF4E7B.js.map +1 -0
- package/dist/chunk-HTZ27DGZ.js +46 -0
- package/dist/chunk-HTZ27DGZ.js.map +1 -0
- package/dist/{chunk-SNAMNKFH.js → chunk-JEXEFWEM.js} +7 -2
- package/dist/chunk-JEXEFWEM.js.map +1 -0
- package/dist/{chunk-KIVEYQGA.cjs → chunk-MSX2P5JE.cjs} +2 -48
- package/dist/chunk-MSX2P5JE.cjs.map +1 -0
- package/dist/{chunk-VV2U36T6.cjs → chunk-MZR634HI.cjs} +9 -9
- package/dist/{chunk-VV2U36T6.cjs.map → chunk-MZR634HI.cjs.map} +1 -1
- package/dist/{chunk-JCO62XMU.cjs → chunk-NCPDUJKJ.cjs} +43 -26
- package/dist/chunk-NCPDUJKJ.cjs.map +1 -0
- package/dist/{chunk-DG3CXR24.js → chunk-NW6D6AFL.js} +80 -819
- package/dist/chunk-NW6D6AFL.js.map +1 -0
- package/dist/{chunk-BP4LXRC6.cjs → chunk-PGJLW2NO.cjs} +7 -7
- package/dist/{chunk-BP4LXRC6.cjs.map → chunk-PGJLW2NO.cjs.map} +1 -1
- package/dist/chunk-PHYQSCP6.cjs +54 -0
- package/dist/chunk-PHYQSCP6.cjs.map +1 -0
- package/dist/{chunk-ZFJJMDV3.js → chunk-RTADGBBN.js} +3 -3
- package/dist/{chunk-ZFJJMDV3.js.map → chunk-RTADGBBN.js.map} +1 -1
- package/dist/{chunk-FQUSSPXX.cjs → chunk-S2CJ57BX.cjs} +25 -5
- package/dist/chunk-S2CJ57BX.cjs.map +1 -0
- package/dist/{chunk-KSQQBFDQ.js → chunk-SPGP252Q.js} +43 -26
- package/dist/chunk-SPGP252Q.js.map +1 -0
- package/dist/{chunk-67SD6VPF.cjs → chunk-SVC7NPQ6.cjs} +6 -6
- package/dist/{chunk-67SD6VPF.cjs.map → chunk-SVC7NPQ6.cjs.map} +1 -1
- package/dist/{chunk-TWQSMUE6.js → chunk-VMEVLBI3.js} +46 -38
- package/dist/chunk-VMEVLBI3.js.map +1 -0
- package/dist/{chunk-QNJEDBIN.js → chunk-X5HLVACK.js} +4 -4
- package/dist/{chunk-QNJEDBIN.js.map → chunk-X5HLVACK.js.map} +1 -1
- package/dist/{chunk-LC3JL2HB.cjs → chunk-XEHD2HA5.cjs} +46 -38
- package/dist/chunk-XEHD2HA5.cjs.map +1 -0
- package/dist/{chunk-R3MJKY63.js → chunk-YGSPIDE4.js} +3 -3
- package/dist/{chunk-R3MJKY63.js.map → chunk-YGSPIDE4.js.map} +1 -1
- package/dist/{chunk-7LKTIZLR.js → chunk-YR45POH2.js} +3 -3
- package/dist/{chunk-7LKTIZLR.js.map → chunk-YR45POH2.js.map} +1 -1
- package/dist/components/AlertDialog/index.cjs +6 -6
- package/dist/components/AlertDialog/index.js +2 -2
- package/dist/components/EmailEditor/index.cjs +14 -12
- package/dist/components/EmailEditor/index.js +5 -3
- package/dist/components/KeyboardShortcutsOverlay/index.cjs +4 -4
- package/dist/components/KeyboardShortcutsOverlay/index.js +2 -2
- package/dist/components/MediaEditor/index.cjs +7 -7
- package/dist/components/MediaEditor/index.js +2 -2
- package/dist/components/MediaFeed/index.cjs +3 -3
- package/dist/components/MediaFeed/index.js +2 -2
- package/dist/components/Modal/index.cjs +9 -9
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/RichTextEditor/index.cjs +6 -4
- package/dist/components/RichTextEditor/index.js +3 -1
- package/dist/components/SuperChat/index.cjs +3 -3
- package/dist/components/SuperChat/index.js +2 -2
- package/dist/components/Textarea/index.cjs +7 -5
- package/dist/components/Textarea/index.js +4 -2
- package/dist/esheet.cjs +1119 -1393
- package/dist/esheet.cjs.map +1 -1
- package/dist/esheet.d.cts +211 -4
- package/dist/esheet.d.ts +211 -4
- package/dist/esheet.js +946 -1239
- package/dist/esheet.js.map +1 -1
- package/dist/hooks/index.cjs +41 -40
- package/dist/hooks/index.js +2 -1
- package/dist/index.cjs +1058 -285
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +809 -20
- package/dist/index.js.map +1 -1
- package/dist/{model-NPW2JMHZ.cjs → model-EFXX5JZN.cjs} +18 -18
- package/dist/{model-NPW2JMHZ.cjs.map → model-EFXX5JZN.cjs.map} +1 -1
- package/dist/{model-SG5H3TCJ.js → model-TAARSYDY.js} +4 -4
- package/dist/{model-SG5H3TCJ.js.map → model-TAARSYDY.js.map} +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-DG3CXR24.js.map +0 -1
- package/dist/chunk-FQUSSPXX.cjs.map +0 -1
- package/dist/chunk-INMDLVUB.cjs.map +0 -1
- package/dist/chunk-JCO62XMU.cjs.map +0 -1
- package/dist/chunk-JN2CL7MK.js.map +0 -1
- package/dist/chunk-KIVEYQGA.cjs.map +0 -1
- package/dist/chunk-KSQQBFDQ.js.map +0 -1
- package/dist/chunk-LC3JL2HB.cjs.map +0 -1
- package/dist/chunk-SCYLVQWA.cjs.map +0 -1
- package/dist/chunk-SNAMNKFH.js.map +0 -1
- package/dist/chunk-TWQSMUE6.js.map +0 -1
- package/dist/chunk-YG7BR76Y.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tailwind-preset.ts"],"names":[],"mappings":"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","file":"chunk-INMDLVUB.cjs","sourcesContent":["/**\n * @mieweb/ui Tailwind CSS Preset\n *\n * This preset provides the default theme configuration for @mieweb/ui components.\n * Consumers can extend or override these values in their own tailwind.config.js\n *\n * Usage:\n * ```js\n * // tailwind.config.js\n * module.exports = {\n * presets: [require('@mieweb/ui/tailwind-preset')],\n * theme: {\n * extend: {\n * colors: {\n * primary: {\n * 500: '#your-brand-color',\n * },\n * },\n * },\n * },\n * };\n * ```\n */\n\n/**\n * Safelist of classes used by @mieweb/ui components.\n *\n * **Tailwind CSS 3**: These must be safelisted because Tailwind may not detect\n * them when components are imported from node_modules.\n *\n * **Tailwind CSS 4**: The safelist is NOT needed if you add the `@source`\n * directive to your CSS. Add this line to your main CSS file:\n *\n * @source \"../node_modules/@mieweb/ui/dist\";\n *\n * This tells Tailwind 4 to scan @mieweb/ui's dist folder for class names,\n * replacing the need for a manual safelist.\n *\n * @deprecated For Tailwind CSS 4 users — use the `@source` directive instead.\n */\nexport const miewebUISafelist = [\n // EncounterVisit: report layout, expanding narratives, and coordinated vitals.\n 'z-40',\n 'sm:inset-8',\n 'sm:rounded-lg',\n 'top-11',\n 'max-w-[50%]',\n '[&_[data-slot=clinical-list-heading]]:border-0',\n '[&_[data-slot=clinical-list-heading]]:hidden',\n '[&_[data-slot=clinical-list-row]]:px-0',\n '[&>span]:text-wrap',\n '[&>span]:whitespace-normal',\n '[&::-webkit-details-marker]:hidden',\n 'h-auto',\n 'whitespace-normal',\n '[&>[data-slot=card-content]>section]:bg-transparent',\n '[&>[data-slot=card-content]>section]:border-0',\n '[&>[data-slot=card-content]>section]:px-0',\n '[&>[data-slot=card-content]]:p-0',\n '[&>[data-slot=card-content]]:space-y-2',\n '[&_.border-dashed]:bg-transparent',\n '[&_.border-dashed]:border-0',\n '[&_.border-dashed]:p-0',\n '[&_.border-dashed]:rounded-none',\n '[&_.min-w-64]:min-w-0',\n '[&_.pointer-events-none]:px-0',\n '[&_.pointer-events-none]:py-1.5',\n '[&_[data-slot=assessment-problem]>ul]:border-0',\n '[&_[data-slot=assessment-problem]>ul]:ms-0',\n '[&_[data-slot=assessment-problem]>ul]:ps-4',\n '[&_[data-slot=assessment-problem]]:border-0',\n '[&_[data-slot=assessment-problem]]:px-0',\n '[&_[data-slot=assessment-problem]]:rounded-none',\n '[&_[data-slot=rich-text-editor-toolbar]>*:nth-child(n+7)]:hidden',\n '[&_[data-slot=rich-text-editor-toolbar]>button]:h-11',\n '[&_[data-slot=rich-text-editor-toolbar]>button]:w-11',\n '[&_[data-slot=rich-text-editor-toolbar]]:bg-transparent',\n '[&_[data-slot=rich-text-editor-toolbar]]:border-0',\n '[&_[data-slot=rich-text-editor-toolbar]]:hidden',\n '[&_[data-slot=rich-text-editor-toolbar]]:p-0',\n '[&_[data-slot=rich-text-editor-toolbar]]:static',\n '[&_[role=textbox]]:bg-transparent',\n '[&_[role=textbox]]:break-words',\n '[&_[role=textbox]]:cursor-text',\n '[&_[role=textbox]]:leading-7',\n '[&_[role=textbox]]:min-h-11',\n '[&_[role=textbox]]:overflow-visible',\n '[&_[role=textbox]]:px-0',\n '[&_[role=textbox]]:py-1.5',\n '[&_[role=textbox]]:text-base',\n '[&_[role=textbox]]:text-foreground',\n '[&_[role=textbox]]:whitespace-pre-wrap',\n '[&_[role=textbox]_li]:my-0',\n '[&_[role=textbox]_ol]:my-1',\n '[&_[role=textbox]_p]:my-0',\n '[&_[role=textbox]_ul]:my-1',\n '[&_button]:min-h-11',\n '[&_button]:min-w-11',\n '[&_input]:min-h-11',\n '[&_select]:min-h-11',\n 'break-all',\n 'col-span-2',\n 'focus-within:[&_[data-slot=rich-text-editor-toolbar]]:flex',\n 'font-sans',\n 'gap-x-3',\n 'gap-y-3',\n 'max-h-48',\n 'mb-4',\n 'mt-6',\n 'overflow-visible',\n 'pt-3',\n 'rounded-none',\n 'shadow-none',\n 'sm:col-span-1',\n 'sm:px-3',\n 'sm:w-auto',\n 'space-y-1',\n 'space-y-3',\n 'top-[2.125rem]',\n 'underline-offset-2',\n // MediaFeed vertical snapping, bounded captions, fullscreen viewport and\n // SuperChat attachment previews for consumers that do not scan package code.\n 'h-[min(48rem,80dvh)]',\n 'h-dvh',\n 'sm:h-[calc(100dvh-2rem)]',\n 'max-h-[40%]',\n 'snap-y',\n 'snap-mandatory',\n 'snap-start',\n 'overscroll-contain',\n 'focus-visible:ring-inset',\n 'focus-visible:outline-none',\n 'focus-visible:ring-2',\n 'border-0',\n 'font-medium',\n 'gap-3',\n 'gap-4',\n 'items-start',\n 'mb-2',\n 'p-3',\n 'p-4',\n 'p-6',\n 'px-2',\n 'py-2',\n 'rounded-xl',\n 'shrink-0',\n 'sm:px-4',\n 'text-center',\n 'max-h-full',\n 'object-contain',\n 'rounded',\n 'underline-offset-4',\n 'max-h-72',\n 'max-w-full',\n 'mt-3',\n 'w-72',\n '[&_video]:h-full',\n '[&_video]:w-full',\n 'min-h-8',\n '[&_[data-slot=button-label]]:whitespace-normal',\n '[&>[data-slot=dropdown-item-label]]:min-w-0',\n '[&>[data-slot=dropdown-item-label]]:flex-1',\n // TranscriptPlayer: timeline grid, transcript/panel layout, overview window and playhead.\n 'grid-cols-[6.5rem_minmax(0,1fr)]',\n 'lg:grid-cols-[minmax(0,1fr)_18rem]',\n '-top-5',\n 'min-w-40',\n 'h-80',\n 'dark:bg-primary-950/40',\n 'ring-inset',\n 'ring-foreground',\n 'ring-foreground/70',\n 'aria-pressed:bg-primary-50',\n 'aria-pressed:text-primary-800',\n 'dark:aria-pressed:bg-primary-950',\n 'dark:aria-pressed:text-primary-200',\n 'mx-9',\n // EmailEditor: block frames, innermost-hover toolbar reveal, email-content\n // spacing in the canvas, and the stacked/side-by-side panel layout.\n '[[data-slot=email-editor-block]:hover:not(:has([data-slot=email-editor-block]:hover))>&]:opacity-100',\n 'outline-offset-[-2px]',\n 'outline',\n 'outline-2',\n 'hover:outline-1',\n 'hover:outline-dashed',\n 'hover:outline-primary-300',\n 'focus-within:outline-1',\n 'focus-within:outline-dashed',\n 'focus-within:outline-primary-300',\n '-top-3.5',\n 'min-h-[640px]',\n '[&_a]:pointer-events-none',\n '[&_a]:underline',\n '[&_p]:my-3',\n '[&_ol]:list-decimal',\n '[&_ol]:ps-6',\n '[&_ul]:list-disc',\n '[&_ul]:ps-6',\n 'w-24',\n 'lg:w-auto',\n 'lg:w-64',\n 'lg:w-80',\n 'lg:flex-row',\n 'lg:grid',\n 'lg:overflow-visible',\n 'lg:pb-0',\n 'lg:border-e',\n 'lg:border-s',\n 'lg:border-b-0',\n 'lg:border-t-0',\n // CaseManagementHeader — logical spacing, details grid, responsive\n // built-in actions (icon-only below md):\n '-ms-2',\n 'gap-x-10',\n 'hidden',\n 'max-w-[60%]',\n 'md:hidden',\n 'md:inline-flex',\n // Assessment nested order toolbars suppress the concern-row toolbar for\n // fine pointers while an order toolbar is active.\n 'pointer-fine:group-has-[[data-order-id]:hover]:pointer-events-none',\n 'pointer-fine:group-has-[[data-order-id]:hover]:opacity-0',\n 'pointer-fine:group-has-[[data-order-id]:focus-within]:pointer-events-none',\n 'pointer-fine:group-has-[[data-order-id]:focus-within]:opacity-0',\n // ConditionEditor coding rows switch from a stacked mobile layout to a\n // shared column grid at the small breakpoint.\n 'grid-cols-[minmax(8rem,1.1fr)_minmax(7rem,0.9fr)_minmax(10rem,1.5fr)_5.5rem_2.5rem]',\n 'sm:grid-cols-[minmax(8rem,1.1fr)_minmax(7rem,0.9fr)_minmax(10rem,1.5fr)_5.5rem_2.5rem]',\n 'sm:!grid',\n 'border-border/70',\n '[&_[data-slot=radio-group-items]]:gap-2',\n 'sm:[&_[data-slot=radio-group-legend]]:sr-only',\n // PatientHeader showCountBadges={false} — hides CountBadge roots in the\n // actions slot (ui#367):\n '[&_[data-slot=count-badge-root]]:hidden',\n // OzwellChat's compact widget shell and portaled menus. These arbitrary\n // utilities must remain available to Tailwind 3 consumers that do not scan\n // package source files.\n 'max-w-[min(160px,44vw)]',\n 'max-w-[190px]',\n 'max-w-[min(248px,calc(100vw-24px))]',\n 'max-w-[min(260px,calc(100vw-24px))]',\n 'rounded-[10px]',\n 'min-h-[30px]',\n 'animate-ozwell-message-flare',\n 'grid-cols-[22px_minmax(0,1fr)]',\n 'h-[22px]',\n 'w-[22px]',\n 'text-[11px]',\n 'leading-[1.35]',\n 'py-[7px]',\n '[&_[data-slot=\"ai-chat\"]]:min-h-0',\n '[&_[data-slot=\"ai-chat-messages\"]]:min-h-0',\n '[&_[data-slot=\"ai-tool-call\"]]:p-2',\n '[&_[data-slot=\"ai-tool-icon\"]]:h-7',\n '[&_[data-slot=\"ai-tool-icon\"]]:w-7',\n '[&_[data-slot=\"ai-tool-content\"]]:text-sm',\n '[&_[data-slot=\"ai-tool-parameters\"]]:text-xs',\n '[&_[data-slot=\"ai-tool-result\"]]:text-xs',\n '[&_[data-slot=\"ai-message-thinking\"]_button]:px-2.5',\n '[&_[data-slot=\"ai-message-thinking\"]_button]:py-[7px]',\n '[&_[data-slot=\"ai-message\"].flex-row-reverse_[data-slot=\"ai-message-avatar\"]]:hidden',\n '[&_[data-slot=toast-message]]:text-xs',\n '[&_[data-slot=toast-message]]:leading-[1.35]',\n '[&_[data-slot=toast]]:max-w-none',\n '[&_[data-slot=toast]]:min-w-0',\n '[&_[data-slot=toast]]:rounded-lg',\n '[&_[data-slot=toast]]:p-2',\n '[&_[data-slot=toast]]:shadow-none',\n // Media stack (MediaEditor / TranscriptView / MediaPlayer) — opacity-modifier\n // and state variants introduced with the media components (ui#323 finding):\n 'bg-muted/20',\n 'bg-primary-50',\n 'bg-primary-500/20',\n 'bg-primary-500/40',\n 'bg-success/15',\n 'bg-warning/20',\n 'bg-warning/40',\n 'border-primary-600',\n 'border-warning/50',\n 'dark:bg-primary-950',\n 'hover:bg-destructive/20',\n 'hover:bg-muted',\n 'hover:bg-muted/70',\n 'hover:bg-primary-500/15',\n 'hover:bg-primary-500/30',\n 'hover:bg-success/25',\n 'hover:text-destructive',\n // MediaEditor media-surface height cap: the small-screen `dvh` cap, and the\n // md variants that hand desktop back its original percentage cap. Purging\n // these uncaps the player on a phone, which is the bug the cap exists for.\n 'max-h-[55dvh]',\n 'md:max-h-[50%]',\n 'md:max-h-none',\n 'outline-destructive',\n 'outline-primary-500',\n 'outline-warning',\n 'text-primary-500',\n // Semantic colors\n 'border-border',\n 'border-input',\n 'ring-ring',\n 'bg-background',\n 'bg-card',\n 'bg-muted',\n 'bg-primary',\n 'bg-primary-800',\n 'dark:bg-primary-500',\n 'checked:border-primary-500',\n 'dark:checked:border-primary-800',\n 'bg-success',\n 'bg-warning',\n 'bg-destructive',\n 'bg-info',\n // Ozwell brand accent (Hey Ozwell voice components)\n 'bg-ozwell',\n 'hover:bg-ozwell',\n 'active:bg-ozwell',\n 'text-ozwell',\n 'text-ozwell-foreground',\n 'border-ozwell',\n 'focus-visible:ring-ozwell',\n 'text-foreground',\n 'text-card-foreground',\n 'text-muted-foreground',\n 'text-primary',\n 'text-primary-foreground',\n 'text-success',\n 'text-success-foreground',\n 'text-warning',\n 'text-warning-foreground',\n 'text-destructive',\n 'text-destructive-foreground',\n 'text-info',\n 'text-info-foreground',\n 'focus:ring-ring',\n 'focus:ring-primary',\n 'focus:border-transparent',\n 'focus:ring-destructive',\n 'border-primary',\n 'border-destructive',\n 'border-success',\n 'focus:ring-success/20',\n 'focus:ring-destructive/20',\n 'opacity-0',\n // Drag & drop (useDragReorder / dragIndicatorClasses)\n 'opacity-40',\n 'cursor-grab',\n 'active:cursor-grabbing',\n 'shadow-[inset_0_2px_0_0_var(--color-primary-500,#3b82f6)]',\n 'shadow-[inset_0_-2px_0_0_var(--color-primary-500,#3b82f6)]',\n 'group-hover:opacity-100',\n 'focus:opacity-100',\n 'has-[[data-slot=superchat-nitro-table]]:w-full',\n 'has-[[data-slot=superchat-nitro-table]]:max-w-full',\n // RowActionToolbar (per-row action toolbars) reveal/overlay. These use the\n // built-in `pointer-fine` variant, named `group/order` scope, and the\n // `.wcdv-tr` (datavis grid row) arbitrary variant — none of which TW3\n // consumers scan from node_modules, so the toolbar would stay hidden\n // without safelisting them.\n 'pointer-fine:absolute',\n 'pointer-fine:top-1/2',\n 'pointer-fine:right-0',\n 'pointer-fine:-translate-y-1/2',\n 'pointer-fine:top-1.5',\n 'pointer-fine:right-1.5',\n 'pointer-fine:bg-card',\n 'pointer-fine:border-border',\n 'pointer-fine:rounded-md',\n 'pointer-fine:border',\n 'pointer-fine:p-0.5',\n 'pointer-fine:shadow-sm',\n 'pointer-fine:pointer-events-none',\n 'pointer-fine:opacity-0',\n 'rounded-md',\n 'border',\n 'p-0.5',\n 'shadow-sm',\n 'focus-within:pointer-events-auto',\n 'focus-within:opacity-100',\n 'group-hover:pointer-events-auto',\n 'group-focus-within:pointer-events-auto',\n 'group-focus-within:opacity-100',\n 'group-focus:pointer-events-auto',\n 'group-focus:opacity-100',\n 'group-hover/order:pointer-events-auto',\n 'group-hover/order:opacity-100',\n 'group-focus-within/order:pointer-events-auto',\n 'group-focus-within/order:opacity-100',\n 'group-focus/order:pointer-events-auto',\n 'group-focus/order:opacity-100',\n '[.wcdv-tr:hover_&]:pointer-events-auto',\n '[.wcdv-tr:hover_&]:opacity-100',\n '[.wcdv-tr:focus-within_&]:pointer-events-auto',\n '[.wcdv-tr:focus-within_&]:opacity-100',\n // Markdown SurveyBlock\n 'accent-primary-500',\n // Opacity-modifier variants for semantic colors used by components\n 'bg-background/60',\n 'bg-background/80',\n 'bg-background/90',\n 'bg-background/95',\n 'bg-card/80',\n 'bg-destructive/5',\n 'bg-destructive/10',\n 'bg-foreground/50',\n 'bg-info/10',\n 'bg-muted/10',\n 'bg-muted/30',\n 'bg-muted/50',\n 'bg-primary/5',\n 'bg-primary/10',\n 'bg-success/10',\n 'bg-warning/10',\n 'border-border/80',\n 'border-destructive/20',\n 'border-destructive/30',\n 'border-destructive/50',\n 'border-info/30',\n 'border-muted-foreground/25',\n 'border-muted-foreground/40',\n 'border-primary/30',\n 'border-primary/50',\n 'border-success/30',\n 'border-success/50',\n 'border-warning/30',\n 'hover:bg-destructive/10',\n 'hover:bg-muted/10',\n 'hover:bg-muted/20',\n 'hover:bg-muted/50',\n 'hover:bg-muted/80',\n 'hover:bg-primary/5',\n 'hover:bg-primary/10',\n 'hover:bg-primary/20',\n 'hover:bg-primary/90',\n 'hover:border-border/80',\n 'hover:border-muted-foreground/50',\n 'hover:text-destructive/80',\n 'hover:text-primary/80',\n 'text-muted-foreground/30',\n 'text-muted-foreground/40',\n 'text-muted-foreground/50',\n 'text-muted-foreground/60',\n 'text-muted-foreground/70',\n 'text-primary/80',\n 'text-primary-foreground/90',\n 'ring-primary',\n 'ring-2',\n 'ring-offset-2',\n // Grid classes for QuickAction and responsive layouts\n 'grid-cols-1',\n 'grid-cols-2',\n 'grid-cols-3',\n 'grid-cols-4',\n 'grid-cols-6',\n 'sm:grid-cols-1',\n 'sm:grid-cols-2',\n 'sm:grid-cols-3',\n 'sm:grid-cols-4',\n 'sm:grid-cols-6',\n 'md:grid-cols-2',\n 'md:grid-cols-3',\n 'md:grid-cols-4',\n 'lg:grid-cols-2',\n 'lg:grid-cols-3',\n 'lg:grid-cols-4',\n // ── Expanded Color Scales ────────────────────────────────────────\n // Secondary scale\n 'bg-secondary',\n 'bg-secondary-50',\n 'bg-secondary-100',\n 'bg-secondary-500',\n 'bg-secondary-600',\n 'text-secondary',\n 'text-secondary-500',\n 'text-secondary-600',\n 'text-secondary-700',\n 'text-secondary-foreground',\n 'border-secondary',\n 'border-secondary-200',\n // Neutral scale\n 'bg-neutral-50',\n 'bg-neutral-100',\n 'bg-neutral-200',\n 'bg-neutral-300',\n 'bg-neutral-800',\n 'bg-neutral-900',\n 'text-neutral-500',\n 'text-neutral-600',\n 'text-neutral-700',\n 'text-neutral-400',\n 'border-neutral-200',\n 'border-neutral-300',\n 'dark:bg-neutral-700',\n 'dark:bg-neutral-800',\n 'dark:text-neutral-300',\n 'dark:text-neutral-400',\n 'dark:border-neutral-600',\n 'dark:border-neutral-700',\n // Indigo (StripeBadge)\n 'bg-indigo-500/10',\n 'dark:bg-indigo-400/20',\n 'text-indigo-700',\n 'dark:text-indigo-300',\n 'border-indigo-500/30',\n 'hover:text-indigo-700',\n 'dark:hover:text-indigo-300',\n // Destructive scale\n 'bg-destructive-50',\n 'bg-destructive-100',\n 'bg-destructive-500',\n 'bg-destructive-600',\n 'bg-destructive-700',\n 'hover:bg-destructive-800',\n 'text-destructive-500',\n 'text-destructive-600',\n 'text-destructive-700',\n 'text-destructive-800',\n 'text-destructive-900',\n 'border-destructive-200',\n 'border-destructive-300',\n 'dark:bg-destructive-900',\n 'dark:bg-destructive-950',\n 'dark:text-destructive-300',\n 'dark:text-destructive-400',\n // Success scale\n 'bg-success-50',\n 'bg-success-100',\n 'bg-success-500',\n 'bg-success-600',\n 'bg-success-700',\n 'hover:bg-success-800',\n 'text-success-500',\n 'text-success-600',\n 'text-success-700',\n 'text-success-800',\n 'text-success-900',\n 'border-success-200',\n 'border-success-300',\n 'dark:bg-success-900',\n 'dark:bg-success-950',\n 'dark:text-success-300',\n 'dark:text-success-400',\n // Warning scale\n 'bg-warning-50',\n 'bg-warning-100',\n 'bg-warning-500',\n 'bg-warning-600',\n 'bg-warning-700',\n 'text-warning-900',\n 'text-warning-500',\n 'text-warning-600',\n 'text-warning-700',\n 'text-warning-800',\n 'text-warning-900',\n 'border-warning-200',\n 'border-warning-300',\n 'dark:bg-warning-900',\n 'dark:bg-warning-950',\n 'dark:text-warning-200',\n 'dark:text-warning-300',\n 'dark:text-warning-400',\n // Info scale\n 'bg-info-50',\n 'bg-info-100',\n 'bg-info-500',\n 'bg-info-600',\n 'text-info-500',\n 'text-info-600',\n 'text-info-700',\n 'text-info-800',\n 'text-info-900',\n 'border-info-200',\n 'border-info-300',\n 'dark:bg-info-900',\n 'dark:bg-info-950',\n 'dark:text-info-300',\n 'dark:text-info-400',\n // Chart colors\n 'bg-chart-1',\n 'bg-chart-2',\n 'bg-chart-3',\n 'bg-chart-4',\n 'bg-chart-5',\n 'text-chart-1',\n 'text-chart-2',\n 'text-chart-3',\n 'text-chart-4',\n 'text-chart-5',\n 'border-chart-1',\n 'border-chart-2',\n 'border-chart-3',\n 'border-chart-4',\n 'border-chart-5',\n // Switch component\n 'bg-primary-500',\n // Primary scale (a11y contrast)\n 'text-primary-800',\n 'dark:text-primary-300',\n // Text decoration\n 'underline',\n 'h-5',\n 'w-9',\n 'h-6',\n 'w-11',\n 'h-7',\n 'w-14',\n 'h-4',\n 'w-4',\n 'w-5',\n 'w-6',\n 'translate-x-0.5',\n 'translate-x-4',\n 'translate-x-5',\n 'translate-x-7',\n // RTL primitives batch: Badge/Input/Label icon+required markers, Text\n // logical alignment, Switch thumb travel (LTR data-state pairs + rtl mirror)\n 'me-1',\n 'ms-0.5',\n 'ms-1',\n 'text-start',\n 'text-end',\n 'data-[state=checked]:translate-x-4',\n 'data-[state=checked]:translate-x-5',\n 'data-[state=checked]:translate-x-7',\n 'rtl:-translate-x-0.5',\n 'rtl:data-[state=checked]:-translate-x-4',\n 'rtl:data-[state=checked]:-translate-x-5',\n 'rtl:data-[state=checked]:-translate-x-7',\n // RTL layout+nav batch: AppHeader alignment, Card accent/badge positions,\n // Sheet sides, Sidebar off-canvas + paddings, Table cell alignment\n 'me-auto',\n 'ms-auto',\n '-end-1',\n 'start-0',\n 'end-0',\n 'ps-4',\n // Badge removable-chip paddings (ps/pe compound variants)\n 'ps-2.5',\n 'pe-0.5',\n 'pe-1',\n 'pe-1.5',\n 'start-2',\n 'end-2',\n 'border-e',\n 'border-s',\n 'me-3',\n 'ms-2',\n 'ps-2',\n '-me-2',\n '-end-3',\n 'start-3',\n 'pe-4',\n 'ps-10',\n 'rtl:translate-x-full',\n 'translate-x-0',\n '-translate-x-full',\n '[&:has([role=checkbox])]:pe-0',\n // RTL messaging+AI batch: bubble tails, composer borders/paddings, corner\n // pins (AIChatModal/AttachmentPicker/MessageList), read-receipt avatar stack\n 'end-1',\n 'end-3',\n 'end-4',\n 'start-4',\n 'me-2',\n 'pe-10',\n 'border-s-4',\n 'rounded-ee-md',\n 'rounded-es-md',\n 'rtl:space-x-reverse',\n // RTL DocScanner+media batch: detection-overlay corner pins, MediaEditor\n // speed-marker accent/pill, ScriptPanel border, transcript alignment\n '-end-0.5',\n '-start-0.5',\n '-start-1',\n 'end-0.5',\n 'rounded-ee',\n 'rounded-ee-lg',\n 'rounded-es',\n 'rounded-es-lg',\n 'rounded-se',\n 'rounded-se-lg',\n 'rounded-ss',\n 'rounded-ss-lg',\n 'border-e-4',\n 'border-s-[3px]',\n 'border-s-warning',\n 'border-s-primary-500',\n 'ps-1.5',\n '-start-px',\n 'md:border-e',\n // RTL billing+invoices batch: invoice tables/headers, search icon inset,\n // button spinners\n '-ms-1',\n 'ps-9',\n 'sm:text-end',\n // RTL services+employer batch: wizard steps, accordion insets, provider\n // selectors, service cards/badges\n 'border-s-0',\n 'border-s-2',\n 'ms-1.5',\n 'ms-3',\n 'ms-4',\n 'ms-6',\n 'pe-3',\n 'pe-8',\n 'pe-16',\n 'ps-0',\n 'ps-3',\n 'ps-7',\n 'ps-8',\n 'rounded-s-md',\n 'rounded-e-md',\n 'bg-right',\n 'rtl:bg-left',\n // RTL scheduling+clinical batch: calendar insets, timeline dots, order forms\n '-start-5',\n 'border-e-0',\n 'md:border-s',\n 'ms-2.5',\n 'pe-2',\n 'ps-1',\n 'ps-6',\n 'rounded-s-none',\n 'start-1',\n 'first:border-s-0',\n 'rtl:origin-right',\n // RTL Phase 2: MegaMenu panel transform origin mirror\n 'rtl:origin-top-right',\n // RTL Phase 2: Toast slide-in animation + RTL mirror\n 'animate-slide-in-right',\n 'rtl:animate-slide-in-left',\n // RTL Phase 2 transforms batch: LoadingPage bar/shimmer + RTL mirrors,\n // BookingDialog consent-switch thumb mirror\n 'animate-loading-bar',\n 'rtl:animate-loading-bar-rtl',\n 'animate-shimmer',\n 'rtl:animate-shimmer-rtl',\n 'rtl:-translate-x-5',\n // Motion CSS fallbacks — applied by `<Animated>` only when no motion runtime\n // is active, so the scanner never sees them on a literal element.\n 'animate-fade-in',\n // Scale origin for anchored menus, picked at runtime from the post-flip side.\n 'origin-top',\n 'origin-bottom',\n 'origin-left',\n 'origin-right',\n // RTL Phase 2: directional icon mirroring (chevrons/arrows)\n 'rtl:-scale-x-100',\n // RTL Phase 5: YearTimeline now-marker centering mirrors\n 'rtl:translate-x-1/2',\n 'rtl:translate-x-px',\n // RTL shell/misc batch: command palette, site chrome, superchat, toolbars\n 'end-12',\n 'md:end-4',\n 'md:start-auto',\n 'md:text-start',\n 'me-1.5',\n 'pe-12',\n 'pointer-fine:end-0',\n 'pointer-fine:end-1.5',\n 'ps-11',\n 'ps-12',\n 'rounded-e-lg',\n 'rounded-s-lg',\n 'sm:text-start',\n 'start-5',\n // SchedulePicker / overflow handling\n 'overflow-x-auto',\n 'overflow-hidden',\n // Scrollable floating panels (DateInput calendar, Autocomplete, Select, Table, ScrollArea, …)\n 'overflow-auto',\n // Select component\n 'truncate',\n // AIReconciliationPanel\n 'ring-primary-200',\n 'dark:ring-primary-900',\n 'border-primary-300',\n 'dark:border-primary-700',\n 'bg-primary-50/60',\n 'dark:bg-primary-950/30',\n 'text-primary-700',\n 'dark:text-primary-400',\n 'border-border/60',\n 'bg-muted/40',\n 'bg-muted/60',\n 'divide-border',\n 'max-h-[60vh]',\n 'bg-success-100',\n 'dark:bg-success-900/30',\n 'bg-amber-100',\n 'bg-amber-200',\n 'text-amber-700',\n 'text-amber-800',\n 'text-amber-200',\n 'text-amber-300',\n 'dark:bg-amber-900/30',\n 'dark:bg-amber-900/40',\n 'dark:text-amber-200',\n 'dark:text-amber-300',\n 'ring-1',\n 'last:border-b-0',\n 'border-dashed',\n 'text-[11px]',\n // CodeLookup memory picklist (frequently-used pick count)\n 'text-primary-600',\n // CodeLookup coding-system toggle (segmented radiogroup pills)\n 'flex',\n 'flex-wrap',\n 'items-center',\n 'gap-1',\n 'rounded-full',\n 'px-2.5',\n 'py-0.5',\n 'text-xs',\n 'transition-colors',\n 'focus:ring-2',\n 'focus:outline-none',\n 'border-primary-800',\n 'dark:border-primary-400',\n 'dark:bg-primary-400',\n 'dark:text-primary-950',\n 'text-white',\n 'hover:text-foreground',\n // CollabStatus debug panel (fixed-width portal, definition grid, log grid)\n 'w-[26rem]',\n 'max-w-[calc(100vw-1rem)]',\n 'grid-cols-[auto_1fr]',\n 'grid-cols-[auto_auto_1fr]',\n // SuperChat (participant chips, unread badge, active/hover states)\n 'bg-primary-100',\n 'bg-primary-600',\n 'hover:bg-primary-700',\n 'dark:bg-primary-900/40',\n 'text-primary-900',\n 'dark:text-primary-100',\n 'dark:text-primary-200',\n 'hover:border-primary-300',\n 'focus:border-primary-500',\n 'focus:ring-primary-500',\n 'text-[10px]',\n // SuperChat message actions (footer bar + sticky overflow menu) — arbitrary\n // touch-pointer variants and stacking above rich content (z-50 internals),\n // plus the standard utilities of the sticky wrapper and its footer handoff\n // (`invisible` keeps the hidden trigger out of the tab order).\n '[@media(pointer:coarse)]:opacity-100',\n 'z-[60]',\n 'z-10',\n 'invisible',\n 'transition-opacity',\n 'bottom-2',\n 'mt-auto',\n // Dropdown submenu flyout — preferred width clamped to the viewport.\n 'min-w-[min(10rem,calc(100vw-1rem))]',\n // SuperChat jump-to-bottom (floating scroll-anchoring affordance) and the\n // thread viewport wrapper / content sizer it positions against.\n 'bottom-3',\n 'z-20',\n 'bg-white',\n 'p-2',\n 'shadow-lg',\n 'space-y-4',\n 'hover:bg-neutral-50',\n 'hover:text-neutral-800',\n 'focus-visible:ring-primary-500',\n 'dark:hover:bg-neutral-700',\n 'dark:hover:text-neutral-100',\n // SuperChat mermaid diagram wrapper — arbitrary variants applied to the\n // injected <svg> so the diagram sizes naturally instead of collapsing.\n '[&_svg]:h-auto',\n '[&_svg]:max-w-none',\n // AI pills — CollapsiblePill / MCPToolCall arbitrary utilities\n 'rounded-[8px]',\n 'rounded-[10px]',\n 'px-[11px]',\n 'max-h-0',\n 'max-h-[500px]',\n 'transition-[max-height,opacity]',\n 'overflow-y-auto',\n 'focus-visible:ring-ring',\n 'focus-visible:ring-offset-1',\n // ThinkingBlock (violet reasoning pill)\n 'bg-violet-50',\n 'bg-violet-500',\n 'border-violet-200',\n 'text-violet-600',\n 'hover:bg-violet-100',\n 'focus-visible:ring-violet-500',\n 'animate-pulse',\n 'text-[13px]',\n 'dark:bg-violet-400',\n 'dark:bg-violet-950/30',\n 'dark:border-violet-700',\n 'dark:border-violet-800',\n 'dark:hover:bg-violet-950/50',\n 'dark:text-violet-400',\n // MCPToolCall status pills (green success / red error kept the same)\n 'bg-green-50',\n 'border-green-200',\n 'text-green-700',\n 'dark:bg-green-900/20',\n 'dark:border-green-800',\n 'dark:text-green-300',\n 'bg-red-50',\n 'border-red-200',\n 'text-red-700',\n 'dark:bg-red-900/20',\n 'dark:border-red-800',\n 'dark:text-red-300',\n 'bg-neutral-100',\n 'border-neutral-200',\n 'text-neutral-600',\n 'text-neutral-400',\n 'dark:bg-neutral-800',\n 'dark:border-neutral-700',\n 'dark:text-neutral-400',\n 'bg-primary-50',\n 'border-primary-200',\n 'text-primary-800',\n 'dark:bg-primary-900/20',\n 'dark:border-primary-800',\n 'dark:text-primary-300',\n 'opacity-60',\n // Kbd / KeyboardShortcutsOverlay — key chips and shortcut rows\n 'px-1.5',\n 'font-mono',\n 'mx-0.5',\n 'list-none',\n // FilterSummaryBar — filtered-grid summary bar and clear action\n 'py-1',\n 'h-2.5',\n 'w-2.5',\n 'dark:hover:text-primary-200',\n 'focus-visible:ring-offset-2',\n // Sparkline — bar sizing, gaps, and hover tints (bg-primary-500/40 and\n // focus-visible:ring-offset-1 are already safelisted above)\n 'min-w-[3px]',\n 'gap-[2px]',\n 'hover:bg-primary-500/70',\n 'hover:bg-primary-500/90',\n 'hover:bg-muted-foreground/20',\n 'items-end',\n 'w-16',\n 'pb-0.5',\n 'leading-tight',\n 'tracking-wider',\n 'rounded-sm',\n 'cursor-pointer',\n // ClampedText — collapsed clamp levels and fade gradient\n 'line-clamp-2',\n 'line-clamp-3',\n 'line-clamp-4',\n 'line-clamp-5',\n 'line-clamp-6',\n 'line-clamp-7',\n 'line-clamp-8',\n 'bg-gradient-to-t',\n 'from-card',\n 'from-background',\n 'to-transparent',\n 'break-words',\n 'whitespace-pre-wrap',\n 'hover:underline',\n // FreshnessBadge / FreshnessDot — tinted level chips and dots\n 'dark:bg-success/20',\n 'bg-warning/15',\n 'dark:bg-warning/20',\n 'dark:text-warning',\n 'dark:bg-destructive/20',\n 'bg-muted-foreground/50',\n 'h-2',\n 'w-2',\n 'inline-block',\n 'dark:text-success',\n 'dark:text-destructive',\n // Accordion — grid-rows height animation (arbitrary values TW3 won't scan)\n 'transition-[grid-template-rows]',\n 'grid-rows-[0fr]',\n 'grid-rows-[1fr]',\n 'disabled:opacity-50',\n 'disabled:pointer-events-none',\n 'divide-y',\n 'first:rounded-t-lg',\n 'focus-visible:outline-none',\n 'focus-visible:ring-inset',\n 'gap-3',\n 'grid',\n 'hover:bg-muted/60',\n 'last:rounded-b-lg',\n 'pb-4',\n 'px-5',\n 'py-4',\n 'rotate-180',\n 'transition-transform',\n // GlossaryTooltip hover card — trigger reset, gradient header, chips, footer links\n '[font:inherit]',\n 'appearance-none',\n 'bg-transparent',\n 'bg-white/15',\n 'block',\n 'border-0',\n 'border-t',\n 'dark:hover:text-primary-400',\n 'font-bold',\n 'font-medium',\n 'font-normal',\n 'gap-1.5',\n 'h-3',\n 'hover:border-primary-400',\n 'hover:text-primary-700',\n 'hover:text-primary-800',\n 'inline',\n 'inline-flex',\n 'items-start',\n 'leading-relaxed',\n 'leading-snug',\n 'mb-1',\n 'mt-2',\n 'normal-case',\n 'outline-none',\n 'p-0',\n 'px-2',\n 'text-inherit',\n 'text-white/70',\n 'tracking-normal',\n 'w-3',\n 'z-50',\n\n // SourceTip hover card — trigger affordance, gradient header, ring, scroll cap\n 'cursor-help',\n 'hover:text-primary-500',\n 'dark:hover:text-primary-300',\n 'w-80',\n 'decoration-dashed',\n 'decoration-primary-400/70',\n 'bg-primary-400',\n 'underline-offset-4',\n 'bg-gradient-to-br',\n 'from-primary-700',\n 'to-primary-600',\n 'ring-black/5',\n 'dark:ring-white/10',\n 'ring-1',\n 'overflow-y-auto',\n 'focus-visible:ring-2',\n 'max-h-52',\n 'text-primary-100/90',\n 'text-[10px]',\n 'text-[11px]',\n 'text-[13px]',\n 'px-3.5',\n 'py-2.5',\n 'mt-2.5',\n 'pt-2.5',\n 'mt-0.5',\n 'mt-1.5',\n 'h-1.5',\n 'w-1.5',\n 'border-dashed',\n 'shadow-xl',\n // CopyButton — inline copy-to-clipboard button\n 'p-1',\n\n // ReadingProgressBar — fixed top rail and width-transition fill\n 'inset-x-0',\n 'h-1',\n 'transition-[width]',\n 'duration-150',\n\n // Sidebar — mobile follows browser chrome; desktop animates inline size only\n 'h-[100dvh]',\n 'transition-[width,min-width]',\n\n // SectionSpyNav — sticky rail, brand tone whites, sliding underline\n 'sticky',\n 'top-0',\n 'z-30',\n 'bg-primary-900',\n 'bg-card/95',\n 'backdrop-blur',\n 'gap-4',\n 'px-4',\n 'shrink-0',\n 'tracking-wide',\n 'uppercase',\n 'text-white/85',\n '[scrollbar-width:none]',\n '[&::-webkit-scrollbar]:hidden',\n 'rounded',\n 'py-2',\n 'whitespace-nowrap',\n // Button label — keep SVG icons passed as children inline (preflight\n // makes SVGs block-level, which would stack them above the label text)\n '[&_svg]:inline-block',\n '[&_svg]:align-middle',\n // Button `effect` variants (sheen/orbit) lift the button on hover; the\n // mie-fx-* classes themselves are plain CSS in styles/effects.css.\n 'hover:-translate-y-0.5',\n // Button outline variant — dark-mode hover/active fill with lightened\n // label for WCAG AA contrast (issue #511).\n 'dark:hover:bg-primary-950',\n 'dark:active:bg-primary-900',\n 'dark:active:text-primary-100',\n // VideoCard hover-preview progress bar rounds its leading-fill edge.\n 'rounded-e-full',\n 'hover:text-white',\n 'h-0.5',\n 'transition-[left,width]',\n 'duration-300',\n 'hover:bg-white/10',\n 'h-3.5',\n 'w-3.5',\n // CustomizableDashboard — responsive column grid, flattened columns,\n // drag handle, drop placeholder\n 'grid-cols-1',\n 'md:grid-cols-2',\n 'lg:grid-cols-3',\n 'max-lg:contents',\n 'max-md:hidden',\n 'min-h-16',\n 'min-h-32',\n 'cursor-grab',\n 'active:cursor-grabbing',\n 'touch-none',\n 'opacity-40',\n 'group-hover/portlet:opacity-100',\n 'focus-visible:opacity-100',\n '[@media(hover:none)]:opacity-100',\n 'group/portlet',\n '[&>:nth-child(2)]:ms-auto',\n 'flex-nowrap',\n 'bg-card/80',\n 'border-dashed',\n 'border-2',\n 'bg-primary-500/10',\n // Modules/Views — accentClasses resolves an Accent token name to a wash, a\n // border and a solid marker, so none of them appear literally in a\n // consumer's own source. The wash and marker classes are listed elsewhere in\n // this file; these borders and the neutral marker are not.\n 'border-primary-500/40',\n 'border-success/40',\n 'border-warning/40',\n 'border-destructive/40',\n 'border-info/40',\n 'bg-muted-foreground',\n 'gap-0.5',\n 'p-0.5',\n // Floating labels (labelVariant=\"floating\" on Input / Textarea / DateInput /\n // Select, ui#406). The peer-* float states, arbitrary font size, and the\n // taller field heights/paddings never appear in consumer markup, so TW3\n // would purge them. (The bare `peer` marker class generates no CSS and\n // needs no safelisting.)\n 'placeholder:text-transparent',\n 'relative',\n 'h-11',\n 'h-14',\n 'h-16',\n 'pt-4',\n 'pt-5',\n 'pt-6',\n 'pt-7',\n 'pb-1',\n 'pb-1.5',\n 'pb-2',\n 'min-h-[76px]',\n 'min-h-[96px]',\n 'min-h-[120px]',\n // Textarea auto-grow default (ui#632) — single-line baselines matching the\n // Input heights, tuned padding so one line + padding + borders equals the\n // Input size token, floating-label single-line minimums, and the resize\n // handle variants. (min-h-8 is safelisted above.)\n 'min-h-10',\n 'min-h-12',\n 'py-[5px]',\n 'py-[7px]',\n 'py-[9px]',\n 'min-h-[50px]',\n 'min-h-[58px]',\n 'min-h-[66px]',\n 'resize-none',\n 'resize-y',\n 'resize-x',\n 'resize',\n // TextAreaRich (ui#639) — chromeless RichTextEditor single-line baseline\n // and the Textarea-matched focus ring on the wrapper.\n 'min-h-[38px]',\n 'focus-within:ring-2',\n 'focus-within:ring-ring',\n 'focus-within:border-transparent',\n // Textarea compat (ui#649) — error styling on the focused rich surface.\n 'focus-within:ring-destructive',\n 'focus-within:border-destructive',\n // Floating-group field boxes (labelVariant=\"floating\" on RadioGroup /\n // CheckboxGroup) share the floating input heights as min-heights. sr-only\n // visually hides the group legend (and the hideLabel input label) while\n // keeping it accessible. mb-1.5 spaces stacked legends (legends ignore\n // fieldset flex gap) and mt-1 spaces floating-group descriptions.\n 'min-h-11',\n 'min-h-14',\n 'min-h-16',\n 'sr-only',\n 'mb-1.5',\n 'mt-1',\n 'absolute',\n 'pointer-events-none',\n 'select-none',\n 'transition-all',\n 'transition-[min-height,padding]',\n 'duration-200',\n 'ease-out',\n 'top-0.5',\n 'top-1',\n 'top-1.5',\n 'top-2',\n 'top-3',\n 'top-4',\n 'top-5',\n 'top-1/2',\n '-translate-y-1/2',\n 'translate-y-0',\n 'text-sm',\n 'text-base',\n 'text-lg',\n 'text-[0.65rem]',\n 'peer-focus:top-0.5',\n 'peer-focus:top-1',\n 'peer-focus:top-1.5',\n 'peer-focus:top-2',\n 'peer-focus:text-[0.65rem]',\n 'peer-focus:text-xs',\n 'peer-focus:text-sm',\n 'peer-focus:translate-y-0',\n 'peer-[:not(:placeholder-shown)]:top-0.5',\n 'peer-[:not(:placeholder-shown)]:top-1',\n 'peer-[:not(:placeholder-shown)]:top-1.5',\n 'peer-[:not(:placeholder-shown)]:top-2',\n 'peer-[:not(:placeholder-shown)]:text-[0.65rem]',\n 'peer-[:not(:placeholder-shown)]:text-xs',\n 'peer-[:not(:placeholder-shown)]:text-sm',\n 'peer-[:not(:placeholder-shown)]:translate-y-0',\n 'peer-autofill:top-0.5',\n 'peer-autofill:top-1',\n 'peer-autofill:top-1.5',\n 'peer-autofill:top-2',\n 'peer-autofill:text-[0.65rem]',\n 'peer-autofill:text-xs',\n 'peer-autofill:text-sm',\n 'peer-autofill:translate-y-0',\n // DockablePanel — full-screen dialog that collapses to a bottom-right dock:\n // scrim, dock geometry, panel chrome, clipped full-width content\n 'fixed',\n 'inset-0',\n 'inset-6',\n 'inset-auto',\n 'bg-slate-900/45',\n 'end-0',\n 'end-6',\n 'bottom-0',\n 'top-full',\n 'w-full',\n 'h-full',\n 'w-[26rem]',\n 'max-w-[calc(100vw-3rem)]',\n 'max-w-[90rem]',\n 'w-[min(90rem,100vw-3rem)]',\n 'h-[calc(100vh-4rem)]',\n 'max-sm:inset-0',\n 'max-sm:inset-x-0',\n 'max-sm:w-full',\n 'max-sm:w-screen',\n 'max-sm:max-w-full',\n 'shadow-[0_1.25rem_2.5rem_rgb(15_23_42/0.22)]',\n 'rounded-lg',\n 'rounded-t-lg',\n 'border',\n 'border-b',\n 'border-b-0',\n 'flex',\n 'flex-1',\n 'flex-col',\n 'relative',\n 'absolute',\n 'items-center',\n 'justify-center',\n 'justify-between',\n 'justify-start',\n 'justify-end',\n 'rtl:rotate-180',\n 'gap-1',\n 'gap-2',\n 'px-3',\n 'py-2.5',\n 'm-0',\n 'min-h-0',\n 'min-w-0',\n 'text-sm',\n 'text-[0.9375rem]',\n 'font-semibold',\n 'capitalize',\n 'sr-only',\n // ChatComposer responsive grid: stacked cells below md, single-row pill\n // (md: overrides) above, plus the card surface\n 'grid-cols-[auto_minmax(0,1fr)_auto]',\n 'col-span-3',\n 'col-start-1',\n 'col-start-3',\n 'row-start-1',\n 'row-start-2',\n 'px-1',\n 'pt-1',\n 'pt-2',\n 'pb-1',\n 'rounded-2xl',\n 'dark:bg-[#1c1c1e]',\n 'dark:border-[#2e2e30]',\n // ChatComposer mobile keyboard: 16px input below sm (no iOS zoom) and\n // tap-to-focus card cursor (text-base is safelisted above)\n 'sm:text-sm',\n 'cursor-text',\n 'md:col-span-1',\n 'md:col-start-2',\n 'md:row-start-1',\n 'md:self-end',\n 'md:p-1.5',\n 'md:py-1.5',\n 'md:px-0',\n 'md:pe-0.5',\n 'md:ps-0.5',\n 'md:gap-0.5',\n // EH frontdoor ports (ui#420) — arbitrary values, opacity modifiers, and\n // variants emitted by MegaMenu / VideoCard / YearTimeline / SliderCalculator /\n // OrbitRing / RadialExplorer / Globe that TW3 consumers can't generate.\n // Shared positioning & typography\n '-translate-x-1/2',\n '-translate-y-1/2',\n 'left-1/2',\n 'top-1/2',\n 'tabular-nums',\n 'aspect-square',\n 'aspect-video',\n 'backdrop-blur-md',\n // SiteHeader mobile drawer — static group labels reuse the link style\n 'hover:bg-transparent',\n // MegaMenu — panel layout, feature column gradient, link states\n '[&_svg]:h-4',\n '[&_svg]:h-5',\n '[&_svg]:h-7',\n '[&_svg]:w-4',\n '[&_svg]:w-5',\n '[&_svg]:w-7',\n '[background:linear-gradient(160deg,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-700))_70%,#000)_0%,var(--mieweb-primary-950)_100%)]',\n 'grid-cols-[1fr_280px]',\n 'w-[min(600px,calc(100vw-2rem))]',\n 'w-[min(880px,calc(100vw-2rem))]',\n 'transition-[opacity,transform]',\n 'motion-safe:animate-[mie-fade-in_0.2s_ease-out]',\n 'bg-white/10',\n 'border-white/40',\n 'text-foreground/70',\n 'text-foreground/80',\n 'text-white/80',\n 'text-white/90',\n 'hover:bg-primary-500/10',\n 'hover:bg-primary-900',\n 'hover:border-primary-500',\n 'hover:border-white',\n 'group-hover:bg-primary-800',\n 'group-hover:text-primary-800',\n 'group-hover:text-white',\n 'dark:group-hover:text-primary-200',\n 'focus-visible:bg-primary-500/10',\n // VideoCard — hover-preview conic progress ring and play button\n '[-webkit-mask:radial-gradient(farthest-side,transparent_calc(100%-4px),#000_calc(100%-4px))]',\n '[mask:radial-gradient(farthest-side,transparent_calc(100%-4px),#000_calc(100%-4px))]',\n '[background:conic-gradient(from_0deg,transparent_0deg,var(--mieweb-primary-500)_90deg,var(--mieweb-primary-300)_240deg,var(--mieweb-primary-200)_320deg,transparent_360deg)]',\n 'drop-shadow-[0_0_5px_color-mix(in_srgb,var(--mieweb-primary-400)_60%,transparent)]',\n 'bg-white/90',\n 'group-hover:opacity-100',\n 'group-hover:scale-110',\n 'group-focus-visible:opacity-100',\n 'motion-safe:animate-[mie-spin_1.4s_linear_infinite]',\n // YearTimeline — spine gradient, markers, responsive label rail\n 'grid-cols-12',\n 'md:grid',\n 'md:grid-cols-[var(--yt-label)_1fr]',\n 'md:block',\n 'md:inline',\n 'md:pb-4',\n 'md:py-3.5',\n 'md:h-[22px]',\n 'md:border-border/60',\n 'before:absolute',\n 'before:content-[\"\"]',\n 'before:inset-x-0',\n 'before:top-0',\n 'before:left-1/2',\n 'before:-translate-x-1/2',\n 'before:h-1',\n 'before:h-2.5',\n 'before:w-2.5',\n 'before:rounded-full',\n 'before:bg-primary-700',\n 'before:z-[4]',\n 'before:[background:linear-gradient(90deg,var(--mieweb-accent,var(--mieweb-primary-400))_0%,var(--mieweb-primary-500)_50%,var(--mieweb-success)_80%,var(--mieweb-accent,var(--mieweb-primary-400))_100%)]',\n '[background:linear-gradient(180deg,var(--mieweb-primary-700),color-mix(in_srgb,var(--mieweb-primary-700)_15%,transparent))]',\n '[&_svg]:h-3.5',\n '[&_svg]:w-3.5',\n '[text-shadow:0_1px_1px_rgba(0,0,0,0.3)]',\n 'bg-muted/30',\n 'border-border/60',\n 'hover:bg-muted/40',\n 'text-[9px]',\n 'tracking-[0.08em]',\n 'tracking-[0.09em]',\n 'tracking-[0.11em]',\n 'tracking-[0.12em]',\n 'z-[1]',\n 'z-[3]',\n 'z-[5]',\n // SliderCalculator — dark panel gradients and glassy rows\n '[background:linear-gradient(90deg,var(--mieweb-accent,var(--mieweb-primary-300)),var(--mieweb-primary-300))]',\n '[background:radial-gradient(120%_120%_at_100%_0%,var(--mieweb-primary-800),var(--mieweb-primary-950)_70%)]',\n 'lg:grid-cols-[1.1fr_1fr]',\n 'sm:p-8',\n 'sm:text-3xl',\n 'sm:text-6xl',\n 'bg-white/5',\n 'border-white/10',\n 'border-white/15',\n 'text-white/60',\n 'text-white/75',\n 'last:border-0',\n // OrbitRing — attract-loop rotation, pause-on-hover, glow ring\n 'group/orbit',\n 'group/sat',\n '[container-type:size]',\n 'motion-safe:animate-[mie-spin_var(--dur)_linear_infinite]',\n 'group-hover/orbit:[animation-play-state:paused]',\n 'group-focus-within/orbit:[animation-play-state:paused]',\n '[background:radial-gradient(circle_at_50%_38%,#fff_0%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-200))_14%,#fff)_52%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-200))_30%,#fff)_100%)]',\n '[background:radial-gradient(closest-side,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-300))_30%,transparent)_0%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-300))_12%,transparent)_42%,transparent_78%)]',\n 'shadow-[0_0_0_1px_color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-400))_35%,transparent),0_10px_30px_rgba(0,0,0,0.18),0_0_46px_color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-400))_42%,transparent)]',\n 'dark:border-primary-800',\n // RadialExplorer — dot navigation and reveal animation\n 'motion-safe:animate-[mie-fade-in_0.25s_ease-out]',\n 'text-[15px]',\n 'tracking-[0.14em]',\n // Globe — HTML overlay chrome (TW3 consumers using the /globe entry)\n 'bg-[var(--mieweb-accent,#ffe7b0)]',\n 'shadow-[0_0_8px_var(--mieweb-accent,#ffe7b0)]',\n 'bg-neutral-950/70',\n 'max-w-[min(90%,360px)]',\n 'motion-safe:animate-[mie-fade-in_0.28s_ease]',\n // RadialExplorer / VideoCard / SliderCalculator stragglers\n 'tracking-[0.18em]',\n 'tracking-tight',\n 'start-1/2',\n 'w-[calc(var(--re-r)*2+120px)]',\n 'bg-[linear-gradient(90deg,var(--mieweb-primary-500),var(--mieweb-primary-300))]',\n 'bg-black/55',\n 'bg-black/60',\n 'group-hover:text-primary-700',\n 'dark:group-hover:text-primary-300',\n // SiteHeader — menus/MegaMenuBar row and mobile drawer (touched in ui#420)\n 'bg-black/50',\n 'bg-white/20',\n 'bg-white/80',\n 'border-white/30',\n 'hover:bg-white/90',\n 'hover:bg-gray-100',\n 'hover:bg-red-50',\n 'hover:text-gray-700',\n 'hover:text-gray-900',\n 'max-h-[calc(100dvh-10rem)]',\n // Modal full-screen mobile safe-area insets (reset at sm)\n 'pt-[var(--mieweb-safe-area-top,env(safe-area-inset-top))]',\n 'pb-[var(--mieweb-safe-area-bottom,env(safe-area-inset-bottom))]',\n 'sm:pt-0',\n 'sm:pb-0',\n 'md:flex',\n 'sm:block',\n 'dark:border-b',\n 'dark:bg-gray-800',\n 'dark:bg-gray-900',\n 'dark:bg-gray-900/80',\n 'dark:bg-primary-900/30',\n 'dark:border-gray-600',\n 'dark:border-gray-700',\n 'dark:border-gray-800',\n 'dark:hover:bg-gray-700',\n 'dark:hover:bg-gray-800',\n 'dark:hover:bg-red-900/20',\n 'dark:hover:text-gray-200',\n 'dark:hover:text-white',\n 'dark:text-gray-300',\n 'dark:text-red-400',\n 'dark:text-white',\n // Badge usages added in ui#420 (VideoCard duration pill, RadialExplorer tag)\n 'dark:bg-black/60',\n 'bg-primary-100',\n 'text-primary-900',\n 'dark:bg-primary-900',\n 'dark:text-primary-100',\n // Templates tier (ui#506) — arbitrary values, opacity modifiers and variants\n '[&::-webkit-details-marker]:hidden',\n '[mask-image:linear-gradient(90deg,transparent,black_10%,black_90%,transparent)]',\n 'inset-x-[25%]',\n 'inset-x-[16.667%]',\n 'inset-x-[12.5%]',\n 'max-w-[9rem]',\n 'min-w-[36rem]',\n 'bg-white/25',\n 'border-white/70',\n 'dark:border-white/70',\n 'dark:bg-primary-800',\n 'dark:bg-primary-900/60',\n 'dark:hover:bg-white/10',\n 'hover:bg-black/10',\n 'group-open:rotate-180',\n 'rtl:-scale-x-100',\n 'after:absolute',\n 'after:inset-0',\n 'motion-reduce:transition-none',\n 'text-balance',\n 'text-pretty',\n // Record pages (RecordLayout, PropertyList, CalendarHeatmap, OrgChart, AvatarGroup, inputs):\n '[&>svg]:h-2',\n '[&>svg]:h-2.5',\n '[&>svg]:h-3',\n '[&>svg]:h-3.5',\n '[&>svg]:w-2',\n '[&>svg]:w-2.5',\n '[&>svg]:w-3',\n '[&>svg]:w-3.5',\n 'aria-disabled:opacity-60',\n 'border-spacing-[3px]',\n 'empty:hidden',\n 'first:ms-0',\n 'group-data-[state=closed]:-rotate-90',\n 'h-[560px]',\n 'max-h-[560px]',\n 'max-w-[calc(100%-1.5rem)]',\n 'md:grid-cols-[18rem_minmax(0,1fr)]',\n 'md:max-h-[calc(100dvh-var(--record-layout-sticky-top,1rem)-1rem)]',\n 'md:top-[var(--record-layout-sticky-top,1rem)]',\n 'motion-reduce:animate-none',\n 'motion-safe:duration-300',\n 'motion-safe:transition-all',\n 'motion-safe:ease-out',\n 'motion-safe:enabled:hover:scale-110',\n 'motion-safe:transition-[opacity,box-shadow]',\n 'motion-safe:transition-[width]',\n 'motion-safe:transition-transform',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n 'peer-focus-visible:ring-2',\n 'peer-focus-visible:ring-offset-2',\n 'peer-focus-visible:ring-ring',\n 'rtl:-rotate-90',\n 'rtl:[&_svg]:-scale-x-100',\n 'rtl:group-data-[state=closed]:rotate-90',\n 'rtl:rotate-180',\n 'sm:grid-cols-[minmax(7rem,40%)_minmax(0,1fr)]',\n 'xl:grid-cols-[20rem_minmax(0,1fr)]',\n 'xl:grid-cols-[20rem_minmax(0,1fr)_20rem]',\n 'xl:grid-cols-[minmax(0,1fr)_20rem]',\n // Reports + Deck tier — accent utilities, arbitrary values and opacity modifiers\n 'bg-accent',\n 'text-accent',\n 'fill-accent',\n 'stroke-accent',\n 'bg-accent/15',\n 'border-accent/30',\n 'border-accent/70',\n 'to-accent/70',\n 'border-s-2',\n 'border-s-4',\n 'border-s-success',\n 'bg-success/10',\n 'bg-success/15',\n 'border-success/30',\n 'bg-warning/15',\n 'border-warning/30',\n 'bg-destructive/15',\n 'border-destructive/30',\n 'bg-primary-400/15',\n 'bg-primary-500/10',\n 'bg-primary-500/15',\n 'bg-primary-600/20',\n 'bg-primary-600/40',\n 'border-primary-400/30',\n 'border-primary-500/30',\n 'hover:bg-primary-500/10',\n 'bg-secondary-400/15',\n 'border-secondary-400/30',\n 'bg-black/25',\n 'bg-black/30',\n 'bg-black/60',\n 'bg-neutral-900/80',\n 'bg-neutral-900/90',\n 'bg-neutral-900/95',\n 'bg-neutral-950/90',\n 'bg-neutral-950/95',\n 'bg-white/5',\n 'bg-white/10',\n 'bg-white/30',\n 'bg-white/40',\n 'border-white/10',\n 'border-white/15',\n 'border-white/20',\n 'border-white/30',\n 'hover:bg-white/5',\n 'hover:bg-white/10',\n 'group-hover:bg-white/60',\n 'stroke-white/10',\n 'stroke-white/25',\n 'stroke-white/30',\n 'text-white/20',\n 'text-white/40',\n 'text-white/70',\n 'text-white/75',\n 'text-white/80',\n '-start-[2.35rem]',\n 'aspect-[3/4]',\n 'grid-cols-[2rem_minmax(0,1fr)_auto]',\n 'h-[3px]',\n 'h-[clamp(180px,30vh,300px)]',\n 'h-[clamp(260px,40vh,440px)]',\n 'lg:grid-cols-[1fr_300px]',\n 'lg:grid-cols-[auto_minmax(0,1fr)]',\n 'lg:grid-cols-[minmax(0,1.25fr)_minmax(0,2.7fr)]',\n 'lg:grid-cols-[minmax(0,1fr)_minmax(0,2.4fr)_minmax(0,1fr)]',\n 'lg:grid-cols-[minmax(0,2.7fr)_minmax(0,1.25fr)]',\n 'max-h-[65dvh]',\n 'max-w-[15rem]',\n 'max-w-[42vw]',\n 'max-w-[72px]',\n 'pb-[max(0.5rem,env(safe-area-inset-bottom))]',\n 'size-[1.1em]',\n 'size-[18px]',\n 'size-[28rem]',\n 'size-[32rem]',\n 'sm:text-[11px]',\n 'text-[0.6rem]',\n 'text-[0.62rem]',\n 'text-[0.65rem]',\n 'text-[0.7rem]',\n 'text-[0.8rem]',\n 'text-[9px]',\n 'tracking-[0.18em]',\n 'tracking-[0.2em]',\n 'transition-[width]',\n 'z-[5]',\n 'z-[80]',\n // MacroLibrary panel docked in RichTextEditor — search inset, shortcut chips, peek\n '-mt-1',\n 'bottom-1.5',\n 'dark:border-warning-700',\n 'end-1.5',\n 'group/macro',\n 'group-focus-within/macro:visible',\n 'group-hover/macro:visible',\n '[@media(hover:none)]:visible',\n 'hover:text-primary',\n 'items-stretch',\n 'leading-4',\n 'md:absolute',\n 'md:border-t-0',\n 'md:end-0',\n 'md:inset-y-0',\n 'md:me-72',\n 'md:min-h-[140px]',\n 'md:min-h-[250px]',\n 'md:w-72',\n 'p-1.5',\n 'py-1.5',\n 'py-8',\n 'py-10',\n 'start-2.5',\n 'text-[11px]',\n 'whitespace-pre-line',\n // RichTextEditor block gutter menu — hover-revealed `+` button\n 'group/rte-body',\n 'group-hover/rte-body:opacity-100',\n // RichTextEditor editable region — baseline block styles (preflight strips\n // heading/list/quote styling; `prose` needs @tailwindcss/typography)\n '[&_h1]:my-3',\n '[&_h1]:text-2xl',\n '[&_h1]:font-bold',\n '[&_h2]:my-3',\n '[&_h2]:text-xl',\n '[&_h2]:font-bold',\n '[&_h3]:my-2',\n '[&_h3]:text-lg',\n '[&_h3]:font-semibold',\n '[&_ul]:my-2',\n '[&_ol]:my-2',\n '[&_ol]:list-decimal',\n '[&_ol]:ps-6',\n '[&_blockquote]:my-2',\n '[&_blockquote]:border-s-4',\n '[&_blockquote]:border-border',\n '[&_blockquote]:ps-3',\n '[&_blockquote]:text-muted-foreground',\n];\n\nexport interface MiewebUIPreset {\n darkMode: ['class', '[data-theme=\"dark\"]'];\n safelist: string[];\n theme: {\n extend: Record<string, unknown>;\n };\n}\n\nexport const miewebUIPreset: MiewebUIPreset = {\n darkMode: ['class', '[data-theme=\"dark\"]'],\n safelist: miewebUISafelist,\n theme: {\n extend: {\n colors: {\n // Primary color scale - easily overridable by consumers\n primary: {\n DEFAULT: 'var(--mieweb-primary, var(--mieweb-primary-500, #27aae1))',\n 50: 'var(--mieweb-primary-50, #e6f7fc)',\n 100: 'var(--mieweb-primary-100, #b3e6f6)',\n 200: 'var(--mieweb-primary-200, #80d5f0)',\n 300: 'var(--mieweb-primary-300, #4dc4ea)',\n 400: 'var(--mieweb-primary-400, #27aae1)',\n 500: 'var(--mieweb-primary-500, #27aae1)',\n 600: 'var(--mieweb-primary-600, #1f98ca)',\n 700: 'var(--mieweb-primary-700, #1786b3)',\n 800: 'var(--mieweb-primary-800, #0f749c)',\n 900: 'var(--mieweb-primary-900, #086285)',\n 950: 'var(--mieweb-primary-950, #00506e)',\n foreground: 'var(--mieweb-primary-foreground, hsl(210 40% 98%))',\n },\n // Ozwell brand accent (the \"Hey Ozwell\" octopus blue) — distinct from the host app primary.\n ozwell: {\n DEFAULT: 'var(--mieweb-ozwell, #0BA0E0)',\n foreground: 'var(--mieweb-ozwell-foreground, hsl(0 0% 100%))',\n },\n accent: 'var(--mieweb-accent, var(--mieweb-primary-400))',\n // Secondary color scale\n secondary: {\n DEFAULT: 'var(--mieweb-secondary-500, #6366f1)',\n 50: 'var(--mieweb-secondary-50, #eef2ff)',\n 100: 'var(--mieweb-secondary-100, #e0e7ff)',\n 200: 'var(--mieweb-secondary-200, #c7d2fe)',\n 300: 'var(--mieweb-secondary-300, #a5b4fc)',\n 400: 'var(--mieweb-secondary-400, #818cf8)',\n 500: 'var(--mieweb-secondary-500, #6366f1)',\n 600: 'var(--mieweb-secondary-600, #4f46e5)',\n 700: 'var(--mieweb-secondary-700, #4338ca)',\n 800: 'var(--mieweb-secondary-800, #3730a3)',\n 900: 'var(--mieweb-secondary-900, #312e81)',\n 950: 'var(--mieweb-secondary-950, #1e1b4b)',\n foreground: 'var(--mieweb-secondary-foreground, #ffffff)',\n },\n // Neutral / gray scale\n neutral: {\n DEFAULT: 'var(--mieweb-neutral-500, #737373)',\n 50: 'var(--mieweb-neutral-50, #fafafa)',\n 100: 'var(--mieweb-neutral-100, #f5f5f5)',\n 200: 'var(--mieweb-neutral-200, #e5e5e5)',\n 300: 'var(--mieweb-neutral-300, #d4d4d4)',\n 400: 'var(--mieweb-neutral-400, #a3a3a3)',\n 500: 'var(--mieweb-neutral-500, #737373)',\n 600: 'var(--mieweb-neutral-600, #525252)',\n 700: 'var(--mieweb-neutral-700, #404040)',\n 800: 'var(--mieweb-neutral-800, #262626)',\n 900: 'var(--mieweb-neutral-900, #171717)',\n 950: 'var(--mieweb-neutral-950, #0a0a0a)',\n },\n // Semantic colors using CSS variables for theming\n border: 'var(--mieweb-border, hsl(214.3 31.8% 91.4%))',\n input: 'var(--mieweb-input, hsl(214.3 31.8% 91.4%))',\n ring: 'var(--mieweb-ring, hsl(221.2 83.2% 53.3%))',\n background: 'var(--mieweb-background, hsl(0 0% 100%))',\n foreground: 'var(--mieweb-foreground, hsl(222.2 84% 4.9%))',\n // Component-specific semantic colors\n card: {\n DEFAULT: 'var(--mieweb-card, hsl(0 0% 100%))',\n foreground: 'var(--mieweb-card-foreground, hsl(222.2 84% 4.9%))',\n },\n muted: {\n DEFAULT: 'var(--mieweb-muted, hsl(210 40% 96.1%))',\n foreground: 'var(--mieweb-muted-foreground, hsl(215.4 16.3% 46.9%))',\n },\n // Destructive / error scale\n destructive: {\n DEFAULT:\n 'var(--mieweb-destructive, var(--mieweb-destructive-500, #dc2626))',\n 50: 'var(--mieweb-destructive-50, #fef2f2)',\n 100: 'var(--mieweb-destructive-100, #fee2e2)',\n 200: 'var(--mieweb-destructive-200, #fecaca)',\n 300: 'var(--mieweb-destructive-300, #fca5a5)',\n 400: 'var(--mieweb-destructive-400, #f87171)',\n 500: 'var(--mieweb-destructive-500, #dc2626)',\n 600: 'var(--mieweb-destructive-600, #dc2626)',\n 700: 'var(--mieweb-destructive-700, #b91c1c)',\n 800: 'var(--mieweb-destructive-800, #991b1b)',\n 900: 'var(--mieweb-destructive-900, #7f1d1d)',\n 950: 'var(--mieweb-destructive-950, #450a0a)',\n foreground: 'var(--mieweb-destructive-foreground, hsl(210 40% 98%))',\n },\n // Success scale\n success: {\n DEFAULT: 'var(--mieweb-success-500, #22c55e)',\n 50: 'var(--mieweb-success-50, #f0fdf4)',\n 100: 'var(--mieweb-success-100, #dcfce7)',\n 200: 'var(--mieweb-success-200, #bbf7d0)',\n 300: 'var(--mieweb-success-300, #86efac)',\n 400: 'var(--mieweb-success-400, #4ade80)',\n 500: 'var(--mieweb-success-500, #22c55e)',\n 600: 'var(--mieweb-success-600, #16a34a)',\n 700: 'var(--mieweb-success-700, #15803d)',\n 800: 'var(--mieweb-success-800, #166534)',\n 900: 'var(--mieweb-success-900, #14532d)',\n 950: 'var(--mieweb-success-950, #052e16)',\n foreground: 'var(--mieweb-success-foreground, hsl(355.7 100% 97.3%))',\n },\n // Warning scale\n warning: {\n DEFAULT: 'var(--mieweb-warning-500, #f59e0b)',\n 50: 'var(--mieweb-warning-50, #fffbeb)',\n 100: 'var(--mieweb-warning-100, #fef3c7)',\n 200: 'var(--mieweb-warning-200, #fde68a)',\n 300: 'var(--mieweb-warning-300, #fcd34d)',\n 400: 'var(--mieweb-warning-400, #fbbf24)',\n 500: 'var(--mieweb-warning-500, #f59e0b)',\n 600: 'var(--mieweb-warning-600, #d97706)',\n 700: 'var(--mieweb-warning-700, #b45309)',\n 800: 'var(--mieweb-warning-800, #92400e)',\n 900: 'var(--mieweb-warning-900, #78350f)',\n 950: 'var(--mieweb-warning-950, #451a03)',\n foreground: 'var(--mieweb-warning-foreground, hsl(26 83.3% 14.1%))',\n },\n // Info scale\n info: {\n DEFAULT: 'var(--mieweb-info-500, #0ea5e9)',\n 50: 'var(--mieweb-info-50, #f0f9ff)',\n 100: 'var(--mieweb-info-100, #e0f2fe)',\n 200: 'var(--mieweb-info-200, #bae6fd)',\n 300: 'var(--mieweb-info-300, #7dd3fc)',\n 400: 'var(--mieweb-info-400, #38bdf8)',\n 500: 'var(--mieweb-info-500, #0ea5e9)',\n 600: 'var(--mieweb-info-600, #0284c7)',\n 700: 'var(--mieweb-info-700, #0369a1)',\n 800: 'var(--mieweb-info-800, #075985)',\n 900: 'var(--mieweb-info-900, #0c4a6e)',\n 950: 'var(--mieweb-info-950, #082f49)',\n foreground: 'var(--mieweb-info-foreground, #ffffff)',\n },\n // Chart / data visualization\n chart: {\n 1: 'var(--mieweb-chart-1, #27aae1)',\n 2: 'var(--mieweb-chart-2, #22c55e)',\n 3: 'var(--mieweb-chart-3, #f59e0b)',\n 4: 'var(--mieweb-chart-4, #ef4444)',\n 5: 'var(--mieweb-chart-5, #6366f1)',\n },\n },\n fontFamily: {\n sans: [\n 'var(--mieweb-font-sans, ui-sans-serif)',\n 'system-ui',\n 'sans-serif',\n ],\n },\n borderRadius: {\n '2xl': 'var(--mieweb-radius-2xl, 1rem)',\n lg: 'var(--mieweb-radius-lg, 0.75rem)',\n md: 'var(--mieweb-radius-md, 0.5rem)',\n sm: 'var(--mieweb-radius-sm, 0.25rem)',\n xl: 'var(--mieweb-radius-xl, 1rem)',\n },\n boxShadow: {\n card: 'var(--mieweb-shadow-card, 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1))',\n },\n keyframes: {\n 'fade-in': {\n '0%': { opacity: '0' },\n '100%': { opacity: '1' },\n },\n 'fade-out': {\n '0%': { opacity: '1' },\n '100%': { opacity: '0' },\n },\n 'slide-in-from-top': {\n '0%': { transform: 'translateY(-0.5rem)', opacity: '0' },\n '100%': { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-from-bottom': {\n '0%': { transform: 'translateY(0.5rem)', opacity: '0' },\n '100%': { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-right': {\n '0%': { transform: 'translateX(100%)', opacity: '0' },\n '100%': { transform: 'translateX(0)', opacity: '1' },\n },\n 'slide-in-left': {\n '0%': { transform: 'translateX(-100%)', opacity: '0' },\n '100%': { transform: 'translateX(0)', opacity: '1' },\n },\n 'loading-bar': {\n '0%': { transform: 'translateX(-100%)' },\n '100%': { transform: 'translateX(300%)' },\n },\n 'loading-bar-rtl': {\n '0%': { transform: 'translateX(100%)' },\n '100%': { transform: 'translateX(-300%)' },\n },\n shimmer: {\n '0%': { backgroundPosition: '200% 0' },\n '100%': { backgroundPosition: '-200% 0' },\n },\n 'shimmer-rtl': {\n '0%': { backgroundPosition: '-200% 0' },\n '100%': { backgroundPosition: '200% 0' },\n },\n 'scale-in': {\n '0%': { transform: 'scale(0.95)', opacity: '0' },\n '100%': { transform: 'scale(1)', opacity: '1' },\n },\n 'ozwell-message-flare': {\n '0%': {\n boxShadow:\n '0 0 0 0 color-mix(in srgb, var(--mieweb-primary-700, #1786b3) 34%, transparent)',\n },\n '70%': {\n boxShadow:\n '0 0 0 8px color-mix(in srgb, var(--mieweb-primary-700, #1786b3) 0%, transparent)',\n },\n '100%': {\n boxShadow:\n '0 0 0 0 color-mix(in srgb, var(--mieweb-primary-700, #1786b3) 0%, transparent)',\n },\n },\n },\n animation: {\n 'fade-in': 'fade-in 150ms ease-out',\n 'fade-out': 'fade-out 150ms ease-in',\n 'slide-in-from-top': 'slide-in-from-top 150ms ease-out',\n 'slide-in-from-bottom': 'slide-in-from-bottom 150ms ease-out',\n 'slide-in-right': 'slide-in-right 300ms ease-out',\n 'slide-in-left': 'slide-in-left 300ms ease-out',\n 'loading-bar': 'loading-bar 1.5s ease infinite',\n 'loading-bar-rtl': 'loading-bar-rtl 1.5s ease infinite',\n shimmer: 'shimmer 2s linear infinite',\n 'shimmer-rtl': 'shimmer-rtl 2s linear infinite',\n 'scale-in': 'scale-in 150ms ease-out',\n 'ozwell-message-flare': 'ozwell-message-flare 1.8s ease-out',\n },\n // ClampedText supports 7/8-line clamps beyond Tailwind 3's core 1–6 scale\n lineClamp: {\n 7: '7',\n 8: '8',\n },\n },\n },\n};\n\nexport default miewebUIPreset;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/RowActionToolbar/RowActionToolbar.tsx","../src/components/ProblemList/ProblemList.tsx"],"names":["isRtl","cn","jsx","Tooltip","Button","ExternalLink","StickyNote","Pencil","RefreshCw","CheckCircle","Link","Trash2","ChevronUp","ChevronDown","useMessages","jsxs","Fragment","Badge","HelpCircle","React","dragIndicatorClasses","GripVertical","History","useLiveAnnouncement","useDragReorder","Card","CardHeader","CardContent","Plus"],"mappings":"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","file":"chunk-JCO62XMU.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { isRtl } from '../../hooks/useDirection';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport { Tooltip } from '../Tooltip';\n\n/**\n * Toolbar / group arrow-key navigation (WAI-ARIA toolbar pattern).\n * Attach to a container's onKeyDown: ←/→ move focus between enabled\n * buttons, Home/End jump to first/last. Horizontal arrows follow the\n * visual direction, so they invert under RTL.\n */\nexport function toolbarKeyNav(e: React.KeyboardEvent<HTMLElement>) {\n if (e.altKey || e.ctrlKey || e.metaKey) return;\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(e.key)) return;\n const buttons = Array.from(\n e.currentTarget.querySelectorAll<HTMLButtonElement>(\n 'button:not([disabled])'\n )\n );\n const i = buttons.indexOf(document.activeElement as HTMLButtonElement);\n if (i === -1 || buttons.length === 0) return;\n e.preventDefault();\n e.stopPropagation();\n let key = e.key;\n if (isRtl(e.currentTarget)) {\n if (key === 'ArrowRight') key = 'ArrowLeft';\n else if (key === 'ArrowLeft') key = 'ArrowRight';\n }\n const next =\n key === 'ArrowLeft'\n ? (i - 1 + buttons.length) % buttons.length\n : key === 'ArrowRight'\n ? (i + 1) % buttons.length\n : key === 'Home'\n ? 0\n : buttons.length - 1;\n buttons[next]?.focus();\n}\n\n// Alignment of the floating (fine-pointer) overlay within the row.\nconst ALIGN = {\n /** Vertically centered on the row's right edge (single-line rows). */\n center:\n 'pointer-fine:top-1/2 pointer-fine:end-0 pointer-fine:-translate-y-1/2',\n /** Pinned near the row's top-right corner (multi-line rows). */\n top: 'pointer-fine:top-1.5 pointer-fine:end-1.5',\n} as const;\n\n// Which hover scope reveals the toolbar. Rows nested inside another `group`\n// (e.g. order rows inside an assessed problem) use a named group so hovering\n// the outer block doesn't reveal every nested toolbar. `grid` keys off the\n// datavis (NITRO) table row (`.wcdv-tr`) for toolbars rendered into grid\n// cells via `formatCell`.\nconst REVEAL = {\n row: cn(\n 'group-hover:pointer-events-auto group-hover:opacity-100',\n 'group-focus-within:pointer-events-auto group-focus-within:opacity-100',\n 'group-focus:pointer-events-auto group-focus:opacity-100'\n ),\n order: cn(\n 'group-hover/order:pointer-events-auto group-hover/order:opacity-100',\n 'group-focus-within/order:pointer-events-auto group-focus-within/order:opacity-100',\n 'group-focus/order:pointer-events-auto group-focus/order:opacity-100'\n ),\n grid: cn(\n '[.wcdv-tr:hover_&]:pointer-events-auto [.wcdv-tr:hover_&]:opacity-100',\n '[.wcdv-tr:focus-within_&]:pointer-events-auto [.wcdv-tr:focus-within_&]:opacity-100'\n ),\n} as const;\n\nexport interface RowActionToolbarProps {\n /** Accessible name, e.g. `Actions for penicillin`. */\n label: string;\n /** Overlay alignment on fine-pointer devices. @default 'center' */\n align?: keyof typeof ALIGN;\n /**\n * Hover scope for the reveal. Use `'order'` when the row is a\n * `group/order` nested inside another `group`; use `'grid'` inside a\n * datavis (NITRO) grid cell — the toolbar then stays in flow (the cell\n * reserves its space) and reveals when the `.wcdv-tr` row is hovered.\n * @default 'row'\n */\n group?: keyof typeof REVEAL;\n /**\n * `'hover'` floats the toolbar over the row on fine-pointer devices and\n * reveals it on hover/focus; `'always'` keeps it in flow at the end of the\n * row and always visible on every pointer type.\n * @default 'hover'\n */\n reveal?: 'hover' | 'always';\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Per-row action toolbar for clinical lists.\n *\n * On hover-capable (fine pointer) devices it floats over the row's right\n * edge as a card-styled overlay, hidden until the row is hovered or\n * keyboard-focused. Touch devices can't hover, so the toolbar stays in\n * flow at the end of the row (`ms-auto`) and is always visible.\n *\n * Implements WAI-ARIA toolbar arrow-key navigation. The parent row must be\n * `relative` and carry the matching `group` (or `group/order`) class.\n */\nexport function RowActionToolbar({\n label,\n align = 'center',\n group = 'row',\n reveal = 'hover',\n className,\n children,\n}: RowActionToolbarProps) {\n return (\n <div\n role=\"toolbar\"\n aria-label={label}\n onKeyDown={toolbarKeyNav}\n className={cn(\n 'z-10 ms-auto flex items-center gap-0.5',\n reveal === 'hover' && [\n 'transition-opacity',\n // Inside a grid cell the column already reserves the space, so the\n // toolbar stays in flow — no absolute overlay. It keeps the card\n // chrome, though: pair with a `sticky end-0` actions column and it\n // floats over scrolled-under content at the grid's right edge.\n group !== 'grid' && [\n 'pointer-fine:absolute',\n ALIGN[align],\n 'pointer-fine:bg-card pointer-fine:border-border pointer-fine:rounded-md pointer-fine:border pointer-fine:p-0.5 pointer-fine:shadow-sm',\n ],\n group === 'grid' &&\n 'bg-card border-border rounded-md border p-0.5 shadow-sm',\n 'pointer-fine:pointer-events-none pointer-fine:opacity-0',\n REVEAL[group],\n 'focus-within:pointer-events-auto focus-within:opacity-100',\n ],\n className\n )}\n >\n {children}\n </div>\n );\n}\n\nexport interface RowIconButtonProps {\n label: string;\n icon: React.ComponentType<{ size?: number | string }>;\n onClick: () => void;\n /** Toggle-button state (renders `aria-pressed` + tinted background). */\n active?: boolean;\n /** Disclosure state and the id of the controlled region. */\n expanded?: boolean;\n controls?: string;\n /** `md` = 32px button / 16px icon; `sm` = 28px / 14px. @default 'md' */\n size?: 'md' | 'sm';\n}\n\n/** Tooltip-labeled ghost icon button for `RowActionToolbar`. */\nexport function RowIconButton({\n label,\n icon: Icon,\n onClick,\n active,\n expanded,\n controls,\n size = 'md',\n}: RowIconButtonProps) {\n return (\n <Tooltip content={label}>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={label}\n aria-pressed={active}\n aria-expanded={expanded}\n aria-controls={controls}\n onClick={(e) => {\n e.stopPropagation();\n onClick();\n }}\n className={cn(\n size === 'sm' ? 'h-7 w-7' : 'h-8 w-8',\n 'shrink-0',\n (active || expanded) &&\n 'bg-primary-50 text-primary-700 dark:bg-primary-950 dark:text-primary-400'\n )}\n >\n <Icon size={size === 'sm' ? 14 : 16} />\n </Button>\n </Tooltip>\n );\n}\n","'use client';\n\nimport { useMessages, type MessageTranslator } from '../../utils/messages';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { Badge } from '../Badge/Badge';\nimport { Button } from '../Button';\nimport { Tooltip } from '../Tooltip';\nimport { Card, CardHeader, CardContent } from '../Card/Card';\nimport {\n PencilIcon,\n RefreshIcon,\n CheckCircleIcon,\n LinkIcon,\n ExternalLinkIcon,\n ChevronDownIcon,\n ChevronUpIcon,\n PlusIcon,\n HistoryIcon,\n HelpCircleIcon,\n GripVerticalIcon,\n StickyNoteIcon,\n TrashIcon,\n} from '../Icons';\nimport {\n useDragReorder,\n dragIndicatorClasses,\n type UseDragReorderReturn,\n} from '../../hooks/useDragReorder';\nimport { RowActionToolbar, RowIconButton } from '../RowActionToolbar';\nimport { useLiveAnnouncement } from '../../hooks/useLiveAnnouncement';\n\n// =============================================================================\n// Types — shared condition (concern/assertion) model\n// =============================================================================\n\n/** A single coding on a condition assertion (ICD-10 / ICD-11 / SNOMED). */\nexport interface ConditionCoding {\n /** Coding system, e.g. 'ICD-10-CM', 'ICD-11', 'SNOMED' */\n system: 'ICD-10-CM' | 'ICD-11' | 'SNOMED' | string;\n code: string;\n display?: string;\n /** Which coding is authoritative for this assertion */\n primary?: boolean;\n /** Provenance when derived via a crosswalk (e.g. SNOMED→ICD-10 map) */\n mappedFrom?: string;\n}\n\n/** Longitudinal status of the concern (the stable problem thread). */\nexport type ConcernStatus =\n | 'active'\n | 'recurrence'\n | 'relapse'\n | 'inactive'\n | 'remission'\n | 'resolved';\n\n/** FHIR-aligned verification status of an assertion. */\nexport type VerificationStatus =\n | 'unconfirmed'\n | 'provisional'\n | 'differential'\n | 'confirmed'\n | 'refuted'\n | 'entered-in-error';\n\n/** Why an assertion superseded its predecessor. */\nexport type AssertionChangeType =\n | 'refinement'\n | 'revision'\n | 'progression'\n | 'reattribution';\n\n// ---- Uncertainty (mirrors §4 of the design doc) ----\n\n/** Three-state flag for an optional field: confident / uncertain / explicitly unknown. */\nexport interface FieldUncertainty {\n /** false = explicitly unknown (\"asked; patient doesn't know\") — distinct from untouched */\n known: boolean;\n /** Why the value is absent (~ FHIR data-absent-reason) */\n reason?: 'asked-unknown' | 'not-asked' | 'masked' | 'unavailable';\n /** Softness of a value that IS present */\n confidence?: 'low' | 'medium' | 'high';\n note?: string;\n}\n\n/** Condition fields that can carry per-field uncertainty. */\nexport type UncertainConditionField =\n | 'coding'\n | 'onset'\n | 'severity'\n | 'laterality'\n | 'bodySite';\n\n/** First-class uncertainty block for a condition assertion. */\nexport interface Uncertainty {\n overall?: 'confirmed' | 'low' | 'medium' | 'high';\n fields?: Partial<Record<UncertainConditionField, FieldUncertainty>>;\n}\n\n/** A time-stamped, coded characterization of a concern. */\nexport interface ConditionAssertion {\n id: string;\n /** Display date the assertion was made, e.g. \"2023-06-14\" */\n date: string;\n /** Free-text condition name — the only hard-required clinical field */\n text: string;\n coding?: ConditionCoding[];\n verificationStatus: VerificationStatus;\n /** How this assertion relates to the one it supersedes */\n changeType?: AssertionChangeType;\n /** Id of the assertion this one supersedes */\n supersedes?: string;\n severity?: 'mild' | 'moderate' | 'severe';\n /** Onset — exact date and/or fuzzy human string (\"since her twenties\") */\n onset?: { date?: string; fuzzy?: string };\n /** First-class uncertainty (§4 of the design doc) */\n uncertainty?: Uncertainty;\n note?: string;\n}\n\n/** Relationship between two concerns. */\nexport interface ConcernRelationship {\n type:\n | 'caused-by'\n | 'evolved-from'\n | 'differential-sibling'\n | 'complication-of';\n /** concernId of the related concern */\n concernId: string;\n /** Display name of the related concern */\n display?: string;\n}\n\n/** A quick, dated progress note about a concern — lighter than an assertion. */\nexport interface ConditionObservation {\n id: string;\n /** Display date, e.g. \"2026-07-03\" */\n date: string;\n text: string;\n author?: string;\n}\n\n/**\n * A stable problem thread. The concernId is the durable identity that orders\n * and encounters reference; assertions carry the evolving codes.\n */\nexport interface ConditionConcern {\n concernId: string;\n clinicalStatus: ConcernStatus;\n /** Ordered oldest → newest; the last non-refuted assertion is current */\n assertions: ConditionAssertion[];\n /** Quick progress notes over time (newest last) */\n observations?: ConditionObservation[];\n relationships?: ConcernRelationship[];\n /** Where the concern came from */\n source?:\n | 'ehrProblemList'\n | 'patientReported'\n | 'manuallyAdded'\n | 'claimsHistory';\n}\n\n/** Row actions on a concern. */\nexport type ProblemListAction =\n | 'open'\n | 'observe'\n | 'refine'\n | 'revise'\n | 'resolve'\n | 'relate'\n | 'remove'\n | 'move-up'\n | 'move-down';\n\nexport interface ProblemListProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'className' | 'title'\n> {\n /** Patient-level concerns (controlled) */\n concerns: ConditionConcern[];\n /** Header title (pass null to hide) */\n title?: string | null;\n /** Called when a row action is clicked */\n onAction?: (concern: ConditionConcern, action: ProblemListAction) => void;\n /** Called when a new problem is added via the capture-first input */\n onAddProblem?: (text: string) => void;\n /**\n * Called with the full ordered list of concernIds after a move — via drag\n * and drop, the move buttons, or Alt+Arrow keys. Enables reordering. The\n * component renders concerns in props order — persist the ids wherever the\n * encounter/patient object lives and feed them back in.\n */\n onReorder?: (concernIds: string[]) => void;\n /** Which row actions to show (default: all except 'remove') */\n actions?: ProblemListAction[];\n /** Show row actions in flow, always visible, instead of the hover-reveal overlay */\n inlineActions?: boolean;\n /** Hide all action buttons (display only) */\n readOnly?: boolean;\n /** Message shown when there are no concerns */\n emptyMessage?: string;\n /** Additional CSS classes */\n className?: string;\n /** Test ID for testing */\n 'data-testid'?: string;\n}\n\n// =============================================================================\n// Constants\n// =============================================================================\n\nconst GROUP_ORDER: { key: string; label: string; statuses: ConcernStatus[] }[] =\n [\n {\n key: 'active',\n label: 'Active',\n statuses: ['active', 'recurrence', 'relapse'],\n },\n { key: 'inactive', label: 'Inactive', statuses: ['inactive', 'remission'] },\n { key: 'resolved', label: 'Resolved', statuses: ['resolved'] },\n ];\n\n/**\n * Grouping key for a concern. Unconfirmed concerns (current assertion not yet\n * verified) live in their own group, separate from Active / Resolved.\n */\nexport function concernGroupKey(concern: ConditionConcern): string {\n if (currentAssertion(concern)?.verificationStatus === 'unconfirmed') {\n return 'unconfirmed';\n }\n return (\n GROUP_ORDER.find((g) => g.statuses.includes(concern.clinicalStatus))?.key ??\n 'active'\n );\n}\n\nexport const CONCERN_STATUS_LABELS: Record<ConcernStatus, string> = {\n active: 'Active',\n recurrence: 'Recurrence',\n relapse: 'Relapse',\n inactive: 'Inactive',\n remission: 'Remission',\n resolved: 'Resolved',\n};\n\nexport const CHANGE_TYPE_LABELS: Record<AssertionChangeType, string> = {\n refinement: 'Refined',\n revision: 'Revised',\n progression: 'Progressed',\n reattribution: 'Re-attributed',\n};\n\nconst DEFAULT_ACTIONS: ProblemListAction[] = [\n 'open',\n 'observe',\n 'refine',\n 'revise',\n 'resolve',\n 'relate',\n 'move-up',\n 'move-down',\n];\n\nconst ACTION_META: Record<\n ProblemListAction,\n { label: string; icon: React.ComponentType<{ size?: number | string }> }\n> = {\n open: { label: 'Open', icon: ExternalLinkIcon },\n observe: { label: 'Add observation (progress note)', icon: StickyNoteIcon },\n refine: { label: 'Refine (more specific)', icon: PencilIcon },\n revise: { label: 'Revise (prior was wrong)', icon: RefreshIcon },\n resolve: { label: 'Resolve', icon: CheckCircleIcon },\n relate: { label: 'Relate to another problem', icon: LinkIcon },\n remove: { label: 'Delete', icon: TrashIcon },\n 'move-up': { label: 'Move up (Alt+↑)', icon: ChevronUpIcon },\n 'move-down': { label: 'Move down (Alt+↓)', icon: ChevronDownIcon },\n};\n\nconst VERIFICATION_BADGE: Record<\n VerificationStatus,\n {\n label: string;\n variant: 'default' | 'secondary' | 'success' | 'warning' | 'outline';\n }\n> = {\n unconfirmed: { label: 'Unconfirmed', variant: 'outline' },\n provisional: { label: 'Provisional', variant: 'warning' },\n differential: { label: 'Differential', variant: 'warning' },\n confirmed: { label: 'Confirmed', variant: 'success' },\n refuted: { label: 'Refuted', variant: 'secondary' },\n 'entered-in-error': { label: 'Entered in error', variant: 'secondary' },\n};\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/** The current (last non-refuted, non-error) assertion of a concern. */\nexport function currentAssertion(\n concern: ConditionConcern\n): ConditionAssertion | undefined {\n for (let i = concern.assertions.length - 1; i >= 0; i--) {\n const a = concern.assertions[i];\n if (\n a.verificationStatus !== 'refuted' &&\n a.verificationStatus !== 'entered-in-error'\n ) {\n return a;\n }\n }\n return concern.assertions[concern.assertions.length - 1];\n}\n\nconst UNCERTAIN_FIELD_LABELS: Record<UncertainConditionField, string> = {\n coding: 'Coding',\n onset: 'Onset',\n severity: 'Severity',\n laterality: 'Laterality',\n bodySite: 'Body site',\n};\n\nfunction describeFieldUncertainty(\n field: UncertainConditionField,\n f: FieldUncertainty,\n m: MessageTranslator\n): string {\n const label = UNCERTAIN_FIELD_LABELS[field];\n if (!f.known) {\n const reason =\n f.reason === 'asked-unknown'\n ? 'asked — unknown'\n : (f.reason ?? 'unknown').replace(/-/g, ' ');\n return `${m(label)}: ${m(reason)}${f.note ? ` (${f.note})` : ''}`;\n }\n return `${m(label)}: ${m('{confidence} confidence', {\n confidence: m(f.confidence ?? 'uncertain'),\n })}${f.note ? ` (${f.note})` : ''}`;\n}\n\n// =============================================================================\n// Sub-components\n// =============================================================================\n\n/**\n * Parenthetical coding display. Clinicians don't need chip noise: inline we\n * show only ICD-10/ICD-11 codes, unlabeled (the code format is obvious), and\n * SNOMED stays out of the way. The full coding background — every system,\n * display name, and crosswalk provenance — lives in the tooltip.\n */\nexport function CodingChips({ coding }: { coding?: ConditionCoding[] }) {\n const m = useMessages();\n if (!coding?.length) return null;\n const icd = coding.filter((c) => c.system.startsWith('ICD'));\n const inline = icd.length > 0 ? icd : coding.filter((c) => c.primary);\n const label = inline.map((c) => c.code).join(', ');\n return (\n <Tooltip\n content={\n <span className=\"flex flex-col gap-0.5\">\n {coding.map((c) => (\n <span key={`${c.system}:${c.code}`}>\n {c.system} {c.code}\n {c.display ? ` — ${c.display}` : ''}\n {c.primary ? m(' · primary') : ''}\n {c.mappedFrom\n ? m(' · mapped from {source}', { source: c.mappedFrom })\n : ''}\n </span>\n ))}\n </span>\n }\n >\n {/* focusable so the coding provenance is reachable by keyboard */}\n <span\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n className=\"text-muted-foreground focus-visible:ring-ring rounded text-xs whitespace-nowrap focus-visible:ring-2 focus-visible:outline-none\"\n >\n ({label || m('coded')})\n </span>\n </Tooltip>\n );\n}\n\n/**\n * Full concern background for a hover/long-press tooltip: assertion history,\n * coding background, and recent observations.\n */\nexport function concernHistoryContent(\n concern: ConditionConcern,\n m: MessageTranslator = (message) => message\n): React.ReactNode {\n return (\n <span className=\"flex max-w-xs flex-col gap-1\">\n <span className=\"font-semibold\">{m('History')}</span>\n {[...concern.assertions].reverse().map((a) => (\n <span key={a.id}>\n {a.date} — {a.text}\n {a.changeType\n ? ` (${m(CHANGE_TYPE_LABELS[a.changeType]).toLocaleLowerCase()})`\n : ''}\n {a.verificationStatus === 'refuted'\n ? ` — ${m('Refuted').toLocaleLowerCase()}`\n : ''}\n </span>\n ))}\n {concern.observations && concern.observations.length > 0 && (\n <>\n <span className=\"mt-1 font-semibold\">{m('Observations')}</span>\n {[...concern.observations]\n .reverse()\n .slice(0, 3)\n .map((o) => (\n <span key={o.id}>\n {o.date} — {o.text}\n </span>\n ))}\n </>\n )}\n {(currentAssertion(concern)?.coding?.length ?? 0) > 0 && (\n <>\n <span className=\"mt-1 font-semibold\">{m('Coding')}</span>\n {currentAssertion(concern)!.coding!.map((c) => (\n <span key={`${c.system}:${c.code}`}>\n {c.system} {c.code}\n {c.display ? ` — ${c.display}` : ''}\n </span>\n ))}\n </>\n )}\n </span>\n );\n}\n\n/** Badge summarizing an assertion's uncertainty block (§4 of the design doc). */\nexport function UncertaintyBadge({\n uncertainty,\n}: {\n uncertainty?: Uncertainty;\n}) {\n const m = useMessages();\n if (!uncertainty) return null;\n const fieldEntries = Object.entries(uncertainty.fields ?? {}) as Array<\n [UncertainConditionField, FieldUncertainty]\n >;\n const overall =\n uncertainty.overall && uncertainty.overall !== 'confirmed'\n ? uncertainty.overall\n : null;\n if (!overall && fieldEntries.length === 0) return null;\n const lines = [\n ...(overall\n ? [m('Overall certainty: {certainty}', { certainty: m(overall) })]\n : []),\n ...fieldEntries.map(([field, f]) => describeFieldUncertainty(field, f, m)),\n ];\n return (\n <Tooltip content={lines.join(' · ')}>\n <Badge variant=\"warning\" size=\"sm\" className=\"gap-1\">\n <HelpCircleIcon size={10} />\n {overall\n ? m('{certainty} certainty', { certainty: m(overall) })\n : m('{count} uncertain', { count: fieldEntries.length })}\n </Badge>\n </Tooltip>\n );\n}\n\nfunction AssertionTimeline({ concern }: { concern: ConditionConcern }) {\n const m = useMessages();\n const items = [...concern.assertions].reverse(); // newest first\n return (\n <ol\n aria-label={m('Assertion history')}\n className=\"border-border ms-1.5 mt-2 space-y-2 border-s ps-4\"\n >\n {items.map((a) => {\n const refuted =\n a.verificationStatus === 'refuted' ||\n a.verificationStatus === 'entered-in-error';\n const verification = VERIFICATION_BADGE[a.verificationStatus];\n return (\n <li key={a.id} className=\"relative text-sm\">\n <span\n aria-hidden\n className=\"bg-border absolute -start-5 top-1.5 h-2 w-2 rounded-full\"\n />\n <span className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n <span className=\"text-muted-foreground text-xs tabular-nums\">\n {a.date}\n </span>\n <span\n className={cn(\n 'text-foreground font-medium',\n refuted && 'text-muted-foreground line-through'\n )}\n >\n {a.text}\n </span>\n {a.changeType && (\n <Badge variant=\"secondary\" size=\"sm\">\n {m(CHANGE_TYPE_LABELS[a.changeType])}\n </Badge>\n )}\n <Badge variant={verification.variant} size=\"sm\">\n {m(verification.label)}\n </Badge>\n <UncertaintyBadge uncertainty={a.uncertainty} />\n <CodingChips coding={a.coding} />\n </span>\n {a.note && (\n <p className=\"text-muted-foreground mt-0.5 text-xs\">{a.note}</p>\n )}\n </li>\n );\n })}\n </ol>\n );\n}\n\nfunction ConcernRow({\n concern,\n actions,\n inlineActions,\n readOnly,\n canReorder,\n drag,\n onAction,\n}: {\n concern: ConditionConcern;\n actions: ProblemListAction[];\n inlineActions: boolean;\n readOnly: boolean;\n canReorder: boolean;\n drag: UseDragReorderReturn;\n onAction?: (concern: ConditionConcern, action: ProblemListAction) => void;\n}) {\n const m = useMessages();\n const [expanded, setExpanded] = React.useState(false);\n const current = currentAssertion(concern);\n const hasHistory = concern.assertions.length > 1;\n\n const visibleActions = actions.filter(\n (a) => canReorder || (a !== 'move-up' && a !== 'move-down')\n );\n\n const handleRowKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.target !== e.currentTarget) return;\n if (e.altKey && (e.key === 'ArrowUp' || e.key === 'ArrowDown')) {\n if (!canReorder) return;\n e.preventDefault();\n onAction?.(concern, e.key === 'ArrowUp' ? 'move-up' : 'move-down');\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Roving focus between rows\n e.preventDefault();\n const list = e.currentTarget.closest('ul');\n if (!list) return;\n const rows = Array.from(\n list.querySelectorAll<HTMLElement>('li[data-concern-id]')\n );\n const i = rows.indexOf(e.currentTarget as HTMLElement);\n rows[\n e.key === 'ArrowUp'\n ? Math.max(0, i - 1)\n : Math.min(rows.length - 1, i + 1)\n ]?.focus();\n } else if ((e.key === 'Enter' || e.key === ' ') && hasHistory) {\n e.preventDefault();\n setExpanded((v) => !v);\n }\n };\n\n if (!current) return null;\n\n return (\n // Roving-focus row (WAI-ARIA listbox-like keyboard pattern): the row is a\n // legitimate focus stop so ↑/↓ navigate rows, Enter toggles history, and\n // Alt+↑/↓ reorders — required for 508 keyboard operability.\n /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex */\n <li\n data-slot=\"clinical-list-row\"\n data-concern-id={concern.concernId}\n tabIndex={0}\n onKeyDown={handleRowKeyDown}\n {...drag.rowProps(concern.concernId)}\n aria-label={[\n `${current.text}.`,\n hasHistory ? m('Press Enter to toggle history.') : '',\n canReorder ? m('Alt plus arrow keys to reorder.') : '',\n ]\n .filter(Boolean)\n .join(' ')}\n className={cn(\n 'group border-border/60 relative border-b px-1 py-2',\n 'focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none',\n drag.enabled && 'cursor-grab active:cursor-grabbing',\n dragIndicatorClasses(drag, concern.concernId)\n )}\n >\n {/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex */}\n <div className=\"flex min-h-9 flex-wrap items-center gap-x-2 gap-y-1\">\n {drag.enabled ? (\n <GripVerticalIcon\n size={14}\n aria-hidden\n className=\"text-muted-foreground/50 shrink-0\"\n />\n ) : (\n <span className=\"text-muted-foreground/60 select-none\">•</span>\n )}\n {/* Hover (or long-press on touch) the name for the complete background:\n assertion history, observations, and coding provenance. */}\n <Tooltip content={concernHistoryContent(concern, m)}>\n <span className=\"text-foreground font-medium\">{current.text}</span>\n </Tooltip>\n <CodingChips coding={current.coding} />\n {/* 'unconfirmed' is conveyed by the Unconfirmed group header */}\n {current.verificationStatus !== 'confirmed' &&\n current.verificationStatus !== 'unconfirmed' && (\n <Badge\n variant={VERIFICATION_BADGE[current.verificationStatus].variant}\n size=\"sm\"\n >\n {m(VERIFICATION_BADGE[current.verificationStatus].label)}\n </Badge>\n )}\n <UncertaintyBadge uncertainty={current.uncertainty} />\n {concern.relationships?.map((r) => (\n <Badge key={`${r.type}:${r.concernId}`} variant=\"outline\" size=\"sm\">\n <LinkIcon size={10} className=\"me-1\" />\n {m(r.type.replace(/-/g, ' '))}\n {r.display ? `: ${r.display}` : ''}\n </Badge>\n ))}\n {hasHistory && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setExpanded((v) => !v)}\n aria-expanded={expanded}\n leftIcon={<HistoryIcon size={12} />}\n rightIcon={\n expanded ? (\n <ChevronUpIcon size={12} />\n ) : (\n <ChevronDownIcon size={12} />\n )\n }\n className=\"text-muted-foreground h-auto px-1.5 py-0.5 text-xs\"\n >\n {m('{count} assertions', { count: concern.assertions.length })}\n </Button>\n )}\n\n {!readOnly && (\n <RowActionToolbar\n label={m('Actions for {name}', { name: current.text })}\n align=\"top\"\n reveal={inlineActions ? 'always' : 'hover'}\n >\n {visibleActions.map((action) => (\n <RowIconButton\n key={action}\n label={m(ACTION_META[action].label)}\n icon={ACTION_META[action].icon}\n onClick={() => onAction?.(concern, action)}\n />\n ))}\n </RowActionToolbar>\n )}\n </div>\n\n {expanded && (\n <>\n <AssertionTimeline concern={concern} />\n {concern.observations && concern.observations.length > 0 && (\n <div className=\"ms-1.5 mt-2 ps-4\">\n <h5 className=\"text-muted-foreground text-xs font-semibold tracking-wide uppercase\">\n {m('Observations')}\n </h5>\n <ol aria-label={m('Observations')} className=\"mt-1 space-y-1\">\n {[...concern.observations].reverse().map((o) => (\n <li key={o.id} className=\"flex flex-wrap gap-x-2 text-sm\">\n <span className=\"text-muted-foreground text-xs tabular-nums\">\n {o.date}\n </span>\n <span className=\"text-foreground\">{o.text}</span>\n {o.author && (\n <span className=\"text-muted-foreground text-xs\">\n — {o.author}\n </span>\n )}\n </li>\n ))}\n </ol>\n </div>\n )}\n </>\n )}\n </li>\n );\n}\n\n// =============================================================================\n// ProblemList\n// =============================================================================\n\n/**\n * Patient-level problem list built on the concern/assertion model: each row is\n * a stable ConditionConcern whose coded characterization evolves through an\n * assertion history (refinement / revision / progression). Rows expand to show\n * the assertion timeline; refuted assertions render struck-through.\n *\n * Controlled component: concerns come in via props; every user interaction is\n * reported through callbacks.\n *\n * @example\n * ```tsx\n * <ProblemList\n * concerns={concerns}\n * onAction={(concern, action) => handleAction(concern, action)}\n * onAddProblem={(text) => addConcern(text)}\n * />\n * ```\n */\nexport const ProblemList = React.forwardRef<HTMLDivElement, ProblemListProps>(\n (\n {\n concerns,\n title = 'Problem list',\n onAction,\n onAddProblem,\n onReorder,\n actions = DEFAULT_ACTIONS,\n inlineActions = false,\n readOnly = false,\n emptyMessage = 'No problems recorded.',\n className,\n 'data-testid': dataTestId,\n ...props\n },\n ref\n ) => {\n const m = useMessages();\n const [draft, setDraft] = React.useState('');\n // clears-then-sets so repeated identical messages re-announce\n const [announcement, setAnnouncement] = useLiveAnnouncement();\n\n const submitDraft = () => {\n const text = draft.trim();\n if (!text) return;\n onAddProblem?.(text);\n setDraft('');\n };\n\n /** Swap with the adjacent concern in the same group, then report the full order. */\n const moveConcern = React.useCallback(\n (concern: ConditionConcern, dir: -1 | 1) => {\n if (!onReorder || readOnly) return;\n const groupKey = concernGroupKey(concern);\n const ids = concerns.map((c) => c.concernId);\n const from = ids.indexOf(concern.concernId);\n // nearest neighbor in the same group\n let to = from + dir;\n while (\n to >= 0 &&\n to < concerns.length &&\n concernGroupKey(concerns[to]) !== groupKey\n ) {\n to += dir;\n }\n if (to < 0 || to >= concerns.length) return;\n [ids[from], ids[to]] = [ids[to], ids[from]];\n const current = currentAssertion(concern);\n setAnnouncement(\n m(dir === -1 ? '{name} moved up' : '{name} moved down', {\n name: current?.text ?? concern.concernId,\n })\n );\n onReorder(ids);\n },\n [concerns, onReorder, readOnly, setAnnouncement, m]\n );\n\n const handleAction = React.useCallback(\n (concern: ConditionConcern, action: ProblemListAction) => {\n if (action === 'move-up') moveConcern(concern, -1);\n else if (action === 'move-down') moveConcern(concern, 1);\n else onAction?.(concern, action);\n },\n [moveConcern, onAction]\n );\n\n // Drag & drop reordering, restricted to the same group (a cross-group\n // drop would silently imply a status change). Precomputed map — dragover\n // fires too frequently for a linear concern scan per event.\n const groupById = React.useMemo(\n () =>\n new Map(\n concerns.map((c) => [c.concernId, concernGroupKey(c)] as const)\n ),\n [concerns]\n );\n const groupOf = React.useCallback(\n (id: string) => groupById.get(id),\n [groupById]\n );\n const drag = useDragReorder({\n ids: concerns.map((c) => c.concernId),\n onReorder:\n readOnly || !onReorder\n ? undefined\n : (newIds) => {\n // announce pointer drops too, not just keyboard moves\n setAnnouncement(m('Problem list reordered'));\n onReorder(newIds);\n },\n canDropOn: (dragged, target) => groupOf(dragged) === groupOf(target),\n });\n\n // Unconfirmed concerns get their own list, ahead of Active / Resolved.\n const groups = [\n {\n key: 'unconfirmed',\n label: 'Unconfirmed',\n items: concerns.filter((c) => concernGroupKey(c) === 'unconfirmed'),\n },\n ...GROUP_ORDER.map(({ key, label }) => ({\n key,\n label,\n items: concerns.filter((c) => concernGroupKey(c) === key),\n })),\n // Active stays visible as the empty state only when nothing is recorded\n // at all — an empty Active section next to populated groups would\n // misleadingly read \"No problems recorded\".\n ].filter(\n (g) => g.items.length > 0 || (g.key === 'active' && concerns.length === 0)\n );\n\n return (\n <Card\n ref={ref}\n padding=\"none\"\n className={cn('w-full', className)}\n data-testid={dataTestId}\n {...props}\n >\n {title !== null && (\n <CardHeader className=\"border-border bg-muted/50 border-b px-4 py-3\">\n <h3 className=\"text-foreground text-sm font-semibold tracking-wide uppercase\">\n {m(title)}\n </h3>\n </CardHeader>\n )}\n\n <CardContent className=\"space-y-6 px-4 py-4\">\n {groups.map(({ key, label, items }) => (\n <section key={key} aria-label={m(label)}>\n <h4\n data-slot=\"clinical-list-heading\"\n className=\"border-border text-foreground border-b pb-1 text-sm font-semibold tracking-wide uppercase\"\n >\n {m(label)}\n </h4>\n {items.length > 0 ? (\n <ul className=\"mt-1\">\n {items.map((concern) => (\n <ConcernRow\n key={concern.concernId}\n concern={concern}\n actions={actions}\n inlineActions={inlineActions}\n readOnly={readOnly}\n canReorder={drag.enabled}\n drag={drag}\n onAction={handleAction}\n />\n ))}\n </ul>\n ) : (\n <p className=\"text-muted-foreground mt-2 text-sm\">\n {m(emptyMessage)}\n </p>\n )}\n </section>\n ))}\n\n {!readOnly && onAddProblem && (\n <div className=\"flex items-center gap-1.5\">\n <input\n type=\"text\"\n data-slot=\"input\"\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') submitDraft();\n }}\n placeholder={m('Add problem (name is enough)…')}\n aria-label={m('Add problem')}\n className={cn(\n 'border-border bg-background text-foreground placeholder:text-muted-foreground',\n 'h-8 flex-1 rounded-md border px-2.5 text-sm',\n 'focus:ring-ring focus:ring-2 focus:outline-none'\n )}\n />\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={submitDraft}\n disabled={!draft.trim()}\n leftIcon={<PlusIcon size={12} />}\n className=\"h-8\"\n >\n {m('Add')}\n </Button>\n </div>\n )}\n </CardContent>\n\n {/* Reorder announcements for screen readers */}\n <div aria-live=\"polite\" className=\"sr-only\">\n {announcement}\n </div>\n </Card>\n );\n }\n);\n\nProblemList.displayName = 'ProblemList';\n\nexport default ProblemList;\n"]}
|