@invergent/ui-sdk 2.19.0 → 2.19.1

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 (68) hide show
  1. package/README.md +8 -0
  2. package/dist/button-group.cjs +80 -0
  3. package/dist/button-group.cjs.map +1 -0
  4. package/dist/button-group.d.cts +17 -0
  5. package/dist/button-group.d.ts +17 -0
  6. package/dist/button-group.js +75 -0
  7. package/dist/button-group.js.map +1 -0
  8. package/dist/chunk-NSK344BJ.js +80 -0
  9. package/dist/chunk-NSK344BJ.js.map +1 -0
  10. package/dist/chunk-PH733KDD.js +141 -0
  11. package/dist/chunk-PH733KDD.js.map +1 -0
  12. package/dist/chunk-QEBQ5NUN.cjs +148 -0
  13. package/dist/chunk-QEBQ5NUN.cjs.map +1 -0
  14. package/dist/chunk-UXSDDJXM.cjs +88 -0
  15. package/dist/chunk-UXSDDJXM.cjs.map +1 -0
  16. package/dist/command.cjs +177 -0
  17. package/dist/command.cjs.map +1 -0
  18. package/dist/command.d.cts +22 -0
  19. package/dist/command.d.ts +22 -0
  20. package/dist/command.js +167 -0
  21. package/dist/command.js.map +1 -0
  22. package/dist/field.cjs +1 -1
  23. package/dist/field.js +1 -1
  24. package/dist/hover-card.cjs +43 -0
  25. package/dist/hover-card.cjs.map +1 -0
  26. package/dist/hover-card.d.cts +9 -0
  27. package/dist/hover-card.d.ts +9 -0
  28. package/dist/hover-card.js +39 -0
  29. package/dist/hover-card.js.map +1 -0
  30. package/dist/input-group.cjs +30 -142
  31. package/dist/input-group.cjs.map +1 -1
  32. package/dist/input-group.js +5 -139
  33. package/dist/input-group.js.map +1 -1
  34. package/dist/item.cjs +196 -0
  35. package/dist/item.cjs.map +1 -0
  36. package/dist/item.d.cts +28 -0
  37. package/dist/item.d.ts +28 -0
  38. package/dist/item.js +185 -0
  39. package/dist/item.js.map +1 -0
  40. package/dist/popover.cjs +31 -82
  41. package/dist/popover.cjs.map +1 -1
  42. package/dist/popover.js +2 -78
  43. package/dist/popover.js.map +1 -1
  44. package/dist/progress-bar.cjs +22 -10
  45. package/dist/progress-bar.cjs.map +1 -1
  46. package/dist/progress-bar.d.cts +2 -1
  47. package/dist/progress-bar.d.ts +2 -1
  48. package/dist/progress-bar.js +22 -10
  49. package/dist/progress-bar.js.map +1 -1
  50. package/dist/rabbit-mark.cjs +30 -0
  51. package/dist/rabbit-mark.cjs.map +1 -0
  52. package/dist/rabbit-mark.d.cts +16 -0
  53. package/dist/rabbit-mark.d.ts +16 -0
  54. package/dist/rabbit-mark.js +26 -0
  55. package/dist/rabbit-mark.js.map +1 -0
  56. package/dist/responsive-panel.cjs +85 -0
  57. package/dist/responsive-panel.cjs.map +1 -0
  58. package/dist/responsive-panel.d.cts +33 -0
  59. package/dist/responsive-panel.d.ts +33 -0
  60. package/dist/responsive-panel.js +83 -0
  61. package/dist/responsive-panel.js.map +1 -0
  62. package/dist/timeline.cjs +171 -0
  63. package/dist/timeline.cjs.map +1 -0
  64. package/dist/timeline.d.cts +28 -0
  65. package/dist/timeline.d.ts +28 -0
  66. package/dist/timeline.js +162 -0
  67. package/dist/timeline.js.map +1 -0
  68. package/package.json +2 -1
