@g4rcez/components 1.0.1 → 1.1.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.
Files changed (45) hide show
  1. package/dist/index.css +21 -1
  2. package/dist/index.js +48 -48
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +6999 -6963
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/index.umd.js +45 -45
  7. package/dist/index.umd.js.map +1 -1
  8. package/dist/preset/src/styles/common.d.ts +1 -1
  9. package/dist/preset/src/styles/common.js +1 -1
  10. package/dist/preset/src/styles/dark.d.ts.map +1 -1
  11. package/dist/preset/src/styles/dark.js +3 -2
  12. package/dist/preset/src/styles/light.d.ts.map +1 -1
  13. package/dist/preset/src/styles/light.js +2 -1
  14. package/dist/preset/src/styles/theme.types.d.ts +1 -0
  15. package/dist/preset/src/styles/theme.types.d.ts.map +1 -1
  16. package/dist/src/components/floating/menu.d.ts +5 -2
  17. package/dist/src/components/floating/menu.d.ts.map +1 -1
  18. package/dist/src/components/floating/menu.js +2 -2
  19. package/dist/src/components/floating/modal.d.ts.map +1 -1
  20. package/dist/src/components/floating/modal.js +25 -18
  21. package/dist/src/components/form/autocomplete.d.ts.map +1 -1
  22. package/dist/src/components/form/autocomplete.js +3 -3
  23. package/dist/src/components/form/date-picker.d.ts.map +1 -1
  24. package/dist/src/components/form/date-picker.js +1 -1
  25. package/dist/src/components/form/input-field.js +1 -1
  26. package/dist/src/components/form/multi-select.d.ts.map +1 -1
  27. package/dist/src/components/form/multi-select.js +60 -62
  28. package/dist/src/components/form/select.d.ts.map +1 -1
  29. package/dist/src/components/form/select.js +1 -1
  30. package/dist/src/components/form/slider.js +1 -1
  31. package/dist/src/flow/flow.d.ts +7 -7
  32. package/dist/src/flow/flow.d.ts.map +1 -1
  33. package/dist/src/flow/flow.js +3 -3
  34. package/dist/src/hooks/use-form.d.ts +2 -1
  35. package/dist/src/hooks/use-form.d.ts.map +1 -1
  36. package/dist/src/hooks/use-form.js +46 -11
  37. package/dist/src/styles/common.d.ts +1 -1
  38. package/dist/src/styles/common.js +1 -1
  39. package/dist/src/styles/dark.d.ts.map +1 -1
  40. package/dist/src/styles/dark.js +3 -2
  41. package/dist/src/styles/light.d.ts.map +1 -1
  42. package/dist/src/styles/light.js +2 -1
  43. package/dist/src/styles/theme.types.d.ts +1 -0
  44. package/dist/src/styles/theme.types.d.ts.map +1 -1
  45. package/package.json +1 -1
@@ -26,7 +26,7 @@ const Handlers = (props) => {
26
26
  return (_jsxs(Fragment, { children: [_jsx(Handle, { id: `${props.id}-handle-top`, type: props.type, position: Position.Top, className: "h-1 w-10 !bg-primary" }), _jsx(Handle, { id: `${props.id}-handle-left`, type: props.type, position: Position.Left, className: "h-4 w-1 !bg-primary" }), _jsx(Handle, { id: `${props.id}-handle-right`, type: props.type, position: Position.Right, className: "h-4 w-1 !bg-primary" }), _jsx(Handle, { id: `${props.id}-handle-bottom`, type: props.type, position: Position.Bottom, className: "h-1 w-10 !bg-primary" })] }));
27
27
  };
28
28
  const Input = memo((node) => {
29
- return (_jsxs("div", { className: css("relative flex min-h-10 min-w-24 items-center justify-center rounded-lg bg-floating-background px-4 py-2 shadow-md", node.selected ? "border-4" : "border", "border-floating-border"), children: [_jsx(Handlers, { id: node.data.id, type: "source" }), node.data.Item ? _jsx(node.data.Item, { ...node }) : _jsx("h3", { className: "text-center", children: node.data.title })] }));
29
+ return (_jsxs("div", { className: css("relative flex border-2 min-h-10 min-w-24 items-center justify-center rounded-lg bg-floating-background px-4 py-2 shadow-md", node.selected ? "border-primary" : "", "border-floating-border"), children: [_jsx(Handlers, { id: node.data.id, type: "source" }), node.data.Item ? _jsx(node.data.Item, { ...node }) : _jsx("h3", { className: "text-center", children: node.data.title })] }));
30
30
  });
