@fayz-ai/tasks 0.0.0-stage → 0.48.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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -2
  3. package/dist/chunk-5DWYILP2.js +102 -0
  4. package/dist/chunk-5DWYILP2.js.map +1 -0
  5. package/dist/chunk-BHNXKHFW.js +29 -0
  6. package/dist/chunk-BHNXKHFW.js.map +1 -0
  7. package/dist/chunk-H435KYKF.js +26 -0
  8. package/dist/chunk-H435KYKF.js.map +1 -0
  9. package/dist/chunk-IHQV22ML.js +128 -0
  10. package/dist/chunk-IHQV22ML.js.map +1 -0
  11. package/dist/chunk-IYQSFHSK.js +175 -0
  12. package/dist/chunk-IYQSFHSK.js.map +1 -0
  13. package/dist/chunk-KM7XZUFP.js +114 -0
  14. package/dist/chunk-KM7XZUFP.js.map +1 -0
  15. package/dist/chunk-KUO4ZJPR.js +187 -0
  16. package/dist/chunk-KUO4ZJPR.js.map +1 -0
  17. package/dist/chunk-KXUCWLLG.js +80 -0
  18. package/dist/chunk-KXUCWLLG.js.map +1 -0
  19. package/dist/chunk-LY4RNYRG.js +57 -0
  20. package/dist/chunk-LY4RNYRG.js.map +1 -0
  21. package/dist/chunk-Q5FSJ2D6.js +60 -0
  22. package/dist/chunk-Q5FSJ2D6.js.map +1 -0
  23. package/dist/chunk-WNIXFQM4.js +22 -0
  24. package/dist/chunk-WNIXFQM4.js.map +1 -0
  25. package/dist/chunk-XVAIXG7V.js +42 -0
  26. package/dist/chunk-XVAIXG7V.js.map +1 -0
  27. package/dist/components/TaskCard.d.ts +17 -0
  28. package/dist/components/TaskCard.d.ts.map +1 -0
  29. package/dist/components/TaskCard.js +7 -0
  30. package/dist/components/TaskCard.js.map +1 -0
  31. package/dist/components/TaskDetail.d.ts +21 -0
  32. package/dist/components/TaskDetail.d.ts.map +1 -0
  33. package/dist/components/TaskDetail.js +10 -0
  34. package/dist/components/TaskDetail.js.map +1 -0
  35. package/dist/components/TaskLabelBadge.d.ts +11 -0
  36. package/dist/components/TaskLabelBadge.d.ts.map +1 -0
  37. package/dist/components/TaskLabelBadge.js +4 -0
  38. package/dist/components/TaskLabelBadge.js.map +1 -0
  39. package/dist/components/TaskPriorityBadge.d.ts +7 -0
  40. package/dist/components/TaskPriorityBadge.d.ts.map +1 -0
  41. package/dist/components/TaskPriorityBadge.js +3 -0
  42. package/dist/components/TaskPriorityBadge.js.map +1 -0
  43. package/dist/components/TaskQuickAdd.d.ts +8 -0
  44. package/dist/components/TaskQuickAdd.d.ts.map +1 -0
  45. package/dist/components/TaskQuickAdd.js +3 -0
  46. package/dist/components/TaskQuickAdd.js.map +1 -0
  47. package/dist/components/TaskSourceBadge.d.ts +5 -0
  48. package/dist/components/TaskSourceBadge.d.ts.map +1 -0
  49. package/dist/components/TaskSourceBadge.js +4 -0
  50. package/dist/components/TaskSourceBadge.js.map +1 -0
  51. package/dist/components/TaskStatusGroup.d.ts +16 -0
  52. package/dist/components/TaskStatusGroup.d.ts.map +1 -0
  53. package/dist/components/TaskStatusGroup.js +3 -0
  54. package/dist/components/TaskStatusGroup.js.map +1 -0
  55. package/dist/components/TasksFilterBar.d.ts +13 -0
  56. package/dist/components/TasksFilterBar.d.ts.map +1 -0
  57. package/dist/components/TasksFilterBar.js +4 -0
  58. package/dist/components/TasksFilterBar.js.map +1 -0
  59. package/dist/data/mock.d.ts +3 -0
  60. package/dist/data/mock.d.ts.map +1 -0
  61. package/dist/data/mock.js +4 -0
  62. package/dist/data/mock.js.map +1 -0
  63. package/dist/data/provider.d.ts +13 -0
  64. package/dist/data/provider.d.ts.map +1 -0
  65. package/dist/data/provider.js +3 -0
  66. package/dist/data/provider.js.map +1 -0
  67. package/dist/data/supabase.d.ts +9 -0
  68. package/dist/data/supabase.d.ts.map +1 -0
  69. package/dist/data/supabase.js +4 -0
  70. package/dist/data/supabase.js.map +1 -0
  71. package/dist/domain/task.d.ts +121 -0
  72. package/dist/domain/task.d.ts.map +1 -0
  73. package/dist/domain/task.js +3 -0
  74. package/dist/domain/task.js.map +1 -0
  75. package/dist/store.d.ts +35 -0
  76. package/dist/store.d.ts.map +1 -0
  77. package/dist/store.js +6 -0
  78. package/dist/store.js.map +1 -0
  79. package/dist/views/TasksPanel.d.ts +8 -0
  80. package/dist/views/TasksPanel.d.ts.map +1 -0
  81. package/dist/views/TasksPanel.js +103 -0
  82. package/dist/views/TasksPanel.js.map +1 -0
  83. package/package.json +51 -3
