organify-ui 0.3.8 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -37,7 +37,7 @@ export { AiAdminLog, AiAdminLogsResponse, AiAdminStatsResponse, AiAdminUserStat,
37
37
  declare function cn(...inputs: ClassValue[]): string;
38
38
 
39
39
  declare const buttonVariants: (props?: ({
40
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
40
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
41
41
  size?: "sm" | "default" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
42
42
  } & class_variance_authority_types.ClassProp) | undefined) => string;
43
43
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -53,7 +53,7 @@ declare function Button({ className, variant, size, asChild, loading, children,
53
53
  * Squircle radius, organic easing, focus glow.
54
54
  */
55
55
  declare const inputVariants: (props?: ({
56
- variant?: "default" | "flat" | "rounded" | "error" | "cream" | null | undefined;
56
+ variant?: "error" | "flat" | "default" | "rounded" | "cream" | null | undefined;
57
57
  } & class_variance_authority_types.ClassProp) | undefined) => string;
58
58
  interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
59
59
  label?: string;
@@ -100,7 +100,7 @@ declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAtt
100
100
  * Theme-aware: uses CSS variables for theme switching.
101
101
  */
102
102
  declare const badgeVariants: (props?: ({
103
- variant?: "default" | "error" | "in-flow" | "primary" | "success" | "warning" | "info" | "deep-work" | "high-energy" | "cream-default" | "cream-primary" | null | undefined;
103
+ variant?: "success" | "error" | "warning" | "info" | "default" | "in-flow" | "primary" | "deep-work" | "high-energy" | "cream-default" | "cream-primary" | null | undefined;
104
104
  } & class_variance_authority_types.ClassProp) | undefined) => string;
105
105
  interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
106
106
  /** Animated pulse dot */
@@ -233,7 +233,7 @@ declare function OrgLoaderInline({ className, ...props }: React.SVGProps<SVGSVGE
233
233
  * - Semantic border colors per variant
234
234
  */
235
235
  declare const alertVariants: (props?: ({
236
- variant?: "error" | "success" | "warning" | "info" | null | undefined;
236
+ variant?: "success" | "error" | "warning" | "info" | null | undefined;
237
237
  } & class_variance_authority_types.ClassProp) | undefined) => string;
238
238
  interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
239
239
  /** Alert title */
@@ -262,7 +262,7 @@ declare function Alert({ className, variant, title, description, icon, onClose,
262
262
  * - Close button on top right
263
263
  */
264
264
  declare const toastVariants: (props?: ({
265
- variant?: "default" | "error" | "success" | "warning" | "info" | null | undefined;
265
+ variant?: "success" | "error" | "warning" | "info" | "default" | null | undefined;
266
266
  } & class_variance_authority_types.ClassProp) | undefined) => string;
267
267
  interface ToastProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof toastVariants> {
268
268
  /** Close handler */
@@ -384,9 +384,9 @@ declare function SettingsSkeleton({ className }: {
384
384
  * - `flat`: no clip-path, rounded corners
385
385
  */
386
386
  declare const glassPanelVariants: (props?: ({
387
- variant?: "default" | "flat" | "cream" | "alt" | "highlight" | null | undefined;
387
+ variant?: "flat" | "default" | "cream" | "alt" | "highlight" | null | undefined;
388
388
  corners?: "none" | "both" | "br" | "tl" | null | undefined;
389
- padding?: "sm" | "default" | "lg" | "xl" | "none" | null | undefined;
389
+ padding?: "none" | "sm" | "default" | "lg" | "xl" | null | undefined;
390
390
  } & class_variance_authority_types.ClassProp) | undefined) => string;
391
391
  interface GlassPanelProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof glassPanelVariants> {
392
392
  /** Add the in-flow indicator dot */
@@ -477,7 +477,7 @@ declare function SidebarButton({ item, expanded, renderLink, onNavigate, }: {
477
477
  expanded: boolean;
478
478
  renderLink?: DockSidebarProps['renderLink'];
479
479
  onNavigate?: () => void;
480
- }): string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
480
+ }): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
481
481
 
482
482
  interface WorkspaceSwitcherProps {
483
483
  /** Whether the sidebar is collapsed (icon-only mode) */
@@ -515,7 +515,7 @@ declare function Logo({ size, variant, animated, className, ...props }: LogoProp
515
515
  * From Brand Assets & Icons HTML.
516
516
  */
517
517
  declare const geometricIconVariants: (props?: ({
518
- variant?: "default" | "outline" | "error" | "cream" | "filled" | "success" | "warning" | null | undefined;
518
+ variant?: "success" | "error" | "warning" | "default" | "outline" | "cream" | "filled" | null | undefined;
519
519
  size?: "sm" | "default" | "lg" | "xl" | null | undefined;
520
520
  } & class_variance_authority_types.ClassProp) | undefined) => string;
521
521
  interface GeometricIconProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof geometricIconVariants> {
@@ -606,7 +606,7 @@ declare function StepConnector({ status, variant, }: {
606
606
  * From Brand Assets & Icons HTML.
607
607
  */
608
608
  declare const statusPillVariants: (props?: ({
609
- variant?: "default" | "error" | "cream" | "in-flow" | "primary" | "success" | "warning" | "info" | "deep-work" | "high-energy" | "resting" | "disconnected" | null | undefined;
609
+ variant?: "success" | "error" | "warning" | "info" | "default" | "cream" | "in-flow" | "primary" | "deep-work" | "high-energy" | "resting" | "disconnected" | null | undefined;
610
610
  size?: "sm" | "default" | "lg" | null | undefined;
611
611
  } & class_variance_authority_types.ClassProp) | undefined) => string;
612
612
  interface StatusPillProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof statusPillVariants> {
@@ -709,6 +709,7 @@ interface TaskDetailData {
709
709
  commentCount?: number;
710
710
  attachmentCount?: number;
711
711
  subtasks?: TaskSubtask[];
712
+ assigneeGroup?: TaskAssignee;
712
713
  }
713
714
  interface TaskDetailSheetProps {
714
715
  task: TaskDetailData | null;
@@ -724,10 +725,13 @@ interface TaskDetailSheetProps {
724
725
  onRemoveAssignee?: (taskId: string, assigneeId: string) => void;
725
726
  onToggleAssignee?: (taskId: string, assignee: TaskAssignee) => void;
726
727
  availableUsers?: TaskAssignee[];
728
+ availableGroups?: TaskAssignee[];
729
+ onToggleAssigneeGroup?: (taskId: string, group: TaskAssignee | null) => void;
727
730
  onAddSubtask?: (taskId: string, title: string) => Promise<void>;
728
731
  onToggleSubtask?: (taskId: string, subtaskId: string, completed: boolean) => Promise<void>;
729
732
  onDeleteSubtask?: (taskId: string, subtaskId: string) => Promise<void>;
730
733
  onUpdateSubtask?: (taskId: string, subtaskId: string, title: string) => Promise<void>;
734
+ onDeleteTask?: (taskId: string) => Promise<void>;
731
735
  comments?: Comment[];
732
736
  currentUser?: CommentAuthor;
733
737
  loading?: boolean;
@@ -741,7 +745,7 @@ interface TaskDetailSheetProps {
741
745
  color: string;
742
746
  }[];
743
747
  }
744
- declare function TaskDetailSheet({ task, open, onOpenChange, onUpdate, onAddLabel, onRemoveLabel, onToggleLabel, onCreateLabel, availableLabels, onAddAssignee, onRemoveAssignee, onToggleAssignee, availableUsers, onAddSubtask, onToggleSubtask, onDeleteSubtask, onUpdateSubtask, comments, currentUser, loading, availableStatuses, availablePriorities, }: TaskDetailSheetProps): react_jsx_runtime.JSX.Element;
748
+ declare function TaskDetailSheet({ task, open, onOpenChange, onUpdate, onAddLabel, onRemoveLabel, onToggleLabel, onCreateLabel, availableLabels, onAddAssignee, onRemoveAssignee, onToggleAssignee, availableUsers, availableGroups, onToggleAssigneeGroup, onAddSubtask, onToggleSubtask, onDeleteSubtask, onUpdateSubtask, onDeleteTask, comments, currentUser, loading, availableStatuses, availablePriorities, }: TaskDetailSheetProps): react_jsx_runtime.JSX.Element;
745
749
  declare namespace TaskDetailSheet {
746
750
  var displayName: string;
747
751
  }
@@ -976,11 +980,14 @@ interface KanbanBoardProps {
976
980
  onRemoveLabel?: TaskDetailSheetProps['onRemoveLabel'];
977
981
  onToggleAssignee?: TaskDetailSheetProps['onToggleAssignee'];
978
982
  availableUsers?: TaskDetailSheetProps['availableUsers'];
983
+ availableGroups?: TaskDetailSheetProps['availableGroups'];
984
+ onToggleAssigneeGroup?: TaskDetailSheetProps['onToggleAssigneeGroup'];
979
985
  onAddAssignee?: TaskDetailSheetProps['onAddAssignee'];
980
986
  onRemoveAssignee?: TaskDetailSheetProps['onRemoveAssignee'];
981
987
  onAddSubtask?: TaskDetailSheetProps['onAddSubtask'];
982
988
  onToggleSubtask?: TaskDetailSheetProps['onToggleSubtask'];
983
989
  onDeleteSubtask?: TaskDetailSheetProps['onDeleteSubtask'];
990
+ onDeleteTask?: TaskDetailSheetProps['onDeleteTask'];
984
991
  onUpdateSubtask?: TaskDetailSheetProps['onUpdateSubtask'];
985
992
  /** When provided, fires on task click instead of opening internal sheet.
986
993
  * The parent then renders its own TaskDetailSheet with full data (subtasks, comments). */
@@ -1019,7 +1026,7 @@ declare function Column({ column, onTaskClick, onAddTask, onRenameColumn, extern
1019
1026
  declare namespace Column {
1020
1027
  var displayName: string;
1021
1028
  }
1022
- declare function KanbanBoard({ columns, onColumnChange, onTaskMove, onAddTask, onAddColumn, onRenameColumn, className, externalDnD, onTaskUpdate, onToggleLabel, onCreateLabel, availableLabels, onAddLabel, onRemoveLabel, onToggleAssignee, availableUsers, onAddAssignee, onRemoveAssignee, onAddSubtask, onToggleSubtask, onDeleteSubtask, onUpdateSubtask, onTaskClick, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
1029
+ declare function KanbanBoard({ columns, onColumnChange, onTaskMove, onAddTask, onAddColumn, onRenameColumn, className, externalDnD, onTaskUpdate, onToggleLabel, onCreateLabel, availableLabels, onAddLabel, onRemoveLabel, onToggleAssignee, availableUsers, availableGroups, onToggleAssigneeGroup, onAddAssignee, onRemoveAssignee, onAddSubtask, onToggleSubtask, onDeleteSubtask, onDeleteTask, onUpdateSubtask, onTaskClick, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
1023
1030
  declare namespace KanbanBoard {
1024
1031
  var displayName: string;
1025
1032
  }
@@ -1206,7 +1213,7 @@ declare function Label({ className, ...props }: React.ComponentProps<'label'>):
1206
1213
  * Squircle radius, organic easing, focus glow.
1207
1214
  */
1208
1215
  declare const textareaVariants: (props?: ({
1209
- variant?: "default" | "flat" | "rounded" | "error" | "cream" | null | undefined;
1216
+ variant?: "error" | "flat" | "default" | "rounded" | "cream" | null | undefined;
1210
1217
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1211
1218
  interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'>, VariantProps<typeof textareaVariants> {
1212
1219
  label?: string;
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-SAYB3NN2.js';
2
2
  export { NotificationBell, NotificationItem, NotificationList, OrganifyNotifications, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PresenceAvatarStack, PresenceIndicator, useNotifications, usePresence } from './chunk-SAYB3NN2.js';
3
3
  export { createAiClient, useAiChat, useAiCommand, useAiSuggest, useAiUsage } from './chunk-NV4RWAQ2.js';
4
- export { ThemeProvider, useTheme } from './chunk-RFOKENE3.js';
5
4
  export { I18nProvider, createTranslator, useI18n } from './chunk-FQA33MF4.js';
5
+ export { ThemeProvider, useTheme } from './chunk-RFOKENE3.js';
6
6
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Drawer, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, Separator, ResponsiveDialog, Label, Input, Textarea, Button, Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-HFX2XZKZ.js';
7
7
  export { AiChatSidebar, Alert, Button, ChatMessages, ChatSidebar, CommandBar, CreateRoomDialog, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, InlineAiButton, Input, Label, MOCK_PROJECTS, MOCK_USERS, OrgLoader, OrgLoaderInline, OrganifyChat, ResponsiveDialog, RoomManagementPanel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TypingIndicatorMock, alertVariants, buttonVariants, generateAutoReplies, getMockMentionOptions, getRoomPermissions, inputVariants, orgLoaderVariants, typingIndicator, useAiInline, useChat } from './chunk-HFX2XZKZ.js';
8
8
  import { cn, Avatar, AvatarImage, AvatarFallback, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, Skeleton, useOrganify, useOrganifyGql, ScrollArea, useOrganifyUser, useOrganifyApi, Badge, useOrganifyWorkspace, useOrganifyNavigation, useOrganifyProject } from './chunk-VHQZS77G.js';
@@ -13,7 +13,7 @@ import * as React5 from 'react';
13
13
  import * as SwitchPrimitive from '@radix-ui/react-switch';
14
14
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
15
15
  import * as ProgressPrimitive from '@radix-ui/react-progress';
16
- import { X, XIcon, GripVertical, Check, ChevronRight, Circle, Search, MoreHorizontal, AlertCircle, AlertTriangle, CheckCircle2, Info, Sparkles, Plus, Calendar, Trash2 } from 'lucide-react';
16
+ import { X, XIcon, GripVertical, Check, ChevronRight, Circle, Search, MoreHorizontal, AlertCircle, AlertTriangle, CheckCircle2, Info, Sparkles, Plus, Trash2, Calendar } from 'lucide-react';
17
17
  import { cva } from 'class-variance-authority';
18
18
  import * as SheetPrimitive from '@radix-ui/react-dialog';
19
19
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
@@ -5683,10 +5683,13 @@ function TaskDetailContent({
5683
5683
  onRemoveAssignee,
5684
5684
  onToggleAssignee,
5685
5685
  availableUsers,
5686
+ availableGroups,
5687
+ onToggleAssigneeGroup,
5686
5688
  onAddSubtask,
5687
5689
  onToggleSubtask,
5688
5690
  onDeleteSubtask,
5689
5691
  onUpdateSubtask,
5692
+ onDeleteTask,
5690
5693
  comments,
5691
5694
  currentUser,
5692
5695
  statuses,
@@ -5824,6 +5827,29 @@ function TaskDetailContent({
5824
5827
  assignee.id
5825
5828
  )) })
5826
5829
  ] }),
5830
+ availableGroups && availableGroups.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
5831
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
5832
+ /* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-theme-muted uppercase tracking-wide", children: "Grupo respons\xE1vel" }),
5833
+ onToggleAssigneeGroup && /* @__PURE__ */ jsx(
5834
+ AssigneePicker,
5835
+ {
5836
+ selectedAssignees: task.assigneeGroup ? [{ id: task.assigneeGroup.id, name: task.assigneeGroup.name, avatarUrl: task.assigneeGroup.avatarUrl }] : [],
5837
+ availableUsers: availableGroups.map((g) => ({ id: g.id, name: g.name, avatarUrl: g.avatarUrl })),
5838
+ onToggle: (group) => {
5839
+ const isSame = task.assigneeGroup?.id === group.id;
5840
+ onToggleAssigneeGroup(task.id, isSame ? null : { id: group.id, name: group.name, avatarUrl: group.avatarUrl });
5841
+ }
5842
+ }
5843
+ )
5844
+ ] }),
5845
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: task.assigneeGroup ? /* @__PURE__ */ jsx(
5846
+ AssigneeItem,
5847
+ {
5848
+ assignee: task.assigneeGroup,
5849
+ onRemove: onToggleAssigneeGroup ? () => onToggleAssigneeGroup(task.id, null) : void 0
5850
+ }
5851
+ ) : /* @__PURE__ */ jsx("span", { className: "text-sm text-theme-muted italic", children: "Nenhum grupo" }) })
5852
+ ] }),
5827
5853
  /* @__PURE__ */ jsx(Separator, { className: "bg-theme-subtle" }),
5828
5854
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
5829
5855
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
@@ -5875,6 +5901,22 @@ function TaskDetailContent({
5875
5901
  currentUser
5876
5902
  }
5877
5903
  )
5904
+ ] }),
5905
+ onDeleteTask && /* @__PURE__ */ jsxs(Fragment, { children: [
5906
+ /* @__PURE__ */ jsx(Separator, { className: "bg-theme-subtle" }),
5907
+ /* @__PURE__ */ jsx("div", { className: "pb-2", children: /* @__PURE__ */ jsxs(
5908
+ Button,
5909
+ {
5910
+ variant: "destructive",
5911
+ size: "sm",
5912
+ className: "w-full",
5913
+ onClick: () => onDeleteTask(task.id),
5914
+ children: [
5915
+ /* @__PURE__ */ jsx(Trash2, { className: "h-4 w-4 mr-2" }),
5916
+ "Excluir tarefa"
5917
+ ]
5918
+ }
5919
+ ) })
5878
5920
  ] })
5879
5921
  ] });
5880
5922
  }
@@ -5917,10 +5959,13 @@ function TaskDetailSheet({
5917
5959
  onRemoveAssignee,
5918
5960
  onToggleAssignee,
5919
5961
  availableUsers,
5962
+ availableGroups,
5963
+ onToggleAssigneeGroup,
5920
5964
  onAddSubtask,
5921
5965
  onToggleSubtask,
5922
5966
  onDeleteSubtask,
5923
5967
  onUpdateSubtask,
5968
+ onDeleteTask,
5924
5969
  comments,
5925
5970
  currentUser,
5926
5971
  loading = false,
@@ -5942,10 +5987,13 @@ function TaskDetailSheet({
5942
5987
  onRemoveAssignee,
5943
5988
  onToggleAssignee,
5944
5989
  availableUsers,
5990
+ availableGroups,
5991
+ onToggleAssigneeGroup,
5945
5992
  onAddSubtask,
5946
5993
  onToggleSubtask,
5947
5994
  onDeleteSubtask,
5948
5995
  onUpdateSubtask,
5996
+ onDeleteTask,
5949
5997
  comments,
5950
5998
  currentUser,
5951
5999
  statuses: availableStatuses,
@@ -6829,11 +6877,14 @@ function KanbanBoard({
6829
6877
  onRemoveLabel,
6830
6878
  onToggleAssignee,
6831
6879
  availableUsers,
6880
+ availableGroups,
6881
+ onToggleAssigneeGroup,
6832
6882
  onAddAssignee,
6833
6883
  onRemoveAssignee,
6834
6884
  onAddSubtask,
6835
6885
  onToggleSubtask,
6836
6886
  onDeleteSubtask,
6887
+ onDeleteTask,
6837
6888
  onUpdateSubtask,
6838
6889
  onTaskClick
6839
6890
  }) {
@@ -7057,11 +7108,14 @@ function KanbanBoard({
7057
7108
  onRemoveLabel,
7058
7109
  onToggleAssignee,
7059
7110
  availableUsers,
7111
+ availableGroups,
7112
+ onToggleAssigneeGroup,
7060
7113
  onAddAssignee,
7061
7114
  onRemoveAssignee,
7062
7115
  onAddSubtask,
7063
7116
  onToggleSubtask,
7064
7117
  onDeleteSubtask,
7118
+ onDeleteTask,
7065
7119
  onUpdateSubtask
7066
7120
  }
7067
7121
  )