@contractspec/lib.ui-kit-web 3.7.5 → 3.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/README.md +33 -88
- package/dist/browser/ui/accordion.js +4 -4
- package/dist/browser/ui/alert-dialog.js +9 -9
- package/dist/browser/ui/alert.js +4 -4
- package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +51 -51
- package/dist/browser/ui/atoms/FilterSelect/index.js +51 -51
- package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -1
- package/dist/browser/ui/atoms/Pagination/Pagination.js +13 -13
- package/dist/browser/ui/atoms/Pagination/index.js +13 -13
- package/dist/browser/ui/atoms/SearchInput/SearchInput.js +8 -8
- package/dist/browser/ui/atoms/SearchInput/index.js +8 -8
- package/dist/browser/ui/avatar.js +1 -1
- package/dist/browser/ui/badge.js +3 -3
- package/dist/browser/ui/breadcrumb.js +4 -4
- package/dist/browser/ui/button.js +5 -5
- package/dist/browser/ui/calendar.js +21 -21
- package/dist/browser/ui/card.js +2 -2
- package/dist/browser/ui/carousel.js +6 -6
- package/dist/browser/ui/checkbox.js +2 -2
- package/dist/browser/ui/command.js +14 -14
- package/dist/browser/ui/confirm-dialog.js +9 -9
- package/dist/browser/ui/context-menu.js +10 -10
- package/dist/browser/ui/cta.js +5 -5
- package/dist/browser/ui/data-table.js +1005 -0
- package/dist/browser/ui/data-table.parts.js +463 -0
- package/dist/browser/ui/date-picker.js +26 -26
- package/dist/browser/ui/date-range-picker.js +24 -24
- package/dist/browser/ui/datetime-picker.js +29 -29
- package/dist/browser/ui/dialog.js +5 -5
- package/dist/browser/ui/drawer.js +5 -5
- package/dist/browser/ui/dropdown-menu.js +10 -10
- package/dist/browser/ui/empty-state.js +5 -5
- package/dist/browser/ui/empty.js +7 -7
- package/dist/browser/ui/field.js +12 -12
- package/dist/browser/ui/form.js +4 -4
- package/dist/browser/ui/hover-card.js +2 -2
- package/dist/browser/ui/input-group.js +16 -16
- package/dist/browser/ui/input-otp.js +4 -4
- package/dist/browser/ui/input.js +1 -1
- package/dist/browser/ui/label.js +2 -2
- package/dist/browser/ui/loading-button.js +8 -8
- package/dist/browser/ui/marketing/FeatureGrid.js +3 -3
- package/dist/browser/ui/marketing/Hero.js +7 -7
- package/dist/browser/ui/marketing/PricingTable.js +10 -10
- package/dist/browser/ui/menubar.js +12 -12
- package/dist/browser/ui/molecules/Autocomplete/index.js +26 -26
- package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +62 -62
- package/dist/browser/ui/molecules/SearchAndFilter/index.js +62 -62
- package/dist/browser/ui/molecules/SkeletonList.js +1 -1
- package/dist/browser/ui/nav-layout.js +22 -22
- package/dist/browser/ui/navigation-menu.js +7 -7
- package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +11 -11
- package/dist/browser/ui/organisms/ListPage/ListPage.js +84 -84
- package/dist/browser/ui/page-header.js +4 -4
- package/dist/browser/ui/pagination.js +6 -6
- package/dist/browser/ui/popover.js +2 -2
- package/dist/browser/ui/progress.js +3 -3
- package/dist/browser/ui/radio-group.js +3 -3
- package/dist/browser/ui/resizable.js +3 -3
- package/dist/browser/ui/scroll-area.js +4 -4
- package/dist/browser/ui/section.js +1 -1
- package/dist/browser/ui/select.js +6 -6
- package/dist/browser/ui/separator.js +2 -2
- package/dist/browser/ui/sheet.js +5 -5
- package/dist/browser/ui/sidebar.js +64 -64
- package/dist/browser/ui/skeleton.js +1 -1
- package/dist/browser/ui/slider.js +6 -6
- package/dist/browser/ui/stack.js +1 -1
- package/dist/browser/ui/stat-card-group.js +5 -5
- package/dist/browser/ui/stepper.js +2 -2
- package/dist/browser/ui/switch.js +3 -3
- package/dist/browser/ui/table.js +5 -5
- package/dist/browser/ui/tabs.js +3 -3
- package/dist/browser/ui/text.js +2 -2
- package/dist/browser/ui/textarea.js +1 -1
- package/dist/browser/ui/time-picker.js +10 -10
- package/dist/browser/ui/toast.js +5 -5
- package/dist/browser/ui/toaster.js +5 -5
- package/dist/browser/ui/toggle-group.js +7 -7
- package/dist/browser/ui/toggle.js +5 -5
- package/dist/browser/ui/tooltip.js +3 -3
- package/dist/browser/ui/typography.js +14 -14
- package/dist/browser/ui/usecases/UseCaseCard.js +8 -8
- package/dist/browser/ui/usecases/UserStoryCard.js +3 -3
- package/dist/browser/ui/visualization/Visualization.js +439 -0
- package/dist/browser/ui/visualization/Visualization.support.js +128 -0
- package/dist/browser/ui/visualization/index.js +10 -0
- package/dist/ui/accordion.d.ts +2 -2
- package/dist/ui/accordion.js +4 -4
- package/dist/ui/alert-dialog.d.ts +2 -2
- package/dist/ui/alert-dialog.js +9 -9
- package/dist/ui/alert.d.ts +2 -2
- package/dist/ui/alert.js +4 -4
- package/dist/ui/atoms/FilterSelect/FilterSelect.js +51 -51
- package/dist/ui/atoms/FilterSelect/index.d.ts +1 -1
- package/dist/ui/atoms/FilterSelect/index.js +51 -51
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -1
- package/dist/ui/atoms/LoadingSpinner/index.d.ts +1 -1
- package/dist/ui/atoms/Pagination/Pagination.js +13 -13
- package/dist/ui/atoms/Pagination/index.js +13 -13
- package/dist/ui/atoms/SearchInput/SearchInput.js +8 -8
- package/dist/ui/atoms/SearchInput/index.js +8 -8
- package/dist/ui/avatar.d.ts +2 -2
- package/dist/ui/avatar.js +1 -1
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/badge.js +3 -3
- package/dist/ui/breadcrumb.d.ts +1 -1
- package/dist/ui/breadcrumb.js +4 -4
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/button.js +5 -5
- package/dist/ui/calendar.js +21 -21
- package/dist/ui/card.d.ts +1 -1
- package/dist/ui/card.js +2 -2
- package/dist/ui/carousel.d.ts +2 -2
- package/dist/ui/carousel.js +6 -6
- package/dist/ui/checkbox.d.ts +1 -1
- package/dist/ui/checkbox.js +2 -2
- package/dist/ui/collapsible.d.ts +1 -1
- package/dist/ui/command.d.ts +2 -2
- package/dist/ui/command.js +14 -14
- package/dist/ui/confirm-dialog.js +9 -9
- package/dist/ui/context-menu.d.ts +2 -2
- package/dist/ui/context-menu.js +10 -10
- package/dist/ui/cta.js +5 -5
- package/dist/ui/data-table.d.ts +12 -0
- package/dist/ui/data-table.js +1000 -0
- package/dist/ui/data-table.parts.d.ts +14 -0
- package/dist/ui/data-table.parts.js +458 -0
- package/dist/ui/date-picker.js +26 -26
- package/dist/ui/date-range-picker.js +24 -24
- package/dist/ui/datetime-picker.js +29 -29
- package/dist/ui/dialog.d.ts +1 -1
- package/dist/ui/dialog.js +5 -5
- package/dist/ui/drawer.d.ts +1 -1
- package/dist/ui/drawer.js +5 -5
- package/dist/ui/dropdown-menu.d.ts +2 -2
- package/dist/ui/dropdown-menu.js +10 -10
- package/dist/ui/empty-state.d.ts +1 -1
- package/dist/ui/empty-state.js +5 -5
- package/dist/ui/empty.d.ts +2 -2
- package/dist/ui/empty.js +7 -7
- package/dist/ui/field.d.ts +2 -2
- package/dist/ui/field.js +12 -12
- package/dist/ui/form.d.ts +3 -3
- package/dist/ui/form.js +4 -4
- package/dist/ui/hover-card.d.ts +2 -2
- package/dist/ui/hover-card.js +2 -2
- package/dist/ui/input-group.d.ts +2 -2
- package/dist/ui/input-group.js +16 -16
- package/dist/ui/input-otp.d.ts +2 -2
- package/dist/ui/input-otp.js +4 -4
- package/dist/ui/input.js +1 -1
- package/dist/ui/label.d.ts +1 -1
- package/dist/ui/label.js +2 -2
- package/dist/ui/loading-button.js +8 -8
- package/dist/ui/map/index.d.ts +1 -1
- package/dist/ui/marketing/FeatureGrid.js +3 -3
- package/dist/ui/marketing/Hero.js +7 -7
- package/dist/ui/marketing/PricingTable.js +10 -10
- package/dist/ui/marketing/index.d.ts +1 -1
- package/dist/ui/menubar.d.ts +2 -2
- package/dist/ui/menubar.js +12 -12
- package/dist/ui/molecules/Autocomplete/index.js +26 -26
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +62 -62
- package/dist/ui/molecules/SearchAndFilter/index.js +62 -62
- package/dist/ui/molecules/SkeletonList.js +1 -1
- package/dist/ui/nav-layout.d.ts +1 -1
- package/dist/ui/nav-layout.js +22 -22
- package/dist/ui/navigation-menu.d.ts +2 -2
- package/dist/ui/navigation-menu.js +7 -7
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +11 -11
- package/dist/ui/organisms/ErrorBoundary/index.d.ts +1 -1
- package/dist/ui/organisms/ListPage/ListPage.js +84 -84
- package/dist/ui/organisms/ListPage/index.d.ts +1 -1
- package/dist/ui/organisms/ListPage/types.d.ts +1 -1
- package/dist/ui/page-header.d.ts +1 -1
- package/dist/ui/page-header.js +4 -4
- package/dist/ui/pagination.js +6 -6
- package/dist/ui/popover.d.ts +2 -2
- package/dist/ui/popover.js +2 -2
- package/dist/ui/progress.d.ts +1 -1
- package/dist/ui/progress.js +3 -3
- package/dist/ui/radio-group.d.ts +1 -1
- package/dist/ui/radio-group.js +3 -3
- package/dist/ui/resizable.d.ts +2 -2
- package/dist/ui/resizable.js +3 -3
- package/dist/ui/scroll-area.d.ts +1 -1
- package/dist/ui/scroll-area.js +4 -4
- package/dist/ui/section.d.ts +1 -1
- package/dist/ui/section.js +1 -1
- package/dist/ui/select.d.ts +1 -1
- package/dist/ui/select.js +6 -6
- package/dist/ui/separator.d.ts +1 -1
- package/dist/ui/separator.js +2 -2
- package/dist/ui/sheet.d.ts +2 -2
- package/dist/ui/sheet.js +5 -5
- package/dist/ui/sidebar.d.ts +1 -1
- package/dist/ui/sidebar.js +64 -64
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.d.ts +1 -1
- package/dist/ui/slider.js +6 -6
- package/dist/ui/stack.d.ts +4 -4
- package/dist/ui/stack.js +1 -1
- package/dist/ui/stat-card-group.js +5 -5
- package/dist/ui/stepper.js +2 -2
- package/dist/ui/switch.d.ts +1 -1
- package/dist/ui/switch.js +3 -3
- package/dist/ui/table.d.ts +1 -1
- package/dist/ui/table.js +5 -5
- package/dist/ui/tabs.d.ts +2 -2
- package/dist/ui/tabs.js +3 -3
- package/dist/ui/text.js +2 -2
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/time-picker.js +10 -10
- package/dist/ui/toast.d.ts +2 -2
- package/dist/ui/toast.js +5 -5
- package/dist/ui/toaster.js +5 -5
- package/dist/ui/toggle-group.d.ts +1 -1
- package/dist/ui/toggle-group.js +7 -7
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/toggle.js +5 -5
- package/dist/ui/tooltip.d.ts +2 -2
- package/dist/ui/tooltip.js +3 -3
- package/dist/ui/typography.js +14 -14
- package/dist/ui/use-toast.d.ts +1 -1
- package/dist/ui/usecases/UseCaseCard.js +8 -8
- package/dist/ui/usecases/UserStoryCard.js +3 -3
- package/dist/ui/visualization/Visualization.d.ts +9 -0
- package/dist/ui/visualization/Visualization.js +434 -0
- package/dist/ui/visualization/Visualization.support.d.ts +15 -0
- package/dist/ui/visualization/Visualization.support.js +123 -0
- package/dist/ui/visualization/index.d.ts +1 -0
- package/dist/ui/visualization/index.js +5 -0
- package/package.json +75 -12
package/dist/browser/ui/field.js
CHANGED
|
@@ -7,8 +7,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/label.tsx
|
|
10
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
11
10
|
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
11
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
12
12
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
13
13
|
"use client";
|
|
14
14
|
function Label({
|
|
@@ -17,13 +17,13 @@ function Label({
|
|
|
17
17
|
}) {
|
|
18
18
|
return /* @__PURE__ */ jsxDEV(LabelPrimitive.Root, {
|
|
19
19
|
"data-slot": "label",
|
|
20
|
-
className: cn("flex items-center gap-2 text-sm leading-none
|
|
20
|
+
className: cn("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50", className),
|
|
21
21
|
...props
|
|
22
22
|
}, undefined, false, undefined, this);
|
|
23
23
|
}
|
|
24
24
|
// ui/separator.tsx
|
|
25
|
-
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
26
25
|
import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
|
|
26
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
27
27
|
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
28
28
|
"use client";
|
|
29
29
|
function Separator({
|
|
@@ -36,14 +36,14 @@ function Separator({
|
|
|
36
36
|
"data-slot": "separator",
|
|
37
37
|
decorative,
|
|
38
38
|
orientation,
|
|
39
|
-
className: cn2("bg-border
|
|
39
|
+
className: cn2("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px", className),
|
|
40
40
|
...props
|
|
41
41
|
}, undefined, false, undefined, this);
|
|
42
42
|
}
|
|
43
43
|
// ui/field.tsx
|
|
44
|
-
import * as React from "react";
|
|
45
|
-
import { cva } from "class-variance-authority";
|
|
46
44
|
import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
|
|
45
|
+
import { cva } from "class-variance-authority";
|
|
46
|
+
import * as React from "react";
|
|
47
47
|
import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
|
|
48
48
|
"use client";
|
|
49
49
|
function FieldSet({
|
|
@@ -88,7 +88,7 @@ var fieldVariants = cva("group/field flex w-full gap-3 data-[invalid=true]:text-
|
|
|
88
88
|
"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
|
|
89
89
|
],
|
|
90
90
|
responsive: [
|
|
91
|
-
"
|
|
91
|
+
"@md/field-group:flex-row flex-col @md/field-group:items-center *:w-full @md/field-group:*:w-auto [&>.sr-only]:w-auto",
|
|
92
92
|
"@md/field-group:data-[slot=field-label]:*:flex-auto",
|
|
93
93
|
"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
|
|
94
94
|
]
|
|
@@ -127,7 +127,7 @@ function FieldLabel({
|
|
|
127
127
|
}) {
|
|
128
128
|
return /* @__PURE__ */ jsxDEV3(Label, {
|
|
129
129
|
"data-slot": "field-label",
|
|
130
|
-
className: cn3("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-4", "has-data-[state=checked]:
|
|
130
|
+
className: cn3("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-4", "has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10", className),
|
|
131
131
|
...props
|
|
132
132
|
}, undefined, false, undefined, this);
|
|
133
133
|
}
|
|
@@ -137,7 +137,7 @@ function FieldTitle({
|
|
|
137
137
|
}) {
|
|
138
138
|
return /* @__PURE__ */ jsxDEV3("div", {
|
|
139
139
|
"data-slot": "field-label",
|
|
140
|
-
className: cn3("flex w-fit items-center gap-2 text-sm leading-snug
|
|
140
|
+
className: cn3("flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50", className),
|
|
141
141
|
...props
|
|
142
142
|
}, undefined, false, undefined, this);
|
|
143
143
|
}
|
|
@@ -147,7 +147,7 @@ function FieldDescription({
|
|
|
147
147
|
}) {
|
|
148
148
|
return /* @__PURE__ */ jsxDEV3("p", {
|
|
149
149
|
"data-slot": "field-description",
|
|
150
|
-
className: cn3("text-muted-foreground text-sm leading-normal
|
|
150
|
+
className: cn3("font-normal text-muted-foreground text-sm leading-normal group-has-data-[orientation=horizontal]/field:text-balance", "nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", className),
|
|
151
151
|
...props
|
|
152
152
|
}, undefined, false, undefined, this);
|
|
153
153
|
}
|
|
@@ -166,7 +166,7 @@ function FieldSeparator({
|
|
|
166
166
|
className: "absolute inset-0 top-1/2"
|
|
167
167
|
}, undefined, false, undefined, this),
|
|
168
168
|
children && /* @__PURE__ */ jsxDEV3("span", {
|
|
169
|
-
className: "
|
|
169
|
+
className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
|
|
170
170
|
"data-slot": "field-separator-content",
|
|
171
171
|
children
|
|
172
172
|
}, undefined, false, undefined, this)
|
|
@@ -202,7 +202,7 @@ function FieldError({
|
|
|
202
202
|
return /* @__PURE__ */ jsxDEV3("div", {
|
|
203
203
|
role: "alert",
|
|
204
204
|
"data-slot": "field-error",
|
|
205
|
-
className: cn3("text-destructive text-sm
|
|
205
|
+
className: cn3("font-normal text-destructive text-sm", className),
|
|
206
206
|
...props,
|
|
207
207
|
children: content
|
|
208
208
|
}, undefined, false, undefined, this);
|
package/dist/browser/ui/form.js
CHANGED
|
@@ -7,8 +7,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/label.tsx
|
|
10
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
11
10
|
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
11
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
12
12
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
13
13
|
"use client";
|
|
14
14
|
function Label({
|
|
@@ -17,7 +17,7 @@ function Label({
|
|
|
17
17
|
}) {
|
|
18
18
|
return /* @__PURE__ */ jsxDEV(LabelPrimitive.Root, {
|
|
19
19
|
"data-slot": "label",
|
|
20
|
-
className: cn("flex items-center gap-2 text-sm leading-none
|
|
20
|
+
className: cn("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50", className),
|
|
21
21
|
...props
|
|
22
22
|
}, undefined, false, undefined, this);
|
|
23
23
|
}
|
|
@@ -29,8 +29,8 @@ function cn2(...inputs) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
// ui/form.tsx
|
|
32
|
-
import * as React from "react";
|
|
33
32
|
import { Slot } from "@radix-ui/react-slot";
|
|
33
|
+
import * as React from "react";
|
|
34
34
|
import {
|
|
35
35
|
Controller,
|
|
36
36
|
FormProvider,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
useFormState
|
|
39
39
|
} from "react-hook-form";
|
|
40
40
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
41
|
-
import {
|
|
41
|
+
import { useFieldArray, useForm } from "react-hook-form";
|
|
42
42
|
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
43
43
|
"use client";
|
|
44
44
|
var Form = FormProvider;
|
|
@@ -7,8 +7,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/hover-card.tsx
|
|
10
|
-
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
11
10
|
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
11
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
12
12
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
13
13
|
"use client";
|
|
14
14
|
function HoverCard({
|
|
@@ -39,7 +39,7 @@ function HoverCardContent({
|
|
|
39
39
|
"data-slot": "hover-card-content",
|
|
40
40
|
align,
|
|
41
41
|
sideOffset,
|
|
42
|
-
className: cn("
|
|
42
|
+
className: cn("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=closed]:animate-out data-[state=open]:animate-in", className),
|
|
43
43
|
...props
|
|
44
44
|
}, undefined, false, undefined, this)
|
|
45
45
|
}, undefined, false, undefined, this);
|
|
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/button.tsx
|
|
10
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
10
11
|
import { Slot } from "@radix-ui/react-slot";
|
|
11
12
|
import { cva } from "class-variance-authority";
|
|
12
|
-
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
13
13
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
14
|
-
var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm
|
|
14
|
+
var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
15
15
|
variants: {
|
|
16
16
|
variant: {
|
|
17
17
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
18
|
-
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40
|
|
19
|
-
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:
|
|
18
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
19
|
+
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
20
20
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
21
21
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
22
22
|
link: "text-primary underline-offset-4 hover:underline"
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
25
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
26
|
-
sm: "h-8
|
|
26
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
27
27
|
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
28
28
|
icon: "size-9"
|
|
29
29
|
}
|
|
@@ -62,7 +62,7 @@ function Input({ className, type, ...props }) {
|
|
|
62
62
|
return /* @__PURE__ */ jsxDEV2("input", {
|
|
63
63
|
type,
|
|
64
64
|
"data-slot": "input",
|
|
65
|
-
className: cn2("
|
|
65
|
+
className: cn2("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", className),
|
|
66
66
|
...props
|
|
67
67
|
}, undefined, false, undefined, this);
|
|
68
68
|
}
|
|
@@ -72,13 +72,13 @@ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
|
|
|
72
72
|
function Textarea({ className, ...props }) {
|
|
73
73
|
return /* @__PURE__ */ jsxDEV3("textarea", {
|
|
74
74
|
"data-slot": "textarea",
|
|
75
|
-
className: cn3("
|
|
75
|
+
className: cn3("field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-2xs outline-hidden transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40", className),
|
|
76
76
|
...props
|
|
77
77
|
}, undefined, false, undefined, this);
|
|
78
78
|
}
|
|
79
79
|
// ui/input-group.tsx
|
|
80
|
-
import { cva as cva2 } from "class-variance-authority";
|
|
81
80
|
import { cn as cn4 } from "@contractspec/lib.ui-kit-core/utils";
|
|
81
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
82
82
|
import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
|
|
83
83
|
"use client";
|
|
84
84
|
function InputGroup({
|
|
@@ -88,17 +88,17 @@ function InputGroup({
|
|
|
88
88
|
return /* @__PURE__ */ jsxDEV4("div", {
|
|
89
89
|
"data-slot": "input-group",
|
|
90
90
|
role: "group",
|
|
91
|
-
className: cn4("group/input-group
|
|
91
|
+
className: cn4("group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs outline-none transition-[color,box-shadow] dark:bg-input/30", "h-9 min-w-0 has-[>textarea]:h-auto", "has-[>[data-align=inline-start]]:[&>input]:pl-2", "has-[>[data-align=inline-end]]:[&>input]:pr-2", "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3", "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3", "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50", "has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40", className),
|
|
92
92
|
...props
|
|
93
93
|
}, undefined, false, undefined, this);
|
|
94
94
|
}
|
|
95
|
-
var inputGroupAddonVariants = cva2("
|
|
95
|
+
var inputGroupAddonVariants = cva2("flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 font-medium text-muted-foreground text-sm group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
|
|
96
96
|
variants: {
|
|
97
97
|
align: {
|
|
98
98
|
"inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
|
|
99
99
|
"inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
|
|
100
|
-
"block-start": "order-first w-full justify-start px-3 pt-3
|
|
101
|
-
"block-end": "order-last w-full justify-start px-3 pb-3
|
|
100
|
+
"block-start": "order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3",
|
|
101
|
+
"block-end": "order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"
|
|
102
102
|
}
|
|
103
103
|
},
|
|
104
104
|
defaultVariants: {
|
|
@@ -130,11 +130,11 @@ function InputGroupAddon({
|
|
|
130
130
|
...props
|
|
131
131
|
}, undefined, false, undefined, this);
|
|
132
132
|
}
|
|
133
|
-
var inputGroupButtonVariants = cva2("
|
|
133
|
+
var inputGroupButtonVariants = cva2("flex items-center gap-2 text-sm shadow-none", {
|
|
134
134
|
variants: {
|
|
135
135
|
size: {
|
|
136
|
-
xs: "h-6 gap-1
|
|
137
|
-
sm: "h-8
|
|
136
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
|
|
137
|
+
sm: "h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5",
|
|
138
138
|
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
139
139
|
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
140
140
|
}
|
|
@@ -163,7 +163,7 @@ function InputGroupText({
|
|
|
163
163
|
...props
|
|
164
164
|
}) {
|
|
165
165
|
return /* @__PURE__ */ jsxDEV4("span", {
|
|
166
|
-
className: cn4("
|
|
166
|
+
className: cn4("flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none", className),
|
|
167
167
|
...props
|
|
168
168
|
}, undefined, false, undefined, this);
|
|
169
169
|
}
|
|
@@ -7,10 +7,10 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/input-otp.tsx
|
|
10
|
-
import
|
|
10
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
11
11
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
12
12
|
import { Dot } from "lucide-react";
|
|
13
|
-
import
|
|
13
|
+
import * as React from "react";
|
|
14
14
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
15
15
|
"use client";
|
|
16
16
|
function InputOTP({
|
|
@@ -47,14 +47,14 @@ function InputOTPSlot({
|
|
|
47
47
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] || {};
|
|
48
48
|
return /* @__PURE__ */ jsxDEV("div", {
|
|
49
49
|
ref,
|
|
50
|
-
className: cn("
|
|
50
|
+
className: cn("relative flex h-10 w-10 items-center justify-center border-input border-y border-r text-base transition-all first:rounded-l-md first:border-l last:rounded-r-md", isActive && "z-10 ring-2 ring-ring ring-offset-background", className),
|
|
51
51
|
...props,
|
|
52
52
|
children: [
|
|
53
53
|
char,
|
|
54
54
|
hasFakeCaret && /* @__PURE__ */ jsxDEV("div", {
|
|
55
55
|
className: "pointer-events-none absolute inset-0 flex items-center justify-center",
|
|
56
56
|
children: /* @__PURE__ */ jsxDEV("div", {
|
|
57
|
-
className: "animate-caret-blink bg-foreground
|
|
57
|
+
className: "h-4 w-px animate-caret-blink bg-foreground duration-1000"
|
|
58
58
|
}, undefined, false, undefined, this)
|
|
59
59
|
}, undefined, false, undefined, this)
|
|
60
60
|
]
|
package/dist/browser/ui/input.js
CHANGED
|
@@ -13,7 +13,7 @@ function Input({ className, type, ...props }) {
|
|
|
13
13
|
return /* @__PURE__ */ jsxDEV("input", {
|
|
14
14
|
type,
|
|
15
15
|
"data-slot": "input",
|
|
16
|
-
className: cn("
|
|
16
|
+
className: cn("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", className),
|
|
17
17
|
...props
|
|
18
18
|
}, undefined, false, undefined, this);
|
|
19
19
|
}
|
package/dist/browser/ui/label.js
CHANGED
|
@@ -7,8 +7,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/label.tsx
|
|
10
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
11
10
|
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
11
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
12
12
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
13
13
|
"use client";
|
|
14
14
|
function Label({
|
|
@@ -17,7 +17,7 @@ function Label({
|
|
|
17
17
|
}) {
|
|
18
18
|
return /* @__PURE__ */ jsxDEV(LabelPrimitive.Root, {
|
|
19
19
|
"data-slot": "label",
|
|
20
|
-
className: cn("flex items-center gap-2 text-sm leading-none
|
|
20
|
+
className: cn("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50", className),
|
|
21
21
|
...props
|
|
22
22
|
}, undefined, false, undefined, this);
|
|
23
23
|
}
|
|
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/button.tsx
|
|
10
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
10
11
|
import { Slot } from "@radix-ui/react-slot";
|
|
11
12
|
import { cva } from "class-variance-authority";
|
|
12
|
-
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
13
13
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
14
|
-
var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm
|
|
14
|
+
var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
15
15
|
variants: {
|
|
16
16
|
variant: {
|
|
17
17
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
18
|
-
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40
|
|
19
|
-
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:
|
|
18
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
19
|
+
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
20
20
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
21
21
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
22
22
|
link: "text-primary underline-offset-4 hover:underline"
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
25
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
26
|
-
sm: "h-8
|
|
26
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
27
27
|
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
28
28
|
icon: "size-9"
|
|
29
29
|
}
|
|
@@ -56,8 +56,8 @@ function Button({
|
|
|
56
56
|
}, undefined, false, undefined, this);
|
|
57
57
|
}
|
|
58
58
|
// ui/stack.tsx
|
|
59
|
-
import { cva as cva2 } from "class-variance-authority";
|
|
60
59
|
import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
|
|
60
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
61
61
|
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
62
62
|
var vStackVariants = cva2("flex flex-col", {
|
|
63
63
|
variants: {
|
|
@@ -220,13 +220,13 @@ function Box({
|
|
|
220
220
|
}, undefined, false, undefined, this);
|
|
221
221
|
}
|
|
222
222
|
// ui/text.tsx
|
|
223
|
-
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
224
223
|
import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
|
|
224
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
225
225
|
import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
|
|
226
226
|
function Text({ className, asChild = false, ...props }) {
|
|
227
227
|
const Component = asChild ? Slot2 : "p";
|
|
228
228
|
return /* @__PURE__ */ jsxDEV3(Component, {
|
|
229
|
-
className: cn3("
|
|
229
|
+
className: cn3("web:select-text text-base text-foreground", className),
|
|
230
230
|
...props
|
|
231
231
|
}, undefined, false, undefined, this);
|
|
232
232
|
}
|
|
@@ -29,15 +29,15 @@ function FeatureGrid({
|
|
|
29
29
|
className: "rounded-lg border p-6",
|
|
30
30
|
children: [
|
|
31
31
|
it.icon && /* @__PURE__ */ jsxDEV("div", {
|
|
32
|
-
className: "text-primary
|
|
32
|
+
className: "mb-3 text-primary",
|
|
33
33
|
children: it.icon
|
|
34
34
|
}, undefined, false, undefined, this),
|
|
35
35
|
/* @__PURE__ */ jsxDEV("h3", {
|
|
36
|
-
className: "text-lg
|
|
36
|
+
className: "font-semibold text-lg",
|
|
37
37
|
children: it.title
|
|
38
38
|
}, undefined, false, undefined, this),
|
|
39
39
|
it.description && /* @__PURE__ */ jsxDEV("p", {
|
|
40
|
-
className: "
|
|
40
|
+
className: "mt-2 text-base text-muted-foreground",
|
|
41
41
|
children: it.description
|
|
42
42
|
}, undefined, false, undefined, this)
|
|
43
43
|
]
|
|
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/button.tsx
|
|
10
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
10
11
|
import { Slot } from "@radix-ui/react-slot";
|
|
11
12
|
import { cva } from "class-variance-authority";
|
|
12
|
-
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
13
13
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
14
|
-
var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm
|
|
14
|
+
var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
15
15
|
variants: {
|
|
16
16
|
variant: {
|
|
17
17
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
18
|
-
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40
|
|
19
|
-
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:
|
|
18
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
19
|
+
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
20
20
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
21
21
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
22
22
|
link: "text-primary underline-offset-4 hover:underline"
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
25
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
26
|
-
sm: "h-8
|
|
26
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
27
27
|
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
28
28
|
icon: "size-9"
|
|
29
29
|
}
|
|
@@ -75,11 +75,11 @@ function Hero({
|
|
|
75
75
|
className: cn2("mx-auto max-w-4xl py-16 text-center", className),
|
|
76
76
|
children: [
|
|
77
77
|
/* @__PURE__ */ jsxDEV2("h1", {
|
|
78
|
-
className: "text-4xl
|
|
78
|
+
className: "font-bold text-4xl tracking-tight md:text-5xl",
|
|
79
79
|
children: title
|
|
80
80
|
}, undefined, false, undefined, this),
|
|
81
81
|
subtitle && /* @__PURE__ */ jsxDEV2("p", {
|
|
82
|
-
className: "
|
|
82
|
+
className: "mt-4 text-lg text-muted-foreground md:text-xl",
|
|
83
83
|
children: subtitle
|
|
84
84
|
}, undefined, false, undefined, this),
|
|
85
85
|
(primaryCta || secondaryCta) && /* @__PURE__ */ jsxDEV2("div", {
|
|
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// ui/button.tsx
|
|
10
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
10
11
|
import { Slot } from "@radix-ui/react-slot";
|
|
11
12
|
import { cva } from "class-variance-authority";
|
|
12
|
-
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
13
13
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
14
|
-
var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm
|
|
14
|
+
var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
15
15
|
variants: {
|
|
16
16
|
variant: {
|
|
17
17
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
18
|
-
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40
|
|
19
|
-
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:
|
|
18
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
19
|
+
outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
20
20
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
21
21
|
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
22
22
|
link: "text-primary underline-offset-4 hover:underline"
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
25
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
26
|
-
sm: "h-8
|
|
26
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
27
27
|
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
28
28
|
icon: "size-9"
|
|
29
29
|
}
|
|
@@ -77,15 +77,15 @@ function PricingTable({
|
|
|
77
77
|
className: cn2("flex flex-col rounded-lg border p-6", t.highlighted && "border-primary shadow-lg"),
|
|
78
78
|
children: [
|
|
79
79
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
80
|
-
className: "
|
|
80
|
+
className: "mb-2 font-medium text-base text-muted-foreground",
|
|
81
81
|
children: t.name
|
|
82
82
|
}, undefined, false, undefined, this),
|
|
83
83
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
84
|
-
className: "text-3xl
|
|
84
|
+
className: "font-semibold text-3xl",
|
|
85
85
|
children: t.price
|
|
86
86
|
}, undefined, false, undefined, this),
|
|
87
87
|
t.tagline && /* @__PURE__ */ jsxDEV2("div", {
|
|
88
|
-
className: "
|
|
88
|
+
className: "mt-1 text-base text-muted-foreground",
|
|
89
89
|
children: t.tagline
|
|
90
90
|
}, undefined, false, undefined, this),
|
|
91
91
|
/* @__PURE__ */ jsxDEV2("ul", {
|
|
@@ -94,7 +94,7 @@ function PricingTable({
|
|
|
94
94
|
className: "flex items-start gap-2",
|
|
95
95
|
children: [
|
|
96
96
|
/* @__PURE__ */ jsxDEV2("span", {
|
|
97
|
-
className: "
|
|
97
|
+
className: "mt-1 h-1.5 w-1.5 rounded-full bg-primary"
|
|
98
98
|
}, undefined, false, undefined, this),
|
|
99
99
|
/* @__PURE__ */ jsxDEV2("span", {
|
|
100
100
|
children: f
|
|
@@ -121,7 +121,7 @@ function PricingTable({
|
|
|
121
121
|
}, idx, true, undefined, this))
|
|
122
122
|
}, undefined, false, undefined, this),
|
|
123
123
|
/* @__PURE__ */ jsxDEV2("p", {
|
|
124
|
-
className: "
|
|
124
|
+
className: "mt-6 text-center text-base text-muted-foreground",
|
|
125
125
|
children: "Usage-based tiers inspired by generous free allowances and per-unit pricing."
|
|
126
126
|
}, undefined, false, undefined, this)
|
|
127
127
|
]
|