31
31
  const Connection = memo((node) => {
32
32
  const { deleteElements } = useReactFlow();
@@ -61,7 +61,7 @@ const AddNodeOnEdgeDrop = (props) => {
61
61
  id,
62
62
  position,
63
63
  type: "output",
64
- data: { ...type, label: type.title },
64
+ data: { ...type, id, label: type.title },
65
65
  };
66
66
  setNodes((prev) => [...prev, newNode]);
67
67
  }, [screenToFlowPosition, setNodes, type]);
@@ -70,6 +70,6 @@ const AddNodeOnEdgeDrop = (props) => {
70
70
  event.dataTransfer.setData("text/plain", JSON.stringify(nodeType));
71
71
  event.dataTransfer.effectAllowed = "move";
72
72
  };
73
- return (_jsxs("div", { className: "relative p-6 w-full bg-card-background", style: { height: 1000 }, ref: reactFlowWrapper, children: [_jsxs(ReactFlow, { fitView: true, ref: ref, edges: edges, nodes: nodes, onDrop: onDrop, nodeOrigin: [0, 0], onConnect: onConnect, onDragOver: onDragOver, className: "bg-background", nodeTypes: nodeTypes, onEdgesChange: onEdgesChange, onNodesChange: onNodesChange, attributionPosition: "top-right", fitViewOptions: { padding: 2 }, onDragStart: onDragStart, colorMode: props.theme ?? "light", children: [_jsx(MiniMap, {}), _jsx(Background, { bgColor: "hsla(var(--floating-background))" }), _jsx(Controls, {})] }), _jsx(Sidebar, { items: props.parents })] }));
73
+ return (_jsxs("div", { className: "relative w-full bg-card-background", style: { height: 1000 }, ref: reactFlowWrapper, children: [_jsxs(ReactFlow, { fitView: true, ref: ref, edges: edges, nodes: nodes, onDrop: onDrop, nodeOrigin: [0, 0], onConnect: onConnect, onDragOver: onDragOver, className: "bg-background", nodeTypes: nodeTypes, onEdgesChange: onEdgesChange, onNodesChange: onNodesChange, attributionPosition: "top-right", fitViewOptions: { padding: 2 }, onDragStart: onDragStart, colorMode: props.theme ?? "dark", children: [_jsx(MiniMap, {}), _jsx(Background, { bgColor: "hsla(var(--floating-background))" }), _jsx(Controls, {})] }), _jsx(Sidebar, { items: props.parents })] }));
74
74
  };
75
75
  export const Flow = (props) => (_jsx(ReactFlowProvider, { fitView: true, initialMaxZoom: 1, children: _jsx(DnDProvider, { children: _jsx(AddNodeOnEdgeDrop, { ...props }) }) }));
@@ -1,7 +1,7 @@
1
1
  import React, { type ComponentProps } from "react";
2
2
  import { type AllPaths } from "sidekicker";
3
3
  import { z } from "zod";
4
- import { AutocompleteProps, CheckboxProps, DatePickerProps, InputProps, SelectProps, SwitchProps, TextareaProps } from "../components";
4
+ import { AutocompleteProps, CheckboxProps, DatePickerProps, InputProps, MultiSelectProps, SelectProps, SwitchProps, TextareaProps } from "../components";
5
5
  export declare const formToJson: (form: HTMLFormElement) => any;
6
6
  export declare const getSchemaShape: <T extends z.ZodObject<any>>(name: string, schema: T) => T;