@@ -0,0 +1,162 @@
1
+ import { cn } from './chunk-LZGII7SX.js';
2
+ import { createContext, useState, useCallback, useContext } from 'react';
3
+ import { Slot } from 'radix-ui';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var TimelineContext = createContext(
7
+ void 0
8
+ );
9
+ var useTimeline = () => {
10
+ const context = useContext(TimelineContext);
11
+ if (!context) {
12
+ throw new Error("useTimeline must be used within a Timeline");
13
+ }
14
+ return context;
15
+ };
16
+ function Timeline({
17
+ defaultValue = 1,
18
+ value,
19
+ onValueChange,
20
+ orientation = "vertical",
21
+ className,
22
+ children,
23
+ ...props
24
+ }) {
25
+ const [activeStep, setInternalStep] = useState(defaultValue);
26
+ const setActiveStep = useCallback(
27
+ (step) => {
28
+ if (value === void 0) {
29
+ setInternalStep(step);
30
+ }
31
+ onValueChange?.(step);
32
+ },
33
+ [value, onValueChange]
34
+ );
35
+ const currentStep = value ?? activeStep;
36
+ return /* @__PURE__ */ jsx(
37
+ TimelineContext.Provider,
38
+ {
39
+ value: { activeStep: currentStep, setActiveStep },
40
+ children: /* @__PURE__ */ jsx(
41
+ "div",
42
+ {
43
+ className: cn(
44
+ "group/timeline flex flex-col",
45
+ className
46
+ ),
47
+ "data-orientation": orientation,
48
+ "data-slot": "timeline",
49
+ ...props,
50
+ children
51
+ }
52
+ )
53
+ }
54
+ );
55
+ }
56
+ function TimelineContent({
57
+ className,
58
+ ...props
59
+ }) {
60
+ return /* @__PURE__ */ jsx(
61
+ "div",
62
+ {
63
+ className: cn("text-foreground text-sm min-w-0 overflow-hidden", className),
64
+ "data-slot": "timeline-content",
65
+ ...props
66
+ }
67
+ );
68
+ }
69
+ function TimelineDate({
70
+ asChild = false,
71
+ className,
72
+ ...props
73
+ }) {
74
+ const Comp = asChild ? Slot.Root : "time";
75
+ return /* @__PURE__ */ jsx(
76
+ Comp,
77
+ {
78
+ className: cn(
79
+ "text-muted-foreground mb-1 block text-xs font-medium max-sm:h-4",
80
+ className
81
+ ),
82
+ "data-slot": "timeline-date",
83
+ ...props
84
+ }
85
+ );
86
+ }
87
+ function TimelineHeader({
88
+ className,
89
+ ...props
90
+ }) {
91
+ return /* @__PURE__ */ jsx("div", { className: cn(className), "data-slot": "timeline-header", ...props });
92
+ }
93
+ function TimelineIndicator({
94
+ asChild = false,
95
+ className,
96
+ children,
97
+ ...props
98
+ }) {
99
+ const Comp = asChild ? Slot.Root : "div";
100
+ return /* @__PURE__ */ jsx(
101
+ Comp,
102
+ {
103
+ "aria-hidden": "true",
104
+ className: cn(
105
+ "border-primary/20 group-data-completed/timeline-item:border-primary absolute size-4 rounded-full border-2 top-1.25 -left-6 -translate-x-1/2",
106
+ className
107
+ ),
108
+ "data-slot": "timeline-indicator",
109
+ ...props,
110
+ children
111
+ }
112
+ );
113
+ }
114
+ function TimelineItem({ step, className, ...props }) {
115
+ const { activeStep } = useTimeline();
116
+ return /* @__PURE__ */ jsx(
117
+ "div",
118
+ {
119
+ className: cn(
120
+ "group/timeline-item has-[+[data-completed]]:**:data-[slot=timeline-separator]:bg-primary relative flex flex-col gap-0.5 ms-8 not-last:pb-6",
121
+ className
122
+ ),
123
+ "data-completed": step <= activeStep || void 0,
124
+ "data-slot": "timeline-item",
125
+ ...props
126
+ }
127
+ );
128
+ }
129
+ function TimelineSeparator({
130
+ className,
131
+ ...props
132
+ }) {
133
+ return /* @__PURE__ */ jsx(
134
+ "div",
135
+ {
136
+ "aria-hidden": "true",
137
+ className: cn(
138
+ "bg-primary/10 absolute self-start group-last/timeline-item:hidden -left-6 h-[calc(100%-1rem-0.25rem)] w-0.5 -translate-x-1/2 translate-y-4.5",
139
+ className
140
+ ),
141
+ "data-slot": "timeline-separator",
142
+ ...props
143
+ }
144
+ );
145
+ }
146
+ function TimelineTitle({
147
+ className,
148
+ ...props
149
+ }) {
150
+ return /* @__PURE__ */ jsx(
151
+ "h3",
152
+ {
153
+ className: cn("text-sm font-medium", className),
154
+ "data-slot": "timeline-title",
155
+ ...props
156
+ }
157
+ );
158
+ }
159
+
160
+ export { Timeline, TimelineContent, TimelineDate, TimelineHeader, TimelineIndicator, TimelineItem, TimelineSeparator, TimelineTitle };
161
+ //# sourceMappingURL=timeline.js.map
162
+ //# sourceMappingURL=timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/timeline.tsx"],"names":[],"mappings":"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","file":"timeline.js","sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n useCallback,\n useContext,\n useState,\n} from \"react\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"./lib/utils\"\n\n// Types\ntype TimelineContextValue = {\n activeStep: number\n setActiveStep: (step: number) => void\n}\n\n// Context\nconst TimelineContext = createContext<TimelineContextValue | undefined>(\n undefined\n)\n\nconst useTimeline = () => {\n const context = useContext(TimelineContext)\n if (!context) {\n throw new Error(\"useTimeline must be used within a Timeline\")\n }\n return context\n}\n\n// Components\ninterface TimelineProps extends HTMLAttributes<HTMLDivElement> {\n defaultValue?: number\n value?: number\n onValueChange?: (value: number) => void\n orientation?: \"horizontal\" | \"vertical\"\n}\n\nfunction Timeline({\n defaultValue = 1,\n value,\n onValueChange,\n orientation = \"vertical\",\n className,\n children,\n ...props\n}: TimelineProps) {\n const [activeStep, setInternalStep] = useState(defaultValue)\n\n const setActiveStep = useCallback(\n (step: number) => {\n if (value === undefined) {\n setInternalStep(step)\n }\n onValueChange?.(step)\n },\n [value, onValueChange]\n )\n\n const currentStep = value ?? activeStep\n\n return (\n <TimelineContext.Provider\n value={{ activeStep: currentStep, setActiveStep }}\n >\n <div\n className={cn(\n \"group/timeline flex flex-col\",\n className\n )}\n data-orientation={orientation}\n data-slot=\"timeline\"\n {...props}\n >\n {children}\n </div>\n </TimelineContext.Provider>\n )\n}\n\n// TimelineContent\nfunction TimelineContent({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"text-foreground text-sm min-w-0 overflow-hidden\", className)}\n data-slot=\"timeline-content\"\n {...props}\n />\n )\n}\n\n// TimelineDate\ninterface TimelineDateProps extends HTMLAttributes<HTMLTimeElement> {\n asChild?: boolean\n}\n\nfunction TimelineDate({\n asChild = false,\n className,\n ...props\n}: TimelineDateProps) {\n const Comp = asChild ? Slot.Root : \"time\"\n\n return (\n <Comp\n className={cn(\n \"text-muted-foreground mb-1 block text-xs font-medium max-sm:h-4\",\n className\n )}\n data-slot=\"timeline-date\"\n {...props}\n />\n )\n}\n\n// TimelineHeader\nfunction TimelineHeader({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn(className)} data-slot=\"timeline-header\" {...props} />\n )\n}\n\n// TimelineIndicator\ninterface TimelineIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n asChild?: boolean\n}\n\nfunction TimelineIndicator({\n asChild = false,\n className,\n children,\n ...props\n}: TimelineIndicatorProps) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n aria-hidden=\"true\"\n className={cn(\n \"border-primary/20 group-data-completed/timeline-item:border-primary absolute size-4 rounded-full border-2 top-1.25 -left-6 -translate-x-1/2\",\n className\n )}\n data-slot=\"timeline-indicator\"\n {...props}\n >\n {children}\n </Comp>\n )\n}\n\n// TimelineItem\ninterface TimelineItemProps extends HTMLAttributes<HTMLDivElement> {\n step: number\n}\n\nfunction TimelineItem({ step, className, ...props }: TimelineItemProps) {\n const { activeStep } = useTimeline()\n\n return (\n <div\n className={cn(\n \"group/timeline-item has-[+[data-completed]]:**:data-[slot=timeline-separator]:bg-primary relative flex flex-col gap-0.5 ms-8 not-last:pb-6\",\n className\n )}\n data-completed={step <= activeStep || undefined}\n data-slot=\"timeline-item\"\n {...props}\n />\n )\n}\n\n// TimelineSeparator\nfunction TimelineSeparator({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n aria-hidden=\"true\"\n className={cn(\n \"bg-primary/10 absolute self-start group-last/timeline-item:hidden -left-6 h-[calc(100%-1rem-0.25rem)] w-0.5 -translate-x-1/2 translate-y-4.5\",\n className\n )}\n data-slot=\"timeline-separator\"\n {...props}\n />\n )\n}\n\n// TimelineTitle\nfunction TimelineTitle({\n className,\n ...props\n}: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n className={cn(\"text-sm font-medium\", className)}\n data-slot=\"timeline-title\"\n {...props}\n />\n )\n}\n\nexport {\n Timeline,\n TimelineContent,\n TimelineDate,\n TimelineHeader,\n TimelineIndicator,\n TimelineItem,\n TimelineSeparator,\n TimelineTitle,\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invergent/ui-sdk",
3
- "version": "2.19.0",
3
+ "version": "2.19.1",
4
4
  "description": "Shared theme and UI components for Surogate's web client, chat SDK, desktop and ops console.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "homepage": "https://github.com/invergent-ai/surogates/tree/master/sdk/ui-sdk#readme",
@@ -44,6 +44,7 @@
44
44
  "@fontsource-variable/jetbrains-mono": "^5.2.8",
45
45
  "class-variance-authority": "^0.7.1",
46
46
  "clsx": "^2.1.1",
47
+ "cmdk": "^1.1.1",
47
48
  "lucide-react": "^1.8.0",
48
49
  "next-themes": "^0.4.6",
49
50
  "radix-ui": "^1.4.3",