jaci-ui 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +85 -0
- package/dist/components/calendar/calendar.cjs +377 -0
- package/dist/components/calendar/calendar.cjs.map +1 -0
- package/dist/components/calendar/calendar.d.cts +56 -0
- package/dist/components/calendar/calendar.d.ts +56 -0
- package/dist/components/calendar/calendar.js +368 -0
- package/dist/components/calendar/calendar.js.map +1 -0
- package/dist/components/calendar/index.d.cts +2 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/combobox/combobox.cjs +13 -1
- package/dist/components/combobox/combobox.cjs.map +1 -1
- package/dist/components/combobox/combobox.d.cts +7 -2
- package/dist/components/combobox/combobox.d.ts +7 -2
- package/dist/components/combobox/combobox.js +13 -2
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/index.d.cts +2 -2
- package/dist/components/combobox/index.d.ts +2 -2
- package/dist/components/command/command.cjs +55 -34
- package/dist/components/command/command.cjs.map +1 -1
- package/dist/components/command/command.d.cts +1 -0
- package/dist/components/command/command.d.ts +1 -0
- package/dist/components/command/command.js +55 -34
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/controls/input.cjs +26 -5
- package/dist/components/controls/input.cjs.map +1 -1
- package/dist/components/controls/input.d.cts +5 -2
- package/dist/components/controls/input.d.ts +5 -2
- package/dist/components/controls/input.js +28 -7
- package/dist/components/controls/input.js.map +1 -1
- package/dist/components/controls/textarea.cjs +26 -5
- package/dist/components/controls/textarea.cjs.map +1 -1
- package/dist/components/controls/textarea.d.cts +5 -2
- package/dist/components/controls/textarea.d.ts +5 -2
- package/dist/components/controls/textarea.js +28 -7
- package/dist/components/controls/textarea.js.map +1 -1
- package/dist/components/data-toolbar/data-toolbar.cjs +141 -0
- package/dist/components/data-toolbar/data-toolbar.cjs.map +1 -0
- package/dist/components/data-toolbar/data-toolbar.d.cts +50 -0
- package/dist/components/data-toolbar/data-toolbar.d.ts +50 -0
- package/dist/components/data-toolbar/data-toolbar.js +132 -0
- package/dist/components/data-toolbar/data-toolbar.js.map +1 -0
- package/dist/components/data-toolbar/index.d.cts +2 -0
- package/dist/components/data-toolbar/index.d.ts +2 -0
- package/dist/components/data-view/data-view.cjs +33 -1
- package/dist/components/data-view/data-view.cjs.map +1 -1
- package/dist/components/data-view/data-view.d.cts +12 -1
- package/dist/components/data-view/data-view.d.ts +12 -1
- package/dist/components/data-view/data-view.js +31 -2
- package/dist/components/data-view/data-view.js.map +1 -1
- package/dist/components/data-view/index.d.cts +2 -2
- package/dist/components/data-view/index.d.ts +2 -2
- package/dist/components/date-picker/date-picker.cjs +9 -9
- package/dist/components/date-picker/date-picker.cjs.map +1 -1
- package/dist/components/date-picker/date-picker.d.cts +3 -1
- package/dist/components/date-picker/date-picker.d.ts +3 -1
- package/dist/components/date-picker/date-picker.js +9 -9
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.cjs +589 -0
- package/dist/components/date-range-picker/date-range-picker.cjs.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.d.cts +134 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +134 -0
- package/dist/components/date-range-picker/date-range-picker.js +568 -0
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -0
- package/dist/components/date-range-picker/index.d.cts +2 -0
- package/dist/components/date-range-picker/index.d.ts +2 -0
- package/dist/components/field/field.cjs +106 -11
- package/dist/components/field/field.cjs.map +1 -1
- package/dist/components/field/field.d.cts +22 -4
- package/dist/components/field/field.d.ts +22 -4
- package/dist/components/field/field.js +107 -13
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/field/index.d.cts +2 -2
- package/dist/components/field/index.d.ts +2 -2
- package/dist/components/list/list.cjs +3 -1
- package/dist/components/list/list.cjs.map +1 -1
- package/dist/components/list/list.d.cts +3 -1
- package/dist/components/list/list.d.ts +3 -1
- package/dist/components/list/list.js +3 -1
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/pagination/index.d.cts +2 -2
- package/dist/components/pagination/index.d.ts +2 -2
- package/dist/components/pagination/pagination.cjs +122 -21
- package/dist/components/pagination/pagination.cjs.map +1 -1
- package/dist/components/pagination/pagination.d.cts +25 -13
- package/dist/components/pagination/pagination.d.ts +25 -13
- package/dist/components/pagination/pagination.js +122 -23
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/pin-input/index.d.cts +2 -0
- package/dist/components/pin-input/index.d.ts +2 -0
- package/dist/components/pin-input/pin-input.cjs +266 -0
- package/dist/components/pin-input/pin-input.cjs.map +1 -0
- package/dist/components/pin-input/pin-input.d.cts +46 -0
- package/dist/components/pin-input/pin-input.d.ts +46 -0
- package/dist/components/pin-input/pin-input.js +258 -0
- package/dist/components/pin-input/pin-input.js.map +1 -0
- package/dist/components/select/index.d.cts +2 -2
- package/dist/components/select/index.d.ts +2 -2
- package/dist/components/select/select.cjs +80 -3
- package/dist/components/select/select.cjs.map +1 -1
- package/dist/components/select/select.d.cts +18 -3
- package/dist/components/select/select.d.ts +18 -3
- package/dist/components/select/select.js +78 -5
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/table/index.d.cts +2 -2
- package/dist/components/table/index.d.ts +2 -2
- package/dist/components/table/table.cjs +265 -46
- package/dist/components/table/table.cjs.map +1 -1
- package/dist/components/table/table.d.cts +41 -8
- package/dist/components/table/table.d.ts +41 -8
- package/dist/components/table/table.js +264 -48
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tags-input/tags-input.cjs +83 -5
- package/dist/components/tags-input/tags-input.cjs.map +1 -1
- package/dist/components/tags-input/tags-input.d.cts +3 -0
- package/dist/components/tags-input/tags-input.d.ts +3 -0
- package/dist/components/tags-input/tags-input.js +83 -5
- package/dist/components/tags-input/tags-input.js.map +1 -1
- package/dist/components/tree-view/index.d.cts +2 -2
- package/dist/components/tree-view/index.d.ts +2 -2
- package/dist/components/tree-view/tree-view.cjs +60 -3
- package/dist/components/tree-view/tree-view.cjs.map +1 -1
- package/dist/components/tree-view/tree-view.d.cts +12 -1
- package/dist/components/tree-view/tree-view.d.ts +12 -1
- package/dist/components/tree-view/tree-view.js +58 -4
- package/dist/components/tree-view/tree-view.js.map +1 -1
- package/dist/components/upload/index.d.cts +2 -2
- package/dist/components/upload/index.d.ts +2 -2
- package/dist/components/upload/upload.cjs +90 -10
- package/dist/components/upload/upload.cjs.map +1 -1
- package/dist/components/upload/upload.d.cts +25 -2
- package/dist/components/upload/upload.d.ts +25 -2
- package/dist/components/upload/upload.js +89 -11
- package/dist/components/upload/upload.js.map +1 -1
- package/dist/index.cjs +74 -1
- package/dist/index.d.cts +17 -9
- package/dist/index.d.ts +17 -9
- package/dist/index.js +14 -10
- package/dist/styled-system/recipes/calendar.cjs +43 -0
- package/dist/styled-system/recipes/calendar.cjs.map +1 -0
- package/dist/styled-system/recipes/calendar.js +43 -0
- package/dist/styled-system/recipes/calendar.js.map +1 -0
- package/dist/styled-system/recipes/combobox.cjs +1 -0
- package/dist/styled-system/recipes/combobox.cjs.map +1 -1
- package/dist/styled-system/recipes/combobox.js +1 -0
- package/dist/styled-system/recipes/combobox.js.map +1 -1
- package/dist/styled-system/recipes/data-toolbar.cjs +40 -0
- package/dist/styled-system/recipes/data-toolbar.cjs.map +1 -0
- package/dist/styled-system/recipes/data-toolbar.js +40 -0
- package/dist/styled-system/recipes/data-toolbar.js.map +1 -0
- package/dist/styled-system/recipes/data-view.cjs +3 -0
- package/dist/styled-system/recipes/data-view.cjs.map +1 -1
- package/dist/styled-system/recipes/data-view.js +3 -0
- package/dist/styled-system/recipes/data-view.js.map +1 -1
- package/dist/styled-system/recipes/date-range-picker.cjs +52 -0
- package/dist/styled-system/recipes/date-range-picker.cjs.map +1 -0
- package/dist/styled-system/recipes/date-range-picker.js +52 -0
- package/dist/styled-system/recipes/date-range-picker.js.map +1 -0
- package/dist/styled-system/recipes/list.cjs +7 -1
- package/dist/styled-system/recipes/list.cjs.map +1 -1
- package/dist/styled-system/recipes/list.js +7 -1
- package/dist/styled-system/recipes/list.js.map +1 -1
- package/dist/styled-system/recipes/pagination.cjs +9 -1
- package/dist/styled-system/recipes/pagination.cjs.map +1 -1
- package/dist/styled-system/recipes/pagination.js +9 -1
- package/dist/styled-system/recipes/pagination.js.map +1 -1
- package/dist/styled-system/recipes/pin-input.cjs +39 -0
- package/dist/styled-system/recipes/pin-input.cjs.map +1 -0
- package/dist/styled-system/recipes/pin-input.js +39 -0
- package/dist/styled-system/recipes/pin-input.js.map +1 -0
- package/dist/styled-system/recipes/select.cjs +5 -1
- package/dist/styled-system/recipes/select.cjs.map +1 -1
- package/dist/styled-system/recipes/select.js +5 -1
- package/dist/styled-system/recipes/select.js.map +1 -1
- package/dist/styled-system/recipes/table.cjs +15 -2
- package/dist/styled-system/recipes/table.cjs.map +1 -1
- package/dist/styled-system/recipes/table.js +15 -2
- package/dist/styled-system/recipes/table.js.map +1 -1
- package/dist/styled-system/recipes/tree-view.cjs +4 -1
- package/dist/styled-system/recipes/tree-view.cjs.map +1 -1
- package/dist/styled-system/recipes/tree-view.js +4 -1
- package/dist/styled-system/recipes/tree-view.js.map +1 -1
- package/dist/styled-system/recipes/upload.cjs +2 -0
- package/dist/styled-system/recipes/upload.cjs.map +1 -1
- package/dist/styled-system/recipes/upload.js +2 -0
- package/dist/styled-system/recipes/upload.js.map +1 -1
- package/dist/styles.css +995 -95
- package/package.json +3 -2
|
@@ -1,28 +1,49 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx } from "../../styled-system/css/cx.js";
|
|
3
3
|
import { textarea } from "../../styled-system/recipes/textarea.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Spinner } from "../layout/index.js";
|
|
5
|
+
import { FieldControl, useFieldState } from "../field/field.js";
|
|
6
|
+
import { InputGroup } from "../input-group/input-group.js";
|
|
5
7
|
import { forwardRef } from "react";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import { Field } from "@base-ui/react/field";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
9
|
//#region src/components/controls/textarea.tsx
|
|
9
|
-
const Textarea = forwardRef(function Textarea({ className, size = "md", ...props }, ref) {
|
|
10
|
+
const Textarea = forwardRef(function Textarea({ className, loading = false, prefix, size = "md", suffix, ...props }, ref) {
|
|
10
11
|
const { insideField } = useFieldState();
|
|
11
12
|
const controlProps = {
|
|
12
13
|
...props,
|
|
14
|
+
"aria-busy": loading || void 0,
|
|
13
15
|
className: cx(textarea({ size }), className),
|
|
14
16
|
"data-jaci-component": "textarea",
|
|
17
|
+
"data-loading": loading || void 0,
|
|
15
18
|
"data-slot": "textarea"
|
|
16
19
|
};
|
|
17
|
-
|
|
20
|
+
const control = insideField ? /* @__PURE__ */ jsx(FieldControl, {
|
|
18
21
|
...controlProps,
|
|
19
22
|
ref,
|
|
20
23
|
render: /* @__PURE__ */ jsx("textarea", {})
|
|
21
|
-
})
|
|
22
|
-
return /* @__PURE__ */ jsx("textarea", {
|
|
24
|
+
}) : /* @__PURE__ */ jsx("textarea", {
|
|
23
25
|
...controlProps,
|
|
24
26
|
ref
|
|
25
27
|
});
|
|
28
|
+
if (prefix !== void 0 || suffix !== void 0 || loading) return /* @__PURE__ */ jsxs(InputGroup, { children: [
|
|
29
|
+
prefix !== void 0 ? /* @__PURE__ */ jsx(InputGroup.Addon, {
|
|
30
|
+
"data-slot": "textarea-prefix",
|
|
31
|
+
children: prefix
|
|
32
|
+
}) : null,
|
|
33
|
+
control,
|
|
34
|
+
loading ? /* @__PURE__ */ jsx(InputGroup.Addon, {
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
"data-slot": "textarea-loading",
|
|
37
|
+
children: /* @__PURE__ */ jsx(Spinner, {
|
|
38
|
+
label: "",
|
|
39
|
+
size: "sm"
|
|
40
|
+
})
|
|
41
|
+
}) : suffix !== void 0 ? /* @__PURE__ */ jsx(InputGroup.Addon, {
|
|
42
|
+
"data-slot": "textarea-suffix",
|
|
43
|
+
children: suffix
|
|
44
|
+
}) : null
|
|
45
|
+
] });
|
|
46
|
+
return control;
|
|
26
47
|
});
|
|
27
48
|
//#endregion
|
|
28
49
|
export { Textarea };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","names":[
|
|
1
|
+
{"version":3,"file":"textarea.js","names":[],"sources":["../../../src/components/controls/textarea.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef } from \"react\";\nimport type { ComponentProps, ComponentPropsWithoutRef, ReactNode, Ref } from \"react\";\n\nimport { cx } from \"../../styled-system/css\";\nimport { textarea } from \"../../styled-system/recipes\";\nimport { FieldControl, useFieldState } from \"../field\";\nimport { InputGroup } from \"../input-group\";\nimport { Spinner } from \"../layout\";\n\nexport interface TextareaProps extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"prefix\"> {\n size?: \"sm\" | \"md\" | \"lg\";\n prefix?: ReactNode;\n suffix?: ReactNode;\n loading?: boolean;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n { className, loading = false, prefix, size = \"md\", suffix, ...props },\n ref,\n) {\n const { insideField } = useFieldState();\n const controlProps = {\n ...props,\n \"aria-busy\": loading || undefined,\n className: cx(textarea({ size }), className),\n \"data-jaci-component\": \"textarea\",\n \"data-loading\": loading || undefined,\n \"data-slot\": \"textarea\",\n };\n const control = insideField ? (\n <FieldControl\n {...(controlProps as unknown as ComponentProps<typeof FieldControl>)}\n ref={ref as Ref<HTMLElement>}\n render={<textarea />}\n />\n ) : (\n <textarea {...controlProps} ref={ref} />\n );\n\n if (prefix !== undefined || suffix !== undefined || loading) {\n return (\n <InputGroup>\n {prefix !== undefined ? (\n <InputGroup.Addon data-slot=\"textarea-prefix\">{prefix}</InputGroup.Addon>\n ) : null}\n {control}\n {loading ? (\n <InputGroup.Addon aria-hidden=\"true\" data-slot=\"textarea-loading\">\n <Spinner label=\"\" size=\"sm\" />\n </InputGroup.Addon>\n ) : suffix !== undefined ? (\n <InputGroup.Addon data-slot=\"textarea-suffix\">{suffix}</InputGroup.Addon>\n ) : null}\n </InputGroup>\n );\n }\n\n return control;\n});\n"],"mappings":";;;;;;;;;AAkBA,MAAa,WAAW,WAA+C,SAAS,SAC9E,EAAE,WAAW,UAAU,OAAO,QAAQ,OAAO,MAAM,QAAQ,GAAG,SAC9D,KACA;CACA,MAAM,EAAE,gBAAgB,cAAc;CACtC,MAAM,eAAe;EACnB,GAAG;EACH,aAAa,WAAW,KAAA;EACxB,WAAW,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,SAAS;EAC3C,uBAAuB;EACvB,gBAAgB,WAAW,KAAA;EAC3B,aAAa;CACf;CACA,MAAM,UAAU,cACd,oBAAC,cAAD;EACE,GAAK;EACA;EACL,QAAQ,oBAAC,YAAD,CAAW,CAAA;CACpB,CAAA,IAED,oBAAC,YAAD;EAAU,GAAI;EAAmB;CAAM,CAAA;CAGzC,IAAI,WAAW,KAAA,KAAa,WAAW,KAAA,KAAa,SAClD,OACE,qBAAC,YAAD,EAAA,UAAA;EACG,WAAW,KAAA,IACV,oBAAC,WAAW,OAAZ;GAAkB,aAAU;aAAmB;EAAyB,CAAA,IACtE;EACH;EACA,UACC,oBAAC,WAAW,OAAZ;GAAkB,eAAY;GAAO,aAAU;aAC7C,oBAAC,SAAD;IAAS,OAAM;IAAG,MAAK;GAAM,CAAA;EACb,CAAA,IAChB,WAAW,KAAA,IACb,oBAAC,WAAW,OAAZ;GAAkB,aAAU;aAAmB;EAAyB,CAAA,IACtE;CACM,EAAA,CAAA;CAIhB,OAAO;AACT,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_cx = require("../../styled-system/css/cx.cjs");
|
|
3
|
+
const require_data_toolbar = require("../../styled-system/recipes/data-toolbar.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
//#region src/components/data-toolbar/data-toolbar.tsx
|
|
7
|
+
const SelectionContext = (0, react.createContext)(null);
|
|
8
|
+
const DataToolbarRoot = (0, react.forwardRef)(function DataToolbarRoot({ className, role, ...props }, ref) {
|
|
9
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
10
|
+
...props,
|
|
11
|
+
ref,
|
|
12
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().root, className),
|
|
13
|
+
"data-jaci-component": "data-toolbar",
|
|
14
|
+
"data-slot": "data-toolbar",
|
|
15
|
+
role: role ?? "toolbar"
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
const DataToolbarSearch = (0, react.forwardRef)(function DataToolbarSearch({ className, defaultValue = "", onValueChange, value: controlledValue, ...props }, ref) {
|
|
19
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, react.useState)(defaultValue);
|
|
20
|
+
const value = controlledValue ?? uncontrolledValue;
|
|
21
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
22
|
+
...props,
|
|
23
|
+
ref,
|
|
24
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().search, className),
|
|
25
|
+
"data-slot": "data-toolbar-search",
|
|
26
|
+
onChange: (event) => {
|
|
27
|
+
if (controlledValue === void 0) setUncontrolledValue(event.currentTarget.value);
|
|
28
|
+
onValueChange?.(event.currentTarget.value);
|
|
29
|
+
props.onChange?.(event);
|
|
30
|
+
},
|
|
31
|
+
type: props.type ?? "search",
|
|
32
|
+
value
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
const DataToolbarFilters = (0, react.forwardRef)(function DataToolbarFilters({ className, ...props }, ref) {
|
|
36
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
37
|
+
...props,
|
|
38
|
+
ref,
|
|
39
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().filters, className),
|
|
40
|
+
"data-slot": "data-toolbar-filters"
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const DataToolbarSort = (0, react.forwardRef)(function DataToolbarSort({ className, defaultValue = "", onValueChange, value: controlledValue, ...props }, ref) {
|
|
44
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, react.useState)(defaultValue);
|
|
45
|
+
const value = controlledValue ?? uncontrolledValue;
|
|
46
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
|
|
47
|
+
...props,
|
|
48
|
+
ref,
|
|
49
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().sort, className),
|
|
50
|
+
"data-slot": "data-toolbar-sort",
|
|
51
|
+
onChange: (event) => {
|
|
52
|
+
if (controlledValue === void 0) setUncontrolledValue(event.currentTarget.value);
|
|
53
|
+
onValueChange?.(event.currentTarget.value);
|
|
54
|
+
props.onChange?.(event);
|
|
55
|
+
},
|
|
56
|
+
value
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
const DataToolbarSelection = (0, react.forwardRef)(function DataToolbarSelection({ children, className, count, label = "selected", onClear, ...props }, ref) {
|
|
60
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectionContext.Provider, {
|
|
61
|
+
value: {
|
|
62
|
+
count,
|
|
63
|
+
onClear
|
|
64
|
+
},
|
|
65
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
66
|
+
...props,
|
|
67
|
+
ref,
|
|
68
|
+
"aria-live": "polite",
|
|
69
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().selection, className),
|
|
70
|
+
"data-count": count,
|
|
71
|
+
"data-slot": "data-toolbar-selection",
|
|
72
|
+
children: children ?? `${count} ${label}`
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
const DataToolbarClearSelection = (0, react.forwardRef)(function DataToolbarClearSelection({ children = "Clear selection", className, onClick, ...props }, ref) {
|
|
77
|
+
const context = (0, react.useContext)(SelectionContext);
|
|
78
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
79
|
+
...props,
|
|
80
|
+
ref,
|
|
81
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().clearSelection, className),
|
|
82
|
+
"data-slot": "data-toolbar-clear-selection",
|
|
83
|
+
onClick: (event) => {
|
|
84
|
+
context?.onClear?.();
|
|
85
|
+
onClick?.(event);
|
|
86
|
+
},
|
|
87
|
+
type: "button",
|
|
88
|
+
children
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
const DataToolbarActions = (0, react.forwardRef)(function DataToolbarActions({ className, ...props }, ref) {
|
|
92
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
93
|
+
...props,
|
|
94
|
+
ref,
|
|
95
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().actions, className),
|
|
96
|
+
"data-slot": "data-toolbar-actions"
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
const DataToolbarClear = (0, react.forwardRef)(function DataToolbarClear({ children = "Clear filters", className, ...props }, ref) {
|
|
100
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
101
|
+
...props,
|
|
102
|
+
ref,
|
|
103
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().clear, className),
|
|
104
|
+
"data-slot": "data-toolbar-clear",
|
|
105
|
+
type: "button",
|
|
106
|
+
children
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
const DataToolbarSeparator = (0, react.forwardRef)(function DataToolbarSeparator({ className, ...props }, ref) {
|
|
110
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
111
|
+
...props,
|
|
112
|
+
ref,
|
|
113
|
+
"aria-hidden": "true",
|
|
114
|
+
className: require_cx.cx(require_data_toolbar.dataToolbar().separator, className),
|
|
115
|
+
"data-slot": "data-toolbar-separator"
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
const DataToolbar = {
|
|
119
|
+
Root: DataToolbarRoot,
|
|
120
|
+
Search: DataToolbarSearch,
|
|
121
|
+
Filters: DataToolbarFilters,
|
|
122
|
+
Sort: DataToolbarSort,
|
|
123
|
+
Selection: DataToolbarSelection,
|
|
124
|
+
ClearSelection: DataToolbarClearSelection,
|
|
125
|
+
Actions: DataToolbarActions,
|
|
126
|
+
Clear: DataToolbarClear,
|
|
127
|
+
Separator: DataToolbarSeparator
|
|
128
|
+
};
|
|
129
|
+
//#endregion
|
|
130
|
+
exports.DataToolbar = DataToolbar;
|
|
131
|
+
exports.DataToolbarActions = DataToolbarActions;
|
|
132
|
+
exports.DataToolbarClear = DataToolbarClear;
|
|
133
|
+
exports.DataToolbarClearSelection = DataToolbarClearSelection;
|
|
134
|
+
exports.DataToolbarFilters = DataToolbarFilters;
|
|
135
|
+
exports.DataToolbarRoot = DataToolbarRoot;
|
|
136
|
+
exports.DataToolbarSearch = DataToolbarSearch;
|
|
137
|
+
exports.DataToolbarSelection = DataToolbarSelection;
|
|
138
|
+
exports.DataToolbarSeparator = DataToolbarSeparator;
|
|
139
|
+
exports.DataToolbarSort = DataToolbarSort;
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=data-toolbar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-toolbar.cjs","names":["cx","dataToolbar"],"sources":["../../../src/components/data-toolbar/data-toolbar.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, forwardRef, useContext, useState } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { cx } from \"../../styled-system/css\";\nimport { dataToolbar } from \"../../styled-system/recipes\";\n\ninterface SelectionContextValue {\n count: number;\n onClear: (() => void) | undefined;\n}\n\nconst SelectionContext = createContext<SelectionContextValue | null>(null);\n\nexport type DataToolbarRootProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarRoot = forwardRef<HTMLDivElement, DataToolbarRootProps>(\n function DataToolbarRoot({ className, role, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataToolbar().root, className)}\n data-jaci-component=\"data-toolbar\"\n data-slot=\"data-toolbar\"\n role={role ?? \"toolbar\"}\n />\n );\n },\n);\n\nexport interface DataToolbarSearchProps\n extends Omit<ComponentPropsWithoutRef<\"input\">, \"defaultValue\" | \"onChange\" | \"value\"> {\n defaultValue?: string;\n onChange?: ComponentPropsWithoutRef<\"input\">[\"onChange\"];\n onValueChange?: (value: string) => void;\n value?: string;\n}\n\nexport const DataToolbarSearch = forwardRef<HTMLInputElement, DataToolbarSearchProps>(\n function DataToolbarSearch(\n { className, defaultValue = \"\", onValueChange, value: controlledValue, ...props },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n return (\n <input\n {...props}\n ref={ref}\n className={cx(dataToolbar().search, className)}\n data-slot=\"data-toolbar-search\"\n onChange={(event) => {\n if (controlledValue === undefined) setUncontrolledValue(event.currentTarget.value);\n onValueChange?.(event.currentTarget.value);\n props.onChange?.(event);\n }}\n type={props.type ?? \"search\"}\n value={value}\n />\n );\n },\n);\n\nexport type DataToolbarFiltersProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarFilters = forwardRef<HTMLDivElement, DataToolbarFiltersProps>(\n function DataToolbarFilters({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataToolbar().filters, className)}\n data-slot=\"data-toolbar-filters\"\n />\n );\n },\n);\n\nexport interface DataToolbarSortProps\n extends Omit<ComponentPropsWithoutRef<\"select\">, \"defaultValue\" | \"onChange\" | \"value\"> {\n defaultValue?: string;\n onChange?: ComponentPropsWithoutRef<\"select\">[\"onChange\"];\n onValueChange?: (value: string) => void;\n value?: string;\n}\n\nexport const DataToolbarSort = forwardRef<HTMLSelectElement, DataToolbarSortProps>(\n function DataToolbarSort(\n { className, defaultValue = \"\", onValueChange, value: controlledValue, ...props },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n return (\n <select\n {...props}\n ref={ref}\n className={cx(dataToolbar().sort, className)}\n data-slot=\"data-toolbar-sort\"\n onChange={(event) => {\n if (controlledValue === undefined) setUncontrolledValue(event.currentTarget.value);\n onValueChange?.(event.currentTarget.value);\n props.onChange?.(event);\n }}\n value={value}\n />\n );\n },\n);\n\nexport interface DataToolbarSelectionProps extends ComponentPropsWithoutRef<\"div\"> {\n count: number;\n label?: ReactNode;\n onClear?: () => void;\n}\nexport const DataToolbarSelection = forwardRef<HTMLDivElement, DataToolbarSelectionProps>(\n function DataToolbarSelection(\n { children, className, count, label = \"selected\", onClear, ...props },\n ref,\n ) {\n return (\n <SelectionContext.Provider value={{ count, onClear }}>\n <div\n {...props}\n ref={ref}\n aria-live=\"polite\"\n className={cx(dataToolbar().selection, className)}\n data-count={count}\n data-slot=\"data-toolbar-selection\"\n >\n {children ?? `${count} ${label}`}\n </div>\n </SelectionContext.Provider>\n );\n },\n);\n\nexport interface DataToolbarClearSelectionProps extends ComponentPropsWithoutRef<\"button\"> {\n children?: ReactNode;\n}\nexport const DataToolbarClearSelection = forwardRef<\n HTMLButtonElement,\n DataToolbarClearSelectionProps\n>(function DataToolbarClearSelection(\n { children = \"Clear selection\", className, onClick, ...props },\n ref,\n) {\n const context = useContext(SelectionContext);\n return (\n <button\n {...props}\n ref={ref}\n className={cx(dataToolbar().clearSelection, className)}\n data-slot=\"data-toolbar-clear-selection\"\n onClick={(event) => {\n context?.onClear?.();\n onClick?.(event);\n }}\n type=\"button\"\n >\n {children}\n </button>\n );\n});\n\nexport type DataToolbarActionsProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarActions = forwardRef<HTMLDivElement, DataToolbarActionsProps>(\n function DataToolbarActions({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataToolbar().actions, className)}\n data-slot=\"data-toolbar-actions\"\n />\n );\n },\n);\n\nexport type DataToolbarClearProps = ComponentPropsWithoutRef<\"button\">;\nexport const DataToolbarClear = forwardRef<HTMLButtonElement, DataToolbarClearProps>(\n function DataToolbarClear({ children = \"Clear filters\", className, ...props }, ref) {\n return (\n <button\n {...props}\n ref={ref}\n className={cx(dataToolbar().clear, className)}\n data-slot=\"data-toolbar-clear\"\n type=\"button\"\n >\n {children}\n </button>\n );\n },\n);\n\nexport type DataToolbarSeparatorProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarSeparator = forwardRef<HTMLDivElement, DataToolbarSeparatorProps>(\n function DataToolbarSeparator({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n aria-hidden=\"true\"\n className={cx(dataToolbar().separator, className)}\n data-slot=\"data-toolbar-separator\"\n />\n );\n },\n);\n\nexport const DataToolbar = {\n Root: DataToolbarRoot,\n Search: DataToolbarSearch,\n Filters: DataToolbarFilters,\n Sort: DataToolbarSort,\n Selection: DataToolbarSelection,\n ClearSelection: DataToolbarClearSelection,\n Actions: DataToolbarActions,\n Clear: DataToolbarClear,\n Separator: DataToolbarSeparator,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, ReactNode } from "react";
|
|
2
|
+
//#region src/components/data-toolbar/data-toolbar.d.ts
|
|
3
|
+
type DataToolbarRootProps = ComponentPropsWithoutRef<"div">;
|
|
4
|
+
declare const DataToolbarRoot: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
|
+
interface DataToolbarSearchProps extends Omit<ComponentPropsWithoutRef<"input">, "defaultValue" | "onChange" | "value"> {
|
|
6
|
+
defaultValue?: string;
|
|
7
|
+
onChange?: ComponentPropsWithoutRef<"input">["onChange"];
|
|
8
|
+
onValueChange?: (value: string) => void;
|
|
9
|
+
value?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const DataToolbarSearch: import("react").ForwardRefExoticComponent<DataToolbarSearchProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
12
|
+
type DataToolbarFiltersProps = ComponentPropsWithoutRef<"div">;
|
|
13
|
+
declare const DataToolbarFilters: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
interface DataToolbarSortProps extends Omit<ComponentPropsWithoutRef<"select">, "defaultValue" | "onChange" | "value"> {
|
|
15
|
+
defaultValue?: string;
|
|
16
|
+
onChange?: ComponentPropsWithoutRef<"select">["onChange"];
|
|
17
|
+
onValueChange?: (value: string) => void;
|
|
18
|
+
value?: string;
|
|
19
|
+
}
|
|
20
|
+
declare const DataToolbarSort: import("react").ForwardRefExoticComponent<DataToolbarSortProps & import("react").RefAttributes<HTMLSelectElement>>;
|
|
21
|
+
interface DataToolbarSelectionProps extends ComponentPropsWithoutRef<"div"> {
|
|
22
|
+
count: number;
|
|
23
|
+
label?: ReactNode;
|
|
24
|
+
onClear?: () => void;
|
|
25
|
+
}
|
|
26
|
+
declare const DataToolbarSelection: import("react").ForwardRefExoticComponent<DataToolbarSelectionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
27
|
+
interface DataToolbarClearSelectionProps extends ComponentPropsWithoutRef<"button"> {
|
|
28
|
+
children?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
declare const DataToolbarClearSelection: import("react").ForwardRefExoticComponent<DataToolbarClearSelectionProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
31
|
+
type DataToolbarActionsProps = ComponentPropsWithoutRef<"div">;
|
|
32
|
+
declare const DataToolbarActions: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
33
|
+
type DataToolbarClearProps = ComponentPropsWithoutRef<"button">;
|
|
34
|
+
declare const DataToolbarClear: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
35
|
+
type DataToolbarSeparatorProps = ComponentPropsWithoutRef<"div">;
|
|
36
|
+
declare const DataToolbarSeparator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
37
|
+
declare const DataToolbar: {
|
|
38
|
+
Root: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
39
|
+
Search: import("react").ForwardRefExoticComponent<DataToolbarSearchProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
40
|
+
Filters: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
41
|
+
Sort: import("react").ForwardRefExoticComponent<DataToolbarSortProps & import("react").RefAttributes<HTMLSelectElement>>;
|
|
42
|
+
Selection: import("react").ForwardRefExoticComponent<DataToolbarSelectionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
43
|
+
ClearSelection: import("react").ForwardRefExoticComponent<DataToolbarClearSelectionProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
44
|
+
Actions: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
Clear: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
46
|
+
Separator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { DataToolbar, DataToolbarActions, DataToolbarActionsProps, DataToolbarClear, DataToolbarClearProps, DataToolbarClearSelection, DataToolbarClearSelectionProps, DataToolbarFilters, DataToolbarFiltersProps, DataToolbarRoot, DataToolbarRootProps, DataToolbarSearch, DataToolbarSearchProps, DataToolbarSelection, DataToolbarSelectionProps, DataToolbarSeparator, DataToolbarSeparatorProps, DataToolbarSort, DataToolbarSortProps };
|
|
50
|
+
//# sourceMappingURL=data-toolbar.d.cts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, ReactNode } from "react";
|
|
2
|
+
//#region src/components/data-toolbar/data-toolbar.d.ts
|
|
3
|
+
type DataToolbarRootProps = ComponentPropsWithoutRef<"div">;
|
|
4
|
+
declare const DataToolbarRoot: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
|
+
interface DataToolbarSearchProps extends Omit<ComponentPropsWithoutRef<"input">, "defaultValue" | "onChange" | "value"> {
|
|
6
|
+
defaultValue?: string;
|
|
7
|
+
onChange?: ComponentPropsWithoutRef<"input">["onChange"];
|
|
8
|
+
onValueChange?: (value: string) => void;
|
|
9
|
+
value?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const DataToolbarSearch: import("react").ForwardRefExoticComponent<DataToolbarSearchProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
12
|
+
type DataToolbarFiltersProps = ComponentPropsWithoutRef<"div">;
|
|
13
|
+
declare const DataToolbarFilters: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
interface DataToolbarSortProps extends Omit<ComponentPropsWithoutRef<"select">, "defaultValue" | "onChange" | "value"> {
|
|
15
|
+
defaultValue?: string;
|
|
16
|
+
onChange?: ComponentPropsWithoutRef<"select">["onChange"];
|
|
17
|
+
onValueChange?: (value: string) => void;
|
|
18
|
+
value?: string;
|
|
19
|
+
}
|
|
20
|
+
declare const DataToolbarSort: import("react").ForwardRefExoticComponent<DataToolbarSortProps & import("react").RefAttributes<HTMLSelectElement>>;
|
|
21
|
+
interface DataToolbarSelectionProps extends ComponentPropsWithoutRef<"div"> {
|
|
22
|
+
count: number;
|
|
23
|
+
label?: ReactNode;
|
|
24
|
+
onClear?: () => void;
|
|
25
|
+
}
|
|
26
|
+
declare const DataToolbarSelection: import("react").ForwardRefExoticComponent<DataToolbarSelectionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
27
|
+
interface DataToolbarClearSelectionProps extends ComponentPropsWithoutRef<"button"> {
|
|
28
|
+
children?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
declare const DataToolbarClearSelection: import("react").ForwardRefExoticComponent<DataToolbarClearSelectionProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
31
|
+
type DataToolbarActionsProps = ComponentPropsWithoutRef<"div">;
|
|
32
|
+
declare const DataToolbarActions: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
33
|
+
type DataToolbarClearProps = ComponentPropsWithoutRef<"button">;
|
|
34
|
+
declare const DataToolbarClear: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
35
|
+
type DataToolbarSeparatorProps = ComponentPropsWithoutRef<"div">;
|
|
36
|
+
declare const DataToolbarSeparator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
37
|
+
declare const DataToolbar: {
|
|
38
|
+
Root: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
39
|
+
Search: import("react").ForwardRefExoticComponent<DataToolbarSearchProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
40
|
+
Filters: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
41
|
+
Sort: import("react").ForwardRefExoticComponent<DataToolbarSortProps & import("react").RefAttributes<HTMLSelectElement>>;
|
|
42
|
+
Selection: import("react").ForwardRefExoticComponent<DataToolbarSelectionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
43
|
+
ClearSelection: import("react").ForwardRefExoticComponent<DataToolbarClearSelectionProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
44
|
+
Actions: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
Clear: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
46
|
+
Separator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { DataToolbar, DataToolbarActions, DataToolbarActionsProps, DataToolbarClear, DataToolbarClearProps, DataToolbarClearSelection, DataToolbarClearSelectionProps, DataToolbarFilters, DataToolbarFiltersProps, DataToolbarRoot, DataToolbarRootProps, DataToolbarSearch, DataToolbarSearchProps, DataToolbarSelection, DataToolbarSelectionProps, DataToolbarSeparator, DataToolbarSeparatorProps, DataToolbarSort, DataToolbarSortProps };
|
|
50
|
+
//# sourceMappingURL=data-toolbar.d.ts.map
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx } from "../../styled-system/css/cx.js";
|
|
3
|
+
import { dataToolbar } from "../../styled-system/recipes/data-toolbar.js";
|
|
4
|
+
import { createContext, forwardRef, useContext, useState } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/data-toolbar/data-toolbar.tsx
|
|
7
|
+
const SelectionContext = createContext(null);
|
|
8
|
+
const DataToolbarRoot = forwardRef(function DataToolbarRoot({ className, role, ...props }, ref) {
|
|
9
|
+
return /* @__PURE__ */ jsx("div", {
|
|
10
|
+
...props,
|
|
11
|
+
ref,
|
|
12
|
+
className: cx(dataToolbar().root, className),
|
|
13
|
+
"data-jaci-component": "data-toolbar",
|
|
14
|
+
"data-slot": "data-toolbar",
|
|
15
|
+
role: role ?? "toolbar"
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
const DataToolbarSearch = forwardRef(function DataToolbarSearch({ className, defaultValue = "", onValueChange, value: controlledValue, ...props }, ref) {
|
|
19
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
20
|
+
const value = controlledValue ?? uncontrolledValue;
|
|
21
|
+
return /* @__PURE__ */ jsx("input", {
|
|
22
|
+
...props,
|
|
23
|
+
ref,
|
|
24
|
+
className: cx(dataToolbar().search, className),
|
|
25
|
+
"data-slot": "data-toolbar-search",
|
|
26
|
+
onChange: (event) => {
|
|
27
|
+
if (controlledValue === void 0) setUncontrolledValue(event.currentTarget.value);
|
|
28
|
+
onValueChange?.(event.currentTarget.value);
|
|
29
|
+
props.onChange?.(event);
|
|
30
|
+
},
|
|
31
|
+
type: props.type ?? "search",
|
|
32
|
+
value
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
const DataToolbarFilters = forwardRef(function DataToolbarFilters({ className, ...props }, ref) {
|
|
36
|
+
return /* @__PURE__ */ jsx("div", {
|
|
37
|
+
...props,
|
|
38
|
+
ref,
|
|
39
|
+
className: cx(dataToolbar().filters, className),
|
|
40
|
+
"data-slot": "data-toolbar-filters"
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const DataToolbarSort = forwardRef(function DataToolbarSort({ className, defaultValue = "", onValueChange, value: controlledValue, ...props }, ref) {
|
|
44
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
45
|
+
const value = controlledValue ?? uncontrolledValue;
|
|
46
|
+
return /* @__PURE__ */ jsx("select", {
|
|
47
|
+
...props,
|
|
48
|
+
ref,
|
|
49
|
+
className: cx(dataToolbar().sort, className),
|
|
50
|
+
"data-slot": "data-toolbar-sort",
|
|
51
|
+
onChange: (event) => {
|
|
52
|
+
if (controlledValue === void 0) setUncontrolledValue(event.currentTarget.value);
|
|
53
|
+
onValueChange?.(event.currentTarget.value);
|
|
54
|
+
props.onChange?.(event);
|
|
55
|
+
},
|
|
56
|
+
value
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
const DataToolbarSelection = forwardRef(function DataToolbarSelection({ children, className, count, label = "selected", onClear, ...props }, ref) {
|
|
60
|
+
return /* @__PURE__ */ jsx(SelectionContext.Provider, {
|
|
61
|
+
value: {
|
|
62
|
+
count,
|
|
63
|
+
onClear
|
|
64
|
+
},
|
|
65
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
66
|
+
...props,
|
|
67
|
+
ref,
|
|
68
|
+
"aria-live": "polite",
|
|
69
|
+
className: cx(dataToolbar().selection, className),
|
|
70
|
+
"data-count": count,
|
|
71
|
+
"data-slot": "data-toolbar-selection",
|
|
72
|
+
children: children ?? `${count} ${label}`
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
const DataToolbarClearSelection = forwardRef(function DataToolbarClearSelection({ children = "Clear selection", className, onClick, ...props }, ref) {
|
|
77
|
+
const context = useContext(SelectionContext);
|
|
78
|
+
return /* @__PURE__ */ jsx("button", {
|
|
79
|
+
...props,
|
|
80
|
+
ref,
|
|
81
|
+
className: cx(dataToolbar().clearSelection, className),
|
|
82
|
+
"data-slot": "data-toolbar-clear-selection",
|
|
83
|
+
onClick: (event) => {
|
|
84
|
+
context?.onClear?.();
|
|
85
|
+
onClick?.(event);
|
|
86
|
+
},
|
|
87
|
+
type: "button",
|
|
88
|
+
children
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
const DataToolbarActions = forwardRef(function DataToolbarActions({ className, ...props }, ref) {
|
|
92
|
+
return /* @__PURE__ */ jsx("div", {
|
|
93
|
+
...props,
|
|
94
|
+
ref,
|
|
95
|
+
className: cx(dataToolbar().actions, className),
|
|
96
|
+
"data-slot": "data-toolbar-actions"
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
const DataToolbarClear = forwardRef(function DataToolbarClear({ children = "Clear filters", className, ...props }, ref) {
|
|
100
|
+
return /* @__PURE__ */ jsx("button", {
|
|
101
|
+
...props,
|
|
102
|
+
ref,
|
|
103
|
+
className: cx(dataToolbar().clear, className),
|
|
104
|
+
"data-slot": "data-toolbar-clear",
|
|
105
|
+
type: "button",
|
|
106
|
+
children
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
const DataToolbarSeparator = forwardRef(function DataToolbarSeparator({ className, ...props }, ref) {
|
|
110
|
+
return /* @__PURE__ */ jsx("div", {
|
|
111
|
+
...props,
|
|
112
|
+
ref,
|
|
113
|
+
"aria-hidden": "true",
|
|
114
|
+
className: cx(dataToolbar().separator, className),
|
|
115
|
+
"data-slot": "data-toolbar-separator"
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
const DataToolbar = {
|
|
119
|
+
Root: DataToolbarRoot,
|
|
120
|
+
Search: DataToolbarSearch,
|
|
121
|
+
Filters: DataToolbarFilters,
|
|
122
|
+
Sort: DataToolbarSort,
|
|
123
|
+
Selection: DataToolbarSelection,
|
|
124
|
+
ClearSelection: DataToolbarClearSelection,
|
|
125
|
+
Actions: DataToolbarActions,
|
|
126
|
+
Clear: DataToolbarClear,
|
|
127
|
+
Separator: DataToolbarSeparator
|
|
128
|
+
};
|
|
129
|
+
//#endregion
|
|
130
|
+
export { DataToolbar, DataToolbarActions, DataToolbarClear, DataToolbarClearSelection, DataToolbarFilters, DataToolbarRoot, DataToolbarSearch, DataToolbarSelection, DataToolbarSeparator, DataToolbarSort };
|
|
131
|
+
|
|
132
|
+
//# sourceMappingURL=data-toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-toolbar.js","names":[],"sources":["../../../src/components/data-toolbar/data-toolbar.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, forwardRef, useContext, useState } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { cx } from \"../../styled-system/css\";\nimport { dataToolbar } from \"../../styled-system/recipes\";\n\ninterface SelectionContextValue {\n count: number;\n onClear: (() => void) | undefined;\n}\n\nconst SelectionContext = createContext<SelectionContextValue | null>(null);\n\nexport type DataToolbarRootProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarRoot = forwardRef<HTMLDivElement, DataToolbarRootProps>(\n function DataToolbarRoot({ className, role, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataToolbar().root, className)}\n data-jaci-component=\"data-toolbar\"\n data-slot=\"data-toolbar\"\n role={role ?? \"toolbar\"}\n />\n );\n },\n);\n\nexport interface DataToolbarSearchProps\n extends Omit<ComponentPropsWithoutRef<\"input\">, \"defaultValue\" | \"onChange\" | \"value\"> {\n defaultValue?: string;\n onChange?: ComponentPropsWithoutRef<\"input\">[\"onChange\"];\n onValueChange?: (value: string) => void;\n value?: string;\n}\n\nexport const DataToolbarSearch = forwardRef<HTMLInputElement, DataToolbarSearchProps>(\n function DataToolbarSearch(\n { className, defaultValue = \"\", onValueChange, value: controlledValue, ...props },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n return (\n <input\n {...props}\n ref={ref}\n className={cx(dataToolbar().search, className)}\n data-slot=\"data-toolbar-search\"\n onChange={(event) => {\n if (controlledValue === undefined) setUncontrolledValue(event.currentTarget.value);\n onValueChange?.(event.currentTarget.value);\n props.onChange?.(event);\n }}\n type={props.type ?? \"search\"}\n value={value}\n />\n );\n },\n);\n\nexport type DataToolbarFiltersProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarFilters = forwardRef<HTMLDivElement, DataToolbarFiltersProps>(\n function DataToolbarFilters({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataToolbar().filters, className)}\n data-slot=\"data-toolbar-filters\"\n />\n );\n },\n);\n\nexport interface DataToolbarSortProps\n extends Omit<ComponentPropsWithoutRef<\"select\">, \"defaultValue\" | \"onChange\" | \"value\"> {\n defaultValue?: string;\n onChange?: ComponentPropsWithoutRef<\"select\">[\"onChange\"];\n onValueChange?: (value: string) => void;\n value?: string;\n}\n\nexport const DataToolbarSort = forwardRef<HTMLSelectElement, DataToolbarSortProps>(\n function DataToolbarSort(\n { className, defaultValue = \"\", onValueChange, value: controlledValue, ...props },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n return (\n <select\n {...props}\n ref={ref}\n className={cx(dataToolbar().sort, className)}\n data-slot=\"data-toolbar-sort\"\n onChange={(event) => {\n if (controlledValue === undefined) setUncontrolledValue(event.currentTarget.value);\n onValueChange?.(event.currentTarget.value);\n props.onChange?.(event);\n }}\n value={value}\n />\n );\n },\n);\n\nexport interface DataToolbarSelectionProps extends ComponentPropsWithoutRef<\"div\"> {\n count: number;\n label?: ReactNode;\n onClear?: () => void;\n}\nexport const DataToolbarSelection = forwardRef<HTMLDivElement, DataToolbarSelectionProps>(\n function DataToolbarSelection(\n { children, className, count, label = \"selected\", onClear, ...props },\n ref,\n ) {\n return (\n <SelectionContext.Provider value={{ count, onClear }}>\n <div\n {...props}\n ref={ref}\n aria-live=\"polite\"\n className={cx(dataToolbar().selection, className)}\n data-count={count}\n data-slot=\"data-toolbar-selection\"\n >\n {children ?? `${count} ${label}`}\n </div>\n </SelectionContext.Provider>\n );\n },\n);\n\nexport interface DataToolbarClearSelectionProps extends ComponentPropsWithoutRef<\"button\"> {\n children?: ReactNode;\n}\nexport const DataToolbarClearSelection = forwardRef<\n HTMLButtonElement,\n DataToolbarClearSelectionProps\n>(function DataToolbarClearSelection(\n { children = \"Clear selection\", className, onClick, ...props },\n ref,\n) {\n const context = useContext(SelectionContext);\n return (\n <button\n {...props}\n ref={ref}\n className={cx(dataToolbar().clearSelection, className)}\n data-slot=\"data-toolbar-clear-selection\"\n onClick={(event) => {\n context?.onClear?.();\n onClick?.(event);\n }}\n type=\"button\"\n >\n {children}\n </button>\n );\n});\n\nexport type DataToolbarActionsProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarActions = forwardRef<HTMLDivElement, DataToolbarActionsProps>(\n function DataToolbarActions({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataToolbar().actions, className)}\n data-slot=\"data-toolbar-actions\"\n />\n );\n },\n);\n\nexport type DataToolbarClearProps = ComponentPropsWithoutRef<\"button\">;\nexport const DataToolbarClear = forwardRef<HTMLButtonElement, DataToolbarClearProps>(\n function DataToolbarClear({ children = \"Clear filters\", className, ...props }, ref) {\n return (\n <button\n {...props}\n ref={ref}\n className={cx(dataToolbar().clear, className)}\n data-slot=\"data-toolbar-clear\"\n type=\"button\"\n >\n {children}\n </button>\n );\n },\n);\n\nexport type DataToolbarSeparatorProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataToolbarSeparator = forwardRef<HTMLDivElement, DataToolbarSeparatorProps>(\n function DataToolbarSeparator({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n aria-hidden=\"true\"\n className={cx(dataToolbar().separator, className)}\n data-slot=\"data-toolbar-separator\"\n />\n );\n },\n);\n\nexport const DataToolbar = {\n Root: DataToolbarRoot,\n Search: DataToolbarSearch,\n Filters: DataToolbarFilters,\n Sort: DataToolbarSort,\n Selection: DataToolbarSelection,\n ClearSelection: DataToolbarClearSelection,\n Actions: DataToolbarActions,\n Clear: DataToolbarClear,\n Separator: DataToolbarSeparator,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DataToolbar, DataToolbarActions, DataToolbarActionsProps, DataToolbarClear, DataToolbarClearProps, DataToolbarClearSelection, DataToolbarClearSelectionProps, DataToolbarFilters, DataToolbarFiltersProps, DataToolbarRoot, DataToolbarRootProps, DataToolbarSearch, DataToolbarSearchProps, DataToolbarSelection, DataToolbarSelectionProps, DataToolbarSeparator, DataToolbarSeparatorProps, DataToolbarSort, DataToolbarSortProps } from "./data-toolbar.cjs";
|
|
2
|
+
export { DataToolbar, DataToolbarActions, type DataToolbarActionsProps, DataToolbarClear, type DataToolbarClearProps, DataToolbarClearSelection, type DataToolbarClearSelectionProps, DataToolbarFilters, type DataToolbarFiltersProps, DataToolbarRoot, type DataToolbarRootProps, DataToolbarSearch, type DataToolbarSearchProps, DataToolbarSelection, type DataToolbarSelectionProps, DataToolbarSeparator, type DataToolbarSeparatorProps, DataToolbarSort, type DataToolbarSortProps };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DataToolbar, DataToolbarActions, DataToolbarActionsProps, DataToolbarClear, DataToolbarClearProps, DataToolbarClearSelection, DataToolbarClearSelectionProps, DataToolbarFilters, DataToolbarFiltersProps, DataToolbarRoot, DataToolbarRootProps, DataToolbarSearch, DataToolbarSearchProps, DataToolbarSelection, DataToolbarSelectionProps, DataToolbarSeparator, DataToolbarSeparatorProps, DataToolbarSort, DataToolbarSortProps } from "./data-toolbar.js";
|
|
2
|
+
export { DataToolbar, DataToolbarActions, type DataToolbarActionsProps, DataToolbarClear, type DataToolbarClearProps, DataToolbarClearSelection, type DataToolbarClearSelectionProps, DataToolbarFilters, type DataToolbarFiltersProps, DataToolbarRoot, type DataToolbarRootProps, DataToolbarSearch, type DataToolbarSearchProps, DataToolbarSelection, type DataToolbarSelectionProps, DataToolbarSeparator, type DataToolbarSeparatorProps, DataToolbarSort, type DataToolbarSortProps };
|
|
@@ -3,7 +3,7 @@ const require_data_view = require("../../styled-system/recipes/data-view.cjs");
|
|
|
3
3
|
let react = require("react");
|
|
4
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
5
|
//#region src/components/data-view/data-view.tsx
|
|
6
|
-
const DataViewRoot = (0, react.forwardRef)(function DataViewRoot({ children, className, columns = 3, layout = "list", ...props }, ref) {
|
|
6
|
+
const DataViewRoot = (0, react.forwardRef)(function DataViewRoot({ children, className, columns = 3, layout = "list", status = "idle", ...props }, ref) {
|
|
7
7
|
const styles = require_data_view.dataView({
|
|
8
8
|
columns: String(columns),
|
|
9
9
|
layout
|
|
@@ -12,9 +12,11 @@ const DataViewRoot = (0, react.forwardRef)(function DataViewRoot({ children, cla
|
|
|
12
12
|
...props,
|
|
13
13
|
ref,
|
|
14
14
|
className: require_cx.cx(styles.root, className),
|
|
15
|
+
"aria-busy": props["aria-busy"] ?? (status === "loading" || void 0),
|
|
15
16
|
"data-columns": columns,
|
|
16
17
|
"data-jaci-component": "data-view",
|
|
17
18
|
"data-layout": layout,
|
|
19
|
+
"data-status": status,
|
|
18
20
|
"data-slot": "data-view",
|
|
19
21
|
children
|
|
20
22
|
});
|
|
@@ -27,6 +29,14 @@ const DataViewToolbar = (0, react.forwardRef)(function DataViewToolbar({ classNa
|
|
|
27
29
|
"data-slot": "data-view-toolbar"
|
|
28
30
|
});
|
|
29
31
|
});
|
|
32
|
+
const DataViewFilters = (0, react.forwardRef)(function DataViewFilters({ className, ...props }, ref) {
|
|
33
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
34
|
+
...props,
|
|
35
|
+
ref,
|
|
36
|
+
className: require_cx.cx(require_data_view.dataView().filters, className),
|
|
37
|
+
"data-slot": "data-view-filters"
|
|
38
|
+
});
|
|
39
|
+
});
|
|
30
40
|
const DataViewContent = (0, react.forwardRef)(function DataViewContent({ className, ...props }, ref) {
|
|
31
41
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
32
42
|
...props,
|
|
@@ -35,6 +45,22 @@ const DataViewContent = (0, react.forwardRef)(function DataViewContent({ classNa
|
|
|
35
45
|
"data-slot": "data-view-content"
|
|
36
46
|
});
|
|
37
47
|
});
|
|
48
|
+
const DataViewFooter = (0, react.forwardRef)(function DataViewFooter({ className, ...props }, ref) {
|
|
49
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
50
|
+
...props,
|
|
51
|
+
ref,
|
|
52
|
+
className: require_cx.cx(require_data_view.dataView().footer, className),
|
|
53
|
+
"data-slot": "data-view-footer"
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
const DataViewPagination = (0, react.forwardRef)(function DataViewPagination({ className, ...props }, ref) {
|
|
57
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
58
|
+
...props,
|
|
59
|
+
ref,
|
|
60
|
+
className: require_cx.cx(require_data_view.dataView().pagination, className),
|
|
61
|
+
"data-slot": "data-view-pagination"
|
|
62
|
+
});
|
|
63
|
+
});
|
|
38
64
|
const DataViewLoading = (0, react.forwardRef)(function DataViewLoading({ children = "Loading…", className, ...props }, ref) {
|
|
39
65
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
40
66
|
...props,
|
|
@@ -68,7 +94,10 @@ const DataViewError = (0, react.forwardRef)(function DataViewError({ children =
|
|
|
68
94
|
const DataView = {
|
|
69
95
|
Root: DataViewRoot,
|
|
70
96
|
Toolbar: DataViewToolbar,
|
|
97
|
+
Filters: DataViewFilters,
|
|
71
98
|
Content: DataViewContent,
|
|
99
|
+
Footer: DataViewFooter,
|
|
100
|
+
Pagination: DataViewPagination,
|
|
72
101
|
Loading: DataViewLoading,
|
|
73
102
|
Empty: DataViewEmpty,
|
|
74
103
|
Error: DataViewError
|
|
@@ -78,7 +107,10 @@ exports.DataView = DataView;
|
|
|
78
107
|
exports.DataViewContent = DataViewContent;
|
|
79
108
|
exports.DataViewEmpty = DataViewEmpty;
|
|
80
109
|
exports.DataViewError = DataViewError;
|
|
110
|
+
exports.DataViewFilters = DataViewFilters;
|
|
111
|
+
exports.DataViewFooter = DataViewFooter;
|
|
81
112
|
exports.DataViewLoading = DataViewLoading;
|
|
113
|
+
exports.DataViewPagination = DataViewPagination;
|
|
82
114
|
exports.DataViewRoot = DataViewRoot;
|
|
83
115
|
exports.DataViewToolbar = DataViewToolbar;
|
|
84
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-view.cjs","names":["dataView","cx"],"sources":["../../../src/components/data-view/data-view.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { cx } from \"../../styled-system/css\";\nimport { dataView } from \"../../styled-system/recipes\";\n\nexport type DataViewLayout = \"table\" | \"list\" | \"grid\";\nexport type DataViewColumns = 1 | 2 | 3 | 4;\n\nexport interface DataViewRootProps extends Omit<ComponentPropsWithoutRef<\"section\">, \"children\"> {\n children?: ReactNode;\n columns?: DataViewColumns;\n layout?: DataViewLayout;\n}\n\nexport const DataViewRoot = forwardRef<HTMLElement, DataViewRootProps>(function DataViewRoot(\n { children, className, columns = 3, layout = \"list\", ...props },\n ref,\n) {\n const styles = dataView({ columns: String(columns) as \"1\" | \"2\" | \"3\" | \"4\", layout });\n\n return (\n <section\n {...props}\n ref={ref}\n className={cx(styles.root, className)}\n data-columns={columns}\n data-jaci-component=\"data-view\"\n data-layout={layout}\n data-slot=\"data-view\"\n >\n {children}\n </section>\n );\n});\n\nexport type DataViewToolbarProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewToolbar = forwardRef<HTMLDivElement, DataViewToolbarProps>(\n function DataViewToolbar({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().toolbar, className)}\n data-slot=\"data-view-toolbar\"\n />\n );\n },\n);\n\nexport type DataViewContentProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewContent = forwardRef<HTMLDivElement, DataViewContentProps>(\n function DataViewContent({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().content, className)}\n data-slot=\"data-view-content\"\n />\n );\n },\n);\n\nexport interface DataViewStateProps extends ComponentPropsWithoutRef<\"div\"> {\n children?: ReactNode;\n}\n\nexport const DataViewLoading = forwardRef<HTMLDivElement, DataViewStateProps>(\n function DataViewLoading({ children = \"Loading…\", className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n aria-live=\"polite\"\n className={cx(dataView().loading, className)}\n data-slot=\"data-view-loading\"\n >\n {children}\n </div>\n );\n },\n);\n\nexport const DataViewEmpty = forwardRef<HTMLDivElement, DataViewStateProps>(function DataViewEmpty(\n { children = \"No results found.\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().empty, className)}\n data-slot=\"data-view-empty\"\n >\n {children}\n </div>\n );\n});\n\nexport const DataViewError = forwardRef<HTMLDivElement, DataViewStateProps>(function DataViewError(\n { children = \"Something went wrong.\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n aria-live=\"assertive\"\n className={cx(dataView().error, className)}\n data-slot=\"data-view-error\"\n role=\"alert\"\n >\n {children}\n </div>\n );\n});\n\n// biome-ignore lint/suspicious/noShadowRestrictedNames: DataView is the public component API name.\nexport const DataView = {\n Root: DataViewRoot,\n Toolbar: DataViewToolbar,\n Content: DataViewContent,\n Loading: DataViewLoading,\n Empty: DataViewEmpty,\n Error: DataViewError,\n};\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"data-view.cjs","names":["dataView","cx"],"sources":["../../../src/components/data-view/data-view.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { cx } from \"../../styled-system/css\";\nimport { dataView } from \"../../styled-system/recipes\";\n\nexport type DataViewLayout = \"table\" | \"list\" | \"grid\";\nexport type DataViewColumns = 1 | 2 | 3 | 4;\nexport type DataViewStatus = \"idle\" | \"loading\" | \"empty\" | \"error\" | \"ready\";\n\nexport interface DataViewRootProps extends Omit<ComponentPropsWithoutRef<\"section\">, \"children\"> {\n children?: ReactNode;\n columns?: DataViewColumns;\n layout?: DataViewLayout;\n status?: DataViewStatus;\n}\n\nexport const DataViewRoot = forwardRef<HTMLElement, DataViewRootProps>(function DataViewRoot(\n { children, className, columns = 3, layout = \"list\", status = \"idle\", ...props },\n ref,\n) {\n const styles = dataView({ columns: String(columns) as \"1\" | \"2\" | \"3\" | \"4\", layout });\n\n return (\n <section\n {...props}\n ref={ref}\n className={cx(styles.root, className)}\n aria-busy={props[\"aria-busy\"] ?? (status === \"loading\" || undefined)}\n data-columns={columns}\n data-jaci-component=\"data-view\"\n data-layout={layout}\n data-status={status}\n data-slot=\"data-view\"\n >\n {children}\n </section>\n );\n});\n\nexport type DataViewToolbarProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewToolbar = forwardRef<HTMLDivElement, DataViewToolbarProps>(\n function DataViewToolbar({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().toolbar, className)}\n data-slot=\"data-view-toolbar\"\n />\n );\n },\n);\n\nexport type DataViewFiltersProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewFilters = forwardRef<HTMLDivElement, DataViewFiltersProps>(\n function DataViewFilters({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().filters, className)}\n data-slot=\"data-view-filters\"\n />\n );\n },\n);\n\nexport type DataViewContentProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewContent = forwardRef<HTMLDivElement, DataViewContentProps>(\n function DataViewContent({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().content, className)}\n data-slot=\"data-view-content\"\n />\n );\n },\n);\n\nexport type DataViewFooterProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewFooter = forwardRef<HTMLDivElement, DataViewFooterProps>(\n function DataViewFooter({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().footer, className)}\n data-slot=\"data-view-footer\"\n />\n );\n },\n);\n\nexport type DataViewPaginationProps = ComponentPropsWithoutRef<\"div\">;\nexport const DataViewPagination = forwardRef<HTMLDivElement, DataViewPaginationProps>(\n function DataViewPagination({ className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().pagination, className)}\n data-slot=\"data-view-pagination\"\n />\n );\n },\n);\n\nexport interface DataViewStateProps extends ComponentPropsWithoutRef<\"div\"> {\n children?: ReactNode;\n}\n\nexport const DataViewLoading = forwardRef<HTMLDivElement, DataViewStateProps>(\n function DataViewLoading({ children = \"Loading…\", className, ...props }, ref) {\n return (\n <div\n {...props}\n ref={ref}\n aria-live=\"polite\"\n className={cx(dataView().loading, className)}\n data-slot=\"data-view-loading\"\n >\n {children}\n </div>\n );\n },\n);\n\nexport const DataViewEmpty = forwardRef<HTMLDivElement, DataViewStateProps>(function DataViewEmpty(\n { children = \"No results found.\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n className={cx(dataView().empty, className)}\n data-slot=\"data-view-empty\"\n >\n {children}\n </div>\n );\n});\n\nexport const DataViewError = forwardRef<HTMLDivElement, DataViewStateProps>(function DataViewError(\n { children = \"Something went wrong.\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n aria-live=\"assertive\"\n className={cx(dataView().error, className)}\n data-slot=\"data-view-error\"\n role=\"alert\"\n >\n {children}\n </div>\n );\n});\n\n// biome-ignore lint/suspicious/noShadowRestrictedNames: DataView is the public component API name.\nexport const DataView = {\n Root: DataViewRoot,\n Toolbar: DataViewToolbar,\n Filters: DataViewFilters,\n Content: DataViewContent,\n Footer: DataViewFooter,\n Pagination: DataViewPagination,\n Loading: DataViewLoading,\n Empty: DataViewEmpty,\n Error: DataViewError,\n};\n"],"mappings":"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"}
|