@gbmtech/aurora-ui 0.2.21 → 0.2.22
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/cjs/components/async-select.cjs +1 -1
- package/dist/cjs/components/async-select.cjs.map +1 -1
- package/dist/cjs/components/command.cjs +1 -1
- package/dist/cjs/components/command.cjs.map +1 -1
- package/dist/cjs/components/data-table/index.cjs +1 -1
- package/dist/esm/components/async-select.d.ts +1 -22
- package/dist/esm/components/async-select.d.ts.map +1 -1
- package/dist/esm/components/async-select.js +1 -1
- package/dist/esm/components/async-select.js.map +1 -1
- package/dist/esm/components/command.d.ts +3 -2
- package/dist/esm/components/command.d.ts.map +1 -1
- package/dist/esm/components/command.js +1 -1
- package/dist/esm/components/command.js.map +1 -1
- package/dist/esm/components/data-table/index.js +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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 c in a)__webpack_require__.o(a,c)&&!__webpack_require__.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},__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:c,renderOption:t,getOptionValue:n,getDisplayValue:s,notFound:_,loadingSkeleton:r,label:m,placeholder:l="Select...",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,S]=(0,external_react_namespaceObject.useState)([]),[g,k]=(0,external_react_namespaceObject.useState)(!1),[q,C]=(0,external_react_namespaceObject.useState)(null),[N,P]=(0,external_react_namespaceObject.useState)(j),[E,L]=(0,external_react_namespaceObject.useState)(null),[A,D]=(0,external_react_namespaceObject.useState)(""),I=(0,use_debounce_cjs_namespaceObject.useDebounce)(A,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&&L(e)}},[j,v,n]),(0,external_react_namespaceObject.useEffect)(()=>{let a=async()=>{try{k(!0),C(null);let a=await e(j);M(a),S(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 t=async()=>{try{k(!0),C(null);let a=await e(I);M(a),S(a)}catch(e){C(e instanceof Error?e.message:"Failed to fetch options")}finally{k(!1)}};f&&a?a&&(I?S(F.filter(e=>!c||c(e,I))):S(F)):t()},[e,I,f,a,c]);let R=(0,external_react_namespaceObject.useCallback)(e=>{let a=d&&e===N?"":e;P(a),L(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",o&&"cursor-not-allowed opacity-50",b),disabled:o,children:[E?s(E):l,(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDown,{className:"opacity-50",size:10})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:(0,utils_cjs_namespaceObject.cn)("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:`Search ${m.toLowerCase()}...`,value:A,onValueChange:e=>{D(e),i?.(e)}}),g&&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-destructive",children:q}),g&&0===v.length&&(r||(0,jsx_runtime_namespaceObject.jsx)(DefaultLoadingSkeleton,{})),!g&&!q&&0===v.length&&(_||(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandEmpty,{children:x??`No ${m.toLowerCase()} found.`})),(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:[t(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 { CaretUpDown, 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 /** Async function to fetch options */\n fetcher: (query?: string) => Promise<T[]>\n /** Preload all data ahead of time */\n preload?: boolean\n /** Function to filter options */\n filterFn?: (option: T, query: string) => boolean\n /** Function to render each option */\n renderOption: (option: T) => React.ReactNode\n /** Function to get the value from an option */\n getOptionValue: (option: T) => string\n /** Function to get the display value for the selected option */\n getDisplayValue: (option: T) => React.ReactNode\n /** Custom not found message */\n notFound?: React.ReactNode\n /** Custom loading skeleton */\n loadingSkeleton?: React.ReactNode\n /** Currently selected value */\n value: string\n /** Callback when selection changes */\n onChange: (value: string) => void\n onSearchChange?: (value: string) => void\n /** Label for the select field */\n label: string\n /** Placeholder text when no selection */\n placeholder?: string\n /** Disable the entire select */\n disabled?: boolean\n /** Custom width for the popover */\n width?: string | number\n /** Custom class names */\n className?: string\n /** Custom trigger button class names */\n triggerClassName?: string\n /** Custom no results message */\n noResultsMessage?: string\n /** Allow clearing the selection */\n clearable?: boolean\n /** */\n enabled?: 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 = 'Select...',\n value,\n onChange,\n onSearchChange,\n disabled = false,\n width = '200px',\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 }\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 'justify-between',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n style={{ width: width }}\n disabled={disabled}\n >\n {selectedOption ? getDisplayValue(selectedOption) : placeholder}\n <CaretUpDown className=\"opacity-50\" size={10} />\n </Button>\n </PopoverTrigger>\n <PopoverContent style={{ width: width }} className={cn('p-0', className)}>\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Search ${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 && (\n <div className=\"p-4 text-center text-destructive\">{error}</div>\n )}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? `No ${label.toLowerCase()} found.`}\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","width","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","CaretUpDown","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 = 'Select...',\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 }\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',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n disabled={disabled}\n >\n {selectedOption ? getDisplayValue(selectedOption) : placeholder}\n <CaretDown className=\"opacity-50\" size={10} />\n </Button>\n </PopoverTrigger>\n <PopoverContent className={cn('p-0', className)}>\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Search ${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 && (\n <div className=\"p-4 text-center text-destructive\">{error}</div>\n )}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? `No ${label.toLowerCase()} found.`}\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,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,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__,{CommandDialog:()=>CommandDialog,Command:()=>Command,CommandInput:()=>CommandInput,CommandItem:()=>CommandItem,CommandList:()=>CommandList,CommandShortcut:()=>CommandShortcut,CommandSeparator:()=>CommandSeparator,CommandEmpty:()=>CommandEmpty,CommandGroup:()=>CommandGroup});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),
|
|
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,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__,{CommandDialog:()=>CommandDialog,Command:()=>Command,CommandInput:()=>CommandInput,CommandItem:()=>CommandItem,CommandList:()=>CommandList,CommandShortcut:()=>CommandShortcut,CommandSeparator:()=>CommandSeparator,CommandLoading:()=>CommandLoading,CommandEmpty:()=>CommandEmpty,CommandGroup:()=>CommandGroup});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),react_visually_hidden_namespaceObject=require("@radix-ui/react-visually-hidden"),external_cmdk_namespaceObject=require("cmdk"),external_dialog_cjs_namespaceObject=require("./dialog.cjs"),utils_cjs_namespaceObject=require("../lib/utils.cjs");function Command({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command,{className:(0,utils_cjs_namespaceObject.cn)("flex flex-col overflow-hidden rounded-[inherit] bg-white text-gbm-dark outline-hidden",e),"data-slot":"command",...a})}function CommandDialog({children:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_dialog_cjs_namespaceObject.Dialog,{"data-slot":"command-dialog",...a,children:(0,jsx_runtime_namespaceObject.jsxs)(external_dialog_cjs_namespaceObject.DialogContent,{className:"rounded-t-lg sm:rounded-lg","data-slot":"command-dialog-content",children:[(0,jsx_runtime_namespaceObject.jsxs)(react_visually_hidden_namespaceObject.VisuallyHidden,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_dialog_cjs_namespaceObject.DialogTitle,{children:"Search command"}),(0,jsx_runtime_namespaceObject.jsx)(external_dialog_cjs_namespaceObject.DialogDescription,{children:"Use the search bar to find and select the desired command."})]}),(0,jsx_runtime_namespaceObject.jsx)(Command,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input]]:h-12",children:e})]})})}function CommandInput({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex items-center gap-2 border-b px-3","cmdk-input-wrapper":"","data-slot":"command-input-wrapper",children:[(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.MagnifyingGlass,{className:"size-4 shrink-0 opacity-50"}),(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Input,{className:(0,utils_cjs_namespaceObject.cn)("flex h-10 w-full text-base outline-hidden placeholder:text-gray-500 disabled:opacity-50 md:text-sm",e),"data-slot":"command-input",...a})]})}function CommandList({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.List,{className:(0,utils_cjs_namespaceObject.cn)("max-h-75 overflow-y-auto overflow-x-hidden",e),"data-slot":"command-list",...a})}function CommandEmpty({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Empty,{className:(0,utils_cjs_namespaceObject.cn)("py-6 text-center text-sm",e),"data-slot":"command-empty",...a})}function CommandGroup({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Group,{className:(0,utils_cjs_namespaceObject.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs",e),"data-slot":"command-group",...a})}function CommandSeparator({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Separator,{className:(0,utils_cjs_namespaceObject.cn)("-mx-1 h-px bg-stroke",e),"data-slot":"command-separator",...a})}function CommandItem({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Item,{className:(0,utils_cjs_namespaceObject.cn)("group/command-item relative flex cursor-default select-none items-center gap-x-2 rounded-sm px-2 py-1.5 text-sm outline-hidden aria-disabled:opacity-50 aria-selected:bg-gray-100 aria-selected:text-gbm-dark [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-gray-500 [&_svg]:shrink-0",e),"data-slot":"command-item",...a})}function CommandLoading({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Loading,{className:(0,utils_cjs_namespaceObject.cn)("flex justify-center p-2",e),"data-slot":"command-loading",...a})}function CommandShortcut({className:e,...a}){return(0,jsx_runtime_namespaceObject.jsx)("span",{className:(0,utils_cjs_namespaceObject.cn)("ml-auto text-muted-foreground text-xs tracking-widest",e),"data-slot":"command-shortcut",...a})}for(var __webpack_i__ in exports.Command=__webpack_exports__.Command,exports.CommandDialog=__webpack_exports__.CommandDialog,exports.CommandEmpty=__webpack_exports__.CommandEmpty,exports.CommandGroup=__webpack_exports__.CommandGroup,exports.CommandInput=__webpack_exports__.CommandInput,exports.CommandItem=__webpack_exports__.CommandItem,exports.CommandList=__webpack_exports__.CommandList,exports.CommandLoading=__webpack_exports__.CommandLoading,exports.CommandSeparator=__webpack_exports__.CommandSeparator,exports.CommandShortcut=__webpack_exports__.CommandShortcut,__webpack_exports__)-1===["Command","CommandDialog","CommandEmpty","CommandGroup","CommandInput","CommandItem","CommandList","CommandLoading","CommandSeparator","CommandShortcut"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
|
|
3
3
|
//# sourceMappingURL=command.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\command.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/components/command.tsx"],"sourcesContent":["\r\n\r\nimport { MagnifyingGlass } from '@phosphor-icons/react
|
|
1
|
+
{"version":3,"file":"components\\command.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/components/command.tsx"],"sourcesContent":["\r\n\r\nimport { MagnifyingGlass } from '@phosphor-icons/react'\r\nimport type { ComponentProps, JSX } from 'react'\r\n\r\nimport { VisuallyHidden } from '@radix-ui/react-visually-hidden'\r\nimport { Command as CommandPrimitive } from 'cmdk'\r\n\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogTitle,\r\n} from '@/components/dialog'\r\nimport { cn } from '@/lib/utils'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Command\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Command({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive>): JSX.Element {\r\n return (\r\n <CommandPrimitive\r\n className={cn(\r\n 'flex flex-col overflow-hidden rounded-[inherit] bg-white text-gbm-dark outline-hidden',\r\n className\r\n )}\r\n data-slot=\"command\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandDialog\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandDialog({\r\n children,\r\n ...props\r\n}: ComponentProps<typeof Dialog>): JSX.Element {\r\n return (\r\n <Dialog data-slot=\"command-dialog\" {...props}>\r\n <DialogContent\r\n className=\"rounded-t-lg sm:rounded-lg\"\r\n data-slot=\"command-dialog-content\"\r\n >\r\n <VisuallyHidden>\r\n <DialogTitle>Search command</DialogTitle>\r\n <DialogDescription>\r\n Use the search bar to find and select the desired command.\r\n </DialogDescription>\r\n </VisuallyHidden>\r\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input]]:h-12\">\r\n {children}\r\n </Command>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandInput\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandInput({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Input>): JSX.Element {\r\n return (\r\n <div\r\n className=\"flex items-center gap-2 border-b px-3\"\r\n cmdk-input-wrapper=\"\"\r\n data-slot=\"command-input-wrapper\"\r\n >\r\n <MagnifyingGlass className=\"size-4 shrink-0 opacity-50\" />\r\n <CommandPrimitive.Input\r\n className={cn(\r\n 'flex h-10 w-full text-base outline-hidden placeholder:text-gray-500 disabled:opacity-50 md:text-sm',\r\n className\r\n )}\r\n data-slot=\"command-input\"\r\n {...props}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandList\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandList({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.List>): JSX.Element {\r\n return (\r\n <CommandPrimitive.List\r\n className={cn('max-h-75 overflow-y-auto overflow-x-hidden', className)}\r\n data-slot=\"command-list\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandEmpty\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandEmpty({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Empty>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Empty\r\n className={cn('py-6 text-center text-sm', className)}\r\n data-slot=\"command-empty\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandGroup\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandGroup({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Group>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Group\r\n className={cn(\r\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs',\r\n className\r\n )}\r\n data-slot=\"command-group\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandSeparator\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandSeparator({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Separator>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Separator\r\n className={cn('-mx-1 h-px bg-stroke', className)}\r\n data-slot=\"command-separator\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandItem({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Item>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Item\r\n className={cn(\r\n \"group/command-item relative flex cursor-default select-none items-center gap-x-2 rounded-sm px-2 py-1.5 text-sm outline-hidden aria-disabled:opacity-50 aria-selected:bg-gray-100 aria-selected:text-gbm-dark [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-gray-500 [&_svg]:shrink-0\",\r\n className\r\n )}\r\n data-slot=\"command-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandLoading\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandLoading({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Loading>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Loading\r\n className={cn('flex justify-center p-2', className)}\r\n data-slot=\"command-loading\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandShortcut\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandShortcut({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n className={cn(\r\n 'ml-auto text-muted-foreground text-xs tracking-widest',\r\n className\r\n )}\r\n data-slot=\"command-shortcut\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n Command,\r\n CommandDialog,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandLoading,\r\n CommandSeparator,\r\n CommandShortcut,\r\n}\r\n"],"names":["Command","className","props","CommandPrimitive","cn","CommandDialog","children","Dialog","DialogContent","VisuallyHidden","DialogTitle","DialogDescription","CommandInput","MagnifyingGlass","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandLoading","CommandShortcut"],"mappings":";q6CAoBA,SAASA,QAAQ,CACfC,UAAAA,CAAS,CACT,GAAGC,EACqC,EACxC,MACE,oCAACC,8BAAAA,OAAgBA,CAAAA,CACf,UAAWC,GAAAA,0BAAAA,EAAAA,EACT,wFACAH,GAEF,YAAU,UACT,GAAGC,CAAK,EAGf,CAMA,SAASG,cAAc,CACrBC,SAAAA,CAAQ,CACR,GAAGJ,EAC2B,EAC9B,MACE,oCAACK,oCAAAA,MAAMA,CAAAA,CAAC,YAAU,iBAAkB,GAAGL,CAAK,C,SAC1C,qCAACM,oCAAAA,aAAaA,CAAAA,CACZ,UAAU,6BACV,YAAU,yB,UAEV,qCAACC,sCAAAA,cAAcA,CAAAA,C,UACb,oCAACC,oCAAAA,WAAWA,CAAAA,C,SAAC,gB,GACb,oCAACC,oCAAAA,iBAAiBA,CAAAA,C,SAAC,4D,MAIrB,oCAACX,QAAAA,CAAQ,UAAU,oL,SAChBM,C,OAKX,CAMA,SAASM,aAAa,CACpBX,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,MACE,qCAAC,OACC,UAAU,wCACV,qBAAmB,GACnB,YAAU,wB,UAEV,oCAACW,sBAAAA,eAAeA,CAAAA,CAAC,UAAU,4B,GAC3B,oCAACV,8BAAAA,OAAAA,CAAAA,KAAsB,EACrB,UAAWC,GAAAA,0BAAAA,EAAAA,EACT,qGACAH,GAEF,YAAU,gBACT,GAAGC,CAAK,KAIjB,CAMA,SAASY,YAAY,CACnBb,UAAAA,CAAS,CACT,GAAGC,EAC0C,EAC7C,MACE,oCAACC,8BAAAA,OAAAA,CAAAA,IAAqB,EACpB,UAAWC,GAAAA,0BAAAA,EAAAA,EAAG,6CAA8CH,GAC5D,YAAU,eACT,GAAGC,CAAK,EAGf,CAMA,SAASa,aAAa,CACpBd,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,MACE,oCAACC,8BAAAA,OAAAA,CAAAA,KAAsB,EACrB,UAAWC,GAAAA,0BAAAA,EAAAA,EAAG,2BAA4BH,GAC1C,YAAU,gBACT,GAAGC,CAAK,EAGf,CAMA,SAASc,aAAa,CACpBf,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,MACE,oCAACC,8BAAAA,OAAAA,CAAAA,KAAsB,EACrB,UAAWC,GAAAA,0BAAAA,EAAAA,EACT,yNACAH,GAEF,YAAU,gBACT,GAAGC,CAAK,EAGf,CAMA,SAASe,iBAAiB,CACxBhB,UAAAA,CAAS,CACT,GAAGC,EAC+C,EAClD,MACE,oCAACC,8BAAAA,OAAAA,CAAAA,SAA0B,EACzB,UAAWC,GAAAA,0BAAAA,EAAAA,EAAG,uBAAwBH,GACtC,YAAU,oBACT,GAAGC,CAAK,EAGf,CAMA,SAASgB,YAAY,CACnBjB,UAAAA,CAAS,CACT,GAAGC,EAC0C,EAC7C,MACE,oCAACC,8BAAAA,OAAAA,CAAAA,IAAqB,EACpB,UAAWC,GAAAA,0BAAAA,EAAAA,EACT,kTACAH,GAEF,YAAU,eACT,GAAGC,CAAK,EAGf,CAMA,SAASiB,eAAe,CACtBlB,UAAAA,CAAS,CACT,GAAGC,EAC6C,EAChD,MACE,oCAACC,8BAAAA,OAAAA,CAAAA,OAAwB,EACvB,UAAWC,GAAAA,0BAAAA,EAAAA,EAAG,0BAA2BH,GACzC,YAAU,kBACT,GAAGC,CAAK,EAGf,CAMA,SAASkB,gBAAgB,CACvBnB,UAAAA,CAAS,CACT,GAAGC,EACoB,EACvB,MACE,oCAAC,QACC,UAAWE,GAAAA,0BAAAA,EAAAA,EACT,wDACAH,GAEF,YAAU,mBACT,GAAGC,CAAK,EAGf,C"}
|
|
@@ -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")},"./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")},"
|
|
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")},"./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 r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__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 r in e)"default"!==r&&(_[r]=(function(_){return e[_]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var a=__webpack_require__("./data-table-advanced-toolbar"),_={};for(var r in a)"default"!==r&&(_[r]=(function(e){return a[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var t=__webpack_require__("./data-table-column-header"),_={};for(var r in t)"default"!==r&&(_[r]=(function(e){return t[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var i=__webpack_require__("./data-table-date-filter"),_={};for(var r in i)"default"!==r&&(_[r]=(function(e){return i[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var n=__webpack_require__("./data-table-faceted-filter"),_={};for(var r in n)"default"!==r&&(_[r]=(function(e){return n[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var o=__webpack_require__("./data-table-filter-list"),_={};for(var r in o)"default"!==r&&(_[r]=(function(e){return o[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var u=__webpack_require__("./data-table-filter-menu"),_={};for(var r in u)"default"!==r&&(_[r]=(function(e){return u[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var c=__webpack_require__("./data-table-pagination"),_={};for(var r in c)"default"!==r&&(_[r]=(function(e){return c[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var b=__webpack_require__("./data-table-range-filter"),_={};for(var r in b)"default"!==r&&(_[r]=(function(e){return b[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var d=__webpack_require__("./data-table-skeleton"),_={};for(var r in d)"default"!==r&&(_[r]=(function(e){return d[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var p=__webpack_require__("./data-table-slider-filter"),_={};for(var r in p)"default"!==r&&(_[r]=(function(e){return p[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var l=__webpack_require__("./data-table-sort-list"),_={};for(var r in l)"default"!==r&&(_[r]=(function(e){return l[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var f=__webpack_require__("./data-table-toolbar"),_={};for(var r in f)"default"!==r&&(_[r]=(function(e){return f[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var s=__webpack_require__("./data-table-view-options"),_={};for(var r in s)"default"!==r&&(_[r]=(function(e){return s[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var w=__webpack_require__("./data-table"),_={};for(var r in w)"default"!==r&&(_[r]=(function(e){return w[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_)})(),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -6,46 +6,25 @@ export interface Option {
|
|
|
6
6
|
icon?: React.ReactNode;
|
|
7
7
|
}
|
|
8
8
|
export interface AsyncSelectProps<T> {
|
|
9
|
-
/** Async function to fetch options */
|
|
10
9
|
fetcher: (query?: string) => Promise<T[]>;
|
|
11
|
-
/** Preload all data ahead of time */
|
|
12
10
|
preload?: boolean;
|
|
13
|
-
/** Function to filter options */
|
|
14
11
|
filterFn?: (option: T, query: string) => boolean;
|
|
15
|
-
/** Function to render each option */
|
|
16
12
|
renderOption: (option: T) => React.ReactNode;
|
|
17
|
-
/** Function to get the value from an option */
|
|
18
13
|
getOptionValue: (option: T) => string;
|
|
19
|
-
/** Function to get the display value for the selected option */
|
|
20
14
|
getDisplayValue: (option: T) => React.ReactNode;
|
|
21
|
-
/** Custom not found message */
|
|
22
15
|
notFound?: React.ReactNode;
|
|
23
|
-
/** Custom loading skeleton */
|
|
24
16
|
loadingSkeleton?: React.ReactNode;
|
|
25
|
-
/** Currently selected value */
|
|
26
17
|
value: string;
|
|
27
|
-
/** Callback when selection changes */
|
|
28
18
|
onChange: (value: string) => void;
|
|
29
19
|
onSearchChange?: (value: string) => void;
|
|
30
|
-
/** Label for the select field */
|
|
31
20
|
label: string;
|
|
32
|
-
/** Placeholder text when no selection */
|
|
33
21
|
placeholder?: string;
|
|
34
|
-
/** Disable the entire select */
|
|
35
22
|
disabled?: boolean;
|
|
36
|
-
/** Custom width for the popover */
|
|
37
|
-
width?: string | number;
|
|
38
|
-
/** Custom class names */
|
|
39
23
|
className?: string;
|
|
40
|
-
/** Custom trigger button class names */
|
|
41
24
|
triggerClassName?: string;
|
|
42
|
-
/** Custom no results message */
|
|
43
25
|
noResultsMessage?: string;
|
|
44
|
-
/** Allow clearing the selection */
|
|
45
26
|
clearable?: boolean;
|
|
46
|
-
/** */
|
|
47
|
-
enabled?: boolean;
|
|
48
27
|
keyExtractor?: (option: T) => string;
|
|
49
28
|
}
|
|
50
|
-
export declare function AsyncSelect<T>({ fetcher, preload, filterFn, renderOption, getOptionValue, getDisplayValue, notFound, loadingSkeleton, label, placeholder, value, onChange, onSearchChange, disabled,
|
|
29
|
+
export declare function AsyncSelect<T>({ fetcher, preload, filterFn, renderOption, getOptionValue, getDisplayValue, notFound, loadingSkeleton, label, placeholder, value, onChange, onSearchChange, disabled, className, triggerClassName, noResultsMessage, clearable, keyExtractor, }: AsyncSelectProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
51
30
|
//# sourceMappingURL=async-select.d.ts.map
|
|
@@ -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,
|
|
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,WAAyB,EACzB,KAAK,EACL,QAAQ,EACR,cAAc,EACd,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,SAAgB,EAChB,YAAY,GACb,EAAE,gBAAgB,CAAC,CAAC,CAAC,2CA2KrB"}
|
|
@@ -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 n from"./button.js";import*as o from"./command.js";import*as r from"./popover.js";import*as i from"./spinner.js";function c({fetcher:c,preload:d,filterFn:u,renderOption:p,getOptionValue:
|
|
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 o from"./command.js";import*as r 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:v,placeholder:C="Select...",value:b,onChange:g,onSearchChange:y,disabled:w=!1,className:S,triggerClassName:N,noResultsMessage:E,clearable:k=!0,keyExtractor:F}){let[I,L]=(0,s.useState)(!1),[P,D]=(0,s.useState)(!1),[G,$]=(0,s.useState)([]),[z,A]=(0,s.useState)(!1),[B,O]=(0,s.useState)(null),[T,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)(()=>{L(!0),V(b)},[b]),(0,s.useEffect)(()=>{if(b&&G.length>0){let e=G.find(e=>f(e)===b);e&&H(e)}},[b,G,f]),(0,s.useEffect)(()=>{let e=async()=>{try{A(!0),O(null);let e=await c(b);R(e),$(e)}catch(e){O(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),O(null);let e=await c(M);R(e),$(e)}catch(e){O(e instanceof Error?e.message:"Failed to fetch options")}finally{A(!1)}};I&&d?d&&(M?$(Q.filter(e=>!u||u(e,M))):$(Q)):e()},[c,M,I,d,u]);let U=(0,s.useCallback)(e=>{let s=k&&e===T?"":e;V(s),H(G.find(e=>f(e)===s)||null),g(s),D(!1)},[T,g,k,G,f]);return(0,e.jsxs)(r.Popover,{open:P,onOpenChange:D,children:[(0,e.jsx)(r.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(n.Button,{variant:"secondary",role:"combobox","aria-expanded":P,className:(0,a.cn)("w-full justify-between",w&&"cursor-not-allowed opacity-50",N),disabled:w,children:[q?h(q):C,(0,e.jsx)(l.CaretDown,{className:"opacity-50",size:10})]})}),(0,e.jsx)(r.PopoverContent,{className:(0,a.cn)("p-0",S),children:(0,e.jsxs)(o.Command,{shouldFilter:!1,children:[(0,e.jsxs)("div",{className:"relative w-full border-b",children:[(0,e.jsx)(o.CommandInput,{placeholder:`Search ${v.toLowerCase()}...`,value:J,onValueChange:e=>{K(e),y?.(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)(o.CommandList,{children:[B&&(0,e.jsx)("div",{className:"p-4 text-center text-destructive",children:B}),z&&0===G.length&&(j||(0,e.jsx)(m,{})),!z&&!B&&0===G.length&&(x||(0,e.jsx)(o.CommandEmpty,{children:E??`No ${v.toLowerCase()} found.`})),(0,e.jsx)(o.CommandGroup,{children:G.map(s=>(0,e.jsxs)(o.CommandItem,{value:f(s),onSelect:U,children:[p(s),(0,e.jsx)(l.Check,{className:(0,a.cn)("ml-auto h-3 w-3",T===f(s)?"opacity-100":"opacity-0")})]},F?F(s):f(s)))})]})]})})]})}function m(){return(0,e.jsx)(o.CommandGroup,{children:[1,2,3].map(s=>(0,e.jsx)(o.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 { CaretUpDown, 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 /** Async function to fetch options */\n fetcher: (query?: string) => Promise<T[]>\n /** Preload all data ahead of time */\n preload?: boolean\n /** Function to filter options */\n filterFn?: (option: T, query: string) => boolean\n /** Function to render each option */\n renderOption: (option: T) => React.ReactNode\n /** Function to get the value from an option */\n getOptionValue: (option: T) => string\n /** Function to get the display value for the selected option */\n getDisplayValue: (option: T) => React.ReactNode\n /** Custom not found message */\n notFound?: React.ReactNode\n /** Custom loading skeleton */\n loadingSkeleton?: React.ReactNode\n /** Currently selected value */\n value: string\n /** Callback when selection changes */\n onChange: (value: string) => void\n onSearchChange?: (value: string) => void\n /** Label for the select field */\n label: string\n /** Placeholder text when no selection */\n placeholder?: string\n /** Disable the entire select */\n disabled?: boolean\n /** Custom width for the popover */\n width?: string | number\n /** Custom class names */\n className?: string\n /** Custom trigger button class names */\n triggerClassName?: string\n /** Custom no results message */\n noResultsMessage?: string\n /** Allow clearing the selection */\n clearable?: boolean\n /** */\n enabled?: 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 = 'Select...',\n value,\n onChange,\n onSearchChange,\n disabled = false,\n width = '200px',\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 }\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 'justify-between',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n style={{ width: width }}\n disabled={disabled}\n >\n {selectedOption ? getDisplayValue(selectedOption) : placeholder}\n <CaretUpDown className=\"opacity-50\" size={10} />\n </Button>\n </PopoverTrigger>\n <PopoverContent style={{ width: width }} className={cn('p-0', className)}>\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Search ${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 && (\n <div className=\"p-4 text-center text-destructive\">{error}</div>\n )}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? `No ${label.toLowerCase()} found.`}\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","width","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","CaretUpDown","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 = 'Select...',\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 }\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',\n disabled && 'cursor-not-allowed opacity-50',\n triggerClassName\n )}\n disabled={disabled}\n >\n {selectedOption ? getDisplayValue(selectedOption) : placeholder}\n <CaretDown className=\"opacity-50\" size={10} />\n </Button>\n </PopoverTrigger>\n <PopoverContent className={cn('p-0', className)}>\n <Command shouldFilter={false}>\n <div className=\"relative w-full border-b\">\n <CommandInput\n placeholder={`Search ${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 && (\n <div className=\"p-4 text-center text-destructive\">{error}</div>\n )}\n {loading &&\n options.length === 0 &&\n (loadingSkeleton || <DefaultLoadingSkeleton />)}\n {!loading &&\n !error &&\n options.length === 0 &&\n (notFound || (\n <CommandEmpty>\n {noResultsMessage ?? `No ${label.toLowerCase()} found.`}\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":"4SA+CO,SAASA,EAAe,CAC7BC,QAAAA,CAAO,CACPC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,aAAAA,CAAY,CACZC,eAAAA,CAAc,CACdC,gBAAAA,CAAe,CACfC,SAAAA,CAAQ,CACRC,gBAAAA,CAAe,CACfC,MAAAA,CAAK,CACLC,YAAAA,EAAc,WAAW,CACzBC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRC,eAAAA,CAAc,CACdC,SAAAA,EAAW,EAAK,CAChBC,UAAAA,CAAS,CACTC,iBAAAA,CAAgB,CAChBC,iBAAAA,CAAgB,CAChBC,UAAAA,EAAY,EAAI,CAChBC,aAAAA,CAAY,CACQ,EACpB,GAAM,CAACC,EAASC,EAAW,CAAGC,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,IACjC,CAACC,EAAMC,EAAQ,CAAGF,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAC3B,CAACG,EAASC,EAAW,CAAGJ,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAc,EAAE,EACxC,CAACK,EAASC,EAAW,CAAGN,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,IACjC,CAACO,EAAOC,EAAS,CAAGR,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAwB,MAC5C,CAACS,EAAeC,EAAiB,CAAGV,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAASX,GAC7C,CAACsB,EAAgBC,EAAkB,CAAGZ,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAmB,MACzD,CAACa,EAAYC,EAAc,CAAGd,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAS,IACvCe,EAAsBC,AAAAA,GAAAA,EAAAA,WAAAA,AAAAA,EAAYH,EAAYjC,AAAc,KAAdA,GAC9C,CAACqC,EAAiBC,EAAmB,CAAGlB,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAc,EAAE,EAE9DmB,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRpB,EAAW,IACXW,EAAiBrB,EACnB,EAAG,CAACA,EAAM,EAGV8B,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI9B,GAASc,EAAQ,MAAM,CAAG,EAAG,CAC/B,IAAMiB,EAASjB,EAAQ,IAAI,CAACkB,AAAAA,GAAOtC,EAAesC,KAAShC,EACvD+B,CAAAA,GACFR,EAAkBQ,EAEtB,CACF,EAAG,CAAC/B,EAAOc,EAASpB,EAAe,EAGnCoC,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMG,EAAoB,UACxB,GAAI,CACFhB,EAAW,IACXE,EAAS,MAET,IAAMe,EAAO,MAAM5C,EAAQU,GAC3B6B,EAAmBK,GACnBnB,EAAWmB,EACb,CAAE,MAAOC,EAAK,CACZhB,EAASgB,aAAeC,MAAQD,EAAI,OAAO,CAAG,0BAChD,QAAU,CACRlB,EAAW,GACb,CACF,CAEI,CAACR,GACHwB,GAEJ,EAAG,CAACxB,EAASnB,EAASU,EAAM,EAE5B8B,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMO,EAAe,UACnB,GAAI,CACFpB,EAAW,IACXE,EAAS,MACT,IAAMe,EAAO,MAAM5C,EAAQoC,GAC3BG,EAAmBK,GACnBnB,EAAWmB,EACb,CAAE,MAAOC,EAAK,CACZhB,EAASgB,aAAeC,MAAQD,EAAI,OAAO,CAAG,0BAChD,QAAU,CACRlB,EAAW,GACb,CACF,EAEKR,GAEOlB,EAEDA,IACLmC,EACFX,EACEa,EAAgB,MAAM,CAACG,AAAAA,GACrBvC,CAAAA,GAAWA,EAASuC,EAAQL,KAIhCX,EAAWa,IATbS,GAYJ,EAAG,CAAC/C,EAASoC,EAAqBjB,EAASlB,EAASC,EAAS,EAE7D,IAAM8C,EAAeC,AAAAA,GAAAA,EAAAA,WAAAA,AAAAA,EACnB,AAACC,IACC,IAAMC,EACJlC,GAAaiC,IAAiBpB,EAAgB,GAAKoB,EACrDnB,EAAiBoB,GACjBlB,EACET,EAAQ,IAAI,CAACiB,AAAAA,GAAUrC,EAAeqC,KAAYU,IAAa,MAEjExC,EAASwC,GACT5B,EAAQ,GACV,EACA,CAACO,EAAenB,EAAUM,EAAWO,EAASpB,EAAe,EAG/D,MACE,WAACgD,EAAAA,OAAOA,CAAAA,CAAC,KAAM9B,EAAM,aAAcC,E,UACjC,UAAC8B,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,QAAQ,YACR,KAAK,WACL,gBAAehC,EACf,UAAWiC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EACT,yBACA1C,GAAY,gCACZE,GAEF,SAAUF,E,UAETmB,EAAiB3B,EAAgB2B,GAAkBvB,EACpD,UAAC+C,EAAAA,SAASA,CAAAA,CAAC,UAAU,aAAa,KAAM,E,QAG5C,UAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAWF,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAG,MAAOzC,G,SACnC,WAAC4C,EAAAA,OAAOA,CAAAA,CAAC,aAAc,G,UACrB,WAAC,OAAI,UAAU,2B,UACb,UAACC,EAAAA,YAAYA,CAAAA,CACX,YAAa,CAAC,OAAO,EAAEnD,EAAM,WAAW,GAAG,GAAG,CAAC,CAC/C,MAAO0B,EACP,cAAexB,AAAAA,IACbyB,EAAczB,GACdE,IAAiBF,EACnB,C,GAEDgB,GAAWF,EAAQ,MAAM,CAAG,GAC3B,UAAC,OAAI,UAAU,wE,SACb,UAACoC,EAAAA,OAAOA,CAAAA,CAAAA,E,MAId,WAACC,EAAAA,WAAWA,CAAAA,C,UACTjC,GACC,UAAC,OAAI,UAAU,mC,SAAoCA,C,GAEpDF,GACCF,AAAmB,IAAnBA,EAAQ,MAAM,EACbjB,CAAAA,GAAmB,UAACuD,EAAAA,CAAAA,EAAAA,EACtB,CAACpC,GACA,CAACE,GACDJ,AAAmB,IAAnBA,EAAQ,MAAM,EACblB,CAAAA,GACC,UAACyD,EAAAA,YAAYA,CAAAA,C,SACV/C,GAAoB,CAAC,GAAG,EAAER,EAAM,WAAW,GAAG,OAAO,CAAC,A,IAG7D,UAACwD,EAAAA,YAAYA,CAAAA,C,SACVxC,EAAQ,GAAG,CAACiB,AAAAA,GACX,WAACwB,EAAAA,WAAWA,CAAAA,CAIV,MAAO7D,EAAeqC,GACtB,SAAUO,E,UAET7C,EAAasC,GACd,UAACyB,EAAAA,KAAKA,CAAAA,CACJ,UAAWX,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EACT,kBACAzB,IAAkB1B,EAAeqC,GAC7B,cACA,Y,KAXNvB,EAAeA,EAAauB,GAAUrC,EAAeqC,I,aAsBzE,CAEA,SAASqB,IACP,MACE,UAACE,EAAAA,YAAYA,CAAAA,C,SACV,CAAC,EAAG,EAAG,EAAE,CAAC,GAAG,CAACG,AAAAA,GACb,UAACF,EAAAA,WAAWA,CAAAA,CAAS,SAAQ,G,SAC3B,WAAC,OAAI,UAAU,iC,UACb,UAAC,OAAI,UAAU,6C,GACf,WAAC,OAAI,UAAU,6B,UACb,UAAC,OAAI,UAAU,yC,GACf,UAAC,OAAI,UAAU,yC,UALHE,G,EAY1B,Q"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { ComponentProps, JSX } from 'react';
|
|
1
2
|
import { Command as CommandPrimitive } from 'cmdk';
|
|
2
|
-
import { ComponentProps, JSX } from 'react';
|
|
3
3
|
import { Dialog } from './dialog';
|
|
4
4
|
declare function Command({ className, ...props }: ComponentProps<typeof CommandPrimitive>): JSX.Element;
|
|
5
5
|
declare function CommandDialog({ children, ...props }: ComponentProps<typeof Dialog>): JSX.Element;
|
|
@@ -9,6 +9,7 @@ declare function CommandEmpty({ className, ...props }: ComponentProps<typeof Com
|
|
|
9
9
|
declare function CommandGroup({ className, ...props }: ComponentProps<typeof CommandPrimitive.Group>): JSX.Element;
|
|
10
10
|
declare function CommandSeparator({ className, ...props }: ComponentProps<typeof CommandPrimitive.Separator>): JSX.Element;
|
|
11
11
|
declare function CommandItem({ className, ...props }: ComponentProps<typeof CommandPrimitive.Item>): JSX.Element;
|
|
12
|
+
declare function CommandLoading({ className, ...props }: ComponentProps<typeof CommandPrimitive.Loading>): JSX.Element;
|
|
12
13
|
declare function CommandShortcut({ className, ...props }: ComponentProps<'span'>): JSX.Element;
|
|
13
|
-
export { Command, CommandDialog,
|
|
14
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut, };
|
|
14
15
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/components/command.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/components/command.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAElD,OAAO,EACL,MAAM,EAIP,MAAM,qBAAqB,CAAA;AAO5B,iBAAS,OAAO,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,GAAG,GAAG,CAAC,OAAO,CAWvD;AAMD,iBAAS,aAAa,CAAC,EACrB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAmB7C;AAMD,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAkB7D;AAMD,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAQ5D;AAMD,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAQ7D;AAMD,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAW7D;AAMD,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CAQjE;AAMD,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAW5D;AAMD,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAQ/D;AAMD,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAWtC;AAMD,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import*as
|
|
2
|
+
import*as a from"react/jsx-runtime";import*as t from"@phosphor-icons/react";import*as e from"@radix-ui/react-visually-hidden";import*as n from"cmdk";import*as o from"./dialog.js";import*as d from"../lib/utils.js";function m({className:t,...e}){return(0,a.jsx)(n.Command,{className:(0,d.cn)("flex flex-col overflow-hidden rounded-[inherit] bg-white text-gbm-dark outline-hidden",t),"data-slot":"command",...e})}function s({children:t,...n}){return(0,a.jsx)(o.Dialog,{"data-slot":"command-dialog",...n,children:(0,a.jsxs)(o.DialogContent,{className:"rounded-t-lg sm:rounded-lg","data-slot":"command-dialog-content",children:[(0,a.jsxs)(e.VisuallyHidden,{children:[(0,a.jsx)(o.DialogTitle,{children:"Search command"}),(0,a.jsx)(o.DialogDescription,{children:"Use the search bar to find and select the desired command."})]}),(0,a.jsx)(m,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input]]:h-12",children:t})]})})}function r({className:e,...o}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b px-3","cmdk-input-wrapper":"","data-slot":"command-input-wrapper",children:[(0,a.jsx)(t.MagnifyingGlass,{className:"size-4 shrink-0 opacity-50"}),(0,a.jsx)(n.Command.Input,{className:(0,d.cn)("flex h-10 w-full text-base outline-hidden placeholder:text-gray-500 disabled:opacity-50 md:text-sm",e),"data-slot":"command-input",...o})]})}function i({className:t,...e}){return(0,a.jsx)(n.Command.List,{className:(0,d.cn)("max-h-75 overflow-y-auto overflow-x-hidden",t),"data-slot":"command-list",...e})}function c({className:t,...e}){return(0,a.jsx)(n.Command.Empty,{className:(0,d.cn)("py-6 text-center text-sm",t),"data-slot":"command-empty",...e})}function l({className:t,...e}){return(0,a.jsx)(n.Command.Group,{className:(0,d.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs",t),"data-slot":"command-group",...e})}function u({className:t,...e}){return(0,a.jsx)(n.Command.Separator,{className:(0,d.cn)("-mx-1 h-px bg-stroke",t),"data-slot":"command-separator",...e})}function p({className:t,...e}){return(0,a.jsx)(n.Command.Item,{className:(0,d.cn)("group/command-item relative flex cursor-default select-none items-center gap-x-2 rounded-sm px-2 py-1.5 text-sm outline-hidden aria-disabled:opacity-50 aria-selected:bg-gray-100 aria-selected:text-gbm-dark [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-gray-500 [&_svg]:shrink-0",t),"data-slot":"command-item",...e})}function g({className:t,...e}){return(0,a.jsx)(n.Command.Loading,{className:(0,d.cn)("flex justify-center p-2",t),"data-slot":"command-loading",...e})}function x({className:t,...e}){return(0,a.jsx)("span",{className:(0,d.cn)("ml-auto text-muted-foreground text-xs tracking-widest",t),"data-slot":"command-shortcut",...e})}export{m as Command,s as CommandDialog,c as CommandEmpty,l as CommandGroup,r as CommandInput,p as CommandItem,i as CommandList,g as CommandLoading,u as CommandSeparator,x as CommandShortcut};
|
|
3
3
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\command.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/command.tsx"],"sourcesContent":["\r\n\r\nimport { MagnifyingGlass } from '@phosphor-icons/react
|
|
1
|
+
{"version":3,"file":"components\\command.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/command.tsx"],"sourcesContent":["\r\n\r\nimport { MagnifyingGlass } from '@phosphor-icons/react'\r\nimport type { ComponentProps, JSX } from 'react'\r\n\r\nimport { VisuallyHidden } from '@radix-ui/react-visually-hidden'\r\nimport { Command as CommandPrimitive } from 'cmdk'\r\n\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogTitle,\r\n} from '@/components/dialog'\r\nimport { cn } from '@/lib/utils'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Command\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Command({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive>): JSX.Element {\r\n return (\r\n <CommandPrimitive\r\n className={cn(\r\n 'flex flex-col overflow-hidden rounded-[inherit] bg-white text-gbm-dark outline-hidden',\r\n className\r\n )}\r\n data-slot=\"command\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandDialog\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandDialog({\r\n children,\r\n ...props\r\n}: ComponentProps<typeof Dialog>): JSX.Element {\r\n return (\r\n <Dialog data-slot=\"command-dialog\" {...props}>\r\n <DialogContent\r\n className=\"rounded-t-lg sm:rounded-lg\"\r\n data-slot=\"command-dialog-content\"\r\n >\r\n <VisuallyHidden>\r\n <DialogTitle>Search command</DialogTitle>\r\n <DialogDescription>\r\n Use the search bar to find and select the desired command.\r\n </DialogDescription>\r\n </VisuallyHidden>\r\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-500 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input]]:h-12\">\r\n {children}\r\n </Command>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandInput\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandInput({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Input>): JSX.Element {\r\n return (\r\n <div\r\n className=\"flex items-center gap-2 border-b px-3\"\r\n cmdk-input-wrapper=\"\"\r\n data-slot=\"command-input-wrapper\"\r\n >\r\n <MagnifyingGlass className=\"size-4 shrink-0 opacity-50\" />\r\n <CommandPrimitive.Input\r\n className={cn(\r\n 'flex h-10 w-full text-base outline-hidden placeholder:text-gray-500 disabled:opacity-50 md:text-sm',\r\n className\r\n )}\r\n data-slot=\"command-input\"\r\n {...props}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandList\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandList({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.List>): JSX.Element {\r\n return (\r\n <CommandPrimitive.List\r\n className={cn('max-h-75 overflow-y-auto overflow-x-hidden', className)}\r\n data-slot=\"command-list\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandEmpty\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandEmpty({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Empty>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Empty\r\n className={cn('py-6 text-center text-sm', className)}\r\n data-slot=\"command-empty\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandGroup\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandGroup({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Group>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Group\r\n className={cn(\r\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs',\r\n className\r\n )}\r\n data-slot=\"command-group\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandSeparator\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandSeparator({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Separator>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Separator\r\n className={cn('-mx-1 h-px bg-stroke', className)}\r\n data-slot=\"command-separator\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandItem({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Item>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Item\r\n className={cn(\r\n \"group/command-item relative flex cursor-default select-none items-center gap-x-2 rounded-sm px-2 py-1.5 text-sm outline-hidden aria-disabled:opacity-50 aria-selected:bg-gray-100 aria-selected:text-gbm-dark [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-gray-500 [&_svg]:shrink-0\",\r\n className\r\n )}\r\n data-slot=\"command-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandLoading\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandLoading({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof CommandPrimitive.Loading>): JSX.Element {\r\n return (\r\n <CommandPrimitive.Loading\r\n className={cn('flex justify-center p-2', className)}\r\n data-slot=\"command-loading\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: CommandShortcut\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction CommandShortcut({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n className={cn(\r\n 'ml-auto text-muted-foreground text-xs tracking-widest',\r\n className\r\n )}\r\n data-slot=\"command-shortcut\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n Command,\r\n CommandDialog,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandLoading,\r\n CommandSeparator,\r\n CommandShortcut,\r\n}\r\n"],"names":["Command","className","props","CommandPrimitive","cn","CommandDialog","children","Dialog","DialogContent","VisuallyHidden","DialogTitle","DialogDescription","CommandInput","MagnifyingGlass","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandLoading","CommandShortcut"],"mappings":";qNAoBA,SAASA,EAAQ,CACfC,UAAAA,CAAS,CACT,GAAGC,EACqC,EACxC,MACE,UAACC,EAAAA,OAAgBA,CAAAA,CACf,UAAWC,GAAAA,EAAAA,EAAAA,EACT,wFACAH,GAEF,YAAU,UACT,GAAGC,CAAK,EAGf,CAMA,SAASG,EAAc,CACrBC,SAAAA,CAAQ,CACR,GAAGJ,EAC2B,EAC9B,MACE,UAACK,EAAAA,MAAMA,CAAAA,CAAC,YAAU,iBAAkB,GAAGL,CAAK,C,SAC1C,WAACM,EAAAA,aAAaA,CAAAA,CACZ,UAAU,6BACV,YAAU,yB,UAEV,WAACC,EAAAA,cAAcA,CAAAA,C,UACb,UAACC,EAAAA,WAAWA,CAAAA,C,SAAC,gB,GACb,UAACC,EAAAA,iBAAiBA,CAAAA,C,SAAC,4D,MAIrB,UAACX,EAAAA,CAAQ,UAAU,oL,SAChBM,C,OAKX,CAMA,SAASM,EAAa,CACpBX,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,MACE,WAAC,OACC,UAAU,wCACV,qBAAmB,GACnB,YAAU,wB,UAEV,UAACW,EAAAA,eAAeA,CAAAA,CAAC,UAAU,4B,GAC3B,UAACV,EAAAA,OAAAA,CAAAA,KAAsB,EACrB,UAAWC,GAAAA,EAAAA,EAAAA,EACT,qGACAH,GAEF,YAAU,gBACT,GAAGC,CAAK,KAIjB,CAMA,SAASY,EAAY,CACnBb,UAAAA,CAAS,CACT,GAAGC,EAC0C,EAC7C,MACE,UAACC,EAAAA,OAAAA,CAAAA,IAAqB,EACpB,UAAWC,GAAAA,EAAAA,EAAAA,EAAG,6CAA8CH,GAC5D,YAAU,eACT,GAAGC,CAAK,EAGf,CAMA,SAASa,EAAa,CACpBd,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,MACE,UAACC,EAAAA,OAAAA,CAAAA,KAAsB,EACrB,UAAWC,GAAAA,EAAAA,EAAAA,EAAG,2BAA4BH,GAC1C,YAAU,gBACT,GAAGC,CAAK,EAGf,CAMA,SAASc,EAAa,CACpBf,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,MACE,UAACC,EAAAA,OAAAA,CAAAA,KAAsB,EACrB,UAAWC,GAAAA,EAAAA,EAAAA,EACT,yNACAH,GAEF,YAAU,gBACT,GAAGC,CAAK,EAGf,CAMA,SAASe,EAAiB,CACxBhB,UAAAA,CAAS,CACT,GAAGC,EAC+C,EAClD,MACE,UAACC,EAAAA,OAAAA,CAAAA,SAA0B,EACzB,UAAWC,GAAAA,EAAAA,EAAAA,EAAG,uBAAwBH,GACtC,YAAU,oBACT,GAAGC,CAAK,EAGf,CAMA,SAASgB,EAAY,CACnBjB,UAAAA,CAAS,CACT,GAAGC,EAC0C,EAC7C,MACE,UAACC,EAAAA,OAAAA,CAAAA,IAAqB,EACpB,UAAWC,GAAAA,EAAAA,EAAAA,EACT,kTACAH,GAEF,YAAU,eACT,GAAGC,CAAK,EAGf,CAMA,SAASiB,EAAe,CACtBlB,UAAAA,CAAS,CACT,GAAGC,EAC6C,EAChD,MACE,UAACC,EAAAA,OAAAA,CAAAA,OAAwB,EACvB,UAAWC,GAAAA,EAAAA,EAAAA,EAAG,0BAA2BH,GACzC,YAAU,kBACT,GAAGC,CAAK,EAGf,CAMA,SAASkB,EAAgB,CACvBnB,UAAAA,CAAS,CACT,GAAGC,EACoB,EACvB,MACE,UAAC,QACC,UAAWE,GAAAA,EAAAA,EAAAA,EACT,wDACAH,GAEF,YAAU,mBACT,GAAGC,CAAK,EAGf,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
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-view-options.js";export*from"./data-table.js";
|