@gbmtech/aurora-ui 0.2.26 → 0.2.28

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.
@@ -1,2 +1,2 @@
1
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var t in a)__webpack_require__.o(a,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AsyncSelect:()=>AsyncSelect});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_react_namespaceObject=require("react"),use_debounce_cjs_namespaceObject=require("../hooks/use-debounce.cjs"),utils_cjs_namespaceObject=require("../lib/utils.cjs"),react_namespaceObject=require("@phosphor-icons/react"),external_button_cjs_namespaceObject=require("./button.cjs"),external_command_cjs_namespaceObject=require("./command.cjs"),external_popover_cjs_namespaceObject=require("./popover.cjs"),external_spinner_cjs_namespaceObject=require("./spinner.cjs");function AsyncSelect({fetcher:e,preload:a,filterFn:t,renderOption:c,getOptionValue:n,getDisplayValue:s,notFound:_,loadingSkeleton:r,label:m,placeholder:l="",value:j,onChange:p,onSearchChange:i,disabled:o=!1,className:u,triggerClassName:b,noResultsMessage:x,clearable:d=!0,keyExtractor:O}){let[f,h]=(0,external_react_namespaceObject.useState)(!1),[w,y]=(0,external_react_namespaceObject.useState)(!1),[v,g]=(0,external_react_namespaceObject.useState)([]),[S,k]=(0,external_react_namespaceObject.useState)(!1),[q,C]=(0,external_react_namespaceObject.useState)(null),[N,P]=(0,external_react_namespaceObject.useState)(j),[E,A]=(0,external_react_namespaceObject.useState)(null),[L,D]=(0,external_react_namespaceObject.useState)(""),I=(0,use_debounce_cjs_namespaceObject.useDebounce)(L,300*!a),[F,M]=(0,external_react_namespaceObject.useState)([]);(0,external_react_namespaceObject.useEffect)(()=>{h(!0),P(j)},[j]),(0,external_react_namespaceObject.useEffect)(()=>{if(j&&v.length>0){let e=v.find(e=>n(e)===j);e&&A(e)}else A(null)},[j,v,n]),(0,external_react_namespaceObject.useEffect)(()=>{let a=async()=>{try{k(!0),C(null);let a=await e(j);M(a),g(a)}catch(e){C(e instanceof Error?e.message:"Failed to fetch options")}finally{k(!1)}};f||a()},[f,e,j]),(0,external_react_namespaceObject.useEffect)(()=>{let c=async()=>{try{k(!0),C(null);let a=await e(I);M(a),g(a)}catch(e){C(e instanceof Error?e.message:"Failed to fetch options")}finally{k(!1)}};f&&a?a&&(I?g(F.filter(e=>!t||t(e,I))):g(F)):c()},[e,I,f,a,t]);let R=(0,external_react_namespaceObject.useCallback)(e=>{let a=d&&e===N?"":e;P(a),A(v.find(e=>n(e)===a)||null),p(a),y(!1)},[N,p,d,v,n]);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:w,onOpenChange:y,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)(external_button_cjs_namespaceObject.Button,{variant:"secondary",role:"combobox","aria-expanded":w,className:(0,utils_cjs_namespaceObject.cn)("w-full justify-between px-3 font-normal",o&&"cursor-not-allowed opacity-50",b),disabled:o,children:[E?s(E):l,(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDown,{className:"size-4 shrink-0 text-gray-400 opacity-50"})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:(0,utils_cjs_namespaceObject.cn)("w-[var(--radix-popover-trigger-width)] p-0",u),children:(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.Command,{shouldFilter:!1,children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"relative w-full border-b",children:[(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandInput,{placeholder:`Buscar ${m.toLowerCase()}...`,value:L,onValueChange:e=>{D(e),i?.(e)}}),S&&v.length>0&&(0,jsx_runtime_namespaceObject.jsx)("div",{className:"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center",children:(0,jsx_runtime_namespaceObject.jsx)(external_spinner_cjs_namespaceObject.Spinner,{})})]}),(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandList,{children:[q&&(0,jsx_runtime_namespaceObject.jsx)("div",{className:"p-4 text-center text-error",children:q}),S&&0===v.length&&(r||(0,jsx_runtime_namespaceObject.jsx)(DefaultLoadingSkeleton,{})),!S&&!q&&0===v.length&&(_||(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandEmpty,{children:x??"Nenhum registro encontrado."})),(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandGroup,{children:v.map(e=>(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandItem,{value:n(e),onSelect:R,children:[c(e),(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.Check,{className:(0,utils_cjs_namespaceObject.cn)("ml-auto h-3 w-3",N===n(e)?"opacity-100":"opacity-0")})]},O?O(e):n(e)))})]})]})})]})}function DefaultLoadingSkeleton(){return(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandGroup,{children:[1,2,3].map(e=>(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandItem,{disabled:!0,children:(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,jsx_runtime_namespaceObject.jsx)("div",{className:"h-6 w-6 animate-pulse rounded-full bg-muted"}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,jsx_runtime_namespaceObject.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,jsx_runtime_namespaceObject.jsx)("div",{className:"h-3 w-16 animate-pulse rounded bg-muted"})]})]})},e))})}for(var __webpack_i__ in exports.AsyncSelect=__webpack_exports__.AsyncSelect,__webpack_exports__)-1===["AsyncSelect"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var t in a)__webpack_require__.o(a,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AsyncSelect:()=>AsyncSelect});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_react_namespaceObject=require("react"),use_debounce_cjs_namespaceObject=require("../hooks/use-debounce.cjs"),utils_cjs_namespaceObject=require("../lib/utils.cjs"),react_namespaceObject=require("@phosphor-icons/react"),external_button_cjs_namespaceObject=require("./button.cjs"),external_command_cjs_namespaceObject=require("./command.cjs"),external_popover_cjs_namespaceObject=require("./popover.cjs"),external_spinner_cjs_namespaceObject=require("./spinner.cjs");function AsyncSelect({fetcher:e,preload:a,filterFn:t,renderOption:c,getOptionValue:n,getDisplayValue:s,notFound:_,loadingSkeleton:r,label:m,placeholder:l="",value:j,onChange:p,onSearchChange:i,disabled:o=!1,className:u,triggerClassName:b,noResultsMessage:x,clearable:d=!0,keyExtractor:O}){let[f,h]=(0,external_react_namespaceObject.useState)(!1),[w,y]=(0,external_react_namespaceObject.useState)(!1),[v,g]=(0,external_react_namespaceObject.useState)([]),[S,k]=(0,external_react_namespaceObject.useState)(!1),[q,C]=(0,external_react_namespaceObject.useState)(null),[N,P]=(0,external_react_namespaceObject.useState)(j),[E,A]=(0,external_react_namespaceObject.useState)(null),[L,D]=(0,external_react_namespaceObject.useState)(""),I=(0,use_debounce_cjs_namespaceObject.useDebounce)(L,300*!a),[F,M]=(0,external_react_namespaceObject.useState)([]);(0,external_react_namespaceObject.useEffect)(()=>{h(!0),P(j)},[j]),(0,external_react_namespaceObject.useEffect)(()=>{if(j&&v.length>0){let e=v.find(e=>n(e)===j);e&&A(e)}else A(null)},[j,v,n]),(0,external_react_namespaceObject.useEffect)(()=>{let a=async()=>{try{k(!0),C(null);let a=await e(j);M(a),g(a)}catch(e){C(e instanceof Error?e.message:"Failed to fetch options")}finally{k(!1)}};f||a()},[f,e,j]),(0,external_react_namespaceObject.useEffect)(()=>{let c=async()=>{try{k(!0),C(null);let a=await e(I);M(a),g(a)}catch(e){C(e instanceof Error?e.message:"Failed to fetch options")}finally{k(!1)}};f&&a?a&&(I?g(F.filter(e=>!t||t(e,I))):g(F)):c()},[e,I,f,a,t]);let R=(0,external_react_namespaceObject.useCallback)(e=>{let a=d&&e===N?"":e;P(a),A(v.find(e=>n(e)===a)||null),p(a),y(!1)},[N,p,d,v,n]);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:w,onOpenChange:y,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)(external_button_cjs_namespaceObject.Button,{variant:"secondary",role:"combobox","aria-expanded":w,className:(0,utils_cjs_namespaceObject.cn)("w-full justify-between px-3 font-normal",o&&"cursor-not-allowed opacity-50",b),disabled:o,children:[E?s(E):(0,jsx_runtime_namespaceObject.jsx)("span",{children:l}),(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDown,{className:"size-4 shrink-0 text-gray-400 opacity-50"})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:(0,utils_cjs_namespaceObject.cn)("w-[var(--radix-popover-trigger-width)] p-0",u),children:(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.Command,{shouldFilter:!1,children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"relative w-full border-b",children:[(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandInput,{placeholder:`Buscar ${m.toLowerCase()}...`,value:L,onValueChange:e=>{D(e),i?.(e)}}),S&&v.length>0&&(0,jsx_runtime_namespaceObject.jsx)("div",{className:"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center",children:(0,jsx_runtime_namespaceObject.jsx)(external_spinner_cjs_namespaceObject.Spinner,{})})]}),(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandList,{children:[q&&(0,jsx_runtime_namespaceObject.jsx)("div",{className:"p-4 text-center text-error",children:q}),S&&0===v.length&&(r||(0,jsx_runtime_namespaceObject.jsx)(DefaultLoadingSkeleton,{})),!S&&!q&&0===v.length&&(_||(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandEmpty,{children:x??"Nenhum registro encontrado."})),(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandGroup,{children:v.map(e=>(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandItem,{value:n(e),onSelect:R,children:[c(e),(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.Check,{className:(0,utils_cjs_namespaceObject.cn)("ml-auto h-3 w-3",N===n(e)?"opacity-100":"opacity-0")})]},O?O(e):n(e)))})]})]})})]})}function DefaultLoadingSkeleton(){return(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandGroup,{children:[1,2,3].map(e=>(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandItem,{disabled:!0,children:(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,jsx_runtime_namespaceObject.jsx)("div",{className:"h-6 w-6 animate-pulse rounded-full bg-muted"}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,jsx_runtime_namespaceObject.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,jsx_runtime_namespaceObject.jsx)("div",{className:"h-3 w-16 animate-pulse rounded bg-muted"})]})]})},e))})}for(var __webpack_i__ in exports.AsyncSelect=__webpack_exports__.AsyncSelect,__webpack_exports__)-1===["AsyncSelect"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
2
  //# sourceMappingURL=async-select.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\async-select.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/components/async-select.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport { useDebounce } from '@/hooks/use-debounce'\nimport { cn } from '@/lib/utils'\nimport { CaretDown, Check } from '@phosphor-icons/react'\nimport { Button } from './button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from './command'\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\nimport { Spinner } from './spinner'\n\nexport interface Option {\n value: string\n label: string\n disabled?: boolean\n description?: string\n icon?: React.ReactNode\n}\n\nexport interface AsyncSelectProps<T> {\n fetcher: (query?: string) => Promise<T[]>\n preload?: boolean\n filterFn?: (option: T, query: string) => boolean\n renderOption: (option: T) => React.ReactNode\n getOptionValue: (option: T) => string\n getDisplayValue: (option: T) => React.ReactNode\n notFound?: React.ReactNode\n loadingSkeleton?: React.ReactNode\n value: string\n onChange: (value: string) => void\n onSearchChange?: (value: string) => void\n label: string\n placeholder?: string\n disabled?: boolean\n className?: string\n triggerClassName?: string\n noResultsMessage?: string\n clearable?: boolean\n keyExtractor?: (option: T) => string\n}\n\nexport function AsyncSelect<T>({\n fetcher,\n preload,\n filterFn,\n renderOption,\n getOptionValue,\n getDisplayValue,\n notFound,\n loadingSkeleton,\n label,\n placeholder = '',\n value,\n onChange,\n onSearchChange,\n disabled = false,\n className,\n triggerClassName,\n noResultsMessage,\n clearable = true,\n keyExtractor,\n}: AsyncSelectProps<T>) {\n const [mounted, setMounted] = useState(false)\n const [open, setOpen] = useState(false)\n const [options, setOptions] = useState<T[]>([])\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [selectedValue, setSelectedValue] = useState(value)\n const [selectedOption, setSelectedOption] = useState<T | null>(null)\n const [searchTerm, setSearchTerm] = useState('')\n const debouncedSearchTerm = useDebounce(searchTerm, preload ? 0 : 300)\n const [originalOptions, setOriginalOptions] = useState<T[]>([])\n\n useEffect(() => {\n setMounted(true)\n setSelectedValue(value)\n }, [value])\n\n // Initialize selectedOption when options are loaded and value exists\n useEffect(() => {\n if (value && options.length > 0) {\n const option = options.find(opt => getOptionValue(opt) === value)\n if (option) {\n setSelectedOption(option)\n }\n } else {\n setSelectedOption(null)\n }\n }, [value, options, getOptionValue])\n\n // Effect for initial fetch\n useEffect(() => {\n const initializeOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n // If we have a value, use it for the initial search\n const data = await fetcher(value)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n initializeOptions()\n }\n }, [mounted, fetcher, value])\n\n useEffect(() => {\n const fetchOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n const data = await fetcher(debouncedSearchTerm)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n fetchOptions()\n } else if (!preload) {\n fetchOptions()\n } else if (preload) {\n if (debouncedSearchTerm) {\n setOptions(\n originalOptions.filter(option =>\n filterFn ? filterFn(option, debouncedSearchTerm) : true\n )\n )\n } else {\n setOptions(originalOptions)\n }\n }\n }, [fetcher, debouncedSearchTerm, mounted, preload, filterFn])\n\n const handleSelect = useCallback(\n (currentValue: string) => {\n const newValue =\n clearable && currentValue === selectedValue ? '' : currentValue\n setSelectedValue(newValue)\n setSelectedOption(\n options.find(option => getOptionValue(option) === newValue) || null\n )\n onChange(newValue)\n setOpen(false)\n },\n [selectedValue, onChange, clearable, options, getOptionValue]\n )\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'w-full justify-between px-3 font-normal',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n disabled={disabled}\n >\n {selectedOption ? getDisplayValue(selectedOption) : placeholder}\n <CaretDown className=\"size-4 shrink-0 text-gray-400 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className={cn('w-[var(--radix-popover-trigger-width)] p-0', className)}\n >\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Buscar ${label.toLowerCase()}...`}\n value={searchTerm}\n onValueChange={value => {\n setSearchTerm(value)\n onSearchChange?.(value)\n }}\n />\n {loading && options.length > 0 && (\n <div className=\"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center\">\n <Spinner />\n </div>\n )}\n </div>\n <CommandList>\n {error && <div className=\"p-4 text-center text-error\">{error}</div>}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? 'Nenhum registro encontrado.'}\n </CommandEmpty>\n ))}\n <CommandGroup>\n {options.map(option => (\n <CommandItem\n key={\n keyExtractor ? keyExtractor(option) : getOptionValue(option)\n }\n value={getOptionValue(option)}\n onSelect={handleSelect}\n >\n {renderOption(option)}\n <Check\n className={cn(\n 'ml-auto h-3 w-3',\n selectedValue === getOptionValue(option)\n ? 'opacity-100'\n : 'opacity-0'\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction DefaultLoadingSkeleton() {\n return (\n <CommandGroup>\n {[1, 2, 3].map(i => (\n <CommandItem key={i} disabled>\n <div className=\"flex w-full items-center gap-2\">\n <div className=\"h-6 w-6 animate-pulse rounded-full bg-muted\" />\n <div className=\"flex flex-1 flex-col gap-1\">\n <div className=\"h-4 w-24 animate-pulse rounded bg-muted\" />\n <div className=\"h-3 w-16 animate-pulse rounded bg-muted\" />\n </div>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n )\n}\n"],"names":["AsyncSelect","fetcher","preload","filterFn","renderOption","getOptionValue","getDisplayValue","notFound","loadingSkeleton","label","placeholder","value","onChange","onSearchChange","disabled","className","triggerClassName","noResultsMessage","clearable","keyExtractor","mounted","setMounted","useState","open","setOpen","options","setOptions","loading","setLoading","error","setError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","searchTerm","setSearchTerm","debouncedSearchTerm","useDebounce","originalOptions","setOriginalOptions","useEffect","option","opt","initializeOptions","data","err","Error","fetchOptions","handleSelect","useCallback","currentValue","newValue","Popover","PopoverTrigger","Button","cn","CaretDown","PopoverContent","Command","CommandInput","Spinner","CommandList","DefaultLoadingSkeleton","CommandEmpty","CommandGroup","CommandItem","Check","i"],"mappings":"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"}
1
+ {"version":3,"file":"components\\async-select.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/components/async-select.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport { useDebounce } from '@/hooks/use-debounce'\nimport { cn } from '@/lib/utils'\nimport { CaretDown, Check } from '@phosphor-icons/react'\nimport { Button } from './button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from './command'\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\nimport { Spinner } from './spinner'\n\nexport interface Option {\n value: string\n label: string\n disabled?: boolean\n description?: string\n icon?: React.ReactNode\n}\n\nexport interface AsyncSelectProps<T> {\n fetcher: (query?: string) => Promise<T[]>\n preload?: boolean\n filterFn?: (option: T, query: string) => boolean\n renderOption: (option: T) => React.ReactNode\n getOptionValue: (option: T) => string\n getDisplayValue: (option: T) => React.ReactNode\n notFound?: React.ReactNode\n loadingSkeleton?: React.ReactNode\n value: string\n onChange: (value: string) => void\n onSearchChange?: (value: string) => void\n label: string\n placeholder?: string\n disabled?: boolean\n className?: string\n triggerClassName?: string\n noResultsMessage?: string\n clearable?: boolean\n keyExtractor?: (option: T) => string\n}\n\nexport function AsyncSelect<T>({\n fetcher,\n preload,\n filterFn,\n renderOption,\n getOptionValue,\n getDisplayValue,\n notFound,\n loadingSkeleton,\n label,\n placeholder = '',\n value,\n onChange,\n onSearchChange,\n disabled = false,\n className,\n triggerClassName,\n noResultsMessage,\n clearable = true,\n keyExtractor,\n}: AsyncSelectProps<T>) {\n const [mounted, setMounted] = useState(false)\n const [open, setOpen] = useState(false)\n const [options, setOptions] = useState<T[]>([])\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [selectedValue, setSelectedValue] = useState(value)\n const [selectedOption, setSelectedOption] = useState<T | null>(null)\n const [searchTerm, setSearchTerm] = useState('')\n const debouncedSearchTerm = useDebounce(searchTerm, preload ? 0 : 300)\n const [originalOptions, setOriginalOptions] = useState<T[]>([])\n\n useEffect(() => {\n setMounted(true)\n setSelectedValue(value)\n }, [value])\n\n // Initialize selectedOption when options are loaded and value exists\n useEffect(() => {\n if (value && options.length > 0) {\n const option = options.find(opt => getOptionValue(opt) === value)\n if (option) {\n setSelectedOption(option)\n }\n } else {\n setSelectedOption(null)\n }\n }, [value, options, getOptionValue])\n\n // Effect for initial fetch\n useEffect(() => {\n const initializeOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n // If we have a value, use it for the initial search\n const data = await fetcher(value)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n initializeOptions()\n }\n }, [mounted, fetcher, value])\n\n useEffect(() => {\n const fetchOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n const data = await fetcher(debouncedSearchTerm)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n fetchOptions()\n } else if (!preload) {\n fetchOptions()\n } else if (preload) {\n if (debouncedSearchTerm) {\n setOptions(\n originalOptions.filter(option =>\n filterFn ? filterFn(option, debouncedSearchTerm) : true\n )\n )\n } else {\n setOptions(originalOptions)\n }\n }\n }, [fetcher, debouncedSearchTerm, mounted, preload, filterFn])\n\n const handleSelect = useCallback(\n (currentValue: string) => {\n const newValue =\n clearable && currentValue === selectedValue ? '' : currentValue\n setSelectedValue(newValue)\n setSelectedOption(\n options.find(option => getOptionValue(option) === newValue) || null\n )\n onChange(newValue)\n setOpen(false)\n },\n [selectedValue, onChange, clearable, options, getOptionValue]\n )\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'w-full justify-between px-3 font-normal',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n disabled={disabled}\n >\n {selectedOption ? (\n getDisplayValue(selectedOption)\n ) : (\n <span>{placeholder}</span>\n )}\n <CaretDown className=\"size-4 shrink-0 text-gray-400 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className={cn('w-[var(--radix-popover-trigger-width)] p-0', className)}\n >\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Buscar ${label.toLowerCase()}...`}\n value={searchTerm}\n onValueChange={value => {\n setSearchTerm(value)\n onSearchChange?.(value)\n }}\n />\n {loading && options.length > 0 && (\n <div className=\"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center\">\n <Spinner />\n </div>\n )}\n </div>\n <CommandList>\n {error && <div className=\"p-4 text-center text-error\">{error}</div>}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? 'Nenhum registro encontrado.'}\n </CommandEmpty>\n ))}\n <CommandGroup>\n {options.map(option => (\n <CommandItem\n key={\n keyExtractor ? keyExtractor(option) : getOptionValue(option)\n }\n value={getOptionValue(option)}\n onSelect={handleSelect}\n >\n {renderOption(option)}\n <Check\n className={cn(\n 'ml-auto h-3 w-3',\n selectedValue === getOptionValue(option)\n ? 'opacity-100'\n : 'opacity-0'\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction DefaultLoadingSkeleton() {\n return (\n <CommandGroup>\n {[1, 2, 3].map(i => (\n <CommandItem key={i} disabled>\n <div className=\"flex w-full items-center gap-2\">\n <div className=\"h-6 w-6 animate-pulse rounded-full bg-muted\" />\n <div className=\"flex flex-1 flex-col gap-1\">\n <div className=\"h-4 w-24 animate-pulse rounded bg-muted\" />\n <div className=\"h-3 w-16 animate-pulse rounded bg-muted\" />\n </div>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n )\n}\n"],"names":["AsyncSelect","fetcher","preload","filterFn","renderOption","getOptionValue","getDisplayValue","notFound","loadingSkeleton","label","placeholder","value","onChange","onSearchChange","disabled","className","triggerClassName","noResultsMessage","clearable","keyExtractor","mounted","setMounted","useState","open","setOpen","options","setOptions","loading","setLoading","error","setError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","searchTerm","setSearchTerm","debouncedSearchTerm","useDebounce","originalOptions","setOriginalOptions","useEffect","option","opt","initializeOptions","data","err","Error","fetchOptions","handleSelect","useCallback","currentValue","newValue","Popover","PopoverTrigger","Button","cn","CaretDown","PopoverContent","Command","CommandInput","Spinner","CommandList","DefaultLoadingSkeleton","CommandEmpty","CommandGroup","CommandItem","Check","i"],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./data-table-action-bar":function(e){e.exports=require("./data-table-action-bar.cjs")},"./data-table-advanced-toolbar":function(e){e.exports=require("./data-table-advanced-toolbar.cjs")},"./data-table-column-header":function(e){e.exports=require("./data-table-column-header.cjs")},"@/components/data-table/data-table-date-filter":function(e){e.exports=require("./data-table-date-filter.cjs")},"@/components/data-table/data-table-faceted-filter":function(e){e.exports=require("./data-table-faceted-filter.cjs")},"./data-table-filter-list":function(e){e.exports=require("./data-table-filter-list.cjs")},"./data-table-filter-menu":function(e){e.exports=require("./data-table-filter-menu.cjs")},"@/components/data-table/data-table-pagination":function(e){e.exports=require("./data-table-pagination.cjs")},"./data-table-range-filter":function(e){e.exports=require("./data-table-range-filter.cjs")},"./data-table-skeleton":function(e){e.exports=require("./data-table-skeleton.cjs")},"@/components/data-table/data-table-slider-filter":function(e){e.exports=require("./data-table-slider-filter.cjs")},"./data-table-sort-list":function(e){e.exports=require("./data-table-sort-list.cjs")},"./data-table-toolbar":function(e){e.exports=require("./data-table-toolbar.cjs")},"@/components/data-table/data-table-view-options":function(e){e.exports=require("./data-table-view-options.cjs")},"./data-table":function(e){e.exports=require("./data-table.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var a=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](a,a.exports,__webpack_require__),a.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var a in _)__webpack_require__.o(_,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:_[a]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__);var e=__webpack_require__("./data-table-action-bar"),_={};for(var a in e)"default"!==a&&(_[a]=(function(_){return e[_]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var r=__webpack_require__("./data-table-advanced-toolbar"),_={};for(var a in r)"default"!==a&&(_[a]=(function(e){return r[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var t=__webpack_require__("./data-table-column-header"),_={};for(var a in t)"default"!==a&&(_[a]=(function(e){return t[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var i=__webpack_require__("@/components/data-table/data-table-date-filter"),_={};for(var a in i)"default"!==a&&(_[a]=(function(e){return i[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var n=__webpack_require__("@/components/data-table/data-table-faceted-filter"),_={};for(var a in n)"default"!==a&&(_[a]=(function(e){return n[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var o=__webpack_require__("./data-table-filter-list"),_={};for(var a in o)"default"!==a&&(_[a]=(function(e){return o[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var c=__webpack_require__("./data-table-filter-menu"),_={};for(var a in c)"default"!==a&&(_[a]=(function(e){return c[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var b=__webpack_require__("@/components/data-table/data-table-pagination"),_={};for(var a in b)"default"!==a&&(_[a]=(function(e){return b[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var u=__webpack_require__("./data-table-range-filter"),_={};for(var a in u)"default"!==a&&(_[a]=(function(e){return u[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var d=__webpack_require__("./data-table-skeleton"),_={};for(var a in d)"default"!==a&&(_[a]=(function(e){return d[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var p=__webpack_require__("@/components/data-table/data-table-slider-filter"),_={};for(var a in p)"default"!==a&&(_[a]=(function(e){return p[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var l=__webpack_require__("./data-table-sort-list"),_={};for(var a in l)"default"!==a&&(_[a]=(function(e){return l[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var f=__webpack_require__("./data-table-toolbar"),_={};for(var a in f)"default"!==a&&(_[a]=(function(e){return f[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var s=__webpack_require__("@/components/data-table/data-table-view-options"),_={};for(var a in s)"default"!==a&&(_[a]=(function(e){return s[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var w=__webpack_require__("./data-table"),_={};for(var a in w)"default"!==a&&(_[a]=(function(e){return w[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_)})(),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./data-table-action-bar":function(e){e.exports=require("./data-table-action-bar.cjs")},"./data-table-advanced-toolbar":function(e){e.exports=require("./data-table-advanced-toolbar.cjs")},"./data-table-column-header":function(e){e.exports=require("./data-table-column-header.cjs")},"./data-table-date-filter":function(e){e.exports=require("./data-table-date-filter.cjs")},"./data-table-faceted-filter":function(e){e.exports=require("./data-table-faceted-filter.cjs")},"./data-table-filter-list":function(e){e.exports=require("./data-table-filter-list.cjs")},"./data-table-filter-menu":function(e){e.exports=require("./data-table-filter-menu.cjs")},"./data-table-pagination":function(e){e.exports=require("./data-table-pagination.cjs")},"./data-table-range-filter":function(e){e.exports=require("./data-table-range-filter.cjs")},"./data-table-skeleton":function(e){e.exports=require("./data-table-skeleton.cjs")},"./data-table-slider-filter":function(e){e.exports=require("./data-table-slider-filter.cjs")},"./data-table-sort-list":function(e){e.exports=require("./data-table-sort-list.cjs")},"./data-table-toolbar":function(e){e.exports=require("./data-table-toolbar.cjs")},"@/components/data-table/data-table-view-options":function(e){e.exports=require("./data-table-view-options.cjs")},"./data-table":function(e){e.exports=require("./data-table.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var a=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](a,a.exports,__webpack_require__),a.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var a in _)__webpack_require__.o(_,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:_[a]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__);var e=__webpack_require__("./data-table-action-bar"),_={};for(var a in e)"default"!==a&&(_[a]=(function(_){return e[_]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var r=__webpack_require__("./data-table-advanced-toolbar"),_={};for(var a in r)"default"!==a&&(_[a]=(function(e){return r[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var t=__webpack_require__("./data-table-column-header"),_={};for(var a in t)"default"!==a&&(_[a]=(function(e){return t[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var i=__webpack_require__("./data-table-date-filter"),_={};for(var a in i)"default"!==a&&(_[a]=(function(e){return i[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var n=__webpack_require__("./data-table-faceted-filter"),_={};for(var a in n)"default"!==a&&(_[a]=(function(e){return n[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var o=__webpack_require__("./data-table-filter-list"),_={};for(var a in o)"default"!==a&&(_[a]=(function(e){return o[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var u=__webpack_require__("./data-table-filter-menu"),_={};for(var a in u)"default"!==a&&(_[a]=(function(e){return u[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var c=__webpack_require__("./data-table-pagination"),_={};for(var a in c)"default"!==a&&(_[a]=(function(e){return c[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var b=__webpack_require__("./data-table-range-filter"),_={};for(var a in b)"default"!==a&&(_[a]=(function(e){return b[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var d=__webpack_require__("./data-table-skeleton"),_={};for(var a in d)"default"!==a&&(_[a]=(function(e){return d[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var p=__webpack_require__("./data-table-slider-filter"),_={};for(var a in p)"default"!==a&&(_[a]=(function(e){return p[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var l=__webpack_require__("./data-table-sort-list"),_={};for(var a in l)"default"!==a&&(_[a]=(function(e){return l[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var f=__webpack_require__("./data-table-toolbar"),_={};for(var a in f)"default"!==a&&(_[a]=(function(e){return f[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var s=__webpack_require__("@/components/data-table/data-table-view-options"),_={};for(var a in s)"default"!==a&&(_[a]=(function(e){return s[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_);var w=__webpack_require__("./data-table"),_={};for(var a in w)"default"!==a&&(_[a]=(function(e){return w[e]}).bind(0,a));__webpack_require__.d(__webpack_exports__,_)})(),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1,3 +1,3 @@
1
1
  'use client'
2
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var a in _)__webpack_require__.o(_,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:_[a]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{DatePicker:()=>DatePicker});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),external_date_fns_namespaceObject=require("date-fns"),external_react_namespaceObject=require("react"),utils_cjs_namespaceObject=require("../lib/utils.cjs"),external_button_cjs_namespaceObject=require("./button.cjs"),external_calendar_cjs_namespaceObject=require("./calendar.cjs"),external_popover_cjs_namespaceObject=require("./popover.cjs");function DatePicker({date:e,placeholder:_,className:a,disabled:r=!1,onChange:t}){let[c,n]=(0,external_react_namespaceObject.useState)(e);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)(external_button_cjs_namespaceObject.Button,{id:"date",variant:"secondary",size:"md",className:(0,utils_cjs_namespaceObject.cn)("min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50",!c&&"text-gray-400",a),disabled:r,children:[c?(0,external_date_fns_namespaceObject.format)(c,"dd/MM/yyyy"):(0,jsx_runtime_namespaceObject.jsx)("span",{children:_||"Selecione a data"}),(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CalendarBlank,{className:"ml-4 size-4 text-gray-600"})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:"w-auto p-0",align:"start",children:(0,jsx_runtime_namespaceObject.jsx)(external_calendar_cjs_namespaceObject.Calendar,{mode:"single",selected:c,onSelect:e=>{n(e),t?.(e)}})})]})}for(var __webpack_i__ in exports.DatePicker=__webpack_exports__.DatePicker,__webpack_exports__)-1===["DatePicker"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var a in _)__webpack_require__.o(_,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:_[a]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{DatePicker:()=>DatePicker});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),external_date_fns_namespaceObject=require("date-fns"),external_react_namespaceObject=require("react"),utils_cjs_namespaceObject=require("../lib/utils.cjs"),external_button_cjs_namespaceObject=require("./button.cjs"),external_calendar_cjs_namespaceObject=require("./calendar.cjs"),external_popover_cjs_namespaceObject=require("./popover.cjs");function DatePicker({date:e,placeholder:_,className:a,disabled:r=!1,onChange:t,...c}){let[n,s]=(0,external_react_namespaceObject.useState)(e);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)(external_button_cjs_namespaceObject.Button,{id:"date",variant:"secondary",size:"md",className:(0,utils_cjs_namespaceObject.cn)("min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50",!n&&"text-gray-400",a),disabled:r,children:[n?(0,external_date_fns_namespaceObject.format)(n,"dd/MM/yyyy"):(0,jsx_runtime_namespaceObject.jsx)("span",{children:_||"Selecione a data"}),(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CalendarBlank,{className:"ml-4 size-4 text-gray-600"})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:"w-auto p-0",align:"start",children:(0,jsx_runtime_namespaceObject.jsx)(external_calendar_cjs_namespaceObject.Calendar,{...c,mode:"single",selected:n,onSelect:e=>{s(e),t?.(e)}})})]})}for(var __webpack_i__ in exports.DatePicker=__webpack_exports__.DatePicker,__webpack_exports__)-1===["DatePicker"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
3
3
  //# sourceMappingURL=date-picker.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\date-picker.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\ninterface DatePickerProps {\r\n date?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePicker({\r\n date,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n onChange,\r\n}: DatePickerProps) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n size=\"md\"\r\n className={cn(\r\n 'min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50',\r\n !currentDate && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n <CalendarBlank className=\"ml-4 size-4 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n mode=\"single\"\r\n selected={currentDate}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePicker }\r\n"],"names":["DatePicker","date","placeholder","className","disabled","onChange","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar"],"mappings":";kvCAuBA,SAASA,WAAW,CAClBC,KAAAA,CAAI,CACJC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CAChBC,SAAAA,CAAQ,CACQ,EAChB,GAAM,CAACC,EAAaC,EAAe,CAAGC,GAAAA,+BAAAA,QAAAA,EAA2BP,GAEjE,MACE,qCAACQ,qCAAAA,OAAOA,CAAAA,C,UACN,oCAACC,qCAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,qCAACC,oCAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,KAAK,KACL,UAAWC,GAAAA,0BAAAA,EAAAA,EACT,0FACA,CAACN,GAAe,gBAChBH,GAEF,SAAUC,E,UAETE,EACCO,GAAAA,kCAAAA,MAAAA,EAAOP,EAAa,cAEpB,oCAAC,Q,SAAMJ,GAAe,kB,GAExB,oCAACY,sBAAAA,aAAaA,CAAAA,CAAC,UAAU,2B,QAG7B,oCAACC,qCAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,oCAACC,sCAAAA,QAAQA,CAAAA,CACP,KAAK,SACL,SAAUV,EACV,SAAUL,IACRM,EAAeN,GACfI,IAAWJ,EACb,C,OAKV,C"}
1
+ {"version":3,"file":"components\\date-picker.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { ComponentProps, useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePicker({\r\n date,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n onChange,\r\n ...props\r\n}: ComponentProps<typeof Calendar> & {\r\n date?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n size=\"md\"\r\n className={cn(\r\n 'min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50',\r\n !currentDate && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n <CalendarBlank className=\"ml-4 size-4 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n {...props}\r\n mode=\"single\"\r\n selected={currentDate}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePicker }\r\n"],"names":["DatePicker","date","placeholder","className","disabled","onChange","props","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar"],"mappings":";kvCAeA,SAASA,WAAW,CAClBC,KAAAA,CAAI,CACJC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CAChBC,SAAAA,CAAQ,CACR,GAAGC,EAOJ,EACC,GAAM,CAACC,EAAaC,EAAe,CAAGC,GAAAA,+BAAAA,QAAAA,EAA2BR,GAEjE,MACE,qCAACS,qCAAAA,OAAOA,CAAAA,C,UACN,oCAACC,qCAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,qCAACC,oCAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,KAAK,KACL,UAAWC,GAAAA,0BAAAA,EAAAA,EACT,0FACA,CAACN,GAAe,gBAChBJ,GAEF,SAAUC,E,UAETG,EACCO,GAAAA,kCAAAA,MAAAA,EAAOP,EAAa,cAEpB,oCAAC,Q,SAAML,GAAe,kB,GAExB,oCAACa,sBAAAA,aAAaA,CAAAA,CAAC,UAAU,2B,QAG7B,oCAACC,qCAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,oCAACC,sCAAAA,QAAQA,CAAAA,CACN,GAAGX,CAAK,CACT,KAAK,SACL,SAAUC,EACV,SAAUN,IACRO,EAAeP,GACfI,IAAWJ,EACb,C,OAKV,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"async-select.d.ts","sourceRoot":"","sources":["../../../src/components/async-select.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IAChD,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAA;IACrC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAA;CACrC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC7B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,QAAQ,EACR,eAAe,EACf,KAAK,EACL,WAAgB,EAChB,KAAK,EACL,QAAQ,EACR,cAAc,EACd,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,SAAgB,EAChB,YAAY,GACb,EAAE,gBAAgB,CAAC,CAAC,CAAC,2CA6KrB"}
1
+ {"version":3,"file":"async-select.d.ts","sourceRoot":"","sources":["../../../src/components/async-select.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IAChD,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAA;IACrC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAA;CACrC;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC7B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EACf,QAAQ,EACR,eAAe,EACf,KAAK,EACL,WAAgB,EAChB,KAAK,EACL,QAAQ,EACR,cAAc,EACd,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,SAAgB,EAChB,YAAY,GACb,EAAE,gBAAgB,CAAC,CAAC,CAAC,2CAiLrB"}
@@ -1,2 +1,2 @@
1
- import*as e from"react/jsx-runtime";import*as s from"react";import*as t from"../hooks/use-debounce.js";import*as a from"../lib/utils.js";import*as l from"@phosphor-icons/react";import*as r from"./button.js";import*as n from"./command.js";import*as o from"./popover.js";import*as i from"./spinner.js";function c({fetcher:c,preload:d,filterFn:u,renderOption:p,getOptionValue:f,getDisplayValue:h,notFound:x,loadingSkeleton:j,label:g,placeholder:v="",value:b,onChange:y,onSearchChange:C,disabled:w=!1,className:N,triggerClassName:S,noResultsMessage:E,clearable:k=!0,keyExtractor:F}){let[I,P]=(0,s.useState)(!1),[B,D]=(0,s.useState)(!1),[G,L]=(0,s.useState)([]),[z,A]=(0,s.useState)(!1),[O,T]=(0,s.useState)(null),[V,$]=(0,s.useState)(b),[q,H]=(0,s.useState)(null),[J,K]=(0,s.useState)(""),M=(0,t.useDebounce)(J,300*!d),[Q,R]=(0,s.useState)([]);(0,s.useEffect)(()=>{P(!0),$(b)},[b]),(0,s.useEffect)(()=>{if(b&&G.length>0){let e=G.find(e=>f(e)===b);e&&H(e)}else H(null)},[b,G,f]),(0,s.useEffect)(()=>{let e=async()=>{try{A(!0),T(null);let e=await c(b);R(e),L(e)}catch(e){T(e instanceof Error?e.message:"Failed to fetch options")}finally{A(!1)}};I||e()},[I,c,b]),(0,s.useEffect)(()=>{let e=async()=>{try{A(!0),T(null);let e=await c(M);R(e),L(e)}catch(e){T(e instanceof Error?e.message:"Failed to fetch options")}finally{A(!1)}};I&&d?d&&(M?L(Q.filter(e=>!u||u(e,M))):L(Q)):e()},[c,M,I,d,u]);let U=(0,s.useCallback)(e=>{let s=k&&e===V?"":e;$(s),H(G.find(e=>f(e)===s)||null),y(s),D(!1)},[V,y,k,G,f]);return(0,e.jsxs)(o.Popover,{open:B,onOpenChange:D,children:[(0,e.jsx)(o.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(r.Button,{variant:"secondary",role:"combobox","aria-expanded":B,className:(0,a.cn)("w-full justify-between px-3 font-normal",w&&"cursor-not-allowed opacity-50",S),disabled:w,children:[q?h(q):v,(0,e.jsx)(l.CaretDown,{className:"size-4 shrink-0 text-gray-400 opacity-50"})]})}),(0,e.jsx)(o.PopoverContent,{className:(0,a.cn)("w-[var(--radix-popover-trigger-width)] p-0",N),children:(0,e.jsxs)(n.Command,{shouldFilter:!1,children:[(0,e.jsxs)("div",{className:"relative w-full border-b",children:[(0,e.jsx)(n.CommandInput,{placeholder:`Buscar ${g.toLowerCase()}...`,value:J,onValueChange:e=>{K(e),C?.(e)}}),z&&G.length>0&&(0,e.jsx)("div",{className:"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center",children:(0,e.jsx)(i.Spinner,{})})]}),(0,e.jsxs)(n.CommandList,{children:[O&&(0,e.jsx)("div",{className:"p-4 text-center text-error",children:O}),z&&0===G.length&&(j||(0,e.jsx)(m,{})),!z&&!O&&0===G.length&&(x||(0,e.jsx)(n.CommandEmpty,{children:E??"Nenhum registro encontrado."})),(0,e.jsx)(n.CommandGroup,{children:G.map(s=>(0,e.jsxs)(n.CommandItem,{value:f(s),onSelect:U,children:[p(s),(0,e.jsx)(l.Check,{className:(0,a.cn)("ml-auto h-3 w-3",V===f(s)?"opacity-100":"opacity-0")})]},F?F(s):f(s)))})]})]})})]})}function m(){return(0,e.jsx)(n.CommandGroup,{children:[1,2,3].map(s=>(0,e.jsx)(n.CommandItem,{disabled:!0,children:(0,e.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,e.jsx)("div",{className:"h-6 w-6 animate-pulse rounded-full bg-muted"}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,e.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,e.jsx)("div",{className:"h-3 w-16 animate-pulse rounded bg-muted"})]})]})},s))})}export{c as AsyncSelect};
1
+ import*as e from"react/jsx-runtime";import*as s from"react";import*as t from"../hooks/use-debounce.js";import*as a from"../lib/utils.js";import*as l from"@phosphor-icons/react";import*as n from"./button.js";import*as r from"./command.js";import*as o from"./popover.js";import*as i from"./spinner.js";function c({fetcher:c,preload:d,filterFn:u,renderOption:p,getOptionValue:h,getDisplayValue:f,notFound:x,loadingSkeleton:j,label:g,placeholder:v="",value:b,onChange:y,onSearchChange:C,disabled:w=!1,className:N,triggerClassName:S,noResultsMessage:E,clearable:k=!0,keyExtractor:F}){let[I,P]=(0,s.useState)(!1),[B,D]=(0,s.useState)(!1),[G,L]=(0,s.useState)([]),[z,A]=(0,s.useState)(!1),[O,T]=(0,s.useState)(null),[V,$]=(0,s.useState)(b),[q,H]=(0,s.useState)(null),[J,K]=(0,s.useState)(""),M=(0,t.useDebounce)(J,300*!d),[Q,R]=(0,s.useState)([]);(0,s.useEffect)(()=>{P(!0),$(b)},[b]),(0,s.useEffect)(()=>{if(b&&G.length>0){let e=G.find(e=>h(e)===b);e&&H(e)}else H(null)},[b,G,h]),(0,s.useEffect)(()=>{let e=async()=>{try{A(!0),T(null);let e=await c(b);R(e),L(e)}catch(e){T(e instanceof Error?e.message:"Failed to fetch options")}finally{A(!1)}};I||e()},[I,c,b]),(0,s.useEffect)(()=>{let e=async()=>{try{A(!0),T(null);let e=await c(M);R(e),L(e)}catch(e){T(e instanceof Error?e.message:"Failed to fetch options")}finally{A(!1)}};I&&d?d&&(M?L(Q.filter(e=>!u||u(e,M))):L(Q)):e()},[c,M,I,d,u]);let U=(0,s.useCallback)(e=>{let s=k&&e===V?"":e;$(s),H(G.find(e=>h(e)===s)||null),y(s),D(!1)},[V,y,k,G,h]);return(0,e.jsxs)(o.Popover,{open:B,onOpenChange:D,children:[(0,e.jsx)(o.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(n.Button,{variant:"secondary",role:"combobox","aria-expanded":B,className:(0,a.cn)("w-full justify-between px-3 font-normal",w&&"cursor-not-allowed opacity-50",S),disabled:w,children:[q?f(q):(0,e.jsx)("span",{children:v}),(0,e.jsx)(l.CaretDown,{className:"size-4 shrink-0 text-gray-400 opacity-50"})]})}),(0,e.jsx)(o.PopoverContent,{className:(0,a.cn)("w-[var(--radix-popover-trigger-width)] p-0",N),children:(0,e.jsxs)(r.Command,{shouldFilter:!1,children:[(0,e.jsxs)("div",{className:"relative w-full border-b",children:[(0,e.jsx)(r.CommandInput,{placeholder:`Buscar ${g.toLowerCase()}...`,value:J,onValueChange:e=>{K(e),C?.(e)}}),z&&G.length>0&&(0,e.jsx)("div",{className:"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center",children:(0,e.jsx)(i.Spinner,{})})]}),(0,e.jsxs)(r.CommandList,{children:[O&&(0,e.jsx)("div",{className:"p-4 text-center text-error",children:O}),z&&0===G.length&&(j||(0,e.jsx)(m,{})),!z&&!O&&0===G.length&&(x||(0,e.jsx)(r.CommandEmpty,{children:E??"Nenhum registro encontrado."})),(0,e.jsx)(r.CommandGroup,{children:G.map(s=>(0,e.jsxs)(r.CommandItem,{value:h(s),onSelect:U,children:[p(s),(0,e.jsx)(l.Check,{className:(0,a.cn)("ml-auto h-3 w-3",V===h(s)?"opacity-100":"opacity-0")})]},F?F(s):h(s)))})]})]})})]})}function m(){return(0,e.jsx)(r.CommandGroup,{children:[1,2,3].map(s=>(0,e.jsx)(r.CommandItem,{disabled:!0,children:(0,e.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,e.jsx)("div",{className:"h-6 w-6 animate-pulse rounded-full bg-muted"}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,e.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,e.jsx)("div",{className:"h-3 w-16 animate-pulse rounded bg-muted"})]})]})},s))})}export{c as AsyncSelect};
2
2
  //# sourceMappingURL=async-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\async-select.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/async-select.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport { useDebounce } from '@/hooks/use-debounce'\nimport { cn } from '@/lib/utils'\nimport { CaretDown, Check } from '@phosphor-icons/react'\nimport { Button } from './button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from './command'\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\nimport { Spinner } from './spinner'\n\nexport interface Option {\n value: string\n label: string\n disabled?: boolean\n description?: string\n icon?: React.ReactNode\n}\n\nexport interface AsyncSelectProps<T> {\n fetcher: (query?: string) => Promise<T[]>\n preload?: boolean\n filterFn?: (option: T, query: string) => boolean\n renderOption: (option: T) => React.ReactNode\n getOptionValue: (option: T) => string\n getDisplayValue: (option: T) => React.ReactNode\n notFound?: React.ReactNode\n loadingSkeleton?: React.ReactNode\n value: string\n onChange: (value: string) => void\n onSearchChange?: (value: string) => void\n label: string\n placeholder?: string\n disabled?: boolean\n className?: string\n triggerClassName?: string\n noResultsMessage?: string\n clearable?: boolean\n keyExtractor?: (option: T) => string\n}\n\nexport function AsyncSelect<T>({\n fetcher,\n preload,\n filterFn,\n renderOption,\n getOptionValue,\n getDisplayValue,\n notFound,\n loadingSkeleton,\n label,\n placeholder = '',\n value,\n onChange,\n onSearchChange,\n disabled = false,\n className,\n triggerClassName,\n noResultsMessage,\n clearable = true,\n keyExtractor,\n}: AsyncSelectProps<T>) {\n const [mounted, setMounted] = useState(false)\n const [open, setOpen] = useState(false)\n const [options, setOptions] = useState<T[]>([])\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [selectedValue, setSelectedValue] = useState(value)\n const [selectedOption, setSelectedOption] = useState<T | null>(null)\n const [searchTerm, setSearchTerm] = useState('')\n const debouncedSearchTerm = useDebounce(searchTerm, preload ? 0 : 300)\n const [originalOptions, setOriginalOptions] = useState<T[]>([])\n\n useEffect(() => {\n setMounted(true)\n setSelectedValue(value)\n }, [value])\n\n // Initialize selectedOption when options are loaded and value exists\n useEffect(() => {\n if (value && options.length > 0) {\n const option = options.find(opt => getOptionValue(opt) === value)\n if (option) {\n setSelectedOption(option)\n }\n } else {\n setSelectedOption(null)\n }\n }, [value, options, getOptionValue])\n\n // Effect for initial fetch\n useEffect(() => {\n const initializeOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n // If we have a value, use it for the initial search\n const data = await fetcher(value)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n initializeOptions()\n }\n }, [mounted, fetcher, value])\n\n useEffect(() => {\n const fetchOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n const data = await fetcher(debouncedSearchTerm)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n fetchOptions()\n } else if (!preload) {\n fetchOptions()\n } else if (preload) {\n if (debouncedSearchTerm) {\n setOptions(\n originalOptions.filter(option =>\n filterFn ? filterFn(option, debouncedSearchTerm) : true\n )\n )\n } else {\n setOptions(originalOptions)\n }\n }\n }, [fetcher, debouncedSearchTerm, mounted, preload, filterFn])\n\n const handleSelect = useCallback(\n (currentValue: string) => {\n const newValue =\n clearable && currentValue === selectedValue ? '' : currentValue\n setSelectedValue(newValue)\n setSelectedOption(\n options.find(option => getOptionValue(option) === newValue) || null\n )\n onChange(newValue)\n setOpen(false)\n },\n [selectedValue, onChange, clearable, options, getOptionValue]\n )\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'w-full justify-between px-3 font-normal',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n disabled={disabled}\n >\n {selectedOption ? getDisplayValue(selectedOption) : placeholder}\n <CaretDown className=\"size-4 shrink-0 text-gray-400 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className={cn('w-[var(--radix-popover-trigger-width)] p-0', className)}\n >\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Buscar ${label.toLowerCase()}...`}\n value={searchTerm}\n onValueChange={value => {\n setSearchTerm(value)\n onSearchChange?.(value)\n }}\n />\n {loading && options.length > 0 && (\n <div className=\"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center\">\n <Spinner />\n </div>\n )}\n </div>\n <CommandList>\n {error && <div className=\"p-4 text-center text-error\">{error}</div>}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? 'Nenhum registro encontrado.'}\n </CommandEmpty>\n ))}\n <CommandGroup>\n {options.map(option => (\n <CommandItem\n key={\n keyExtractor ? keyExtractor(option) : getOptionValue(option)\n }\n value={getOptionValue(option)}\n onSelect={handleSelect}\n >\n {renderOption(option)}\n <Check\n className={cn(\n 'ml-auto h-3 w-3',\n selectedValue === getOptionValue(option)\n ? 'opacity-100'\n : 'opacity-0'\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction DefaultLoadingSkeleton() {\n return (\n <CommandGroup>\n {[1, 2, 3].map(i => (\n <CommandItem key={i} disabled>\n <div className=\"flex w-full items-center gap-2\">\n <div className=\"h-6 w-6 animate-pulse rounded-full bg-muted\" />\n <div className=\"flex flex-1 flex-col gap-1\">\n <div className=\"h-4 w-24 animate-pulse rounded bg-muted\" />\n <div className=\"h-3 w-16 animate-pulse rounded bg-muted\" />\n </div>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n )\n}\n"],"names":["AsyncSelect","fetcher","preload","filterFn","renderOption","getOptionValue","getDisplayValue","notFound","loadingSkeleton","label","placeholder","value","onChange","onSearchChange","disabled","className","triggerClassName","noResultsMessage","clearable","keyExtractor","mounted","setMounted","useState","open","setOpen","options","setOptions","loading","setLoading","error","setError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","searchTerm","setSearchTerm","debouncedSearchTerm","useDebounce","originalOptions","setOriginalOptions","useEffect","option","opt","initializeOptions","data","err","Error","fetchOptions","handleSelect","useCallback","currentValue","newValue","Popover","PopoverTrigger","Button","cn","CaretDown","PopoverContent","Command","CommandInput","Spinner","CommandList","DefaultLoadingSkeleton","CommandEmpty","CommandGroup","CommandItem","Check","i"],"mappings":"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"}
1
+ {"version":3,"file":"components\\async-select.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/async-select.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport { useDebounce } from '@/hooks/use-debounce'\nimport { cn } from '@/lib/utils'\nimport { CaretDown, Check } from '@phosphor-icons/react'\nimport { Button } from './button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from './command'\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\nimport { Spinner } from './spinner'\n\nexport interface Option {\n value: string\n label: string\n disabled?: boolean\n description?: string\n icon?: React.ReactNode\n}\n\nexport interface AsyncSelectProps<T> {\n fetcher: (query?: string) => Promise<T[]>\n preload?: boolean\n filterFn?: (option: T, query: string) => boolean\n renderOption: (option: T) => React.ReactNode\n getOptionValue: (option: T) => string\n getDisplayValue: (option: T) => React.ReactNode\n notFound?: React.ReactNode\n loadingSkeleton?: React.ReactNode\n value: string\n onChange: (value: string) => void\n onSearchChange?: (value: string) => void\n label: string\n placeholder?: string\n disabled?: boolean\n className?: string\n triggerClassName?: string\n noResultsMessage?: string\n clearable?: boolean\n keyExtractor?: (option: T) => string\n}\n\nexport function AsyncSelect<T>({\n fetcher,\n preload,\n filterFn,\n renderOption,\n getOptionValue,\n getDisplayValue,\n notFound,\n loadingSkeleton,\n label,\n placeholder = '',\n value,\n onChange,\n onSearchChange,\n disabled = false,\n className,\n triggerClassName,\n noResultsMessage,\n clearable = true,\n keyExtractor,\n}: AsyncSelectProps<T>) {\n const [mounted, setMounted] = useState(false)\n const [open, setOpen] = useState(false)\n const [options, setOptions] = useState<T[]>([])\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [selectedValue, setSelectedValue] = useState(value)\n const [selectedOption, setSelectedOption] = useState<T | null>(null)\n const [searchTerm, setSearchTerm] = useState('')\n const debouncedSearchTerm = useDebounce(searchTerm, preload ? 0 : 300)\n const [originalOptions, setOriginalOptions] = useState<T[]>([])\n\n useEffect(() => {\n setMounted(true)\n setSelectedValue(value)\n }, [value])\n\n // Initialize selectedOption when options are loaded and value exists\n useEffect(() => {\n if (value && options.length > 0) {\n const option = options.find(opt => getOptionValue(opt) === value)\n if (option) {\n setSelectedOption(option)\n }\n } else {\n setSelectedOption(null)\n }\n }, [value, options, getOptionValue])\n\n // Effect for initial fetch\n useEffect(() => {\n const initializeOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n // If we have a value, use it for the initial search\n const data = await fetcher(value)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n initializeOptions()\n }\n }, [mounted, fetcher, value])\n\n useEffect(() => {\n const fetchOptions = async () => {\n try {\n setLoading(true)\n setError(null)\n const data = await fetcher(debouncedSearchTerm)\n setOriginalOptions(data)\n setOptions(data)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to fetch options')\n } finally {\n setLoading(false)\n }\n }\n\n if (!mounted) {\n fetchOptions()\n } else if (!preload) {\n fetchOptions()\n } else if (preload) {\n if (debouncedSearchTerm) {\n setOptions(\n originalOptions.filter(option =>\n filterFn ? filterFn(option, debouncedSearchTerm) : true\n )\n )\n } else {\n setOptions(originalOptions)\n }\n }\n }, [fetcher, debouncedSearchTerm, mounted, preload, filterFn])\n\n const handleSelect = useCallback(\n (currentValue: string) => {\n const newValue =\n clearable && currentValue === selectedValue ? '' : currentValue\n setSelectedValue(newValue)\n setSelectedOption(\n options.find(option => getOptionValue(option) === newValue) || null\n )\n onChange(newValue)\n setOpen(false)\n },\n [selectedValue, onChange, clearable, options, getOptionValue]\n )\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'w-full justify-between px-3 font-normal',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n disabled={disabled}\n >\n {selectedOption ? (\n getDisplayValue(selectedOption)\n ) : (\n <span>{placeholder}</span>\n )}\n <CaretDown className=\"size-4 shrink-0 text-gray-400 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className={cn('w-[var(--radix-popover-trigger-width)] p-0', className)}\n >\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Buscar ${label.toLowerCase()}...`}\n value={searchTerm}\n onValueChange={value => {\n setSearchTerm(value)\n onSearchChange?.(value)\n }}\n />\n {loading && options.length > 0 && (\n <div className=\"-translate-y-1/2 absolute top-1/2 right-2 flex transform items-center\">\n <Spinner />\n </div>\n )}\n </div>\n <CommandList>\n {error && <div className=\"p-4 text-center text-error\">{error}</div>}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? 'Nenhum registro encontrado.'}\n </CommandEmpty>\n ))}\n <CommandGroup>\n {options.map(option => (\n <CommandItem\n key={\n keyExtractor ? keyExtractor(option) : getOptionValue(option)\n }\n value={getOptionValue(option)}\n onSelect={handleSelect}\n >\n {renderOption(option)}\n <Check\n className={cn(\n 'ml-auto h-3 w-3',\n selectedValue === getOptionValue(option)\n ? 'opacity-100'\n : 'opacity-0'\n )}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction DefaultLoadingSkeleton() {\n return (\n <CommandGroup>\n {[1, 2, 3].map(i => (\n <CommandItem key={i} disabled>\n <div className=\"flex w-full items-center gap-2\">\n <div className=\"h-6 w-6 animate-pulse rounded-full bg-muted\" />\n <div className=\"flex flex-1 flex-col gap-1\">\n <div className=\"h-4 w-24 animate-pulse rounded bg-muted\" />\n <div className=\"h-3 w-16 animate-pulse rounded bg-muted\" />\n </div>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n )\n}\n"],"names":["AsyncSelect","fetcher","preload","filterFn","renderOption","getOptionValue","getDisplayValue","notFound","loadingSkeleton","label","placeholder","value","onChange","onSearchChange","disabled","className","triggerClassName","noResultsMessage","clearable","keyExtractor","mounted","setMounted","useState","open","setOpen","options","setOptions","loading","setLoading","error","setError","selectedValue","setSelectedValue","selectedOption","setSelectedOption","searchTerm","setSearchTerm","debouncedSearchTerm","useDebounce","originalOptions","setOriginalOptions","useEffect","option","opt","initializeOptions","data","err","Error","fetchOptions","handleSelect","useCallback","currentValue","newValue","Popover","PopoverTrigger","Button","cn","CaretDown","PopoverContent","Command","CommandInput","Spinner","CommandList","DefaultLoadingSkeleton","CommandEmpty","CommandGroup","CommandItem","Check","i"],"mappings":"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"}
@@ -1 +1 @@
1
- import*as t from"./data-table-view-options.js";export*from"./data-table-action-bar.js";export*from"./data-table-advanced-toolbar.js";export*from"./data-table-column-header.js";export*from"./data-table-date-filter.js";export*from"./data-table-faceted-filter.js";export*from"./data-table-filter-list.js";export*from"./data-table-filter-menu.js";export*from"./data-table-pagination.js";export*from"./data-table-range-filter.js";export*from"./data-table-skeleton.js";export*from"./data-table-slider-filter.js";export*from"./data-table-sort-list.js";export*from"./data-table-toolbar.js";export*from"./data-table.js";var a={"@/components/data-table/data-table-view-options":function(a){a.exports=t}},e={};!function t(o){var r=e[o];if(void 0!==r)return r.exports;var l=e[o]={exports:{}};return a[o](l,l.exports,t),l.exports}("@/components/data-table/data-table-view-options");
1
+ import*as t from"./data-table-pagination.js";import*as a from"./data-table-view-options.js";export*from"./data-table-action-bar.js";export*from"./data-table-advanced-toolbar.js";export*from"./data-table-column-header.js";export*from"./data-table-date-filter.js";export*from"./data-table-faceted-filter.js";export*from"./data-table-filter-list.js";export*from"./data-table-filter-menu.js";export*from"./data-table-range-filter.js";export*from"./data-table-skeleton.js";export*from"./data-table-slider-filter.js";export*from"./data-table-sort-list.js";export*from"./data-table-toolbar.js";export*from"./data-table.js";var e={"@/components/data-table/data-table-pagination":function(a){a.exports=t},"@/components/data-table/data-table-view-options":function(t){t.exports=a}},o={};function r(t){var a=o[t];if(void 0!==a)return a.exports;var n=o[t]={exports:{}};return e[t](n,n.exports,r),n.exports}r.d=(t,a)=>{for(var e in a)r.o(a,e)&&!r.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:a[e]})},r.o=(t,a)=>Object.prototype.hasOwnProperty.call(t,a),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};r.r(n);var l=r("@/components/data-table/data-table-pagination"),d={};for(var i in l)"default"!==i&&(d[i]=(function(t){return l[t]}).bind(0,i));r.d(n,d);var f=r("@/components/data-table/data-table-view-options"),d={};for(var i in f)"default"!==i&&(d[i]=(function(t){return f[t]}).bind(0,i));r.d(n,d);
@@ -1,10 +1,11 @@
1
- interface DatePickerProps {
1
+ import { ComponentProps } from 'react';
2
+ import { Calendar } from './calendar';
3
+ declare function DatePicker({ date, placeholder, className, disabled, onChange, ...props }: ComponentProps<typeof Calendar> & {
2
4
  date?: Date;
3
5
  placeholder?: string;
4
6
  className?: string;
5
7
  disabled?: boolean;
6
8
  onChange?: (date: Date | undefined) => void;
7
- }
8
- declare function DatePicker({ date, placeholder, className, disabled, onChange, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
9
+ }): import("react/jsx-runtime").JSX.Element;
9
10
  export { DatePicker };
10
11
  //# sourceMappingURL=date-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/components/date-picker.tsx"],"names":[],"mappings":"AAWA,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;CAC5C;AAMD,iBAAS,UAAU,CAAC,EAClB,IAAI,EACJ,WAAW,EACX,SAAS,EACT,QAAgB,EAChB,QAAQ,GACT,EAAE,eAAe,2CAqCjB;AAMD,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/components/date-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAY,MAAM,OAAO,CAAA;AAIhD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAOrC,iBAAS,UAAU,CAAC,EAClB,IAAI,EACJ,WAAW,EACX,SAAS,EACT,QAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAG;IACnC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;CAC5C,2CAsCA;AAMD,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -1,3 +1,3 @@
1
1
  'use client'
2
- import*as e from"react/jsx-runtime";import*as r from"@phosphor-icons/react";import*as t from"date-fns";import*as a from"react";import*as s from"../lib/utils.js";import*as o from"./button.js";import*as n from"./calendar.js";import*as i from"./popover.js";function m({date:m,placeholder:l,className:d,disabled:c=!1,onChange:p}){let[f,x]=(0,a.useState)(m);return(0,e.jsxs)(i.Popover,{children:[(0,e.jsx)(i.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(o.Button,{id:"date",variant:"secondary",size:"md",className:(0,s.cn)("min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50",!f&&"text-gray-400",d),disabled:c,children:[f?(0,t.format)(f,"dd/MM/yyyy"):(0,e.jsx)("span",{children:l||"Selecione a data"}),(0,e.jsx)(r.CalendarBlank,{className:"ml-4 size-4 text-gray-600"})]})}),(0,e.jsx)(i.PopoverContent,{className:"w-auto p-0",align:"start",children:(0,e.jsx)(n.Calendar,{mode:"single",selected:f,onSelect:e=>{x(e),p?.(e)}})})]})}export{m as DatePicker};
2
+ import*as e from"react/jsx-runtime";import*as r from"@phosphor-icons/react";import*as t from"date-fns";import*as a from"react";import*as s from"../lib/utils.js";import*as o from"./button.js";import*as n from"./calendar.js";import*as i from"./popover.js";function m({date:m,placeholder:l,className:d,disabled:c=!1,onChange:p,...f}){let[x,j]=(0,a.useState)(m);return(0,e.jsxs)(i.Popover,{children:[(0,e.jsx)(i.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(o.Button,{id:"date",variant:"secondary",size:"md",className:(0,s.cn)("min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50",!x&&"text-gray-400",d),disabled:c,children:[x?(0,t.format)(x,"dd/MM/yyyy"):(0,e.jsx)("span",{children:l||"Selecione a data"}),(0,e.jsx)(r.CalendarBlank,{className:"ml-4 size-4 text-gray-600"})]})}),(0,e.jsx)(i.PopoverContent,{className:"w-auto p-0",align:"start",children:(0,e.jsx)(n.Calendar,{...f,mode:"single",selected:x,onSelect:e=>{j(e),p?.(e)}})})]})}export{m as DatePicker};
3
3
  //# sourceMappingURL=date-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\date-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\ninterface DatePickerProps {\r\n date?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePicker({\r\n date,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n onChange,\r\n}: DatePickerProps) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n size=\"md\"\r\n className={cn(\r\n 'min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50',\r\n !currentDate && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n <CalendarBlank className=\"ml-4 size-4 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n mode=\"single\"\r\n selected={currentDate}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePicker }\r\n"],"names":["DatePicker","date","placeholder","className","disabled","onChange","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar"],"mappings":";8PAuBA,SAASA,EAAW,CAClBC,KAAAA,CAAI,CACJC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CAChBC,SAAAA,CAAQ,CACQ,EAChB,GAAM,CAACC,EAAaC,EAAe,CAAGC,GAAAA,EAAAA,QAAAA,EAA2BP,GAEjE,MACE,WAACQ,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,KAAK,KACL,UAAWC,GAAAA,EAAAA,EAAAA,EACT,0FACA,CAACN,GAAe,gBAChBH,GAEF,SAAUC,E,UAETE,EACCO,GAAAA,EAAAA,MAAAA,EAAOP,EAAa,cAEpB,UAAC,Q,SAAMJ,GAAe,kB,GAExB,UAACY,EAAAA,aAAaA,CAAAA,CAAC,UAAU,2B,QAG7B,UAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,UAACC,EAAAA,QAAQA,CAAAA,CACP,KAAK,SACL,SAAUV,EACV,SAAUL,IACRM,EAAeN,GACfI,IAAWJ,EACb,C,OAKV,Q"}
1
+ {"version":3,"file":"components\\date-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { ComponentProps, useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePicker({\r\n date,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n onChange,\r\n ...props\r\n}: ComponentProps<typeof Calendar> & {\r\n date?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n size=\"md\"\r\n className={cn(\r\n 'min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50',\r\n !currentDate && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n <CalendarBlank className=\"ml-4 size-4 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n {...props}\r\n mode=\"single\"\r\n selected={currentDate}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePicker }\r\n"],"names":["DatePicker","date","placeholder","className","disabled","onChange","props","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar"],"mappings":";8PAeA,SAASA,EAAW,CAClBC,KAAAA,CAAI,CACJC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CAChBC,SAAAA,CAAQ,CACR,GAAGC,EAOJ,EACC,GAAM,CAACC,EAAaC,EAAe,CAAGC,GAAAA,EAAAA,QAAAA,EAA2BR,GAEjE,MACE,WAACS,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,KAAK,KACL,UAAWC,GAAAA,EAAAA,EAAAA,EACT,0FACA,CAACN,GAAe,gBAChBJ,GAEF,SAAUC,E,UAETG,EACCO,GAAAA,EAAAA,MAAAA,EAAOP,EAAa,cAEpB,UAAC,Q,SAAML,GAAe,kB,GAExB,UAACa,EAAAA,aAAaA,CAAAA,CAAC,UAAU,2B,QAG7B,UAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,UAACC,EAAAA,QAAQA,CAAAA,CACN,GAAGX,CAAK,CACT,KAAK,SACL,SAAUC,EACV,SAAUN,IACRO,EAAeP,GACfI,IAAWJ,EACb,C,OAKV,Q"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gbmtech/aurora-ui",
3
- "version": "0.2.26",
3
+ "version": "0.2.28",
4
4
  "main": "./dist/cjs/index.cjs",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/types/index.d.ts",