@codefast/ui 0.3.16-canary.2 → 0.4.0-canary.4
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/CHANGELOG.md +81 -0
- package/README.md +28 -17
- package/dist/components/accordion.d.mts +7 -22
- package/dist/components/accordion.mjs +26 -29
- package/dist/components/alert-dialog.d.mts +27 -26
- package/dist/components/alert-dialog.mjs +53 -45
- package/dist/components/alert.d.mts +14 -14
- package/dist/components/alert.mjs +17 -28
- package/dist/components/aspect-ratio.d.mts +2 -2
- package/dist/components/aspect-ratio.mjs +2 -3
- package/dist/components/avatar.d.mts +41 -5
- package/dist/components/avatar.mjs +40 -10
- package/dist/components/badge.d.mts +3 -15
- package/dist/components/badge.mjs +6 -48
- package/dist/components/breadcrumb.d.mts +1 -0
- package/dist/components/breadcrumb.mjs +11 -10
- package/dist/components/button-group.d.mts +3 -13
- package/dist/components/button-group.mjs +9 -31
- package/dist/components/button.d.mts +3 -26
- package/dist/components/button.mjs +9 -79
- package/dist/components/calendar.d.mts +6 -2
- package/dist/components/calendar.mjs +41 -44
- package/dist/components/card.d.mts +4 -2
- package/dist/components/card.mjs +9 -9
- package/dist/components/carousel.d.mts +16 -5
- package/dist/components/carousel.mjs +24 -11
- package/dist/components/chart.d.mts +9 -6
- package/dist/components/chart.mjs +21 -15
- package/dist/components/checkbox-cards.mjs +4 -4
- package/dist/components/checkbox-group.mjs +3 -4
- package/dist/components/checkbox.d.mts +2 -2
- package/dist/components/checkbox.mjs +6 -7
- package/dist/components/collapsible.d.mts +4 -4
- package/dist/components/collapsible.mjs +4 -5
- package/dist/components/command.d.mts +11 -1
- package/dist/components/command.mjs +35 -32
- package/dist/components/context-menu.d.mts +22 -15
- package/dist/components/context-menu.mjs +44 -39
- package/dist/components/dialog.d.mts +19 -23
- package/dist/components/dialog.mjs +48 -47
- package/dist/components/direction.d.mts +24 -0
- package/dist/components/direction.mjs +18 -0
- package/dist/components/drawer.d.mts +3 -21
- package/dist/components/drawer.mjs +19 -27
- package/dist/components/dropdown-menu.d.mts +22 -15
- package/dist/components/dropdown-menu.mjs +41 -37
- package/dist/components/empty.d.mts +3 -13
- package/dist/components/empty.mjs +8 -23
- package/dist/components/field.d.mts +3 -14
- package/dist/components/field.mjs +14 -44
- package/dist/components/form.d.mts +7 -10
- package/dist/components/form.mjs +6 -7
- package/dist/components/hover-card.d.mts +5 -5
- package/dist/components/hover-card.mjs +14 -12
- package/dist/components/input-group.d.mts +4 -31
- package/dist/components/input-group.mjs +14 -96
- package/dist/components/input-number.d.mts +3 -1
- package/dist/components/input-number.mjs +50 -28
- package/dist/components/input-otp.mjs +9 -7
- package/dist/components/input-password.mjs +1 -4
- package/dist/components/input-search.mjs +3 -5
- package/dist/components/input.mjs +1 -2
- package/dist/components/item.d.mts +4 -29
- package/dist/components/item.mjs +12 -65
- package/dist/components/kbd.mjs +1 -1
- package/dist/components/label.d.mts +2 -2
- package/dist/components/label.mjs +3 -4
- package/dist/components/menubar.d.mts +22 -16
- package/dist/components/menubar.mjs +54 -47
- package/dist/components/native-select.d.mts +5 -1
- package/dist/components/native-select.mjs +9 -6
- package/dist/components/navigation-menu.d.mts +30 -13
- package/dist/components/navigation-menu.mjs +35 -32
- package/dist/components/pagination.d.mts +7 -1
- package/dist/components/pagination.mjs +27 -12
- package/dist/components/popover.d.mts +40 -7
- package/dist/components/popover.mjs +46 -14
- package/dist/components/progress-circle.d.mts +3 -47
- package/dist/components/progress-circle.mjs +2 -48
- package/dist/components/progress.d.mts +2 -2
- package/dist/components/progress.mjs +5 -6
- package/dist/components/radio-cards.d.mts +3 -3
- package/dist/components/radio-cards.mjs +11 -11
- package/dist/components/radio-group.d.mts +3 -3
- package/dist/components/radio-group.mjs +9 -9
- package/dist/components/radio.mjs +2 -3
- package/dist/components/resizable.mjs +3 -8
- package/dist/components/scroll-area.d.mts +8 -24
- package/dist/components/scroll-area.mjs +16 -70
- package/dist/components/select.d.mts +14 -14
- package/dist/components/select.mjs +47 -47
- package/dist/components/separator.d.mts +4 -19
- package/dist/components/separator.mjs +6 -27
- package/dist/components/sheet.d.mts +18 -31
- package/dist/components/sheet.mjs +46 -87
- package/dist/components/sidebar.d.mts +3 -19
- package/dist/components/sidebar.mjs +48 -84
- package/dist/components/skeleton.mjs +1 -1
- package/dist/components/slider.d.mts +2 -2
- package/dist/components/slider.mjs +9 -11
- package/dist/components/sonner.mjs +11 -3
- package/dist/components/spinner.mjs +6 -7
- package/dist/components/switch.d.mts +5 -2
- package/dist/components/switch.mjs +7 -7
- package/dist/components/table.mjs +10 -10
- package/dist/components/tabs.d.mts +8 -5
- package/dist/components/tabs.mjs +18 -12
- package/dist/components/textarea.mjs +1 -1
- package/dist/components/toggle-group.d.mts +11 -7
- package/dist/components/toggle-group.mjs +20 -21
- package/dist/components/toggle.d.mts +4 -24
- package/dist/components/toggle.mjs +6 -45
- package/dist/components/tooltip.d.mts +7 -6
- package/dist/components/tooltip.mjs +19 -17
- package/dist/hooks/use-animated-value.mjs +0 -1
- package/dist/hooks/use-copy-to-clipboard.mjs +0 -1
- package/dist/hooks/use-is-mobile.mjs +0 -1
- package/dist/hooks/use-media-query.mjs +0 -1
- package/dist/hooks/use-mutation-observer.mjs +0 -1
- package/dist/hooks/use-pagination.mjs +0 -1
- package/dist/index.d.mts +38 -21
- package/dist/index.mjs +40 -23
- package/dist/lib/utils.d.mts +1 -12
- package/dist/lib/utils.mjs +1 -9
- package/dist/primitives/checkbox-group.d.mts +9 -11
- package/dist/primitives/checkbox-group.mjs +14 -19
- package/dist/primitives/input-number.d.mts +3 -4
- package/dist/primitives/input-number.mjs +3 -5
- package/dist/primitives/input.d.mts +4 -5
- package/dist/primitives/input.mjs +2 -3
- package/dist/primitives/progress-circle.d.mts +3 -4
- package/dist/primitives/progress-circle.mjs +2 -3
- package/dist/variants/alert.d.mts +18 -0
- package/dist/variants/alert.mjs +15 -0
- package/dist/variants/badge.d.mts +22 -0
- package/dist/variants/badge.mjs +19 -0
- package/dist/variants/button-group.d.mts +18 -0
- package/dist/variants/button-group.mjs +15 -0
- package/dist/variants/button.d.mts +32 -0
- package/dist/variants/button.mjs +34 -0
- package/dist/variants/empty.d.mts +18 -0
- package/dist/variants/empty.mjs +15 -0
- package/dist/variants/field.d.mts +19 -0
- package/dist/variants/field.mjs +16 -0
- package/dist/variants/input-group.d.mts +43 -0
- package/dist/variants/input-group.mjs +34 -0
- package/dist/variants/input-number.d.mts +45 -0
- package/dist/variants/input-number.mjs +40 -0
- package/dist/variants/item.d.mts +38 -0
- package/dist/variants/item.mjs +38 -0
- package/dist/variants/navigation-menu.d.mts +13 -0
- package/dist/variants/navigation-menu.mjs +8 -0
- package/dist/variants/progress-circle.d.mts +52 -0
- package/dist/variants/progress-circle.mjs +45 -0
- package/dist/variants/scroll-area.d.mts +24 -0
- package/dist/variants/scroll-area.mjs +58 -0
- package/dist/variants/separator.d.mts +23 -0
- package/dist/variants/separator.mjs +25 -0
- package/dist/variants/sheet.d.mts +20 -0
- package/dist/variants/sheet.mjs +17 -0
- package/dist/variants/sidebar.d.mts +23 -0
- package/dist/variants/sidebar.mjs +25 -0
- package/dist/variants/tabs.d.mts +18 -0
- package/dist/variants/tabs.mjs +15 -0
- package/dist/variants/toggle.d.mts +23 -0
- package/dist/variants/toggle.mjs +25 -0
- package/package.json +186 -55
- package/src/components/accordion.tsx +114 -0
- package/src/components/alert-dialog.tsx +298 -0
- package/src/components/alert.tsx +94 -0
- package/src/components/aspect-ratio.tsx +25 -0
- package/src/components/avatar.tsx +171 -0
- package/src/components/badge.tsx +35 -0
- package/src/components/breadcrumb.tsx +191 -0
- package/src/components/button-group.tsx +97 -0
- package/src/components/button.tsx +55 -0
- package/src/components/calendar.tsx +222 -0
- package/src/components/card.tsx +169 -0
- package/src/components/carousel.tsx +349 -0
- package/src/components/chart.tsx +536 -0
- package/src/components/checkbox-cards.tsx +72 -0
- package/src/components/checkbox-group.tsx +60 -0
- package/src/components/checkbox.tsx +44 -0
- package/src/components/collapsible.tsx +57 -0
- package/src/components/command.tsx +298 -0
- package/src/components/context-menu.tsx +410 -0
- package/src/components/dialog.tsx +243 -0
- package/src/components/direction.tsx +32 -0
- package/src/components/drawer.tsx +209 -0
- package/src/components/dropdown-menu.tsx +419 -0
- package/src/components/empty.tsx +155 -0
- package/src/components/field.tsx +329 -0
- package/src/components/form.tsx +258 -0
- package/src/components/hover-card.tsx +93 -0
- package/src/components/input-group.tsx +185 -0
- package/src/components/input-number.tsx +141 -0
- package/src/components/input-otp.tsx +132 -0
- package/src/components/input-password.tsx +50 -0
- package/src/components/input-search.tsx +81 -0
- package/src/components/input.tsx +36 -0
- package/src/components/item.tsx +266 -0
- package/src/components/kbd.tsx +47 -0
- package/src/components/label.tsx +36 -0
- package/src/components/menubar.tsx +440 -0
- package/src/components/native-select.tsx +87 -0
- package/src/components/navigation-menu.tsx +235 -0
- package/src/components/pagination.tsx +198 -0
- package/src/components/popover.tsx +170 -0
- package/src/components/progress-circle.tsx +185 -0
- package/src/components/progress.tsx +41 -0
- package/src/components/radio-cards.tsx +66 -0
- package/src/components/radio-group.tsx +59 -0
- package/src/components/radio.tsx +40 -0
- package/src/components/resizable.tsx +78 -0
- package/src/components/scroll-area.tsx +95 -0
- package/src/components/select.tsx +296 -0
- package/src/components/separator.tsx +60 -0
- package/src/components/sheet.tsx +241 -0
- package/src/components/sidebar.tsx +926 -0
- package/src/components/skeleton.tsx +35 -0
- package/src/components/slider.tsx +66 -0
- package/src/components/sonner.tsx +57 -0
- package/src/components/spinner.tsx +66 -0
- package/src/components/switch.tsx +44 -0
- package/src/components/table.tsx +183 -0
- package/src/components/tabs.tsx +110 -0
- package/src/components/textarea.tsx +35 -0
- package/src/components/toggle-group.tsx +137 -0
- package/src/components/toggle.tsx +30 -0
- package/src/components/tooltip.tsx +115 -0
- package/src/css/foundation/base.css +50 -0
- package/src/css/foundation/motion.css +36 -0
- package/src/css/foundation/source.css +3 -0
- package/src/css/foundation/tokens.css +71 -0
- package/src/css/foundation/variants.css +113 -0
- package/src/css/preset.css +5 -195
- package/src/css/style.css +1 -1
- package/src/css/{amber.css → themes/amber.css} +59 -22
- package/src/css/{blue.css → themes/blue.css} +59 -22
- package/src/css/{cyan.css → themes/cyan.css} +59 -22
- package/src/css/{emerald.css → themes/emerald.css} +59 -22
- package/src/css/{fuchsia.css → themes/fuchsia.css} +59 -22
- package/src/css/{gray.css → themes/gray.css} +59 -22
- package/src/css/{green.css → themes/green.css} +59 -22
- package/src/css/{indigo.css → themes/indigo.css} +59 -22
- package/src/css/{lime.css → themes/lime.css} +59 -22
- package/src/css/{neutral.css → themes/neutral.css} +59 -22
- package/src/css/{orange.css → themes/orange.css} +59 -22
- package/src/css/{pink.css → themes/pink.css} +59 -22
- package/src/css/{purple.css → themes/purple.css} +59 -22
- package/src/css/{red.css → themes/red.css} +59 -22
- package/src/css/{rose.css → themes/rose.css} +59 -22
- package/src/css/{sky.css → themes/sky.css} +59 -22
- package/src/css/{slate.css → themes/slate.css} +59 -22
- package/src/css/{stone.css → themes/stone.css} +59 -22
- package/src/css/{teal.css → themes/teal.css} +59 -22
- package/src/css/{violet.css → themes/violet.css} +59 -22
- package/src/css/{yellow.css → themes/yellow.css} +59 -22
- package/src/css/{zinc.css → themes/zinc.css} +59 -22
- package/src/hooks/use-animated-value.ts +91 -0
- package/src/hooks/use-copy-to-clipboard.ts +58 -0
- package/src/hooks/use-is-mobile.ts +25 -0
- package/src/hooks/use-media-query.ts +69 -0
- package/src/hooks/use-mutation-observer.ts +51 -0
- package/src/hooks/use-pagination.ts +164 -0
- package/src/index.ts +679 -0
- package/src/lib/utils.ts +5 -0
- package/src/primitives/checkbox-group.tsx +346 -0
- package/src/primitives/input-number.tsx +967 -0
- package/src/primitives/input.tsx +227 -0
- package/src/primitives/progress-circle.tsx +507 -0
- package/src/variants/alert.ts +34 -0
- package/src/variants/badge.ts +39 -0
- package/src/variants/button-group.ts +36 -0
- package/src/variants/button.ts +56 -0
- package/src/variants/empty.ts +34 -0
- package/src/variants/field.ts +37 -0
- package/src/variants/input-group.ts +80 -0
- package/src/variants/input-number.ts +65 -0
- package/src/variants/item.ts +68 -0
- package/src/variants/navigation-menu.ts +25 -0
- package/src/variants/progress-circle.ts +46 -0
- package/src/variants/scroll-area.ts +73 -0
- package/src/variants/separator.ts +40 -0
- package/src/variants/sheet.ts +37 -0
- package/src/variants/sidebar.ts +41 -0
- package/src/variants/tabs.ts +34 -0
- package/src/variants/toggle.ts +40 -0
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts +0 -6
|
@@ -1,17 +1,12 @@
|
|
|
1
|
+
import { Checkbox, Direction } from "radix-ui";
|
|
1
2
|
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import { useCallback } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
5
|
-
import { createCheckboxScope } from "@radix-ui/react-checkbox";
|
|
6
|
-
import { useDirection } from "@radix-ui/react-direction";
|
|
7
|
-
import * as RovingFocusGroup from "@radix-ui/react-roving-focus";
|
|
8
|
-
import { createRovingFocusGroupScope } from "@radix-ui/react-roving-focus";
|
|
9
|
-
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
4
|
+
import { Context, RovingFocus, useControllableState } from "radix-ui/internal";
|
|
10
5
|
//#region src/primitives/checkbox-group.tsx
|
|
11
6
|
const CHECKBOX_GROUP_NAME = "CheckboxGroup";
|
|
12
|
-
const [createCheckboxGroupContext, createCheckboxGroupScope] = createContextScope(CHECKBOX_GROUP_NAME, [createRovingFocusGroupScope, createCheckboxScope]);
|
|
13
|
-
const useRovingFocusGroupScope = createRovingFocusGroupScope();
|
|
14
|
-
const useCheckboxScope = createCheckboxScope();
|
|
7
|
+
const [createCheckboxGroupContext, createCheckboxGroupScope] = Context.createContextScope(CHECKBOX_GROUP_NAME, [RovingFocus.createRovingFocusGroupScope, Checkbox.createCheckboxScope]);
|
|
8
|
+
const useRovingFocusGroupScope = RovingFocus.createRovingFocusGroupScope();
|
|
9
|
+
const useCheckboxScope = Checkbox.createCheckboxScope();
|
|
15
10
|
const [CheckboxGroupContextProvider, useCheckboxGroupContext] = createCheckboxGroupContext(CHECKBOX_GROUP_NAME);
|
|
16
11
|
/**
|
|
17
12
|
* CheckboxGroup component that manages a group of checkboxes with roving focus
|
|
@@ -20,13 +15,13 @@ const [CheckboxGroupContextProvider, useCheckboxGroupContext] = createCheckboxGr
|
|
|
20
15
|
*/
|
|
21
16
|
function CheckboxGroup({ __scopeCheckboxGroup, defaultValue, dir, disabled = false, loop = true, name, onValueChange, orientation, required = false, value: valueProperty, ...props }) {
|
|
22
17
|
/**
|
|
23
|
-
* Scope for the RovingFocusGroup component
|
|
18
|
+
* Context.Scope for the RovingFocusGroup component
|
|
24
19
|
*/
|
|
25
20
|
const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
|
|
26
21
|
/**
|
|
27
22
|
* Direction for layout and navigation
|
|
28
23
|
*/
|
|
29
|
-
const direction = useDirection(dir);
|
|
24
|
+
const direction = Direction.useDirection(dir);
|
|
30
25
|
/**
|
|
31
26
|
* State for managing selected checkbox values
|
|
32
27
|
*/
|
|
@@ -51,7 +46,7 @@ function CheckboxGroup({ __scopeCheckboxGroup, defaultValue, dir, disabled = fal
|
|
|
51
46
|
return currentValue.filter((inputValue) => inputValue !== itemValue);
|
|
52
47
|
});
|
|
53
48
|
}, [setValue, required]),
|
|
54
|
-
children: /* @__PURE__ */ jsx(
|
|
49
|
+
children: /* @__PURE__ */ jsx(RovingFocus.Root, {
|
|
55
50
|
asChild: true,
|
|
56
51
|
...rovingFocusGroupScope,
|
|
57
52
|
dir: direction,
|
|
@@ -82,23 +77,23 @@ function CheckboxGroupItem({ __scopeCheckboxGroup, disabled, ...props }) {
|
|
|
82
77
|
*/
|
|
83
78
|
const isDisabled = context.disabled || disabled;
|
|
84
79
|
/**
|
|
85
|
-
* Scope for the RovingFocusGroup component
|
|
80
|
+
* Context.Scope for the RovingFocusGroup component
|
|
86
81
|
*/
|
|
87
82
|
const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
|
|
88
83
|
/**
|
|
89
|
-
* Scope for the Checkbox component
|
|
84
|
+
* Context.Scope for the Checkbox component
|
|
90
85
|
*/
|
|
91
86
|
const checkboxScope = useCheckboxScope(__scopeCheckboxGroup);
|
|
92
87
|
/**
|
|
93
88
|
* Whether this checkbox is currently checked
|
|
94
89
|
*/
|
|
95
90
|
const checked = context.value?.includes(props.value);
|
|
96
|
-
return /* @__PURE__ */ jsx(
|
|
91
|
+
return /* @__PURE__ */ jsx(RovingFocus.Item, {
|
|
97
92
|
asChild: true,
|
|
98
93
|
...rovingFocusGroupScope,
|
|
99
94
|
active: checked,
|
|
100
95
|
focusable: !isDisabled,
|
|
101
|
-
children: /* @__PURE__ */ jsx(
|
|
96
|
+
children: /* @__PURE__ */ jsx(Checkbox.Root, {
|
|
102
97
|
"aria-label": props.value,
|
|
103
98
|
checked,
|
|
104
99
|
disabled: isDisabled,
|
|
@@ -120,10 +115,10 @@ function CheckboxGroupItem({ __scopeCheckboxGroup, disabled, ...props }) {
|
|
|
120
115
|
*/
|
|
121
116
|
function CheckboxGroupIndicator({ __scopeCheckboxGroup, ...props }) {
|
|
122
117
|
/**
|
|
123
|
-
* Scope for the Checkbox component
|
|
118
|
+
* Context.Scope for the Checkbox component
|
|
124
119
|
*/
|
|
125
120
|
const checkboxScope = useCheckboxScope(__scopeCheckboxGroup);
|
|
126
|
-
return /* @__PURE__ */ jsx(
|
|
121
|
+
return /* @__PURE__ */ jsx(Checkbox.Indicator, {
|
|
127
122
|
...checkboxScope,
|
|
128
123
|
...props
|
|
129
124
|
});
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Field as InputField, Input } from "./input.mjs";
|
|
2
2
|
import { ComponentProps, JSX } from "react";
|
|
3
|
-
import
|
|
4
|
-
import { Scope } from "@radix-ui/react-context";
|
|
3
|
+
import { Context } from "radix-ui/internal";
|
|
5
4
|
|
|
6
5
|
//#region src/primitives/input-number.d.ts
|
|
7
6
|
/**
|
|
@@ -11,9 +10,9 @@ type ScopedProps<P> = P & {
|
|
|
11
10
|
/**
|
|
12
11
|
* Optional scope for the InputNumber component context
|
|
13
12
|
*/
|
|
14
|
-
__scopeInputNumber?: Scope;
|
|
13
|
+
__scopeInputNumber?: Context.Scope;
|
|
15
14
|
};
|
|
16
|
-
declare const createInputNumberScope:
|
|
15
|
+
declare const createInputNumberScope: Context.CreateScope;
|
|
17
16
|
/**
|
|
18
17
|
* Props for the main InputNumber component.
|
|
19
18
|
*
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Field as InputField, Input, createInputScope } from "./input.mjs";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
4
|
-
import {
|
|
5
|
-
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
6
|
-
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
4
|
+
import { Context, composeEventHandlers, useControllableState } from "radix-ui/internal";
|
|
7
5
|
//#region src/primitives/input-number.tsx
|
|
8
6
|
/**
|
|
9
7
|
* The name of the InputNumber component constant.
|
|
10
8
|
*/
|
|
11
9
|
const NUMBER_INPUT_NAME = "InputNumber";
|
|
12
|
-
const [createInputNumberContext, createInputNumberScope] = createContextScope(NUMBER_INPUT_NAME, [createInputScope]);
|
|
10
|
+
const [createInputNumberContext, createInputNumberScope] = Context.createContextScope(NUMBER_INPUT_NAME, [createInputScope]);
|
|
13
11
|
const useInputScope = createInputScope();
|
|
14
12
|
const [InputNumberContextProvider, useInputNumberContext] = createInputNumberContext(NUMBER_INPUT_NAME);
|
|
15
13
|
/**
|
|
@@ -21,7 +19,7 @@ function InputNumber(numberInputProps) {
|
|
|
21
19
|
style: "decimal"
|
|
22
20
|
}, id, locale, max, min, onChange, step = 1, value: valueProperty, ...props } = numberInputProps;
|
|
23
21
|
/**
|
|
24
|
-
* Scope for the input component
|
|
22
|
+
* Context.Scope for the input component
|
|
25
23
|
*/
|
|
26
24
|
const inputScope = useInputScope(__scopeInputNumber);
|
|
27
25
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ComponentProps, JSX, PropsWithChildren, ReactNode } from "react";
|
|
2
|
-
import
|
|
3
|
-
import { Scope } from "@radix-ui/react-context";
|
|
2
|
+
import { Context } from "radix-ui/internal";
|
|
4
3
|
|
|
5
4
|
//#region src/primitives/input.d.ts
|
|
6
5
|
/**
|
|
@@ -8,11 +7,11 @@ import { Scope } from "@radix-ui/react-context";
|
|
|
8
7
|
*/
|
|
9
8
|
type ScopedProps<P> = P & {
|
|
10
9
|
/**
|
|
11
|
-
* Scope for the Input component context
|
|
10
|
+
* Context.Scope for the Input component context
|
|
12
11
|
*/
|
|
13
|
-
__scopeInput?: Scope;
|
|
12
|
+
__scopeInput?: Context.Scope;
|
|
14
13
|
};
|
|
15
|
-
declare const createInputScope:
|
|
14
|
+
declare const createInputScope: Context.CreateScope;
|
|
16
15
|
/**
|
|
17
16
|
* Props for styling and appearance of the Input component
|
|
18
17
|
*/
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useRef } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
|
3
|
+
import { Context, useComposedRefs } from "radix-ui/internal";
|
|
5
4
|
//#region src/primitives/input.tsx
|
|
6
5
|
const INPUT_NAME = "Input";
|
|
7
|
-
const [createInputContext, createInputScope] = createContextScope(INPUT_NAME);
|
|
6
|
+
const [createInputContext, createInputScope] = Context.createContextScope(INPUT_NAME);
|
|
8
7
|
const [InputContextProvider, useInputContext] = createInputContext(INPUT_NAME);
|
|
9
8
|
/**
|
|
10
9
|
* @since 0.3.16-canary.0
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ComponentProps, ReactNode } from "react";
|
|
2
|
-
import
|
|
3
|
-
import { Scope } from "@radix-ui/react-context";
|
|
2
|
+
import { Context } from "radix-ui/internal";
|
|
4
3
|
|
|
5
4
|
//#region src/primitives/progress-circle.d.ts
|
|
6
5
|
type ScopedProps<P> = P & {
|
|
7
|
-
__scopeProgressCircle?: Scope;
|
|
6
|
+
__scopeProgressCircle?: Context.Scope;
|
|
8
7
|
};
|
|
9
8
|
/**
|
|
10
9
|
* Defines color thresholds based on progress values
|
|
@@ -23,7 +22,7 @@ interface Threshold {
|
|
|
23
22
|
*/
|
|
24
23
|
value: number;
|
|
25
24
|
}
|
|
26
|
-
declare const createProgressCircleScope:
|
|
25
|
+
declare const createProgressCircleScope: Context.CreateScope;
|
|
27
26
|
/**
|
|
28
27
|
* @since 0.3.16-canary.0
|
|
29
28
|
*/
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { jsx } from "react/jsx-runtime";
|
|
3
2
|
import { useId, useMemo } from "react";
|
|
4
|
-
import {
|
|
3
|
+
import { Context } from "radix-ui/internal";
|
|
5
4
|
//#region src/primitives/progress-circle.tsx
|
|
6
5
|
const PROGRESS_CIRCLE_PROVIDER_NAME = "ProgressCircleProvider";
|
|
7
|
-
const [createProgressCircleContext, createProgressCircleScope] = createContextScope(PROGRESS_CIRCLE_PROVIDER_NAME);
|
|
6
|
+
const [createProgressCircleContext, createProgressCircleScope] = Context.createContextScope(PROGRESS_CIRCLE_PROVIDER_NAME);
|
|
8
7
|
const [ProgressCircleContextProvider, useProgressCircleContext] = createProgressCircleContext(PROGRESS_CIRCLE_PROVIDER_NAME);
|
|
9
8
|
/**
|
|
10
9
|
* Provides context for the ProgressCircle component
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/alert.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const alertVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
variant: {
|
|
9
|
+
default: string;
|
|
10
|
+
destructive: string;
|
|
11
|
+
};
|
|
12
|
+
}, Record<string, never>>;
|
|
13
|
+
/**
|
|
14
|
+
* @since 0.3.16-canary.0
|
|
15
|
+
*/
|
|
16
|
+
type AlertVariants = VariantProps<typeof alertVariants>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { type AlertVariants, alertVariants };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/alert.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const alertVariants = tv({
|
|
7
|
+
base: "group/alert relative grid w-full gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",
|
|
8
|
+
defaultVariants: { variant: "default" },
|
|
9
|
+
variants: { variant: {
|
|
10
|
+
default: "bg-card text-card-foreground",
|
|
11
|
+
destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"
|
|
12
|
+
} }
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { alertVariants };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/badge.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const badgeVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
variant: {
|
|
9
|
+
default: string;
|
|
10
|
+
destructive: string;
|
|
11
|
+
ghost: string;
|
|
12
|
+
link: string;
|
|
13
|
+
outline: string;
|
|
14
|
+
secondary: string;
|
|
15
|
+
};
|
|
16
|
+
}, Record<string, never>>;
|
|
17
|
+
/**
|
|
18
|
+
* @since 0.3.16-canary.0
|
|
19
|
+
*/
|
|
20
|
+
type BadgeVariants = VariantProps<typeof badgeVariants>;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { type BadgeVariants, badgeVariants };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/badge.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const badgeVariants = tv({
|
|
7
|
+
base: "group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",
|
|
8
|
+
defaultVariants: { variant: "default" },
|
|
9
|
+
variants: { variant: {
|
|
10
|
+
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
11
|
+
destructive: "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",
|
|
12
|
+
ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
|
|
13
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
14
|
+
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
|
|
15
|
+
secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80"
|
|
16
|
+
} }
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
export { badgeVariants };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/button-group.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const buttonGroupVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
orientation: {
|
|
9
|
+
horizontal: string;
|
|
10
|
+
vertical: string;
|
|
11
|
+
};
|
|
12
|
+
}, Record<string, never>>;
|
|
13
|
+
/**
|
|
14
|
+
* @since 0.3.16-canary.0
|
|
15
|
+
*/
|
|
16
|
+
type ButtonGroupVariants = VariantProps<typeof buttonGroupVariants>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { type ButtonGroupVariants, buttonGroupVariants };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/button-group.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const buttonGroupVariants = tv({
|
|
7
|
+
base: "group/button-group flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
|
|
8
|
+
defaultVariants: { orientation: "horizontal" },
|
|
9
|
+
variants: { orientation: {
|
|
10
|
+
horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md!",
|
|
11
|
+
vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md!"
|
|
12
|
+
} }
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { buttonGroupVariants };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/button.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const buttonVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
size: {
|
|
9
|
+
default: string;
|
|
10
|
+
xs: string;
|
|
11
|
+
sm: string;
|
|
12
|
+
lg: string;
|
|
13
|
+
icon: string;
|
|
14
|
+
"icon-xs": string;
|
|
15
|
+
"icon-sm": string;
|
|
16
|
+
"icon-lg": string;
|
|
17
|
+
};
|
|
18
|
+
variant: {
|
|
19
|
+
default: string;
|
|
20
|
+
destructive: string;
|
|
21
|
+
ghost: string;
|
|
22
|
+
link: string;
|
|
23
|
+
outline: string;
|
|
24
|
+
secondary: string;
|
|
25
|
+
};
|
|
26
|
+
}, Record<string, never>>;
|
|
27
|
+
/**
|
|
28
|
+
* @since 0.3.16-canary.0
|
|
29
|
+
*/
|
|
30
|
+
type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { type ButtonVariants, buttonVariants };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/button.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const buttonVariants = tv({
|
|
7
|
+
base: "group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
8
|
+
defaultVariants: {
|
|
9
|
+
size: "default",
|
|
10
|
+
variant: "default"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
size: {
|
|
14
|
+
default: "h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
15
|
+
xs: "h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
16
|
+
sm: "h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
|
|
17
|
+
lg: "h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
18
|
+
icon: "size-9",
|
|
19
|
+
"icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
|
|
20
|
+
"icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
|
|
21
|
+
"icon-lg": "size-10"
|
|
22
|
+
},
|
|
23
|
+
variant: {
|
|
24
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
25
|
+
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
26
|
+
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
27
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
28
|
+
outline: "border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
29
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
//#endregion
|
|
34
|
+
export { buttonVariants };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/empty.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const emptyMediaVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
variant: {
|
|
9
|
+
default: string;
|
|
10
|
+
icon: string;
|
|
11
|
+
};
|
|
12
|
+
}, Record<string, never>>;
|
|
13
|
+
/**
|
|
14
|
+
* @since 0.3.16-canary.0
|
|
15
|
+
*/
|
|
16
|
+
type EmptyMediaVariants = VariantProps<typeof emptyMediaVariants>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { type EmptyMediaVariants, emptyMediaVariants };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/empty.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const emptyMediaVariants = tv({
|
|
7
|
+
base: "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
8
|
+
defaultVariants: { variant: "default" },
|
|
9
|
+
variants: { variant: {
|
|
10
|
+
default: "bg-transparent",
|
|
11
|
+
icon: "flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
|
|
12
|
+
} }
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
export { emptyMediaVariants };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/field.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const fieldVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
orientation: {
|
|
9
|
+
horizontal: string;
|
|
10
|
+
responsive: string;
|
|
11
|
+
vertical: string;
|
|
12
|
+
};
|
|
13
|
+
}, Record<string, never>>;
|
|
14
|
+
/**
|
|
15
|
+
* @since 0.3.16-canary.0
|
|
16
|
+
*/
|
|
17
|
+
type FieldVariants = VariantProps<typeof fieldVariants>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { type FieldVariants, fieldVariants };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/field.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const fieldVariants = tv({
|
|
7
|
+
base: "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
|
|
8
|
+
defaultVariants: { orientation: "vertical" },
|
|
9
|
+
variants: { orientation: {
|
|
10
|
+
horizontal: "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
|
|
11
|
+
responsive: "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
|
|
12
|
+
vertical: "flex-col *:w-full [&>.sr-only]:w-auto"
|
|
13
|
+
} }
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
|
16
|
+
export { fieldVariants };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/input-group.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const inputGroupVariants: import("@codefast/tailwind-variants").VariantResolver<Record<never, never>, Record<string, never>>;
|
|
8
|
+
/**
|
|
9
|
+
* @since 0.3.16-canary.0
|
|
10
|
+
*/
|
|
11
|
+
declare const inputGroupAddonVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
12
|
+
align: {
|
|
13
|
+
"block-end": string;
|
|
14
|
+
"block-start": string;
|
|
15
|
+
"inline-end": string;
|
|
16
|
+
"inline-start": string;
|
|
17
|
+
};
|
|
18
|
+
}, Record<string, never>>;
|
|
19
|
+
/**
|
|
20
|
+
* @since 0.3.16-canary.0
|
|
21
|
+
*/
|
|
22
|
+
declare const inputGroupButtonVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
23
|
+
size: {
|
|
24
|
+
"icon-xs": string;
|
|
25
|
+
"icon-sm": string;
|
|
26
|
+
sm: string;
|
|
27
|
+
xs: string;
|
|
28
|
+
};
|
|
29
|
+
}, Record<string, never>>;
|
|
30
|
+
/**
|
|
31
|
+
* @since 0.3.16-canary.0
|
|
32
|
+
*/
|
|
33
|
+
type InputGroupVariants = VariantProps<typeof inputGroupVariants>;
|
|
34
|
+
/**
|
|
35
|
+
* @since 0.3.16-canary.0
|
|
36
|
+
*/
|
|
37
|
+
type InputGroupAddonVariants = VariantProps<typeof inputGroupAddonVariants>;
|
|
38
|
+
/**
|
|
39
|
+
* @since 0.3.16-canary.0
|
|
40
|
+
*/
|
|
41
|
+
type InputGroupButtonVariants = VariantProps<typeof inputGroupButtonVariants>;
|
|
42
|
+
//#endregion
|
|
43
|
+
export { type InputGroupAddonVariants, type InputGroupButtonVariants, type InputGroupVariants, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupVariants };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/input-group.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const inputGroupVariants = tv({ base: "group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 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-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5" });
|
|
7
|
+
/**
|
|
8
|
+
* @since 0.3.16-canary.0
|
|
9
|
+
*/
|
|
10
|
+
const inputGroupAddonVariants = tv({
|
|
11
|
+
base: "flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-disabled/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-3px)] [&>svg:not([class*='size-'])]:size-4",
|
|
12
|
+
defaultVariants: { align: "inline-start" },
|
|
13
|
+
variants: { align: {
|
|
14
|
+
"block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2",
|
|
15
|
+
"block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
|
|
16
|
+
"inline-end": "order-last pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]",
|
|
17
|
+
"inline-start": "order-first pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]"
|
|
18
|
+
} }
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* @since 0.3.16-canary.0
|
|
22
|
+
*/
|
|
23
|
+
const inputGroupButtonVariants = tv({
|
|
24
|
+
base: "flex items-center gap-2 text-sm shadow-none",
|
|
25
|
+
defaultVariants: { size: "xs" },
|
|
26
|
+
variants: { size: {
|
|
27
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0",
|
|
28
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0",
|
|
29
|
+
sm: "",
|
|
30
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5"
|
|
31
|
+
} }
|
|
32
|
+
});
|
|
33
|
+
//#endregion
|
|
34
|
+
export { inputGroupAddonVariants, inputGroupButtonVariants, inputGroupVariants };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/variants/input-number.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @since 0.3.16-canary.0
|
|
6
|
+
*/
|
|
7
|
+
declare const inputNumberVariants: import("@codefast/tailwind-variants").VariantResolver<{
|
|
8
|
+
variant: {
|
|
9
|
+
split: {
|
|
10
|
+
field: string;
|
|
11
|
+
};
|
|
12
|
+
stepper: {};
|
|
13
|
+
};
|
|
14
|
+
}, {
|
|
15
|
+
/**
|
|
16
|
+
* Split layout: trailing increment button (always on the inline end).
|
|
17
|
+
*/
|
|
18
|
+
incrementButton: string;
|
|
19
|
+
/**
|
|
20
|
+
* Split layout: leading decrement button (always on the inline start).
|
|
21
|
+
*/
|
|
22
|
+
decrementButton: string;
|
|
23
|
+
/**
|
|
24
|
+
* Editable numeric input.
|
|
25
|
+
*/
|
|
26
|
+
field: string;
|
|
27
|
+
/**
|
|
28
|
+
* Outer container.
|
|
29
|
+
*/
|
|
30
|
+
root: string;
|
|
31
|
+
/**
|
|
32
|
+
* Stepper layout: stacked chevron column on the trailing edge.
|
|
33
|
+
*/
|
|
34
|
+
stepper: string;
|
|
35
|
+
/**
|
|
36
|
+
* Stepper layout: individual chevron button (shared by increment/decrement).
|
|
37
|
+
*/
|
|
38
|
+
stepperButton: string;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* @since 0.3.16-canary.0
|
|
42
|
+
*/
|
|
43
|
+
type InputNumberVariants = VariantProps<typeof inputNumberVariants>;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { type InputNumberVariants, inputNumberVariants };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { tv } from "../lib/utils.mjs";
|
|
2
|
+
//#region src/variants/input-number.ts
|
|
3
|
+
/**
|
|
4
|
+
* @since 0.3.16-canary.0
|
|
5
|
+
*/
|
|
6
|
+
const inputNumberVariants = tv({
|
|
7
|
+
defaultVariants: { variant: "stepper" },
|
|
8
|
+
slots: {
|
|
9
|
+
/**
|
|
10
|
+
* Split layout: trailing increment button (always on the inline end).
|
|
11
|
+
*/
|
|
12
|
+
incrementButton: "order-last h-full w-9 shrink-0 rounded-none rounded-r-[calc(var(--radius-md)-1px)] border-l border-l-input text-muted-foreground group-focus-within/input-number:border-l-ring group-has-aria-invalid/input-number:border-l-destructive focus-visible:bg-ring/50 focus-visible:ring-0 group-has-aria-invalid/input-number:focus-visible:bg-destructive/20 dark:group-has-aria-invalid/input-number:focus-visible:bg-destructive/40",
|
|
13
|
+
/**
|
|
14
|
+
* Split layout: leading decrement button (always on the inline start).
|
|
15
|
+
*/
|
|
16
|
+
decrementButton: "order-first h-full w-9 shrink-0 rounded-none rounded-l-[calc(var(--radius-md)-1px)] border-r border-r-input text-muted-foreground group-focus-within/input-number:border-r-ring group-has-aria-invalid/input-number:border-r-destructive focus-visible:bg-ring/50 focus-visible:ring-0 group-has-aria-invalid/input-number:focus-visible:bg-destructive/20 dark:group-has-aria-invalid/input-number:focus-visible:bg-destructive/40",
|
|
17
|
+
/**
|
|
18
|
+
* Editable numeric input.
|
|
19
|
+
*/
|
|
20
|
+
field: "h-full min-w-0 flex-1 bg-transparent px-2.5 py-1 outline-hidden selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed",
|
|
21
|
+
/**
|
|
22
|
+
* Outer container.
|
|
23
|
+
*/
|
|
24
|
+
root: "group/input-number relative flex h-9 w-full min-w-0 items-center overflow-hidden rounded-md border border-input bg-transparent text-base transition-[color,box-shadow] not-has-disabled:shadow-xs focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-disabled:opacity-50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 motion-reduce:transition-none md:text-sm dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
25
|
+
/**
|
|
26
|
+
* Stepper layout: stacked chevron column on the trailing edge.
|
|
27
|
+
*/
|
|
28
|
+
stepper: "order-last grid h-full w-8 shrink-0 divide-y divide-input border-l border-l-input transition-colors group-focus-within/input-number:divide-ring group-focus-within/input-number:border-l-ring group-has-aria-invalid/input-number:divide-destructive group-has-aria-invalid/input-number:border-l-destructive motion-reduce:transition-none *:[button]:focus-visible:bg-ring/50 *:[button]:focus-visible:ring-0 group-has-aria-invalid/input-number:*:[button]:focus-visible:bg-destructive/20 dark:group-has-aria-invalid/input-number:*:[button]:focus-visible:bg-destructive/40",
|
|
29
|
+
/**
|
|
30
|
+
* Stepper layout: individual chevron button (shared by increment/decrement).
|
|
31
|
+
*/
|
|
32
|
+
stepperButton: "h-auto min-w-0 rounded-none px-0 text-muted-foreground"
|
|
33
|
+
},
|
|
34
|
+
variants: { variant: {
|
|
35
|
+
split: { field: "text-center tabular-nums" },
|
|
36
|
+
stepper: {}
|
|
37
|
+
} }
|
|
38
|
+
});
|
|
39
|
+
//#endregion
|
|
40
|
+
export { inputNumberVariants };
|