@sustaina/shared-ui 1.23.1 → 1.24.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
@@ -57,6 +57,7 @@ import { $setBlocksType } from '@lexical/selection';
57
57
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
58
58
  import * as SwitchPrimitive from '@radix-ui/react-switch';
59
59
  import Cropper from 'react-easy-crop';
60
+ import { NumericFormat } from 'react-number-format';
60
61
 
61
62
  var __defProp = Object.defineProperty;
62
63
  var __export = (target, all) => {
@@ -9737,7 +9738,174 @@ var Truncated = ({ children, className, ellipsis = true, as = "p", style }) => {
9737
9738
  );
9738
9739
  };
9739
9740
  var truncated_default = Truncated;
9741
+ var InputPrimitive2 = React4.forwardRef(
9742
+ ({ className, type = "text", ...props }, ref) => {
9743
+ return /* @__PURE__ */ jsx(
9744
+ "input",
9745
+ {
9746
+ ref,
9747
+ type,
9748
+ className: cn(
9749
+ "placeholder:text-neutral-400 text-neutral-900 flex h-10 w-full min-w-0 items-center rounded-lg border bg-white px-4 text-sm transition-colors outline-none file:inline-flex file:h-7 file:rounded-md file:border-0 file:bg-transparent file:px-2 file:text-sm file:font-medium hover:border-neutral-500 focus-visible:border-neutral-900 focus-visible:ring-0 disabled:cursor-not-allowed disabled:bg-neutral-100 disabled:text-neutral-400 disabled:border-neutral-200 aria-invalid:border-destructive",
9750
+ className
9751
+ ),
9752
+ ...props
9753
+ }
9754
+ );
9755
+ }
9756
+ );
9757
+ InputPrimitive2.displayName = "InputPrimitive";
9758
+ var inputVariants2 = cva("", {
9759
+ variants: {
9760
+ controlSize: {
9761
+ sm: "h-9 rounded-md px-3 text-sm",
9762
+ md: "h-10 rounded-lg px-4 text-sm",
9763
+ lg: "h-12 rounded-xl px-5 text-base"
9764
+ },
9765
+ fullWidth: {
9766
+ true: "w-full",
9767
+ false: "w-auto"
9768
+ },
9769
+ appearance: {
9770
+ filled: "border-neutral-200 hover:border-neutral-500 focus-visible:border-neutral-900",
9771
+ unfilled: "bg-white border-neutral-300 hover:border-neutral-500 focus-visible:border-neutral-900"
9772
+ }
9773
+ },
9774
+ defaultVariants: {
9775
+ controlSize: "sm",
9776
+ fullWidth: true,
9777
+ appearance: "filled"
9778
+ }
9779
+ });
9780
+ var Input2 = React4.forwardRef(
9781
+ ({
9782
+ className,
9783
+ wrapperClassName,
9784
+ controlSize,
9785
+ fullWidth,
9786
+ appearance,
9787
+ addonPrefix,
9788
+ addonPrefixProps,
9789
+ prefixInteractive,
9790
+ addonSuffix,
9791
+ addonSuffixProps,
9792
+ suffixInteractive,
9793
+ invalid,
9794
+ loading,
9795
+ loadingIcon,
9796
+ validationMessage,
9797
+ validationIcon,
9798
+ validationMessageProps,
9799
+ onValueChange,
9800
+ type = "text",
9801
+ ...rest
9802
+ }, ref) => {
9803
+ const inputProps = rest;
9804
+ const hasPrefix = Boolean(addonPrefix);
9805
+ const hasSuffix = Boolean(addonSuffix) || loading;
9806
+ const isFullWidth = fullWidth ?? true;
9807
+ const {
9808
+ "aria-invalid": ariaInvalidProp,
9809
+ "aria-describedby": ariaDescribedByProp,
9810
+ onChange: onChangeProp
9811
+ } = rest;
9812
+ const ariaInvalid = invalid ?? ariaInvalidProp;
9813
+ const messageId = React4.useId();
9814
+ const handleChange = React4.useCallback(
9815
+ (event) => {
9816
+ onChangeProp?.(event);
9817
+ onValueChange?.(event.target.value);
9818
+ },
9819
+ [onChangeProp, onValueChange]
9820
+ );
9821
+ const resolvedAriaInvalid = typeof ariaInvalid === "string" ? ariaInvalid : ariaInvalid ? true : void 0;
9822
+ const describedBy = validationMessage ? [ariaDescribedByProp, messageId].filter(Boolean).join(" ") : ariaDescribedByProp;
9823
+ const controlWrapperClassName = cn(
9824
+ "relative inline-flex items-center",
9825
+ isFullWidth ? "w-full" : "w-fit",
9826
+ !validationMessage && wrapperClassName
9827
+ );
9828
+ const inputElement = /* @__PURE__ */ jsx(
9829
+ InputPrimitive2,
9830
+ {
9831
+ ref,
9832
+ type,
9833
+ "data-slot": "input",
9834
+ className: cn(
9835
+ inputVariants2({ controlSize, fullWidth: isFullWidth, appearance }),
9836
+ hasPrefix && "pl-10",
9837
+ hasSuffix && "pr-10",
9838
+ className
9839
+ ),
9840
+ "aria-invalid": resolvedAriaInvalid,
9841
+ "aria-describedby": describedBy || void 0,
9842
+ onChange: handleChange,
9843
+ ...inputProps
9844
+ }
9845
+ );
9846
+ if (!hasPrefix && !hasSuffix && !validationMessage) {
9847
+ return inputElement;
9848
+ }
9849
+ const { className: prefixClassName, ...prefixRest } = addonPrefixProps ?? {};
9850
+ const { className: suffixClassName, ...suffixRest } = addonSuffixProps ?? {};
9851
+ const { className: validationMessageClassName, ...validationMessageRest } = validationMessageProps ?? {};
9852
+ const suffixContent = /* @__PURE__ */ jsxs(Fragment, { children: [
9853
+ addonSuffix,
9854
+ loading && (loadingIcon ?? /* @__PURE__ */ jsx(Spinner, { size: 16, variant: "muted" }))
9855
+ ] });
9856
+ const inputWithAffixes = /* @__PURE__ */ jsxs("div", { "data-slot": "input-wrapper", className: controlWrapperClassName, children: [
9857
+ hasPrefix && /* @__PURE__ */ jsx(
9858
+ "span",
9859
+ {
9860
+ ...prefixRest,
9861
+ className: cn(
9862
+ "absolute left-3 top-1/2 -translate-y-1/2 inline-flex items-center text-muted-foreground",
9863
+ !prefixInteractive && "pointer-events-none",
9864
+ prefixClassName
9865
+ ),
9866
+ children: addonPrefix
9867
+ }
9868
+ ),
9869
+ inputElement,
9870
+ hasSuffix && /* @__PURE__ */ jsx(
9871
+ "span",
9872
+ {
9873
+ ...suffixRest,
9874
+ className: cn(
9875
+ "absolute right-3 top-1/2 -translate-y-1/2 inline-flex items-center gap-2 text-muted-foreground",
9876
+ !suffixInteractive && "pointer-events-none",
9877
+ suffixClassName
9878
+ ),
9879
+ children: suffixContent
9880
+ }
9881
+ )
9882
+ ] });
9883
+ if (!validationMessage) {
9884
+ return inputWithAffixes;
9885
+ }
9886
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1", isFullWidth ? "w-full" : "w-fit", wrapperClassName), children: [
9887
+ inputWithAffixes,
9888
+ /* @__PURE__ */ jsxs(
9889
+ "p",
9890
+ {
9891
+ id: messageId,
9892
+ ...validationMessageRest,
9893
+ className: cn("flex items-center gap-2 text-sm text-destructive", validationMessageClassName),
9894
+ children: [
9895
+ validationIcon ?? /* @__PURE__ */ jsx(CircleX, { className: "size-4" }),
9896
+ /* @__PURE__ */ jsx("span", { children: validationMessage })
9897
+ ]
9898
+ }
9899
+ )
9900
+ ] });
9901
+ }
9902
+ );
9903
+ Input2.displayName = "Input";
9904
+ var InputNumber = ({ customInputProps, ...props }) => {
9905
+ return /* @__PURE__ */ jsx(NumericFormat, { customInput: Input2, ...props, ...customInputProps });
9906
+ };
9907
+ var InputNumber_default = InputNumber;
9740
9908
 
9741
- 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, FormulaEditor, 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, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, 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, validateTokenPrefixes };
9909
+ 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, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, InputNumber_default as InputNumber, 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, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, getDialogTemplates, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, 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, validateTokenPrefixes };
9742
9910
  //# sourceMappingURL=index.mjs.map
9743
9911
  //# sourceMappingURL=index.mjs.map