@solace-health/ui 0.10.668 → 0.10.670

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 (138) hide show
  1. package/dist/{chunk-QOIWWR24.cjs → chunk-2E7ZG247.cjs} +2 -2
  2. package/dist/{chunk-QOIWWR24.cjs.map → chunk-2E7ZG247.cjs.map} +1 -1
  3. package/dist/{chunk-FXLG3LU3.cjs → chunk-3WAG2NWA.cjs} +2 -2
  4. package/dist/{chunk-FXLG3LU3.cjs.map → chunk-3WAG2NWA.cjs.map} +1 -1
  5. package/dist/{chunk-VO2GGQ2X.js → chunk-6T7SXJ44.js} +2 -2
  6. package/dist/{chunk-VO2GGQ2X.js.map → chunk-6T7SXJ44.js.map} +1 -1
  7. package/dist/{chunk-3N4EBY5Q.js → chunk-74AGGELC.js} +2 -2
  8. package/dist/{chunk-3N4EBY5Q.js.map → chunk-74AGGELC.js.map} +1 -1
  9. package/dist/{chunk-2BUA2PCN.cjs → chunk-DJ5RP6A2.cjs} +2 -2
  10. package/dist/{chunk-2BUA2PCN.cjs.map → chunk-DJ5RP6A2.cjs.map} +1 -1
  11. package/dist/{chunk-BCJNTCHK.js → chunk-EJBXIBM4.js} +2 -2
  12. package/dist/{chunk-BCJNTCHK.js.map → chunk-EJBXIBM4.js.map} +1 -1
  13. package/dist/{chunk-VTYXYLTK.cjs → chunk-EZK5NRS6.cjs} +2 -2
  14. package/dist/{chunk-VTYXYLTK.cjs.map → chunk-EZK5NRS6.cjs.map} +1 -1
  15. package/dist/{chunk-6TGWLOLD.js → chunk-FDMT42JJ.js} +2 -2
  16. package/dist/{chunk-6TGWLOLD.js.map → chunk-FDMT42JJ.js.map} +1 -1
  17. package/dist/chunk-FFAC2CCY.cjs +2 -0
  18. package/dist/chunk-FFAC2CCY.cjs.map +1 -0
  19. package/dist/{chunk-QUD4HTUP.cjs → chunk-FMFRB4JI.cjs} +2 -2
  20. package/dist/chunk-FMFRB4JI.cjs.map +1 -0
  21. package/dist/{chunk-FBXJ2VCI.js → chunk-FQGC44HX.js} +2 -2
  22. package/dist/{chunk-FBXJ2VCI.js.map → chunk-FQGC44HX.js.map} +1 -1
  23. package/dist/{chunk-ETZDR7A5.cjs → chunk-H37HOXIG.cjs} +2 -2
  24. package/dist/{chunk-ETZDR7A5.cjs.map → chunk-H37HOXIG.cjs.map} +1 -1
  25. package/dist/chunk-IRMVTSQ3.cjs +2 -0
  26. package/dist/chunk-IRMVTSQ3.cjs.map +1 -0
  27. package/dist/chunk-LFGDYEFJ.js +27 -0
  28. package/dist/chunk-LFGDYEFJ.js.map +1 -0
  29. package/dist/{chunk-ONAYZGIC.js → chunk-M2YQU26J.js} +2 -2
  30. package/dist/{chunk-ONAYZGIC.js.map → chunk-M2YQU26J.js.map} +1 -1
  31. package/dist/{chunk-JE6P5GU3.js → chunk-M7LXLMUQ.js} +2 -2
  32. package/dist/{chunk-JE6P5GU3.js.map → chunk-M7LXLMUQ.js.map} +1 -1
  33. package/dist/{chunk-KIKR45SH.js → chunk-MERMPFZT.js} +2 -2
  34. package/dist/{chunk-KIKR45SH.js.map → chunk-MERMPFZT.js.map} +1 -1
  35. package/dist/chunk-NVFC45IS.js +2 -0
  36. package/dist/chunk-NVFC45IS.js.map +1 -0
  37. package/dist/{chunk-HP66FPW5.cjs → chunk-O7A6NMSW.cjs} +2 -2
  38. package/dist/{chunk-HP66FPW5.cjs.map → chunk-O7A6NMSW.cjs.map} +1 -1
  39. package/dist/{chunk-WMOD232S.js → chunk-OYN4D5J3.js} +2 -2
  40. package/dist/{chunk-WMOD232S.js.map → chunk-OYN4D5J3.js.map} +1 -1
  41. package/dist/{chunk-UVZVZAGK.js → chunk-PVA67MWT.js} +2 -2
  42. package/dist/{chunk-UVZVZAGK.js.map → chunk-PVA67MWT.js.map} +1 -1
  43. package/dist/chunk-QHNRUAYJ.js +2 -0
  44. package/dist/chunk-QHNRUAYJ.js.map +1 -0
  45. package/dist/{chunk-Z6BTLUPD.js → chunk-R2R3QR2N.js} +2 -2
  46. package/dist/{chunk-Z6BTLUPD.js.map → chunk-R2R3QR2N.js.map} +1 -1
  47. package/dist/{chunk-3TNSGXJ6.cjs → chunk-RQTTULKO.cjs} +2 -2
  48. package/dist/{chunk-3TNSGXJ6.cjs.map → chunk-RQTTULKO.cjs.map} +1 -1
  49. package/dist/{chunk-L4FOTU2K.cjs → chunk-RXR3BZZK.cjs} +2 -2
  50. package/dist/{chunk-L4FOTU2K.cjs.map → chunk-RXR3BZZK.cjs.map} +1 -1
  51. package/dist/{chunk-DJD7UZPR.cjs → chunk-SBGL7Q6I.cjs} +2 -2
  52. package/dist/{chunk-DJD7UZPR.cjs.map → chunk-SBGL7Q6I.cjs.map} +1 -1
  53. package/dist/{chunk-VTBYJGTJ.cjs → chunk-SC4FK5N3.cjs} +2 -2
  54. package/dist/{chunk-VTBYJGTJ.cjs.map → chunk-SC4FK5N3.cjs.map} +1 -1
  55. package/dist/chunk-SP2L5FI7.js +2 -0
  56. package/dist/chunk-SP2L5FI7.js.map +1 -0
  57. package/dist/{chunk-SMTXYI6Q.js → chunk-STIYYCSL.js} +2 -2
  58. package/dist/{chunk-SMTXYI6Q.js.map → chunk-STIYYCSL.js.map} +1 -1
  59. package/dist/chunk-UIJEPPNJ.cjs +27 -0
  60. package/dist/chunk-UIJEPPNJ.cjs.map +1 -0
  61. package/dist/{chunk-C45VZ526.cjs → chunk-UIKSYA4B.cjs} +2 -2
  62. package/dist/{chunk-C45VZ526.cjs.map → chunk-UIKSYA4B.cjs.map} +1 -1
  63. package/dist/{chunk-E7W73IO3.cjs → chunk-UJH4JKQC.cjs} +2 -2
  64. package/dist/{chunk-E7W73IO3.cjs.map → chunk-UJH4JKQC.cjs.map} +1 -1
  65. package/dist/{chunk-X7HU4N6X.cjs → chunk-URUWP25E.cjs} +2 -2
  66. package/dist/{chunk-X7HU4N6X.cjs.map → chunk-URUWP25E.cjs.map} +1 -1
  67. package/dist/{chunk-FMPII2NF.js → chunk-VIPOYVA3.js} +2 -2
  68. package/dist/{chunk-FMPII2NF.js.map → chunk-VIPOYVA3.js.map} +1 -1
  69. package/dist/{chunk-MPGPI6LC.js → chunk-XOWSDMW5.js} +2 -2
  70. package/dist/{chunk-MPGPI6LC.js.map → chunk-XOWSDMW5.js.map} +1 -1
  71. package/dist/{chunk-SM7PYFD2.cjs → chunk-ZZW5IT44.cjs} +2 -2
  72. package/dist/{chunk-SM7PYFD2.cjs.map → chunk-ZZW5IT44.cjs.map} +1 -1
  73. package/dist/metafile-cjs.json +1 -1
  74. package/dist/metafile-esm.json +1 -1
  75. package/dist/v2/address-input/address-input.cjs +1 -1
  76. package/dist/v2/address-input/address-input.js +1 -1
  77. package/dist/v2/button/button.cjs +1 -1
  78. package/dist/v2/button/button.js +1 -1
  79. package/dist/v2/calendar/calendar.cjs +1 -1
  80. package/dist/v2/calendar/calendar.js +1 -1
  81. package/dist/v2/card/card.cjs +1 -1
  82. package/dist/v2/card/card.d.ts +7 -2
  83. package/dist/v2/card/card.js +1 -1
  84. package/dist/v2/carousel/carousel.cjs +1 -1
  85. package/dist/v2/carousel/carousel.js +1 -1
  86. package/dist/v2/checkbox/button-checkbox.cjs +1 -1
  87. package/dist/v2/checkbox/button-checkbox.js +1 -1
  88. package/dist/v2/checkbox-group/checkbox-group.cjs +1 -1
  89. package/dist/v2/checkbox-group/checkbox-group.js +1 -1
  90. package/dist/v2/combobox/combobox.cjs +1 -1
  91. package/dist/v2/combobox/combobox.js +1 -1
  92. package/dist/v2/command/command.cjs +1 -1
  93. package/dist/v2/command/command.js +1 -1
  94. package/dist/v2/date-picker/date-picker-input.cjs +1 -1
  95. package/dist/v2/date-picker/date-picker-input.js +1 -1
  96. package/dist/v2/date-picker/date-picker.cjs +1 -1
  97. package/dist/v2/date-picker/date-picker.js +1 -1
  98. package/dist/v2/dialog/dialog.cjs +1 -1
  99. package/dist/v2/dialog/dialog.js +1 -1
  100. package/dist/v2/drawer/drawer.cjs +1 -1
  101. package/dist/v2/drawer/drawer.js +1 -1
  102. package/dist/v2/flex-drawer/flex-drawer.cjs +1 -1
  103. package/dist/v2/flex-drawer/flex-drawer.js +1 -1
  104. package/dist/v2/image-preview/image-preview.cjs +1 -1
  105. package/dist/v2/image-preview/image-preview.js +1 -1
  106. package/dist/v2/index.cjs +1 -1
  107. package/dist/v2/index.js +1 -1
  108. package/dist/v2/input/formatters.cjs +1 -1
  109. package/dist/v2/input/formatters.d.ts +1 -0
  110. package/dist/v2/input/formatters.js +1 -1
  111. package/dist/v2/input/input.cjs +1 -1
  112. package/dist/v2/input/input.d.ts +1 -1
  113. package/dist/v2/input/input.js +1 -1
  114. package/dist/v2/input/input.stories.d.ts +1 -0
  115. package/dist/v2/multiselect/components/MultiSelectCommandGroup.cjs +1 -1
  116. package/dist/v2/multiselect/components/MultiSelectCommandGroup.js +1 -1
  117. package/dist/v2/multiselect/components/MultiSelectDropdown.cjs +1 -1
  118. package/dist/v2/multiselect/components/MultiSelectDropdown.js +1 -1
  119. package/dist/v2/multiselect/multiselect.cjs +1 -1
  120. package/dist/v2/multiselect/multiselect.js +1 -1
  121. package/dist/v2/time-select/time-select.cjs +1 -1
  122. package/dist/v2/time-select/time-select.js +1 -1
  123. package/package.json +3 -2
  124. package/dist/chunk-3TXN7A2Z.js +0 -2
  125. package/dist/chunk-3TXN7A2Z.js.map +0 -1
  126. package/dist/chunk-6LESB5UU.js +0 -27
  127. package/dist/chunk-6LESB5UU.js.map +0 -1
  128. package/dist/chunk-7X6KFDGZ.cjs +0 -2
  129. package/dist/chunk-7X6KFDGZ.cjs.map +0 -1
  130. package/dist/chunk-JH4FQUIS.js +0 -2
  131. package/dist/chunk-JH4FQUIS.js.map +0 -1
  132. package/dist/chunk-KKTQL7QK.js +0 -2
  133. package/dist/chunk-KKTQL7QK.js.map +0 -1
  134. package/dist/chunk-OUGYUQUB.cjs +0 -27
  135. package/dist/chunk-OUGYUQUB.cjs.map +0 -1
  136. package/dist/chunk-QUD4HTUP.cjs.map +0 -1
  137. package/dist/chunk-Z2MOZQCG.cjs +0 -2
  138. package/dist/chunk-Z2MOZQCG.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/v2/input/input.tsx"],"names":["inputVariants","cva","FORMAT_CONFIGS","value","maskPhone","maskPositiveInteger","Input","u","className","variant","passedType","wrapperClassName","label","helperText","charLength","defaultValue","onChange","id","labelProps","format","props","ref","formatConfig","isFormatted","type","inputMode","internalValue","setInternalValue","useState","initial","inputId","currentValue","displayValue","hasValue","currentLength","valueProps","useEffect","handleChange","formatted","handleKeyDown","jsxs","cn","jsx","HiOutlineExclamationCircle","LuSearch","LuX","LuClock4"],"mappings":"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","file":"chunk-UIJEPPNJ.cjs","sourcesContent":["import * as React from 'react';\nimport { ForwardedRef, useEffect, useState } from 'react';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport { HiOutlineExclamationCircle } from 'react-icons/hi2';\nimport { LuClock4, LuSearch, LuX } from 'react-icons/lu';\n\nimport { cn } from '@/lib/utils';\nimport { maskPhone, maskPositiveInteger } from './formatters';\n\nconst inputVariants = cva(\n `\n flex items-center h-12 w-full min-w-0 rounded-md border bg-white px-3 py-3 text-base transition-all outline-none\n dark:bg-input/30 border-input shadow-xs\n placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground\n file:inline-flex file:h-6 file:mr-2 file:border-0 file:text-foreground\n disabled:cursor-not-allowed disabled:opacity-50 disabled:pointer-events-none disabled:bg-gray-200\n focus-visible:ring-ring/50 focus-visible:ring-[3px] \n `,\n {\n variants: {\n variant: {\n default: `\n hover:enabled:border-dark-green \n focus:enabled:border-dark-green\n focus:enabled:shadow-green-300\n focus-within:shadow\n focus-within:shadow-green-300\n focus-visible:border-dark-green \n `,\n invalid: `\n border-destructive\n hover:border-destructive\n focus:border-destructive\n focus:shadow-red-100\n focus-within:shadow\n focus-within:shadow-red-100\n focus-visible:border-destructive\n aria-invalid:ring-destructive/20\n dark:aria-invalid:ring-destructive/40\n aria-invalid:border-destructive \n `,\n // Hide chrome default search clear button with ::-webkit-search-cancel-button\n search:\n 'pr-8 [&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-cancel-button]:display-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\ntype FormatConfig = {\n inputType: React.HTMLInputTypeAttribute;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n mask: (value: string) => string;\n};\n\nexport type InputFormat = 'default' | 'phone' | 'positive-integer';\n\nconst FORMAT_CONFIGS: Record<InputFormat, FormatConfig> = {\n default: {\n inputType: 'text',\n mask: (value) => value,\n },\n phone: {\n inputType: 'tel',\n mask: maskPhone,\n },\n 'positive-integer': {\n inputType: 'text',\n inputMode: 'numeric',\n mask: maskPositiveInteger,\n },\n};\n\nexport type InputProps = React.ComponentProps<'input'> &\n VariantProps<typeof inputVariants> & {\n wrapperClassName?: string;\n label?: React.ReactNode;\n helperText?: string;\n charLength?: number;\n labelProps?: React.ComponentProps<'label'>;\n format?: InputFormat;\n };\n\nconst Input = React.forwardRef(\n (\n {\n className,\n variant,\n type: passedType,\n wrapperClassName = undefined,\n label,\n helperText,\n charLength,\n value,\n defaultValue,\n onChange,\n id,\n labelProps,\n format = 'default',\n ...props\n }: InputProps,\n ref?: ForwardedRef<HTMLInputElement>,\n ) => {\n const formatConfig = FORMAT_CONFIGS[format];\n const isFormatted = format !== 'default';\n const type = isFormatted ? formatConfig.inputType : passedType;\n const inputMode = isFormatted ? formatConfig.inputMode : undefined;\n\n const [internalValue, setInternalValue] = useState<string>(() => {\n const initial = (value ?? defaultValue ?? '') as string;\n return formatConfig.mask(initial);\n });\n\n const inputId = id || React.useId();\n\n const currentValue = value !== undefined ? value : internalValue;\n\n const displayValue = (() => {\n if (value !== undefined) return currentValue;\n if (isFormatted) return internalValue;\n return undefined;\n })();\n\n const hasValue = String(displayValue ?? '').length > 0;\n const currentLength = String(displayValue ?? '').length;\n\n const valueProps = (() => {\n if (value !== undefined) return { value: formatConfig.mask(value as string) };\n if (isFormatted) return { value: internalValue };\n return {};\n })();\n\n useEffect(() => {\n if (isFormatted && value !== undefined) {\n setInternalValue(formatConfig.mask(value as string));\n }\n }, [value, format]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isFormatted) {\n const formatted = formatConfig.mask(e.target.value);\n setInternalValue(formatted);\n onChange?.({ ...e, target: { ...e.target, value: formatted } });\n } else {\n onChange?.(e);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isFormatted) {\n // Allow events to pass with keyboard shortcuts (Cmd/Ctrl + key)\n if (e.metaKey || e.ctrlKey) {\n return;\n }\n\n if (\n !/[0-9/]/.test(e.key) &&\n !['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab'].includes(e.key)\n ) {\n e.preventDefault();\n }\n }\n props.onKeyDown?.(e);\n };\n\n return (\n <div className={cn('relative w-full', wrapperClassName)}>\n {label &&\n (typeof label === 'string' ? (\n <label\n htmlFor={inputId}\n className=\"header-xs text-primary mb-2 block font-bold\"\n {...labelProps}\n >\n {label}\n </label>\n ) : (\n label\n ))}\n <div className=\"relative\">\n <input\n ref={ref}\n id={inputId}\n type={type}\n inputMode={inputMode}\n data-slot=\"input\"\n className={cn(inputVariants({ variant }), className)}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...valueProps}\n {...props}\n />\n {variant === 'invalid' && (\n <HiOutlineExclamationCircle\n size=\"1.5rem\"\n className=\"text-destructive pointer-events-none absolute top-3 right-2\"\n />\n )}\n\n {variant === 'search' && !hasValue && (\n <LuSearch\n size=\"1.25rem\"\n className=\"pointer-events-none absolute top-3.5 right-3 text-black\"\n />\n )}\n {variant === 'search' && hasValue && (\n <LuX\n size=\"1.25rem\"\n className=\"absolute top-3.5 right-3 cursor-pointer text-black\"\n aria-label=\"Clear search\"\n role=\"button\"\n onClick={() => {\n const event = {\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>;\n handleChange?.(event);\n }}\n />\n )}\n\n {type === 'time' && (\n <LuClock4\n size=\"1.25rem\"\n className=\"text-muted-foreground pointer-events-none absolute top-3.5 right-3\"\n />\n )}\n </div>\n {(helperText || charLength) && (\n <div className=\"mt-2 flex items-center justify-between\">\n <span\n className={cn(\n 'text-sm',\n variant === 'invalid' ? 'text-destructive' : 'text-secondary',\n )}\n >\n {helperText || ''}\n </span>\n {charLength && (\n <span\n className={cn(\n 'text-sm',\n variant === 'invalid' ? 'text-destructive' : 'text-secondary',\n )}\n >\n {currentLength}/{charLength}\n </span>\n )}\n </div>\n )}\n </div>\n );\n },\n);\n\nInput.displayName = 'Input';\n\nexport { Input, inputVariants };\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkQUD4HTUP_cjs=require('./chunk-QUD4HTUP.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),chunkULTFWLWO_cjs=require('./chunk-ULTFWLWO.cjs'),u=require('react'),vaul=require('vaul'),lu=require('react-icons/lu'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var u__namespace=/*#__PURE__*/_interopNamespace(u);function x({autoFocus:t=true,...e}){let{isMobile:a,isTablet:i}=chunkULTFWLWO_cjs.b(),n=!a&&!i;return jsxRuntime.jsx(vaul.Drawer.Root,{"data-slot":"drawer",handleOnly:n,autoFocus:t,...e})}function C({...t}){return jsxRuntime.jsx(vaul.Drawer.Trigger,{"data-slot":"drawer-trigger",...t})}function f({...t}){return jsxRuntime.jsx(vaul.Drawer.Portal,{"data-slot":"drawer-portal",...t})}function v({...t}){return jsxRuntime.jsx(vaul.Drawer.Close,{"data-slot":"drawer-close",...t})}var b=u__namespace.forwardRef(({className:t,...e},a)=>jsxRuntime.jsx(vaul.Drawer.Overlay,{ref:a,"data-slot":"drawer-overlay",className:chunkQRO22BPZ_cjs.a("z-modal-stacking-context fixed inset-0 bg-black/50",t),...e}));function R({className:t,children:e,...a}){let i=/\bw-(\w+)\b/.test(t??""),{isMobile:n,isTablet:w}=chunkULTFWLWO_cjs.b(),m=!n&&!w;return jsxRuntime.jsxs(f,{"data-slot":"drawer-portal",children:[jsxRuntime.jsx(b,{}),jsxRuntime.jsxs(vaul.Drawer.Content,{"data-slot":"drawer-content",className:chunkQRO22BPZ_cjs.a("group/drawer-content bg-background z-modal-stacking-context fixed flex h-auto flex-col",m?"!select-auto":"","data-[vaul-drawer-direction=top]:inset-x-0","data-[vaul-drawer-direction=top]:top-0","data-[vaul-drawer-direction=top]:mb-24","data-[vaul-drawer-direction=top]:max-h-[80vh]","data-[vaul-drawer-direction=top]:rounded-b-lg","data-[vaul-drawer-direction=top]:border-b","data-[vaul-drawer-direction=bottom]:inset-x-0","data-[vaul-drawer-direction=bottom]:bottom-0","data-[vaul-drawer-direction=bottom]:mt-24","data-[vaul-drawer-direction=bottom]:max-h-[80vh]","data-[vaul-drawer-direction=bottom]:rounded-t-lg","data-[vaul-drawer-direction=bottom]:border-t","data-[vaul-drawer-direction=right]:inset-y-0","data-[vaul-drawer-direction=right]:right-0","data-[vaul-drawer-direction=right]:border-l","data-[vaul-drawer-direction=right]:rounded-l-md",!i&&"data-[vaul-drawer-direction=right]:w-3/4",!i&&"data-[vaul-drawer-direction=right]:sm:max-w-md","data-[vaul-drawer-direction=left]:inset-y-0","data-[vaul-drawer-direction=left]:left-0","data-[vaul-drawer-direction=left]:border-r","data-[vaul-drawer-direction=left]:rounded-r-md",!i&&"data-[vaul-drawer-direction=left]:w-3/4",!i&&"data-[vaul-drawer-direction=left]:sm:max-w-sm",t),...a,children:[jsxRuntime.jsx("div",{className:"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block"}),e]})]})}function T({className:t,showClose:e=false,...a}){return jsxRuntime.jsxs("div",{"data-slot":"drawer-header",className:chunkQRO22BPZ_cjs.a("relative flex flex-col gap-0.5 border-b p-4 text-left md:gap-1.5 md:p-8",t),...a,children:[e&&jsxRuntime.jsx(v,{className:"focus:ring-ring absolute rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none","aria-label":"Close",asChild:true,children:jsxRuntime.jsx(chunkQUD4HTUP_cjs.b,{variant:"ghost-secondary",className:"text-primary absolute top-1/2 right-4 h-8 w-8 -translate-y-1/2 p-0",children:jsxRuntime.jsx(lu.LuX,{})})}),a.children]})}function k({className:t,...e}){return jsxRuntime.jsx("div",{"data-slot":"drawer-footer",className:chunkQRO22BPZ_cjs.a("mt-auto flex gap-2 border-t p-4 md:p-8",t),...e})}function N({className:t,...e}){return jsxRuntime.jsx(vaul.Drawer.Title,{"data-slot":"drawer-title",className:chunkQRO22BPZ_cjs.a("text-display-md",t),...e})}function O({...t}){return jsxRuntime.jsx(vaul.Drawer.Description,{"data-slot":"drawer-description",...t})}exports.a=x;exports.b=C;exports.c=f;exports.d=v;exports.e=b;exports.f=R;exports.g=T;exports.h=k;exports.i=N;exports.j=O;//# sourceMappingURL=chunk-C45VZ526.cjs.map
2
- //# sourceMappingURL=chunk-C45VZ526.cjs.map
1
+ 'use strict';var chunkFMFRB4JI_cjs=require('./chunk-FMFRB4JI.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),chunkULTFWLWO_cjs=require('./chunk-ULTFWLWO.cjs'),u=require('react'),vaul=require('vaul'),lu=require('react-icons/lu'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var u__namespace=/*#__PURE__*/_interopNamespace(u);function x({autoFocus:t=true,...e}){let{isMobile:a,isTablet:i}=chunkULTFWLWO_cjs.b(),n=!a&&!i;return jsxRuntime.jsx(vaul.Drawer.Root,{"data-slot":"drawer",handleOnly:n,autoFocus:t,...e})}function C({...t}){return jsxRuntime.jsx(vaul.Drawer.Trigger,{"data-slot":"drawer-trigger",...t})}function f({...t}){return jsxRuntime.jsx(vaul.Drawer.Portal,{"data-slot":"drawer-portal",...t})}function v({...t}){return jsxRuntime.jsx(vaul.Drawer.Close,{"data-slot":"drawer-close",...t})}var b=u__namespace.forwardRef(({className:t,...e},a)=>jsxRuntime.jsx(vaul.Drawer.Overlay,{ref:a,"data-slot":"drawer-overlay",className:chunkQRO22BPZ_cjs.a("z-modal-stacking-context fixed inset-0 bg-black/50",t),...e}));function R({className:t,children:e,...a}){let i=/\bw-(\w+)\b/.test(t??""),{isMobile:n,isTablet:w}=chunkULTFWLWO_cjs.b(),m=!n&&!w;return jsxRuntime.jsxs(f,{"data-slot":"drawer-portal",children:[jsxRuntime.jsx(b,{}),jsxRuntime.jsxs(vaul.Drawer.Content,{"data-slot":"drawer-content",className:chunkQRO22BPZ_cjs.a("group/drawer-content bg-background z-modal-stacking-context fixed flex h-auto flex-col",m?"!select-auto":"","data-[vaul-drawer-direction=top]:inset-x-0","data-[vaul-drawer-direction=top]:top-0","data-[vaul-drawer-direction=top]:mb-24","data-[vaul-drawer-direction=top]:max-h-[80vh]","data-[vaul-drawer-direction=top]:rounded-b-lg","data-[vaul-drawer-direction=top]:border-b","data-[vaul-drawer-direction=bottom]:inset-x-0","data-[vaul-drawer-direction=bottom]:bottom-0","data-[vaul-drawer-direction=bottom]:mt-24","data-[vaul-drawer-direction=bottom]:max-h-[80vh]","data-[vaul-drawer-direction=bottom]:rounded-t-lg","data-[vaul-drawer-direction=bottom]:border-t","data-[vaul-drawer-direction=right]:inset-y-0","data-[vaul-drawer-direction=right]:right-0","data-[vaul-drawer-direction=right]:border-l","data-[vaul-drawer-direction=right]:rounded-l-md",!i&&"data-[vaul-drawer-direction=right]:w-3/4",!i&&"data-[vaul-drawer-direction=right]:sm:max-w-md","data-[vaul-drawer-direction=left]:inset-y-0","data-[vaul-drawer-direction=left]:left-0","data-[vaul-drawer-direction=left]:border-r","data-[vaul-drawer-direction=left]:rounded-r-md",!i&&"data-[vaul-drawer-direction=left]:w-3/4",!i&&"data-[vaul-drawer-direction=left]:sm:max-w-sm",t),...a,children:[jsxRuntime.jsx("div",{className:"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block"}),e]})]})}function T({className:t,showClose:e=false,...a}){return jsxRuntime.jsxs("div",{"data-slot":"drawer-header",className:chunkQRO22BPZ_cjs.a("relative flex flex-col gap-0.5 border-b p-4 text-left md:gap-1.5 md:p-8",t),...a,children:[e&&jsxRuntime.jsx(v,{className:"focus:ring-ring absolute rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none","aria-label":"Close",asChild:true,children:jsxRuntime.jsx(chunkFMFRB4JI_cjs.b,{variant:"ghost-secondary",className:"text-primary absolute top-1/2 right-4 h-8 w-8 -translate-y-1/2 p-0",children:jsxRuntime.jsx(lu.LuX,{})})}),a.children]})}function k({className:t,...e}){return jsxRuntime.jsx("div",{"data-slot":"drawer-footer",className:chunkQRO22BPZ_cjs.a("mt-auto flex gap-2 border-t p-4 md:p-8",t),...e})}function N({className:t,...e}){return jsxRuntime.jsx(vaul.Drawer.Title,{"data-slot":"drawer-title",className:chunkQRO22BPZ_cjs.a("text-display-md",t),...e})}function O({...t}){return jsxRuntime.jsx(vaul.Drawer.Description,{"data-slot":"drawer-description",...t})}exports.a=x;exports.b=C;exports.c=f;exports.d=v;exports.e=b;exports.f=R;exports.g=T;exports.h=k;exports.i=N;exports.j=O;//# sourceMappingURL=chunk-UIKSYA4B.cjs.map
2
+ //# sourceMappingURL=chunk-UIKSYA4B.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/v2/drawer/drawer.tsx"],"names":["Drawer","autoFocus","props","isMobile","isTablet","useWindowSize_default","handleOnly","jsx","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","u","className","ref","cn","DrawerContent","children","hasWidth","allowUserSelect","jsxs","DrawerHeader","showClose","Button","LuX","DrawerFooter","DrawerTitle","DrawerDescription"],"mappings":"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","file":"chunk-C45VZ526.cjs","sourcesContent":["import * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nimport { LuX } from 'react-icons/lu';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/v2/button/button';\nimport { useWindowSize } from '@/hooks';\n\nfunction Drawer({ autoFocus = true, ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n const { isMobile, isTablet } = useWindowSize();\n // Invert the default behavior of vaul's drawer: https://vaul.emilkowal.ski/api#root\n // Desktop users can click the X or overlay to close, so we can disable dragging the drawer itself to close\n // this lets us allow users them to select text in the drawer without accidentally closing it\n const handleOnly = !isMobile && !isTablet;\n return (\n <DrawerPrimitive.Root\n data-slot=\"drawer\"\n handleOnly={handleOnly}\n // Invert the default behavior of vaul's drawer to always autoFocus by default\n // This ensures that keyboard users see focus moved to the drawer when it opens\n // unless explicitly disabled\n autoFocus={autoFocus}\n {...props}\n />\n );\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\n// NOTE: forwardRef for radix (underlying library for vaul)\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n data-slot=\"drawer-overlay\"\n className={cn('z-modal-stacking-context fixed inset-0 bg-black/50', className)}\n {...props}\n />\n));\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n const hasWidth = /\\bw-(\\w+)\\b/.test(className ?? '');\n\n const { isMobile, isTablet } = useWindowSize();\n // Desktop users can click the X or overlay to close, so we can disable dragging the drawer itself to close\n // this lets us allow users them to select text in the drawer without accidentally closing it\n const allowUserSelect = !isMobile && !isTablet;\n\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n 'group/drawer-content bg-background z-modal-stacking-context fixed flex h-auto flex-col',\n\n allowUserSelect ? '!select-auto' : '',\n\n // top drawer\n 'data-[vaul-drawer-direction=top]:inset-x-0',\n 'data-[vaul-drawer-direction=top]:top-0',\n 'data-[vaul-drawer-direction=top]:mb-24',\n 'data-[vaul-drawer-direction=top]:max-h-[80vh]',\n 'data-[vaul-drawer-direction=top]:rounded-b-lg',\n 'data-[vaul-drawer-direction=top]:border-b',\n\n // bottom drawer\n 'data-[vaul-drawer-direction=bottom]:inset-x-0',\n 'data-[vaul-drawer-direction=bottom]:bottom-0',\n 'data-[vaul-drawer-direction=bottom]:mt-24',\n 'data-[vaul-drawer-direction=bottom]:max-h-[80vh]',\n 'data-[vaul-drawer-direction=bottom]:rounded-t-lg',\n 'data-[vaul-drawer-direction=bottom]:border-t',\n\n // right drawer\n 'data-[vaul-drawer-direction=right]:inset-y-0',\n 'data-[vaul-drawer-direction=right]:right-0',\n 'data-[vaul-drawer-direction=right]:border-l',\n 'data-[vaul-drawer-direction=right]:rounded-l-md',\n !hasWidth && 'data-[vaul-drawer-direction=right]:w-3/4',\n !hasWidth && 'data-[vaul-drawer-direction=right]:sm:max-w-md',\n\n // left drawer\n 'data-[vaul-drawer-direction=left]:inset-y-0',\n 'data-[vaul-drawer-direction=left]:left-0',\n 'data-[vaul-drawer-direction=left]:border-r',\n 'data-[vaul-drawer-direction=left]:rounded-r-md',\n !hasWidth && 'data-[vaul-drawer-direction=left]:w-3/4',\n !hasWidth && 'data-[vaul-drawer-direction=left]:sm:max-w-sm',\n className,\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({\n className,\n showClose = false,\n ...props\n}: React.ComponentProps<'div'> & { showClose?: boolean }) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n 'relative flex flex-col gap-0.5 border-b p-4 text-left md:gap-1.5 md:p-8',\n className,\n )}\n {...props}\n >\n {showClose && (\n <DrawerClose\n className=\"focus:ring-ring absolute rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none\"\n aria-label=\"Close\"\n asChild\n >\n <Button\n variant=\"ghost-secondary\"\n className=\"text-primary absolute top-1/2 right-4 h-8 w-8 -translate-y-1/2 p-0\"\n >\n <LuX />\n </Button>\n </DrawerClose>\n )}\n {props.children}\n </div>\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex gap-2 border-t p-4 md:p-8', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn('text-display-md', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return <DrawerPrimitive.Description data-slot=\"drawer-description\" {...props} />;\n}\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n"]}
1
+ {"version":3,"sources":["../src/v2/drawer/drawer.tsx"],"names":["Drawer","autoFocus","props","isMobile","isTablet","useWindowSize_default","handleOnly","jsx","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","u","className","ref","cn","DrawerContent","children","hasWidth","allowUserSelect","jsxs","DrawerHeader","showClose","Button","LuX","DrawerFooter","DrawerTitle","DrawerDescription"],"mappings":"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","file":"chunk-UIKSYA4B.cjs","sourcesContent":["import * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nimport { LuX } from 'react-icons/lu';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/v2/button/button';\nimport { useWindowSize } from '@/hooks';\n\nfunction Drawer({ autoFocus = true, ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n const { isMobile, isTablet } = useWindowSize();\n // Invert the default behavior of vaul's drawer: https://vaul.emilkowal.ski/api#root\n // Desktop users can click the X or overlay to close, so we can disable dragging the drawer itself to close\n // this lets us allow users them to select text in the drawer without accidentally closing it\n const handleOnly = !isMobile && !isTablet;\n return (\n <DrawerPrimitive.Root\n data-slot=\"drawer\"\n handleOnly={handleOnly}\n // Invert the default behavior of vaul's drawer to always autoFocus by default\n // This ensures that keyboard users see focus moved to the drawer when it opens\n // unless explicitly disabled\n autoFocus={autoFocus}\n {...props}\n />\n );\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\n// NOTE: forwardRef for radix (underlying library for vaul)\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n data-slot=\"drawer-overlay\"\n className={cn('z-modal-stacking-context fixed inset-0 bg-black/50', className)}\n {...props}\n />\n));\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n const hasWidth = /\\bw-(\\w+)\\b/.test(className ?? '');\n\n const { isMobile, isTablet } = useWindowSize();\n // Desktop users can click the X or overlay to close, so we can disable dragging the drawer itself to close\n // this lets us allow users them to select text in the drawer without accidentally closing it\n const allowUserSelect = !isMobile && !isTablet;\n\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n 'group/drawer-content bg-background z-modal-stacking-context fixed flex h-auto flex-col',\n\n allowUserSelect ? '!select-auto' : '',\n\n // top drawer\n 'data-[vaul-drawer-direction=top]:inset-x-0',\n 'data-[vaul-drawer-direction=top]:top-0',\n 'data-[vaul-drawer-direction=top]:mb-24',\n 'data-[vaul-drawer-direction=top]:max-h-[80vh]',\n 'data-[vaul-drawer-direction=top]:rounded-b-lg',\n 'data-[vaul-drawer-direction=top]:border-b',\n\n // bottom drawer\n 'data-[vaul-drawer-direction=bottom]:inset-x-0',\n 'data-[vaul-drawer-direction=bottom]:bottom-0',\n 'data-[vaul-drawer-direction=bottom]:mt-24',\n 'data-[vaul-drawer-direction=bottom]:max-h-[80vh]',\n 'data-[vaul-drawer-direction=bottom]:rounded-t-lg',\n 'data-[vaul-drawer-direction=bottom]:border-t',\n\n // right drawer\n 'data-[vaul-drawer-direction=right]:inset-y-0',\n 'data-[vaul-drawer-direction=right]:right-0',\n 'data-[vaul-drawer-direction=right]:border-l',\n 'data-[vaul-drawer-direction=right]:rounded-l-md',\n !hasWidth && 'data-[vaul-drawer-direction=right]:w-3/4',\n !hasWidth && 'data-[vaul-drawer-direction=right]:sm:max-w-md',\n\n // left drawer\n 'data-[vaul-drawer-direction=left]:inset-y-0',\n 'data-[vaul-drawer-direction=left]:left-0',\n 'data-[vaul-drawer-direction=left]:border-r',\n 'data-[vaul-drawer-direction=left]:rounded-r-md',\n !hasWidth && 'data-[vaul-drawer-direction=left]:w-3/4',\n !hasWidth && 'data-[vaul-drawer-direction=left]:sm:max-w-sm',\n className,\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({\n className,\n showClose = false,\n ...props\n}: React.ComponentProps<'div'> & { showClose?: boolean }) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n 'relative flex flex-col gap-0.5 border-b p-4 text-left md:gap-1.5 md:p-8',\n className,\n )}\n {...props}\n >\n {showClose && (\n <DrawerClose\n className=\"focus:ring-ring absolute rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none\"\n aria-label=\"Close\"\n asChild\n >\n <Button\n variant=\"ghost-secondary\"\n className=\"text-primary absolute top-1/2 right-4 h-8 w-8 -translate-y-1/2 p-0\"\n >\n <LuX />\n </Button>\n </DrawerClose>\n )}\n {props.children}\n </div>\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex gap-2 border-t p-4 md:p-8', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn('text-display-md', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return <DrawerPrimitive.Description data-slot=\"drawer-description\" {...props} />;\n}\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkASNQTAAZ_cjs=require('./chunk-ASNQTAAZ.cjs'),chunkQOIWWR24_cjs=require('./chunk-QOIWWR24.cjs'),chunkVTYXYLTK_cjs=require('./chunk-VTYXYLTK.cjs'),jsxRuntime=require('react/jsx-runtime');var g=({uniqueId:t,open:p,loading:l,options:o,selected:c,toggleOption:a,onSearch:d,scrollbarRef:r,inputRef:f,emptyIndicator:R,loadingIndicator:n,selectFirstItem:M})=>jsxRuntime.jsx("div",{className:"relative",children:p&&jsxRuntime.jsx(chunkVTYXYLTK_cjs.d,{id:t,className:"bg-popover text-popover-foreground animate-in absolute top-1 z-10 w-full rounded-md border shadow-xs outline-none",onMouseLeave:()=>{r.current=false;},onMouseEnter:()=>{r.current=true;},onMouseUp:()=>{f?.current?.focus();},children:l&&n?n:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(chunkASNQTAAZ_cjs.a,{onSearch:d,options:o,emptyIndicator:R}),!M&&jsxRuntime.jsx(chunkVTYXYLTK_cjs.h,{value:"-",className:"hidden"}),jsxRuntime.jsx(chunkQOIWWR24_cjs.a,{options:o,uniqueId:t,selected:c,toggleOption:a})]})})});exports.a=g;//# sourceMappingURL=chunk-E7W73IO3.cjs.map
2
- //# sourceMappingURL=chunk-E7W73IO3.cjs.map
1
+ 'use strict';var chunkASNQTAAZ_cjs=require('./chunk-ASNQTAAZ.cjs'),chunk2E7ZG247_cjs=require('./chunk-2E7ZG247.cjs'),chunkEZK5NRS6_cjs=require('./chunk-EZK5NRS6.cjs'),jsxRuntime=require('react/jsx-runtime');var g=({uniqueId:t,open:p,loading:l,options:o,selected:c,toggleOption:a,onSearch:d,scrollbarRef:r,inputRef:f,emptyIndicator:R,loadingIndicator:n,selectFirstItem:M})=>jsxRuntime.jsx("div",{className:"relative",children:p&&jsxRuntime.jsx(chunkEZK5NRS6_cjs.d,{id:t,className:"bg-popover text-popover-foreground animate-in absolute top-1 z-10 w-full rounded-md border shadow-xs outline-none",onMouseLeave:()=>{r.current=false;},onMouseEnter:()=>{r.current=true;},onMouseUp:()=>{f?.current?.focus();},children:l&&n?n:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(chunkASNQTAAZ_cjs.a,{onSearch:d,options:o,emptyIndicator:R}),!M&&jsxRuntime.jsx(chunkEZK5NRS6_cjs.h,{value:"-",className:"hidden"}),jsxRuntime.jsx(chunk2E7ZG247_cjs.a,{options:o,uniqueId:t,selected:c,toggleOption:a})]})})});exports.a=g;//# sourceMappingURL=chunk-UJH4JKQC.cjs.map
2
+ //# sourceMappingURL=chunk-UJH4JKQC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/v2/multiselect/components/MultiSelectDropdown.tsx"],"names":["MultiSelectDropdown","uniqueId","open","loading","options","selected","toggleOption","onSearch","scrollbarRef","inputRef","emptyIndicator","loadingIndicator","selectFirstItem","jsx","CommandList","jsxs","Fragment","EmptyItem","CommandItem","MultiSelectCommandGroup"],"mappings":"+MAgBO,IAAMA,CAAAA,CAAsB,CAAC,CAClC,QAAA,CAAAC,CAAAA,CACA,KAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,YAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,SAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CACF,CAAA,GAEIC,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,UAAA,CACZ,QAAA,CAAAX,GACCW,cAAAA,CAACC,mBAAAA,CAAA,CACC,EAAA,CAAIb,CAAAA,CACJ,SAAA,CAAU,mHAAA,CACV,YAAA,CAAc,IAAM,CAElBO,CAAAA,CAAa,OAAA,CAAU,MAEzB,CAAA,CACA,aAAc,IAAM,CAElBA,CAAAA,CAAa,OAAA,CAAU,KAEzB,CAAA,CACA,UAAW,IAAM,CACfC,CAAAA,EAAU,OAAA,EAAS,KAAA,GACrB,EAEC,QAAA,CAAAN,CAAAA,EAAWQ,CAAAA,CACVA,CAAAA,CAEAI,eAAAA,CAAAC,mBAAAA,CAAA,CACE,QAAA,CAAA,CAAAH,cAAAA,CAACI,mBAAAA,CAAA,CAAgB,QAAA,CAAAV,CAAAA,CAAU,OAAA,CAAAH,EAAS,cAAA,CAAAM,CAAAA,CAAkB,CAAA,CACrD,CAACE,CAAAA,EAAmBC,cAAAA,CAACK,oBAAA,CAAY,KAAA,CAAM,GAAA,CAAI,SAAA,CAAU,QAAA,CAAS,CAAA,CAC/DL,eAACM,mBAAAA,CAAA,CAA8B,OAAA,CAAAf,CAAAA,CAAS,QAAA,CAAAH,CAAAA,CAAU,QAAA,CAAAI,CAAAA,CAAU,YAAA,CAAAC,CAAAA,CAAgB,CAAA,CAAA,CAC9E,CAAA,CAEJ,CAAA,CAEJ","file":"chunk-E7W73IO3.cjs","sourcesContent":["import { CommandItem, CommandList } from '@/v2/command/command';\nimport { MultiSelectProps } from '../types';\nimport { MultiSelectCommandGroup } from './MultiSelectCommandGroup';\nimport { EmptyItem } from './EmptyItem';\nimport type { UseRefsReturn } from '../hooks/useRefs';\nimport { UseMultiSelectReturn } from '../hooks/useMultiSelect';\nimport { UseInteractionsReturn } from '../hooks/useInteractions';\n\ntype Props = Pick<\n MultiSelectProps,\n 'loading' | 'loadingIndicator' | 'emptyIndicator' | 'onSearch' | 'selectFirstItem'\n> &\n Pick<UseRefsReturn, 'inputRef' | 'scrollbarRef'> &\n Pick<UseMultiSelectReturn, 'uniqueId' | 'open' | 'selected' | 'options'> &\n Pick<UseInteractionsReturn, 'toggleOption'>;\n\nexport const MultiSelectDropdown = ({\n uniqueId,\n open,\n loading,\n options,\n selected,\n toggleOption,\n onSearch,\n scrollbarRef,\n inputRef,\n emptyIndicator,\n loadingIndicator,\n selectFirstItem,\n}: Props) => {\n return (\n <div className=\"relative\">\n {open && (\n <CommandList\n id={uniqueId}\n className=\"bg-popover text-popover-foreground animate-in absolute top-1 z-10 w-full rounded-md border shadow-xs outline-none\"\n onMouseLeave={() => {\n // eslint-disable-next-line no-param-reassign\n scrollbarRef.current = false;\n // setOnScrollbar(false);\n }}\n onMouseEnter={() => {\n // eslint-disable-next-line no-param-reassign\n scrollbarRef.current = true;\n // setOnScrollbar(true);\n }}\n onMouseUp={() => {\n inputRef?.current?.focus();\n }}\n >\n {loading && loadingIndicator ? (\n loadingIndicator\n ) : (\n <>\n <EmptyItem {...{ onSearch, options, emptyIndicator }} />\n {!selectFirstItem && <CommandItem value=\"-\" className=\"hidden\" />}\n <MultiSelectCommandGroup {...{ options, uniqueId, selected, toggleOption }} />\n </>\n )}\n </CommandList>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/v2/multiselect/components/MultiSelectDropdown.tsx"],"names":["MultiSelectDropdown","uniqueId","open","loading","options","selected","toggleOption","onSearch","scrollbarRef","inputRef","emptyIndicator","loadingIndicator","selectFirstItem","jsx","CommandList","jsxs","Fragment","EmptyItem","CommandItem","MultiSelectCommandGroup"],"mappings":"+MAgBO,IAAMA,CAAAA,CAAsB,CAAC,CAClC,QAAA,CAAAC,CAAAA,CACA,KAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,YAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,SAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CACF,CAAA,GAEIC,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,UAAA,CACZ,QAAA,CAAAX,GACCW,cAAAA,CAACC,mBAAAA,CAAA,CACC,EAAA,CAAIb,CAAAA,CACJ,SAAA,CAAU,mHAAA,CACV,YAAA,CAAc,IAAM,CAElBO,CAAAA,CAAa,OAAA,CAAU,MAEzB,CAAA,CACA,aAAc,IAAM,CAElBA,CAAAA,CAAa,OAAA,CAAU,KAEzB,CAAA,CACA,UAAW,IAAM,CACfC,CAAAA,EAAU,OAAA,EAAS,KAAA,GACrB,EAEC,QAAA,CAAAN,CAAAA,EAAWQ,CAAAA,CACVA,CAAAA,CAEAI,eAAAA,CAAAC,mBAAAA,CAAA,CACE,QAAA,CAAA,CAAAH,cAAAA,CAACI,mBAAAA,CAAA,CAAgB,QAAA,CAAAV,CAAAA,CAAU,OAAA,CAAAH,EAAS,cAAA,CAAAM,CAAAA,CAAkB,CAAA,CACrD,CAACE,CAAAA,EAAmBC,cAAAA,CAACK,oBAAA,CAAY,KAAA,CAAM,GAAA,CAAI,SAAA,CAAU,QAAA,CAAS,CAAA,CAC/DL,eAACM,mBAAAA,CAAA,CAA8B,OAAA,CAAAf,CAAAA,CAAS,QAAA,CAAAH,CAAAA,CAAU,QAAA,CAAAI,CAAAA,CAAU,YAAA,CAAAC,CAAAA,CAAgB,CAAA,CAAA,CAC9E,CAAA,CAEJ,CAAA,CAEJ","file":"chunk-UJH4JKQC.cjs","sourcesContent":["import { CommandItem, CommandList } from '@/v2/command/command';\nimport { MultiSelectProps } from '../types';\nimport { MultiSelectCommandGroup } from './MultiSelectCommandGroup';\nimport { EmptyItem } from './EmptyItem';\nimport type { UseRefsReturn } from '../hooks/useRefs';\nimport { UseMultiSelectReturn } from '../hooks/useMultiSelect';\nimport { UseInteractionsReturn } from '../hooks/useInteractions';\n\ntype Props = Pick<\n MultiSelectProps,\n 'loading' | 'loadingIndicator' | 'emptyIndicator' | 'onSearch' | 'selectFirstItem'\n> &\n Pick<UseRefsReturn, 'inputRef' | 'scrollbarRef'> &\n Pick<UseMultiSelectReturn, 'uniqueId' | 'open' | 'selected' | 'options'> &\n Pick<UseInteractionsReturn, 'toggleOption'>;\n\nexport const MultiSelectDropdown = ({\n uniqueId,\n open,\n loading,\n options,\n selected,\n toggleOption,\n onSearch,\n scrollbarRef,\n inputRef,\n emptyIndicator,\n loadingIndicator,\n selectFirstItem,\n}: Props) => {\n return (\n <div className=\"relative\">\n {open && (\n <CommandList\n id={uniqueId}\n className=\"bg-popover text-popover-foreground animate-in absolute top-1 z-10 w-full rounded-md border shadow-xs outline-none\"\n onMouseLeave={() => {\n // eslint-disable-next-line no-param-reassign\n scrollbarRef.current = false;\n // setOnScrollbar(false);\n }}\n onMouseEnter={() => {\n // eslint-disable-next-line no-param-reassign\n scrollbarRef.current = true;\n // setOnScrollbar(true);\n }}\n onMouseUp={() => {\n inputRef?.current?.focus();\n }}\n >\n {loading && loadingIndicator ? (\n loadingIndicator\n ) : (\n <>\n <EmptyItem {...{ onSearch, options, emptyIndicator }} />\n {!selectFirstItem && <CommandItem value=\"-\" className=\"hidden\" />}\n <MultiSelectCommandGroup {...{ options, uniqueId, selected, toggleOption }} />\n </>\n )}\n </CommandList>\n )}\n </div>\n );\n};\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkQUD4HTUP_cjs=require('./chunk-QUD4HTUP.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),e=require('react'),w=require('embla-carousel-react'),lu=require('react-icons/lu'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var w__default=/*#__PURE__*/_interopDefault(w);var v=e__namespace.createContext(null);function d(){let t=e__namespace.useContext(v);if(!t)throw new Error("useCarousel must be used within a <Carousel />");return t}function T({orientation:t="horizontal",opts:l,setApi:o,plugins:s,className:u,children:c,...i}){let[x,r]=w__default.default({...l,axis:t==="horizontal"?"x":"y"},s),[P,R]=e__namespace.useState(false),[y,b]=e__namespace.useState(false),[N,S]=e__namespace.useState(0),[h,z]=e__namespace.useState(0),p=e__namespace.useCallback(C=>{C&&(R(C.canScrollPrev()),b(C.canScrollNext()),S(C.selectedScrollSnap()),z(C.scrollSnapList().length));},[]),g=e__namespace.useCallback(()=>{r?.scrollPrev();},[r]),E=e__namespace.useCallback(()=>{r?.scrollNext();},[r]);return e__namespace.useEffect(()=>{!r||!o||o(r);},[r,o]),e__namespace.useEffect(()=>{if(r)return p(r),r.on("reInit",p),r.on("select",p),()=>{r?.off("select",p);}},[r,p]),jsxRuntime.jsx(v.Provider,{value:{carouselRef:x,api:r,opts:l,orientation:t||(l?.axis==="y"?"vertical":"horizontal"),selectedIndex:N,slideCount:h,scrollPrev:g,scrollNext:E,canScrollPrev:P,canScrollNext:y},children:jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("relative",u),role:"region","aria-roledescription":"carousel","data-slot":"carousel",...i,children:c})})}function O({className:t,...l}){let{carouselRef:o,orientation:s}=d();return jsxRuntime.jsx("div",{ref:o,className:"overflow-hidden","data-slot":"carousel-content",children:jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex",s==="horizontal"?"-ml-4":"-mt-4 flex-col",t),...l})})}function F({className:t,...l}){let{orientation:o}=d();return jsxRuntime.jsx("div",{role:"group","aria-roledescription":"slide","data-slot":"carousel-item",className:chunkQRO22BPZ_cjs.a("min-w-0 shrink-0 grow-0 basis-full",o==="horizontal"?"pl-4":"pt-4",t),...l})}function j({className:t,variant:l="outline",size:o="sm",...s}){let{orientation:u,scrollPrev:c,canScrollPrev:i}=d();return jsxRuntime.jsxs(chunkQUD4HTUP_cjs.b,{"data-slot":"carousel-previous",variant:l,size:o,className:chunkQRO22BPZ_cjs.a("absolute size-8 rounded-full",u==="horizontal"?"top-1/2 -left-12 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",t),disabled:!i,onClick:c,...s,children:[jsxRuntime.jsx(lu.LuArrowLeft,{}),jsxRuntime.jsx("span",{className:"sr-only",children:"Previous slide"})]})}function q({className:t,variant:l="outline",size:o="sm",...s}){let{orientation:u,scrollNext:c,canScrollNext:i}=d();return jsxRuntime.jsxs(chunkQUD4HTUP_cjs.b,{"data-slot":"carousel-next",variant:l,size:o,className:chunkQRO22BPZ_cjs.a("absolute size-8 rounded-full",u==="horizontal"?"top-1/2 -right-12 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",t),disabled:!i,onClick:c,...s,children:[jsxRuntime.jsx(lu.LuArrowRight,{}),jsxRuntime.jsx("span",{className:"sr-only",children:"Next slide"})]})}function D({className:t,...l}){let{slideCount:o,selectedIndex:s}=d();return o<=1?null:jsxRuntime.jsxs("div",{className:chunkQRO22BPZ_cjs.a("text-muted-foreground text-sm",t),"data-slot":"carousel-fraction",...l,children:[s+1,"/",o]})}exports.a=d;exports.b=T;exports.c=O;exports.d=F;exports.e=j;exports.f=q;exports.g=D;//# sourceMappingURL=chunk-X7HU4N6X.cjs.map
2
- //# sourceMappingURL=chunk-X7HU4N6X.cjs.map
1
+ 'use strict';var chunkFMFRB4JI_cjs=require('./chunk-FMFRB4JI.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),e=require('react'),w=require('embla-carousel-react'),lu=require('react-icons/lu'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var w__default=/*#__PURE__*/_interopDefault(w);var v=e__namespace.createContext(null);function d(){let t=e__namespace.useContext(v);if(!t)throw new Error("useCarousel must be used within a <Carousel />");return t}function T({orientation:t="horizontal",opts:l,setApi:o,plugins:s,className:u,children:c,...i}){let[x,r]=w__default.default({...l,axis:t==="horizontal"?"x":"y"},s),[P,R]=e__namespace.useState(false),[y,b]=e__namespace.useState(false),[N,S]=e__namespace.useState(0),[h,z]=e__namespace.useState(0),p=e__namespace.useCallback(C=>{C&&(R(C.canScrollPrev()),b(C.canScrollNext()),S(C.selectedScrollSnap()),z(C.scrollSnapList().length));},[]),g=e__namespace.useCallback(()=>{r?.scrollPrev();},[r]),E=e__namespace.useCallback(()=>{r?.scrollNext();},[r]);return e__namespace.useEffect(()=>{!r||!o||o(r);},[r,o]),e__namespace.useEffect(()=>{if(r)return p(r),r.on("reInit",p),r.on("select",p),()=>{r?.off("select",p);}},[r,p]),jsxRuntime.jsx(v.Provider,{value:{carouselRef:x,api:r,opts:l,orientation:t||(l?.axis==="y"?"vertical":"horizontal"),selectedIndex:N,slideCount:h,scrollPrev:g,scrollNext:E,canScrollPrev:P,canScrollNext:y},children:jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("relative",u),role:"region","aria-roledescription":"carousel","data-slot":"carousel",...i,children:c})})}function O({className:t,...l}){let{carouselRef:o,orientation:s}=d();return jsxRuntime.jsx("div",{ref:o,className:"overflow-hidden","data-slot":"carousel-content",children:jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex",s==="horizontal"?"-ml-4":"-mt-4 flex-col",t),...l})})}function F({className:t,...l}){let{orientation:o}=d();return jsxRuntime.jsx("div",{role:"group","aria-roledescription":"slide","data-slot":"carousel-item",className:chunkQRO22BPZ_cjs.a("min-w-0 shrink-0 grow-0 basis-full",o==="horizontal"?"pl-4":"pt-4",t),...l})}function j({className:t,variant:l="outline",size:o="sm",...s}){let{orientation:u,scrollPrev:c,canScrollPrev:i}=d();return jsxRuntime.jsxs(chunkFMFRB4JI_cjs.b,{"data-slot":"carousel-previous",variant:l,size:o,className:chunkQRO22BPZ_cjs.a("absolute size-8 rounded-full",u==="horizontal"?"top-1/2 -left-12 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",t),disabled:!i,onClick:c,...s,children:[jsxRuntime.jsx(lu.LuArrowLeft,{}),jsxRuntime.jsx("span",{className:"sr-only",children:"Previous slide"})]})}function q({className:t,variant:l="outline",size:o="sm",...s}){let{orientation:u,scrollNext:c,canScrollNext:i}=d();return jsxRuntime.jsxs(chunkFMFRB4JI_cjs.b,{"data-slot":"carousel-next",variant:l,size:o,className:chunkQRO22BPZ_cjs.a("absolute size-8 rounded-full",u==="horizontal"?"top-1/2 -right-12 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",t),disabled:!i,onClick:c,...s,children:[jsxRuntime.jsx(lu.LuArrowRight,{}),jsxRuntime.jsx("span",{className:"sr-only",children:"Next slide"})]})}function D({className:t,...l}){let{slideCount:o,selectedIndex:s}=d();return o<=1?null:jsxRuntime.jsxs("div",{className:chunkQRO22BPZ_cjs.a("text-muted-foreground text-sm",t),"data-slot":"carousel-fraction",...l,children:[s+1,"/",o]})}exports.a=d;exports.b=T;exports.c=O;exports.d=F;exports.e=j;exports.f=q;exports.g=D;//# sourceMappingURL=chunk-URUWP25E.cjs.map
2
+ //# sourceMappingURL=chunk-URUWP25E.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/v2/carousel/carousel.tsx"],"names":["CarouselContext","e","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","selectedIndex","setSelectedIndex","slideCount","setSlideCount","onSelect","scrollPrev","scrollNext","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","LuArrowLeft","CarouselNext","LuArrowRight","CarouselFraction"],"mappings":"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","file":"chunk-X7HU4N6X.cjs","sourcesContent":["import * as React from 'react';\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { LuArrowLeft, LuArrowRight } from 'react-icons/lu';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/v2/button/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n selectedIndex: number;\n slideCount: number;\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [slideCount, setSlideCount] = React.useState(0);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n setSelectedIndex(api.selectedScrollSnap());\n setSlideCount(api.scrollSnapList().length);\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n // eslint-disable-next-line consistent-return\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n carouselRef,\n api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n selectedIndex,\n slideCount,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div\n className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = 'outline',\n size = 'sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal'\n ? 'top-1/2 -left-12 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <LuArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = 'outline',\n size = 'sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal'\n ? 'top-1/2 -right-12 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <LuArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nfunction CarouselFraction({ className, ...props }: React.ComponentProps<'div'>) {\n const { slideCount, selectedIndex } = useCarousel();\n\n if (slideCount <= 1) return null;\n\n return (\n <div\n className={cn('text-muted-foreground text-sm', className)}\n data-slot=\"carousel-fraction\"\n {...props}\n >\n {selectedIndex + 1}/{slideCount}\n </div>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n CarouselFraction,\n useCarousel,\n};\n"]}
1
+ {"version":3,"sources":["../src/v2/carousel/carousel.tsx"],"names":["CarouselContext","e","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","selectedIndex","setSelectedIndex","slideCount","setSlideCount","onSelect","scrollPrev","scrollNext","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","LuArrowLeft","CarouselNext","LuArrowRight","CarouselFraction"],"mappings":"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","file":"chunk-URUWP25E.cjs","sourcesContent":["import * as React from 'react';\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { LuArrowLeft, LuArrowRight } from 'react-icons/lu';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/v2/button/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n selectedIndex: number;\n slideCount: number;\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [slideCount, setSlideCount] = React.useState(0);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n setSelectedIndex(api.selectedScrollSnap());\n setSlideCount(api.scrollSnapList().length);\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n // eslint-disable-next-line consistent-return\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n carouselRef,\n api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n selectedIndex,\n slideCount,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div\n className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = 'outline',\n size = 'sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal'\n ? 'top-1/2 -left-12 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <LuArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = 'outline',\n size = 'sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal'\n ? 'top-1/2 -right-12 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <LuArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nfunction CarouselFraction({ className, ...props }: React.ComponentProps<'div'>) {\n const { slideCount, selectedIndex } = useCarousel();\n\n if (slideCount <= 1) return null;\n\n return (\n <div\n className={cn('text-muted-foreground text-sm', className)}\n data-slot=\"carousel-fraction\"\n {...props}\n >\n {selectedIndex + 1}/{slideCount}\n </div>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n CarouselFraction,\n useCarousel,\n};\n"]}
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-Z6BTLUPD.js';import {a as a$1}from'./chunk-YTIIAU4W.js';import {jsx}from'react/jsx-runtime';var m=({id:h,children:i=null,className:b,classNames:r={},columns:o=2,value:t,onValueChange:C,items:l=[],...n})=>{let u=(e,s)=>{let g=s?[...t,e]:t.filter(d=>d!==e);C(g);};return jsx("div",{className:a$1("grid gap-2",o===1&&"grid-cols-1",o===2&&"grid-cols-2",o===3&&"grid-cols-3",o===4&&"grid-cols-4",b,r?.base),id:h,children:l?.length?l.map(e=>jsx(a,{classNames:r?.buttonCheckbox,checked:t.includes(e.value),onCheckedChange:s=>u(e.value,s),size:n.size,...n,children:e.label},e.value)):i})};export{m as a};//# sourceMappingURL=chunk-FMPII2NF.js.map
2
- //# sourceMappingURL=chunk-FMPII2NF.js.map
1
+ import {a}from'./chunk-R2R3QR2N.js';import {a as a$1}from'./chunk-YTIIAU4W.js';import {jsx}from'react/jsx-runtime';var m=({id:h,children:i=null,className:b,classNames:r={},columns:o=2,value:t,onValueChange:C,items:l=[],...n})=>{let u=(e,s)=>{let g=s?[...t,e]:t.filter(d=>d!==e);C(g);};return jsx("div",{className:a$1("grid gap-2",o===1&&"grid-cols-1",o===2&&"grid-cols-2",o===3&&"grid-cols-3",o===4&&"grid-cols-4",b,r?.base),id:h,children:l?.length?l.map(e=>jsx(a,{classNames:r?.buttonCheckbox,checked:t.includes(e.value),onCheckedChange:s=>u(e.value,s),size:n.size,...n,children:e.label},e.value)):i})};export{m as a};//# sourceMappingURL=chunk-VIPOYVA3.js.map
2
+ //# sourceMappingURL=chunk-VIPOYVA3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/v2/checkbox-group/checkbox-group.tsx"],"names":["CheckboxGroup","id","children","className","classNames","columns","value","onValueChange","items","props","handleToggle","optionValue","checked","newValues","v","jsx","cn","option","ButtonCheckbox"],"mappings":"mHAsBO,IAAMA,CAAAA,CAAgB,CAAC,CAC5B,EAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAAW,IAAA,CACX,SAAA,CAAAC,CAAAA,CACA,WAAAC,CAAAA,CAAa,EAAC,CACd,OAAA,CAAAC,CAAAA,CAAU,CAAA,CACV,KAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CAAQ,EAAC,CACT,GAAGC,CACL,CAAA,GAA0B,CACxB,IAAMC,CAAAA,CAAe,CAACC,CAAAA,CAAqBC,CAAAA,GAAqB,CAC9D,IAAMC,CAAAA,CAAYD,CAAAA,CAAU,CAAC,GAAGN,CAAAA,CAAOK,CAAW,CAAA,CAAIL,CAAAA,CAAM,MAAA,CAAQQ,CAAAA,EAAMA,CAAAA,GAAMH,CAAW,CAAA,CAC3FJ,CAAAA,CAAcM,CAAS,EACzB,CAAA,CAEA,OACEE,GAAAA,CAAC,KAAA,CAAA,CACC,UAAWC,GAAAA,CACT,YAAA,CACAX,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBA,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBA,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBA,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBF,EACAC,CAAAA,EAAY,IACd,CAAA,CACA,EAAA,CAAIH,CAAAA,CAEH,QAAA,CAAAO,CAAAA,EAAO,MAAA,CACJA,CAAAA,CAAM,GAAA,CAAKS,CAAAA,EACTF,GAAAA,CAACG,CAAAA,CAAA,CACC,WAAYd,CAAAA,EAAY,cAAA,CAExB,OAAA,CAASE,CAAAA,CAAM,QAAA,CAASW,CAAAA,CAAO,KAAK,CAAA,CACpC,eAAA,CAAkBL,CAAAA,EAAqBF,CAAAA,CAAaO,CAAAA,CAAO,KAAA,CAAOL,CAAO,CAAA,CACzE,IAAA,CAAMH,CAAAA,CAAM,IAAA,CACX,GAAGA,CAAAA,CAEH,QAAA,CAAAQ,CAAAA,CAAO,KAAA,CAAA,CANHA,CAAAA,CAAO,KAOd,CACD,CAAA,CACDf,CAAAA,CACN,CAEJ","file":"chunk-FMPII2NF.js","sourcesContent":["import type { ComponentProps, PropsWithChildren } from 'react';\nimport { cn } from '@/lib/utils';\nimport { ButtonCheckbox, type ButtonCheckboxSlots } from '../checkbox/button-checkbox';\nimport type { Slots } from '../types';\n\nexport type CheckboxGroupSlots = Slots & {\n classNames?: {\n buttonCheckbox?: ButtonCheckboxSlots['classNames'];\n };\n};\n\nexport type CheckboxGroupProps = Omit<\n ComponentProps<typeof ButtonCheckbox>,\n 'classNames' | 'value'\n> & {\n columns?: 1 | 2 | 3 | 4;\n onValueChange: (value: string[]) => void;\n items?: { label: string; value: string }[];\n value: string[];\n} & CheckboxGroupSlots &\n PropsWithChildren;\n\nexport const CheckboxGroup = ({\n id,\n children = null,\n className,\n classNames = {},\n columns = 2,\n value,\n onValueChange,\n items = [],\n ...props\n}: CheckboxGroupProps) => {\n const handleToggle = (optionValue: string, checked: boolean) => {\n const newValues = checked ? [...value, optionValue] : value.filter((v) => v !== optionValue);\n onValueChange(newValues);\n };\n\n return (\n <div\n className={cn(\n 'grid gap-2',\n columns === 1 && 'grid-cols-1',\n columns === 2 && 'grid-cols-2',\n columns === 3 && 'grid-cols-3',\n columns === 4 && 'grid-cols-4',\n className,\n classNames?.base,\n )}\n id={id}\n >\n {items?.length\n ? items.map((option) => (\n <ButtonCheckbox\n classNames={classNames?.buttonCheckbox}\n key={option.value}\n checked={value.includes(option.value)}\n onCheckedChange={(checked: boolean) => handleToggle(option.value, checked)}\n size={props.size}\n {...props}\n >\n {option.label}\n </ButtonCheckbox>\n ))\n : children}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/v2/checkbox-group/checkbox-group.tsx"],"names":["CheckboxGroup","id","children","className","classNames","columns","value","onValueChange","items","props","handleToggle","optionValue","checked","newValues","v","jsx","cn","option","ButtonCheckbox"],"mappings":"mHAsBO,IAAMA,CAAAA,CAAgB,CAAC,CAC5B,EAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAAW,IAAA,CACX,SAAA,CAAAC,CAAAA,CACA,WAAAC,CAAAA,CAAa,EAAC,CACd,OAAA,CAAAC,CAAAA,CAAU,CAAA,CACV,KAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CAAQ,EAAC,CACT,GAAGC,CACL,CAAA,GAA0B,CACxB,IAAMC,CAAAA,CAAe,CAACC,CAAAA,CAAqBC,CAAAA,GAAqB,CAC9D,IAAMC,CAAAA,CAAYD,CAAAA,CAAU,CAAC,GAAGN,CAAAA,CAAOK,CAAW,CAAA,CAAIL,CAAAA,CAAM,MAAA,CAAQQ,CAAAA,EAAMA,CAAAA,GAAMH,CAAW,CAAA,CAC3FJ,CAAAA,CAAcM,CAAS,EACzB,CAAA,CAEA,OACEE,GAAAA,CAAC,KAAA,CAAA,CACC,UAAWC,GAAAA,CACT,YAAA,CACAX,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBA,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBA,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBA,CAAAA,GAAY,CAAA,EAAK,aAAA,CACjBF,EACAC,CAAAA,EAAY,IACd,CAAA,CACA,EAAA,CAAIH,CAAAA,CAEH,QAAA,CAAAO,CAAAA,EAAO,MAAA,CACJA,CAAAA,CAAM,GAAA,CAAKS,CAAAA,EACTF,GAAAA,CAACG,CAAAA,CAAA,CACC,WAAYd,CAAAA,EAAY,cAAA,CAExB,OAAA,CAASE,CAAAA,CAAM,QAAA,CAASW,CAAAA,CAAO,KAAK,CAAA,CACpC,eAAA,CAAkBL,CAAAA,EAAqBF,CAAAA,CAAaO,CAAAA,CAAO,KAAA,CAAOL,CAAO,CAAA,CACzE,IAAA,CAAMH,CAAAA,CAAM,IAAA,CACX,GAAGA,CAAAA,CAEH,QAAA,CAAAQ,CAAAA,CAAO,KAAA,CAAA,CANHA,CAAAA,CAAO,KAOd,CACD,CAAA,CACDf,CAAAA,CACN,CAEJ","file":"chunk-VIPOYVA3.js","sourcesContent":["import type { ComponentProps, PropsWithChildren } from 'react';\nimport { cn } from '@/lib/utils';\nimport { ButtonCheckbox, type ButtonCheckboxSlots } from '../checkbox/button-checkbox';\nimport type { Slots } from '../types';\n\nexport type CheckboxGroupSlots = Slots & {\n classNames?: {\n buttonCheckbox?: ButtonCheckboxSlots['classNames'];\n };\n};\n\nexport type CheckboxGroupProps = Omit<\n ComponentProps<typeof ButtonCheckbox>,\n 'classNames' | 'value'\n> & {\n columns?: 1 | 2 | 3 | 4;\n onValueChange: (value: string[]) => void;\n items?: { label: string; value: string }[];\n value: string[];\n} & CheckboxGroupSlots &\n PropsWithChildren;\n\nexport const CheckboxGroup = ({\n id,\n children = null,\n className,\n classNames = {},\n columns = 2,\n value,\n onValueChange,\n items = [],\n ...props\n}: CheckboxGroupProps) => {\n const handleToggle = (optionValue: string, checked: boolean) => {\n const newValues = checked ? [...value, optionValue] : value.filter((v) => v !== optionValue);\n onValueChange(newValues);\n };\n\n return (\n <div\n className={cn(\n 'grid gap-2',\n columns === 1 && 'grid-cols-1',\n columns === 2 && 'grid-cols-2',\n columns === 3 && 'grid-cols-3',\n columns === 4 && 'grid-cols-4',\n className,\n classNames?.base,\n )}\n id={id}\n >\n {items?.length\n ? items.map((option) => (\n <ButtonCheckbox\n classNames={classNames?.buttonCheckbox}\n key={option.value}\n checked={value.includes(option.value)}\n onCheckedChange={(checked: boolean) => handleToggle(option.value, checked)}\n size={props.size}\n {...props}\n >\n {option.label}\n </ButtonCheckbox>\n ))\n : children}\n </div>\n );\n};\n"]}
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-N6CDLFD7.js';import {f,h}from'./chunk-SMTXYI6Q.js';import {a as a$1}from'./chunk-YTIIAU4W.js';import {LuCheck}from'react-icons/lu';import {jsx,jsxs}from'react/jsx-runtime';var S=({options:o,selected:l,toggleOption:i,onSearch:c,uniqueId:p})=>{let d=a({selected:l,options:o});return jsx(f,{className:"h-full overflow-auto",children:jsx("div",{className:"flex flex-col gap-1",children:(c?d:o).map(e=>{let s=l.some(t=>t.value===e.value);return jsxs(h,{value:e.value,keywords:typeof e.label=="string"?[e.label]:void 0,disabled:e.disable,onMouseDown:t=>{t.preventDefault(),t.stopPropagation();},onSelect:()=>i(e),className:a$1("flex cursor-pointer items-center justify-between p-3 data-[selected=true]:bg-green-200 hover:data-[selected=true]:bg-green-200",e.disable&&"text-muted-foreground cursor-default",s&&"bg-green-100"),children:[e.label,s&&jsx(LuCheck,{className:"h-4 w-4 text-green-800"})]},e.value)})})},`${p}-command-group`)};export{S as a};//# sourceMappingURL=chunk-MPGPI6LC.js.map
2
- //# sourceMappingURL=chunk-MPGPI6LC.js.map
1
+ import {a}from'./chunk-N6CDLFD7.js';import {f,h}from'./chunk-STIYYCSL.js';import {a as a$1}from'./chunk-YTIIAU4W.js';import {LuCheck}from'react-icons/lu';import {jsx,jsxs}from'react/jsx-runtime';var S=({options:o,selected:l,toggleOption:i,onSearch:c,uniqueId:p})=>{let d=a({selected:l,options:o});return jsx(f,{className:"h-full overflow-auto",children:jsx("div",{className:"flex flex-col gap-1",children:(c?d:o).map(e=>{let s=l.some(t=>t.value===e.value);return jsxs(h,{value:e.value,keywords:typeof e.label=="string"?[e.label]:void 0,disabled:e.disable,onMouseDown:t=>{t.preventDefault(),t.stopPropagation();},onSelect:()=>i(e),className:a$1("flex cursor-pointer items-center justify-between p-3 data-[selected=true]:bg-green-200 hover:data-[selected=true]:bg-green-200",e.disable&&"text-muted-foreground cursor-default",s&&"bg-green-100"),children:[e.label,s&&jsx(LuCheck,{className:"h-4 w-4 text-green-800"})]},e.value)})})},`${p}-command-group`)};export{S as a};//# sourceMappingURL=chunk-XOWSDMW5.js.map
2
+ //# sourceMappingURL=chunk-XOWSDMW5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/v2/multiselect/components/MultiSelectCommandGroup.tsx"],"names":["MultiSelectCommandGroup","options","selected","toggleOption","onSearch","uniqueId","mergedOptions","useMergeOptions","jsx","CommandGroup","option","optionSelected","s","jsxs","CommandItem","e","cn","LuCheck"],"mappings":"mMAeO,IAAMA,CAAAA,CAA0B,CAAC,CACtC,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CACF,CAAA,GAAa,CACX,IAAMC,CAAAA,CAAgBC,CAAAA,CAAgB,CAAE,QAAA,CAAAL,CAAAA,CAAU,OAAA,CAAAD,CAAQ,CAAC,CAAA,CAG3D,OACEO,GAAAA,CAACC,CAAAA,CAAA,CAA+C,SAAA,CAAU,sBAAA,CACxD,QAAA,CAAAD,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qBAAA,CACZ,QAAA,CAAA,CALgBJ,CAAAA,CAAWE,CAAAA,CAAgBL,CAAAA,EAK5B,GAAA,CAAKS,CAAAA,EAAmB,CACtC,IAAMC,CAAAA,CAAiBT,CAAAA,CAAS,IAAA,CAAMU,CAAAA,EAAMA,CAAAA,CAAE,KAAA,GAAUF,EAAO,KAAK,CAAA,CACpE,OACEG,IAAAA,CAACC,CAAAA,CAAA,CAEC,KAAA,CAAOJ,CAAAA,CAAO,KAAA,CACd,QAAA,CAAU,OAAOA,CAAAA,CAAO,KAAA,EAAU,QAAA,CAAW,CAACA,CAAAA,CAAO,KAAK,CAAA,CAAI,MAAA,CAC9D,QAAA,CAAUA,CAAAA,CAAO,OAAA,CACjB,WAAA,CAAcK,CAAAA,EAAM,CAClBA,CAAAA,CAAE,cAAA,EAAe,CACjBA,CAAAA,CAAE,eAAA,GACJ,CAAA,CACA,QAAA,CAAU,IAAMZ,CAAAA,CAAaO,CAAM,CAAA,CACnC,SAAA,CAAWM,GAAAA,CAGT,gIAAA,CACAN,CAAAA,CAAO,OAAA,EAAW,sCAAA,CAClBC,CAAAA,EAAkB,cACpB,CAAA,CAEC,QAAA,CAAA,CAAAD,CAAAA,CAAO,KAAA,CACPC,CAAAA,EAAkBH,GAAAA,CAACS,OAAAA,CAAA,CAAQ,SAAA,CAAU,wBAAA,CAAyB,CAAA,CAAA,CAAA,CAlB1DP,CAAAA,CAAO,KAmBd,CAEJ,CAAC,CAAA,CACH,CAAA,CAAA,CA5BiB,CAAA,EAAGL,CAAQ,gBA6B9B,CAEJ","file":"chunk-MPGPI6LC.js","sourcesContent":["import { LuCheck } from 'react-icons/lu';\n\nimport { CommandGroup, CommandItem } from '@/v2/command/command';\nimport { cn } from '@/lib/utils';\nimport { MultiSelectProps, Option } from '../types';\nimport { UseMultiSelectReturn } from '../hooks/useMultiSelect';\nimport { UseInteractionsReturn } from '../hooks/useInteractions';\nimport { useMergeOptions } from '../hooks/useMergeOptions';\n\ntype Props = Pick<MultiSelectProps, 'onSearch'> &\n Pick<UseMultiSelectReturn, 'selected' | 'uniqueId'> &\n Pick<UseInteractionsReturn, 'toggleOption'> & {\n options: Option[];\n };\n\nexport const MultiSelectCommandGroup = ({\n options,\n selected,\n toggleOption,\n onSearch,\n uniqueId,\n}: Props) => {\n const mergedOptions = useMergeOptions({ selected, options });\n const displayOptions = onSearch ? mergedOptions : options;\n\n return (\n <CommandGroup key={`${uniqueId}-command-group`} className=\"h-full overflow-auto\">\n <div className=\"flex flex-col gap-1\">\n {displayOptions.map((option: Option) => {\n const optionSelected = selected.some((s) => s.value === option.value);\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n keywords={typeof option.label === 'string' ? [option.label] : undefined}\n disabled={option.disable}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => toggleOption(option)}\n className={cn(\n // data-[selected=true] means when the user navigates onto an option with the keyboard\n // optionSelected means the user has actually toggled on the option\n 'flex cursor-pointer items-center justify-between p-3 data-[selected=true]:bg-green-200 hover:data-[selected=true]:bg-green-200',\n option.disable && 'text-muted-foreground cursor-default',\n optionSelected && 'bg-green-100',\n )}\n >\n {option.label}\n {optionSelected && <LuCheck className=\"h-4 w-4 text-green-800\" />}\n </CommandItem>\n );\n })}\n </div>\n </CommandGroup>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/v2/multiselect/components/MultiSelectCommandGroup.tsx"],"names":["MultiSelectCommandGroup","options","selected","toggleOption","onSearch","uniqueId","mergedOptions","useMergeOptions","jsx","CommandGroup","option","optionSelected","s","jsxs","CommandItem","e","cn","LuCheck"],"mappings":"mMAeO,IAAMA,CAAAA,CAA0B,CAAC,CACtC,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CACF,CAAA,GAAa,CACX,IAAMC,CAAAA,CAAgBC,CAAAA,CAAgB,CAAE,QAAA,CAAAL,CAAAA,CAAU,OAAA,CAAAD,CAAQ,CAAC,CAAA,CAG3D,OACEO,GAAAA,CAACC,CAAAA,CAAA,CAA+C,SAAA,CAAU,sBAAA,CACxD,QAAA,CAAAD,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qBAAA,CACZ,QAAA,CAAA,CALgBJ,CAAAA,CAAWE,CAAAA,CAAgBL,CAAAA,EAK5B,GAAA,CAAKS,CAAAA,EAAmB,CACtC,IAAMC,CAAAA,CAAiBT,CAAAA,CAAS,IAAA,CAAMU,CAAAA,EAAMA,CAAAA,CAAE,KAAA,GAAUF,EAAO,KAAK,CAAA,CACpE,OACEG,IAAAA,CAACC,CAAAA,CAAA,CAEC,KAAA,CAAOJ,CAAAA,CAAO,KAAA,CACd,QAAA,CAAU,OAAOA,CAAAA,CAAO,KAAA,EAAU,QAAA,CAAW,CAACA,CAAAA,CAAO,KAAK,CAAA,CAAI,MAAA,CAC9D,QAAA,CAAUA,CAAAA,CAAO,OAAA,CACjB,WAAA,CAAcK,CAAAA,EAAM,CAClBA,CAAAA,CAAE,cAAA,EAAe,CACjBA,CAAAA,CAAE,eAAA,GACJ,CAAA,CACA,QAAA,CAAU,IAAMZ,CAAAA,CAAaO,CAAM,CAAA,CACnC,SAAA,CAAWM,GAAAA,CAGT,gIAAA,CACAN,CAAAA,CAAO,OAAA,EAAW,sCAAA,CAClBC,CAAAA,EAAkB,cACpB,CAAA,CAEC,QAAA,CAAA,CAAAD,CAAAA,CAAO,KAAA,CACPC,CAAAA,EAAkBH,GAAAA,CAACS,OAAAA,CAAA,CAAQ,SAAA,CAAU,wBAAA,CAAyB,CAAA,CAAA,CAAA,CAlB1DP,CAAAA,CAAO,KAmBd,CAEJ,CAAC,CAAA,CACH,CAAA,CAAA,CA5BiB,CAAA,EAAGL,CAAQ,gBA6B9B,CAEJ","file":"chunk-XOWSDMW5.js","sourcesContent":["import { LuCheck } from 'react-icons/lu';\n\nimport { CommandGroup, CommandItem } from '@/v2/command/command';\nimport { cn } from '@/lib/utils';\nimport { MultiSelectProps, Option } from '../types';\nimport { UseMultiSelectReturn } from '../hooks/useMultiSelect';\nimport { UseInteractionsReturn } from '../hooks/useInteractions';\nimport { useMergeOptions } from '../hooks/useMergeOptions';\n\ntype Props = Pick<MultiSelectProps, 'onSearch'> &\n Pick<UseMultiSelectReturn, 'selected' | 'uniqueId'> &\n Pick<UseInteractionsReturn, 'toggleOption'> & {\n options: Option[];\n };\n\nexport const MultiSelectCommandGroup = ({\n options,\n selected,\n toggleOption,\n onSearch,\n uniqueId,\n}: Props) => {\n const mergedOptions = useMergeOptions({ selected, options });\n const displayOptions = onSearch ? mergedOptions : options;\n\n return (\n <CommandGroup key={`${uniqueId}-command-group`} className=\"h-full overflow-auto\">\n <div className=\"flex flex-col gap-1\">\n {displayOptions.map((option: Option) => {\n const optionSelected = selected.some((s) => s.value === option.value);\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n keywords={typeof option.label === 'string' ? [option.label] : undefined}\n disabled={option.disable}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => toggleOption(option)}\n className={cn(\n // data-[selected=true] means when the user navigates onto an option with the keyboard\n // optionSelected means the user has actually toggled on the option\n 'flex cursor-pointer items-center justify-between p-3 data-[selected=true]:bg-green-200 hover:data-[selected=true]:bg-green-200',\n option.disable && 'text-muted-foreground cursor-default',\n optionSelected && 'bg-green-100',\n )}\n >\n {option.label}\n {optionSelected && <LuCheck className=\"h-4 w-4 text-green-800\" />}\n </CommandItem>\n );\n })}\n </div>\n </CommandGroup>\n );\n};\n"]}
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkQUD4HTUP_cjs=require('./chunk-QUD4HTUP.cjs'),chunkXXIJHROA_cjs=require('./chunk-XXIJHROA.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),w=require('react'),web=require('@react-spring/web'),lu=require('react-icons/lu'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var w__default=/*#__PURE__*/_interopDefault(w);function E({isOpen:t,drawerPosition:e,className:o,...l}){let i=e==="right"?jsxRuntime.jsx(lu.LuChevronLeft,{}):jsxRuntime.jsx(lu.LuChevronRight,{}),s=e==="right"?jsxRuntime.jsx(lu.LuChevronRight,{}):jsxRuntime.jsx(lu.LuChevronLeft,{});return jsxRuntime.jsx(chunkQUD4HTUP_cjs.b,{size:"sm",variant:"secondary-icon-rounded",className:chunkQRO22BPZ_cjs.a("absolute top-16 z-10",{"left-[-16px]":e==="right","right-[-16px]":e==="left"},o),...l,children:t?s:i})}function S({className:t="",children:e,...o}){return jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex h-auto w-full flex-col",t),...o,children:e})}function $({className:t="",children:e,...o}){return jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex h-full w-full flex-col",t),...o,children:e})}function k({className:t="",children:e,...o}){return jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex w-full items-end justify-between",t),...o,children:e})}function j({position:t,className:e="",children:o,isOpen:l,collapsedWidth:i="4rem",defaultWidth:s,...R}){let d=w.useRef(null),[c,P]=w.useState(0),[u,D]=w.useState(0),p=null,m=null,h=null,x=[];w__default.default.Children.toArray(o).forEach(a=>{if(w__default.default.isValidElement(a))switch(a.type){case E:p=a;break;case S:m=a;break;case k:h=a;break;default:x.push(a);}}),w.useLayoutEffect(()=>{d.current&&(D(chunkXXIJHROA_cjs.a(s,d.current)),P(chunkXXIJHROA_cjs.a(i,d.current)));},[i,s]);let C=web.useSpring({width:l?u:c,minWidth:l?u:c,config:{tension:250,friction:30}});return jsxRuntime.jsxs("div",{className:"relative flex",children:[p,jsxRuntime.jsx(web.animated.div,{role:"region",className:chunkQRO22BPZ_cjs.a("flex-drawer-outer relative z-1 overflow-x-hidden shadow-md",{"rounded-l-md border-l":t==="right","rounded-r-md border-r":t==="left"}),style:C,ref:d,children:jsxRuntime.jsx("div",{style:{width:`${u}px`},className:chunkQRO22BPZ_cjs.a("flex-drawer-fixed absolute top-0 h-full px-4 py-6",{"right-0":t==="left"},e),...R,children:jsxRuntime.jsxs("div",{className:chunkQRO22BPZ_cjs.a("flex-drawer-inner flex h-full flex-col transition-discrete duration-300 ease-out",{"hidden opacity-0":!l,"visible opacity-100":l}),children:[m,x,h]})})})]})}exports.a=E;exports.b=S;exports.c=$;exports.d=k;exports.e=j;//# sourceMappingURL=chunk-SM7PYFD2.cjs.map
2
- //# sourceMappingURL=chunk-SM7PYFD2.cjs.map
1
+ 'use strict';var chunkFMFRB4JI_cjs=require('./chunk-FMFRB4JI.cjs'),chunkXXIJHROA_cjs=require('./chunk-XXIJHROA.cjs'),chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),w=require('react'),web=require('@react-spring/web'),lu=require('react-icons/lu'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var w__default=/*#__PURE__*/_interopDefault(w);function E({isOpen:t,drawerPosition:e,className:o,...l}){let i=e==="right"?jsxRuntime.jsx(lu.LuChevronLeft,{}):jsxRuntime.jsx(lu.LuChevronRight,{}),s=e==="right"?jsxRuntime.jsx(lu.LuChevronRight,{}):jsxRuntime.jsx(lu.LuChevronLeft,{});return jsxRuntime.jsx(chunkFMFRB4JI_cjs.b,{size:"sm",variant:"secondary-icon-rounded",className:chunkQRO22BPZ_cjs.a("absolute top-16 z-10",{"left-[-16px]":e==="right","right-[-16px]":e==="left"},o),...l,children:t?s:i})}function S({className:t="",children:e,...o}){return jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex h-auto w-full flex-col",t),...o,children:e})}function $({className:t="",children:e,...o}){return jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex h-full w-full flex-col",t),...o,children:e})}function k({className:t="",children:e,...o}){return jsxRuntime.jsx("div",{className:chunkQRO22BPZ_cjs.a("flex w-full items-end justify-between",t),...o,children:e})}function j({position:t,className:e="",children:o,isOpen:l,collapsedWidth:i="4rem",defaultWidth:s,...R}){let d=w.useRef(null),[c,P]=w.useState(0),[u,D]=w.useState(0),p=null,m=null,h=null,x=[];w__default.default.Children.toArray(o).forEach(a=>{if(w__default.default.isValidElement(a))switch(a.type){case E:p=a;break;case S:m=a;break;case k:h=a;break;default:x.push(a);}}),w.useLayoutEffect(()=>{d.current&&(D(chunkXXIJHROA_cjs.a(s,d.current)),P(chunkXXIJHROA_cjs.a(i,d.current)));},[i,s]);let C=web.useSpring({width:l?u:c,minWidth:l?u:c,config:{tension:250,friction:30}});return jsxRuntime.jsxs("div",{className:"relative flex",children:[p,jsxRuntime.jsx(web.animated.div,{role:"region",className:chunkQRO22BPZ_cjs.a("flex-drawer-outer relative z-1 overflow-x-hidden shadow-md",{"rounded-l-md border-l":t==="right","rounded-r-md border-r":t==="left"}),style:C,ref:d,children:jsxRuntime.jsx("div",{style:{width:`${u}px`},className:chunkQRO22BPZ_cjs.a("flex-drawer-fixed absolute top-0 h-full px-4 py-6",{"right-0":t==="left"},e),...R,children:jsxRuntime.jsxs("div",{className:chunkQRO22BPZ_cjs.a("flex-drawer-inner flex h-full flex-col transition-discrete duration-300 ease-out",{"hidden opacity-0":!l,"visible opacity-100":l}),children:[m,x,h]})})})]})}exports.a=E;exports.b=S;exports.c=$;exports.d=k;exports.e=j;//# sourceMappingURL=chunk-ZZW5IT44.cjs.map
2
+ //# sourceMappingURL=chunk-ZZW5IT44.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/v2/flex-drawer/flex-drawer.tsx"],"names":["FlexDrawerButton","isOpen","drawerPosition","className","props","OpenIcon","jsx","LuChevronLeft","LuChevronRight","CloseIcon","Button","cn","FlexDrawerHeader","children","FlexDrawerContent","FlexDrawerFooter","FlexDrawer","position","collapsedWidth","defaultWidth","drawerRef","useRef","collapsedPx","setCollapsedPx","useState","drawerWidth","setDrawerWidth","button","header","footer","content","React","child","useLayoutEffect","toPx","outerSpringStyles","useSpring","jsxs","animated"],"mappings":"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","file":"chunk-SM7PYFD2.cjs","sourcesContent":["import React, {\n ReactNode,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n} from 'react';\nimport { useSpring, animated } from '@react-spring/web';\nimport { LuChevronLeft, LuChevronRight } from 'react-icons/lu';\nimport { Button } from '@/v2/button/button';\nimport { toPx } from '@/lib/toPx';\nimport { cn } from '@/lib/utils';\n\ntype Props = {\n className?: string;\n children: React.ReactNode;\n} & ComponentPropsWithoutRef<'div'>;\n\ntype DrawerProps = {\n isOpen: boolean;\n /** The drawer's position on the screen */\n position: 'right' | 'left';\n /** The default width in CSS units of the open drawer. A number defaults to px. */\n defaultWidth: number | string;\n /** Collapsed drawer width in CSS units. Default 4rem */\n collapsedWidth?: number | string;\n} & Props;\n\ntype FlexDrawerButtonProps = {\n isOpen: boolean;\n drawerPosition: 'right' | 'left';\n} & ComponentPropsWithoutRef<typeof Button>;\n\nfunction FlexDrawerButton({ isOpen, drawerPosition, className, ...props }: FlexDrawerButtonProps) {\n const OpenIcon = drawerPosition === 'right' ? <LuChevronLeft /> : <LuChevronRight />;\n const CloseIcon = drawerPosition === 'right' ? <LuChevronRight /> : <LuChevronLeft />;\n\n return (\n <Button\n size=\"sm\"\n variant=\"secondary-icon-rounded\"\n className={cn(\n 'absolute top-16 z-10',\n {\n 'left-[-16px]': drawerPosition === 'right',\n 'right-[-16px]': drawerPosition === 'left',\n },\n className,\n )}\n {...props}\n >\n {isOpen ? CloseIcon : OpenIcon}\n </Button>\n );\n}\n\nfunction FlexDrawerHeader({ className = '', children, ...props }: Props) {\n return (\n <div className={cn('flex h-auto w-full flex-col', className)} {...props}>\n {children}\n </div>\n );\n}\n\nfunction FlexDrawerContent({ className = '', children, ...props }: Props) {\n return (\n <div className={cn('flex h-full w-full flex-col', className)} {...props}>\n {children}\n </div>\n );\n}\n\nfunction FlexDrawerFooter({ className = '', children, ...props }: Props) {\n return (\n <div className={cn('flex w-full items-end justify-between', className)} {...props}>\n {children}\n </div>\n );\n}\n\nfunction FlexDrawer({\n position,\n className = '',\n children,\n isOpen,\n collapsedWidth = '4rem',\n defaultWidth,\n ...props\n}: DrawerProps) {\n const drawerRef = useRef<HTMLDivElement>(null);\n const [collapsedPx, setCollapsedPx] = useState(0);\n const [drawerWidth, setDrawerWidth] = useState(0);\n\n let button: ReactNode = null;\n let header: ReactNode = null;\n let footer: ReactNode = null;\n const content: ReactNode[] = [];\n\n React.Children.toArray(children).forEach((child) => {\n if (!React.isValidElement(child)) return;\n switch (child.type) {\n case FlexDrawerButton:\n button = child;\n break;\n case FlexDrawerHeader:\n header = child;\n break;\n case FlexDrawerFooter:\n footer = child;\n break;\n\n default:\n content.push(child);\n }\n });\n\n useLayoutEffect(() => {\n if (drawerRef.current) {\n setDrawerWidth(toPx(defaultWidth, drawerRef.current));\n setCollapsedPx(toPx(collapsedWidth, drawerRef.current));\n }\n }, [collapsedWidth, defaultWidth]);\n\n const outerSpringStyles = useSpring({\n width: isOpen ? drawerWidth : collapsedPx,\n minWidth: isOpen ? drawerWidth : collapsedPx,\n config: { tension: 250, friction: 30 },\n });\n\n return (\n <div className=\"relative flex\">\n {button}\n <animated.div\n role=\"region\"\n className={cn('flex-drawer-outer relative z-1 overflow-x-hidden shadow-md', {\n 'rounded-l-md border-l': position === 'right',\n 'rounded-r-md border-r': position === 'left',\n })}\n style={outerSpringStyles}\n ref={drawerRef}\n >\n <div\n style={{\n width: `${drawerWidth}px`,\n }}\n className={cn(\n 'flex-drawer-fixed absolute top-0 h-full px-4 py-6',\n {\n 'right-0': position === 'left',\n },\n\n className,\n )}\n {...props}\n >\n <div\n className={cn(\n 'flex-drawer-inner flex h-full flex-col transition-discrete duration-300 ease-out',\n {\n 'hidden opacity-0': !isOpen,\n 'visible opacity-100': isOpen,\n },\n )}\n >\n {header}\n {content}\n {footer}\n </div>\n </div>\n </animated.div>\n </div>\n );\n}\n\nexport { FlexDrawer, FlexDrawerButton, FlexDrawerHeader, FlexDrawerContent, FlexDrawerFooter };\n"]}
1
+ {"version":3,"sources":["../src/v2/flex-drawer/flex-drawer.tsx"],"names":["FlexDrawerButton","isOpen","drawerPosition","className","props","OpenIcon","jsx","LuChevronLeft","LuChevronRight","CloseIcon","Button","cn","FlexDrawerHeader","children","FlexDrawerContent","FlexDrawerFooter","FlexDrawer","position","collapsedWidth","defaultWidth","drawerRef","useRef","collapsedPx","setCollapsedPx","useState","drawerWidth","setDrawerWidth","button","header","footer","content","React","child","useLayoutEffect","toPx","outerSpringStyles","useSpring","jsxs","animated"],"mappings":"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","file":"chunk-ZZW5IT44.cjs","sourcesContent":["import React, {\n ReactNode,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n} from 'react';\nimport { useSpring, animated } from '@react-spring/web';\nimport { LuChevronLeft, LuChevronRight } from 'react-icons/lu';\nimport { Button } from '@/v2/button/button';\nimport { toPx } from '@/lib/toPx';\nimport { cn } from '@/lib/utils';\n\ntype Props = {\n className?: string;\n children: React.ReactNode;\n} & ComponentPropsWithoutRef<'div'>;\n\ntype DrawerProps = {\n isOpen: boolean;\n /** The drawer's position on the screen */\n position: 'right' | 'left';\n /** The default width in CSS units of the open drawer. A number defaults to px. */\n defaultWidth: number | string;\n /** Collapsed drawer width in CSS units. Default 4rem */\n collapsedWidth?: number | string;\n} & Props;\n\ntype FlexDrawerButtonProps = {\n isOpen: boolean;\n drawerPosition: 'right' | 'left';\n} & ComponentPropsWithoutRef<typeof Button>;\n\nfunction FlexDrawerButton({ isOpen, drawerPosition, className, ...props }: FlexDrawerButtonProps) {\n const OpenIcon = drawerPosition === 'right' ? <LuChevronLeft /> : <LuChevronRight />;\n const CloseIcon = drawerPosition === 'right' ? <LuChevronRight /> : <LuChevronLeft />;\n\n return (\n <Button\n size=\"sm\"\n variant=\"secondary-icon-rounded\"\n className={cn(\n 'absolute top-16 z-10',\n {\n 'left-[-16px]': drawerPosition === 'right',\n 'right-[-16px]': drawerPosition === 'left',\n },\n className,\n )}\n {...props}\n >\n {isOpen ? CloseIcon : OpenIcon}\n </Button>\n );\n}\n\nfunction FlexDrawerHeader({ className = '', children, ...props }: Props) {\n return (\n <div className={cn('flex h-auto w-full flex-col', className)} {...props}>\n {children}\n </div>\n );\n}\n\nfunction FlexDrawerContent({ className = '', children, ...props }: Props) {\n return (\n <div className={cn('flex h-full w-full flex-col', className)} {...props}>\n {children}\n </div>\n );\n}\n\nfunction FlexDrawerFooter({ className = '', children, ...props }: Props) {\n return (\n <div className={cn('flex w-full items-end justify-between', className)} {...props}>\n {children}\n </div>\n );\n}\n\nfunction FlexDrawer({\n position,\n className = '',\n children,\n isOpen,\n collapsedWidth = '4rem',\n defaultWidth,\n ...props\n}: DrawerProps) {\n const drawerRef = useRef<HTMLDivElement>(null);\n const [collapsedPx, setCollapsedPx] = useState(0);\n const [drawerWidth, setDrawerWidth] = useState(0);\n\n let button: ReactNode = null;\n let header: ReactNode = null;\n let footer: ReactNode = null;\n const content: ReactNode[] = [];\n\n React.Children.toArray(children).forEach((child) => {\n if (!React.isValidElement(child)) return;\n switch (child.type) {\n case FlexDrawerButton:\n button = child;\n break;\n case FlexDrawerHeader:\n header = child;\n break;\n case FlexDrawerFooter:\n footer = child;\n break;\n\n default:\n content.push(child);\n }\n });\n\n useLayoutEffect(() => {\n if (drawerRef.current) {\n setDrawerWidth(toPx(defaultWidth, drawerRef.current));\n setCollapsedPx(toPx(collapsedWidth, drawerRef.current));\n }\n }, [collapsedWidth, defaultWidth]);\n\n const outerSpringStyles = useSpring({\n width: isOpen ? drawerWidth : collapsedPx,\n minWidth: isOpen ? drawerWidth : collapsedPx,\n config: { tension: 250, friction: 30 },\n });\n\n return (\n <div className=\"relative flex\">\n {button}\n <animated.div\n role=\"region\"\n className={cn('flex-drawer-outer relative z-1 overflow-x-hidden shadow-md', {\n 'rounded-l-md border-l': position === 'right',\n 'rounded-r-md border-r': position === 'left',\n })}\n style={outerSpringStyles}\n ref={drawerRef}\n >\n <div\n style={{\n width: `${drawerWidth}px`,\n }}\n className={cn(\n 'flex-drawer-fixed absolute top-0 h-full px-4 py-6',\n {\n 'right-0': position === 'left',\n },\n\n className,\n )}\n {...props}\n >\n <div\n className={cn(\n 'flex-drawer-inner flex h-full flex-col transition-discrete duration-300 ease-out',\n {\n 'hidden opacity-0': !isOpen,\n 'visible opacity-100': isOpen,\n },\n )}\n >\n {header}\n {content}\n {footer}\n </div>\n </div>\n </animated.div>\n </div>\n );\n}\n\nexport { FlexDrawer, FlexDrawerButton, FlexDrawerHeader, FlexDrawerContent, FlexDrawerFooter };\n"]}