@senitix/ui 0.4.2 → 0.4.3

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.
Files changed (59) hide show
  1. package/dist/{command-BPtg-XK3.cjs → command-BEpaOk-5.cjs} +2 -2
  2. package/dist/{command-BPtg-XK3.cjs.map → command-BEpaOk-5.cjs.map} +1 -1
  3. package/dist/{command-VraXPLVI.js → command-CYhMM7gX.js} +2 -2
  4. package/dist/{command-VraXPLVI.js.map → command-CYhMM7gX.js.map} +1 -1
  5. package/dist/components/builders/index.cjs.js +1 -1
  6. package/dist/components/builders/index.es.js +1 -1
  7. package/dist/components/data-display/index.cjs.js +1 -1
  8. package/dist/components/data-display/index.es.js +1 -1
  9. package/dist/components/forms/index.cjs.js +1 -1
  10. package/dist/components/forms/index.es.js +2 -2
  11. package/dist/components/layouts/index.cjs.js +1 -1
  12. package/dist/components/layouts/index.es.js +1 -1
  13. package/dist/components/navigation/index.cjs.js +1 -1
  14. package/dist/components/navigation/index.es.js +1 -1
  15. package/dist/components/ui/index.cjs.js +1 -1
  16. package/dist/components/ui/index.es.js +4 -4
  17. package/dist/{dialog-DO5i1PED.cjs → dialog-Cr9SYCaD.cjs} +2 -2
  18. package/dist/{dialog-DO5i1PED.cjs.map → dialog-Cr9SYCaD.cjs.map} +1 -1
  19. package/dist/{dialog-BFBDL8_i.js → dialog-MYAx3Qrc.js} +25 -20
  20. package/dist/{dialog-BFBDL8_i.js.map → dialog-MYAx3Qrc.js.map} +1 -1
  21. package/dist/{form-preview-C6WfeXyD.js → form-preview-Bm5xHtkw.js} +3 -3
  22. package/dist/{form-preview-C6WfeXyD.js.map → form-preview-Bm5xHtkw.js.map} +1 -1
  23. package/dist/{form-preview-BGdea5K7.cjs → form-preview-IPEZdspX.cjs} +2 -2
  24. package/dist/{form-preview-BGdea5K7.cjs.map → form-preview-IPEZdspX.cjs.map} +1 -1
  25. package/dist/full-calendar-4Ut52QNO.cjs +18 -0
  26. package/dist/full-calendar-4Ut52QNO.cjs.map +1 -0
  27. package/dist/{full-calendar-CjaDgutS.js → full-calendar-DD_tBy69.js} +288 -288
  28. package/dist/full-calendar-DD_tBy69.js.map +1 -0
  29. package/dist/{global-search-msFICB8l.cjs → global-search-DcBKVaM4.cjs} +2 -2
  30. package/dist/{global-search-msFICB8l.cjs.map → global-search-DcBKVaM4.cjs.map} +1 -1
  31. package/dist/{global-search-Dhv8goH8.js → global-search-Dul9CD6-.js} +3 -3
  32. package/dist/{global-search-Dhv8goH8.js.map → global-search-Dul9CD6-.js.map} +1 -1
  33. package/dist/index.cjs.js +1 -1
  34. package/dist/index.es.js +10 -10
  35. package/dist/{locale-selector-D0jV4-90.cjs → locale-selector-CRC0VBKl.cjs} +2 -2
  36. package/dist/{locale-selector-D0jV4-90.cjs.map → locale-selector-CRC0VBKl.cjs.map} +1 -1
  37. package/dist/{locale-selector-n75sM9qA.js → locale-selector-HuzfE0zZ.js} +4 -4
  38. package/dist/{locale-selector-n75sM9qA.js.map → locale-selector-HuzfE0zZ.js.map} +1 -1
  39. package/dist/{multi-select-DxN_LuXC.cjs → multi-select-Bj_kIDHE.cjs} +2 -2
  40. package/dist/{multi-select-DxN_LuXC.cjs.map → multi-select-Bj_kIDHE.cjs.map} +1 -1
  41. package/dist/{multi-select-D9akBt7B.js → multi-select-CPF7w871.js} +2 -2
  42. package/dist/{multi-select-D9akBt7B.js.map → multi-select-CPF7w871.js.map} +1 -1
  43. package/dist/{permission-matrix-CTQ1OiTO.js → permission-matrix-BRqw2RPb.js} +3 -3
  44. package/dist/{permission-matrix-CTQ1OiTO.js.map → permission-matrix-BRqw2RPb.js.map} +1 -1
  45. package/dist/{permission-matrix-DRu-cV44.cjs → permission-matrix-CqE8q8Hi.cjs} +2 -2
  46. package/dist/{permission-matrix-DRu-cV44.cjs.map → permission-matrix-CqE8q8Hi.cjs.map} +1 -1
  47. package/dist/{record-dialog-footer-CQPnqhfv.js → record-dialog-footer-DbH9A6eA.js} +3 -3
  48. package/dist/{record-dialog-footer-CQPnqhfv.js.map → record-dialog-footer-DbH9A6eA.js.map} +1 -1
  49. package/dist/{record-dialog-footer-DLH96eAV.cjs → record-dialog-footer-DpDxH5wX.cjs} +2 -2
  50. package/dist/{record-dialog-footer-DLH96eAV.cjs.map → record-dialog-footer-DpDxH5wX.cjs.map} +1 -1
  51. package/dist/{sheet-C0-aBGln.cjs → sheet-DTimb4SJ.cjs} +2 -2
  52. package/dist/{sheet-C0-aBGln.cjs.map → sheet-DTimb4SJ.cjs.map} +1 -1
  53. package/dist/{sheet-Cyq_eDFW.js → sheet-DgpAPCAp.js} +2 -2
  54. package/dist/{sheet-Cyq_eDFW.js.map → sheet-DgpAPCAp.js.map} +1 -1
  55. package/dist/styles.css +1 -1
  56. package/package.json +1 -1
  57. package/dist/full-calendar-CZMK_rPy.cjs +0 -18
  58. package/dist/full-calendar-CZMK_rPy.cjs.map +0 -1
  59. package/dist/full-calendar-CjaDgutS.js.map +0 -1
