@appcorp/stellar-solutions-modules 0.1.44 → 0.1.46
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/components/ui/{dropzone-enhanced/index.d.ts → enhanced-dropzone.d.ts} +2 -3
- package/components/ui/{dropzone-enhanced/index.js → enhanced-dropzone.js} +4 -5
- package/components/ui/shadcn-io/color-picker/index.d.ts +43 -0
- package/components/ui/shadcn-io/color-picker/index.js +304 -0
- package/global-modules/payment-mode/form.js +1 -77
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { DropzoneOptions } from "react-dropzone";
|
|
3
|
-
export type
|
|
3
|
+
export type EnhancedDropzoneProps = {
|
|
4
4
|
id?: string;
|
|
5
5
|
className?: string;
|
|
6
6
|
label?: string;
|
|
@@ -18,5 +18,4 @@ export type DropzoneEnhancedProps = {
|
|
|
18
18
|
/** Called when a provided remote URL preview is removed (if provided) */
|
|
19
19
|
onRemoveUrl?: (url: string) => void;
|
|
20
20
|
};
|
|
21
|
-
export declare const
|
|
22
|
-
export default DropzoneEnhanced;
|
|
21
|
+
export declare const EnhancedDropzone: React.FC<EnhancedDropzoneProps>;
|
|
@@ -54,15 +54,15 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
54
54
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
55
55
|
};
|
|
56
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
-
exports.
|
|
57
|
+
exports.EnhancedDropzone = void 0;
|
|
58
58
|
var react_1 = __importStar(require("react"));
|
|
59
59
|
var react_dropzone_1 = require("react-dropzone");
|
|
60
60
|
var utils_1 = require("@/lib/utils");
|
|
61
61
|
var carousel_1 = require("@/components/ui/carousel");
|
|
62
62
|
var button_1 = require("@/components/ui/button");
|
|
63
63
|
var lucide_react_1 = require("lucide-react");
|
|
64
|
-
var dropzone_1 = require("
|
|
65
|
-
var
|
|
64
|
+
var dropzone_1 = require("./shadcn-io/dropzone");
|
|
65
|
+
var EnhancedDropzone = function (_a) {
|
|
66
66
|
var id = _a.id, label = _a.label, info = _a.info, error = _a.error, accept = _a.accept, _b = _a.maxFiles, maxFiles = _b === void 0 ? 10 : _b, maxSize = _a.maxSize, minSize = _a.minSize, disabled = _a.disabled, _c = _a.initial, initial = _c === void 0 ? [] : _c, onChange = _a.onChange, onRemoveUrl = _a.onRemoveUrl, className = _a.className;
|
|
67
67
|
// Files selected locally (File objects)
|
|
68
68
|
var _d = (0, react_1.useState)([]), files = _d[0], setFiles = _d[1];
|
|
@@ -222,5 +222,4 @@ var DropzoneEnhanced = function (_a) {
|
|
|
222
222
|
react_1.default.createElement(dropzone_1.DropzoneEmptyState, null))),
|
|
223
223
|
(error || info) && (react_1.default.createElement("div", { className: "mt-2" }, error ? (react_1.default.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (react_1.default.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
|
|
224
224
|
};
|
|
225
|
-
exports.
|
|
226
|
-
exports.default = exports.DropzoneEnhanced;
|
|
225
|
+
exports.EnhancedDropzone = EnhancedDropzone;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Color from "color";
|
|
3
|
+
import { Slider } from "radix-ui";
|
|
4
|
+
import { type ComponentProps, type HTMLAttributes } from "react";
|
|
5
|
+
import { Button } from "../../button";
|
|
6
|
+
import { SelectTrigger } from "../../select";
|
|
7
|
+
interface ColorPickerContextValue {
|
|
8
|
+
hue: number;
|
|
9
|
+
saturation: number;
|
|
10
|
+
lightness: number;
|
|
11
|
+
alpha: number;
|
|
12
|
+
mode: string;
|
|
13
|
+
setHue: (hue: number) => void;
|
|
14
|
+
setSaturation: (saturation: number) => void;
|
|
15
|
+
setLightness: (lightness: number) => void;
|
|
16
|
+
setAlpha: (alpha: number) => void;
|
|
17
|
+
setMode: (mode: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const useColorPicker: () => ColorPickerContextValue;
|
|
20
|
+
export type ColorPickerProps = Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & {
|
|
21
|
+
value?: Parameters<typeof Color>[0];
|
|
22
|
+
defaultValue?: Parameters<typeof Color>[0];
|
|
23
|
+
onChange?: (value: [number, number, number, number]) => void;
|
|
24
|
+
error?: string;
|
|
25
|
+
info?: string;
|
|
26
|
+
label?: string;
|
|
27
|
+
required?: boolean;
|
|
28
|
+
id?: string;
|
|
29
|
+
};
|
|
30
|
+
export declare const ColorPicker: ({ value, defaultValue, onChange, className, error, info, label, required, id, ...props }: ColorPickerProps) => React.JSX.Element;
|
|
31
|
+
export type ColorPickerSelectionProps = HTMLAttributes<HTMLDivElement>;
|
|
32
|
+
export declare const ColorPickerSelection: React.MemoExoticComponent<({ className, ...props }: ColorPickerSelectionProps) => React.JSX.Element>;
|
|
33
|
+
export type ColorPickerHueProps = ComponentProps<typeof Slider.Root>;
|
|
34
|
+
export declare const ColorPickerHue: ({ className, ...props }: ColorPickerHueProps) => React.JSX.Element;
|
|
35
|
+
export type ColorPickerAlphaProps = ComponentProps<typeof Slider.Root>;
|
|
36
|
+
export declare const ColorPickerAlpha: ({ className, ...props }: ColorPickerAlphaProps) => React.JSX.Element;
|
|
37
|
+
export type ColorPickerEyeDropperProps = ComponentProps<typeof Button>;
|
|
38
|
+
export declare const ColorPickerEyeDropper: ({ className, ...props }: ColorPickerEyeDropperProps) => React.JSX.Element;
|
|
39
|
+
export type ColorPickerOutputProps = ComponentProps<typeof SelectTrigger>;
|
|
40
|
+
export declare const ColorPickerOutput: ({ className, ...props }: ColorPickerOutputProps) => React.JSX.Element;
|
|
41
|
+
export type ColorPickerFormatProps = HTMLAttributes<HTMLDivElement>;
|
|
42
|
+
export declare const ColorPickerFormat: ({ className, ...props }: ColorPickerFormatProps) => React.JSX.Element | null;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __assign = (this && this.__assign) || function () {
|
|
4
|
+
__assign = Object.assign || function(t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
+
t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
return __assign.apply(this, arguments);
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
24
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
25
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
26
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
27
|
+
function step(op) {
|
|
28
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
29
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
30
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
31
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
32
|
+
switch (op[0]) {
|
|
33
|
+
case 0: case 1: t = op; break;
|
|
34
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
35
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
36
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
37
|
+
default:
|
|
38
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
39
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
40
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
41
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
42
|
+
if (t[2]) _.ops.pop();
|
|
43
|
+
_.trys.pop(); continue;
|
|
44
|
+
}
|
|
45
|
+
op = body.call(thisArg, _);
|
|
46
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
47
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
51
|
+
var t = {};
|
|
52
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
53
|
+
t[p] = s[p];
|
|
54
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
55
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
56
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
57
|
+
t[p[i]] = s[p[i]];
|
|
58
|
+
}
|
|
59
|
+
return t;
|
|
60
|
+
};
|
|
61
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
62
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
|
+
};
|
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
+
exports.ColorPickerFormat = exports.ColorPickerOutput = exports.ColorPickerEyeDropper = exports.ColorPickerAlpha = exports.ColorPickerHue = exports.ColorPickerSelection = exports.ColorPicker = exports.useColorPicker = void 0;
|
|
66
|
+
var react_1 = __importDefault(require("react"));
|
|
67
|
+
var color_1 = __importDefault(require("color"));
|
|
68
|
+
var lucide_react_1 = require("lucide-react");
|
|
69
|
+
var radix_ui_1 = require("radix-ui");
|
|
70
|
+
var react_2 = require("react");
|
|
71
|
+
var button_1 = require("../../button");
|
|
72
|
+
var input_1 = require("../../input");
|
|
73
|
+
var label_1 = require("../../label");
|
|
74
|
+
var select_1 = require("../../select");
|
|
75
|
+
var utils_1 = require("../../../../lib/utils");
|
|
76
|
+
var ColorPickerContext = (0, react_2.createContext)(undefined);
|
|
77
|
+
var useColorPicker = function () {
|
|
78
|
+
var context = (0, react_2.useContext)(ColorPickerContext);
|
|
79
|
+
if (!context) {
|
|
80
|
+
throw new Error("useColorPicker must be used within a ColorPickerProvider");
|
|
81
|
+
}
|
|
82
|
+
return context;
|
|
83
|
+
};
|
|
84
|
+
exports.useColorPicker = useColorPicker;
|
|
85
|
+
var ColorPicker = function (_a) {
|
|
86
|
+
var value = _a.value, _b = _a.defaultValue, defaultValue = _b === void 0 ? "#000000" : _b, onChange = _a.onChange, className = _a.className, error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, props = __rest(_a, ["value", "defaultValue", "onChange", "className", "error", "info", "label", "required", "id"]);
|
|
87
|
+
var selectedColor = (0, color_1.default)(value);
|
|
88
|
+
var defaultColor = (0, color_1.default)(defaultValue);
|
|
89
|
+
var _c = (0, react_2.useState)(selectedColor.hue() || defaultColor.hue() || 0), hue = _c[0], setHue = _c[1];
|
|
90
|
+
var _d = (0, react_2.useState)(selectedColor.saturationl() || defaultColor.saturationl() || 100), saturation = _d[0], setSaturation = _d[1];
|
|
91
|
+
var _e = (0, react_2.useState)(selectedColor.lightness() || defaultColor.lightness() || 50), lightness = _e[0], setLightness = _e[1];
|
|
92
|
+
var _f = (0, react_2.useState)(selectedColor.alpha() * 100 || defaultColor.alpha() * 100), alpha = _f[0], setAlpha = _f[1];
|
|
93
|
+
var _g = (0, react_2.useState)("hex"), mode = _g[0], setMode = _g[1];
|
|
94
|
+
// Determine if there's an error (for styling)
|
|
95
|
+
var hasError = Boolean(error);
|
|
96
|
+
// Update color when controlled value changes
|
|
97
|
+
(0, react_2.useEffect)(function () {
|
|
98
|
+
if (value) {
|
|
99
|
+
var color = color_1.default.rgb(value).rgb().object();
|
|
100
|
+
setHue(color.r);
|
|
101
|
+
setSaturation(color.g);
|
|
102
|
+
setLightness(color.b);
|
|
103
|
+
setAlpha(color.a);
|
|
104
|
+
}
|
|
105
|
+
}, [value]);
|
|
106
|
+
// Notify parent of changes
|
|
107
|
+
(0, react_2.useEffect)(function () {
|
|
108
|
+
if (onChange) {
|
|
109
|
+
var color = color_1.default.hsl(hue, saturation, lightness).alpha(alpha / 100);
|
|
110
|
+
var rgba = color.rgb().array();
|
|
111
|
+
onChange([rgba[0], rgba[1], rgba[2], alpha / 100]);
|
|
112
|
+
}
|
|
113
|
+
}, [hue, saturation, lightness, alpha, onChange]);
|
|
114
|
+
var colorPickerElement = (react_1.default.createElement(ColorPickerContext.Provider, { value: {
|
|
115
|
+
hue: hue,
|
|
116
|
+
saturation: saturation,
|
|
117
|
+
lightness: lightness,
|
|
118
|
+
alpha: alpha,
|
|
119
|
+
mode: mode,
|
|
120
|
+
setHue: setHue,
|
|
121
|
+
setSaturation: setSaturation,
|
|
122
|
+
setLightness: setLightness,
|
|
123
|
+
setAlpha: setAlpha,
|
|
124
|
+
setMode: setMode,
|
|
125
|
+
} },
|
|
126
|
+
react_1.default.createElement("div", __assign({ id: id, className: (0, utils_1.cn)("flex size-full flex-col gap-4",
|
|
127
|
+
// Error state styling
|
|
128
|
+
hasError && "border-destructive", className), "aria-invalid": hasError }, props))));
|
|
129
|
+
// If label is provided, render the complete color picker with label structure
|
|
130
|
+
if (label) {
|
|
131
|
+
return (react_1.default.createElement("div", { className: "w-full space-y-2" },
|
|
132
|
+
react_1.default.createElement(label_1.Label, { htmlFor: id, required: required }, label),
|
|
133
|
+
colorPickerElement,
|
|
134
|
+
(error || info) && (react_1.default.createElement("div", null, error ? (react_1.default.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (react_1.default.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
|
|
135
|
+
}
|
|
136
|
+
// If no label, render just the color picker with messages (backward compatibility)
|
|
137
|
+
return (react_1.default.createElement("div", { className: "w-full" },
|
|
138
|
+
colorPickerElement,
|
|
139
|
+
(error || info) && (react_1.default.createElement("div", null, error ? (react_1.default.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (react_1.default.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
|
|
140
|
+
};
|
|
141
|
+
exports.ColorPicker = ColorPicker;
|
|
142
|
+
exports.ColorPickerSelection = (0, react_2.memo)(function (_a) {
|
|
143
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
144
|
+
var containerRef = (0, react_2.useRef)(null);
|
|
145
|
+
var _b = (0, react_2.useState)(false), isDragging = _b[0], setIsDragging = _b[1];
|
|
146
|
+
var _c = (0, react_2.useState)(0), positionX = _c[0], setPositionX = _c[1];
|
|
147
|
+
var _d = (0, react_2.useState)(0), positionY = _d[0], setPositionY = _d[1];
|
|
148
|
+
var _e = (0, exports.useColorPicker)(), hue = _e.hue, setSaturation = _e.setSaturation, setLightness = _e.setLightness;
|
|
149
|
+
var backgroundGradient = (0, react_2.useMemo)(function () {
|
|
150
|
+
return "linear-gradient(0deg, rgba(0,0,0,1), rgba(0,0,0,0)),\n linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0)),\n hsl(".concat(hue, ", 100%, 50%)");
|
|
151
|
+
}, [hue]);
|
|
152
|
+
var handlePointerMove = (0, react_2.useCallback)(function (event) {
|
|
153
|
+
if (!(isDragging && containerRef.current)) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
var rect = containerRef.current.getBoundingClientRect();
|
|
157
|
+
var x = Math.max(0, Math.min(1, (event.clientX - rect.left) / rect.width));
|
|
158
|
+
var y = Math.max(0, Math.min(1, (event.clientY - rect.top) / rect.height));
|
|
159
|
+
setPositionX(x);
|
|
160
|
+
setPositionY(y);
|
|
161
|
+
setSaturation(x * 100);
|
|
162
|
+
var topLightness = x < 0.01 ? 100 : 50 + 50 * (1 - x);
|
|
163
|
+
var lightness = topLightness * (1 - y);
|
|
164
|
+
setLightness(lightness);
|
|
165
|
+
}, [isDragging, setSaturation, setLightness]);
|
|
166
|
+
(0, react_2.useEffect)(function () {
|
|
167
|
+
var handlePointerUp = function () { return setIsDragging(false); };
|
|
168
|
+
if (isDragging) {
|
|
169
|
+
window.addEventListener("pointermove", handlePointerMove);
|
|
170
|
+
window.addEventListener("pointerup", handlePointerUp);
|
|
171
|
+
}
|
|
172
|
+
return function () {
|
|
173
|
+
window.removeEventListener("pointermove", handlePointerMove);
|
|
174
|
+
window.removeEventListener("pointerup", handlePointerUp);
|
|
175
|
+
};
|
|
176
|
+
}, [isDragging, handlePointerMove]);
|
|
177
|
+
return (react_1.default.createElement("div", __assign({ className: (0, utils_1.cn)("relative size-full cursor-crosshair rounded", className), onPointerDown: function (e) {
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
setIsDragging(true);
|
|
180
|
+
handlePointerMove(e.nativeEvent);
|
|
181
|
+
}, ref: containerRef, style: {
|
|
182
|
+
background: backgroundGradient,
|
|
183
|
+
} }, props),
|
|
184
|
+
react_1.default.createElement("div", { className: "-translate-x-1/2 -translate-y-1/2 pointer-events-none absolute h-4 w-4 rounded-full border-2 border-white", style: {
|
|
185
|
+
left: "".concat(positionX * 100, "%"),
|
|
186
|
+
top: "".concat(positionY * 100, "%"),
|
|
187
|
+
boxShadow: "0 0 0 1px rgba(0,0,0,0.5)",
|
|
188
|
+
} })));
|
|
189
|
+
});
|
|
190
|
+
exports.ColorPickerSelection.displayName = "ColorPickerSelection";
|
|
191
|
+
var ColorPickerHue = function (_a) {
|
|
192
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
193
|
+
var _b = (0, exports.useColorPicker)(), hue = _b.hue, setHue = _b.setHue;
|
|
194
|
+
return (react_1.default.createElement(radix_ui_1.Slider.Root, __assign({ className: (0, utils_1.cn)("relative flex h-4 w-full touch-none", className), max: 360, onValueChange: function (_a) {
|
|
195
|
+
var hue = _a[0];
|
|
196
|
+
return setHue(hue);
|
|
197
|
+
}, step: 1, value: [hue] }, props),
|
|
198
|
+
react_1.default.createElement(radix_ui_1.Slider.Track, { className: "relative my-0.5 h-3 w-full grow rounded-full bg-[linear-gradient(90deg,#FF0000,#FFFF00,#00FF00,#00FFFF,#0000FF,#FF00FF,#FF0000)]" },
|
|
199
|
+
react_1.default.createElement(radix_ui_1.Slider.Range, { className: "absolute h-full" })),
|
|
200
|
+
react_1.default.createElement(radix_ui_1.Slider.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })));
|
|
201
|
+
};
|
|
202
|
+
exports.ColorPickerHue = ColorPickerHue;
|
|
203
|
+
var ColorPickerAlpha = function (_a) {
|
|
204
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
205
|
+
var _b = (0, exports.useColorPicker)(), alpha = _b.alpha, setAlpha = _b.setAlpha;
|
|
206
|
+
return (react_1.default.createElement(radix_ui_1.Slider.Root, __assign({ className: (0, utils_1.cn)("relative flex h-4 w-full touch-none", className), max: 100, onValueChange: function (_a) {
|
|
207
|
+
var alpha = _a[0];
|
|
208
|
+
return setAlpha(alpha);
|
|
209
|
+
}, step: 1, value: [alpha] }, props),
|
|
210
|
+
react_1.default.createElement(radix_ui_1.Slider.Track, { className: "relative my-0.5 h-3 w-full grow rounded-full", style: {
|
|
211
|
+
background: 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==") left center',
|
|
212
|
+
} },
|
|
213
|
+
react_1.default.createElement("div", { className: "absolute inset-0 rounded-full bg-gradient-to-r from-transparent to-black/50" }),
|
|
214
|
+
react_1.default.createElement(radix_ui_1.Slider.Range, { className: "absolute h-full rounded-full bg-transparent" })),
|
|
215
|
+
react_1.default.createElement(radix_ui_1.Slider.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })));
|
|
216
|
+
};
|
|
217
|
+
exports.ColorPickerAlpha = ColorPickerAlpha;
|
|
218
|
+
var ColorPickerEyeDropper = function (_a) {
|
|
219
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
220
|
+
var _b = (0, exports.useColorPicker)(), setHue = _b.setHue, setSaturation = _b.setSaturation, setLightness = _b.setLightness, setAlpha = _b.setAlpha;
|
|
221
|
+
var handleEyeDropper = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
222
|
+
var eyeDropper, result, color, _a, h, s, l, error_1;
|
|
223
|
+
return __generator(this, function (_b) {
|
|
224
|
+
switch (_b.label) {
|
|
225
|
+
case 0:
|
|
226
|
+
_b.trys.push([0, 2, , 3]);
|
|
227
|
+
eyeDropper = new EyeDropper();
|
|
228
|
+
return [4 /*yield*/, eyeDropper.open()];
|
|
229
|
+
case 1:
|
|
230
|
+
result = _b.sent();
|
|
231
|
+
color = (0, color_1.default)(result.sRGBHex);
|
|
232
|
+
_a = color.hsl().array(), h = _a[0], s = _a[1], l = _a[2];
|
|
233
|
+
setHue(h);
|
|
234
|
+
setSaturation(s);
|
|
235
|
+
setLightness(l);
|
|
236
|
+
setAlpha(100);
|
|
237
|
+
return [3 /*break*/, 3];
|
|
238
|
+
case 2:
|
|
239
|
+
error_1 = _b.sent();
|
|
240
|
+
console.error("EyeDropper failed:", error_1);
|
|
241
|
+
return [3 /*break*/, 3];
|
|
242
|
+
case 3: return [2 /*return*/];
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}); };
|
|
246
|
+
return (react_1.default.createElement(button_1.Button, __assign({ className: (0, utils_1.cn)("shrink-0 text-muted-foreground", className), onClick: handleEyeDropper, size: "icon", variant: "outline", type: "button" }, props),
|
|
247
|
+
react_1.default.createElement(lucide_react_1.PipetteIcon, { size: 16 })));
|
|
248
|
+
};
|
|
249
|
+
exports.ColorPickerEyeDropper = ColorPickerEyeDropper;
|
|
250
|
+
var formats = ["hex", "rgb", "css", "hsl"];
|
|
251
|
+
var ColorPickerOutput = function (_a) {
|
|
252
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
253
|
+
var _b = (0, exports.useColorPicker)(), mode = _b.mode, setMode = _b.setMode;
|
|
254
|
+
return (react_1.default.createElement(select_1.Select, { onValueChange: setMode, value: mode },
|
|
255
|
+
react_1.default.createElement(select_1.SelectTrigger, __assign({ className: (0, utils_1.cn)("h-8 w-20 shrink-0 text-xs", className) }, props),
|
|
256
|
+
react_1.default.createElement(select_1.SelectValue, { placeholder: "Mode" })),
|
|
257
|
+
react_1.default.createElement(select_1.SelectContent, null, formats.map(function (format) { return (react_1.default.createElement(select_1.SelectItem, { className: "text-xs", key: format, value: format }, format.toUpperCase())); }))));
|
|
258
|
+
};
|
|
259
|
+
exports.ColorPickerOutput = ColorPickerOutput;
|
|
260
|
+
var PercentageInput = function (_a) {
|
|
261
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
262
|
+
return (react_1.default.createElement("div", { className: "relative" },
|
|
263
|
+
react_1.default.createElement(input_1.Input, __assign({ readOnly: true, type: "text" }, props, { className: (0, utils_1.cn)("h-8 w-[3.25rem] rounded-l-none bg-secondary px-2 text-xs shadow-none", className) })),
|
|
264
|
+
react_1.default.createElement("span", { className: "-translate-y-1/2 absolute top-1/2 right-2 text-muted-foreground text-xs" }, "%")));
|
|
265
|
+
};
|
|
266
|
+
var ColorPickerFormat = function (_a) {
|
|
267
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
268
|
+
var _b = (0, exports.useColorPicker)(), hue = _b.hue, saturation = _b.saturation, lightness = _b.lightness, alpha = _b.alpha, mode = _b.mode;
|
|
269
|
+
var color = color_1.default.hsl(hue, saturation, lightness, alpha / 100);
|
|
270
|
+
if (mode === "hex") {
|
|
271
|
+
var hex = color.hex();
|
|
272
|
+
return (react_1.default.createElement("div", __assign({ className: (0, utils_1.cn)("-space-x-px relative flex w-full items-center rounded-md shadow-sm", className) }, props),
|
|
273
|
+
react_1.default.createElement(input_1.Input, { className: "h-8 rounded-r-none bg-secondary px-2 text-xs shadow-none", readOnly: true, type: "text", value: hex }),
|
|
274
|
+
react_1.default.createElement(PercentageInput, { value: alpha })));
|
|
275
|
+
}
|
|
276
|
+
if (mode === "rgb") {
|
|
277
|
+
var rgb = color
|
|
278
|
+
.rgb()
|
|
279
|
+
.array()
|
|
280
|
+
.map(function (value) { return Math.round(value); });
|
|
281
|
+
return (react_1.default.createElement("div", __assign({ className: (0, utils_1.cn)("-space-x-px flex items-center rounded-md shadow-sm", className) }, props),
|
|
282
|
+
rgb.map(function (value, index) { return (react_1.default.createElement(input_1.Input, { className: (0, utils_1.cn)("h-8 rounded-r-none bg-secondary px-2 text-xs shadow-none", index && "rounded-l-none", className), key: index, readOnly: true, type: "text", value: value })); }),
|
|
283
|
+
react_1.default.createElement(PercentageInput, { value: alpha })));
|
|
284
|
+
}
|
|
285
|
+
if (mode === "css") {
|
|
286
|
+
var rgb = color
|
|
287
|
+
.rgb()
|
|
288
|
+
.array()
|
|
289
|
+
.map(function (value) { return Math.round(value); });
|
|
290
|
+
return (react_1.default.createElement("div", __assign({ className: (0, utils_1.cn)("w-full rounded-md shadow-sm", className) }, props),
|
|
291
|
+
react_1.default.createElement(input_1.Input, __assign({ className: "h-8 w-full bg-secondary px-2 text-xs shadow-none", readOnly: true, type: "text", value: "rgba(".concat(rgb.join(", "), ", ").concat(alpha, "%)") }, props))));
|
|
292
|
+
}
|
|
293
|
+
if (mode === "hsl") {
|
|
294
|
+
var hsl = color
|
|
295
|
+
.hsl()
|
|
296
|
+
.array()
|
|
297
|
+
.map(function (value) { return Math.round(value); });
|
|
298
|
+
return (react_1.default.createElement("div", __assign({ className: (0, utils_1.cn)("-space-x-px flex items-center rounded-md shadow-sm", className) }, props),
|
|
299
|
+
hsl.map(function (value, index) { return (react_1.default.createElement(input_1.Input, { className: (0, utils_1.cn)("h-8 rounded-r-none bg-secondary px-2 text-xs shadow-none", index && "rounded-l-none", className), key: index, readOnly: true, type: "text", value: value })); }),
|
|
300
|
+
react_1.default.createElement(PercentageInput, { value: alpha })));
|
|
301
|
+
}
|
|
302
|
+
return null;
|
|
303
|
+
};
|
|
304
|
+
exports.ColorPickerFormat = ColorPickerFormat;
|
|
@@ -12,89 +12,21 @@
|
|
|
12
12
|
* - Accessibility-compliant form structure
|
|
13
13
|
* - Real-time validation feedback
|
|
14
14
|
*/
|
|
15
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
-
}
|
|
21
|
-
Object.defineProperty(o, k2, desc);
|
|
22
|
-
}) : (function(o, m, k, k2) {
|
|
23
|
-
if (k2 === undefined) k2 = k;
|
|
24
|
-
o[k2] = m[k];
|
|
25
|
-
}));
|
|
26
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
-
}) : function(o, v) {
|
|
29
|
-
o["default"] = v;
|
|
30
|
-
});
|
|
31
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
-
var ownKeys = function(o) {
|
|
33
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
-
var ar = [];
|
|
35
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
-
return ar;
|
|
37
|
-
};
|
|
38
|
-
return ownKeys(o);
|
|
39
|
-
};
|
|
40
|
-
return function (mod) {
|
|
41
|
-
if (mod && mod.__esModule) return mod;
|
|
42
|
-
var result = {};
|
|
43
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
-
__setModuleDefault(result, mod);
|
|
45
|
-
return result;
|
|
46
|
-
};
|
|
47
|
-
})();
|
|
48
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
49
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
50
|
-
if (ar || !(i in from)) {
|
|
51
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
52
|
-
ar[i] = from[i];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
|
-
};
|
|
57
15
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
58
16
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
59
17
|
};
|
|
60
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
61
19
|
exports.PaymentModeForm = void 0;
|
|
62
|
-
var react_1 =
|
|
20
|
+
var react_1 = __importDefault(require("react"));
|
|
63
21
|
var next_intl_1 = require("next-intl");
|
|
64
22
|
var input_1 = require("../../components/ui/input");
|
|
65
23
|
var switch_1 = require("../../components/ui/switch");
|
|
66
24
|
var context_1 = require("./context");
|
|
67
|
-
var dropzone_enhanced_1 = __importDefault(require("../../components/ui/dropzone-enhanced"));
|
|
68
|
-
var images = [
|
|
69
|
-
"https://images.unsplash.com/photo-1624555130581-1d9cca783bc0?q=80&w=1171&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
|
70
|
-
"https://cdn.pixabay.com/photo/2016/11/21/06/53/beautiful-natural-image-1844362_640.jpg",
|
|
71
|
-
"https://thumbs.dreamstime.com/b/beautiful-rain-forest-ang-ka-nature-trail-doi-inthanon-national-park-thailand-36703721.jpg",
|
|
72
|
-
"https://images.ctfassets.net/hrltx12pl8hq/28ECAQiPJZ78hxatLTa7Ts/2f695d869736ae3b0de3e56ceaca3958/free-nature-images.jpg?fit=fill&w=1200&h=630",
|
|
73
|
-
"https://cdn.pixabay.com/photo/2024/05/26/10/15/bird-8788491_1280.jpg",
|
|
74
|
-
"https://letsenhance.io/static/73136da51c245e80edc6ccfe44888a99/396e9/MainBefore.jpg",
|
|
75
|
-
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS92eisuWOx3tEjeW14mT9ACVgXDwIRBGtnww&s",
|
|
76
|
-
"https://img.freepik.com/free-photo/woman-beach-with-her-baby-enjoying-sunset_52683-144131.jpg?size=626&ext=jpg",
|
|
77
|
-
];
|
|
78
25
|
var PaymentModeForm = function (_a) {
|
|
79
26
|
var isRTL = _a.isRTL, translationMap = _a.translationMap;
|
|
80
27
|
var t = (0, next_intl_1.useTranslations)("paymentModePage");
|
|
81
28
|
var ui = (0, next_intl_1.useTranslations)("ui");
|
|
82
29
|
var _b = (0, context_1.usePaymentModeStateContext)(), enabled = _b.enabled, errors = _b.errors, handleInputChange = _b.handleInputChange, isDefault = _b.isDefault, label = _b.label;
|
|
83
|
-
var _c = (0, react_1.useState)(__spreadArray([], images, true)), previews = _c[0], setPreviews = _c[1];
|
|
84
|
-
var filesRef = (0, react_1.useRef)([]);
|
|
85
|
-
(0, react_1.useEffect)(function () {
|
|
86
|
-
return function () {
|
|
87
|
-
previews.forEach(function (p) {
|
|
88
|
-
try {
|
|
89
|
-
URL.revokeObjectURL(p);
|
|
90
|
-
}
|
|
91
|
-
catch (_a) {
|
|
92
|
-
// ignore
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
-
}, []);
|
|
98
30
|
// Helper function to translate validation error keys
|
|
99
31
|
var getTranslatedError = function (key) {
|
|
100
32
|
if (!errors[key])
|
|
@@ -110,14 +42,6 @@ var PaymentModeForm = function (_a) {
|
|
|
110
42
|
react_1.default.createElement("div", { className: "space-y-2" },
|
|
111
43
|
react_1.default.createElement(input_1.Input, { id: "label", type: "text", label: (translationMap === null || translationMap === void 0 ? void 0 : translationMap.formLabelLabel) || "Payment Mode Name", value: label || "", onChange: function (e) { return handleInputChange("label", e.target.value); }, placeholder: "Enter payment mode name", info: "Enter a descriptive name for this payment method", error: getTranslatedError("label"), required: true })),
|
|
112
44
|
react_1.default.createElement("div", { className: "space-y-4" },
|
|
113
|
-
react_1.default.createElement("div", { className: "space-y-2" },
|
|
114
|
-
react_1.default.createElement(dropzone_enhanced_1.default, { id: "", label: (translationMap === null || translationMap === void 0 ? void 0 : translationMap.formLabelIcon) || "Upload Images", accept: { "image/*": [] }, maxFiles: 1, initial: previews, onChange: function (files) {
|
|
115
|
-
var previews = files.map(function (f) { return URL.createObjectURL(f); });
|
|
116
|
-
setPreviews(previews);
|
|
117
|
-
filesRef.current = files;
|
|
118
|
-
}, onRemoveUrl: function (url) {
|
|
119
|
-
setPreviews(function (p) { return p.filter(function (x) { return x !== url; }); });
|
|
120
|
-
}, info: (translationMap === null || translationMap === void 0 ? void 0 : translationMap.formInfoIcon) || t("formInfoIcon") })),
|
|
121
45
|
react_1.default.createElement(switch_1.Switch, { id: "enabled", label: (translationMap === null || translationMap === void 0 ? void 0 : translationMap.enabled) || "Enabled", checked: enabled || false, onCheckedChange: function (checked) { return handleInputChange("enabled", checked); }, info: enabled ? ui("switch.infoEnabled") : ui("switch.infoDisabled"), error: getTranslatedError("enabled") }),
|
|
122
46
|
react_1.default.createElement(switch_1.Switch, { id: "isDefault", label: (translationMap === null || translationMap === void 0 ? void 0 : translationMap.setAsDefault) || "Set as Default", checked: isDefault || false, onCheckedChange: function (checked) {
|
|
123
47
|
return handleInputChange("isDefault", checked);
|
package/index.d.ts
CHANGED
|
@@ -3,12 +3,14 @@ export * from "./components/theme-switcher";
|
|
|
3
3
|
export * from "./components/ui/badge";
|
|
4
4
|
export * from "./components/ui/button";
|
|
5
5
|
export * from "./components/ui/card";
|
|
6
|
+
export * from "./components/ui/carousel";
|
|
6
7
|
export * from "./components/ui/checkbox";
|
|
7
8
|
export * from "./components/ui/combobox";
|
|
8
9
|
export * from "./components/ui/command";
|
|
9
10
|
export * from "./components/ui/dialog";
|
|
10
11
|
export * from "./components/ui/drawer";
|
|
11
12
|
export * from "./components/ui/dropdown-menu";
|
|
13
|
+
export * from "./components/ui/enhanced-dropzone";
|
|
12
14
|
export * from "./components/ui/enhanced-table-footer-action";
|
|
13
15
|
export * from "./components/ui/enhanced-table-footer-page";
|
|
14
16
|
export * from "./components/ui/enhanced-table-footer-pagination";
|
|
@@ -21,6 +23,8 @@ export * from "./components/ui/label";
|
|
|
21
23
|
export * from "./components/ui/popover";
|
|
22
24
|
export * from "./components/ui/select";
|
|
23
25
|
export * from "./components/ui/separator";
|
|
26
|
+
export * from "./components/ui/shadcn-io/color-picker";
|
|
27
|
+
export * from "./components/ui/shadcn-io/dropzone";
|
|
24
28
|
export * from "./components/ui/sonner";
|
|
25
29
|
export * from "./components/ui/switch";
|
|
26
30
|
export * from "./components/ui/textarea";
|
package/index.js
CHANGED
|
@@ -19,12 +19,14 @@ __exportStar(require("./components/theme-switcher"), exports);
|
|
|
19
19
|
__exportStar(require("./components/ui/badge"), exports);
|
|
20
20
|
__exportStar(require("./components/ui/button"), exports);
|
|
21
21
|
__exportStar(require("./components/ui/card"), exports);
|
|
22
|
+
__exportStar(require("./components/ui/carousel"), exports);
|
|
22
23
|
__exportStar(require("./components/ui/checkbox"), exports);
|
|
23
24
|
__exportStar(require("./components/ui/combobox"), exports);
|
|
24
25
|
__exportStar(require("./components/ui/command"), exports);
|
|
25
26
|
__exportStar(require("./components/ui/dialog"), exports);
|
|
26
27
|
__exportStar(require("./components/ui/drawer"), exports);
|
|
27
28
|
__exportStar(require("./components/ui/dropdown-menu"), exports);
|
|
29
|
+
__exportStar(require("./components/ui/enhanced-dropzone"), exports);
|
|
28
30
|
__exportStar(require("./components/ui/enhanced-table-footer-action"), exports);
|
|
29
31
|
__exportStar(require("./components/ui/enhanced-table-footer-page"), exports);
|
|
30
32
|
__exportStar(require("./components/ui/enhanced-table-footer-pagination"), exports);
|
|
@@ -37,6 +39,8 @@ __exportStar(require("./components/ui/label"), exports);
|
|
|
37
39
|
__exportStar(require("./components/ui/popover"), exports);
|
|
38
40
|
__exportStar(require("./components/ui/select"), exports);
|
|
39
41
|
__exportStar(require("./components/ui/separator"), exports);
|
|
42
|
+
__exportStar(require("./components/ui/shadcn-io/color-picker"), exports);
|
|
43
|
+
__exportStar(require("./components/ui/shadcn-io/dropzone"), exports);
|
|
40
44
|
__exportStar(require("./components/ui/sonner"), exports);
|
|
41
45
|
__exportStar(require("./components/ui/switch"), exports);
|
|
42
46
|
__exportStar(require("./components/ui/textarea"), exports);
|
package/package.json
CHANGED