@discuss-ds/ui 0.7.1 → 0.8.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/CHANGELOG.md +6 -0
- package/dist/index.cjs +155 -86
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -1
- package/dist/index.d.ts +28 -1
- package/dist/index.js +150 -82
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -783,6 +783,33 @@ interface RatingScaleProps extends Omit<React.ComponentPropsWithoutRef<typeof To
|
|
|
783
783
|
}
|
|
784
784
|
declare const RatingScale: React.ForwardRefExoticComponent<RatingScaleProps & React.RefAttributes<HTMLDivElement>>;
|
|
785
785
|
|
|
786
|
+
interface StimulusCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
787
|
+
/** Image shown in the 80px thumbnail. Without one the thumbnail shows `icon` on a neutral fill. */
|
|
788
|
+
thumbnail?: string;
|
|
789
|
+
/** Alt text for `thumbnail`. Leave empty when the caption already describes the image. */
|
|
790
|
+
thumbnailAlt?: string;
|
|
791
|
+
/** Placeholder shown in the thumbnail when there is no `thumbnail` (e.g. a video camera for a video). Defaults to an image icon. */
|
|
792
|
+
icon?: React.ReactNode;
|
|
793
|
+
/**
|
|
794
|
+
* `error` swaps the thumbnail for a broken-image icon on the destructive soft fill, for a stimulus that could not be
|
|
795
|
+
* loaded. It is also applied automatically when `thumbnail` fails to load.
|
|
796
|
+
*/
|
|
797
|
+
status?: 'default' | 'error';
|
|
798
|
+
/** Small line above the caption saying who speaks it. */
|
|
799
|
+
label?: React.ReactNode;
|
|
800
|
+
/** What the AI moderator says when it shows the stimulus, e.g. "Look at this image". */
|
|
801
|
+
caption?: string;
|
|
802
|
+
/** Editor mode: makes the caption editable (click to edit, Enter or blur saves) and is called with the new text. */
|
|
803
|
+
onCaptionChange?: (caption: string) => void;
|
|
804
|
+
/** Editor mode: placeholder for an empty caption. */
|
|
805
|
+
captionPlaceholder?: string;
|
|
806
|
+
/** Shows the trash button. */
|
|
807
|
+
onRemove?: () => void;
|
|
808
|
+
/** Accessible name of the trash button. Defaults to "Remove stimulus". */
|
|
809
|
+
removeLabel?: string;
|
|
810
|
+
}
|
|
811
|
+
declare const StimulusCard: React.ForwardRefExoticComponent<StimulusCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
812
|
+
|
|
786
813
|
interface ProgressProps extends React.ComponentPropsWithoutRef<typeof Progress$1.Root> {
|
|
787
814
|
/** Heading shown above the track, left-aligned (e.g. "Project Progress"). */
|
|
788
815
|
label?: React.ReactNode;
|
|
@@ -935,4 +962,4 @@ interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onCha
|
|
|
935
962
|
}
|
|
936
963
|
declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
937
964
|
|
|
938
|
-
export { AIMiniAvatar, type AIMiniAvatarProps, AIResponseContainer, type AIResponseContainerProps, type AIStatus, type ActivitySection, type ActivityStat, ActivityStructure, type ActivityStructureProps, AskAiInput, type AskAiInputProps, AskAiToggle, type AskAiToggleProps, Badge, type BadgeProps, Button, type ButtonProps, Calendar, type CalendarProps, ChatChoices, type ChatChoicesProps, ChatInput, type ChatInputProps, ChatOption, type ChatOptionActionProps, type ChatOptionCheckboxProps, type ChatOptionProps, type ChatOptionRadioProps, Checkbox, CheckboxField, type CheckboxFieldProps, type CheckboxProps, DatePicker, type DatePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuSelectableItemProps, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableTag, type EditableTagProps, Field, type FieldControlProps, type FieldProps, type FieldStatus, FileAttachment, type FileAttachmentProps, FileUploadItem, type FileUploadItemProps, FileUploadZone, type FileUploadZoneProps, Form, FormControl, type FormControlProps, FormDescription, type FormDescriptionProps, FormField, FormItem, type FormItemProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, ImagePreview, type ImagePreviewProps, ImageThumbnails, type ImageThumbnailsProps, InlineEdit, type InlineEditProps, Input, type InputProps, InputWithAction, type InputWithActionProps, Label, type LabelProps, MediaInfo, type MediaInfoProps, NumberInput, type NumberInputProps, OpenEndAnswer, type OpenEndAnswerProps, Pagination, type PaginationItemValue, type PaginationProps, Progress, type ProgressProps, ProjectSelector, type ProjectSelectorProps, QuestionCard, type QuestionCheckboxOptionProps, QuestionEditorCard, type QuestionEditorCardProps, QuestionHeader, type QuestionHeaderProps, QuestionNavItem, type QuestionNavItemProps, QuestionOption, QuestionOptionEditor, type QuestionOptionEditorProps, type QuestionOptionProps, QuestionOtherOption, type QuestionOtherOptionProps, type QuestionRadioOptionProps, type QuestionType, QuestionTypeIcon, type QuestionTypeIconProps, RadioGroup, RadioGroupFieldItem, type RadioGroupFieldItemProps, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RankItemData, RankList, type RankListProps, RatingScale, type RatingScaleProps, SearchBar, type SearchBarProps, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectTrigger, type SelectTriggerProps, SelectValue, Slider, type SliderProps, StatCard, type StatCardProps, StatusTag, type StatusTagProps, Switch, type SwitchProps, TabItem, type TabItemProps, TabNavigation, TabNavigationContext, type TabNavigationProps, type TabNavigationVariant, Table, TableBody, TableCell, type TableCellProps, TableCellTwoLines, type TableCellTwoLinesProps, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, Tag, type TagProps, Textarea, type TextareaProps, TimeItem, type TimeItemProps, TimePicker, type TimePickerProps, type TimeValue, Timestamp, type TimestampProps, Toast, ToastAction, ToastInline, type ToastInlineProps, type ToastProps, ToastProvider, type ToastVariant, ToastViewport, Toggle, type ToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TopicActivityRow, type TopicActivityRowProps, TopicCard, TopicCardMetaItem, type TopicCardMetaItemProps, type TopicCardProps, TopicCardTag, UserMessageBubble, type UserMessageBubbleProps, VideoPlayer, type VideoPlayerProps, VolumeControl, type VolumeControlProps, fieldSurfaceClasses, formatDateTime, getPaginationItems, useFormField };
|
|
965
|
+
export { AIMiniAvatar, type AIMiniAvatarProps, AIResponseContainer, type AIResponseContainerProps, type AIStatus, type ActivitySection, type ActivityStat, ActivityStructure, type ActivityStructureProps, AskAiInput, type AskAiInputProps, AskAiToggle, type AskAiToggleProps, Badge, type BadgeProps, Button, type ButtonProps, Calendar, type CalendarProps, ChatChoices, type ChatChoicesProps, ChatInput, type ChatInputProps, ChatOption, type ChatOptionActionProps, type ChatOptionCheckboxProps, type ChatOptionProps, type ChatOptionRadioProps, Checkbox, CheckboxField, type CheckboxFieldProps, type CheckboxProps, DatePicker, type DatePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuSelectableItemProps, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableTag, type EditableTagProps, Field, type FieldControlProps, type FieldProps, type FieldStatus, FileAttachment, type FileAttachmentProps, FileUploadItem, type FileUploadItemProps, FileUploadZone, type FileUploadZoneProps, Form, FormControl, type FormControlProps, FormDescription, type FormDescriptionProps, FormField, FormItem, type FormItemProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, ImagePreview, type ImagePreviewProps, ImageThumbnails, type ImageThumbnailsProps, InlineEdit, type InlineEditProps, Input, type InputProps, InputWithAction, type InputWithActionProps, Label, type LabelProps, MediaInfo, type MediaInfoProps, NumberInput, type NumberInputProps, OpenEndAnswer, type OpenEndAnswerProps, Pagination, type PaginationItemValue, type PaginationProps, Progress, type ProgressProps, ProjectSelector, type ProjectSelectorProps, QuestionCard, type QuestionCheckboxOptionProps, QuestionEditorCard, type QuestionEditorCardProps, QuestionHeader, type QuestionHeaderProps, QuestionNavItem, type QuestionNavItemProps, QuestionOption, QuestionOptionEditor, type QuestionOptionEditorProps, type QuestionOptionProps, QuestionOtherOption, type QuestionOtherOptionProps, type QuestionRadioOptionProps, type QuestionType, QuestionTypeIcon, type QuestionTypeIconProps, RadioGroup, RadioGroupFieldItem, type RadioGroupFieldItemProps, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RankItemData, RankList, type RankListProps, RatingScale, type RatingScaleProps, SearchBar, type SearchBarProps, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectTrigger, type SelectTriggerProps, SelectValue, Slider, type SliderProps, StatCard, type StatCardProps, StatusTag, type StatusTagProps, StimulusCard, type StimulusCardProps, Switch, type SwitchProps, TabItem, type TabItemProps, TabNavigation, TabNavigationContext, type TabNavigationProps, type TabNavigationVariant, Table, TableBody, TableCell, type TableCellProps, TableCellTwoLines, type TableCellTwoLinesProps, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, Tag, type TagProps, Textarea, type TextareaProps, TimeItem, type TimeItemProps, TimePicker, type TimePickerProps, type TimeValue, Timestamp, type TimestampProps, Toast, ToastAction, ToastInline, type ToastInlineProps, type ToastProps, ToastProvider, type ToastVariant, ToastViewport, Toggle, type ToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TopicActivityRow, type TopicActivityRowProps, TopicCard, TopicCardMetaItem, type TopicCardMetaItemProps, type TopicCardProps, TopicCardTag, UserMessageBubble, type UserMessageBubbleProps, VideoPlayer, type VideoPlayerProps, VolumeControl, type VolumeControlProps, fieldSurfaceClasses, formatDateTime, getPaginationItems, useFormField };
|
package/dist/index.d.ts
CHANGED
|
@@ -783,6 +783,33 @@ interface RatingScaleProps extends Omit<React.ComponentPropsWithoutRef<typeof To
|
|
|
783
783
|
}
|
|
784
784
|
declare const RatingScale: React.ForwardRefExoticComponent<RatingScaleProps & React.RefAttributes<HTMLDivElement>>;
|
|
785
785
|
|
|
786
|
+
interface StimulusCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
787
|
+
/** Image shown in the 80px thumbnail. Without one the thumbnail shows `icon` on a neutral fill. */
|
|
788
|
+
thumbnail?: string;
|
|
789
|
+
/** Alt text for `thumbnail`. Leave empty when the caption already describes the image. */
|
|
790
|
+
thumbnailAlt?: string;
|
|
791
|
+
/** Placeholder shown in the thumbnail when there is no `thumbnail` (e.g. a video camera for a video). Defaults to an image icon. */
|
|
792
|
+
icon?: React.ReactNode;
|
|
793
|
+
/**
|
|
794
|
+
* `error` swaps the thumbnail for a broken-image icon on the destructive soft fill, for a stimulus that could not be
|
|
795
|
+
* loaded. It is also applied automatically when `thumbnail` fails to load.
|
|
796
|
+
*/
|
|
797
|
+
status?: 'default' | 'error';
|
|
798
|
+
/** Small line above the caption saying who speaks it. */
|
|
799
|
+
label?: React.ReactNode;
|
|
800
|
+
/** What the AI moderator says when it shows the stimulus, e.g. "Look at this image". */
|
|
801
|
+
caption?: string;
|
|
802
|
+
/** Editor mode: makes the caption editable (click to edit, Enter or blur saves) and is called with the new text. */
|
|
803
|
+
onCaptionChange?: (caption: string) => void;
|
|
804
|
+
/** Editor mode: placeholder for an empty caption. */
|
|
805
|
+
captionPlaceholder?: string;
|
|
806
|
+
/** Shows the trash button. */
|
|
807
|
+
onRemove?: () => void;
|
|
808
|
+
/** Accessible name of the trash button. Defaults to "Remove stimulus". */
|
|
809
|
+
removeLabel?: string;
|
|
810
|
+
}
|
|
811
|
+
declare const StimulusCard: React.ForwardRefExoticComponent<StimulusCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
812
|
+
|
|
786
813
|
interface ProgressProps extends React.ComponentPropsWithoutRef<typeof Progress$1.Root> {
|
|
787
814
|
/** Heading shown above the track, left-aligned (e.g. "Project Progress"). */
|
|
788
815
|
label?: React.ReactNode;
|
|
@@ -935,4 +962,4 @@ interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onCha
|
|
|
935
962
|
}
|
|
936
963
|
declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
937
964
|
|
|
938
|
-
export { AIMiniAvatar, type AIMiniAvatarProps, AIResponseContainer, type AIResponseContainerProps, type AIStatus, type ActivitySection, type ActivityStat, ActivityStructure, type ActivityStructureProps, AskAiInput, type AskAiInputProps, AskAiToggle, type AskAiToggleProps, Badge, type BadgeProps, Button, type ButtonProps, Calendar, type CalendarProps, ChatChoices, type ChatChoicesProps, ChatInput, type ChatInputProps, ChatOption, type ChatOptionActionProps, type ChatOptionCheckboxProps, type ChatOptionProps, type ChatOptionRadioProps, Checkbox, CheckboxField, type CheckboxFieldProps, type CheckboxProps, DatePicker, type DatePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuSelectableItemProps, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableTag, type EditableTagProps, Field, type FieldControlProps, type FieldProps, type FieldStatus, FileAttachment, type FileAttachmentProps, FileUploadItem, type FileUploadItemProps, FileUploadZone, type FileUploadZoneProps, Form, FormControl, type FormControlProps, FormDescription, type FormDescriptionProps, FormField, FormItem, type FormItemProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, ImagePreview, type ImagePreviewProps, ImageThumbnails, type ImageThumbnailsProps, InlineEdit, type InlineEditProps, Input, type InputProps, InputWithAction, type InputWithActionProps, Label, type LabelProps, MediaInfo, type MediaInfoProps, NumberInput, type NumberInputProps, OpenEndAnswer, type OpenEndAnswerProps, Pagination, type PaginationItemValue, type PaginationProps, Progress, type ProgressProps, ProjectSelector, type ProjectSelectorProps, QuestionCard, type QuestionCheckboxOptionProps, QuestionEditorCard, type QuestionEditorCardProps, QuestionHeader, type QuestionHeaderProps, QuestionNavItem, type QuestionNavItemProps, QuestionOption, QuestionOptionEditor, type QuestionOptionEditorProps, type QuestionOptionProps, QuestionOtherOption, type QuestionOtherOptionProps, type QuestionRadioOptionProps, type QuestionType, QuestionTypeIcon, type QuestionTypeIconProps, RadioGroup, RadioGroupFieldItem, type RadioGroupFieldItemProps, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RankItemData, RankList, type RankListProps, RatingScale, type RatingScaleProps, SearchBar, type SearchBarProps, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectTrigger, type SelectTriggerProps, SelectValue, Slider, type SliderProps, StatCard, type StatCardProps, StatusTag, type StatusTagProps, Switch, type SwitchProps, TabItem, type TabItemProps, TabNavigation, TabNavigationContext, type TabNavigationProps, type TabNavigationVariant, Table, TableBody, TableCell, type TableCellProps, TableCellTwoLines, type TableCellTwoLinesProps, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, Tag, type TagProps, Textarea, type TextareaProps, TimeItem, type TimeItemProps, TimePicker, type TimePickerProps, type TimeValue, Timestamp, type TimestampProps, Toast, ToastAction, ToastInline, type ToastInlineProps, type ToastProps, ToastProvider, type ToastVariant, ToastViewport, Toggle, type ToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TopicActivityRow, type TopicActivityRowProps, TopicCard, TopicCardMetaItem, type TopicCardMetaItemProps, type TopicCardProps, TopicCardTag, UserMessageBubble, type UserMessageBubbleProps, VideoPlayer, type VideoPlayerProps, VolumeControl, type VolumeControlProps, fieldSurfaceClasses, formatDateTime, getPaginationItems, useFormField };
|
|
965
|
+
export { AIMiniAvatar, type AIMiniAvatarProps, AIResponseContainer, type AIResponseContainerProps, type AIStatus, type ActivitySection, type ActivityStat, ActivityStructure, type ActivityStructureProps, AskAiInput, type AskAiInputProps, AskAiToggle, type AskAiToggleProps, Badge, type BadgeProps, Button, type ButtonProps, Calendar, type CalendarProps, ChatChoices, type ChatChoicesProps, ChatInput, type ChatInputProps, ChatOption, type ChatOptionActionProps, type ChatOptionCheckboxProps, type ChatOptionProps, type ChatOptionRadioProps, Checkbox, CheckboxField, type CheckboxFieldProps, type CheckboxProps, DatePicker, type DatePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuSelectableItemProps, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableTag, type EditableTagProps, Field, type FieldControlProps, type FieldProps, type FieldStatus, FileAttachment, type FileAttachmentProps, FileUploadItem, type FileUploadItemProps, FileUploadZone, type FileUploadZoneProps, Form, FormControl, type FormControlProps, FormDescription, type FormDescriptionProps, FormField, FormItem, type FormItemProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, ImagePreview, type ImagePreviewProps, ImageThumbnails, type ImageThumbnailsProps, InlineEdit, type InlineEditProps, Input, type InputProps, InputWithAction, type InputWithActionProps, Label, type LabelProps, MediaInfo, type MediaInfoProps, NumberInput, type NumberInputProps, OpenEndAnswer, type OpenEndAnswerProps, Pagination, type PaginationItemValue, type PaginationProps, Progress, type ProgressProps, ProjectSelector, type ProjectSelectorProps, QuestionCard, type QuestionCheckboxOptionProps, QuestionEditorCard, type QuestionEditorCardProps, QuestionHeader, type QuestionHeaderProps, QuestionNavItem, type QuestionNavItemProps, QuestionOption, QuestionOptionEditor, type QuestionOptionEditorProps, type QuestionOptionProps, QuestionOtherOption, type QuestionOtherOptionProps, type QuestionRadioOptionProps, type QuestionType, QuestionTypeIcon, type QuestionTypeIconProps, RadioGroup, RadioGroupFieldItem, type RadioGroupFieldItemProps, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RankItemData, RankList, type RankListProps, RatingScale, type RatingScaleProps, SearchBar, type SearchBarProps, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectTrigger, type SelectTriggerProps, SelectValue, Slider, type SliderProps, StatCard, type StatCardProps, StatusTag, type StatusTagProps, StimulusCard, type StimulusCardProps, Switch, type SwitchProps, TabItem, type TabItemProps, TabNavigation, TabNavigationContext, type TabNavigationProps, type TabNavigationVariant, Table, TableBody, TableCell, type TableCellProps, TableCellTwoLines, type TableCellTwoLinesProps, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, Tag, type TagProps, Textarea, type TextareaProps, TimeItem, type TimeItemProps, TimePicker, type TimePickerProps, type TimeValue, Timestamp, type TimestampProps, Toast, ToastAction, ToastInline, type ToastInlineProps, type ToastProps, ToastProvider, type ToastVariant, ToastViewport, Toggle, type ToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TopicActivityRow, type TopicActivityRowProps, TopicCard, TopicCardMetaItem, type TopicCardMetaItemProps, type TopicCardProps, TopicCardTag, UserMessageBubble, type UserMessageBubbleProps, VideoPlayer, type VideoPlayerProps, VolumeControl, type VolumeControlProps, fieldSurfaceClasses, formatDateTime, getPaginationItems, useFormField };
|
package/dist/index.js
CHANGED
|
@@ -3048,28 +3048,95 @@ var RatingScale = React46.forwardRef(
|
|
|
3048
3048
|
);
|
|
3049
3049
|
RatingScale.displayName = "RatingScale";
|
|
3050
3050
|
|
|
3051
|
-
// src/components/
|
|
3051
|
+
// src/components/Question Types/StimulusCard.tsx
|
|
3052
3052
|
import * as React47 from "react";
|
|
3053
|
-
import {
|
|
3053
|
+
import { Image as ImageIcon2, ImageBroken, Trash as Trash5 } from "@phosphor-icons/react";
|
|
3054
3054
|
import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3055
|
-
var
|
|
3055
|
+
var StimulusCard = React47.forwardRef(
|
|
3056
|
+
({
|
|
3057
|
+
className,
|
|
3058
|
+
thumbnail,
|
|
3059
|
+
thumbnailAlt = "",
|
|
3060
|
+
icon,
|
|
3061
|
+
status = "default",
|
|
3062
|
+
label = "AI Moderator",
|
|
3063
|
+
caption,
|
|
3064
|
+
onCaptionChange,
|
|
3065
|
+
captionPlaceholder = "Click to write what the AI moderator says",
|
|
3066
|
+
onRemove,
|
|
3067
|
+
removeLabel = "Remove stimulus",
|
|
3068
|
+
...props
|
|
3069
|
+
}, ref) => {
|
|
3070
|
+
const [failedSrc, setFailedSrc] = React47.useState();
|
|
3071
|
+
const error = status === "error" || thumbnail !== void 0 && failedSrc === thumbnail;
|
|
3072
|
+
const showImage = thumbnail !== void 0 && !error;
|
|
3073
|
+
return /* @__PURE__ */ jsxs34(
|
|
3074
|
+
"div",
|
|
3075
|
+
{
|
|
3076
|
+
ref,
|
|
3077
|
+
"data-status": error ? "error" : "default",
|
|
3078
|
+
className: cn("flex w-full items-center gap-4 rounded-md border border-border p-0.5 pr-4", className),
|
|
3079
|
+
...props,
|
|
3080
|
+
children: [
|
|
3081
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex min-w-0 flex-1 items-center gap-4", children: [
|
|
3082
|
+
/* @__PURE__ */ jsx48(
|
|
3083
|
+
"span",
|
|
3084
|
+
{
|
|
3085
|
+
className: cn(
|
|
3086
|
+
"flex size-20 shrink-0 items-center justify-center overflow-hidden rounded-sm border",
|
|
3087
|
+
error ? "border-destructive-soft-border bg-destructive-soft bg-linear-to-r from-overlay-dark-5 to-overlay-dark-5 text-destructive" : "border-border bg-background bg-linear-to-r from-overlay-dark-5 to-overlay-dark-5 text-surface-foreground",
|
|
3088
|
+
showImage && "bg-none"
|
|
3089
|
+
),
|
|
3090
|
+
children: showImage ? /* @__PURE__ */ jsx48("img", { src: thumbnail, alt: thumbnailAlt, className: "size-full object-cover", onError: () => setFailedSrc(thumbnail) }) : error ? /* @__PURE__ */ jsx48(ImageBroken, { size: 24, "aria-hidden": true }) : icon ?? /* @__PURE__ */ jsx48(ImageIcon2, { size: 24, "aria-hidden": true })
|
|
3091
|
+
}
|
|
3092
|
+
),
|
|
3093
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex min-w-0 flex-1 flex-col items-start gap-2 text-surface-foreground", children: [
|
|
3094
|
+
/* @__PURE__ */ jsx48("p", { className: "w-full text-ui-label", children: label }),
|
|
3095
|
+
onCaptionChange ? /* @__PURE__ */ jsx48(
|
|
3096
|
+
InlineEdit,
|
|
3097
|
+
{
|
|
3098
|
+
variant: "question",
|
|
3099
|
+
multiline: true,
|
|
3100
|
+
className: "-mx-3 w-auto",
|
|
3101
|
+
"aria-label": "Stimulus caption",
|
|
3102
|
+
value: caption ?? "",
|
|
3103
|
+
placeholder: captionPlaceholder,
|
|
3104
|
+
onValueChange: onCaptionChange,
|
|
3105
|
+
textClassName: "text-body-base"
|
|
3106
|
+
}
|
|
3107
|
+
) : /* @__PURE__ */ jsx48("p", { className: "w-full text-body-base [word-break:break-word]", children: caption })
|
|
3108
|
+
] })
|
|
3109
|
+
] }),
|
|
3110
|
+
onRemove && /* @__PURE__ */ jsx48(Button, { type: "button", variant: "destructive", size: "icon-sm", "aria-label": removeLabel, onClick: onRemove, children: /* @__PURE__ */ jsx48(Trash5, { size: 16, "aria-hidden": true }) })
|
|
3111
|
+
]
|
|
3112
|
+
}
|
|
3113
|
+
);
|
|
3114
|
+
}
|
|
3115
|
+
);
|
|
3116
|
+
StimulusCard.displayName = "StimulusCard";
|
|
3117
|
+
|
|
3118
|
+
// src/components/Data Display/Progress.tsx
|
|
3119
|
+
import * as React48 from "react";
|
|
3120
|
+
import { Progress as ProgressPrimitive2 } from "radix-ui";
|
|
3121
|
+
import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3122
|
+
var Progress = React48.forwardRef(
|
|
3056
3123
|
({ className, value = 0, label, valueLabel, detailsStart, detailsEnd, ...props }, ref) => {
|
|
3057
3124
|
const hasHeader = label != null || valueLabel != null;
|
|
3058
3125
|
const hasDetails = detailsStart != null || detailsEnd != null;
|
|
3059
3126
|
const clamped = Math.min(100, Math.max(0, value ?? 0));
|
|
3060
|
-
return /* @__PURE__ */
|
|
3061
|
-
hasHeader && /* @__PURE__ */
|
|
3062
|
-
/* @__PURE__ */
|
|
3063
|
-
/* @__PURE__ */
|
|
3127
|
+
return /* @__PURE__ */ jsxs35("div", { className: cn("flex w-full flex-col gap-2", className), children: [
|
|
3128
|
+
hasHeader && /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between text-ui-label text-surface-foreground", children: [
|
|
3129
|
+
/* @__PURE__ */ jsx49("span", { children: label }),
|
|
3130
|
+
/* @__PURE__ */ jsx49("span", { children: valueLabel === true ? `${Math.round(clamped)}%` : valueLabel })
|
|
3064
3131
|
] }),
|
|
3065
|
-
/* @__PURE__ */
|
|
3132
|
+
/* @__PURE__ */ jsx49(
|
|
3066
3133
|
ProgressPrimitive2.Root,
|
|
3067
3134
|
{
|
|
3068
3135
|
ref,
|
|
3069
3136
|
value: clamped,
|
|
3070
3137
|
className: "relative h-2 w-full overflow-hidden rounded-full bg-secondary",
|
|
3071
3138
|
...props,
|
|
3072
|
-
children: /* @__PURE__ */
|
|
3139
|
+
children: /* @__PURE__ */ jsx49(
|
|
3073
3140
|
ProgressPrimitive2.Indicator,
|
|
3074
3141
|
{
|
|
3075
3142
|
className: "h-full rounded-full bg-accent transition-[width]",
|
|
@@ -3078,9 +3145,9 @@ var Progress = React47.forwardRef(
|
|
|
3078
3145
|
)
|
|
3079
3146
|
}
|
|
3080
3147
|
),
|
|
3081
|
-
hasDetails && /* @__PURE__ */
|
|
3082
|
-
/* @__PURE__ */
|
|
3083
|
-
/* @__PURE__ */
|
|
3148
|
+
hasDetails && /* @__PURE__ */ jsxs35("div", { className: "flex items-start justify-between text-ui-label leading-5 text-secondary-muted-foreground", children: [
|
|
3149
|
+
/* @__PURE__ */ jsx49("span", { children: detailsStart }),
|
|
3150
|
+
/* @__PURE__ */ jsx49("span", { children: detailsEnd })
|
|
3084
3151
|
] })
|
|
3085
3152
|
] });
|
|
3086
3153
|
}
|
|
@@ -3088,11 +3155,11 @@ var Progress = React47.forwardRef(
|
|
|
3088
3155
|
Progress.displayName = "Progress";
|
|
3089
3156
|
|
|
3090
3157
|
// src/components/Data Display/Table.tsx
|
|
3091
|
-
import * as
|
|
3158
|
+
import * as React49 from "react";
|
|
3092
3159
|
import { CaretDown as CaretDown4, CaretUp } from "@phosphor-icons/react";
|
|
3093
|
-
import { jsx as
|
|
3094
|
-
var Table =
|
|
3095
|
-
({ className, containerClassName, striped, ...props }, ref) => /* @__PURE__ */
|
|
3160
|
+
import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
3161
|
+
var Table = React49.forwardRef(
|
|
3162
|
+
({ className, containerClassName, striped, ...props }, ref) => /* @__PURE__ */ jsx50("div", { className: cn("relative w-full overflow-auto rounded-lg border border-border bg-surface", containerClassName), children: /* @__PURE__ */ jsx50(
|
|
3096
3163
|
"table",
|
|
3097
3164
|
{
|
|
3098
3165
|
ref,
|
|
@@ -3103,16 +3170,16 @@ var Table = React48.forwardRef(
|
|
|
3103
3170
|
) })
|
|
3104
3171
|
);
|
|
3105
3172
|
Table.displayName = "Table";
|
|
3106
|
-
var TableHeader =
|
|
3107
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3173
|
+
var TableHeader = React49.forwardRef(
|
|
3174
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx50("thead", { ref, className, ...props })
|
|
3108
3175
|
);
|
|
3109
3176
|
TableHeader.displayName = "TableHeader";
|
|
3110
|
-
var TableBody =
|
|
3111
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3177
|
+
var TableBody = React49.forwardRef(
|
|
3178
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx50("tbody", { ref, className, ...props })
|
|
3112
3179
|
);
|
|
3113
3180
|
TableBody.displayName = "TableBody";
|
|
3114
|
-
var TableRow =
|
|
3115
|
-
({ className, selected, ...props }, ref) => /* @__PURE__ */
|
|
3181
|
+
var TableRow = React49.forwardRef(
|
|
3182
|
+
({ className, selected, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
3116
3183
|
"tr",
|
|
3117
3184
|
{
|
|
3118
3185
|
ref,
|
|
@@ -3129,10 +3196,10 @@ var TableRow = React48.forwardRef(
|
|
|
3129
3196
|
);
|
|
3130
3197
|
TableRow.displayName = "TableRow";
|
|
3131
3198
|
var ariaSort = { none: "none", asc: "ascending", desc: "descending" };
|
|
3132
|
-
var TableHead =
|
|
3199
|
+
var TableHead = React49.forwardRef(
|
|
3133
3200
|
({ className, align = "left", sortable, sort = "none", onSort, checkbox, children, ...props }, ref) => {
|
|
3134
|
-
const caret = sort === "asc" ? /* @__PURE__ */
|
|
3135
|
-
return /* @__PURE__ */
|
|
3201
|
+
const caret = sort === "asc" ? /* @__PURE__ */ jsx50(CaretUp, { size: 16, "aria-hidden": true, className: "shrink-0" }) : /* @__PURE__ */ jsx50(CaretDown4, { size: 16, "aria-hidden": true, className: "shrink-0" });
|
|
3202
|
+
return /* @__PURE__ */ jsx50(
|
|
3136
3203
|
"th",
|
|
3137
3204
|
{
|
|
3138
3205
|
ref,
|
|
@@ -3145,7 +3212,7 @@ var TableHead = React48.forwardRef(
|
|
|
3145
3212
|
className
|
|
3146
3213
|
),
|
|
3147
3214
|
...props,
|
|
3148
|
-
children: sortable ? /* @__PURE__ */
|
|
3215
|
+
children: sortable ? /* @__PURE__ */ jsxs36(
|
|
3149
3216
|
"button",
|
|
3150
3217
|
{
|
|
3151
3218
|
type: "button",
|
|
@@ -3156,14 +3223,14 @@ var TableHead = React48.forwardRef(
|
|
|
3156
3223
|
caret
|
|
3157
3224
|
]
|
|
3158
3225
|
}
|
|
3159
|
-
) : checkbox ? /* @__PURE__ */
|
|
3226
|
+
) : checkbox ? /* @__PURE__ */ jsx50("div", { className: "flex items-center justify-center", children }) : children
|
|
3160
3227
|
}
|
|
3161
3228
|
);
|
|
3162
3229
|
}
|
|
3163
3230
|
);
|
|
3164
3231
|
TableHead.displayName = "TableHead";
|
|
3165
|
-
var TableCell =
|
|
3166
|
-
({ className, align = "left", muted, checkbox, actions, children, ...props }, ref) => /* @__PURE__ */
|
|
3232
|
+
var TableCell = React49.forwardRef(
|
|
3233
|
+
({ className, align = "left", muted, checkbox, actions, children, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
3167
3234
|
"td",
|
|
3168
3235
|
{
|
|
3169
3236
|
ref,
|
|
@@ -3176,25 +3243,25 @@ var TableCell = React48.forwardRef(
|
|
|
3176
3243
|
className
|
|
3177
3244
|
),
|
|
3178
3245
|
...props,
|
|
3179
|
-
children: checkbox ? /* @__PURE__ */
|
|
3246
|
+
children: checkbox ? /* @__PURE__ */ jsx50("div", { className: "flex items-center justify-center", children }) : actions ? /* @__PURE__ */ jsx50("div", { className: "flex items-start justify-end gap-1", children }) : children
|
|
3180
3247
|
}
|
|
3181
3248
|
)
|
|
3182
3249
|
);
|
|
3183
3250
|
TableCell.displayName = "TableCell";
|
|
3184
3251
|
function TableCellTwoLines({ primary, secondary, avatar, className, ...props }) {
|
|
3185
|
-
return /* @__PURE__ */
|
|
3252
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("flex items-center gap-2", className), ...props, children: [
|
|
3186
3253
|
avatar,
|
|
3187
|
-
/* @__PURE__ */
|
|
3188
|
-
/* @__PURE__ */
|
|
3189
|
-
secondary && /* @__PURE__ */
|
|
3254
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex flex-col gap-0.5 whitespace-nowrap", children: [
|
|
3255
|
+
/* @__PURE__ */ jsx50("span", { className: "text-ui-label text-surface-foreground", children: primary }),
|
|
3256
|
+
secondary && /* @__PURE__ */ jsx50("span", { className: "text-ui-caption text-secondary-muted-foreground", children: secondary })
|
|
3190
3257
|
] })
|
|
3191
3258
|
] });
|
|
3192
3259
|
}
|
|
3193
3260
|
|
|
3194
3261
|
// src/components/Data Display/StatCard.tsx
|
|
3195
|
-
import * as
|
|
3262
|
+
import * as React50 from "react";
|
|
3196
3263
|
import { cva as cva6 } from "class-variance-authority";
|
|
3197
|
-
import { jsx as
|
|
3264
|
+
import { jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
3198
3265
|
var statCardVariants = cva6("flex min-w-0 flex-col gap-2 rounded-md border p-3", {
|
|
3199
3266
|
variants: {
|
|
3200
3267
|
variant: {
|
|
@@ -3204,11 +3271,11 @@ var statCardVariants = cva6("flex min-w-0 flex-col gap-2 rounded-md border p-3",
|
|
|
3204
3271
|
},
|
|
3205
3272
|
defaultVariants: { variant: "default" }
|
|
3206
3273
|
});
|
|
3207
|
-
var StatCard =
|
|
3208
|
-
({ className, variant, label, value, icon, ...props }, ref) => /* @__PURE__ */
|
|
3209
|
-
/* @__PURE__ */
|
|
3210
|
-
/* @__PURE__ */
|
|
3211
|
-
icon && /* @__PURE__ */
|
|
3274
|
+
var StatCard = React50.forwardRef(
|
|
3275
|
+
({ className, variant, label, value, icon, ...props }, ref) => /* @__PURE__ */ jsxs37("div", { ref, className: cn(statCardVariants({ variant }), className), ...props, children: [
|
|
3276
|
+
/* @__PURE__ */ jsx51("p", { className: "truncate text-ui-caption text-secondary-muted-foreground", children: label }),
|
|
3277
|
+
/* @__PURE__ */ jsxs37("p", { className: "flex items-center gap-2 text-body-base text-surface-foreground", children: [
|
|
3278
|
+
icon && /* @__PURE__ */ jsx51("span", { "aria-hidden": "true", className: "inline-flex size-6 shrink-0 items-center justify-center", children: icon }),
|
|
3212
3279
|
value
|
|
3213
3280
|
] })
|
|
3214
3281
|
] })
|
|
@@ -3216,13 +3283,13 @@ var StatCard = React49.forwardRef(
|
|
|
3216
3283
|
StatCard.displayName = "StatCard";
|
|
3217
3284
|
|
|
3218
3285
|
// src/components/Research-Specific/ActivityStructure.tsx
|
|
3219
|
-
import * as
|
|
3286
|
+
import * as React52 from "react";
|
|
3220
3287
|
|
|
3221
3288
|
// src/components/Tags & Badges/EditableTag.tsx
|
|
3222
|
-
import * as
|
|
3289
|
+
import * as React51 from "react";
|
|
3223
3290
|
import { Crown, Plus as Plus5, X as X6 } from "@phosphor-icons/react";
|
|
3224
3291
|
import { cva as cva7 } from "class-variance-authority";
|
|
3225
|
-
import { jsx as
|
|
3292
|
+
import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
3226
3293
|
var editableTagVariants = cva7(
|
|
3227
3294
|
"inline-flex h-6.5 items-center whitespace-nowrap rounded-sm py-1 text-ui-caption transition-colors",
|
|
3228
3295
|
{
|
|
@@ -3237,27 +3304,27 @@ var editableTagVariants = cva7(
|
|
|
3237
3304
|
defaultVariants: { type: "default" }
|
|
3238
3305
|
}
|
|
3239
3306
|
);
|
|
3240
|
-
var EditableTag =
|
|
3307
|
+
var EditableTag = React51.forwardRef(
|
|
3241
3308
|
({ className, type = "default", icon, onRemove, onClick, children, ...props }, ref) => {
|
|
3242
3309
|
const classes = cn(editableTagVariants({ type }), className);
|
|
3243
|
-
const leading = type === "add" ? /* @__PURE__ */
|
|
3310
|
+
const leading = type === "add" ? /* @__PURE__ */ jsx52(Plus5, { size: 12, "aria-hidden": true }) : icon !== void 0 ? icon : type === "default" ? /* @__PURE__ */ jsx52(Crown, { size: 12, weight: "fill", "aria-hidden": true }) : null;
|
|
3244
3311
|
if (type === "add" || type === "multiple" && onClick) {
|
|
3245
|
-
return /* @__PURE__ */
|
|
3312
|
+
return /* @__PURE__ */ jsxs38("button", { ref, type: "button", className: classes, onClick, ...props, children: [
|
|
3246
3313
|
leading,
|
|
3247
3314
|
children
|
|
3248
3315
|
] });
|
|
3249
3316
|
}
|
|
3250
|
-
return /* @__PURE__ */
|
|
3317
|
+
return /* @__PURE__ */ jsxs38("span", { ref, className: classes, ...props, children: [
|
|
3251
3318
|
leading,
|
|
3252
3319
|
children,
|
|
3253
|
-
onRemove && /* @__PURE__ */
|
|
3320
|
+
onRemove && /* @__PURE__ */ jsx52(
|
|
3254
3321
|
"button",
|
|
3255
3322
|
{
|
|
3256
3323
|
type: "button",
|
|
3257
3324
|
"aria-label": typeof children === "string" ? `Remove ${children}` : "Remove",
|
|
3258
3325
|
onClick: onRemove,
|
|
3259
3326
|
className: "inline-flex size-3 items-center justify-center rounded-xs",
|
|
3260
|
-
children: /* @__PURE__ */
|
|
3327
|
+
children: /* @__PURE__ */ jsx52(X6, { size: 12, "aria-hidden": true })
|
|
3261
3328
|
}
|
|
3262
3329
|
)
|
|
3263
3330
|
] });
|
|
@@ -3266,23 +3333,23 @@ var EditableTag = React50.forwardRef(
|
|
|
3266
3333
|
EditableTag.displayName = "EditableTag";
|
|
3267
3334
|
|
|
3268
3335
|
// src/components/Research-Specific/ActivityStructure.tsx
|
|
3269
|
-
import { jsx as
|
|
3270
|
-
var ActivityStructure =
|
|
3271
|
-
({ className, title = "Activity Structure", stats, sections, onRemoveTag, onAddTag, addTagLabel = "Add tag", children, ...props }, ref) => /* @__PURE__ */
|
|
3336
|
+
import { jsx as jsx53, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
3337
|
+
var ActivityStructure = React52.forwardRef(
|
|
3338
|
+
({ className, title = "Activity Structure", stats, sections, onRemoveTag, onAddTag, addTagLabel = "Add tag", children, ...props }, ref) => /* @__PURE__ */ jsxs39(
|
|
3272
3339
|
"section",
|
|
3273
3340
|
{
|
|
3274
3341
|
ref,
|
|
3275
3342
|
className: cn("flex w-full max-w-96.5 flex-col gap-4 rounded-xl bg-surface p-4", className),
|
|
3276
3343
|
...props,
|
|
3277
3344
|
children: [
|
|
3278
|
-
/* @__PURE__ */
|
|
3279
|
-
stats.length > 0 && /* @__PURE__ */
|
|
3280
|
-
sections?.map(({ id, heading, body, tags }) => /* @__PURE__ */
|
|
3281
|
-
/* @__PURE__ */
|
|
3282
|
-
/* @__PURE__ */
|
|
3283
|
-
(tags?.length || onAddTag) && /* @__PURE__ */
|
|
3284
|
-
tags?.map((tag) => /* @__PURE__ */
|
|
3285
|
-
onAddTag && /* @__PURE__ */
|
|
3345
|
+
/* @__PURE__ */ jsx53("h3", { className: "text-heading-h3 text-primary", children: title }),
|
|
3346
|
+
stats.length > 0 && /* @__PURE__ */ jsx53("div", { className: "grid grid-cols-2 gap-3", children: stats.map(({ id, ...stat }) => /* @__PURE__ */ jsx53(StatCard, { ...stat }, id)) }),
|
|
3347
|
+
sections?.map(({ id, heading, body, tags }) => /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-2", children: [
|
|
3348
|
+
/* @__PURE__ */ jsx53("h4", { className: "text-heading-h4 text-surface-foreground", children: heading }),
|
|
3349
|
+
/* @__PURE__ */ jsx53("div", { className: "text-body-base text-surface-foreground", children: body }),
|
|
3350
|
+
(tags?.length || onAddTag) && /* @__PURE__ */ jsxs39("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
3351
|
+
tags?.map((tag) => /* @__PURE__ */ jsx53(EditableTag, { type: "editable", onRemove: onRemoveTag && (() => onRemoveTag(id, tag)), children: tag }, tag)),
|
|
3352
|
+
onAddTag && /* @__PURE__ */ jsx53(EditableTag, { type: "add", onClick: () => onAddTag(id), children: addTagLabel })
|
|
3286
3353
|
] })
|
|
3287
3354
|
] }, id)),
|
|
3288
3355
|
children
|
|
@@ -3293,10 +3360,10 @@ var ActivityStructure = React51.forwardRef(
|
|
|
3293
3360
|
ActivityStructure.displayName = "ActivityStructure";
|
|
3294
3361
|
|
|
3295
3362
|
// src/components/Tags & Badges/Badge.tsx
|
|
3296
|
-
import * as
|
|
3363
|
+
import * as React53 from "react";
|
|
3297
3364
|
import { DotsSixVertical as DotsSixVertical5, RadioButton as RadioButton2 } from "@phosphor-icons/react";
|
|
3298
3365
|
import { cva as cva8 } from "class-variance-authority";
|
|
3299
|
-
import { jsx as
|
|
3366
|
+
import { jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
3300
3367
|
var roleTagVariants = cva8(
|
|
3301
3368
|
"group inline-flex h-6 items-center whitespace-nowrap rounded-sm py-1 text-ui-caption transition-colors",
|
|
3302
3369
|
{
|
|
@@ -3322,11 +3389,11 @@ var roleTagVariants = cva8(
|
|
|
3322
3389
|
defaultVariants: { type: "primary", selected: false }
|
|
3323
3390
|
}
|
|
3324
3391
|
);
|
|
3325
|
-
var Badge =
|
|
3392
|
+
var Badge = React53.forwardRef(
|
|
3326
3393
|
({ className, type = "primary", selected = false, onClick, children, ...props }, ref) => {
|
|
3327
3394
|
const classes = cn(roleTagVariants({ type, selected: type === "interactable" ? selected : false }), className);
|
|
3328
3395
|
if (type === "interactable") {
|
|
3329
|
-
return /* @__PURE__ */
|
|
3396
|
+
return /* @__PURE__ */ jsxs40(
|
|
3330
3397
|
"button",
|
|
3331
3398
|
{
|
|
3332
3399
|
ref,
|
|
@@ -3336,15 +3403,15 @@ var Badge = React52.forwardRef(
|
|
|
3336
3403
|
onClick,
|
|
3337
3404
|
...props,
|
|
3338
3405
|
children: [
|
|
3339
|
-
/* @__PURE__ */
|
|
3406
|
+
/* @__PURE__ */ jsx54(DotsSixVertical5, { size: 16, "aria-hidden": true, className: "hidden shrink-0 group-hover:block" }),
|
|
3340
3407
|
children
|
|
3341
3408
|
]
|
|
3342
3409
|
}
|
|
3343
3410
|
);
|
|
3344
3411
|
}
|
|
3345
|
-
return /* @__PURE__ */
|
|
3346
|
-
type === "question" && /* @__PURE__ */
|
|
3347
|
-
type === "id" && /* @__PURE__ */
|
|
3412
|
+
return /* @__PURE__ */ jsxs40("span", { ref, className: classes, ...props, children: [
|
|
3413
|
+
type === "question" && /* @__PURE__ */ jsx54(RadioButton2, { size: 16, weight: "fill", "aria-hidden": true }),
|
|
3414
|
+
type === "id" && /* @__PURE__ */ jsx54("span", { className: "text-secondary-muted-foreground", children: "ID" }),
|
|
3348
3415
|
children
|
|
3349
3416
|
] });
|
|
3350
3417
|
}
|
|
@@ -3352,9 +3419,9 @@ var Badge = React52.forwardRef(
|
|
|
3352
3419
|
Badge.displayName = "Badge";
|
|
3353
3420
|
|
|
3354
3421
|
// src/components/Utility/Pagination.tsx
|
|
3355
|
-
import * as
|
|
3422
|
+
import * as React54 from "react";
|
|
3356
3423
|
import { ArrowLeft, ArrowRight, DotsThree as DotsThree2 } from "@phosphor-icons/react";
|
|
3357
|
-
import { jsx as
|
|
3424
|
+
import { jsx as jsx55, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
3358
3425
|
function getPaginationItems(page, pageCount, siblings = 1) {
|
|
3359
3426
|
const keep = /* @__PURE__ */ new Set([1, pageCount]);
|
|
3360
3427
|
for (let p = page - siblings; p <= page + siblings; p++) if (p >= 1 && p <= pageCount) keep.add(p);
|
|
@@ -3368,10 +3435,10 @@ function getPaginationItems(page, pageCount, siblings = 1) {
|
|
|
3368
3435
|
});
|
|
3369
3436
|
return items;
|
|
3370
3437
|
}
|
|
3371
|
-
var Pagination =
|
|
3438
|
+
var Pagination = React54.forwardRef(
|
|
3372
3439
|
({ className, page, pageCount, onPageChange, variant = "full", siblings = 1, ...props }, ref) => {
|
|
3373
3440
|
const go = (next2) => onPageChange(Math.min(pageCount, Math.max(1, next2)));
|
|
3374
|
-
const previous = /* @__PURE__ */
|
|
3441
|
+
const previous = /* @__PURE__ */ jsx55(
|
|
3375
3442
|
Button,
|
|
3376
3443
|
{
|
|
3377
3444
|
type: "button",
|
|
@@ -3380,10 +3447,10 @@ var Pagination = React53.forwardRef(
|
|
|
3380
3447
|
"aria-label": "Previous page",
|
|
3381
3448
|
disabled: page <= 1,
|
|
3382
3449
|
onClick: () => go(page - 1),
|
|
3383
|
-
children: /* @__PURE__ */
|
|
3450
|
+
children: /* @__PURE__ */ jsx55(ArrowLeft, { size: 16, "aria-hidden": true })
|
|
3384
3451
|
}
|
|
3385
3452
|
);
|
|
3386
|
-
const next = /* @__PURE__ */
|
|
3453
|
+
const next = /* @__PURE__ */ jsx55(
|
|
3387
3454
|
Button,
|
|
3388
3455
|
{
|
|
3389
3456
|
type: "button",
|
|
@@ -3392,10 +3459,10 @@ var Pagination = React53.forwardRef(
|
|
|
3392
3459
|
"aria-label": "Next page",
|
|
3393
3460
|
disabled: page >= pageCount,
|
|
3394
3461
|
onClick: () => go(page + 1),
|
|
3395
|
-
children: /* @__PURE__ */
|
|
3462
|
+
children: /* @__PURE__ */ jsx55(ArrowRight, { size: 16, "aria-hidden": true })
|
|
3396
3463
|
}
|
|
3397
3464
|
);
|
|
3398
|
-
return /* @__PURE__ */
|
|
3465
|
+
return /* @__PURE__ */ jsxs41(
|
|
3399
3466
|
"nav",
|
|
3400
3467
|
{
|
|
3401
3468
|
ref,
|
|
@@ -3404,14 +3471,14 @@ var Pagination = React53.forwardRef(
|
|
|
3404
3471
|
...props,
|
|
3405
3472
|
children: [
|
|
3406
3473
|
previous,
|
|
3407
|
-
variant === "compact" ? /* @__PURE__ */
|
|
3474
|
+
variant === "compact" ? /* @__PURE__ */ jsxs41("span", { className: "text-body-small text-surface-foreground", "aria-live": "polite", children: [
|
|
3408
3475
|
page,
|
|
3409
3476
|
"/",
|
|
3410
3477
|
pageCount
|
|
3411
|
-
] }) : /* @__PURE__ */
|
|
3412
|
-
/* @__PURE__ */
|
|
3413
|
-
/* @__PURE__ */
|
|
3414
|
-
] }) : /* @__PURE__ */
|
|
3478
|
+
] }) : /* @__PURE__ */ jsx55("ul", { className: "flex items-center gap-2", children: getPaginationItems(page, pageCount, siblings).map((item, index) => /* @__PURE__ */ jsx55("li", { children: item === "ellipsis" ? /* @__PURE__ */ jsxs41("span", { className: "inline-flex size-8 items-center justify-center rounded-sm border border-border bg-surface text-surface-foreground", children: [
|
|
3479
|
+
/* @__PURE__ */ jsx55(DotsThree2, { size: 16, "aria-hidden": true }),
|
|
3480
|
+
/* @__PURE__ */ jsx55("span", { className: "sr-only", children: "More pages" })
|
|
3481
|
+
] }) : /* @__PURE__ */ jsx55(
|
|
3415
3482
|
Button,
|
|
3416
3483
|
{
|
|
3417
3484
|
type: "button",
|
|
@@ -3515,6 +3582,7 @@ export {
|
|
|
3515
3582
|
Slider,
|
|
3516
3583
|
StatCard,
|
|
3517
3584
|
StatusTag,
|
|
3585
|
+
StimulusCard,
|
|
3518
3586
|
Switch,
|
|
3519
3587
|
TabItem,
|
|
3520
3588
|
TabNavigation,
|