@@ -1,7 +1,7 @@
1
- "use strict";const H=require("./scroll-area-HsTSI_58.cjs"),e=require("react/jsx-runtime"),D=require("./index-Dy_9oyP3.cjs"),V=require("./button-CPuCii0R.cjs"),J=require("./calendar-CSJ060ym.cjs"),d=require("./popover-Bba1ELMX.cjs"),K=require("./use-formatters-Bb0fX1lW.cjs"),C=require("./use-controllable-state-3ATd6Fqd.cjs"),Q=require("./calendar-BH-AuyiB.cjs"),W=require("react"),Y=require("./locale-provider-BScpm-eC.cjs"),h=require("./badge-BZcdBG5J.cjs"),o=require("./command-BPtg-XK3.cjs"),k=require("./x-D-El5XAY.cjs"),Z=require("./input-UBp7V7li.cjs");function A(l){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const r in l)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(l,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>l[r]})}}return t.default=l,Object.freeze(t)}const ee=A(W);/**
1
+ "use strict";const H=require("./scroll-area-HsTSI_58.cjs"),e=require("react/jsx-runtime"),D=require("./index-Dy_9oyP3.cjs"),V=require("./button-CPuCii0R.cjs"),J=require("./calendar-CSJ060ym.cjs"),d=require("./popover-Bba1ELMX.cjs"),K=require("./use-formatters-Bb0fX1lW.cjs"),C=require("./use-controllable-state-3ATd6Fqd.cjs"),Q=require("./calendar-BH-AuyiB.cjs"),W=require("react"),Y=require("./locale-provider-BScpm-eC.cjs"),h=require("./badge-BZcdBG5J.cjs"),o=require("./command-BEpaOk-5.cjs"),k=require("./x-D-El5XAY.cjs"),Z=require("./input-UBp7V7li.cjs");function A(l){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const r in l)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(l,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>l[r]})}}return t.default=l,Object.freeze(t)}const ee=A(W);/**
2
2
  * @license lucide-react v0.441.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
6
  */const se=H.createLucideIcon("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);function re({value:l,onChange:t,placeholder:r,disabled:n=!1,className:f,dateFormat:x="PPP",open:i,defaultOpen:u=!1,onOpenChange:p,renderValue:m,calendarProps:j}){const{t:g,formatDate:v}=K.useFormatters(),[b,w]=C.useControllableState({value:i,defaultValue:u,onChange:p}),N=r||g("date.selectDate"),P=l?v(l,x):e.jsx("span",{children:N});return e.jsxs(d.Popover,{open:b,onOpenChange:w,children:[e.jsx(d.PopoverTrigger,{asChild:!0,children:e.jsxs(V.Button,{variant:"outline",disabled:n,className:D.cn("w-full justify-start text-left font-normal",!l&&"text-muted-foreground",f),children:[e.jsx(Q.Calendar,{className:"mr-2 h-4 w-4"}),m?m(l):P]})}),e.jsx(d.PopoverContent,{className:"w-auto p-0",align:"start",children:e.jsx(J.Calendar,{mode:"single",selected:l,onSelect:t,initialFocus:!0,...j})})]})}const _=ee.forwardRef(({options:l,value:t=[],onChange:r,placeholder:n,searchPlaceholder:f,emptyMessage:x,maxDisplayedItems:i=3,maxSelections:u,disabled:p=!1,className:m,open:j,defaultOpen:g=!1,onOpenChange:v,searchValue:b,defaultSearchValue:w="",onSearchValueChange:N,clearSearchOnClose:P=!0,onClearAll:y,renderOption:O},L)=>{const{t:q}=Y.useLocale(),[R,T]=C.useControllableState({value:j,defaultValue:g,onChange:v}),[U,M]=C.useControllableState({value:b,defaultValue:w,onChange:N}),X=n??q("common.select"),E=f??q("common.search"),z=x??q("table.noResults"),c=l.filter(s=>t.includes(s.value)),B=u!==void 0&&t.length>=u,G=s=>{t.includes(s)?r==null||r(t.filter(a=>a!==s)):B||r==null||r([...t,s])},F=(s,a)=>{a.stopPropagation(),r==null||r(t.filter(S=>S!==s))},I=s=>{s.stopPropagation(),r==null||r([]),y==null||y()},$=s=>{T(s),!s&&P&&M("")};return e.jsxs(d.Popover,{open:R,onOpenChange:$,children:[e.jsx(d.PopoverTrigger,{asChild:!0,children:e.jsxs(V.Button,{ref:L,variant:"outline",role:"combobox","aria-expanded":R,disabled:p,className:D.cn("w-full justify-between font-normal",c.length===0&&"text-muted-foreground",m),children:[e.jsx("div",{className:"flex flex-1 flex-wrap items-center gap-1",children:c.length===0?X:c.length<=i?c.map(s=>e.jsxs(h.Badge,{variant:"secondary",className:"gap-1 pr-1",children:[s.label,e.jsx("button",{className:"rounded-full hover:bg-muted-foreground/20",onClick:a=>F(s.value,a),children:e.jsx(k.X,{className:"h-3 w-3"})})]},s.value)):e.jsxs(e.Fragment,{children:[c.slice(0,i).map(s=>e.jsxs(h.Badge,{variant:"secondary",className:"gap-1 pr-1",children:[s.label,e.jsx("button",{className:"rounded-full hover:bg-muted-foreground/20",onClick:a=>F(s.value,a),children:e.jsx(k.X,{className:"h-3 w-3"})})]},s.value)),e.jsxs(h.Badge,{variant:"secondary",children:["+",c.length-i]})]})}),e.jsxs("div",{className:"flex items-center gap-1",children:[c.length>0&&e.jsx("button",{className:"rounded p-0.5 hover:bg-muted",onClick:I,children:e.jsx(k.X,{className:"h-4 w-4 text-muted-foreground"})}),e.jsx(Z.ChevronDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})]})}),e.jsx(d.PopoverContent,{className:"w-[var(--radix-popover-trigger-width)] p-0",align:"start",children:e.jsxs(o.Command,{children:[e.jsx(o.CommandInput,{placeholder:E,value:U,onValueChange:M}),e.jsxs(o.CommandList,{children:[e.jsx(o.CommandEmpty,{children:z}),e.jsx(o.CommandGroup,{children:l.map(s=>{const a=t.includes(s.value),S=s.disabled||B&&!a;return e.jsx(o.CommandItem,{value:s.value,disabled:S,onSelect:()=>G(s.value),className:"flex items-center gap-2",children:O?O(s,a):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:D.cn("flex h-4 w-4 items-center justify-center rounded border",t.includes(s.value)?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/30"),children:t.includes(s.value)&&e.jsx(h.Check,{className:"h-3 w-3"})}),s.icon&&e.jsx("span",{className:"h-4 w-4",children:s.icon}),e.jsx("span",{children:s.label})]})},s.value)})})]})]})})]})});_.displayName="MultiSelect";exports.ChevronsUpDown=se;exports.DatePicker=re;exports.MultiSelect=_;
