@sustaina/shared-ui 1.6.0 → 1.6.1
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.d.mts +10 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +48 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +47 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -16,6 +16,7 @@ import { CSS } from '@dnd-kit/utilities';
|
|
|
16
16
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
17
17
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
18
18
|
import { useSensors, useSensor, PointerSensor, DndContext, closestCenter } from '@dnd-kit/core';
|
|
19
|
+
import { restrictToParentElement, restrictToVerticalAxis } from '@dnd-kit/modifiers';
|
|
19
20
|
import { z } from 'zod';
|
|
20
21
|
import { createPortal } from 'react-dom';
|
|
21
22
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
@@ -130,6 +131,15 @@ function isDefined(value) {
|
|
|
130
131
|
function isEmptyObject(value) {
|
|
131
132
|
return !!value && Object.keys(value).length === 0 && value.constructor === Object;
|
|
132
133
|
}
|
|
134
|
+
function debounce(fn, delay = 150) {
|
|
135
|
+
let timeout = null;
|
|
136
|
+
return (...args) => {
|
|
137
|
+
if (timeout) clearTimeout(timeout);
|
|
138
|
+
timeout = setTimeout(() => {
|
|
139
|
+
fn(...args);
|
|
140
|
+
}, delay);
|
|
141
|
+
};
|
|
142
|
+
}
|
|
133
143
|
|
|
134
144
|
// src/utils/filters.ts
|
|
135
145
|
function stripNullishObject(value) {
|
|
@@ -356,6 +366,36 @@ var useScreenSize = (breakpoints) => {
|
|
|
356
366
|
return { isMobile, isTablet, isDesktop };
|
|
357
367
|
};
|
|
358
368
|
var useScreenSize_default = useScreenSize;
|
|
369
|
+
var useTruncated = ({
|
|
370
|
+
elementRef,
|
|
371
|
+
onChange,
|
|
372
|
+
resizeDetectDelay = 150
|
|
373
|
+
}) => {
|
|
374
|
+
const [isTruncated, setIsTruncated] = useState(false);
|
|
375
|
+
useEffect(() => {
|
|
376
|
+
const element = elementRef.current;
|
|
377
|
+
if (!element) return;
|
|
378
|
+
const checkTruncate = debounce(() => {
|
|
379
|
+
const truncated = element.scrollWidth > element.clientWidth;
|
|
380
|
+
setIsTruncated((prev) => {
|
|
381
|
+
if (prev !== truncated) {
|
|
382
|
+
onChange?.(truncated);
|
|
383
|
+
}
|
|
384
|
+
return truncated;
|
|
385
|
+
});
|
|
386
|
+
}, resizeDetectDelay);
|
|
387
|
+
checkTruncate();
|
|
388
|
+
const observer = new ResizeObserver(checkTruncate);
|
|
389
|
+
observer.observe(element);
|
|
390
|
+
window.addEventListener("resize", checkTruncate);
|
|
391
|
+
return () => {
|
|
392
|
+
observer.disconnect();
|
|
393
|
+
window.removeEventListener("resize", checkTruncate);
|
|
394
|
+
};
|
|
395
|
+
}, [elementRef, onChange, resizeDetectDelay]);
|
|
396
|
+
return isTruncated;
|
|
397
|
+
};
|
|
398
|
+
var useTruncated_default = useTruncated;
|
|
359
399
|
var HeaderCell = ({ rootClassName, labelClassName, context, label, sorterProps }) => {
|
|
360
400
|
const { ref, hovering } = useHover_default();
|
|
361
401
|
const showSorter = sorterProps?.show ?? context.column.getCanSort();
|
|
@@ -1374,6 +1414,7 @@ function SelectContent({
|
|
|
1374
1414
|
function SelectItem({
|
|
1375
1415
|
className,
|
|
1376
1416
|
children,
|
|
1417
|
+
hideCheckIcon,
|
|
1377
1418
|
...props
|
|
1378
1419
|
}) {
|
|
1379
1420
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1386,6 +1427,7 @@ function SelectItem({
|
|
|
1386
1427
|
),
|
|
1387
1428
|
...props,
|
|
1388
1429
|
children: [
|
|
1430
|
+
!hideCheckIcon && //
|
|
1389
1431
|
/* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
|
|
1390
1432
|
/* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
|
|
1391
1433
|
]
|
|
@@ -1525,6 +1567,7 @@ function SortableRow({
|
|
|
1525
1567
|
SelectItem,
|
|
1526
1568
|
{
|
|
1527
1569
|
value: opt.id,
|
|
1570
|
+
hideCheckIcon: true,
|
|
1528
1571
|
className: cn(
|
|
1529
1572
|
"focus:bg-[#e8edea]",
|
|
1530
1573
|
opt.id === field.value ? "font-bold bg-[#dae5de] focus:bg-[#dae5de]" : ""
|
|
@@ -1718,11 +1761,12 @@ var GridSettingsModal = ({
|
|
|
1718
1761
|
},
|
|
1719
1762
|
fields[0]?.fieldId
|
|
1720
1763
|
),
|
|
1721
|
-
/* @__PURE__ */ jsx(
|
|
1764
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: /* @__PURE__ */ jsx(
|
|
1722
1765
|
DndContext,
|
|
1723
1766
|
{
|
|
1724
1767
|
sensors,
|
|
1725
1768
|
collisionDetection: closestCenter,
|
|
1769
|
+
modifiers: [restrictToParentElement, restrictToVerticalAxis],
|
|
1726
1770
|
onDragStart: () => setIsDragging(true),
|
|
1727
1771
|
onDragEnd: (event) => {
|
|
1728
1772
|
setIsDragging(false);
|
|
@@ -1748,7 +1792,7 @@ var GridSettingsModal = ({
|
|
|
1748
1792
|
}
|
|
1749
1793
|
)
|
|
1750
1794
|
}
|
|
1751
|
-
),
|
|
1795
|
+
) }),
|
|
1752
1796
|
/* @__PURE__ */ jsx("div", { className: "px-6", children: /* @__PURE__ */ jsxs(
|
|
1753
1797
|
Button2,
|
|
1754
1798
|
{
|
|
@@ -5072,6 +5116,6 @@ function variantClass(variant) {
|
|
|
5072
5116
|
}
|
|
5073
5117
|
}
|
|
5074
5118
|
|
|
5075
|
-
export { AdvanceSearch_default as AdvanceSearch, Button, DataTable_default as DataTable, DialogAlert, FormErrorMessage, FormField, FormFieldContext, FormItem, FormItemContext, FormLabel, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, navbar_default as Navbar, NumberInput, PreventPageLeave_default as PreventPageLeave, TextInput, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, getColumnIdFromTable, isDefined, isEmptyObject, renderContentSlot, selectValueToBoolean, stripNullishObject, useFormField, useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize };
|
|
5119
|
+
export { AdvanceSearch_default as AdvanceSearch, Button, DataTable_default as DataTable, DialogAlert, FormErrorMessage, FormField, FormFieldContext, FormItem, FormItemContext, FormLabel, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, navbar_default as Navbar, NumberInput, PreventPageLeave_default as PreventPageLeave, TextInput, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, getColumnIdFromTable, isDefined, isEmptyObject, renderContentSlot, selectValueToBoolean, stripNullishObject, useFormField, useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useTruncated_default as useTruncated };
|
|
5076
5120
|
//# sourceMappingURL=index.mjs.map
|
|
5077
5121
|
//# sourceMappingURL=index.mjs.map
|