7
7
  type CustomOnInvalid = (args: {
@@ -340,6 +340,7 @@ export declare const useForm: <T extends z.ZodObject<any>>(schema: T, formName:
340
340
  };
341
341
  datepicker: <Props extends DatePickerProps>(name: AllPaths<z.TypeOf<T>>, props?: Props) => Props;
342
342
  name: string;
343
+ multiselect: <Props extends MultiSelectProps>(name: AllPaths<z.TypeOf<T>>, props?: Props) => Props;
343
344
  disabled: boolean;
344
345
  };
345
346
  export declare const getJsonForm: <T extends z.ZodObject<any>>(form?: HTMLFormElement | null) => z.infer<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-form.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
+ import { isValid } from "date-fns";
1
2
  import { parse } from "qs";
2
3
  import { useCallback, useEffect, useRef, useState } from "react";
3
4
  import { getPath, Is } from "sidekicker";
4
5
  import { LocalStorage } from "storage-manager-js";
5
6
  import { ZodNumber } from "zod";
6
- import { formReset } from "../components";
7
+ import { formReset, } from "../components";
7
8
  import { path } from "../lib/fns";
8
9
  const isValidJSON = (value) => {
9
10
  if (typeof value !== "string") {
@@ -171,7 +172,7 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
171
172
  const message = validation.success ? undefined : (validation.error.issues[0]?.message ?? "");
172
173
  setErrors((prev) => setPath(prev ?? {}, path, message));
173
174
  }
174
- }, []);
175
+ }, [schema]);
175
176
  const onInvalid = useCallback((exec) => (event) => {
176
177
  const form = event.currentTarget;
177
178
  const validationErrors = Object.values(ref.current).reduce((acc, input) => {
@@ -193,12 +194,19 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
193
194
  }, []);
194
195
  const datepicker = (name, props = noop) => {
195
196
  const validator = getSchemaShape(name, schema);
196
- const onChange = (e) => {
197
- if (!e)
197
+ const onChange = (date) => {
198
+ if (!isValid(date))
198
199
  return;
199
- const value = e instanceof Date ? e.toISOString() : e.target.value;
200
- setState((prev) => setPath(prev, name, value));
201
- props?.onChange?.(e);
200
+ setState((prev) => setPath(prev, name, date.toISOString()));
201
+ setErrors((prev) => setPath(prev, name, undefined));
202
+ const input = ref.current[name].element;
203
+ if (input) {
204
+ const origin = input.getAttribute("data-origin");
205
+ const inputShadow = document.querySelector(`input[data-target="${origin}"]`);
206
+ if (inputShadow)
207
+ inputShadow.setCustomValidity("");
208
+ }
209
+ props?.onChange?.(date);
202
210
  };
203
211
  return {
204
212
  ...props,
@@ -209,7 +217,7 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
209
217
  form: formName,
210
218
  date: Is.string(state[name]) ? new Date(state[name]) : state[name],
211
219
  required: props.required ?? !validator.isOptional(),
212
- error: errors?.[name],
220
+ error: getPath(errors, name),
213
221
  ref: (e) => {
214
222
  if (e === null)
215
223
  return;
@@ -233,7 +241,7 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
233
241
  loading: opts.loading,
234
242
  onInvalid: onInvalidField,
235
243
  error: getPath(errors, name, undefined),
236
- value: getPath(state, name, undefined) || "",
244
+ value: getPath(state, name, undefined) ?? "",
237
245
  required: props.required ?? !validator.isOptional(),
238
246
  ref: (e) => e !== null
239
247
  ? (ref.current[name] = {
@@ -296,6 +304,30 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
296
304
  }),
297
305
  };
298
306
  };
307
+ const multiselect = (name, props = noop) => {
308
+ const validator = getSchemaShape(name, schema);
309
+ const onChangeOptions = (options) => {
310
+ setState((prev) => setPath(prev, name, options));
311
+ };
312
+ return {
313
+ ...props,
314
+ name,
315
+ id: name,
316
+ onChangeOptions,
317
+ form: formName,
318
+ loading: opts.loading,
319
+ onInvalid: onInvalidField,
320
+ error: getPath(errors, name, undefined),
321
+ required: props.required ?? !validator.isOptional(),
322
+ value: getPath(state, name, undefined) || props?.value || [],
323
+ ref: (e) => e === null
324
+ ? undefined
325
+ : void (ref.current[name] = {
326
+ element: e,
327
+ schema: validator,
328
+ }),
329
+ };
330
+ };
299
331
  const input = (name, props = noop) => {
300
332
  const validator = getSchemaShape(name, schema);
301
333
  const isNumber = validator._def.typeName === "ZodNumber";
@@ -340,7 +372,8 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
340
372
  const validation = input.schema.safeParse(value);
341
373
  current.setAttribute("value", value);
342
374
  if (validation.success) {
343
- element.setCustomValidity("");
375
+ if (element.setCustomValidity)
376
+ element.setCustomValidity("");
344
377
  setErrors((prev) => {
345
378
  if (Is.null(prev))
346
379
  return null;
@@ -353,7 +386,8 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
353
386
  }
354
387
  if (element.required) {
355
388
  const errorMessage = validation.error.issues[0]?.message || "";
356
- element.setCustomValidity(errorMessage);
389
+ if (element.setCustomValidity)
390
+ element.setCustomValidity(errorMessage);
357
391
  setErrors((prev) => {
358
392
  if (Is.null(prev))
359
393
  return null;
@@ -454,6 +488,7 @@ export const useForm = (schema, formName, opts = defaultOptions) => {
454
488
  controller,
455
489
  datepicker,
456
490
  name: formName,
491
+ multiselect,
457
492
  disabled: errors !== null,
458
493
  };
459
494
  };
@@ -1,6 +1,6 @@
1
1
  import { ZIndex } from "./theme.types";
2
2
  export declare const rounded: {
3
- readonly button: "0.4rem";
3
+ readonly button: "0.55rem";
4
4
  readonly pill: "2rem";
5
5
  readonly card: "0.75rem";
6
6
  readonly full: "9999px";
@@ -1,5 +1,5 @@
1
1
  export const rounded = {
2
- button: "0.4rem",
2
+ button: "0.55rem",
3
3
  pill: "2rem",
4
4
  card: "0.75rem",
5
5
  full: "9999px",
@@ -1 +1 @@
1
- {"version":3,"file":"dark.d.ts","sourceRoot":"","sources":["../../../src/styles/dark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,UAAU,EAAE,YA2MxB,CAAC"}
1
+ {"version":3,"file":"dark.d.ts","sourceRoot":"","sources":["../../../src/styles/dark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,UAAU,EAAE,YA4MxB,CAAC"}
@@ -5,7 +5,7 @@ export const DARK_THEME = {
5
5
  rounded,
6
6
  spacing,
7
7
  shadow: {
8
- floating: "rgba(15, 15, 15, 0.1) 0px 0px 0px 1px, rgba(15, 15, 15, 0.1) 0px 3px 6px, rgba(15, 15, 15, 0.2) 0px 5px 12px",
8
+ floating: "0 1px 1px 0 rgb(0 0 0 / 0.02)",
9
9
  },
10
10
  colors: {
11
11
  foreground: "hsla(210, 50%, 98%)",
@@ -66,6 +66,7 @@ export const DARK_THEME = {
66
66
  "mask-error": "hsla(0, 94%, 81%)",
67
67
  "switch-bg": "hsla(0, 0%, 9%)",
68
68
  switch: "hsla(0, 0%, 100%)",
69
+ slider: "hsla(0, 0%, 100%)",
69
70
  },
70
71
  card: {
71
72
  muted: "hsla(0, 0%, 22%)",
@@ -168,7 +169,7 @@ export const DARK_THEME = {
168
169
  warn: {
169
170
  bg: "hsla(28,33%,9%)",
170
171
  border: "hsla(29,65%,12%)",
171
- text: "hsla(27,100%,78%)"
172
+ text: "hsla(27,100%,78%)",
172
173
  },
173
174
  info: {
174
175
  text: "hsla(253,100%,83%)",
@@ -1 +1 @@
1
- {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../../src/styles/light.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,YA2MzB,CAAC"}
1
+ {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../../src/styles/light.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,YA4MzB,CAAC"}
@@ -4,7 +4,7 @@ export const LIGHT_THEME = {
4
4
  spacing,
5
5
  name: "light",
6
6
  shadow: {
7
- floating: "rgba(50, 50, 50, 0.1) 0px 0px 0px 1px, rgba(50, 50, 50, 0.1) 0px 3px 6px, rgba(50, 50, 50, 0.1) 0px 2px 3px",
7
+ floating: "0 1px 1px 0 rgb(0 0 0 / 0.02)",
8
8
  },
9
9
  zIndex,
10
10
  colors: {
@@ -66,6 +66,7 @@ export const LIGHT_THEME = {
66
66
  "mask-error": "hsla(0, 94%, 81%)",
67
67
  "switch-bg": "hsla(0, 0%, 45%)",
68
68
  switch: "hsla(0, 0%, 100%)",
69
+ slider: "hsla(0, 0%, 100%)",
69
70
  },
70
71
  card: {
71
72
  muted: "hsla(210, 25%, 94%)",
@@ -84,6 +84,7 @@ export type DesignTokens = {
84
84
  "mask-error": string;
85
85
  "switch-bg": string;
86
86
  switch: string;
87
+ slider: string;
87
88
  };
88
89
  };
89
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"theme.types.d.ts","sourceRoot":"","sources":["../../../src/styles/theme.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.types.d.ts","sourceRoot":"","sources":["../../../src/styles/theme.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g4rcez/components",
3
3
  "description": "Customizable react components.",
4
- "version": "1.0.1",
4
+ "version": "1.1.0",
5
5
  "sideEffects": false,
6
6
  "private": false,
7
7
  "packageManager": "pnpm@10.7.0",