7
- //# sourceMappingURL=multi-select-DxN_LuXC.cjs.map
7
+ //# sourceMappingURL=multi-select-Bj_kIDHE.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select-DxN_LuXC.cjs","sources":["../node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js","../src/components/forms/date-picker.tsx","../src/components/forms/multi-select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronsUpDown = createLucideIcon(\"ChevronsUpDown\", [\n [\"path\", { d: \"m7 15 5 5 5-5\", key: \"1hf1tw\" }],\n [\"path\", { d: \"m7 9 5-5 5 5\", key: \"sgt6xg\" }]\n]);\n\nexport { ChevronsUpDown as default };\n//# sourceMappingURL=chevrons-up-down.js.map\n","import { Calendar as CalendarIcon } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport { useFormatters } from '@/hooks/use-formatters'\nimport { useControllableState } from '@/hooks/use-controllable-state'\n\nexport interface DatePickerProps {\n value?: Date\n onChange?: (date: Date | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n dateFormat?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n renderValue?: (date: Date | undefined) => React.ReactNode\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n 'mode' | 'selected' | 'onSelect'\n >\n}\n\nexport function DatePicker({\n value,\n onChange,\n placeholder,\n disabled = false,\n className,\n dateFormat = 'PPP',\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n renderValue,\n calendarProps,\n}: DatePickerProps) {\n const { t, formatDate } = useFormatters()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const displayPlaceholder = placeholder || t('date.selectDate')\n const defaultDisplayValue = value ? formatDate(value, dateFormat) : <span>{displayPlaceholder}</span>\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n 'w-full justify-start text-left font-normal',\n !value && 'text-muted-foreground',\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {renderValue ? renderValue(value) : defaultDisplayValue}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar mode=\"single\" selected={value} onSelect={onChange} initialFocus {...calendarProps} />\n </PopoverContent>\n </Popover>\n )\n}\n","import * as React from 'react'\nimport { Check, ChevronDown, X } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { useLocale } from '@/providers/locale-provider'\nimport { useControllableState } from '@/hooks/use-controllable-state'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n\nexport interface MultiSelectOption {\n value: string\n label: string\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface MultiSelectProps {\n options: MultiSelectOption[]\n value?: string[]\n onChange?: (value: string[]) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n maxDisplayedItems?: number\n maxSelections?: number\n disabled?: boolean\n className?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n searchValue?: string\n defaultSearchValue?: string\n onSearchValueChange?: (value: string) => void\n clearSearchOnClose?: boolean\n onClearAll?: () => void\n renderOption?: (option: MultiSelectOption, selected: boolean) => React.ReactNode\n}\n\nconst MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n options,\n value = [],\n onChange,\n placeholder,\n searchPlaceholder,\n emptyMessage,\n maxDisplayedItems = 3,\n maxSelections,\n disabled = false,\n className,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n searchValue: controlledSearchValue,\n defaultSearchValue = '',\n onSearchValueChange,\n clearSearchOnClose = true,\n onClearAll,\n renderOption,\n },\n ref\n ) => {\n const { t } = useLocale()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const [searchValue, setSearchValue] = useControllableState({\n value: controlledSearchValue,\n defaultValue: defaultSearchValue,\n onChange: onSearchValueChange,\n })\n const resolvedPlaceholder = placeholder ?? t('common.select')\n const resolvedSearchPlaceholder = searchPlaceholder ?? t('common.search')\n const resolvedEmptyMessage = emptyMessage ?? t('table.noResults')\n\n const selectedOptions = options.filter((opt) => value.includes(opt.value))\n const isMaxReached = maxSelections !== undefined && value.length >= maxSelections\n\n const handleSelect = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange?.(value.filter((v) => v !== optionValue))\n } else if (!isMaxReached) {\n onChange?.([...value, optionValue])\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.(value.filter((v) => v !== optionValue))\n }\n\n const handleClearAll = (e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.([])\n onClearAll?.()\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n setOpen(nextOpen)\n if (!nextOpen && clearSearchOnClose) {\n setSearchValue('')\n }\n }\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n 'w-full justify-between font-normal',\n selectedOptions.length === 0 && 'text-muted-foreground',\n className\n )}\n >\n <div className=\"flex flex-1 flex-wrap items-center gap-1\">\n {selectedOptions.length === 0 ? (\n resolvedPlaceholder\n ) : selectedOptions.length <= maxDisplayedItems ? (\n selectedOptions.map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))\n ) : (\n <>\n {selectedOptions.slice(0, maxDisplayedItems).map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))}\n <Badge variant=\"secondary\">\n +{selectedOptions.length - maxDisplayedItems}\n </Badge>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-1\">\n {selectedOptions.length > 0 && (\n <button\n className=\"rounded p-0.5 hover:bg-muted\"\n onClick={handleClearAll}\n >\n <X className=\"h-4 w-4 text-muted-foreground\" />\n </button>\n )}\n <ChevronDown className=\"h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[var(--radix-popover-trigger-width)] p-0\" align=\"start\">\n <Command>\n <CommandInput\n placeholder={resolvedSearchPlaceholder}\n value={searchValue}\n onValueChange={setSearchValue}\n />\n <CommandList>\n <CommandEmpty>{resolvedEmptyMessage}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = value.includes(option.value)\n const isDisabled = option.disabled || (isMaxReached && !isSelected)\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={isDisabled}\n onSelect={() => handleSelect(option.value)}\n className=\"flex items-center gap-2\"\n >\n {renderOption ? (\n renderOption(option, isSelected)\n ) : (\n <>\n <div\n className={cn(\n 'flex h-4 w-4 items-center justify-center rounded border',\n value.includes(option.value)\n ? 'border-primary bg-primary text-primary-foreground'\n : 'border-muted-foreground/30'\n )}\n >\n {value.includes(option.value) && (\n <Check className=\"h-3 w-3\" />\n )}\n </div>\n {option.icon && <span className=\"h-4 w-4\">{option.icon}</span>}\n <span>{option.label}</span>\n </>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n }\n)\nMultiSelect.displayName = 'MultiSelect'\n\nexport { MultiSelect }\n"],"names":["ChevronsUpDown","createLucideIcon","DatePicker","value","onChange","placeholder","disabled","className","dateFormat","controlledOpen","defaultOpen","onOpenChange","renderValue","calendarProps","t","formatDate","useFormatters","open","setOpen","useControllableState","displayPlaceholder","defaultDisplayValue","jsx","jsxs","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar","MultiSelect","React","options","searchPlaceholder","emptyMessage","maxDisplayedItems","maxSelections","controlledSearchValue","defaultSearchValue","onSearchValueChange","clearSearchOnClose","onClearAll","renderOption","ref","useLocale","searchValue","setSearchValue","resolvedPlaceholder","resolvedSearchPlaceholder","resolvedEmptyMessage","selectedOptions","opt","isMaxReached","handleSelect","optionValue","v","handleRemove","e","handleClearAll","handleOpenChange","nextOpen","option","Badge","X","Fragment","ChevronDown","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","isSelected","isDisabled","CommandItem","Check"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"multi-select-Bj_kIDHE.cjs","sources":["../node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js","../src/components/forms/date-picker.tsx","../src/components/forms/multi-select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronsUpDown = createLucideIcon(\"ChevronsUpDown\", [\n [\"path\", { d: \"m7 15 5 5 5-5\", key: \"1hf1tw\" }],\n [\"path\", { d: \"m7 9 5-5 5 5\", key: \"sgt6xg\" }]\n]);\n\nexport { ChevronsUpDown as default };\n//# sourceMappingURL=chevrons-up-down.js.map\n","import { Calendar as CalendarIcon } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport { useFormatters } from '@/hooks/use-formatters'\nimport { useControllableState } from '@/hooks/use-controllable-state'\n\nexport interface DatePickerProps {\n value?: Date\n onChange?: (date: Date | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n dateFormat?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n renderValue?: (date: Date | undefined) => React.ReactNode\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n 'mode' | 'selected' | 'onSelect'\n >\n}\n\nexport function DatePicker({\n value,\n onChange,\n placeholder,\n disabled = false,\n className,\n dateFormat = 'PPP',\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n renderValue,\n calendarProps,\n}: DatePickerProps) {\n const { t, formatDate } = useFormatters()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const displayPlaceholder = placeholder || t('date.selectDate')\n const defaultDisplayValue = value ? formatDate(value, dateFormat) : <span>{displayPlaceholder}</span>\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n 'w-full justify-start text-left font-normal',\n !value && 'text-muted-foreground',\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {renderValue ? renderValue(value) : defaultDisplayValue}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar mode=\"single\" selected={value} onSelect={onChange} initialFocus {...calendarProps} />\n </PopoverContent>\n </Popover>\n )\n}\n","import * as React from 'react'\nimport { Check, ChevronDown, X } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { useLocale } from '@/providers/locale-provider'\nimport { useControllableState } from '@/hooks/use-controllable-state'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n\nexport interface MultiSelectOption {\n value: string\n label: string\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface MultiSelectProps {\n options: MultiSelectOption[]\n value?: string[]\n onChange?: (value: string[]) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n maxDisplayedItems?: number\n maxSelections?: number\n disabled?: boolean\n className?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n searchValue?: string\n defaultSearchValue?: string\n onSearchValueChange?: (value: string) => void\n clearSearchOnClose?: boolean\n onClearAll?: () => void\n renderOption?: (option: MultiSelectOption, selected: boolean) => React.ReactNode\n}\n\nconst MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n options,\n value = [],\n onChange,\n placeholder,\n searchPlaceholder,\n emptyMessage,\n maxDisplayedItems = 3,\n maxSelections,\n disabled = false,\n className,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n searchValue: controlledSearchValue,\n defaultSearchValue = '',\n onSearchValueChange,\n clearSearchOnClose = true,\n onClearAll,\n renderOption,\n },\n ref\n ) => {\n const { t } = useLocale()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const [searchValue, setSearchValue] = useControllableState({\n value: controlledSearchValue,\n defaultValue: defaultSearchValue,\n onChange: onSearchValueChange,\n })\n const resolvedPlaceholder = placeholder ?? t('common.select')\n const resolvedSearchPlaceholder = searchPlaceholder ?? t('common.search')\n const resolvedEmptyMessage = emptyMessage ?? t('table.noResults')\n\n const selectedOptions = options.filter((opt) => value.includes(opt.value))\n const isMaxReached = maxSelections !== undefined && value.length >= maxSelections\n\n const handleSelect = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange?.(value.filter((v) => v !== optionValue))\n } else if (!isMaxReached) {\n onChange?.([...value, optionValue])\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.(value.filter((v) => v !== optionValue))\n }\n\n const handleClearAll = (e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.([])\n onClearAll?.()\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n setOpen(nextOpen)\n if (!nextOpen && clearSearchOnClose) {\n setSearchValue('')\n }\n }\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n 'w-full justify-between font-normal',\n selectedOptions.length === 0 && 'text-muted-foreground',\n className\n )}\n >\n <div className=\"flex flex-1 flex-wrap items-center gap-1\">\n {selectedOptions.length === 0 ? (\n resolvedPlaceholder\n ) : selectedOptions.length <= maxDisplayedItems ? (\n selectedOptions.map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))\n ) : (\n <>\n {selectedOptions.slice(0, maxDisplayedItems).map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))}\n <Badge variant=\"secondary\">\n +{selectedOptions.length - maxDisplayedItems}\n </Badge>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-1\">\n {selectedOptions.length > 0 && (\n <button\n className=\"rounded p-0.5 hover:bg-muted\"\n onClick={handleClearAll}\n >\n <X className=\"h-4 w-4 text-muted-foreground\" />\n </button>\n )}\n <ChevronDown className=\"h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[var(--radix-popover-trigger-width)] p-0\" align=\"start\">\n <Command>\n <CommandInput\n placeholder={resolvedSearchPlaceholder}\n value={searchValue}\n onValueChange={setSearchValue}\n />\n <CommandList>\n <CommandEmpty>{resolvedEmptyMessage}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = value.includes(option.value)\n const isDisabled = option.disabled || (isMaxReached && !isSelected)\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={isDisabled}\n onSelect={() => handleSelect(option.value)}\n className=\"flex items-center gap-2\"\n >\n {renderOption ? (\n renderOption(option, isSelected)\n ) : (\n <>\n <div\n className={cn(\n 'flex h-4 w-4 items-center justify-center rounded border',\n value.includes(option.value)\n ? 'border-primary bg-primary text-primary-foreground'\n : 'border-muted-foreground/30'\n )}\n >\n {value.includes(option.value) && (\n <Check className=\"h-3 w-3\" />\n )}\n </div>\n {option.icon && <span className=\"h-4 w-4\">{option.icon}</span>}\n <span>{option.label}</span>\n </>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n }\n)\nMultiSelect.displayName = 'MultiSelect'\n\nexport { MultiSelect }\n"],"names":["ChevronsUpDown","createLucideIcon","DatePicker","value","onChange","placeholder","disabled","className","dateFormat","controlledOpen","defaultOpen","onOpenChange","renderValue","calendarProps","t","formatDate","useFormatters","open","setOpen","useControllableState","displayPlaceholder","defaultDisplayValue","jsx","jsxs","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar","MultiSelect","React","options","searchPlaceholder","emptyMessage","maxDisplayedItems","maxSelections","controlledSearchValue","defaultSearchValue","onSearchValueChange","clearSearchOnClose","onClearAll","renderOption","ref","useLocale","searchValue","setSearchValue","resolvedPlaceholder","resolvedSearchPlaceholder","resolvedEmptyMessage","selectedOptions","opt","isMaxReached","handleSelect","optionValue","v","handleRemove","e","handleClearAll","handleOpenChange","nextOpen","option","Badge","X","Fragment","ChevronDown","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","isSelected","isDisabled","CommandItem","Check"],"mappings":"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","x_google_ignoreList":[0]}
@@ -10,7 +10,7 @@ import { C as Y } from "./calendar-JUSWONQ0.js";
10
10
  import * as Z from "react";
