@g4rcez/components 0.2.2 → 0.2.3
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/dist/index.css +1 -1
- package/dist/index.js +44 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10725 -10014
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +44 -44
- package/dist/index.umd.js.map +1 -1
- package/dist/src/components/core/render-on-view.d.ts.map +1 -1
- package/dist/src/components/core/render-on-view.js +1 -0
- package/dist/src/components/display/card.d.ts +9 -1
- package/dist/src/components/display/card.d.ts.map +1 -1
- package/dist/src/components/display/card.js +7 -1
- package/dist/src/components/floating/tooltip.d.ts +1 -1
- package/dist/src/components/floating/tooltip.d.ts.map +1 -1
- package/dist/src/components/floating/tooltip.js +5 -4
- package/dist/src/components/form/date-picker.d.ts.map +1 -1
- package/dist/src/components/form/date-picker.js +1 -0
- package/dist/src/components/form/slider.d.ts +7 -0
- package/dist/src/components/form/slider.d.ts.map +1 -0
- package/dist/src/components/form/slider.js +35 -0
- package/dist/src/components/form/transfer-list.d.ts.map +1 -1
- package/dist/src/components/form/transfer-list.js +1 -0
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/table/index.d.ts.map +1 -1
- package/dist/src/components/table/index.js +8 -5
- package/dist/src/components/table/thead.d.ts.map +1 -1
- package/dist/src/components/table/thead.js +0 -1
- package/dist/src/config/context.d.ts.map +1 -1
- package/dist/src/config/context.js +1 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-on-view.d.ts","sourceRoot":"","sources":["../../../../src/components/core/render-on-view.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-on-view.d.ts","sourceRoot":"","sources":["../../../../src/components/core/render-on-view.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAEpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,IAAI,gBAAgB,CACjF;IACI,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B,EACD,CAAC,CACJ,CAAC;AAYF,eAAO,MAAM,YAAY,GAAI,wBAAwB,iBAAiB,CAAC,iBAAiB,CAAC,4CAsBxF,CAAC"}
|
|
@@ -7,5 +7,13 @@ export type CardProps = PolymorphicProps<Override<React.ComponentProps<"div">, {
|
|
|
7
7
|
container?: string;
|
|
8
8
|
header?: React.ReactElement | null;
|
|
9
9
|
}>, "div">;
|
|
10
|
-
export declare const Card:
|
|
10
|
+
export declare const Card: {
|
|
11
|
+
({ children, title, titleClassName, as, container, header, className, ...props }: PropsWithChildren<CardProps>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
Title({ as, titleTag, navTag, children, ...props }: PropsWithChildren<CardHeaderTitleProps>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
export type CardHeaderTitleProps<T extends React.ElementType = "div"> = PolymorphicProps<{
|
|
15
|
+
navTag?: React.ElementType;
|
|
16
|
+
titleTag?: React.ElementType;
|
|
17
|
+
title: React.ReactElement | string;
|
|
18
|
+
}, T>;
|
|
11
19
|
//# sourceMappingURL=card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/display/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,SAAS,GAAG,gBAAgB,CACpC,QAAQ,CACJ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAC3B;IACI,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CACtC,CACJ,EACD,KAAK,CACR,CAAC;AAEF,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/display/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,SAAS,GAAG,gBAAgB,CACpC,QAAQ,CACJ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAC3B;IACI,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CACtC,CACJ,EACD,KAAK,CACR,CAAC;AAEF,eAAO,MAAM,IAAI;sFASd,iBAAiB,CAAC,SAAS,CAAC;wDAyB6B,iBAAiB,CAAC,oBAAoB,CAAC;CAXlG,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,IAAI,gBAAgB,CACpF;IACI,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;CACtC,EACD,CAAC,CACJ,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { css } from "../../lib/dom";
|
|
3
3
|
import { Polymorph } from "../core/polymorph";
|
|
4
|
-
export const Card = ({ children, title, titleClassName = "", as = "div", container = "", header = null, className = "", ...props }) => (_jsxs(Polymorph, { ...props, as: as, "data-componen": "card", className: css("flex flex-col gap-4 rounded-card border border-card-border bg-card-background py-4 pb-8 shadow", container), children: [title ? (_jsx("header", { className: css("mb-2 w-full border-b border-card-border
|
|
4
|
+
export const Card = ({ children, title, titleClassName = "", as = "div", container = "", header = null, className = "", ...props }) => (_jsxs(Polymorph, { ...props, as: as, "data-componen": "card", className: css("flex flex-col gap-4 rounded-card border border-card-border bg-card-background py-4 pb-8 shadow", container), children: [title ? (_jsx("header", { className: css("mb-2 w-full border-b border-card-border px-4 pb-4 text-xl font-medium lg:px-8", titleClassName), children: title })) : (header), _jsx("div", { className: css("min-w-full px-4 lg:px-8", className), children: children })] }));
|
|
5
|
+
Card.Title = ({ as, titleTag, navTag, children, ...props }) => {
|
|
6
|
+
const Component = (as || "div");
|
|
7
|
+
const Title = (titleTag || "h2");
|
|
8
|
+
const Nav = (navTag || "nav");
|
|
9
|
+
return (_jsxs(Component, { ...props, className: css("flex w-full flex-col flex-wrap items-start justify-between gap-base sm:flex-row sm:items-center", props.className), children: [_jsx(Title, { className: "font-semibold", children: props.title }), children ? (_jsx(Nav, { className: "gap-kilo flex flex-col items-start justify-start sm:flex-row sm:items-center sm:justify-end", children: children })) : null] }));
|
|
10
|
+
};
|
|
@@ -13,5 +13,5 @@ export type TooltipProps<T extends React.ElementType = "span"> = PolymorphicProp
|
|
|
13
13
|
followCursor?: boolean;
|
|
14
14
|
onChange?: (b: boolean) => void;
|
|
15
15
|
}, T>;
|
|
16
|
-
export declare const Tooltip: <T extends ComponentLike = "span">(
|
|
16
|
+
export declare const Tooltip: <T extends ComponentLike = "span">(_: TooltipProps<T>) => React.ReactElement;
|
|
17
17
|
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/floating/tooltip.tsx"],"names":[],"mappings":"AACA,OAAO,EAOH,KAAK,SAAS,EAWjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/floating/tooltip.tsx"],"names":[],"mappings":"AACA,OAAO,EAOH,KAAK,SAAS,EAWjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAAa,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,MAAM,IAAI,gBAAgB,CAC7E;IACI,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,EACD,CAAC,CACJ,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,SAAS,aAAa,GAAG,MAAM,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAyF7E,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { arrow, autoUpdate, flip, FloatingArrow, FloatingPortal, offset, safePolygon, shift, useClick, useClientPoint, useDismiss, useFloating, useFocus, useHover, useInteractions, useRole, } from "@floating-ui/react";
|
|
4
|
-
import { Fragment, useEffect, useRef, useState } from "react";
|
|
4
|
+
import { forwardRef, Fragment, useEffect, useRef, useState } from "react";
|
|
5
5
|
import { Polymorph } from "../../components/core/polymorph";
|
|
6
6
|
import { FLOATING_DELAY } from "../../constants";
|
|
7
|
+
import { mergeRefs } from "../../lib/dom";
|
|
7
8
|
import { noop } from "../../lib/fns";
|
|
8
|
-
export const Tooltip = ({ as, title, children, placement, open, focus = true, hover = true, enabled = true, popover = true, followCursor = false, onChange = noop, ...props })
|
|
9
|
+
export const Tooltip = forwardRef(function Tooltip({ as, title, children, placement, open, focus = true, hover = true, enabled = true, popover = true, followCursor = false, onChange = noop, ...props }, outerRef) {
|
|
9
10
|
const [innerOpen, setInnerOpen] = useState(open ?? false);
|
|
10
11
|
const arrowRef = useRef(null);
|
|
11
12
|
const Component = as || "span";
|
|
@@ -54,5 +55,5 @@ export const Tooltip = ({ as, title, children, placement, open, focus = true, ho
|
|
|
54
55
|
return setInnerOpen(false);
|
|
55
56
|
return setInnerOpen(open);
|
|
56
57
|
}, [open]);
|
|
57
|
-
return (_jsxs(Fragment, { children: [_jsx(Component, { ref: refs.setReference,
|
|
58
|
-
};
|
|
58
|
+
return (_jsxs(Fragment, { children: [_jsx(Component, { ...getReferenceProps(props), ref: mergeRefs(refs.setReference, outerRef), children: title }), innerOpen && (_jsx(FloatingPortal, { preserveTabOrder: true, children: _jsxs(Polymorph, { ...getFloatingProps(), ref: refs.setFloating, style: floatingStyles, className: "isolate z-tooltip rounded-lg border border-tooltip-border bg-tooltip-background p-3 text-tooltip-foreground shadow-lg", children: [_jsx(FloatingArrow, { ref: arrowRef, context: context, strokeWidth: 0.1, className: "fill-tooltip-background stroke-tooltip-border" }), children] }) }))] }));
|
|
59
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/form/date-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/form/date-picker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAY,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;AAmCpF,eAAO,MAAM,UAAU,uGA4GtB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SliderProps as RadixSliderProps } from "@radix-ui/react-slider";
|
|
2
|
+
type SliderProps = RadixSliderProps & {
|
|
3
|
+
tooltip?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare const Slider: (props: SliderProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=slider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../src/components/form/slider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO9E,KAAK,WAAW,GAAG,gBAAgB,GAAG;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAmCF,eAAO,MAAM,MAAM,GAAI,OAAO,WAAW,4CAoBxC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as RadixSlider from "@radix-ui/react-slider";
|
|
4
|
+
import { Is } from "sidekicker";
|
|
5
|
+
import { css } from "../../lib/dom";
|
|
6
|
+
import { Tooltip } from "../floating/tooltip";
|
|
7
|
+
import { useEffect, useRef, useState } from "react";
|
|
8
|
+
import { uuid } from "../../lib/fns";
|
|
9
|
+
const Thumb = (props) => {
|
|
10
|
+
const [float, setFloat] = useState(null);
|
|
11
|
+
const ref = useRef(null);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const html = ref.current;
|
|
14
|
+
if (html === null)
|
|
15
|
+
return;
|
|
16
|
+
const initialValue = Number(html.getAttribute("aria-valuenow"));
|
|
17
|
+
if (Is.number(initialValue)) {
|
|
18
|
+
setFloat(initialValue);
|
|
19
|
+
}
|
|
20
|
+
const observer = new MutationObserver((changes) => {
|
|
21
|
+
const span = changes[0].target;
|
|
22
|
+
const value = Number(span.getAttribute("aria-valuenow"));
|
|
23
|
+
setFloat(Is.number(value) ? value : null);
|
|
24
|
+
});
|
|
25
|
+
observer.observe(html, { attributeFilter: ["aria-valuenow"] });
|
|
26
|
+
return () => observer.disconnect();
|
|
27
|
+
}, []);
|
|
28
|
+
return (_jsx(Tooltip, { title: "", ref: ref, as: RadixSlider.Thumb, enabled: props.tooltip, className: "block size-5 cursor-grab rounded-full border-2 border-card-border bg-card-background shadow active:cursor-grabbing", children: float }));
|
|
29
|
+
};
|
|
30
|
+
export const Slider = (props) => {
|
|
31
|
+
const { tooltip, className, defaultValue, value, ...restProps } = props;
|
|
32
|
+
const id = useRef(uuid());
|
|
33
|
+
const array = defaultValue || value || [];
|
|
34
|
+
return (_jsxs(RadixSlider.Root, { ...restProps, defaultValue: defaultValue, value: value, className: css("relative flex h-5 w-full touch-none select-none items-center", className), children: [_jsx(RadixSlider.Track, { className: "relative h-2 grow rounded-full bg-background", children: _jsx(RadixSlider.Range, { className: "absolute h-full rounded-full bg-primary" }) }), array.map((_, i) => (_jsx(Thumb, { tooltip: tooltip ?? false }, `${id.current}-${i}`)))] }));
|
|
35
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-list.d.ts","sourceRoot":"","sources":["../../../../src/components/form/transfer-list.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transfer-list.d.ts","sourceRoot":"","sources":["../../../../src/components/form/transfer-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK7C,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IAC/B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,CAAC;IACnB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;CAC5B,CAAC;AAWF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,4CAgC1F,CAAC"}
|
|
@@ -26,6 +26,7 @@ export * from "./form/input-field";
|
|
|
26
26
|
export * from "./form/multi-select";
|
|
27
27
|
export * from "./form/radiobox";
|
|
28
28
|
export * from "./form/select";
|
|
29
|
+
export * from "./form/slider";
|
|
29
30
|
export * from "./form/switch";
|
|
30
31
|
export * from "./form/task-list";
|
|
31
32
|
export * from "./form/textarea";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7H,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7H,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -26,6 +26,7 @@ export * from "./form/input-field";
|
|
|
26
26
|
export * from "./form/multi-select";
|
|
27
27
|
export * from "./form/radiobox";
|
|
28
28
|
export * from "./form/select";
|
|
29
|
+
export * from "./form/slider";
|
|
29
30
|
export * from "./form/switch";
|
|
30
31
|
export * from "./form/task-list";
|
|
31
32
|
export * from "./form/textarea";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAA2B,cAAc,EAAoD,MAAM,OAAO,CAAC;AAOzH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAoB,GAAG,EAA+B,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAStG,KAAK,eAAe,CAAC,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC,GAClE,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAyMN,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC,GAAG;IAC3G,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CACH,mBAAmB,CAAC,CAAC,CAAC,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;CAC3B,CACJ,CAAC;AASN,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,4CA8GxD,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { createElement as _createElement } from "react";
|
|
2
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
4
|
import { AnimatePresence } from "motion/react";
|
|
@@ -20,7 +21,7 @@ const useTable = () => useContext(TableContext);
|
|
|
20
21
|
const TableBody = React.forwardRef(({ context, className = "", ...props }, ref) => {
|
|
21
22
|
return (_jsx("tbody", { ...props, role: "rowgroup", className: `divide-y divide-table-border ${className}`, ref: ref, children: _jsx(AnimatePresence, { children: props.children }) }));
|
|
22
23
|
});
|
|
23
|
-
const VirtualTable = React.forwardRef(({ context, className = "", ...props }, ref) => (_jsx("table", { ...props, ref: ref, role: "table", className: `table min-w-full table-fixed border-collapse
|
|
24
|
+
const VirtualTable = React.forwardRef(({ context, className = "", ...props }, ref) => (_jsx("table", { ...props, ref: ref, role: "table", className: `table min-w-full table-fixed border-collapse divide-y divide-table-border border-0 text-left ${className ?? ""}` })));
|
|
24
25
|
const Thead = React.forwardRef(({ context, ...props }, ref) => {
|
|
25
26
|
const ctx = useTable();
|
|
26
27
|
const style = {
|
|
@@ -30,7 +31,7 @@ const Thead = React.forwardRef(({ context, ...props }, ref) => {
|
|
|
30
31
|
return _jsx("thead", { ...props, style: style, role: "rowgroup", className: "shadow-xs group:sticky top-0 bg-transparent", ref: ref });
|
|
31
32
|
});
|
|
32
33
|
const TRow = React.forwardRef(({ context, item, ...props }, ref) => {
|
|
33
|
-
return _jsx("tr", { ...props, role: "row", ref: ref, className: `table-row
|
|
34
|
+
return _jsx("tr", { ...props, role: "row", ref: ref, className: `group table-row ${props?.className ?? ""}` });
|
|
34
35
|
});
|
|
35
36
|
const TFoot = React.forwardRef((props, ref) => {
|
|
36
37
|
if (props.context.loadingMore) {
|
|
@@ -47,7 +48,8 @@ const components = {
|
|
|
47
48
|
};
|
|
48
49
|
const loadingArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
49
50
|
const SkeletonLoading = _jsx("div", { className: "h-2 w-10/12 animate-pulse rounded bg-table-border" });
|
|
50
|
-
const EmptyContent = (
|
|
51
|
+
const EmptyContent = (props) => (_jsx("div", { className: "flex h-48 w-full items-center justify-center px-2", children: props.loading ? SkeletonLoading : _jsx(Empty, {}) }));
|
|
52
|
+
const EmptyCell = () => _jsx(Fragment, {});
|
|
51
53
|
const ItemContent = (index, row, context) => {
|
|
52
54
|
const cols = context.cols;
|
|
53
55
|
const loading = context.loading;
|
|
@@ -60,7 +62,7 @@ const ItemContent = (index, row, context) => {
|
|
|
60
62
|
}) }));
|
|
61
63
|
};
|
|
62
64
|
const Frag = () => _jsx(Fragment, {});
|
|
63
|
-
const emptyRows = [
|
|
65
|
+
const emptyRows = [];
|
|
64
66
|
const InnerTable = ({ cols, filters, setCols, sorters, setFilters, setSorters, onScrollEnd, border = false, pagination = null, useControl = false, ...props }) => {
|
|
65
67
|
const ref = useRef(null);
|
|
66
68
|
const [showLoadingFooter, setShowLoadingFooter] = useState(false);
|
|
@@ -95,7 +97,8 @@ const InnerTable = ({ cols, filters, setCols, sorters, setFilters, setSorters, o
|
|
|
95
97
|
observer.observe(div);
|
|
96
98
|
return () => observer.disconnect();
|
|
97
99
|
}, [loadingMoreRef, onScrollEndRef]);
|
|
98
|
-
|
|
100
|
+
const empty = rows.length === 0;
|
|
101
|
+
return (_jsxs("div", { className: "min-w-full", children: [_jsxs("div", { className: `group rounded-lg ${border ? "border border-table-border" : ""}`, children: [_jsx(TableVirtuoso, { useWindowScroll: true, followOutput: "smooth", components: components, totalCount: rows.length, data: empty ? emptyRows : rows, itemContent: empty ? EmptyCell : ItemContent, fixedFooterContent: showLoadingFooter ? Frag : null, context: { loading: props.loading, loadingMore: props.loadingMore, cols: cols }, fixedHeaderContent: () => (_jsx(TableHeader, { headers: cols, filters: filters, setCols: setCols, sorters: sorters, setFilters: setFilters, setSorters: setSorters, loading: !!props.loading, inlineFilter: props.inlineFilter, inlineSorter: props.inlineSorter })) }), empty ? _jsx(EmptyContent, { loading: props.loading }) : null, _jsx("div", { "aria-hidden": "true", ref: ref, className: "h-0.5 w-full" })] }), pagination !== null ? _jsx(Pagination, { ...pagination }) : null] }));
|
|
99
102
|
};
|
|
100
103
|
const dispatcherFun = (prev, setter) => typeof setter === "function" ? setter(prev) : setter;
|
|
101
104
|
const compareAndExec = (prev, state, exec) => (prev === state ? undefined : exec?.(state));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["../../../../src/components/table/thead.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,GAAG,EAAY,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAIlF,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"thead.d.ts","sourceRoot":"","sources":["../../../../src/components/table/thead.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,GAAG,EAAY,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAIlF,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;AAmKpI,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,4CAmCvE,CAAC"}
|
|
@@ -42,7 +42,6 @@ const HeaderChild = (props) => {
|
|
|
42
42
|
const ownSorter = props.sorters.find((x) => props.header.id === x.value);
|
|
43
43
|
const ariaSort = !ownSorter?.type ? "none" : ownSorter.type === Order.Asc ? "ascending" : "descending";
|
|
44
44
|
const label = getLabel(props.header);
|
|
45
|
-
const border = props.index === 0 || props.isLast;
|
|
46
45
|
return (_jsxs(Reorder.Item, { ...props.header.thProps, as: "th", ref: dragRef, initial: false, dragSnapToOrigin: true, dragDirectionLock: true, role: "columnheader", "aria-sort": ariaSort, value: props.header, "aria-busy": props.loading, "data-colid": props.header.id, whileDrag: { cursor: "grabbing" }, className: `relative hidden min-w-0 cursor-grab border-0 font-medium first:table-cell md:table-cell ${props.header.thProps?.className ?? ""}`, children: [_jsx("span", { className: `flex h-full items-center justify-between bg-table-header px-2 py-4 ${props.isLast ? "rounded-tr-lg" : ""} ${props.index === 0 ? "rounded-tl-lg" : ""}`, children: _jsxs("span", { className: "flex items-center gap-1", children: [props.inlineFilter && defaultAllowFilter ? (_jsx(Dropdown, { arrow: true, trigger: _jsxs("span", { children: [_jsxs("span", { id: `${props.header.id}-filter-dropdown-button`, className: "sr-only", children: [translation.tableFilterDropdownTitleUnique, " ", label] }), _jsx(FilterIcon, { "aria-labelledby": `${props.header.id}-filter-dropdown-button`, size: 14 })] }), title: _jsxs("span", { className: "text-lg", children: [translation.tableFilterDropdownTitleUnique, " ", _jsx("span", { className: "font-medium", children: label })] }), children: _jsxs("ul", { className: "font-medium", children: [ownFilters.length === 0 ? null : (_jsx(Fragment, { children: ownFilters.map((filter) => (_jsx("li", { className: "my-1", children: _jsx(ColumnHeaderFilter, { onDelete: onDelete, filter: filter, set: props.setFilters }) }, `thead-filter-${filter.id}`))) })), _jsx("li", { children: _jsxs("button", { type: "button", className: "flex items-center gap-1 text-primary", onClick: () => props.setFilters((prev) => prev.concat(createFilterFromCol(props.header, operators.options, operators.operations))), children: [_jsx(PlusIcon, { size: 14 }), " ", translation.tableFilterNewFilter] }) })] }) })) : null, _jsx("span", { className: "pointer-events-auto text-balance text-base", children: props.header.thead }), props.inlineSorter && defaultAllowSort ? (_jsx(SorterHead, { col: props.header, setSorters: props.setSorters, sorters: props.sorters })) : null] }) }), props.isLast ? null : (_jsx(motion.button, { drag: "x", draggable: true, dragListener: true, dragMomentum: true, type: "button", animate: false, dragElastic: 0, dragPropagation: true, initial: false, dragSnapToOrigin: true, dragDirectionLock: true, "data-type": "resizer", title: props.header.id, dragConstraints: dragConstraints, className: "absolute -right-[0.5px] top-0 z-calendar block h-full w-[1px] cursor-col-resize bg-table-border hover:w-1.5 hover:bg-primary active:w-1.5 active:bg-primary", onClick: (e) => void e.currentTarget.focus(), onKeyDown: (e) => {
|
|
47
46
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
48
47
|
if (th.current === null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/config/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/config/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEH,eAAO,MAAM,OAAO;;;;mBAHZ,QAAS,IAAI;GAQnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@g4rcez/components",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"private": false,
|
|
6
6
|
"packageManager": "pnpm@10.7.0",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@floating-ui/react": "0.26.20",
|
|
43
|
+
"@radix-ui/react-slider": "1.2.4",
|
|
43
44
|
"@radix-ui/react-slot": "1.1.2",
|
|
44
45
|
"@radix-ui/react-toast": "1.2.6",
|
|
45
46
|
"class-variance-authority": "0.7.1",
|
|
@@ -85,7 +86,7 @@
|
|
|
85
86
|
"tslib": "2.8.1",
|
|
86
87
|
"typescript": "5.8.2",
|
|
87
88
|
"typescript-eslint": "8.28.0",
|
|
88
|
-
"vite": "6.2.
|
|
89
|
+
"vite": "6.2.6",
|
|
89
90
|
"vite-tsconfig-paths": "5.1.4",
|
|
90
91
|
"vitest": "3.0.9"
|
|
91
92
|
},
|