@sustaina/shared-ui 1.17.0 → 1.19.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/dist/index.mjs CHANGED
@@ -8678,7 +8678,74 @@ var CropperModal = ({
8678
8678
  }
8679
8679
  );
8680
8680
  };
8681
+ var Truncated = ({ children, className, ellipsis = true, as = "p", style }) => {
8682
+ const elementRef = useRef(null);
8683
+ const [open, setOpen] = useState(false);
8684
+ const [isTruncated, setIsTruncated] = useState(false);
8685
+ const Comp = as;
8686
+ const normalizedChildren = typeof children === "string" ? children.replace(/>/g, ">\u200B") : children;
8687
+ useEffect(() => {
8688
+ const el = elementRef.current;
8689
+ if (!el) return;
8690
+ const checkTruncate = debounce(() => {
8691
+ const overflowX = el.scrollWidth > el.clientWidth;
8692
+ const overflowY = el.scrollHeight > el.clientHeight;
8693
+ setIsTruncated(overflowX || overflowY);
8694
+ }, 300);
8695
+ const resizeObserver = new ResizeObserver(checkTruncate);
8696
+ resizeObserver.observe(el);
8697
+ return () => {
8698
+ resizeObserver.disconnect();
8699
+ };
8700
+ }, []);
8701
+ const lineClampLines = typeof ellipsis === "number" ? ellipsis : typeof ellipsis === "object" ? ellipsis.lineClamp ?? 3 : null;
8702
+ const truncationClass = useMemo(() => {
8703
+ if (!ellipsis) return "";
8704
+ if (typeof ellipsis === "number") return `line-clamp-${ellipsis}`;
8705
+ if (typeof ellipsis === "object") return `line-clamp-${lineClampLines ?? 3}`;
8706
+ return "truncate";
8707
+ }, [ellipsis, lineClampLines]);
8708
+ const clampedStyle = useMemo(() => {
8709
+ if (!lineClampLines) return style;
8710
+ return {
8711
+ ...style,
8712
+ display: "-webkit-box",
8713
+ WebkitLineClamp: lineClampLines,
8714
+ WebkitBoxOrient: "vertical",
8715
+ overflow: "hidden"
8716
+ };
8717
+ }, [lineClampLines, style]);
8718
+ const baseContent = /* @__PURE__ */ jsx(Comp, { ref: elementRef, className: cn(truncationClass, className), style: clampedStyle, children: normalizedChildren });
8719
+ let tooltipContent = normalizedChildren;
8720
+ let tooltipSide = "top";
8721
+ if (typeof ellipsis === "object") {
8722
+ tooltipContent = ellipsis?.content ?? normalizedChildren;
8723
+ tooltipSide = ellipsis?.side ?? "top";
8724
+ }
8725
+ return /* @__PURE__ */ jsxs(
8726
+ Tooltip2,
8727
+ {
8728
+ open,
8729
+ onOpenChange: (open2) => {
8730
+ setOpen(isTruncated && open2);
8731
+ },
8732
+ children: [
8733
+ /* @__PURE__ */ jsx(TooltipTrigger2, { asChild: true, children: baseContent }),
8734
+ /* @__PURE__ */ jsx(
8735
+ TooltipContent2,
8736
+ {
8737
+ side: tooltipSide,
8738
+ className: cn("text-white bg-[#8B8B8B] max-w-md wrap-break-word shadow-lg"),
8739
+ arrowClassName: "bg-[#8B8B8B] fill-[#8B8B8B]",
8740
+ children: tooltipContent
8741
+ }
8742
+ )
8743
+ ]
8744
+ }
8745
+ );
8746
+ };
8747
+ var truncated_default = Truncated;
8681
8748
 
8682
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CropperModal, CropperModalError, DIALOG_ALERT_I18N_SUBNAMESPACE, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, Textarea, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, ui_exports as UI, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, selectValueToBoolean, spinnerVariants, stripNullishObject, throttle, useFormField, useGridSettingsStore_default as 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, useSidebar, useTruncated_default as useTruncated };
8749
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CropperModal, CropperModalError, DIALOG_ALERT_I18N_SUBNAMESPACE, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, Textarea, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, truncated_default as Truncated, ui_exports as UI, booleanToSelectValue, buttonVariants, cn, compareAlphanumeric, debounce, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, selectValueToBoolean, spinnerVariants, stripNullishObject, throttle, useFormField, useGridSettingsStore_default as 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, useSidebar, useTruncated_default as useTruncated };
8683
8750
  //# sourceMappingURL=index.mjs.map
8684
8751
  //# sourceMappingURL=index.mjs.map