@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.d.mts
CHANGED
|
@@ -388,6 +388,7 @@ declare function DialogAlert({ open, onOpenChange, title, description, variant,
|
|
|
388
388
|
|
|
389
389
|
declare function isDefined(value: any): boolean;
|
|
390
390
|
declare function isEmptyObject(value: any): boolean;
|
|
391
|
+
declare function debounce<T extends (...args: any[]) => void>(fn: T, delay?: number): (...args: Parameters<T>) => void;
|
|
391
392
|
|
|
392
393
|
declare function stripNullishObject<T extends Record<string, any>>(value: Partial<T>): {
|
|
393
394
|
[k: string]: any;
|
|
@@ -496,4 +497,12 @@ type Breakpoints = {
|
|
|
496
497
|
};
|
|
497
498
|
declare const useScreenSize: (breakpoints?: Breakpoints) => UseScreenSizeResult;
|
|
498
499
|
|
|
499
|
-
|
|
500
|
+
type UseTruncatedOptions<T> = {
|
|
501
|
+
elementRef: React.RefObject<T | null>;
|
|
502
|
+
onChange?: (isTruncated: boolean) => void;
|
|
503
|
+
resizeDetectDelay?: number;
|
|
504
|
+
};
|
|
505
|
+
type UseTruncatedResult = boolean;
|
|
506
|
+
declare const useTruncated: <T extends HTMLElement = any>({ elementRef, onChange, resizeDetectDelay }: UseTruncatedOptions<T>) => UseTruncatedResult;
|
|
507
|
+
|
|
508
|
+
export { AdvanceSearch, type Breakpoints, Button, type Column, type ContentSlot, DataTable, type DataTableChildrenKeyHandler, type DataTableColumnFilter, type DataTableColumnFilterProps, type DataTableColumnGrouping, type DataTableColumnOrdering, type DataTableColumnPinning, type DataTableColumnSorting, type DataTableColumnVisibility, type DataTableComponentProps, type DataTableFilterConfig, type DataTableFilters, type DataTableGlobalFilter, type DataTableHeaderCell, type DataTableProps, type DataTableRenderHeaderHandler, type DataTableRenderHeaderProps, type DataTableRenderRowHandler, type DataTableRenderRowProps, type DataTableRowCell, type DataTableRowClickHandler, type DataTableRowClickMode, type DataTableRowExpansion, type DataTableRowIdKeyHandler, type DataTableRowSelection, type DataTableScrollFetch, type DataTableStatusContent, type DatatableColumnResizing, DialogAlert, type DialogAlertProps, type DialogVariant, type FieldSchema, FormErrorMessage, type FormErrorMessageProps, FormField, FormFieldContext, type FormFieldContextValue, type FormFieldProps, FormItem, FormItemContext, type FormItemContextValue, type FormItemProps, FormLabel, type FormLabelProps, type GridPayload, GridSettingsModal, type GridSettingsModalProps, HeaderCell, type HeaderCellProps, _default as Navbar, type NavbarProps, NumberInput, type NumberInputProps, PreventPageLeave, type RowClickType, type SorterProps, TextInput, type TextInputProps, type UseFormFieldOptions, type UseFormFieldReturn, type UseHoverResult, type UseMediaQueryOptions, type UseMediaQueryResult, type UsePreventPageLeaveOptions, type UseScreenSizeResult, type UseTruncatedOptions, type UseTruncatedResult, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, getColumnIdFromTable, isDefined, isEmptyObject, renderContentSlot, selectValueToBoolean, stripNullishObject, useFormField, useGridSettingsStore, useHover, useIntersectionObserver, useMediaQuery, usePreventPageLeave, usePreventPageLeaveStore, useScreenSize, useTruncated };
|
package/dist/index.d.ts
CHANGED
|
@@ -388,6 +388,7 @@ declare function DialogAlert({ open, onOpenChange, title, description, variant,
|
|
|
388
388
|
|
|
389
389
|
declare function isDefined(value: any): boolean;
|
|
390
390
|
declare function isEmptyObject(value: any): boolean;
|
|
391
|
+
declare function debounce<T extends (...args: any[]) => void>(fn: T, delay?: number): (...args: Parameters<T>) => void;
|
|
391
392
|
|
|
392
393
|
declare function stripNullishObject<T extends Record<string, any>>(value: Partial<T>): {
|
|
393
394
|
[k: string]: any;
|
|
@@ -496,4 +497,12 @@ type Breakpoints = {
|
|
|
496
497
|
};
|
|
497
498
|
declare const useScreenSize: (breakpoints?: Breakpoints) => UseScreenSizeResult;
|
|
498
499
|
|
|
499
|
-
|
|
500
|
+
type UseTruncatedOptions<T> = {
|
|
501
|
+
elementRef: React.RefObject<T | null>;
|
|
502
|
+
onChange?: (isTruncated: boolean) => void;
|
|
503
|
+
resizeDetectDelay?: number;
|
|
504
|
+
};
|
|
505
|
+
type UseTruncatedResult = boolean;
|
|
506
|
+
declare const useTruncated: <T extends HTMLElement = any>({ elementRef, onChange, resizeDetectDelay }: UseTruncatedOptions<T>) => UseTruncatedResult;
|
|
507
|
+
|
|
508
|
+
export { AdvanceSearch, type Breakpoints, Button, type Column, type ContentSlot, DataTable, type DataTableChildrenKeyHandler, type DataTableColumnFilter, type DataTableColumnFilterProps, type DataTableColumnGrouping, type DataTableColumnOrdering, type DataTableColumnPinning, type DataTableColumnSorting, type DataTableColumnVisibility, type DataTableComponentProps, type DataTableFilterConfig, type DataTableFilters, type DataTableGlobalFilter, type DataTableHeaderCell, type DataTableProps, type DataTableRenderHeaderHandler, type DataTableRenderHeaderProps, type DataTableRenderRowHandler, type DataTableRenderRowProps, type DataTableRowCell, type DataTableRowClickHandler, type DataTableRowClickMode, type DataTableRowExpansion, type DataTableRowIdKeyHandler, type DataTableRowSelection, type DataTableScrollFetch, type DataTableStatusContent, type DatatableColumnResizing, DialogAlert, type DialogAlertProps, type DialogVariant, type FieldSchema, FormErrorMessage, type FormErrorMessageProps, FormField, FormFieldContext, type FormFieldContextValue, type FormFieldProps, FormItem, FormItemContext, type FormItemContextValue, type FormItemProps, FormLabel, type FormLabelProps, type GridPayload, GridSettingsModal, type GridSettingsModalProps, HeaderCell, type HeaderCellProps, _default as Navbar, type NavbarProps, NumberInput, type NumberInputProps, PreventPageLeave, type RowClickType, type SorterProps, TextInput, type TextInputProps, type UseFormFieldOptions, type UseFormFieldReturn, type UseHoverResult, type UseMediaQueryOptions, type UseMediaQueryResult, type UsePreventPageLeaveOptions, type UseScreenSizeResult, type UseTruncatedOptions, type UseTruncatedResult, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, getColumnIdFromTable, isDefined, isEmptyObject, renderContentSlot, selectValueToBoolean, stripNullishObject, useFormField, useGridSettingsStore, useHover, useIntersectionObserver, useMediaQuery, usePreventPageLeave, usePreventPageLeaveStore, useScreenSize, useTruncated };
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ var utilities = require('@dnd-kit/utilities');
|
|
|
17
17
|
var SelectPrimitive = require('@radix-ui/react-select');
|
|
18
18
|
var TooltipPrimitive = require('@radix-ui/react-tooltip');
|
|
19
19
|
var core = require('@dnd-kit/core');
|
|
20
|
+
var modifiers = require('@dnd-kit/modifiers');
|
|
20
21
|
var zod = require('zod');
|
|
21
22
|
var reactDom = require('react-dom');
|
|
22
23
|
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
@@ -159,6 +160,15 @@ function isDefined(value) {
|
|
|
159
160
|
function isEmptyObject(value) {
|
|
160
161
|
return !!value && Object.keys(value).length === 0 && value.constructor === Object;
|
|
161
162
|
}
|
|
163
|
+
function debounce(fn, delay = 150) {
|
|
164
|
+
let timeout = null;
|
|
165
|
+
return (...args) => {
|
|
166
|
+
if (timeout) clearTimeout(timeout);
|
|
167
|
+
timeout = setTimeout(() => {
|
|
168
|
+
fn(...args);
|
|
169
|
+
}, delay);
|
|
170
|
+
};
|
|
171
|
+
}
|
|
162
172
|
|
|
163
173
|
// src/utils/filters.ts
|
|
164
174
|
function stripNullishObject(value) {
|
|
@@ -385,6 +395,36 @@ var useScreenSize = (breakpoints) => {
|
|
|
385
395
|
return { isMobile, isTablet, isDesktop };
|
|
386
396
|
};
|
|
387
397
|
var useScreenSize_default = useScreenSize;
|
|
398
|
+
var useTruncated = ({
|
|
399
|
+
elementRef,
|
|
400
|
+
onChange,
|
|
401
|
+
resizeDetectDelay = 150
|
|
402
|
+
}) => {
|
|
403
|
+
const [isTruncated, setIsTruncated] = React4.useState(false);
|
|
404
|
+
React4.useEffect(() => {
|
|
405
|
+
const element = elementRef.current;
|
|
406
|
+
if (!element) return;
|
|
407
|
+
const checkTruncate = debounce(() => {
|
|
408
|
+
const truncated = element.scrollWidth > element.clientWidth;
|
|
409
|
+
setIsTruncated((prev) => {
|
|
410
|
+
if (prev !== truncated) {
|
|
411
|
+
onChange?.(truncated);
|
|
412
|
+
}
|
|
413
|
+
return truncated;
|
|
414
|
+
});
|
|
415
|
+
}, resizeDetectDelay);
|
|
416
|
+
checkTruncate();
|
|
417
|
+
const observer = new ResizeObserver(checkTruncate);
|
|
418
|
+
observer.observe(element);
|
|
419
|
+
window.addEventListener("resize", checkTruncate);
|
|
420
|
+
return () => {
|
|
421
|
+
observer.disconnect();
|
|
422
|
+
window.removeEventListener("resize", checkTruncate);
|
|
423
|
+
};
|
|
424
|
+
}, [elementRef, onChange, resizeDetectDelay]);
|
|
425
|
+
return isTruncated;
|
|
426
|
+
};
|
|
427
|
+
var useTruncated_default = useTruncated;
|
|
388
428
|
var HeaderCell = ({ rootClassName, labelClassName, context, label, sorterProps }) => {
|
|
389
429
|
const { ref, hovering } = useHover_default();
|
|
390
430
|
const showSorter = sorterProps?.show ?? context.column.getCanSort();
|
|
@@ -1403,6 +1443,7 @@ function SelectContent({
|
|
|
1403
1443
|
function SelectItem({
|
|
1404
1444
|
className,
|
|
1405
1445
|
children,
|
|
1446
|
+
hideCheckIcon,
|
|
1406
1447
|
...props
|
|
1407
1448
|
}) {
|
|
1408
1449
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1415,6 +1456,7 @@ function SelectItem({
|
|
|
1415
1456
|
),
|
|
1416
1457
|
...props,
|
|
1417
1458
|
children: [
|
|
1459
|
+
!hideCheckIcon && //
|
|
1418
1460
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
|
|
1419
1461
|
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
1420
1462
|
]
|
|
@@ -1554,6 +1596,7 @@ function SortableRow({
|
|
|
1554
1596
|
SelectItem,
|
|
1555
1597
|
{
|
|
1556
1598
|
value: opt.id,
|
|
1599
|
+
hideCheckIcon: true,
|
|
1557
1600
|
className: cn(
|
|
1558
1601
|
"focus:bg-[#e8edea]",
|
|
1559
1602
|
opt.id === field.value ? "font-bold bg-[#dae5de] focus:bg-[#dae5de]" : ""
|
|
@@ -1747,11 +1790,12 @@ var GridSettingsModal = ({
|
|
|
1747
1790
|
},
|
|
1748
1791
|
fields[0]?.fieldId
|
|
1749
1792
|
),
|
|
1750
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1793
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1751
1794
|
core.DndContext,
|
|
1752
1795
|
{
|
|
1753
1796
|
sensors,
|
|
1754
1797
|
collisionDetection: core.closestCenter,
|
|
1798
|
+
modifiers: [modifiers.restrictToParentElement, modifiers.restrictToVerticalAxis],
|
|
1755
1799
|
onDragStart: () => setIsDragging(true),
|
|
1756
1800
|
onDragEnd: (event) => {
|
|
1757
1801
|
setIsDragging(false);
|
|
@@ -1777,7 +1821,7 @@ var GridSettingsModal = ({
|
|
|
1777
1821
|
}
|
|
1778
1822
|
)
|
|
1779
1823
|
}
|
|
1780
|
-
),
|
|
1824
|
+
) }),
|
|
1781
1825
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-6", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1782
1826
|
Button2,
|
|
1783
1827
|
{
|
|
@@ -5121,6 +5165,7 @@ exports.booleanToSelectValue = booleanToSelectValue;
|
|
|
5121
5165
|
exports.buttonVariants = buttonVariants;
|
|
5122
5166
|
exports.cn = cn;
|
|
5123
5167
|
exports.compareAlphanumeric = compareAlphanumeric;
|
|
5168
|
+
exports.debounce = debounce;
|
|
5124
5169
|
exports.getColumnIdFromTable = getColumnIdFromTable;
|
|
5125
5170
|
exports.isDefined = isDefined;
|
|
5126
5171
|
exports.isEmptyObject = isEmptyObject;
|
|
@@ -5135,5 +5180,6 @@ exports.useMediaQuery = useMediaQuery_default;
|
|
|
5135
5180
|
exports.usePreventPageLeave = usePreventPageLeave_default;
|
|
5136
5181
|
exports.usePreventPageLeaveStore = usePreventPageLeaveStore_default;
|
|
5137
5182
|
exports.useScreenSize = useScreenSize_default;
|
|
5183
|
+
exports.useTruncated = useTruncated_default;
|
|
5138
5184
|
//# sourceMappingURL=index.js.map
|
|
5139
5185
|
//# sourceMappingURL=index.js.map
|