@flikk/ui 1.0.0-beta.11 → 1.0.0-beta.13
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/components/ai/ApprovalCard/ApprovalCard.js +1 -1
- package/dist/components/ai/MessageHistory/MessageHistory.js +1 -0
- package/dist/components/ai/PromptInput/PromptInput.js +7 -125
- package/dist/components/ai/PromptInput/VoiceRecorder.js +0 -77
- package/dist/components/ai/StreamingResponse/StreamingResponse.js +1 -0
- package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +7 -7
- package/dist/components/ai/index.js +1 -0
- package/dist/components/core/Accordion/Accordion.d.ts +1 -1
- package/dist/components/core/Accordion/Accordion.js +2 -2
- package/dist/components/core/Accordion/Accordion.theme.d.ts +2 -2
- package/dist/components/core/Accordion/Accordion.theme.js +4 -4
- package/dist/components/core/Accordion/Accordion.types.d.ts +19 -20
- package/dist/components/core/Accordion/AccordionBody.d.ts +3 -0
- package/dist/components/core/Accordion/{AccordionContent.js → AccordionBody.js} +4 -4
- package/dist/components/core/Accordion/AccordionItem.js +1 -1
- package/dist/components/core/Accordion/AccordionTrigger.js +14 -7
- package/dist/components/core/Accordion/index.d.ts +2 -2
- package/dist/components/core/Alert/Alert.js +5 -1
- package/dist/components/core/Alert/Alert.types.d.ts +4 -4
- package/dist/components/core/Avatar/Avatar.js +22 -18
- package/dist/components/core/Avatar/Avatar.theme.js +1 -1
- package/dist/components/core/Avatar/Avatar.types.d.ts +9 -8
- package/dist/components/core/AvatarGroup/AvatarGroup.js +2 -2
- package/dist/components/core/Badge/Badge.js +7 -5
- package/dist/components/core/Badge/Badge.theme.js +11 -4
- package/dist/components/core/Badge/Badge.types.d.ts +2 -2
- package/dist/components/core/Breadcrumbs/Breadcrumbs.js +7 -3
- package/dist/components/core/Breadcrumbs/Breadcrumbs.types.d.ts +1 -1
- package/dist/components/core/Button/Button.js +2 -8
- package/dist/components/core/Button/Button.theme.js +7 -7
- package/dist/components/core/Calendar/Calendar.js +3 -3
- package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +5 -6
- package/dist/components/core/Card/Card.d.ts +2 -2
- package/dist/components/core/Card/Card.js +3 -3
- package/dist/components/core/Card/Card.theme.js +3 -3
- package/dist/components/core/Card/Card.types.d.ts +4 -4
- package/dist/components/core/Card/CardBody.d.ts +3 -0
- package/dist/components/core/Card/CardBody.js +11 -0
- package/dist/components/core/Card/index.d.ts +2 -2
- package/dist/components/core/Carousel/Carousel.js +4 -4
- package/dist/components/core/Carousel/Carousel.types.d.ts +4 -4
- package/dist/components/core/Carousel/CarouselBody.d.ts +4 -0
- package/dist/components/core/Carousel/{CarouselContent.js → CarouselBody.js} +3 -3
- package/dist/components/core/Carousel/index.d.ts +2 -1
- package/dist/components/core/ContextMenu/ContextMenu.d.ts +2 -2
- package/dist/components/core/ContextMenu/ContextMenu.js +6 -6
- package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +2 -2
- package/dist/components/core/ContextMenu/ContextMenuBody.d.ts +6 -0
- package/dist/components/core/ContextMenu/{ContextMenuContent.js → ContextMenuBody.js} +4 -4
- package/dist/components/core/ContextMenu/ContextMenuSubBody.d.ts +6 -0
- package/dist/components/core/ContextMenu/{ContextMenuSubContent.js → ContextMenuSubBody.js} +4 -4
- package/dist/components/core/ContextMenu/index.d.ts +1 -1
- package/dist/components/core/Drawer/Drawer.d.ts +2 -2
- package/dist/components/core/Drawer/Drawer.js +28 -9
- package/dist/components/core/Drawer/Drawer.theme.js +1 -1
- package/dist/components/core/Drawer/Drawer.types.d.ts +8 -6
- package/dist/components/core/Drawer/DrawerBody.d.ts +5 -0
- package/dist/components/core/Drawer/DrawerBody.js +11 -0
- package/dist/components/core/Drawer/index.d.ts +2 -1
- package/dist/components/core/Dropdown/Dropdown.types.d.ts +3 -3
- package/dist/components/core/Dropdown/DropdownSection.js +3 -1
- package/dist/components/core/FileTypeIcon/FileTypeIcon.d.ts +3 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.js +33 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.theme.d.ts +2 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.theme.js +12 -0
- package/dist/components/core/FileTypeIcon/FileTypeIcon.types.d.ts +19 -0
- package/dist/components/core/FileTypeIcon/fileTypes.d.ts +7 -0
- package/dist/components/core/FileTypeIcon/fileTypes.js +30 -0
- package/dist/components/core/FileTypeIcon/index.d.ts +2 -0
- package/dist/components/core/MenuItem/MenuItem.js +3 -1
- package/dist/components/core/MenuItem/MenuItem.theme.js +1 -1
- package/dist/components/core/MenuItem/MenuItem.types.d.ts +1 -1
- package/dist/components/core/Message/Message.d.ts +1 -1
- package/dist/components/core/Message/Message.js +3 -3
- package/dist/components/core/Message/Message.theme.js +2 -2
- package/dist/components/core/Message/Message.types.d.ts +7 -7
- package/dist/components/core/Message/MessageAvatar.d.ts +2 -2
- package/dist/components/core/Message/MessageAvatar.js +3 -3
- package/dist/components/core/Message/MessageBody.d.ts +8 -0
- package/dist/components/core/Message/{MessageContent.js → MessageBody.js} +3 -3
- package/dist/components/core/Message/index.d.ts +2 -0
- package/dist/components/core/Modal/Modal.js +5 -1
- package/dist/components/core/Modal/Modal.theme.js +1 -1
- package/dist/components/core/Modal/Modal.types.d.ts +5 -2
- package/dist/components/core/ModalStack/ModalStackModal.js +1 -0
- package/dist/components/core/PageHeading/PageHeading.types.d.ts +1 -1
- package/dist/components/core/PageHeading/PageHeadingBackButton.js +3 -1
- package/dist/components/core/Popover/Popover.d.ts +1 -1
- package/dist/components/core/Popover/Popover.js +4 -4
- package/dist/components/core/Popover/Popover.theme.d.ts +1 -1
- package/dist/components/core/Popover/Popover.theme.js +2 -2
- package/dist/components/core/Popover/Popover.types.d.ts +3 -3
- package/dist/components/core/Popover/PopoverBody.d.ts +7 -0
- package/dist/components/core/Popover/{PopoverContent.js → PopoverBody.js} +24 -13
- package/dist/components/core/Popover/index.d.ts +4 -3
- package/dist/components/core/Tabs/Tabs.animations.d.ts +2 -2
- package/dist/components/core/Tabs/Tabs.animations.js +3 -3
- package/dist/components/core/Tabs/Tabs.d.ts +1 -1
- package/dist/components/core/Tabs/Tabs.js +3 -3
- package/dist/components/core/Tabs/Tabs.theme.d.ts +1 -1
- package/dist/components/core/Tabs/Tabs.theme.js +2 -2
- package/dist/components/core/Tabs/Tabs.types.d.ts +9 -9
- package/dist/components/core/Tabs/TabsBody.d.ts +6 -0
- package/dist/components/core/Tabs/{TabsContent.js → TabsBody.js} +8 -8
- package/dist/components/core/Tabs/index.d.ts +2 -2
- package/dist/components/core/Tag/Tag.d.ts +1 -1
- package/dist/components/core/Tag/Tag.js +2 -2
- package/dist/components/core/Tag/Tag.types.d.ts +1 -1
- package/dist/components/core/Toast/Toast.js +5 -1
- package/dist/components/core/Toast/Toast.types.d.ts +9 -9
- package/dist/components/core/index.d.ts +1 -1
- package/dist/components/core/index.js +7 -3
- package/dist/components/data-display/Feed/Feed.animations.d.ts +40 -0
- package/dist/components/data-display/Feed/Feed.animations.js +26 -0
- package/dist/components/data-display/Feed/Feed.d.ts +5 -1
- package/dist/components/data-display/Feed/Feed.js +87 -52
- package/dist/components/data-display/Feed/Feed.theme.js +11 -13
- package/dist/components/data-display/Feed/Feed.types.d.ts +35 -34
- package/dist/components/data-display/Feed/index.d.ts +1 -1
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +11 -9
- package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +1 -1
- package/dist/components/data-display/KPI/KPI.js +2 -2
- package/dist/components/data-display/KPI/KPI.types.d.ts +3 -3
- package/dist/components/data-display/Metric/Metric.js +2 -2
- package/dist/components/data-display/Metric/Metric.types.d.ts +3 -3
- package/dist/components/data-display/Table/TableColumnManager.js +2 -1
- package/dist/components/data-display/Table/TableFilter.js +2 -1
- package/dist/components/data-display/Timeline/TimelineMarker.js +2 -2
- package/dist/components/effects/3d/index.d.ts +1 -1
- package/dist/components/effects/AIOrb/AIOrb.d.ts +1 -0
- package/dist/components/effects/AIOrb/AIOrb.js +3 -2
- package/dist/components/effects/AIOrb/AIOrb.types.d.ts +1 -0
- package/dist/components/effects/AIOrb/hooks/index.d.ts +2 -0
- package/dist/components/effects/AIOrb/hooks/useOrbState.d.ts +20 -0
- package/dist/components/effects/AIOrb/hooks/useOrbState.js +27 -0
- package/dist/components/effects/AIOrb/index.d.ts +2 -2
- package/dist/components/effects/AIOrb/variants/Aura/Aura.d.ts +3 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.js +75 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.d.ts +28 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.js +191 -0
- package/dist/components/effects/AIOrb/variants/Aura/Aura.types.d.ts +53 -0
- package/dist/components/effects/AIOrb/variants/Aura/ShaderCanvas.d.ts +17 -0
- package/dist/components/effects/AIOrb/variants/Aura/ShaderCanvas.js +149 -0
- package/dist/components/effects/AIOrb/variants/Aura/index.d.ts +2 -0
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.js +38 -7
- package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.types.d.ts +6 -0
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.js +34 -8
- package/dist/components/effects/AIOrb/variants/Liquid/Liquid.types.d.ts +6 -0
- package/dist/components/effects/AIOrb/variants/index.d.ts +2 -0
- package/dist/components/effects/CustomCursor/CustomCursor.d.ts +2 -2
- package/dist/components/effects/CustomCursor/CustomCursor.js +50 -47
- package/dist/components/effects/GlassSurface/GlassSurface.js +24 -12
- package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +8 -0
- package/dist/components/forms/Checkbox/Checkbox.js +1 -1
- package/dist/components/forms/Checkbox/Checkbox.types.d.ts +5 -5
- package/dist/components/forms/Checkbox/CheckboxGroup.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.js +2 -2
- package/dist/components/forms/ColorPicker/ColorPicker.types.d.ts +2 -2
- package/dist/components/forms/ColorPicker/ColorPickerBody.d.ts +7 -0
- package/dist/components/forms/ColorPicker/{ColorPickerContent.js → ColorPickerBody.js} +5 -5
- package/dist/components/forms/ColorPicker/index.d.ts +2 -2
- package/dist/components/forms/DatePicker/DatePicker.d.ts +7 -3
- package/dist/components/forms/DatePicker/DatePicker.js +6 -5
- package/dist/components/forms/DatePicker/DatePicker.theme.js +3 -3
- package/dist/components/forms/DatePicker/DatePicker.types.d.ts +9 -4
- package/dist/components/forms/DatePicker/DatePickerBody.d.ts +7 -0
- package/dist/components/forms/DatePicker/{DatePickerContent.js → DatePickerBody.js} +10 -9
- package/dist/components/forms/DatePicker/index.d.ts +2 -2
- package/dist/components/forms/FileUpload/FileUpload.js +0 -78
- package/dist/components/forms/Input/Input.js +2 -2
- package/dist/components/forms/Input/Input.types.d.ts +4 -4
- package/dist/components/forms/Mention/Mention.js +2 -2
- package/dist/components/forms/Radio/Radio.js +1 -1
- package/dist/components/forms/Radio/Radio.types.d.ts +5 -5
- package/dist/components/forms/Radio/RadioGroup.js +1 -1
- package/dist/components/forms/Select/Select.js +2 -2
- package/dist/components/forms/Select/Select.types.d.ts +4 -4
- package/dist/components/forms/Switch/Switch.js +1 -1
- package/dist/components/forms/Switch/Switch.types.d.ts +4 -4
- package/dist/components/forms/Textarea/Textarea.js +2 -2
- package/dist/components/forms/Textarea/Textarea.types.d.ts +4 -4
- package/dist/components/forms/TimePicker/TimePickerContent.js +1 -78
- package/dist/components/forms/index.d.ts +2 -2
- package/dist/components/forms/index.js +2 -80
- package/dist/components/layout/FormLayout/FormLayout.d.ts +0 -2
- package/dist/components/layout/FormLayout/FormLayout.js +12 -6
- package/dist/components/layout/FormLayout/FormLayout.theme.js +2 -5
- package/dist/components/layout/FormLayout/FormLayout.types.d.ts +8 -26
- package/dist/components/layout/FormLayout/FormLayoutSection.js +3 -2
- package/dist/components/layout/FormLayout/index.d.ts +1 -1
- package/dist/index.js +197 -199
- package/dist/styles.css +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/paletteGenerator.d.ts +46 -0
- package/package.json +1 -1
- package/src/styles/theme.css +2 -6
- package/dist/components/core/Accordion/AccordionContent.d.ts +0 -3
- package/dist/components/core/Card/CardContent.d.ts +0 -3
- package/dist/components/core/Card/CardContent.js +0 -11
- package/dist/components/core/Carousel/CarouselContent.d.ts +0 -4
- package/dist/components/core/ContextMenu/ContextMenuContent.d.ts +0 -6
- package/dist/components/core/ContextMenu/ContextMenuSubContent.d.ts +0 -6
- package/dist/components/core/Drawer/DrawerContent.d.ts +0 -5
- package/dist/components/core/Drawer/DrawerContent.js +0 -11
- package/dist/components/core/Loader/Loader.d.ts +0 -24
- package/dist/components/core/Loader/Loader.js +0 -57
- package/dist/components/core/Loader/Loader.theme.d.ts +0 -27
- package/dist/components/core/Loader/Loader.theme.js +0 -60
- package/dist/components/core/Loader/Loader.types.d.ts +0 -71
- package/dist/components/core/Loader/index.d.ts +0 -2
- package/dist/components/core/Message/MessageContent.d.ts +0 -8
- package/dist/components/core/Popover/PopoverContent.d.ts +0 -7
- package/dist/components/core/Tabs/TabsContent.d.ts +0 -6
- package/dist/components/forms/ColorPicker/ColorPickerContent.d.ts +0 -7
- package/dist/components/forms/DatePicker/DatePickerContent.d.ts +0 -7
- package/dist/components/layout/FormLayout/FormLayoutBody.d.ts +0 -3
- package/dist/components/layout/FormLayout/FormLayoutBody.js +0 -91
- package/dist/components/layout/FormLayout/FormLayoutHeader.d.ts +0 -3
- package/dist/components/layout/FormLayout/FormLayoutHeader.js +0 -12
|
@@ -10,7 +10,7 @@ import { cn } from '../../../utils/cn.js';
|
|
|
10
10
|
const ApprovalCard = ({ title, subtitle, variant = "default", riskLevel = "medium", onApprove, onDeny, children, isApproving = false, className, }) => {
|
|
11
11
|
const riskColor = approvalCardTheme.badgeColors[riskLevel];
|
|
12
12
|
const riskIcon = riskLevel === "critical" || riskLevel === "high" ? (jsx(ExclamationTriangleIcon, { className: "" })) : (jsx(CheckCircleIcon, { className: "" }));
|
|
13
|
-
return (jsxs(Card, { className: cn(approvalCardTheme.baseStyle, approvalCardTheme.variants[variant], className), children: [jsx(Card.Header, { children: jsx("div", { className: "flex flex-col items-start", children: jsxs(Badge, { variant: "outline", color: riskColor, size: "sm", iconStart: riskIcon, className: "font-semibold shadow", children: [riskLevel.toUpperCase(), " RISK"] }) }) }), jsxs(Card.
|
|
13
|
+
return (jsxs(Card, { className: cn(approvalCardTheme.baseStyle, approvalCardTheme.variants[variant], className), children: [jsx(Card.Header, { children: jsx("div", { className: "flex flex-col items-start", children: jsxs(Badge, { variant: "outline", color: riskColor, size: "sm", iconStart: riskIcon, className: "font-semibold shadow", children: [riskLevel.toUpperCase(), " RISK"] }) }) }), jsxs(Card.Body, { className: "space-y-3", children: [jsxs("div", { className: "space-y-1", children: [jsx(Card.Title, { className: "", children: title }), subtitle && (jsx("p", { className: "text-sm md:text-base text-[var(--color-text-secondary)]/80", children: subtitle }))] }), children && (jsx("div", { className: "bg-[var(--color-background-secondary)] rounded-md p-3 text-sm font-mono border border-[var(--color-border)] overflow-x-auto", children: children }))] }), jsxs(Card.Footer, { className: "justify-end gap-2 mt-3", children: [jsx(Button, { variant: "outline", color: "neutral", size: "sm", onClick: onDeny, children: "Deny" }), jsx(Button, { color: riskColor, size: "sm", state: isApproving ? "loading" : "default", onClick: onApprove, children: "Approve" })] })] }));
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
export { ApprovalCard };
|
|
@@ -3,6 +3,7 @@ import React__default, { useRef, useCallback, useEffect, useMemo } from 'react';
|
|
|
3
3
|
import { messageHistoryTheme } from './MessageHistory.theme.js';
|
|
4
4
|
import { Message } from '../../core/Message/Message.js';
|
|
5
5
|
import '../../core/Message/TypeWriter.js';
|
|
6
|
+
import '../../core/Message/MessageBody.js';
|
|
6
7
|
import { cn } from '../../../utils/cn.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -1,43 +1,14 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import React__default, { useState, useRef, useId, useEffect, useCallback } from 'react';
|
|
3
3
|
import { AnimatePresence, motion } from 'motion/react';
|
|
4
|
-
import '
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import '
|
|
4
|
+
import { cn } from '../../../utils/cn.js';
|
|
5
|
+
import { CloudArrowUpIcon, MicrophoneIcon, PaperClipIcon, LinkIcon, DocumentIcon, XMarkIcon, PlusIcon, AdjustmentsHorizontalIcon, ChevronDownIcon, ArrowRightIcon } from '@heroicons/react/24/outline';
|
|
6
|
+
import { StopIcon } from '@heroicons/react/24/solid';
|
|
7
|
+
import { promptInputTheme } from './PromptInput.theme.js';
|
|
8
|
+
import { VoiceRecorder } from './VoiceRecorder.js';
|
|
9
|
+
import { dropzoneContainerVariants, dropzoneChildVariants, dropzoneActionIconVariants, textareaSwapVariants, iconSwapVariants } from './PromptInput.animations.js';
|
|
8
10
|
import { Textarea } from '../../forms/Textarea/Textarea.js';
|
|
9
11
|
import '../../forms/Textarea/Textarea.theme.js';
|
|
10
|
-
import '../../forms/FormLabel/FormLabel.js';
|
|
11
|
-
import '../../forms/Radio/Radio.js';
|
|
12
|
-
import '../../forms/Checkbox/Checkbox.js';
|
|
13
|
-
import '../../forms/Switch/Switch.js';
|
|
14
|
-
import '../../forms/DatePicker/DatePicker.js';
|
|
15
|
-
import '../../forms/DatePicker/DatePicker.theme.js';
|
|
16
|
-
import '../../forms/FileUpload/FileUpload.js';
|
|
17
|
-
import '../../forms/TimePicker/TimePicker.js';
|
|
18
|
-
import { CloudArrowUpIcon, MicrophoneIcon, PaperClipIcon, LinkIcon, DocumentIcon, XMarkIcon, PlusIcon, AdjustmentsHorizontalIcon, ChevronDownIcon, ArrowRightIcon } from '@heroicons/react/24/outline';
|
|
19
|
-
import { cn } from '../../../utils/cn.js';
|
|
20
|
-
import 'react-dom';
|
|
21
|
-
import '../../core/Accordion/Accordion.js';
|
|
22
|
-
import '../../core/AlertDialog/AlertDialog.js';
|
|
23
|
-
import '../../core/AspectRatio/AspectRatio.js';
|
|
24
|
-
import '../../core/Avatar/Avatar.js';
|
|
25
|
-
import '../../core/AvatarGroup/AvatarGroup.js';
|
|
26
|
-
import '../../core/Badge/Badge.js';
|
|
27
|
-
import '../../core/Breadcrumbs/Breadcrumbs.js';
|
|
28
|
-
import '../../core/Breadcrumbs/Breadcrumbs.theme.js';
|
|
29
|
-
import { Button } from '../../core/Button/Button.js';
|
|
30
|
-
import '../../core/ButtonGroup/ButtonGroup.js';
|
|
31
|
-
import '../../core/ButtonGroup/ButtonGroupSeparator.js';
|
|
32
|
-
import '../../core/ButtonGroup/ButtonGroupText.js';
|
|
33
|
-
import '../../core/Calendar/Calendar.js';
|
|
34
|
-
import '../../core/Calendar/CalendarMini/CalendarMini.js';
|
|
35
|
-
import '../../core/Card/Card.js';
|
|
36
|
-
import '../../core/CardStack/CardStack.js';
|
|
37
|
-
import '../../core/Carousel/Carousel.js';
|
|
38
|
-
import '../../core/CommandPalette/CommandPalette.js';
|
|
39
|
-
import '../../core/Separator/Separator.js';
|
|
40
|
-
import '../../core/Drawer/Drawer.js';
|
|
41
12
|
import { Dropdown } from '../../core/Dropdown/Dropdown.js';
|
|
42
13
|
import '../../core/Dropdown/DropdownTrigger.js';
|
|
43
14
|
import '../../core/Dropdown/DropdownMenu.js';
|
|
@@ -45,96 +16,7 @@ import '../../core/Dropdown/DropdownItem.js';
|
|
|
45
16
|
import '../../core/Dropdown/DropdownSection.js';
|
|
46
17
|
import '../../core/Dropdown/DropdownSeparator.js';
|
|
47
18
|
import '../../core/Dropdown/Dropdown.theme.js';
|
|
48
|
-
import '../../core/
|
|
49
|
-
import '../../core/MenuItem/MenuItem.js';
|
|
50
|
-
import '../../core/Link/Link.js';
|
|
51
|
-
import '../../core/Loader/Loader.js';
|
|
52
|
-
import '../../core/Modal/Modal.js';
|
|
53
|
-
import '../../core/ModalStack/ModalStack.js';
|
|
54
|
-
import '../../core/PageHeading/PageHeading.js';
|
|
55
|
-
import '../../core/Pagination/Pagination.js';
|
|
56
|
-
import '../../core/Popover/Popover.js';
|
|
57
|
-
import '../../core/Popover/PopoverContext.js';
|
|
58
|
-
import '../../core/Progress/Progress.js';
|
|
59
|
-
import '../../core/Rating/Rating.js';
|
|
60
|
-
import '../../core/ScrollArea/ScrollArea.js';
|
|
61
|
-
import '../../core/ScrollArea/smooth/SmoothScrollEngine.js';
|
|
62
|
-
import '../../core/Segmented/Segmented.js';
|
|
63
|
-
import '../../core/Skeleton/Skeleton.js';
|
|
64
|
-
import '../../core/SlidingNumber/SlidingNumber.js';
|
|
65
|
-
import '../../core/Tabs/Tabs.js';
|
|
66
|
-
import '../../core/Tabs/TabsList.js';
|
|
67
|
-
import '../../core/Tabs/TabsTrigger.js';
|
|
68
|
-
import '../../core/Tabs/TabsContent.js';
|
|
69
|
-
import '../../core/Tabs/TabsContext.js';
|
|
70
|
-
import '../../core/Tooltip/Tooltip.js';
|
|
71
|
-
import '../../core/Tooltip/Tooltip.animations.js';
|
|
72
|
-
import '../../core/Tree/Tree.js';
|
|
73
|
-
import '../../core/Tag/Tag.js';
|
|
74
|
-
import '../../core/Alert/Alert.js';
|
|
75
|
-
import '../../core/Toast/Toast.js';
|
|
76
|
-
import '../../core/Toast/ToastProvider.js';
|
|
77
|
-
import { StopIcon } from '@heroicons/react/24/solid';
|
|
78
|
-
import '../../core/Spinner/Spinner.js';
|
|
79
|
-
import '../../core/Message/Message.js';
|
|
80
|
-
import '../../core/Message/TypeWriter.js';
|
|
81
|
-
import '../../core/Empty/Empty.js';
|
|
82
|
-
import '../../core/Masonry/Masonry.js';
|
|
83
|
-
import '../../core/DragDrop/DragDrop.js';
|
|
84
|
-
import '../../core/Sortable/Sortable.js';
|
|
85
|
-
import '../../core/NavItem/NavItem.js';
|
|
86
|
-
import '../../core/Sidebar/Sidebar.js';
|
|
87
|
-
import '../../core/Sidebar/SidebarHeader.js';
|
|
88
|
-
import '../../core/Sidebar/SidebarContent.js';
|
|
89
|
-
import '../../core/Sidebar/SidebarFooter.js';
|
|
90
|
-
import '../../core/Sidebar/SidebarNav.js';
|
|
91
|
-
import '../../core/Sidebar/SidebarNavGroup.js';
|
|
92
|
-
import '../../core/Sidebar/SidebarToggle.js';
|
|
93
|
-
import '../../core/Sidebar/SidebarContext.js';
|
|
94
|
-
import '../../core/OfflineIndicator/OfflineIndicator.js';
|
|
95
|
-
import '../../core/ContextMenu/ContextMenu.js';
|
|
96
|
-
import '../../core/ContextMenu/ContextMenu.theme.js';
|
|
97
|
-
import '../../core/Pill/Pill.js';
|
|
98
|
-
import '../../core/SocialIcon/SocialIcon.js';
|
|
99
|
-
import '../../forms/TimePicker/WheelColumn.js';
|
|
100
|
-
import '../../forms/TimePicker/TimePicker.theme.js';
|
|
101
|
-
import '../../forms/Slider/Slider.js';
|
|
102
|
-
import '../../forms/Slider/Slider.theme.js';
|
|
103
|
-
import '../../forms/Signature/Signature.js';
|
|
104
|
-
import '../../forms/Signature/Signature.theme.js';
|
|
105
|
-
import '../../forms/RichTextEditor/RichTextEditor.js';
|
|
106
|
-
import '../../forms/RichTextEditor/RichTextEditor.theme.js';
|
|
107
|
-
import '../../forms/InputOTP/InputOTP.js';
|
|
108
|
-
import '../../forms/InputOTP/InputOTP.theme.js';
|
|
109
|
-
import '../../forms/InputCreditCard/InputCreditCard.js';
|
|
110
|
-
import '../../forms/InputCreditCard/InputCreditCard.theme.js';
|
|
111
|
-
import '../../forms/InputAddress/InputAddress.js';
|
|
112
|
-
import '../../forms/InputAddress/InputAddress.theme.js';
|
|
113
|
-
import '../../forms/InputDate/InputDate.js';
|
|
114
|
-
import '../../forms/InputCounter/InputCounter.js';
|
|
115
|
-
import '../../forms/InputTag/InputTag.js';
|
|
116
|
-
import '../../forms/InputTag/InputTag.theme.js';
|
|
117
|
-
import '../../forms/Combobox/Combobox.js';
|
|
118
|
-
import '../../forms/Combobox/Combobox.theme.js';
|
|
119
|
-
import '../../forms/ColorPicker/ColorPicker.js';
|
|
120
|
-
import '../../forms/ColorPicker/ColorPickerTrigger.js';
|
|
121
|
-
import '../../forms/ColorPicker/ColorPickerContent.js';
|
|
122
|
-
import '../../forms/ColorPicker/ColorPicker2DCanvas.js';
|
|
123
|
-
import '../../forms/ColorPicker/ColorPickerSwatch.js';
|
|
124
|
-
import '../../forms/ColorPicker/ColorPickerSliders.js';
|
|
125
|
-
import '../../forms/ColorPicker/ColorPickerInput.js';
|
|
126
|
-
import '../../forms/ColorPicker/ColorPickerFormatSelector.js';
|
|
127
|
-
import '../../forms/ColorPicker/ColorPickerEyeDropper.js';
|
|
128
|
-
import '../../forms/ColorPicker/ColorPickerPresets.js';
|
|
129
|
-
import '../../forms/SelectableCard/SelectableCard.js';
|
|
130
|
-
import '../../forms/TransferList/TransferList.js';
|
|
131
|
-
import '../../forms/Mention/Mention.js';
|
|
132
|
-
import '../../forms/Mention/Mention.theme.js';
|
|
133
|
-
import '../../forms/CronInput/CronInput.js';
|
|
134
|
-
import '../../forms/CronInput/CronInput.theme.js';
|
|
135
|
-
import { promptInputTheme } from './PromptInput.theme.js';
|
|
136
|
-
import { VoiceRecorder } from './VoiceRecorder.js';
|
|
137
|
-
import { dropzoneContainerVariants, dropzoneChildVariants, dropzoneActionIconVariants, textareaSwapVariants, iconSwapVariants } from './PromptInput.animations.js';
|
|
19
|
+
import { Button } from '../../core/Button/Button.js';
|
|
138
20
|
|
|
139
21
|
/**
|
|
140
22
|
* Default model options for the model selector
|
|
@@ -3,84 +3,7 @@ import { useState, useRef, useCallback, useEffect } from 'react';
|
|
|
3
3
|
import { motion } from 'motion/react';
|
|
4
4
|
import { PlayIcon, PauseIcon, CheckIcon } from '@heroicons/react/24/outline';
|
|
5
5
|
import { cn } from '../../../utils/cn.js';
|
|
6
|
-
import '../../core/Accordion/Accordion.js';
|
|
7
|
-
import '../../core/AlertDialog/AlertDialog.js';
|
|
8
|
-
import '../../core/AspectRatio/AspectRatio.js';
|
|
9
|
-
import '../../core/Avatar/Avatar.js';
|
|
10
|
-
import '../../core/AvatarGroup/AvatarGroup.js';
|
|
11
|
-
import '../../core/Badge/Badge.js';
|
|
12
|
-
import '../../core/Breadcrumbs/Breadcrumbs.js';
|
|
13
|
-
import '../../core/Breadcrumbs/Breadcrumbs.theme.js';
|
|
14
6
|
import { Button } from '../../core/Button/Button.js';
|
|
15
|
-
import '../../core/ButtonGroup/ButtonGroup.js';
|
|
16
|
-
import '../../core/ButtonGroup/ButtonGroupSeparator.js';
|
|
17
|
-
import '../../core/ButtonGroup/ButtonGroupText.js';
|
|
18
|
-
import '../../core/Calendar/Calendar.js';
|
|
19
|
-
import '../../core/Calendar/CalendarMini/CalendarMini.js';
|
|
20
|
-
import '../../core/Card/Card.js';
|
|
21
|
-
import '../../core/CardStack/CardStack.js';
|
|
22
|
-
import '../../core/Carousel/Carousel.js';
|
|
23
|
-
import '../../core/CommandPalette/CommandPalette.js';
|
|
24
|
-
import '../../core/Separator/Separator.js';
|
|
25
|
-
import '../../core/Drawer/Drawer.js';
|
|
26
|
-
import '../../core/Dropdown/Dropdown.js';
|
|
27
|
-
import '../../core/Dropdown/DropdownTrigger.js';
|
|
28
|
-
import '../../core/Dropdown/DropdownMenu.js';
|
|
29
|
-
import '../../core/Dropdown/DropdownItem.js';
|
|
30
|
-
import '../../core/Dropdown/DropdownSection.js';
|
|
31
|
-
import '../../core/Dropdown/DropdownSeparator.js';
|
|
32
|
-
import '../../core/Dropdown/Dropdown.theme.js';
|
|
33
|
-
import '../../core/Kbd/Kbd.js';
|
|
34
|
-
import '../../core/MenuItem/MenuItem.js';
|
|
35
|
-
import '../../core/Link/Link.js';
|
|
36
|
-
import '../../core/Loader/Loader.js';
|
|
37
|
-
import '../../core/Modal/Modal.js';
|
|
38
|
-
import '../../core/ModalStack/ModalStack.js';
|
|
39
|
-
import '../../core/PageHeading/PageHeading.js';
|
|
40
|
-
import '../../core/Pagination/Pagination.js';
|
|
41
|
-
import '../../core/Popover/Popover.js';
|
|
42
|
-
import '../../core/Popover/PopoverContext.js';
|
|
43
|
-
import '../../core/Progress/Progress.js';
|
|
44
|
-
import '../../core/Rating/Rating.js';
|
|
45
|
-
import '../../core/ScrollArea/ScrollArea.js';
|
|
46
|
-
import '../../core/ScrollArea/smooth/SmoothScrollEngine.js';
|
|
47
|
-
import '../../core/Segmented/Segmented.js';
|
|
48
|
-
import '../../core/Skeleton/Skeleton.js';
|
|
49
|
-
import '../../core/SlidingNumber/SlidingNumber.js';
|
|
50
|
-
import '../../core/Tabs/Tabs.js';
|
|
51
|
-
import '../../core/Tabs/TabsList.js';
|
|
52
|
-
import '../../core/Tabs/TabsTrigger.js';
|
|
53
|
-
import '../../core/Tabs/TabsContent.js';
|
|
54
|
-
import '../../core/Tabs/TabsContext.js';
|
|
55
|
-
import '../../core/Tooltip/Tooltip.js';
|
|
56
|
-
import '../../core/Tooltip/Tooltip.animations.js';
|
|
57
|
-
import '../../core/Tree/Tree.js';
|
|
58
|
-
import '../../core/Tag/Tag.js';
|
|
59
|
-
import '../../core/Alert/Alert.js';
|
|
60
|
-
import '../../core/Toast/Toast.js';
|
|
61
|
-
import '../../core/Toast/ToastProvider.js';
|
|
62
|
-
import '@heroicons/react/24/solid';
|
|
63
|
-
import '../../core/Spinner/Spinner.js';
|
|
64
|
-
import '../../core/Message/Message.js';
|
|
65
|
-
import '../../core/Message/TypeWriter.js';
|
|
66
|
-
import '../../core/Empty/Empty.js';
|
|
67
|
-
import '../../core/Masonry/Masonry.js';
|
|
68
|
-
import '../../core/DragDrop/DragDrop.js';
|
|
69
|
-
import '../../core/Sortable/Sortable.js';
|
|
70
|
-
import '../../core/NavItem/NavItem.js';
|
|
71
|
-
import '../../core/Sidebar/Sidebar.js';
|
|
72
|
-
import '../../core/Sidebar/SidebarHeader.js';
|
|
73
|
-
import '../../core/Sidebar/SidebarContent.js';
|
|
74
|
-
import '../../core/Sidebar/SidebarFooter.js';
|
|
75
|
-
import '../../core/Sidebar/SidebarNav.js';
|
|
76
|
-
import '../../core/Sidebar/SidebarNavGroup.js';
|
|
77
|
-
import '../../core/Sidebar/SidebarToggle.js';
|
|
78
|
-
import '../../core/Sidebar/SidebarContext.js';
|
|
79
|
-
import '../../core/OfflineIndicator/OfflineIndicator.js';
|
|
80
|
-
import '../../core/ContextMenu/ContextMenu.js';
|
|
81
|
-
import '../../core/ContextMenu/ContextMenu.theme.js';
|
|
82
|
-
import '../../core/Pill/Pill.js';
|
|
83
|
-
import '../../core/SocialIcon/SocialIcon.js';
|
|
84
7
|
|
|
85
8
|
/**
|
|
86
9
|
* Format seconds into MM:SS display
|
|
@@ -3,6 +3,7 @@ import { useRef, useEffect } from 'react';
|
|
|
3
3
|
import { useStreamingSSE } from '../../../hooks/useStreamingSSE.js';
|
|
4
4
|
import { Message } from '../../core/Message/Message.js';
|
|
5
5
|
import { TypeWriter } from '../../core/Message/TypeWriter.js';
|
|
6
|
+
import '../../core/Message/MessageBody.js';
|
|
6
7
|
import { ErrorDisplay } from './ErrorDisplay.js';
|
|
7
8
|
import { MarkdownRenderer } from './MarkdownRenderer.js';
|
|
8
9
|
import { AnimatedText } from './AnimatedText.js';
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
* StreamingResponse Component Types
|
|
3
3
|
* Type definitions for the StreamingResponse component
|
|
4
4
|
*/
|
|
5
|
-
import type { ReactNode } from
|
|
6
|
-
import type { SSEFormat, SSEParser } from
|
|
7
|
-
import type { StreamingError, RetryConfig } from
|
|
8
|
-
import type { MessageRole } from
|
|
5
|
+
import type { ReactNode } from "react";
|
|
6
|
+
import type { SSEFormat, SSEParser } from "../../../utils/sseFormatParsers";
|
|
7
|
+
import type { StreamingError, RetryConfig } from "../../../utils";
|
|
8
|
+
import type { MessageRole } from "../../core/Message";
|
|
9
9
|
/**
|
|
10
10
|
* Avatar configuration for Message component
|
|
11
11
|
*/
|
|
12
12
|
export interface MessageAvatarProps {
|
|
13
13
|
src?: string;
|
|
14
|
-
|
|
14
|
+
name: string;
|
|
15
15
|
fallback?: ReactNode;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
@@ -21,7 +21,7 @@ export interface MarkdownOptions {
|
|
|
21
21
|
/** Allow HTML in markdown (default: false) */
|
|
22
22
|
allowHtml?: boolean;
|
|
23
23
|
/** Syntax highlighting theme (default: 'light') */
|
|
24
|
-
syntaxTheme?:
|
|
24
|
+
syntaxTheme?: "light" | "dark";
|
|
25
25
|
/** Custom code block renderer */
|
|
26
26
|
renderCodeBlock?: (code: string, language: string) => ReactNode;
|
|
27
27
|
}
|
|
@@ -32,7 +32,7 @@ export interface StreamingResponseProps {
|
|
|
32
32
|
/** The SSE endpoint URL */
|
|
33
33
|
url: string;
|
|
34
34
|
/** HTTP method (default: 'POST') */
|
|
35
|
-
method?:
|
|
35
|
+
method?: "GET" | "POST";
|
|
36
36
|
/** Request headers */
|
|
37
37
|
headers?: Record<string, string>;
|
|
38
38
|
/** Request body (for POST requests) */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { Message } from '../core/Message/Message.js';
|
|
2
2
|
export { messageTheme } from '../core/Message/Message.theme.js';
|
|
3
3
|
import '../core/Message/TypeWriter.js';
|
|
4
|
+
import '../core/Message/MessageBody.js';
|
|
4
5
|
export { MessageHistory } from './MessageHistory/MessageHistory.js';
|
|
5
6
|
export { messageHistoryTheme } from './MessageHistory/MessageHistory.theme.js';
|
|
6
7
|
export { PromptInput } from './PromptInput/PromptInput.js';
|
|
@@ -7,5 +7,5 @@ export declare const Accordion: {
|
|
|
7
7
|
} & {
|
|
8
8
|
Item: React.ForwardRefExoticComponent<import("./Accordion.types").AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
9
|
Trigger: React.ForwardRefExoticComponent<import("./Accordion.types").AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
10
|
-
|
|
10
|
+
Body: React.ForwardRefExoticComponent<import("./Accordion.types").AccordionBodyProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
};
|
|
@@ -3,7 +3,7 @@ import { useContext, createContext, useState, useCallback } from 'react';
|
|
|
3
3
|
import { cn } from '../../../utils/cn.js';
|
|
4
4
|
import { accordionTheme } from './Accordion.theme.js';
|
|
5
5
|
import { AccordionTrigger } from './AccordionTrigger.js';
|
|
6
|
-
import {
|
|
6
|
+
import { AccordionBody } from './AccordionBody.js';
|
|
7
7
|
import { AccordionItem } from './AccordionItem.js';
|
|
8
8
|
|
|
9
9
|
// Create context for the main Accordion component
|
|
@@ -50,7 +50,7 @@ AccordionRoot.displayName = "Accordion";
|
|
|
50
50
|
const Accordion = Object.assign(AccordionRoot, {
|
|
51
51
|
Item: AccordionItem,
|
|
52
52
|
Trigger: AccordionTrigger,
|
|
53
|
-
|
|
53
|
+
Body: AccordionBody,
|
|
54
54
|
});
|
|
55
55
|
|
|
56
56
|
export { Accordion, useAccordionContext };
|
|
@@ -9,10 +9,10 @@ const accordionTheme = {
|
|
|
9
9
|
itemStyleStacked: "bg-white border-t border-[var(--color-border)] first-of-type:border-t-0",
|
|
10
10
|
// Trigger styles (shared across variants)
|
|
11
11
|
triggerStyle: "flex w-full gap-3 items-center px-4 py-2.5 text-left font-medium transition-all duration-200 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 text-[var(--color-text-primary)]",
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
|
|
12
|
+
// Body styles (shared across variants)
|
|
13
|
+
bodyStyle: "data-[state=closed]:max-h-0 data-[state=open]:max-h-[320px] accordion-content overflow-hidden",
|
|
14
|
+
// Body inner wrapper styles
|
|
15
|
+
bodyInnerStyle: "p-4 pb-2.5 pt-0",
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
export { accordionTheme };
|
|
@@ -53,8 +53,8 @@ export interface AccordionContextValue {
|
|
|
53
53
|
theme: AccordionThemeOverrides & {
|
|
54
54
|
baseStyle: string;
|
|
55
55
|
triggerStyle: string;
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
bodyStyle: string;
|
|
57
|
+
bodyInnerStyle: string;
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
@@ -91,33 +91,32 @@ export interface AccordionTriggerProps extends React.HTMLAttributes<HTMLButtonEl
|
|
|
91
91
|
children: React.ReactNode;
|
|
92
92
|
className?: string;
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
94
|
+
* Override the default indicator (chevron) icon.
|
|
95
|
+
* Set to `null` to hide it entirely.
|
|
95
96
|
*/
|
|
96
|
-
|
|
97
|
+
chevron?: React.ReactNode | null;
|
|
97
98
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
99
|
+
* Rotation degrees applied to the chevron icon when open.
|
|
100
|
+
* Default: 45 (for PlusIcon). Use 180 for a chevron-down, 90 for a right-arrow, 0 for none.
|
|
100
101
|
*/
|
|
101
|
-
|
|
102
|
+
chevronRotation?: number;
|
|
102
103
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
104
|
+
* Position of the chevron icon.
|
|
105
|
+
* - `"right"` (default): pushed to the far right after children.
|
|
106
|
+
* - `"left"`: appears before children.
|
|
107
|
+
* No effect when `chevron` is explicitly provided.
|
|
108
|
+
* @default "right"
|
|
105
109
|
*/
|
|
106
|
-
|
|
110
|
+
chevronPosition?: "left" | "right";
|
|
107
111
|
/**
|
|
108
|
-
*
|
|
109
|
-
* Default: 45 (for PlusIcon). Use 180 for chevrons, 90 for right-arrows, 0 for none.
|
|
110
|
-
*/
|
|
111
|
-
iconEndRotation?: number;
|
|
112
|
-
/**
|
|
113
|
-
* @deprecated Use `iconEndRotation` instead. Alias for `iconEndRotation`.
|
|
112
|
+
* @deprecated Use `chevronRotation` instead.
|
|
114
113
|
*/
|
|
115
114
|
iconRotation?: number;
|
|
116
115
|
}
|
|
117
116
|
/**
|
|
118
|
-
*
|
|
117
|
+
* Body props
|
|
119
118
|
*/
|
|
120
|
-
export interface
|
|
119
|
+
export interface AccordionBodyProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
121
120
|
children: React.ReactNode;
|
|
122
121
|
className?: string;
|
|
123
122
|
}
|
|
@@ -128,8 +127,8 @@ export interface AccordionThemeOverrides {
|
|
|
128
127
|
baseStyle?: string;
|
|
129
128
|
baseStyleStacked?: string;
|
|
130
129
|
triggerStyle?: string;
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
bodyStyle?: string;
|
|
131
|
+
bodyInnerStyle?: string;
|
|
133
132
|
itemStyle?: string;
|
|
134
133
|
itemStyleStacked?: string;
|
|
135
134
|
}
|
|
@@ -6,7 +6,7 @@ import { useAccordionItemContext } from './AccordionItem.js';
|
|
|
6
6
|
import { useReducedMotion, AnimatePresence, motion } from 'motion/react';
|
|
7
7
|
import { accordionAnimations, accordionContentAnimations } from './Accordion.animations.js';
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const AccordionBody = React__default.forwardRef(({ children, className, ...rest }, ref) => {
|
|
10
10
|
const { theme } = useAccordionContext();
|
|
11
11
|
const { isOpen, contentId, triggerId } = useAccordionItemContext();
|
|
12
12
|
const shouldReduceMotion = useReducedMotion();
|
|
@@ -14,8 +14,8 @@ const AccordionContent = React__default.forwardRef(({ children, className, ...re
|
|
|
14
14
|
const instantTransition = shouldReduceMotion ? { duration: 0 } : undefined;
|
|
15
15
|
// Filter out conflicting props to avoid type issues
|
|
16
16
|
const { onDrag, onDragEnd, onDragStart, onAnimationStart, onAnimationEnd, onTransitionEnd, onTransitionStart, ...safeProps } = rest;
|
|
17
|
-
return (jsx(AnimatePresence, { initial: false, children: isOpen && (jsx(motion.div, { ref: ref, id: contentId, role: "region", "aria-labelledby": triggerId, className: theme === null || theme === void 0 ? void 0 : theme.
|
|
17
|
+
return (jsx(AnimatePresence, { initial: false, children: isOpen && (jsx(motion.div, { ref: ref, id: contentId, role: "region", "aria-labelledby": triggerId, className: theme === null || theme === void 0 ? void 0 : theme.bodyStyle, "data-state": isOpen ? "open" : "closed", "aria-hidden": !isOpen, initial: "collapsed", animate: "open", exit: "collapsed", variants: accordionAnimations, transition: instantTransition, ...safeProps, children: jsx(motion.div, { className: cn(theme === null || theme === void 0 ? void 0 : theme.bodyInnerStyle, className), variants: accordionContentAnimations, initial: "collapsed", animate: "open", exit: "collapsed", transition: instantTransition, children: children }) })) }));
|
|
18
18
|
});
|
|
19
|
-
|
|
19
|
+
AccordionBody.displayName = "Accordion.Body";
|
|
20
20
|
|
|
21
|
-
export {
|
|
21
|
+
export { AccordionBody };
|
|
@@ -9,7 +9,7 @@ const AccordionItemContext = createContext(undefined);
|
|
|
9
9
|
const useAccordionItemContext = () => {
|
|
10
10
|
const ctx = useContext(AccordionItemContext);
|
|
11
11
|
if (!ctx)
|
|
12
|
-
throw new Error("Accordion.Trigger and Accordion.
|
|
12
|
+
throw new Error("Accordion.Trigger and Accordion.Body must be used within Accordion.Item");
|
|
13
13
|
return ctx;
|
|
14
14
|
};
|
|
15
15
|
const AccordionItem = React__default.forwardRef(({ children, className, value, ...props }, ref) => {
|
|
@@ -7,17 +7,24 @@ import { motion } from 'motion/react';
|
|
|
7
7
|
import { PlusIcon } from '@heroicons/react/24/outline';
|
|
8
8
|
import { createTriggerIconVariants } from './Accordion.animations.js';
|
|
9
9
|
|
|
10
|
-
const AccordionTrigger = React__default.forwardRef(({ children, className,
|
|
10
|
+
const AccordionTrigger = React__default.forwardRef(({ children, className, chevron, chevronRotation, iconRotation, chevronPosition = "right", ...props }, ref) => {
|
|
11
11
|
var _a;
|
|
12
12
|
const { theme } = useAccordionContext();
|
|
13
13
|
const { isOpen, toggle, triggerId, contentId } = useAccordionItemContext();
|
|
14
|
-
const
|
|
15
|
-
|
|
14
|
+
const resolvedChevronRotation = (_a = chevronRotation !== null && chevronRotation !== void 0 ? chevronRotation : iconRotation) !== null && _a !== void 0 ? _a : 45;
|
|
15
|
+
// Resolve the indicator icon
|
|
16
|
+
const defaultChevronIcon = jsx(PlusIcon, { className: "size-4", strokeWidth: 2 });
|
|
17
|
+
const resolvedChevron = chevron === null
|
|
16
18
|
? null
|
|
17
|
-
:
|
|
18
|
-
?
|
|
19
|
-
:
|
|
20
|
-
|
|
19
|
+
: chevron !== undefined
|
|
20
|
+
? chevron
|
|
21
|
+
: chevronPosition === "left"
|
|
22
|
+
? null // rendered in the left slot instead
|
|
23
|
+
: defaultChevronIcon;
|
|
24
|
+
// When chevronPosition="left", render the default animated chevron before children
|
|
25
|
+
const useDefaultOnLeft = chevron !== null && chevronPosition === "left" && chevron === undefined;
|
|
26
|
+
const animatedChevron = (rotation, extraClass) => (jsx(motion.div, { initial: false, animate: isOpen ? "open" : "closed", variants: createTriggerIconVariants(rotation), className: cn("flex items-center justify-center shrink-0", extraClass), children: defaultChevronIcon }));
|
|
27
|
+
return (jsxs("button", { ref: ref, type: "button", id: triggerId, className: cn(theme === null || theme === void 0 ? void 0 : theme.triggerStyle, className), "aria-expanded": isOpen, "aria-controls": contentId, "data-state": isOpen ? "open" : "closed", onClick: toggle, ...props, children: [useDefaultOnLeft && animatedChevron(resolvedChevronRotation), children, resolvedChevron && (jsx(motion.div, { initial: false, animate: isOpen ? "open" : "closed", variants: createTriggerIconVariants(resolvedChevronRotation), className: "flex items-center justify-center shrink-0 ml-auto", children: resolvedChevron }))] }));
|
|
21
28
|
});
|
|
22
29
|
AccordionTrigger.displayName = "AccordionTrigger";
|
|
23
30
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Accordion } from "./Accordion";
|
|
2
|
-
import { AccordionProps, AccordionTriggerProps,
|
|
2
|
+
import { AccordionProps, AccordionTriggerProps, AccordionBodyProps, AccordionItemProps, AccordionContextValue, AccordionItemContextValue, AccordionThemeOverrides } from "./Accordion.types";
|
|
3
3
|
export { Accordion };
|
|
4
|
-
export type { AccordionProps, AccordionItemProps, AccordionTriggerProps,
|
|
4
|
+
export type { AccordionProps, AccordionItemProps, AccordionTriggerProps, AccordionBodyProps, AccordionContextValue, AccordionItemContextValue, AccordionThemeOverrides, };
|
|
@@ -33,7 +33,11 @@ const Alert = React__default.forwardRef(({ variant = "default", color = "primary
|
|
|
33
33
|
const IconComponent = defaultIcons[color];
|
|
34
34
|
return (jsx("div", { className: "flex-shrink-0 w-6 h-6 mt-1", "aria-hidden": "true", children: jsx(IconComponent, { className: cn("w-6 h-6", iconColor) }) }));
|
|
35
35
|
};
|
|
36
|
-
const alertNode = (jsxs("div", { ref: ref, className: cn(alertTheme.baseStyle, alertTheme.variants[variant], className), role: "alert", "aria-live": "assertive", "aria-atomic": "true", ...props, children: [renderIconOrAvatar(), jsxs("div", { className: `flex-1 min-w-0 ${showDismiss ? "mr-5" : ""}`, children: [title && (
|
|
36
|
+
const alertNode = (jsxs("div", { ref: ref, className: cn(alertTheme.baseStyle, alertTheme.variants[variant], className), role: "alert", "aria-live": "assertive", "aria-atomic": "true", ...props, children: [renderIconOrAvatar(), jsxs("div", { className: `flex-1 min-w-0 ${showDismiss ? "mr-5" : ""}`, children: [title && (typeof title === 'string'
|
|
37
|
+
? jsx("div", { className: cn("font-semibold text-[var(--color-text-primary)]"), children: title })
|
|
38
|
+
: title), subtitle && (typeof subtitle === 'string'
|
|
39
|
+
? jsx("div", { className: "text-[var(--color-text-secondary)]/90 mt-1", children: subtitle })
|
|
40
|
+
: subtitle), children && jsx("div", { className: "mt-2", children: children }), actions && (jsx("div", { className: "flex items-center gap-2 mt-6", children: actions }))] }), showDismiss && (jsx(Button, { variant: "link", color: "neutral", size: "sm", iconOnly: true, onClick: handleDismiss, "aria-label": "Dismiss alert", className: "rounded-full absolute top-2 right-2 flex-shrink-0", children: jsx(XMarkIcon, { className: "size-4", strokeWidth: 2 }) }))] }));
|
|
37
41
|
if (darkMode) {
|
|
38
42
|
return jsx("div", { className: "dark", children: alertNode });
|
|
39
43
|
}
|
|
@@ -23,15 +23,15 @@ export interface AlertTheme {
|
|
|
23
23
|
dismissible: string;
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
|
|
26
|
+
export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
27
27
|
/** Visual variant */
|
|
28
28
|
variant?: AlertVariant;
|
|
29
29
|
/** Semantic color */
|
|
30
30
|
color?: AlertColor;
|
|
31
31
|
/** The main title/message of the alert */
|
|
32
|
-
title?:
|
|
32
|
+
title?: ReactNode;
|
|
33
33
|
/** Additional subtitle text */
|
|
34
|
-
subtitle?:
|
|
34
|
+
subtitle?: ReactNode;
|
|
35
35
|
/** Whether the alert can be dismissed */
|
|
36
36
|
dismissible?: boolean;
|
|
37
37
|
/**
|
|
@@ -45,7 +45,7 @@ export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
45
45
|
showIcon?: boolean;
|
|
46
46
|
/**
|
|
47
47
|
* Avatar to display (takes precedence over icons)
|
|
48
|
-
* Example: avatar={<Avatar src="..."
|
|
48
|
+
* Example: avatar={<Avatar src="..." name="User name" size="md" />}
|
|
49
49
|
*/
|
|
50
50
|
avatar?: ReactNode;
|
|
51
51
|
/**
|