@etus/ui 0.4.0-beta.13 → 0.4.0-beta.15

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 (45) hide show
  1. package/dist/chunk-FES2I2OT.js +3 -0
  2. package/dist/{chunk-6Z73ZQOP.js.map → chunk-FES2I2OT.js.map} +1 -1
  3. package/dist/chunk-K4MYVFWQ.js +109 -0
  4. package/dist/chunk-K4MYVFWQ.js.map +1 -0
  5. package/dist/chunk-KDJCZXLB.js +91 -0
  6. package/dist/chunk-KDJCZXLB.js.map +1 -0
  7. package/dist/{chunk-P27ERD6W.js → chunk-MDIXY44D.js} +2 -2
  8. package/dist/{chunk-P27ERD6W.js.map → chunk-MDIXY44D.js.map} +1 -1
  9. package/dist/chunk-OOJO4QGD.js +3 -0
  10. package/dist/{chunk-ATIEGLR2.js.map → chunk-OOJO4QGD.js.map} +1 -1
  11. package/dist/chunk-VORFH6HQ.js +46 -0
  12. package/dist/chunk-VORFH6HQ.js.map +1 -0
  13. package/dist/components/advanced/index.js +6 -6
  14. package/dist/components/data-display/DataTable/index.js +1 -1
  15. package/dist/components/data-display/FeatureItem/index.js +6 -0
  16. package/dist/components/data-display/index.js +15 -13
  17. package/dist/components/feedback/index.js +2 -2
  18. package/dist/components/forms/index.js +14 -14
  19. package/dist/components/index.js +90 -88
  20. package/dist/components/layout/index.js +1 -1
  21. package/dist/components/navigation/LogoConta/index.js +5 -0
  22. package/dist/components/navigation/LogoConta/index.js.map +1 -0
  23. package/dist/components/navigation/index.js +5 -4
  24. package/dist/components/primitives/ArrowAnimated/index.js +2 -89
  25. package/dist/components/primitives/ArrowAnimated/index.js.map +1 -1
  26. package/dist/components/primitives/index.js +12 -12
  27. package/dist/components/workflow/index.js +4 -4
  28. package/dist/index.d.ts +444 -306
  29. package/dist/index.js +90 -88
  30. package/dist/styles.css +27 -48
  31. package/package.json +2 -2
  32. package/dist/chunk-6Z73ZQOP.js +0 -3
  33. package/dist/chunk-ATIEGLR2.js +0 -3
  34. package/dist/chunk-N23L6UDK.js +0 -108
  35. package/dist/chunk-N23L6UDK.js.map +0 -1
  36. package/dist/components/data-display/DashboardFilterbar/index.js +0 -111
  37. package/dist/components/data-display/DashboardFilterbar/index.js.map +0 -1
  38. package/dist/components/navigation/MobileSidebar/index.js +0 -190
  39. package/dist/components/navigation/MobileSidebar/index.js.map +0 -1
  40. package/dist/components/navigation/UserProfileDropdown/index.js +0 -224
  41. package/dist/components/navigation/UserProfileDropdown/index.js.map +0 -1
  42. package/dist/components/navigation/WorkspaceDropdown/index.js +0 -192
  43. package/dist/components/navigation/WorkspaceDropdown/index.js.map +0 -1
  44. package/dist/components/primitives/FeatureItem/index.js +0 -5
  45. /package/dist/components/{primitives → data-display}/FeatureItem/index.js.map +0 -0
