@brainfish-ai/components 0.28.12 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/conversation.d.ts +95 -33
- package/dist/esm/chunks/{ChatSearch.DIrtg9k_.js → ChatSearch.DNwmju2M.js} +2 -2
- package/dist/esm/chunks/{ChatSearch.DIrtg9k_.js.map → ChatSearch.DNwmju2M.js.map} +1 -1
- package/dist/esm/chunks/Conversation.DmVOpOVx.js +29 -0
- package/dist/esm/chunks/Conversation.DmVOpOVx.js.map +1 -0
- package/dist/esm/chunks/{FormattedMessage.XNMN23hm.js → FormattedMessage.CIbY8Io7.js} +13 -13
- package/dist/esm/chunks/{FormattedMessage.XNMN23hm.js.map → FormattedMessage.CIbY8Io7.js.map} +1 -1
- package/dist/esm/chunks/ai-logo.Do__PIO3.js +7 -0
- package/dist/esm/chunks/ai-logo.Do__PIO3.js.map +1 -0
- package/dist/esm/chunks/{combobox.MyoPH18G.js → combobox.DJCyKFxV.js} +4 -4
- package/dist/esm/chunks/{combobox.MyoPH18G.js.map → combobox.DJCyKFxV.js.map} +1 -1
- package/dist/esm/chunks/{filters.BHp3ukNW.js → filters.DPv-zTEC.js} +3 -3
- package/dist/esm/chunks/{filters.BHp3ukNW.js.map → filters.DPv-zTEC.js.map} +1 -1
- package/dist/esm/chunks/{font-picker.B9GPXyK4.js → font-picker.BE03shJT.js} +2 -2
- package/dist/esm/chunks/{font-picker.B9GPXyK4.js.map → font-picker.BE03shJT.js.map} +1 -1
- package/dist/esm/chunks/header-nav.Bo_GNqXn.js +14 -0
- package/dist/esm/chunks/header-nav.Bo_GNqXn.js.map +1 -0
- package/dist/esm/chunks/{header-pane.1-3lMndU.js → header-pane.hQNeFYWQ.js} +2 -2
- package/dist/esm/chunks/{header-pane.1-3lMndU.js.map → header-pane.hQNeFYWQ.js.map} +1 -1
- package/dist/esm/chunks/logo.DtwFGMBj.js +5 -0
- package/dist/esm/chunks/logo.DtwFGMBj.js.map +1 -0
- package/dist/esm/chunks/{status-badge.BLB0pWDn.js → status-badge.Cf3R4nVr.js} +3 -3
- package/dist/esm/chunks/{status-badge.BLB0pWDn.js.map → status-badge.Cf3R4nVr.js.map} +1 -1
- package/dist/esm/chunks/{suggestion-card.DOmXIRGW.js → suggestion-card.6ETnT7EM.js} +2 -2
- package/dist/esm/chunks/{suggestion-card.DOmXIRGW.js.map → suggestion-card.6ETnT7EM.js.map} +1 -1
- package/dist/esm/chunks/{two-level-combobox.DJYP--W9.js → two-level-combobox.DQpxBbg3.js} +3 -3
- package/dist/esm/chunks/{two-level-combobox.DJYP--W9.js.map → two-level-combobox.DQpxBbg3.js.map} +1 -1
- package/dist/esm/components/articles-updated.js +2 -2
- package/dist/esm/components/chat-search.js +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/conversation.js +1 -1
- package/dist/esm/components/convos.js +1 -1
- package/dist/esm/components/discoveries-created.js +2 -2
- package/dist/esm/components/filter.js +1 -1
- package/dist/esm/components/font-picker.js +1 -1
- package/dist/esm/components/logo.js +1 -1
- package/dist/esm/components/markdown.js +1 -1
- package/dist/esm/components/metric-card.js +3 -3
- package/dist/esm/components/two-level-combobox.js +1 -1
- package/dist/esm/components/ui/combobox.js +1 -1
- package/dist/esm/components/ui/item.js +5 -5
- package/dist/esm/global.css +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/layouts/full-layout.js +1 -1
- package/dist/esm/layouts/header-nav.js +1 -1
- package/dist/esm/scenes/knowledge-review.js +8 -8
- package/dist/index.d.ts +108 -38
- package/dist/logo.d.ts +9 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
- package/dist/esm/chunks/Conversation.D1Mqf3Qg.js +0 -15
- package/dist/esm/chunks/Conversation.D1Mqf3Qg.js.map +0 -1
- package/dist/esm/chunks/header-nav.C9r4A44a.js +0 -10
- package/dist/esm/chunks/header-nav.C9r4A44a.js.map +0 -1
- package/dist/esm/chunks/logo.CGKfN1U6.js +0 -5
- package/dist/esm/chunks/logo.CGKfN1U6.js.map +0 -1
package/dist/esm/chunks/{two-level-combobox.DJYP--W9.js.map → two-level-combobox.DQpxBbg3.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"two-level-combobox.DJYP--W9.js","sources":["../../../src/components/two-level-combobox/two-level-combobox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Check, CaretUpDown, Spinner, ArrowLeft, X } from '@phosphor-icons/react';\n\nimport { ComboboxItem } from '../combobox';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@/components/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { DivButton } from '@/components/ui/div-button';\nexport interface TwoLevelComboboxProps {\n firstLevelItems: ComboboxItem[];\n fetchSecondLevelItems: (firstLevelId: string) => Promise<ComboboxItem[]>;\n onSelectionChange?: (firstLevel: ComboboxItem | null, secondLevel: ComboboxItem | null) => void;\n firstLevelLabel?: string;\n secondLevelLabel?: string;\n firstLevelPlaceholder?: string;\n secondLevelPlaceholder?: string;\n className?: string;\n debugMode?: boolean;\n displayLabel?: boolean;\n}\n\nexport function TwoLevelCombobox({\n firstLevelItems,\n fetchSecondLevelItems,\n onSelectionChange,\n firstLevelLabel = 'First Level',\n secondLevelLabel = 'Second Level',\n firstLevelPlaceholder = 'Select first level...',\n className,\n debugMode = false,\n displayLabel = true,\n}: TwoLevelComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [view, setView] = React.useState<'first' | 'second'>('first');\n const [selectedFirstLevel, setSelectedFirstLevel] = React.useState<ComboboxItem | null>(null);\n const [selectedSecondLevel, setSelectedSecondLevel] = React.useState<ComboboxItem | null>(null);\n const [secondLevelItems, setSecondLevelItems] = React.useState<ComboboxItem[]>([]);\n const [isLoadingSecondLevel, setIsLoadingSecondLevel] = React.useState(false);\n const [searchValue, setSearchValue] = React.useState('');\n\n const handleFirstLevelSelect = async (item: ComboboxItem) => {\n setSelectedFirstLevel(item);\n setSelectedSecondLevel(null); // Reset second level when first level changes\n setIsLoadingSecondLevel(true);\n setView('second');\n setSearchValue(''); // Clear search input when switching to second level\n\n try {\n const fetchedItems = await fetchSecondLevelItems(item.value);\n setSecondLevelItems(fetchedItems);\n } catch (error) {\n console.warn(error);\n setSecondLevelItems([]);\n } finally {\n setIsLoadingSecondLevel(false);\n }\n\n onSelectionChange?.(item, null);\n };\n\n const handleSecondLevelSelect = (item: ComboboxItem) => {\n setSelectedSecondLevel(item);\n setOpen(false);\n onSelectionChange?.(selectedFirstLevel, item);\n };\n\n const handleBackToFirstLevel = () => {\n setView('first');\n setSearchValue(''); // Clear search input when going back to first level\n };\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen);\n if (isOpen && !selectedFirstLevel) {\n setView('first');\n } else if (isOpen && selectedFirstLevel) {\n setView('second');\n }\n };\n\n const handleClearSelection = (e: React.MouseEvent) => {\n e.stopPropagation(); // Prevent opening the popover\n setSelectedFirstLevel(null);\n setSelectedSecondLevel(null);\n setSecondLevelItems([]);\n setView('first');\n onSelectionChange?.(null, null);\n };\n\n const getLabel = () => {\n if (selectedSecondLevel) return `${firstLevelLabel} & ${secondLevelLabel}`;\n if (selectedFirstLevel) return `Select ${secondLevelLabel}`;\n\n return `Select ${firstLevelLabel}`;\n };\n\n return (\n <div className={cn('space-y-4', className)}>\n <div className=\"space-y-2\">\n {displayLabel && (\n <label className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {getLabel()}\n </label>\n )}\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-full justify-between bg-transparent\"\n >\n <div className=\"flex items-center gap-2 flex-1 min-w-0\">\n {selectedSecondLevel ? (\n <div className=\"truncate flex items-center gap-1\">\n {selectedFirstLevel!.label} → {selectedSecondLevel.label}\n </div>\n ) : selectedFirstLevel ? (\n <div className=\"truncate flex items-center\">{selectedFirstLevel.label}</div>\n ) : (\n <span className=\"truncate\">{firstLevelPlaceholder}</span>\n )}\n </div>\n <div className=\"flex items-center gap-1 shrink-0\">\n {(selectedFirstLevel || selectedSecondLevel) && (\n // Render button as div to prevent button within button error\n <DivButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"size-6 p-0 hover:bg-muted rounded-sm\"\n onClick={handleClearSelection}\n aria-label=\"Clear selection\"\n >\n <X className=\"size-3\" />\n </DivButton>\n )}\n <CaretUpDown className=\"size-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\" align=\"start\">\n <Command>\n {view === 'second' && selectedFirstLevel && (\n <div className=\"flex items-center gap-2 p-2 border-b\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleBackToFirstLevel} className=\"h-8 w-8 p-0 shrink-0\">\n <ArrowLeft className=\"size-4\" />\n </Button>\n <div className=\"text-sm font-medium truncate flex-1 min-w-0 flex items-center\">\n {selectedFirstLevel.label}\n </div>\n {/* Render button as div to prevent button within button error */}\n <DivButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"size-6 p-0 ml-auto hover:bg-muted rounded-sm shrink-0\"\n onClick={handleClearSelection}\n aria-label=\"Clear selection\"\n >\n <X className=\"size-3\" />\n </DivButton>\n {isLoadingSecondLevel && <Spinner className=\"size-4 animate-spin text-muted-foreground shrink-0\" />}\n </div>\n )}\n\n <CommandInput\n value={searchValue}\n onValueChange={setSearchValue}\n placeholder={\n view === 'first'\n ? `Search ${firstLevelLabel.toLowerCase()}...`\n : `Search ${secondLevelLabel.toLowerCase()}...`\n }\n />\n <CommandList>\n <CommandEmpty>\n {view === 'first'\n ? `No ${firstLevelLabel.toLowerCase()} found.`\n : `No ${secondLevelLabel.toLowerCase()} found.`}\n </CommandEmpty>\n\n {view === 'first' && (\n <CommandGroup>\n {firstLevelItems.map((item) => (\n <CommandItem key={item.value} value={item.label} onSelect={() => handleFirstLevelSelect(item)}>\n <span className=\"flex items-center gap-2\">\n {item.icon}\n {item.label}\n </span>\n <Check\n className={cn(\n 'ml-2 size-4',\n selectedFirstLevel?.value === item.value ? 'opacity-100' : 'opacity-0',\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n\n {view === 'second' && selectedFirstLevel && (\n <CommandGroup>\n {isLoadingSecondLevel ? (\n <div className=\"flex items-center justify-center py-6\">\n <Spinner className=\"size-4 animate-spin text-muted-foreground mr-2\" />\n <span className=\"text-sm text-muted-foreground\">\n Loading {secondLevelLabel.toLowerCase()}...\n </span>\n </div>\n ) : (\n secondLevelItems.map((item) => (\n <CommandItem key={item.value} value={item.label} onSelect={() => handleSecondLevelSelect(item)}>\n <span className=\"flex items-center gap-2\">\n {item.icon}\n {item.label}\n </span>\n <Check\n className={cn(\n 'ml-2 size-4',\n selectedSecondLevel?.value === item.value ? 'opacity-100' : 'opacity-0',\n )}\n />\n </CommandItem>\n ))\n )}\n </CommandGroup>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n\n {(selectedFirstLevel || selectedSecondLevel) && debugMode && (\n <div className=\"mt-6 p-4 bg-muted/50 rounded-lg space-y-2\">\n <h3 className=\"font-medium text-sm\">Selected Values:</h3>\n {selectedFirstLevel && (\n <div className=\"text-sm text-muted-foreground flex items-center gap-1\">\n <span className=\"font-medium\">{firstLevelLabel}:</span>\n <div className=\"flex items-center\">{selectedFirstLevel.label}</div>\n </div>\n )}\n {selectedSecondLevel && (\n <div className=\"text-sm text-muted-foreground flex items-center gap-1\">\n <span className=\"font-medium\">{secondLevelLabel}:</span>\n <div className=\"flex items-center\">{selectedSecondLevel.label}</div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"names":["TwoLevelCombobox","firstLevelItems","fetchSecondLevelItems","onSelectionChange","firstLevelLabel","secondLevelLabel","firstLevelPlaceholder","className","debugMode","displayLabel","open","setOpen","React","useState","view","setView","selectedFirstLevel","setSelectedFirstLevel","selectedSecondLevel","setSelectedSecondLevel","secondLevelItems","setSecondLevelItems","isLoadingSecondLevel","setIsLoadingSecondLevel","searchValue","setSearchValue","handleClearSelection","e","stopPropagation","createElement","cn","Popover","onOpenChange","isOpen","PopoverTrigger","asChild","Button","variant","role","label","DivButton","size","onClick","X","CaretUpDown","PopoverContent","align","Command","ArrowLeft","Spinner","CommandInput","value","onValueChange","placeholder","toLowerCase","CommandList","CommandEmpty","CommandGroup","map","item","CommandItem","key","onSelect","async","fetchedItems","error","console","warn","handleFirstLevelSelect","icon","Check","handleSecondLevelSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"two-level-combobox.DQpxBbg3.js","sources":["../../../src/components/two-level-combobox/two-level-combobox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Check, CaretUpDown, Spinner, ArrowLeft, X } from '@phosphor-icons/react';\n\nimport { ComboboxItem } from '../combobox';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@/components/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { DivButton } from '@/components/ui/div-button';\nexport interface TwoLevelComboboxProps {\n firstLevelItems: ComboboxItem[];\n fetchSecondLevelItems: (firstLevelId: string) => Promise<ComboboxItem[]>;\n onSelectionChange?: (firstLevel: ComboboxItem | null, secondLevel: ComboboxItem | null) => void;\n firstLevelLabel?: string;\n secondLevelLabel?: string;\n firstLevelPlaceholder?: string;\n secondLevelPlaceholder?: string;\n className?: string;\n debugMode?: boolean;\n displayLabel?: boolean;\n}\n\nexport function TwoLevelCombobox({\n firstLevelItems,\n fetchSecondLevelItems,\n onSelectionChange,\n firstLevelLabel = 'First Level',\n secondLevelLabel = 'Second Level',\n firstLevelPlaceholder = 'Select first level...',\n className,\n debugMode = false,\n displayLabel = true,\n}: TwoLevelComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [view, setView] = React.useState<'first' | 'second'>('first');\n const [selectedFirstLevel, setSelectedFirstLevel] = React.useState<ComboboxItem | null>(null);\n const [selectedSecondLevel, setSelectedSecondLevel] = React.useState<ComboboxItem | null>(null);\n const [secondLevelItems, setSecondLevelItems] = React.useState<ComboboxItem[]>([]);\n const [isLoadingSecondLevel, setIsLoadingSecondLevel] = React.useState(false);\n const [searchValue, setSearchValue] = React.useState('');\n\n const handleFirstLevelSelect = async (item: ComboboxItem) => {\n setSelectedFirstLevel(item);\n setSelectedSecondLevel(null); // Reset second level when first level changes\n setIsLoadingSecondLevel(true);\n setView('second');\n setSearchValue(''); // Clear search input when switching to second level\n\n try {\n const fetchedItems = await fetchSecondLevelItems(item.value);\n setSecondLevelItems(fetchedItems);\n } catch (error) {\n console.warn(error);\n setSecondLevelItems([]);\n } finally {\n setIsLoadingSecondLevel(false);\n }\n\n onSelectionChange?.(item, null);\n };\n\n const handleSecondLevelSelect = (item: ComboboxItem) => {\n setSelectedSecondLevel(item);\n setOpen(false);\n onSelectionChange?.(selectedFirstLevel, item);\n };\n\n const handleBackToFirstLevel = () => {\n setView('first');\n setSearchValue(''); // Clear search input when going back to first level\n };\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen);\n if (isOpen && !selectedFirstLevel) {\n setView('first');\n } else if (isOpen && selectedFirstLevel) {\n setView('second');\n }\n };\n\n const handleClearSelection = (e: React.MouseEvent) => {\n e.stopPropagation(); // Prevent opening the popover\n setSelectedFirstLevel(null);\n setSelectedSecondLevel(null);\n setSecondLevelItems([]);\n setView('first');\n onSelectionChange?.(null, null);\n };\n\n const getLabel = () => {\n if (selectedSecondLevel) return `${firstLevelLabel} & ${secondLevelLabel}`;\n if (selectedFirstLevel) return `Select ${secondLevelLabel}`;\n\n return `Select ${firstLevelLabel}`;\n };\n\n return (\n <div className={cn('space-y-4', className)}>\n <div className=\"space-y-2\">\n {displayLabel && (\n <label className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {getLabel()}\n </label>\n )}\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-full justify-between bg-transparent\"\n >\n <div className=\"flex items-center gap-2 flex-1 min-w-0\">\n {selectedSecondLevel ? (\n <div className=\"truncate flex items-center gap-1\">\n {selectedFirstLevel!.label} → {selectedSecondLevel.label}\n </div>\n ) : selectedFirstLevel ? (\n <div className=\"truncate flex items-center\">{selectedFirstLevel.label}</div>\n ) : (\n <span className=\"truncate\">{firstLevelPlaceholder}</span>\n )}\n </div>\n <div className=\"flex items-center gap-1 shrink-0\">\n {(selectedFirstLevel || selectedSecondLevel) && (\n // Render button as div to prevent button within button error\n <DivButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"size-6 p-0 hover:bg-muted rounded-sm\"\n onClick={handleClearSelection}\n aria-label=\"Clear selection\"\n >\n <X className=\"size-3\" />\n </DivButton>\n )}\n <CaretUpDown className=\"size-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\" align=\"start\">\n <Command>\n {view === 'second' && selectedFirstLevel && (\n <div className=\"flex items-center gap-2 p-2 border-b\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleBackToFirstLevel} className=\"h-8 w-8 p-0 shrink-0\">\n <ArrowLeft className=\"size-4\" />\n </Button>\n <div className=\"text-sm font-medium truncate flex-1 min-w-0 flex items-center\">\n {selectedFirstLevel.label}\n </div>\n {/* Render button as div to prevent button within button error */}\n <DivButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"size-6 p-0 ml-auto hover:bg-muted rounded-sm shrink-0\"\n onClick={handleClearSelection}\n aria-label=\"Clear selection\"\n >\n <X className=\"size-3\" />\n </DivButton>\n {isLoadingSecondLevel && <Spinner className=\"size-4 animate-spin text-muted-foreground shrink-0\" />}\n </div>\n )}\n\n <CommandInput\n value={searchValue}\n onValueChange={setSearchValue}\n placeholder={\n view === 'first'\n ? `Search ${firstLevelLabel.toLowerCase()}...`\n : `Search ${secondLevelLabel.toLowerCase()}...`\n }\n />\n <CommandList>\n <CommandEmpty>\n {view === 'first'\n ? `No ${firstLevelLabel.toLowerCase()} found.`\n : `No ${secondLevelLabel.toLowerCase()} found.`}\n </CommandEmpty>\n\n {view === 'first' && (\n <CommandGroup>\n {firstLevelItems.map((item) => (\n <CommandItem key={item.value} value={item.label} onSelect={() => handleFirstLevelSelect(item)}>\n <span className=\"flex items-center gap-2\">\n {item.icon}\n {item.label}\n </span>\n <Check\n className={cn(\n 'ml-2 size-4',\n selectedFirstLevel?.value === item.value ? 'opacity-100' : 'opacity-0',\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n\n {view === 'second' && selectedFirstLevel && (\n <CommandGroup>\n {isLoadingSecondLevel ? (\n <div className=\"flex items-center justify-center py-6\">\n <Spinner className=\"size-4 animate-spin text-muted-foreground mr-2\" />\n <span className=\"text-sm text-muted-foreground\">\n Loading {secondLevelLabel.toLowerCase()}...\n </span>\n </div>\n ) : (\n secondLevelItems.map((item) => (\n <CommandItem key={item.value} value={item.label} onSelect={() => handleSecondLevelSelect(item)}>\n <span className=\"flex items-center gap-2\">\n {item.icon}\n {item.label}\n </span>\n <Check\n className={cn(\n 'ml-2 size-4',\n selectedSecondLevel?.value === item.value ? 'opacity-100' : 'opacity-0',\n )}\n />\n </CommandItem>\n ))\n )}\n </CommandGroup>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n\n {(selectedFirstLevel || selectedSecondLevel) && debugMode && (\n <div className=\"mt-6 p-4 bg-muted/50 rounded-lg space-y-2\">\n <h3 className=\"font-medium text-sm\">Selected Values:</h3>\n {selectedFirstLevel && (\n <div className=\"text-sm text-muted-foreground flex items-center gap-1\">\n <span className=\"font-medium\">{firstLevelLabel}:</span>\n <div className=\"flex items-center\">{selectedFirstLevel.label}</div>\n </div>\n )}\n {selectedSecondLevel && (\n <div className=\"text-sm text-muted-foreground flex items-center gap-1\">\n <span className=\"font-medium\">{secondLevelLabel}:</span>\n <div className=\"flex items-center\">{selectedSecondLevel.label}</div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"names":["TwoLevelCombobox","firstLevelItems","fetchSecondLevelItems","onSelectionChange","firstLevelLabel","secondLevelLabel","firstLevelPlaceholder","className","debugMode","displayLabel","open","setOpen","React","useState","view","setView","selectedFirstLevel","setSelectedFirstLevel","selectedSecondLevel","setSelectedSecondLevel","secondLevelItems","setSecondLevelItems","isLoadingSecondLevel","setIsLoadingSecondLevel","searchValue","setSearchValue","handleClearSelection","e","stopPropagation","createElement","cn","Popover","onOpenChange","isOpen","PopoverTrigger","asChild","Button","variant","role","label","DivButton","size","onClick","X","CaretUpDown","PopoverContent","align","Command","ArrowLeft","Spinner","CommandInput","value","onValueChange","placeholder","toLowerCase","CommandList","CommandEmpty","CommandGroup","map","item","CommandItem","key","onSelect","async","fetchedItems","error","console","warn","handleFirstLevelSelect","icon","Check","handleSecondLevelSelect"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import e from"react";import{LineChart as t,CartesianGrid as a,XAxis as r,Line as c}from"recharts";import{a as s}from"../chunks/trend-value.BPBDBsk2.js";import{Card as l,CardHeader as n,CardContent as o}from"./ui/card.js";import{C as m,a as i,b as d,c as p,d as k}from"../chunks/chart.BDL2tf-S.js";import{f as u}from"../chunks/formatNumber.DhVn228t.js";import{u as f}from"../chunks/useChartDateFormatters.Dx2h5AAm.js";import{c as h}from"../chunks/utils.C6Qu-kwd.js";function x({total:x,trend:E,trendValue:y,data:g,chartConfig:b,dashedKeys:N=[],locale:v,className:j}){const{tickFormatter:w,formatXLabel:
|
|
1
|
+
import e from"react";import{LineChart as t,CartesianGrid as a,XAxis as r,Line as c}from"recharts";import{a as s}from"../chunks/trend-value.BPBDBsk2.js";import{Card as l,CardHeader as n,CardContent as o}from"./ui/card.js";import{C as m,a as i,b as d,c as p,d as k}from"../chunks/chart.BDL2tf-S.js";import{f as u}from"../chunks/formatNumber.DhVn228t.js";import{u as f}from"../chunks/useChartDateFormatters.Dx2h5AAm.js";import{c as h}from"../chunks/utils.C6Qu-kwd.js";function x({total:x,trend:E,trendValue:y,data:g,chartConfig:b,dashedKeys:N=[],locale:v,className:j}){const{tickFormatter:w,formatXLabel:A}=f(v),C=Object.keys(b);/* @__PURE__ */
|
|
2
2
|
return e.createElement(l,{className:h("shadow-none border border-dark-300 rounded-lg",j)},/* @__PURE__ */e.createElement(n,{className:"p-0 space-y-0 border-b border-dark-300"},/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1 justify-center py-4 px-4"},/* @__PURE__ */e.createElement("p",{className:"uppercase heading-xxxs font-semibold text-dark tracking-normal"},"Articles updated"),/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-2"},/* @__PURE__ */e.createElement("span",{className:"font-mono text-3xl leading-10 text-dark"},u(x,{})),/* @__PURE__ */e.createElement(s,{trend:E,trendValue:y})))),/* @__PURE__ */e.createElement(o,{className:"p-4"},/* @__PURE__ */e.createElement(m,{config:b,className:"h-48 w-full"},/* @__PURE__ */e.createElement(t,{data:g,margin:{top:8,left:20,right:20,bottom:0}},/* @__PURE__ */e.createElement(a,{horizontal:!0,vertical:!1,className:"stroke-dark-300"}),/* @__PURE__ */e.createElement(r,{dataKey:"date",tickLine:!1,axisLine:!1,tickMargin:8,padding:{left:15,right:15},minTickGap:32,interval:"preserveStartEnd",tickFormatter:w,tick:({x:t,y:a,payload:r,index:c})=>{const s=0===c,l=c===g.length-1,n=s?"start":l?"end":"middle",o=s?t-15:l?t+15:t;/* @__PURE__ */
|
|
3
|
-
return e.createElement("text",{x:o,y:a,dy:12,textAnchor:n,className:"text-xs fill-dark-600"},w(r.value))}}),/* @__PURE__ */e.createElement(i,{cursor:!1,content:({active:t,payload:a,label:r})=>/* @__PURE__ */e.createElement(d,{active:t,payload:a,label:
|
|
3
|
+
return e.createElement("text",{x:o,y:a,dy:12,textAnchor:n,className:"text-xs fill-dark-600"},w(r.value))}}),/* @__PURE__ */e.createElement(i,{cursor:!1,content:({active:t,payload:a,label:r})=>/* @__PURE__ */e.createElement(d,{active:t,payload:a,label:A(r),className:"min-w-52"})}),C.map(t=>{const a=N.includes(t);/* @__PURE__ */
|
|
4
4
|
return e.createElement(c,{key:t,dataKey:t,type:"monotone",stroke:`var(--color-${t})`,strokeWidth:2,strokeDasharray:a?"5 5":void 0,dot:({cx:t,cy:a,stroke:r})=>/* @__PURE__ */e.createElement("circle",{cx:t,cy:a,r:4,fill:"white",stroke:r,strokeWidth:2}),activeDot:{r:5,strokeWidth:0}})}),/* @__PURE__ */e.createElement(p,{content:/* @__PURE__ */e.createElement(k,null)})))))}export{x as ArticlesUpdated};
|
|
5
5
|
//# sourceMappingURL=articles-updated.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{C as ChatSearch,a as ChatSearchProvider,R as ResolvedConversationFooter,u as useChatSearch,b as useIsChatSearchDirty}from"../chunks/ChatSearch.
|
|
1
|
+
export{C as ChatSearch,a as ChatSearchProvider,R as ResolvedConversationFooter,u as useChatSearch,b as useIsChatSearchDirty}from"../chunks/ChatSearch.DNwmju2M.js";
|
|
2
2
|
//# sourceMappingURL=chat-search.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{C as Combobox}from"../chunks/combobox.
|
|
1
|
+
export{C as Combobox}from"../chunks/combobox.DJCyKFxV.js";
|
|
2
2
|
//# sourceMappingURL=combobox.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{C as ContextPillBadge,a as Conversation,b as ConversationActions,c as ConversationInput,d as ConversationMessageAssistant,e as ConversationMessageUser,f as ConversationMessages,g as ConversationProvider,h as ConversationStatus,i as ConversationSuggestions,u as useConversation}from"../chunks/Conversation.
|
|
1
|
+
export{C as ContextPillBadge,a as Conversation,b as ConversationActions,c as ConversationInput,d as ConversationMessageAssistant,e as ConversationMessageUser,f as ConversationMessages,g as ConversationProvider,h as ConversationStatus,i as ConversationSuggestions,u as useConversation}from"../chunks/Conversation.DmVOpOVx.js";
|
|
2
2
|
//# sourceMappingURL=conversation.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e,{useState as t,useEffect as a,useRef as s}from"react";import{S as r}from"../chunks/status-badge.
|
|
1
|
+
import e,{useState as t,useEffect as a,useRef as s}from"react";import{S as r}from"../chunks/status-badge.Cf3R4nVr.js";import{ArrowSquareOut as n,CheckCircle as l,XCircle as c,ListMagnifyingGlass as i,UserCircle as m,Eye as o,UserFocus as d,Circle as u}from"@phosphor-icons/react";import{F as p}from"../chunks/FormattedMessage.CIbY8Io7.js";import{Spinner as f}from"./ui/spinner.js";import{B as E}from"../chunks/button.D_2SonNs.js";import{useForm as g,Controller as h}from"react-hook-form";import{Select as v,SelectTrigger as N,SelectValue as x,SelectContent as b,SelectItem as w}from"./ui/select.js";import{Label as y}from"./ui/label.js";import{Textarea as k}from"./ui/textarea.js";import{Tooltip as C,TooltipTrigger as j,TooltipContent as A}from"./ui/tooltip.js";import{c as _}from"../chunks/utils.C6Qu-kwd.js";import{DivButton as O}from"./ui/div-button.js";import{ScrollArea as S}from"./ui/scroll-area.js";import{Sheet as z,SheetTrigger as D,SheetContent as F,SheetHeader as R,SheetTitle as M,SheetDescription as I}from"./ui/sheet.js";import{Badge as q}from"./ui/badge.js";import{G as P}from"../chunks/generating-star.BN9p_FDu.js";import{Item as T,ItemHeader as B,ItemTitle as L,ItemContent as U,ItemDescription as G}from"./ui/item.js";import{Accordion as K,AccordionItem as W,AccordionTrigger as H,AccordionContent as V}from"./ui/accordion.js";import{c as J,b as Q}from"../chunks/formatDate.D2xEZm8f.js";import{createId as $}from"@paralleldrive/cuid2";import{Table as X,TableHeader as Y,TableRow as Z,TableHead as ee,TableBody as te,TableCell as ae}from"./ui/table.js";import '../global.css';import '../convos.css';/* empty css */import"@radix-ui/react-avatar";import"clsx";import"tailwind-merge";import"@radix-ui/react-collapsible";import"./ui/dropdown-menu.js";import"./ui/switch.js";import"./ui/input.js";import"./ui/popover.js";import"./ui/command.js";import"./ui/dialog.js";import"./ui/card.js";import"./ui/progress.js";import"@radix-ui/react-accordion";import"./ui/alert-dialog.js";import"./ui/alert.js";import"./ui/button-group.js";import"./ui/calendar.js";import"./ui/icon.js";import"./ui/separator.js";import"../logos/microsoft-teams-logo.js";import"../logos/slack-logo.js";import"../logos/microsoft-logo.js";import{d as se}from"../chunks/dark.DuW7JuAk.js";function re({messageId:s}){const{fetchAnswerDiagnostics:r}=ye(),[l,c]=t(null),[i,m]=t(!0);return a(()=>{r(s).then(e=>c(e)).finally(()=>m(!1))},[r,s]),/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-4 px-4 flex-shrink-0 bg-surface","data-name":"discard-dialog-answer-diagnostic"},i?/* @__PURE__ */e.createElement("div",{className:"flex items-center justify-center h-full"},/* @__PURE__ */e.createElement(f,null)):/* @__PURE__ */e.createElement(e.Fragment,null,l&&/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("dl",{className:"grid grid-cols-[1fr_2fr] grid-rows-2 gap-5"},/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1"},/* @__PURE__ */e.createElement("dt",{className:"heading-xs"},"Confidence"),/* @__PURE__ */e.createElement("dd",{className:"text-sm"},l.confidence_score)),l.answer_generation_type&&/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1"},/* @__PURE__ */e.createElement("dt",{className:"heading-xs"},"Answer Type"),/* @__PURE__ */e.createElement("dd",{className:"text-sm"},l.answer_generation_type)),l.query_context_relevance&&/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1"},/* @__PURE__ */e.createElement("dt",{className:"heading-xs"},"Relevance"),/* @__PURE__ */e.createElement("dd",{className:"text-sm"},l.query_context_relevance)),l.context_sufficiency&&/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1"},/* @__PURE__ */e.createElement("dt",{className:"heading-xs"},"Context"),/* @__PURE__ */e.createElement("dd",{className:"text-sm"},l.context_sufficiency))),l.confidence_justification&&/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-2","data-name":"diagnostic-justification"},/* @__PURE__ */e.createElement("span",{className:"heading-xs"},"Justification"),/* @__PURE__ */e.createElement("p",{className:"text-sm my-0"},l.confidence_justification)),l.evidence_from_context&&l.evidence_from_context.length>0&&/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-2","data-name":"diagnostic-evidence"},/* @__PURE__ */e.createElement("span",{className:"heading-xs"},"Evidence (from Knowledge Base)"),l.evidence_from_context.map((t,a)=>/* @__PURE__ */e.createElement("div",{key:a,className:"flex flex-col gap-1"},t.supporting_quote&&/* @__PURE__ */e.createElement("p",{className:"text-sm my-0"},t.supporting_quote),t.url&&/* @__PURE__ */e.createElement(E,{variant:"link",size:"sm",className:"flex gap-1 text-sm self-end items-center",asChild:!0},/* @__PURE__ */e.createElement("a",{href:t.url,target:"_blank",rel:"noopener noreferrer"},/* @__PURE__ */e.createElement("span",null,"Source"),/* @__PURE__ */e.createElement(n,{size:16})))))))))}var ne=/* @__PURE__ */(e=>(e.INCORRECT_ANSWER="incorrect_answer",e.HALLUCINATED_ANSWER="hallucinated_answer",e.OVERSHARING="oversharing",e.WRONG_ARTICLE_SURFACED="wrong_article_surfaced",e.OTHER="other",e))(ne||{});const le={incorrect_answer:"Incorrect answer",hallucinated_answer:"Hallucinated answer",oversharing:"Oversharing",wrong_article_surfaced:"Wrong article surfaced",other:"Other"};function ce({discarded:r,discardedMeta:n,onSubmit:i,onApprove:m,selectOpenRef:o,className:d}){const[u,p]=t(r??!1),[f,O]=t(!1),[S,z]=t(r),D=s(null);a(()=>{z(r),r&&p(!0)},[r]);const F=e=>{O(e),o&&(o.current.isOpen=e)};a(()=>{o&&(o.current.close=()=>F(!1))},[o]);const{control:R,register:M,handleSubmit:I,reset:q,formState:{isSubmitting:P}}=g({defaultValues:{reason:n?.reason,preferredAnswer:n?.suggestedAnswer||""}});a(()=>{q({reason:n?.reason,preferredAnswer:n?.suggestedAnswer||""})},[n,q]),a(()=>{D.current&&(D.current.inert=!u)},[u]);const T=null!=S,B=!T||!1===S,L=!T||!0===S;/* @__PURE__ */
|
|
2
2
|
return e.createElement("div",{className:_("space-y-4",d)},/* @__PURE__ */e.createElement("div",{className:"flex gap-2 px-4"},B&&/* @__PURE__ */e.createElement(C,null,/* @__PURE__ */e.createElement(j,{asChild:!0},/* @__PURE__ */e.createElement(E,{variant:"surface",elevation:"shadow",size:"sm",className:_("text-default !opacity-100",{"bg-green-600 text-dark-100":!1===S}),disabled:T,onClick:async()=>{try{await m(),z(!1),p(!1),F(!1)}catch(e){console.error("Failed to approve:",e)}}},
|
|
3
3
|
/* @__PURE__ */e.createElement(l,null)," ",!1===S?"Approved":"Approve")),/* @__PURE__ */e.createElement(A,null,/* @__PURE__ */e.createElement("span",null,"Approve the answer"))),L&&/* @__PURE__ */e.createElement(C,null,/* @__PURE__ */e.createElement(j,{asChild:!0},/* @__PURE__ */e.createElement(E,{variant:"surface",elevation:"shadow",size:"sm",className:_("text-default !opacity-100",{"bg-red-600 text-dark-100":!0===S}),disabled:T,onClick:()=>p(!u)},
|
|
4
4
|
/* @__PURE__ */e.createElement(c,null),!0===S?"Discarded":"Discard")),/* @__PURE__ */e.createElement(A,null,/* @__PURE__ */e.createElement("span",null,"Discard the answer")))),/* @__PURE__ */e.createElement("div",{className:_("grid transition-[grid-template-rows] duration-300 ease-in-out",u?"grid-rows-[1fr]":"grid-rows-[0fr]")},S?/* @__PURE__ */e.createElement("div",{className:_("overflow-hidden min-h-0 px-4 bg-dark-200 space-y-4",u?"py-4 mb-4":"py-0"),"data-name":"discard-dialog-reason"},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import e from"react";import{LineChart as t,CartesianGrid as a,XAxis as r,Line as l}from"recharts";import{a as s}from"../chunks/trend-value.BPBDBsk2.js";import{Card as c,CardHeader as n,CardContent as m}from"./ui/card.js";import{C as o,a as i,b as d,c as p,d as x}from"../chunks/chart.BDL2tf-S.js";import{f}from"../chunks/formatNumber.DhVn228t.js";import{u as k}from"../chunks/useChartDateFormatters.Dx2h5AAm.js";import{c as u}from"../chunks/utils.C6Qu-kwd.js";const E=e=>f(e,{});function b({total:f,trend:b,trendValue:
|
|
2
|
-
return e.createElement(c,{className:u("shadow-none border border-dark-300 rounded-lg",w)},/* @__PURE__ */e.createElement(n,{className:"p-0 space-y-0 border-b border-dark-300"},/* @__PURE__ */e.createElement("div",{className:"flex items-stretch justify-between"},/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1 justify-center py-4 px-4"},/* @__PURE__ */e.createElement("p",{className:"uppercase heading-xxxs font-semibold text-dark tracking-normal"},"Discoveries created"),/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-2"},/* @__PURE__ */e.createElement("span",{className:"font-mono text-3xl leading-10 text-dark"},E(f)),/* @__PURE__ */e.createElement(s,{trend:b,trendValue:
|
|
1
|
+
import e from"react";import{LineChart as t,CartesianGrid as a,XAxis as r,Line as l}from"recharts";import{a as s}from"../chunks/trend-value.BPBDBsk2.js";import{Card as c,CardHeader as n,CardContent as m}from"./ui/card.js";import{C as o,a as i,b as d,c as p,d as x}from"../chunks/chart.BDL2tf-S.js";import{f}from"../chunks/formatNumber.DhVn228t.js";import{u as k}from"../chunks/useChartDateFormatters.Dx2h5AAm.js";import{c as u}from"../chunks/utils.C6Qu-kwd.js";const E=e=>f(e,{});function b({total:f,trend:b,trendValue:y,subBreakdowns:h,sourceTotals:N,data:v,chartConfig:g,locale:j,className:w}){const{tickFormatter:C,formatXLabel:D}=k(j),F=Object.keys(g);/* @__PURE__ */
|
|
2
|
+
return e.createElement(c,{className:u("shadow-none border border-dark-300 rounded-lg",w)},/* @__PURE__ */e.createElement(n,{className:"p-0 space-y-0 border-b border-dark-300"},/* @__PURE__ */e.createElement("div",{className:"flex items-stretch justify-between"},/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-1 justify-center py-4 px-4"},/* @__PURE__ */e.createElement("p",{className:"uppercase heading-xxxs font-semibold text-dark tracking-normal"},"Discoveries created"),/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-2"},/* @__PURE__ */e.createElement("span",{className:"font-mono text-3xl leading-10 text-dark"},E(f)),/* @__PURE__ */e.createElement(s,{trend:b,trendValue:y}),h.map((t,a)=>/* @__PURE__ */e.createElement("span",{key:t.label,className:"text-xs leading-4 text-dark-600"},a>0&&/* @__PURE__ */e.createElement("span",{className:"mr-2"},"·"),E(t.value)," ",t.label)))),/* @__PURE__ */e.createElement("div",{className:"flex items-center self-stretch"},N.map(t=>/* @__PURE__ */e.createElement("div",{key:t.key,className:"border-l border-dark-300 flex flex-col justify-center px-4 py-2 self-stretch"},
|
|
3
3
|
/* @__PURE__ */e.createElement("span",{className:"text-xs leading-4 text-dark-700"},t.label),
|
|
4
4
|
/* @__PURE__ */e.createElement("span",{className:"font-mono text-3xl leading-10 text-dark"},E(t.value))))))),/* @__PURE__ */e.createElement(m,{className:"px-4 pt-4 pb-0"},/* @__PURE__ */e.createElement(o,{config:g,className:"h-48 w-full"},/* @__PURE__ */e.createElement(t,{data:v,margin:{top:8,left:0,right:0,bottom:0}},/* @__PURE__ */e.createElement(a,{horizontal:!0,vertical:!1,className:"stroke-dark-300"}),/* @__PURE__ */e.createElement(r,{dataKey:"date",tickLine:!1,axisLine:!1,tickMargin:8,minTickGap:32,interval:"preserveStartEnd",tickFormatter:C,tick:({x:t,y:a,payload:r})=>/* @__PURE__ */e.createElement("text",{x:t,y:a,dy:12,textAnchor:"middle",className:"text-xs fill-dark-600"},C(r.value))}),/* @__PURE__ */e.createElement(i,{cursor:!1,content:({active:t,payload:a,label:r})=>/* @__PURE__ */e.createElement(d,{active:t,payload:a,label:D(r)})}),F.map(t=>/* @__PURE__ */e.createElement(l,{key:t,dataKey:t,type:"monotone",stroke:`var(--color-${t})`,strokeWidth:2,dot:!1,activeDot:{r:4,strokeWidth:0}})),/* @__PURE__ */e.createElement(p,{content:/* @__PURE__ */e.createElement(x,null)})))))}export{b as DiscoveriesCreated};
|
|
5
5
|
//# sourceMappingURL=discoveries-created.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{F as Filter,a as Filters,O as Operator}from"../chunks/filters.
|
|
1
|
+
export{F as Filter,a as Filters,O as Operator}from"../chunks/filters.DPv-zTEC.js";
|
|
2
2
|
//# sourceMappingURL=filter.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{F as FontPicker,a as FontPickerItem,c as clearFontCache,g as getCachedFonts,l as loadFont,s as setCachedFonts,u as useFontOptions}from"../chunks/font-picker.
|
|
1
|
+
export{F as FontPicker,a as FontPickerItem,c as clearFontCache,g as getCachedFonts,l as loadFont,s as setCachedFonts,u as useFontOptions}from"../chunks/font-picker.BE03shJT.js";
|
|
2
2
|
//# sourceMappingURL=font-picker.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{L as Logo}from"../chunks/logo.
|
|
1
|
+
export{L as Logo}from"../chunks/logo.DtwFGMBj.js";export{C as ChatLogo}from"../chunks/chat-logo.CqPppEb9.js";export{A as AILogo}from"../chunks/ai-logo.Do__PIO3.js";
|
|
2
2
|
//# sourceMappingURL=logo.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{C as CodeBlock,F as FormattedMessage,M as MemoizedReactMarkdown,Z as ZoomableImage}from"../chunks/FormattedMessage.
|
|
1
|
+
export{C as CodeBlock,F as FormattedMessage,M as MemoizedReactMarkdown,Z as ZoomableImage}from"../chunks/FormattedMessage.CIbY8Io7.js";export{MermaidDiagram}from"../chunks/MermaidDiagram.PRgXQ5Yh.js";
|
|
2
2
|
//# sourceMappingURL=markdown.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e from"react";import{T as t,a}from"../chunks/trend-value.BPBDBsk2.js";import{Card as r,CardHeader as n,CardDescription as m,CardTitle as s,CardContent as l}from"./ui/card.js";import{Tooltip as c,TooltipTrigger as o,TooltipContent as i}from"./ui/tooltip.js";import{c as d}from"../chunks/utils.C6Qu-kwd.js";import{f as
|
|
2
|
-
return e.createElement(r,{className:d("p-4 shadow-none",E)},/* @__PURE__ */e.createElement(n,{className:"p-0 space-y-0","data-name":"header"},/* @__PURE__ */e.createElement(m,{"data-name":"title",className:"uppercase font-inter heading-xxxs tracking-normal text-dark"},
|
|
3
|
-
/* @__PURE__ */e.createElement(a,{trend:x,trendValue:N})))}export{f as MetricCard,
|
|
1
|
+
import e from"react";import{T as t,a}from"../chunks/trend-value.BPBDBsk2.js";import{Card as r,CardHeader as n,CardDescription as m,CardTitle as s,CardContent as l}from"./ui/card.js";import{Tooltip as c,TooltipTrigger as o,TooltipContent as i}from"./ui/tooltip.js";import{c as d}from"../chunks/utils.C6Qu-kwd.js";import{f as u}from"../chunks/formatNumber.DhVn228t.js";const p="A card to display metrics and its trend";function f({title:p,value:f,trend:x,trendValue:N,className:E}){let h=u(Number(f));isNaN(Number(f))&&(h=f);const k=Number(f)>=1e3;/* @__PURE__ */
|
|
2
|
+
return e.createElement(r,{className:d("p-4 shadow-none",E)},/* @__PURE__ */e.createElement(n,{className:"p-0 space-y-0","data-name":"header"},/* @__PURE__ */e.createElement(m,{"data-name":"title",className:"uppercase font-inter heading-xxxs tracking-normal text-dark"},p),/* @__PURE__ */e.createElement(s,{className:"justify-start text-dark text-[64px] font-normal font-inter leading-[72px]"},k?/* @__PURE__ */e.createElement(c,null,/* @__PURE__ */e.createElement(o,{asChild:!0},/* @__PURE__ */e.createElement("span",null,h)),/* @__PURE__ */e.createElement(i,null,f)):/* @__PURE__ */e.createElement("span",null,h))),/* @__PURE__ */e.createElement(l,{"data-name":"content",className:d("p-0 flex items-center gap-[2px]",{"text-green-600":x===t.UP,"text-red-600":x===t.DOWN,"text-dark-600":x===t.FLAT})},
|
|
3
|
+
/* @__PURE__ */e.createElement(a,{trend:x,trendValue:N})))}export{f as MetricCard,p as description};
|
|
4
4
|
//# sourceMappingURL=metric-card.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{T as TwoLevelCombobox}from"../chunks/two-level-combobox.
|
|
1
|
+
export{T as TwoLevelCombobox}from"../chunks/two-level-combobox.DQpxBbg3.js";
|
|
2
2
|
//# sourceMappingURL=two-level-combobox.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{C as Combobox}from"../../chunks/combobox.
|
|
1
|
+
export{C as Combobox}from"../../chunks/combobox.DJCyKFxV.js";
|
|
2
2
|
//# sourceMappingURL=combobox.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import*as e from"react";import{S as t}from"../../chunks/index.uF4ME3WQ.js";import{cva as a}from"class-variance-authority";import{c as s}from"../../chunks/utils.C6Qu-kwd.js";import{Separator as
|
|
1
|
+
import*as e from"react";import{S as t}from"../../chunks/index.uF4ME3WQ.js";import{cva as a}from"class-variance-authority";import{c as s}from"../../chunks/utils.C6Qu-kwd.js";import{Separator as r}from"./separator.js";function n({className:t,...a}){/* @__PURE__ */
|
|
2
2
|
return e.createElement("div",{role:"list","data-slot":"item-group",className:s("group/item-group flex flex-col",t),...a})}function i({className:t,...a}){/* @__PURE__ */
|
|
3
|
-
return e.createElement(
|
|
4
|
-
return e.createElement(m,{"data-slot":"item","data-variant":
|
|
5
|
-
return e.createElement("div",{"data-slot":"item-media","data-variant":a,className:s(m({variant:a,className:t})),...
|
|
3
|
+
return e.createElement(r,{"data-slot":"item-separator",orientation:"horizontal",className:s("my-0",t),...a})}const l=a("group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]",{variants:{variant:{default:"bg-transparent",outline:"border-border",muted:"bg-muted/50"},size:{default:"gap-4 p-4 ",sm:"gap-2.5 px-4 py-3"}},defaultVariants:{variant:"default",size:"default"}});function o({className:a,variant:r="default",size:n="default",asChild:i=!1,...o}){const m=i?t:"div";/* @__PURE__ */
|
|
4
|
+
return e.createElement(m,{"data-slot":"item","data-variant":r,"data-size":n,className:s(l({variant:r,size:n,className:a})),...o})}const m=a("flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none",{variants:{variant:{default:"bg-transparent",icon:"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4",image:"size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover"}},defaultVariants:{variant:"default"}});function c({className:t,variant:a="default",...r}){/* @__PURE__ */
|
|
5
|
+
return e.createElement("div",{"data-slot":"item-media","data-variant":a,className:s(m({variant:a,className:t})),...r})}function d({className:t,...a}){/* @__PURE__ */
|
|
6
6
|
return e.createElement("div",{"data-slot":"item-content",className:s("flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none",t),...a})}function u({className:t,...a}){/* @__PURE__ */
|
|
7
7
|
return e.createElement("div",{"data-slot":"item-title",className:s("flex w-fit items-center gap-2 text-sm font-medium leading-snug",t),...a})}function f({className:t,...a}){/* @__PURE__ */
|
|
8
8
|
return e.createElement("span",{"data-slot":"item-description",className:s("text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal","[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4 ",t),...a})}function p({className:t,...a}){/* @__PURE__ */
|
|
9
9
|
return e.createElement("div",{"data-slot":"item-actions",className:s("flex items-center gap-2",t),...a})}function g({className:t,...a}){/* @__PURE__ */
|
|
10
10
|
return e.createElement("div",{"data-slot":"item-header",className:s("flex basis-full items-center justify-between gap-2",t),...a})}function v({className:t,...a}){/* @__PURE__ */
|
|
11
|
-
return e.createElement("div",{"data-slot":"item-footer",className:s("flex basis-full items-center justify-between gap-2",t),...a})}export{o as Item,p as ItemActions,d as ItemContent,f as ItemDescription,v as ItemFooter,
|
|
11
|
+
return e.createElement("div",{"data-slot":"item-footer",className:s("flex basis-full items-center justify-between gap-2",t),...a})}export{o as Item,p as ItemActions,d as ItemContent,f as ItemDescription,v as ItemFooter,n as ItemGroup,g as ItemHeader,c as ItemMedia,i as ItemSeparator,u as ItemTitle};
|
|
12
12
|
//# sourceMappingURL=item.js.map
|