@@ -0,0 +1,103 @@
1
+ import { TasksFilterBar } from '../chunk-Q5FSJ2D6.js';
2
+ import { useTasksStore } from '../chunk-KM7XZUFP.js';
3
+ import '../chunk-IHQV22ML.js';
4
+ import '../chunk-IYQSFHSK.js';
5
+ import { TaskDetail } from '../chunk-KUO4ZJPR.js';
6
+ import { TaskCard } from '../chunk-KXUCWLLG.js';
7
+ import '../chunk-BHNXKHFW.js';
8
+ import '../chunk-WNIXFQM4.js';
9
+ import { TaskQuickAdd } from '../chunk-XVAIXG7V.js';
10
+ import '../chunk-H435KYKF.js';
11
+ import { splitOnboardingTasks, groupByStatus } from '../chunk-5DWYILP2.js';
12
+ import { TaskGroup, TaskStatusGroup } from '../chunk-LY4RNYRG.js';
13
+ import React from 'react';
14
+ import { ClipboardList } from 'lucide-react';
15
+ import { useTranslation } from '@fayz-ai/core';
16
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
17
+
18
+ function TasksPanel({ locale, onDelegate, renderActions }) {
19
+ const t = useTranslation();
20
+ const s = useTasksStore();
21
+ React.useEffect(() => {
22
+ void s.fetchTasks();
23
+ void s.fetchLabels();
24
+ void s.fetchSummary();
25
+ }, [s.fetchTasks, s.fetchLabels, s.fetchSummary]);
26
+ const { onboarding, groups } = React.useMemo(() => {
27
+ const split = splitOnboardingTasks(s.tasks);
28
+ return { onboarding: split.onboarding, groups: groupByStatus(split.rest) };
29
+ }, [s.tasks]);
30
+ const card = (showSource) => (task) => /* @__PURE__ */ jsx(
31
+ TaskCard,
32
+ {
33
+ task,
34
+ labels: s.labels,
35
+ locale,
36
+ showSource,
37
+ onSelect: s.selectTask,
38
+ onUpdate: s.updateTask
39
+ },
40
+ task.id
41
+ );
42
+ if (s.selectedTaskId) {
43
+ return /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx(
44
+ TaskDetail,
45
+ {
46
+ task: s.tasks.find((task) => task.id === s.selectedTaskId),
47
+ labels: s.labels,
48
+ locale,
49
+ onSelect: s.selectTask,
50
+ onUpdate: s.updateTask,
51
+ onDelete: s.deleteTask,
52
+ onCreate: s.createTask,
53
+ onDelegate,
54
+ renderActions
55
+ }
56
+ ) });
57
+ }
58
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
59
+ /* @__PURE__ */ jsx(
60
+ TasksFilterBar,
61
+ {
62
+ activeFilter: s.activeFilter,
63
+ summary: s.summary,
64
+ mine: s.mine,
65
+ currentUserId: s.currentUserId,
66
+ onFilterChange: s.setFilter,
67
+ onMineChange: s.setMine
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsx(TaskQuickAdd, { onCreate: s.createTask }),
71
+ /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: s.tasksLoading && s.tasks.length === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-16", children: /* @__PURE__ */ jsx("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-primary border-t-transparent" }) }) : s.tasks.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center py-16 text-muted-foreground", children: [
72
+ /* @__PURE__ */ jsx(ClipboardList, { className: "mb-3 h-10 w-10 opacity-40" }),
73
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: t("tasks.empty") }),
74
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs", children: t("tasks.empty.description") })
75
+ ] }) : s.activeFilter !== "all" ? /* @__PURE__ */ jsx("div", { className: "px-1 py-1", children: s.tasks.map(card(true)) }) : /* @__PURE__ */ jsxs("div", { className: "space-y-2 py-2", children: [
76
+ /* @__PURE__ */ jsx(
77
+ TaskGroup,
78
+ {
79
+ title: t("tasks.group.onboarding"),
80
+ dotClass: "bg-primary",
81
+ tasks: onboarding,
82
+ renderTask: card(false)
83
+ }
84
+ ),
85
+ groups.map((group) => /* @__PURE__ */ jsx(TaskStatusGroup, { status: group.status, tasks: group.tasks, renderTask: card(true) }, group.status))
86
+ ] }) })
87
+ ] });
88
+ }
89
+ function useTasksSummaryLine() {
90
+ const t = useTranslation();
91
+ const summary = useTasksStore((s) => s.summary);
92
+ return React.useMemo(() => {
93
+ if (!summary) return "";
94
+ const parts = [];
95
+ if (summary.overdue > 0) parts.push(`${summary.overdue} ${t("tasks.summary.overdue")}`);
96
+ if (summary.dueToday > 0) parts.push(`${summary.dueToday} ${t("tasks.summary.dueToday")}`);
97
+ return parts.join(" \xB7 ");
98
+ }, [summary, t]);
99
+ }
100
+
101
+ export { TasksPanel, useTasksSummaryLine };
102
+ //# sourceMappingURL=TasksPanel.js.map
103
+ //# sourceMappingURL=TasksPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/views/TasksPanel.tsx"],"names":[],"mappings":"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","file":"TasksPanel.js","sourcesContent":["import React from 'react'\nimport { ClipboardList } from 'lucide-react'\nimport { useTranslation } from '@fayz-ai/core'\nimport { useTasksStore } from '../store'\nimport { groupByStatus, splitOnboardingTasks, type Task } from '../domain/task'\nimport { TasksFilterBar } from '../components/TasksFilterBar'\nimport { TaskQuickAdd } from '../components/TaskQuickAdd'\nimport { TaskCard } from '../components/TaskCard'\nimport { TaskGroup, TaskStatusGroup } from '../components/TaskStatusGroup'\nimport { TaskDetail, type TaskDetailProps } from '../components/TaskDetail'\n\nexport type TasksPanelProps = Pick<TaskDetailProps, 'locale' | 'onDelegate' | 'renderActions'>\n\n/** The task list with no box around it: the host decides whether it is a rail tab or a sheet. */\nexport function TasksPanel({ locale, onDelegate, renderActions }: TasksPanelProps) {\n const t = useTranslation()\n const s = useTasksStore()\n\n // Mounted directly by the rail, where openDrawer() never runs; reads are shared, so the sheet does not double-load.\n React.useEffect(() => {\n void s.fetchTasks()\n void s.fetchLabels()\n void s.fetchSummary()\n }, [s.fetchTasks, s.fetchLabels, s.fetchSummary])\n\n const { onboarding, groups } = React.useMemo(() => {\n const split = splitOnboardingTasks(s.tasks)\n return { onboarding: split.onboarding, groups: groupByStatus(split.rest) }\n }, [s.tasks])\n\n const card = (showSource: boolean) => (task: Task) => (\n <TaskCard\n key={task.id}\n task={task}\n labels={s.labels}\n locale={locale}\n showSource={showSource}\n onSelect={s.selectTask}\n onUpdate={s.updateTask}\n />\n )\n\n if (s.selectedTaskId) {\n return (\n <div className=\"min-h-0 flex-1 overflow-y-auto\">\n <TaskDetail\n task={s.tasks.find((task) => task.id === s.selectedTaskId)}\n labels={s.labels}\n locale={locale}\n onSelect={s.selectTask}\n onUpdate={s.updateTask}\n onDelete={s.deleteTask}\n onCreate={s.createTask}\n onDelegate={onDelegate}\n renderActions={renderActions}\n />\n </div>\n )\n }\n\n return (\n <>\n <TasksFilterBar\n activeFilter={s.activeFilter}\n summary={s.summary}\n mine={s.mine}\n currentUserId={s.currentUserId}\n onFilterChange={s.setFilter}\n onMineChange={s.setMine}\n />\n <TaskQuickAdd onCreate={s.createTask} />\n\n <div className=\"min-h-0 flex-1 overflow-y-auto\">\n {s.tasksLoading && s.tasks.length === 0 ? (\n <div className=\"flex items-center justify-center py-16\">\n <div className=\"h-5 w-5 animate-spin rounded-full border-2 border-primary border-t-transparent\" />\n </div>\n ) : s.tasks.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-16 text-muted-foreground\">\n <ClipboardList className=\"mb-3 h-10 w-10 opacity-40\" />\n <p className=\"text-sm font-medium\">{t('tasks.empty')}</p>\n <p className=\"mt-1 text-xs\">{t('tasks.empty.description')}</p>\n </div>\n ) : s.activeFilter !== 'all' ? (\n <div className=\"px-1 py-1\">{s.tasks.map(card(true))}</div>\n ) : (\n <div className=\"space-y-2 py-2\">\n <TaskGroup\n title={t('tasks.group.onboarding')}\n dotClass=\"bg-primary\"\n tasks={onboarding}\n renderTask={card(false)}\n />\n {groups.map((group) => (\n <TaskStatusGroup key={group.status} status={group.status} tasks={group.tasks} renderTask={card(true)} />\n ))}\n </div>\n )}\n </div>\n </>\n )\n}\n\n/** One-line summary of what needs attention (\"3 atrasadas · 2 para hoje\"). */\nexport function useTasksSummaryLine(): string {\n const t = useTranslation()\n const summary = useTasksStore((s) => s.summary)\n return React.useMemo(() => {\n if (!summary) return ''\n const parts: string[] = []\n if (summary.overdue > 0) parts.push(`${summary.overdue} ${t('tasks.summary.overdue')}`)\n if (summary.dueToday > 0) parts.push(`${summary.dueToday} ${t('tasks.summary.dueToday')}`)\n return parts.join(' · ')\n }, [summary, t])\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,54 @@
1
1
  {
2
2
  "name": "@fayz-ai/tasks",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "fayz": {
4
+ "status": "beta"
5
+ },
6
+ "version": "0.48.0",
7
+ "description": "Fayz SDK tasks context — the task domain, its repository port and adapters, store and UI",
8
+ "type": "module",
9
+ "sideEffects": false,
10
+ "exports": {
11
+ "./*": {
12
+ "types": "./dist/*.d.ts",
13
+ "import": "./dist/*.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "peerDependencies": {
20
+ "@supabase/supabase-js": "^2.45.0",
21
+ "lucide-react": ">=0.400.0 <1.0.0",
22
+ "react": "^18.0.0 || ^19.0.0",
23
+ "zustand": "^4.5.0 || ^5.0.0"
24
+ },
25
+ "dependencies": {
26
+ "@fayz-ai/core": "^0.48.0",
27
+ "@fayz-ai/ui": "^0.48.0"
28
+ },
29
+ "devDependencies": {
30
+ "@supabase/supabase-js": "^2.45.0",
31
+ "@types/react": "^18.3.0",
32
+ "lucide-react": "^0.400.0",
33
+ "react": "^18.3.0",
34
+ "tsup": "^8.2.0",
35
+ "typescript": "^5.5.0",
36
+ "vitest": "^4.1.5",
37
+ "zustand": "^4.5.0"
38
+ },
39
+ "license": "MIT",
40
+ "keywords": [
41
+ "fayz",
42
+ "tasks"
43
+ ],
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
47
+ "scripts": {
48
+ "build": "tsup && tsc -b --force",
49
+ "dev": "tsup --watch",
50
+ "typecheck": "tsc -b tsconfig.test.json",
51
+ "test": "vitest run",
52
+ "clean": "rm -rf dist .tsbuildinfo"
53
+ }
6
54
  }