@@ -1,192 +0,0 @@
1
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSeparator } from '../../../chunk-OXDWUKGP.js';
2
- import { cn } from '../../../chunk-HRNDJU7D.js';
3
- import '../../../chunk-UP2VWCW5.js';
4
- import { ChevronsUpDownIcon, PlusIcon } from 'lucide-react';
5
- import { cva } from 'class-variance-authority';
6
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
-
8
- var workspaceDropdownVariants = cva(
9
- // Base styles
10
- [],
11
- {
12
- variants: {
13
- variant: {
14
- default: "",
15
- compact: ""
16
- }
17
- },
18
- defaultVariants: {
19
- variant: "default"
20
- }
21
- }
22
- );
23
- var workspaceTriggerVariants = cva(
24
- [
25
- "flex w-full items-center gap-x-2.5 rounded-md",
26
- "text-sm",
27
- "border border-input bg-background",
28
- "shadow-sm",
29
- "hover:bg-accent hover:text-accent-foreground",
30
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
31
- "transition-all"
32
- ],
33
- {
34
- variants: {
35
- variant: {
36
- default: "p-2",
37
- compact: "p-1.5"
38
- }
39
- },
40
- defaultVariants: {
41
- variant: "default"
42
- }
43
- }
44
- );
45
- var workspaceAvatarVariants = cva(
46
- [
47
- "flex items-center justify-center rounded",
48
- "text-xs font-medium text-white"
49
- ],
50
- {
51
- variants: {
52
- size: {
53
- sm: "size-7 p-1.5",
54
- md: "size-8 p-2"
55
- }
56
- },
57
- defaultVariants: {
58
- size: "md"
59
- }
60
- }
61
- );
62
- var workspaceInfoVariants = cva([
63
- "flex w-full items-center justify-between gap-x-4 truncate"
64
- ]);
65
- var workspaceNameVariants = cva([
66
- "truncate whitespace-nowrap text-sm font-medium text-foreground"
67
- ]);
68
- var workspaceRoleVariants = cva([
69
- "whitespace-nowrap text-left text-xs text-muted-foreground"
70
- ]);
71
- var workspaceItemVariants = cva([
72
- "flex w-full items-center gap-x-2.5"
73
- ]);
74
- function WorkspaceTrigger({
75
- workspace,
76
- variant = "default",
77
- className,
78
- ...props
79
- }) {
80
- return /* @__PURE__ */ jsxs(
81
- "button",
82
- {
83
- className: cn(workspaceTriggerVariants({ variant }), className),
84
- "data-slot": "workspace-trigger",
85
- type: "button",
86
- ...props,
87
- children: [
88
- /* @__PURE__ */ jsx(
89
- "span",
90
- {
91
- className: cn(
92
- workspaceAvatarVariants({ size: variant === "compact" ? "sm" : "md" }),
93
- workspace.color ?? "bg-primary"
94
- ),
95
- "aria-hidden": "true",
96
- children: workspace.initials
97
- }
98
- ),
99
- /* @__PURE__ */ jsxs("div", { className: cn(workspaceInfoVariants()), children: [
100
- /* @__PURE__ */ jsxs("div", { className: "truncate", children: [
101
- /* @__PURE__ */ jsx("p", { className: cn(workspaceNameVariants()), children: workspace.name }),
102
- workspace.role && /* @__PURE__ */ jsx("p", { className: cn(workspaceRoleVariants()), children: workspace.role })
103
- ] }),
104
- /* @__PURE__ */ jsx(
105
- ChevronsUpDownIcon,
106
- {
107
- "aria-hidden": "true",
108
- className: "size-5 shrink-0 text-muted-foreground"
109
- }
110
- )
111
- ] })
112
- ]
113
- }
114
- );
115
- }
116
- function WorkspaceItem({ workspace }) {
117
- return /* @__PURE__ */ jsxs("div", { className: cn(workspaceItemVariants()), children: [
118
- /* @__PURE__ */ jsx(
119
- "span",
120
- {
121
- className: cn(
122
- workspaceAvatarVariants(),
123
- workspace.color ?? "bg-primary"
124
- ),
125
- "aria-hidden": "true",
126
- children: workspace.initials
127
- }
128
- ),
129
- /* @__PURE__ */ jsxs("div", { children: [
130
- /* @__PURE__ */ jsx("p", { className: cn(workspaceNameVariants()), children: workspace.name }),
131
- workspace.role && /* @__PURE__ */ jsx("p", { className: cn(workspaceRoleVariants()), children: workspace.role })
132
- ] })
133
- ] });
134
- }
135
- function WorkspaceDropdown({
136
- selectedWorkspace,
137
- workspaces,
138
- onWorkspaceSelect,
139
- onAddWorkspace,
140
- addWorkspaceLabel = "Add workspace",
141
- showAddWorkspace = false,
142
- align = "start",
143
- variant,
144
- className,
145
- ...props
146
- }) {
147
- return /* @__PURE__ */ jsx(
148
- "div",
149
- {
150
- className: cn(workspaceDropdownVariants({ variant }), className),
151
- "data-slot": "workspace-dropdown",
152
- ...props,
153
- children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
154
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
155
- WorkspaceTrigger,
156
- {
157
- variant: variant === "compact" ? "compact" : "default",
158
- workspace: selectedWorkspace
159
- }
160
- ) }),
161
- /* @__PURE__ */ jsxs(DropdownMenuContent, { align, className: "min-w-60", children: [
162
- /* @__PURE__ */ jsxs(DropdownMenuLabel, { children: [
163
- "Workspaces (",
164
- workspaces.length,
165
- ")"
166
- ] }),
167
- /* @__PURE__ */ jsx(DropdownMenuGroup, { children: workspaces.map((workspace) => /* @__PURE__ */ jsx(
168
- DropdownMenuItem,
169
- {
170
- onClick: () => onWorkspaceSelect?.(workspace),
171
- children: /* @__PURE__ */ jsx(WorkspaceItem, { workspace })
172
- },
173
- workspace.id
174
- )) }),
175
- showAddWorkspace && /* @__PURE__ */ jsxs(Fragment, { children: [
176
- /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
177
- /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: onAddWorkspace, children: [
178
- /* @__PURE__ */ jsx(PlusIcon, { "aria-hidden": "true", className: "mr-2 size-4" }),
179
- addWorkspaceLabel
180
- ] })
181
- ] })
182
- ] })
183
- ] })
184
- }
185
- );
186
- }
187
- WorkspaceDropdown.displayName = "WorkspaceDropdown";
188
- WorkspaceTrigger.displayName = "WorkspaceTrigger";
189
-
190
- export { WorkspaceDropdown, WorkspaceItem, WorkspaceTrigger, workspaceAvatarVariants, workspaceDropdownVariants, workspaceInfoVariants, workspaceItemVariants, workspaceNameVariants, workspaceRoleVariants, workspaceTriggerVariants };
191
- //# sourceMappingURL=index.js.map
192
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/navigation/WorkspaceDropdown/WorkspaceDropdown.variants.ts","../../../../src/components/navigation/WorkspaceDropdown/WorkspaceDropdown.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// WorkspaceDropdown/WorkspaceDropdown.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * WorkspaceDropdown style variants using CVA\n */\nexport const workspaceDropdownVariants = cva(\n // Base styles\n [],\n {\n variants: {\n variant: {\n default: \"\",\n compact: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport const workspaceTriggerVariants = cva(\n [\n \"flex w-full items-center gap-x-2.5 rounded-md\",\n \"text-sm\",\n \"border border-input bg-background\",\n \"shadow-sm\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n \"transition-all\",\n ],\n {\n variants: {\n variant: {\n default: \"p-2\",\n compact: \"p-1.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport const workspaceAvatarVariants = cva(\n [\n \"flex items-center justify-center rounded\",\n \"text-xs font-medium text-white\",\n ],\n {\n variants: {\n size: {\n sm: \"size-7 p-1.5\",\n md: \"size-8 p-2\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const workspaceInfoVariants = cva([\n \"flex w-full items-center justify-between gap-x-4 truncate\",\n])\n\nexport const workspaceNameVariants = cva([\n \"truncate whitespace-nowrap text-sm font-medium text-foreground\",\n])\n\nexport const workspaceRoleVariants = cva([\n \"whitespace-nowrap text-left text-xs text-muted-foreground\",\n])\n\nexport const workspaceItemVariants = cva([\n \"flex w-full items-center gap-x-2.5\",\n])\n\nexport type WorkspaceDropdownVariantProps = VariantProps<\n typeof workspaceDropdownVariants\n>\n","// WorkspaceDropdown/WorkspaceDropdown.tsx\n\"use client\"\n\nimport type {\n Workspace,\n WorkspaceDropdownProps,\n WorkspaceTriggerProps,\n} from \"./WorkspaceDropdown.types\"\n\nimport { ChevronsUpDownIcon, PlusIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../DropdownMenu\"\nimport {\n workspaceAvatarVariants,\n workspaceDropdownVariants,\n workspaceInfoVariants,\n workspaceItemVariants,\n workspaceNameVariants,\n workspaceRoleVariants,\n workspaceTriggerVariants,\n} from \"./WorkspaceDropdown.variants\"\n\n/**\n * WorkspaceTrigger - Trigger button showing current workspace\n */\nfunction WorkspaceTrigger({\n workspace,\n variant = \"default\",\n className,\n ...props\n}: WorkspaceTriggerProps) {\n return (\n <button\n className={cn(workspaceTriggerVariants({ variant }), className)}\n data-slot=\"workspace-trigger\"\n type=\"button\"\n {...props}\n >\n <span\n className={cn(\n workspaceAvatarVariants({ size: variant === \"compact\" ? \"sm\" : \"md\" }),\n workspace.color ?? \"bg-primary\"\n )}\n aria-hidden=\"true\"\n >\n {workspace.initials}\n </span>\n <div className={cn(workspaceInfoVariants())}>\n <div className=\"truncate\">\n <p className={cn(workspaceNameVariants())}>{workspace.name}</p>\n {workspace.role && (\n <p className={cn(workspaceRoleVariants())}>{workspace.role}</p>\n )}\n </div>\n <ChevronsUpDownIcon\n aria-hidden=\"true\"\n className=\"size-5 shrink-0 text-muted-foreground\"\n />\n </div>\n </button>\n )\n}\n\n/**\n * WorkspaceItem - Single workspace item in the dropdown\n */\nfunction WorkspaceItem({ workspace }: { workspace: Workspace }) {\n return (\n <div className={cn(workspaceItemVariants())}>\n <span\n className={cn(\n workspaceAvatarVariants(),\n workspace.color ?? \"bg-primary\"\n )}\n aria-hidden=\"true\"\n >\n {workspace.initials}\n </span>\n <div>\n <p className={cn(workspaceNameVariants())}>{workspace.name}</p>\n {workspace.role && (\n <p className={cn(workspaceRoleVariants())}>{workspace.role}</p>\n )}\n </div>\n </div>\n )\n}\n\n/**\n * WorkspaceDropdown - Workspace switcher dropdown\n *\n * Allows users to switch between workspaces and optionally add new ones.\n * Shows current workspace with avatar, name, and role.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <WorkspaceDropdown\n * selectedWorkspace={currentWorkspace}\n * workspaces={allWorkspaces}\n * onWorkspaceSelect={handleSelect}\n * />\n *\n * // With add workspace option\n * <WorkspaceDropdown\n * selectedWorkspace={currentWorkspace}\n * workspaces={allWorkspaces}\n * onWorkspaceSelect={handleSelect}\n * showAddWorkspace\n * onAddWorkspace={() => openAddModal()}\n * addWorkspaceLabel=\"Create workspace\"\n * />\n *\n * // Compact variant\n * <WorkspaceDropdown\n * variant=\"compact\"\n * selectedWorkspace={currentWorkspace}\n * workspaces={allWorkspaces}\n * onWorkspaceSelect={handleSelect}\n * />\n * ```\n */\nfunction WorkspaceDropdown({\n selectedWorkspace,\n workspaces,\n onWorkspaceSelect,\n onAddWorkspace,\n addWorkspaceLabel = \"Add workspace\",\n showAddWorkspace = false,\n align = \"start\",\n variant,\n className,\n ...props\n}: WorkspaceDropdownProps) {\n return (\n <div\n className={cn(workspaceDropdownVariants({ variant }), className)}\n data-slot=\"workspace-dropdown\"\n {...props}\n >\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <WorkspaceTrigger\n variant={variant === \"compact\" ? \"compact\" : \"default\"}\n workspace={selectedWorkspace}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} className=\"min-w-60\">\n <DropdownMenuLabel>\n Workspaces ({workspaces.length})\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n {workspaces.map((workspace) => (\n <DropdownMenuItem\n key={workspace.id}\n onClick={() => onWorkspaceSelect?.(workspace)}\n >\n <WorkspaceItem workspace={workspace} />\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n\n {showAddWorkspace && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={onAddWorkspace}>\n <PlusIcon aria-hidden=\"true\" className=\"mr-2 size-4\" />\n {addWorkspaceLabel}\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nWorkspaceDropdown.displayName = \"WorkspaceDropdown\"\nWorkspaceTrigger.displayName = \"WorkspaceTrigger\"\n\nexport { WorkspaceDropdown, WorkspaceItem, WorkspaceTrigger }\n"]}
@@ -1,5 +0,0 @@
1
- export { FeatureItem, featureItemIconVariants, featureItemVariants } from '../../../chunk-N23L6UDK.js';
2
- import '../../../chunk-HRNDJU7D.js';
3
- import '../../../chunk-UP2VWCW5.js';
4
- //# sourceMappingURL=index.js.map
5
- //# sourceMappingURL=index.js.map