11
11
  import { u as _ } from "./locale-provider-BHGNO4j7.js";
12
12
  import { B as k, C as A } from "./badge-D0C_rP2l.js";
13
- import { C as ee, b as ae, c as re, d as se, e as le, f as te } from "./command-VraXPLVI.js";
13
+ import { C as ee, b as ae, c as re, d as se, e as le, f as te } from "./command-CYhMM7gX.js";
14
14
  import { X as S } from "./x-BBkgEhUv.js";
15
15
  import { d as ce } from "./input-Pfq8fkiV.js";
16
16
  /**
@@ -221,4 +221,4 @@ export {
221
221
  Ce as D,
222
222
  de as M
223
223
  };
224
- //# sourceMappingURL=multi-select-D9akBt7B.js.map
224
+ //# sourceMappingURL=multi-select-CPF7w871.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select-D9akBt7B.js","sources":["../node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js","../src/components/forms/date-picker.tsx","../src/components/forms/multi-select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronsUpDown = createLucideIcon(\"ChevronsUpDown\", [\n [\"path\", { d: \"m7 15 5 5 5-5\", key: \"1hf1tw\" }],\n [\"path\", { d: \"m7 9 5-5 5 5\", key: \"sgt6xg\" }]\n]);\n\nexport { ChevronsUpDown as default };\n//# sourceMappingURL=chevrons-up-down.js.map\n","import { Calendar as CalendarIcon } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport { useFormatters } from '@/hooks/use-formatters'\nimport { useControllableState } from '@/hooks/use-controllable-state'\n\nexport interface DatePickerProps {\n value?: Date\n onChange?: (date: Date | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n dateFormat?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n renderValue?: (date: Date | undefined) => React.ReactNode\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n 'mode' | 'selected' | 'onSelect'\n >\n}\n\nexport function DatePicker({\n value,\n onChange,\n placeholder,\n disabled = false,\n className,\n dateFormat = 'PPP',\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n renderValue,\n calendarProps,\n}: DatePickerProps) {\n const { t, formatDate } = useFormatters()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const displayPlaceholder = placeholder || t('date.selectDate')\n const defaultDisplayValue = value ? formatDate(value, dateFormat) : <span>{displayPlaceholder}</span>\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n 'w-full justify-start text-left font-normal',\n !value && 'text-muted-foreground',\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {renderValue ? renderValue(value) : defaultDisplayValue}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar mode=\"single\" selected={value} onSelect={onChange} initialFocus {...calendarProps} />\n </PopoverContent>\n </Popover>\n )\n}\n","import * as React from 'react'\nimport { Check, ChevronDown, X } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { useLocale } from '@/providers/locale-provider'\nimport { useControllableState } from '@/hooks/use-controllable-state'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n\nexport interface MultiSelectOption {\n value: string\n label: string\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface MultiSelectProps {\n options: MultiSelectOption[]\n value?: string[]\n onChange?: (value: string[]) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n maxDisplayedItems?: number\n maxSelections?: number\n disabled?: boolean\n className?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n searchValue?: string\n defaultSearchValue?: string\n onSearchValueChange?: (value: string) => void\n clearSearchOnClose?: boolean\n onClearAll?: () => void\n renderOption?: (option: MultiSelectOption, selected: boolean) => React.ReactNode\n}\n\nconst MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n options,\n value = [],\n onChange,\n placeholder,\n searchPlaceholder,\n emptyMessage,\n maxDisplayedItems = 3,\n maxSelections,\n disabled = false,\n className,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n searchValue: controlledSearchValue,\n defaultSearchValue = '',\n onSearchValueChange,\n clearSearchOnClose = true,\n onClearAll,\n renderOption,\n },\n ref\n ) => {\n const { t } = useLocale()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const [searchValue, setSearchValue] = useControllableState({\n value: controlledSearchValue,\n defaultValue: defaultSearchValue,\n onChange: onSearchValueChange,\n })\n const resolvedPlaceholder = placeholder ?? t('common.select')\n const resolvedSearchPlaceholder = searchPlaceholder ?? t('common.search')\n const resolvedEmptyMessage = emptyMessage ?? t('table.noResults')\n\n const selectedOptions = options.filter((opt) => value.includes(opt.value))\n const isMaxReached = maxSelections !== undefined && value.length >= maxSelections\n\n const handleSelect = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange?.(value.filter((v) => v !== optionValue))\n } else if (!isMaxReached) {\n onChange?.([...value, optionValue])\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.(value.filter((v) => v !== optionValue))\n }\n\n const handleClearAll = (e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.([])\n onClearAll?.()\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n setOpen(nextOpen)\n if (!nextOpen && clearSearchOnClose) {\n setSearchValue('')\n }\n }\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n 'w-full justify-between font-normal',\n selectedOptions.length === 0 && 'text-muted-foreground',\n className\n )}\n >\n <div className=\"flex flex-1 flex-wrap items-center gap-1\">\n {selectedOptions.length === 0 ? (\n resolvedPlaceholder\n ) : selectedOptions.length <= maxDisplayedItems ? (\n selectedOptions.map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))\n ) : (\n <>\n {selectedOptions.slice(0, maxDisplayedItems).map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))}\n <Badge variant=\"secondary\">\n +{selectedOptions.length - maxDisplayedItems}\n </Badge>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-1\">\n {selectedOptions.length > 0 && (\n <button\n className=\"rounded p-0.5 hover:bg-muted\"\n onClick={handleClearAll}\n >\n <X className=\"h-4 w-4 text-muted-foreground\" />\n </button>\n )}\n <ChevronDown className=\"h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[var(--radix-popover-trigger-width)] p-0\" align=\"start\">\n <Command>\n <CommandInput\n placeholder={resolvedSearchPlaceholder}\n value={searchValue}\n onValueChange={setSearchValue}\n />\n <CommandList>\n <CommandEmpty>{resolvedEmptyMessage}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = value.includes(option.value)\n const isDisabled = option.disabled || (isMaxReached && !isSelected)\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={isDisabled}\n onSelect={() => handleSelect(option.value)}\n className=\"flex items-center gap-2\"\n >\n {renderOption ? (\n renderOption(option, isSelected)\n ) : (\n <>\n <div\n className={cn(\n 'flex h-4 w-4 items-center justify-center rounded border',\n value.includes(option.value)\n ? 'border-primary bg-primary text-primary-foreground'\n : 'border-muted-foreground/30'\n )}\n >\n {value.includes(option.value) && (\n <Check className=\"h-3 w-3\" />\n )}\n </div>\n {option.icon && <span className=\"h-4 w-4\">{option.icon}</span>}\n <span>{option.label}</span>\n </>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n }\n)\nMultiSelect.displayName = 'MultiSelect'\n\nexport { MultiSelect }\n"],"names":["ChevronsUpDown","createLucideIcon","DatePicker","value","onChange","placeholder","disabled","className","dateFormat","controlledOpen","defaultOpen","onOpenChange","renderValue","calendarProps","t","formatDate","useFormatters","open","setOpen","useControllableState","displayPlaceholder","defaultDisplayValue","jsx","jsxs","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar","MultiSelect","React","options","searchPlaceholder","emptyMessage","maxDisplayedItems","maxSelections","controlledSearchValue","defaultSearchValue","onSearchValueChange","clearSearchOnClose","onClearAll","renderOption","ref","useLocale","searchValue","setSearchValue","resolvedPlaceholder","resolvedSearchPlaceholder","resolvedEmptyMessage","selectedOptions","opt","isMaxReached","handleSelect","optionValue","v","handleRemove","e","handleClearAll","nextOpen","option","Badge","X","Fragment","ChevronDown","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","isSelected","isDisabled","CommandItem","Check"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"multi-select-CPF7w871.js","sources":["../node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js","../src/components/forms/date-picker.tsx","../src/components/forms/multi-select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronsUpDown = createLucideIcon(\"ChevronsUpDown\", [\n [\"path\", { d: \"m7 15 5 5 5-5\", key: \"1hf1tw\" }],\n [\"path\", { d: \"m7 9 5-5 5 5\", key: \"sgt6xg\" }]\n]);\n\nexport { ChevronsUpDown as default };\n//# sourceMappingURL=chevrons-up-down.js.map\n","import { Calendar as CalendarIcon } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Calendar } from '@/components/ui/calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\nimport { useFormatters } from '@/hooks/use-formatters'\nimport { useControllableState } from '@/hooks/use-controllable-state'\n\nexport interface DatePickerProps {\n value?: Date\n onChange?: (date: Date | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n dateFormat?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n renderValue?: (date: Date | undefined) => React.ReactNode\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n 'mode' | 'selected' | 'onSelect'\n >\n}\n\nexport function DatePicker({\n value,\n onChange,\n placeholder,\n disabled = false,\n className,\n dateFormat = 'PPP',\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n renderValue,\n calendarProps,\n}: DatePickerProps) {\n const { t, formatDate } = useFormatters()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const displayPlaceholder = placeholder || t('date.selectDate')\n const defaultDisplayValue = value ? formatDate(value, dateFormat) : <span>{displayPlaceholder}</span>\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n 'w-full justify-start text-left font-normal',\n !value && 'text-muted-foreground',\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {renderValue ? renderValue(value) : defaultDisplayValue}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar mode=\"single\" selected={value} onSelect={onChange} initialFocus {...calendarProps} />\n </PopoverContent>\n </Popover>\n )\n}\n","import * as React from 'react'\nimport { Check, ChevronDown, X } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { useLocale } from '@/providers/locale-provider'\nimport { useControllableState } from '@/hooks/use-controllable-state'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'\n\nexport interface MultiSelectOption {\n value: string\n label: string\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface MultiSelectProps {\n options: MultiSelectOption[]\n value?: string[]\n onChange?: (value: string[]) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n maxDisplayedItems?: number\n maxSelections?: number\n disabled?: boolean\n className?: string\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n searchValue?: string\n defaultSearchValue?: string\n onSearchValueChange?: (value: string) => void\n clearSearchOnClose?: boolean\n onClearAll?: () => void\n renderOption?: (option: MultiSelectOption, selected: boolean) => React.ReactNode\n}\n\nconst MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n options,\n value = [],\n onChange,\n placeholder,\n searchPlaceholder,\n emptyMessage,\n maxDisplayedItems = 3,\n maxSelections,\n disabled = false,\n className,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n searchValue: controlledSearchValue,\n defaultSearchValue = '',\n onSearchValueChange,\n clearSearchOnClose = true,\n onClearAll,\n renderOption,\n },\n ref\n ) => {\n const { t } = useLocale()\n const [open, setOpen] = useControllableState({\n value: controlledOpen,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n })\n const [searchValue, setSearchValue] = useControllableState({\n value: controlledSearchValue,\n defaultValue: defaultSearchValue,\n onChange: onSearchValueChange,\n })\n const resolvedPlaceholder = placeholder ?? t('common.select')\n const resolvedSearchPlaceholder = searchPlaceholder ?? t('common.search')\n const resolvedEmptyMessage = emptyMessage ?? t('table.noResults')\n\n const selectedOptions = options.filter((opt) => value.includes(opt.value))\n const isMaxReached = maxSelections !== undefined && value.length >= maxSelections\n\n const handleSelect = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange?.(value.filter((v) => v !== optionValue))\n } else if (!isMaxReached) {\n onChange?.([...value, optionValue])\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.(value.filter((v) => v !== optionValue))\n }\n\n const handleClearAll = (e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.([])\n onClearAll?.()\n }\n\n const handleOpenChange = (nextOpen: boolean) => {\n setOpen(nextOpen)\n if (!nextOpen && clearSearchOnClose) {\n setSearchValue('')\n }\n }\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n 'w-full justify-between font-normal',\n selectedOptions.length === 0 && 'text-muted-foreground',\n className\n )}\n >\n <div className=\"flex flex-1 flex-wrap items-center gap-1\">\n {selectedOptions.length === 0 ? (\n resolvedPlaceholder\n ) : selectedOptions.length <= maxDisplayedItems ? (\n selectedOptions.map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))\n ) : (\n <>\n {selectedOptions.slice(0, maxDisplayedItems).map((option) => (\n <Badge\n key={option.value}\n variant=\"secondary\"\n className=\"gap-1 pr-1\"\n >\n {option.label}\n <button\n className=\"rounded-full hover:bg-muted-foreground/20\"\n onClick={(e) => handleRemove(option.value, e)}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n ))}\n <Badge variant=\"secondary\">\n +{selectedOptions.length - maxDisplayedItems}\n </Badge>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-1\">\n {selectedOptions.length > 0 && (\n <button\n className=\"rounded p-0.5 hover:bg-muted\"\n onClick={handleClearAll}\n >\n <X className=\"h-4 w-4 text-muted-foreground\" />\n </button>\n )}\n <ChevronDown className=\"h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[var(--radix-popover-trigger-width)] p-0\" align=\"start\">\n <Command>\n <CommandInput\n placeholder={resolvedSearchPlaceholder}\n value={searchValue}\n onValueChange={setSearchValue}\n />\n <CommandList>\n <CommandEmpty>{resolvedEmptyMessage}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = value.includes(option.value)\n const isDisabled = option.disabled || (isMaxReached && !isSelected)\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={isDisabled}\n onSelect={() => handleSelect(option.value)}\n className=\"flex items-center gap-2\"\n >\n {renderOption ? (\n renderOption(option, isSelected)\n ) : (\n <>\n <div\n className={cn(\n 'flex h-4 w-4 items-center justify-center rounded border',\n value.includes(option.value)\n ? 'border-primary bg-primary text-primary-foreground'\n : 'border-muted-foreground/30'\n )}\n >\n {value.includes(option.value) && (\n <Check className=\"h-3 w-3\" />\n )}\n </div>\n {option.icon && <span className=\"h-4 w-4\">{option.icon}</span>}\n <span>{option.label}</span>\n </>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n }\n)\nMultiSelect.displayName = 'MultiSelect'\n\nexport { MultiSelect }\n"],"names":["ChevronsUpDown","createLucideIcon","DatePicker","value","onChange","placeholder","disabled","className","dateFormat","controlledOpen","defaultOpen","onOpenChange","renderValue","calendarProps","t","formatDate","useFormatters","open","setOpen","useControllableState","displayPlaceholder","defaultDisplayValue","jsx","jsxs","Popover","PopoverTrigger","Button","cn","CalendarIcon","PopoverContent","Calendar","MultiSelect","React","options","searchPlaceholder","emptyMessage","maxDisplayedItems","maxSelections","controlledSearchValue","defaultSearchValue","onSearchValueChange","clearSearchOnClose","onClearAll","renderOption","ref","useLocale","searchValue","setSearchValue","resolvedPlaceholder","resolvedSearchPlaceholder","resolvedEmptyMessage","selectedOptions","opt","isMaxReached","handleSelect","optionValue","v","handleRemove","e","handleClearAll","nextOpen","option","Badge","X","Fragment","ChevronDown","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","isSelected","isDisabled","CommandItem","Check"],"mappings":"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","x_google_ignoreList":[0]}
@@ -12,7 +12,7 @@ import { P as tt, a as nt, b as rt } from "./popover-CZWAuYUL.js";
12
12
  import { u as mn } from "./use-formatters-xeMS4gdV.js";
13
13
  import { C as Pt } from "./calendar-JUSWONQ0.js";
14
14
  import { C as Y } from "./checkbox-CTa9e4SG.js";
15
- import { M as $t, C as fn, D as $e } from "./multi-select-D9akBt7B.js";
15
+ import { M as $t, C as fn, D as $e } from "./multi-select-CPF7w871.js";
16
16
  import { C as pe, B } from "./badge-D0C_rP2l.js";
17
17
  import { X as ie } from "./x-BBkgEhUv.js";
18
18
  import { P as hn, F as wt } from "./pencil-HL0trGIs.js";
@@ -26,7 +26,7 @@ import { M as Cn } from "./minus-DJ0tmymW.js";
26
26
  import { A as it, a as ot, b as at } from "./avatar-BlEcWE7T.js";
27
27
  import { E as Sn } from "./eye-KdCUpmO8.js";
28
28
  import { u as be } from "./use-controllable-state-CEa-Zlq6.js";
29
- import { C as yn, b as bn, c as Nn, d as Rn, e as _n, f as Fn } from "./command-VraXPLVI.js";
29
+ import { C as yn, b as bn, c as Nn, d as Rn, e as _n, f as Fn } from "./command-CYhMM7gX.js";
30
30
  import { T as Tt } from "./trash-2-B3EP3JfM.js";
31
31
  import { P as Ct } from "./plus-D7DMDKb8.js";
32
32
  import { C as Mn } from "./chevron-up-Dr7EIn9V.js";
@@ -6125,4 +6125,4 @@ export {
6125
6125
  Hs as y,
6126
6126
  Ks as z
6127
6127
  };
6128
- //# sourceMappingURL=permission-matrix-CTQ1OiTO.js.map
6128
+ //# sourceMappingURL=permission-matrix-BRqw2RPb.js.map