@egose/shadcn-theme 0.1.0 → 0.1.1

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 (142) hide show
  1. package/{chunk-2SUYO2SG.js → chunk-3HZTA2ZQ.js} +4 -4
  2. package/{chunk-2SUYO2SG.js.map → chunk-3HZTA2ZQ.js.map} +1 -1
  3. package/{chunk-RGID3F2T.js → chunk-3ZN766EW.js} +4 -4
  4. package/{chunk-RGID3F2T.js.map → chunk-3ZN766EW.js.map} +1 -1
  5. package/{chunk-KRFQNEGY.mjs → chunk-432PQWGO.mjs} +3 -3
  6. package/chunk-432PQWGO.mjs.map +1 -0
  7. package/{chunk-4A5EDTXU.js → chunk-6CRGZEQF.js} +16 -4
  8. package/chunk-6CRGZEQF.js.map +1 -0
  9. package/{chunk-LQEGZ3FQ.mjs → chunk-6ECNY4VS.mjs} +2 -2
  10. package/chunk-6ECNY4VS.mjs.map +1 -0
  11. package/{chunk-RATSSU7L.mjs → chunk-7ZMTJBXT.mjs} +2 -2
  12. package/chunk-7ZMTJBXT.mjs.map +1 -0
  13. package/{chunk-ECYGZFEF.js → chunk-AJLAS62X.js} +4 -4
  14. package/{chunk-ECYGZFEF.js.map → chunk-AJLAS62X.js.map} +1 -1
  15. package/{chunk-2UC2IM3Q.mjs → chunk-BEPAUXCN.mjs} +2 -2
  16. package/chunk-BEPAUXCN.mjs.map +1 -0
  17. package/{chunk-6KVESKTY.js → chunk-BJK4J4VY.js} +2 -2
  18. package/{chunk-6KVESKTY.js.map → chunk-BJK4J4VY.js.map} +1 -1
  19. package/{chunk-HUEFOSXC.mjs → chunk-E7F5KADG.mjs} +4 -4
  20. package/chunk-E7F5KADG.mjs.map +1 -0
  21. package/{chunk-NHDANPMI.mjs → chunk-FD7CNCJW.mjs} +16 -4
  22. package/chunk-FD7CNCJW.mjs.map +1 -0
  23. package/{chunk-RDDKZFT3.js → chunk-GKUELSRJ.js} +4 -4
  24. package/{chunk-RDDKZFT3.js.map → chunk-GKUELSRJ.js.map} +1 -1
  25. package/{chunk-EEVAP4RB.mjs → chunk-GUB2Y4JK.mjs} +2 -2
  26. package/chunk-GUB2Y4JK.mjs.map +1 -0
  27. package/{chunk-MWBTSWPB.js → chunk-K3LYDDTD.js} +2 -2
  28. package/{chunk-MWBTSWPB.js.map → chunk-K3LYDDTD.js.map} +1 -1
  29. package/{chunk-XGBDPMXL.js → chunk-NWL7BAHC.js} +3 -3
  30. package/{chunk-XGBDPMXL.js.map → chunk-NWL7BAHC.js.map} +1 -1
  31. package/{chunk-N4GWGP3Z.mjs → chunk-OPNHC6JN.mjs} +2 -1
  32. package/chunk-OPNHC6JN.mjs.map +1 -0
  33. package/{chunk-EGG4SBHV.js → chunk-RFORRZRN.js} +2 -1
  34. package/chunk-RFORRZRN.js.map +1 -0
  35. package/{chunk-JBIYG5WI.mjs → chunk-S3CRUBGL.mjs} +2 -2
  36. package/chunk-S3CRUBGL.mjs.map +1 -0
  37. package/{chunk-PH6LAV32.mjs → chunk-SBFICFTY.mjs} +3 -3
  38. package/chunk-SBFICFTY.mjs.map +1 -0
  39. package/{chunk-YOQJO7NI.mjs → chunk-SDR3DVXD.mjs} +2 -2
  40. package/{chunk-4JDCEDAG.js → chunk-SLADFPSL.js} +2 -2
  41. package/{chunk-4JDCEDAG.js.map → chunk-SLADFPSL.js.map} +1 -1
  42. package/{chunk-P3KR7ZM6.js → chunk-TTCGK36S.js} +2 -2
  43. package/{chunk-P3KR7ZM6.js.map → chunk-TTCGK36S.js.map} +1 -1
  44. package/{chunk-MAL7MDPS.js → chunk-UQW3H2JS.js} +2 -2
  45. package/{chunk-MAL7MDPS.js.map → chunk-UQW3H2JS.js.map} +1 -1
  46. package/{chunk-QEMZCGBS.mjs → chunk-VHYQNTH7.mjs} +2 -2
  47. package/chunk-VHYQNTH7.mjs.map +1 -0
  48. package/{chunk-HC7SLR6P.js → chunk-WJBTXKFN.js} +2 -2
  49. package/{chunk-HC7SLR6P.js.map → chunk-WJBTXKFN.js.map} +1 -1
  50. package/{chunk-HNN3WAQE.mjs → chunk-ZMMYQNQV.mjs} +2 -2
  51. package/components/form/checkbox.js +2 -2
  52. package/components/form/checkbox.mjs +1 -1
  53. package/components/form/date-picker.js +2 -2
  54. package/components/form/date-picker.mjs +1 -1
  55. package/components/form/date-range-picker.js +1 -1
  56. package/components/form/date-range-picker.js.map +1 -1
  57. package/components/form/date-range-picker.mjs +1 -1
  58. package/components/form/date-range-picker.mjs.map +1 -1
  59. package/components/form/hook-checkbox.js +3 -3
  60. package/components/form/hook-checkbox.js.map +1 -1
  61. package/components/form/hook-checkbox.mjs +2 -2
  62. package/components/form/hook-checkbox.mjs.map +1 -1
  63. package/components/form/hook-date-picker.js +3 -3
  64. package/components/form/hook-date-picker.js.map +1 -1
  65. package/components/form/hook-date-picker.mjs +2 -2
  66. package/components/form/hook-date-picker.mjs.map +1 -1
  67. package/components/form/hook-native-select.js +3 -3
  68. package/components/form/hook-native-select.js.map +1 -1
  69. package/components/form/hook-native-select.mjs +2 -2
  70. package/components/form/hook-native-select.mjs.map +1 -1
  71. package/components/form/hook-searchable-select.js +5 -5
  72. package/components/form/hook-searchable-select.js.map +1 -1
  73. package/components/form/hook-searchable-select.mjs +4 -4
  74. package/components/form/hook-searchable-select.mjs.map +1 -1
  75. package/components/form/hook-select.js +4 -4
  76. package/components/form/hook-select.js.map +1 -1
  77. package/components/form/hook-select.mjs +3 -3
  78. package/components/form/hook-select.mjs.map +1 -1
  79. package/components/form/hook-text-input.js +3 -3
  80. package/components/form/hook-text-input.js.map +1 -1
  81. package/components/form/hook-text-input.mjs +2 -2
  82. package/components/form/hook-text-input.mjs.map +1 -1
  83. package/components/form/hook-textarea.js +3 -3
  84. package/components/form/hook-textarea.js.map +1 -1
  85. package/components/form/hook-textarea.mjs +2 -2
  86. package/components/form/hook-textarea.mjs.map +1 -1
  87. package/components/form/hook-time-input.js +4 -4
  88. package/components/form/hook-time-input.js.map +1 -1
  89. package/components/form/hook-time-input.mjs +3 -3
  90. package/components/form/hook-time-input.mjs.map +1 -1
  91. package/components/form/native-select.js +2 -2
  92. package/components/form/native-select.mjs +1 -1
  93. package/components/form/searchable-select.js +4 -4
  94. package/components/form/searchable-select.mjs +3 -3
  95. package/components/form/select.js +3 -3
  96. package/components/form/select.mjs +2 -2
  97. package/components/form/text-input.js +2 -2
  98. package/components/form/text-input.mjs +1 -1
  99. package/components/form/textarea.js +2 -2
  100. package/components/form/textarea.mjs +1 -1
  101. package/components/form/time-input.d.mts +1 -1
  102. package/components/form/time-input.d.ts +1 -1
  103. package/components/form/time-input.js +3 -3
  104. package/components/form/time-input.mjs +2 -2
  105. package/components/ui/badge.d.mts +1 -1
  106. package/components/ui/badge.d.ts +1 -1
  107. package/components/ui/command.js +3 -3
  108. package/components/ui/command.mjs +2 -2
  109. package/components/ui/dialog.js +2 -2
  110. package/components/ui/dialog.mjs +1 -1
  111. package/components/ui/extension/multi-select.js +6 -6
  112. package/components/ui/extension/multi-select.mjs +2 -2
  113. package/components/ui/item.d.mts +2 -2
  114. package/components/ui/item.d.ts +2 -2
  115. package/components/ui/select.js +2 -2
  116. package/components/ui/select.mjs +1 -1
  117. package/components/ui/sidebar.d.mts +1 -1
  118. package/components/ui/sidebar.d.ts +1 -1
  119. package/components/ui/toggle.d.mts +1 -1
  120. package/components/ui/toggle.d.ts +1 -1
  121. package/layouts/sidebar1/app-sidebar.js +3 -3
  122. package/layouts/sidebar1/app-sidebar.mjs +2 -2
  123. package/layouts/sidebar1/context-switcher.js +2 -2
  124. package/layouts/sidebar1/context-switcher.mjs +1 -1
  125. package/layouts/sidebar1/index.js +3 -3
  126. package/layouts/sidebar1/index.mjs +2 -2
  127. package/package.json +5 -2
  128. package/chunk-2UC2IM3Q.mjs.map +0 -1
  129. package/chunk-4A5EDTXU.js.map +0 -1
  130. package/chunk-EEVAP4RB.mjs.map +0 -1
  131. package/chunk-EGG4SBHV.js.map +0 -1
  132. package/chunk-HUEFOSXC.mjs.map +0 -1
  133. package/chunk-JBIYG5WI.mjs.map +0 -1
  134. package/chunk-KRFQNEGY.mjs.map +0 -1
  135. package/chunk-LQEGZ3FQ.mjs.map +0 -1
  136. package/chunk-N4GWGP3Z.mjs.map +0 -1
  137. package/chunk-NHDANPMI.mjs.map +0 -1
  138. package/chunk-PH6LAV32.mjs.map +0 -1
  139. package/chunk-QEMZCGBS.mjs.map +0 -1
  140. package/chunk-RATSSU7L.mjs.map +0 -1
  141. /package/{chunk-YOQJO7NI.mjs.map → chunk-SDR3DVXD.mjs.map} +0 -0
  142. /package/{chunk-HNN3WAQE.mjs.map → chunk-ZMMYQNQV.mjs.map} +0 -0
@@ -39,7 +39,7 @@ function SelectTrigger(_a) {
39
39
  "data-slot": "select-trigger",
40
40
  "data-size": size,
41
41
  className: _chunkPSPAJNNBjs.cn.call(void 0,
42
- "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
42
+ "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-sm border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
43
43
  className
44
44
  )
45
45
  }, props),
@@ -65,7 +65,7 @@ function SelectContent(_a) {
65
65
  "data-slot": "select-content",
66
66
  "data-align-trigger": position === "item-aligned",
67
67
  className: _chunkPSPAJNNBjs.cn.call(void 0,
68
- "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-lg shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none",
68
+ "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-sm shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none",
69
69
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
70
70
  className
71
71
  ),
@@ -104,7 +104,7 @@ function SelectItem(_a) {
104
104
  _chunk2NMEKWO5js.__spreadValues.call(void 0, {
105
105
  "data-slot": "select-item",
106
106
  className: _chunkPSPAJNNBjs.cn.call(void 0,
107
- "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
107
+ "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
108
108
  className
109
109
  )
110
110
  }, props),
@@ -167,4 +167,4 @@ function SelectScrollDownButton(_a) {
167
167
 
168
168
 
169
169
  exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton;
170
- //# sourceMappingURL=chunk-2SUYO2SG.js.map
170
+ //# sourceMappingURL=chunk-3HZTA2ZQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2SUYO2SG.js","../components/ui/select.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2SUYO2SG.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\n\nimport { cn } from '../../utils/ui';\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" className={cn('scroll-my-1 p-1', className)} {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"text-muted-foreground size-4 pointer-events-none\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === 'item-aligned'}\n className={cn(\n 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-lg shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n 'data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)',\n position === 'popper' && '',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-1.5 py-1 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border -mx-1 my-1 h-px pointer-events-none', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"]}
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3HZTA2ZQ.js","../components/ui/select.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3HZTA2ZQ.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\n\nimport { cn } from '../../utils/ui';\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" className={cn('scroll-my-1 p-1', className)} {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-sm border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"text-muted-foreground size-4 pointer-events-none\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === 'item-aligned'}\n className={cn(\n 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-sm shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n 'data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)',\n position === 'popper' && '',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-1.5 py-1 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border -mx-1 my-1 h-px pointer-events-none', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"]}
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkECYGZFEFjs = require('./chunk-ECYGZFEF.js');
9
+ var _chunkAJLAS62Xjs = require('./chunk-AJLAS62X.js');
10
10
 
11
11
 
12
12
 
@@ -67,7 +67,7 @@ function FormSearchableSelect({
67
67
  onChange(newValue);
68
68
  setOpen(false);
69
69
  };
70
- return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkPSPAJNNBjs.cn.call(void 0, "form-searchable-select space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkCKGMFUU2js.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement(_chunkQHCOMBHIjs.Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ _react2.default.createElement(_chunkQHCOMBHIjs.PopoverTrigger, { asChild: true }, /* @__PURE__ */ _react2.default.createElement(
70
+ return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkPSPAJNNBjs.cn.call(void 0, "$form-searchable-select space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkCKGMFUU2js.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement(_chunkQHCOMBHIjs.Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ _react2.default.createElement(_chunkQHCOMBHIjs.PopoverTrigger, { asChild: true }, /* @__PURE__ */ _react2.default.createElement(
71
71
  _chunkKB6BX6LAjs.Button,
72
72
  {
73
73
  variant: "secondary",
@@ -79,10 +79,10 @@ function FormSearchableSelect({
79
79
  },
80
80
  selectedValue ? (_b = _options.find((opt) => opt.value === selectedValue)) == null ? void 0 : _b.label : placeholder || "Select...",
81
81
  /* @__PURE__ */ _react2.default.createElement(_lucidereact.ChevronsUpDown, { className: "opacity-50" })
82
- )), /* @__PURE__ */ _react2.default.createElement(_chunkQHCOMBHIjs.PopoverContent, { className: "w-full p-0" }, /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.Command, null, /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.CommandInput, { placeholder: `Search ${label != null ? label : "option"}...`, className: "h-9" }), /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.CommandList, null, /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.CommandEmpty, null, "No option found."), /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.CommandGroup, null, _options.map((option) => /* @__PURE__ */ _react2.default.createElement(_chunkECYGZFEFjs.CommandItem, { key: option.value, value: option.value, onSelect: handleSelect }, option.label, /* @__PURE__ */ _react2.default.createElement(_lucidereact.Check, { className: _chunkPSPAJNNBjs.cn.call(void 0, "ml-auto", selectedValue === option.value ? "opacity-100" : "opacity-0") })))))))));
82
+ )), /* @__PURE__ */ _react2.default.createElement(_chunkQHCOMBHIjs.PopoverContent, { className: "w-full p-0" }, /* @__PURE__ */ _react2.default.createElement(_chunkAJLAS62Xjs.Command, null, /* @__PURE__ */ _react2.default.createElement(_chunkAJLAS62Xjs.CommandInput, { placeholder: `Search ${label != null ? label : "option"}...`, className: "h-9" }), /* @__PURE__ */ _react2.default.createElement(_chunkAJLAS62Xjs.CommandList, null, /* @__PURE__ */ _react2.default.createElement(_chunkAJLAS62Xjs.CommandEmpty, null, "No option found."), /* @__PURE__ */ _react2.default.createElement(_chunkAJLAS62Xjs.CommandGroup, null, _options.map((option) => /* @__PURE__ */ _react2.default.createElement(_chunkAJLAS62Xjs.CommandItem, { key: option.value, value: option.value, onSelect: handleSelect }, option.label, /* @__PURE__ */ _react2.default.createElement(_lucidereact.Check, { className: _chunkPSPAJNNBjs.cn.call(void 0, "ml-auto", selectedValue === option.value ? "opacity-100" : "opacity-0") })))))))));
83
83
  }
84
84
 
85
85
 
86
86
 
87
87
  exports.FormSearchableSelect = FormSearchableSelect;
88
- //# sourceMappingURL=chunk-RGID3F2T.js.map
88
+ //# sourceMappingURL=chunk-3ZN766EW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-RGID3F2T.js","../components/form/searchable-select.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-RGID3F2T.js","sourcesContent":[null,"\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Button } from '../ui/button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormSearchableSelectProps {\n id?: string;\n name: string;\n label?: string;\n placeholder?: string;\n data: SelectOption[] | string[];\n defaultValue?: string;\n value?: string;\n onChange: (value?: string) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n required?: boolean;\n disabled?: boolean;\n}\n\nexport function FormSearchableSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n}: FormSearchableSelectProps) {\n let _options: SelectOption[] = [];\n\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n const [open, setOpen] = React.useState(false);\n const [selectedValue, setSelectedValue] = React.useState(value ?? defaultValue ?? '');\n\n React.useEffect(() => {\n setSelectedValue(value ?? defaultValue ?? '');\n }, [value, defaultValue]);\n\n const handleSelect = (currentValue: string) => {\n const newValue = currentValue === selectedValue ? '' : currentValue;\n setSelectedValue(newValue);\n onChange(newValue);\n setOpen(false);\n };\n\n return (\n <div className={cn('form-searchable-select space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n appearance=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn('w-full justify-between border-input!', classNames?.input)}\n >\n {selectedValue ? _options.find((opt) => opt.value === selectedValue)?.label : placeholder || 'Select...'}\n <ChevronsUpDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder={`Search ${label ?? 'option'}...`} className=\"h-9\" />\n <CommandList>\n <CommandEmpty>No option found.</CommandEmpty>\n <CommandGroup>\n {_options.map((option) => (\n <CommandItem key={option.value} value={option.value} onSelect={handleSelect}>\n {option.label}\n <Check className={cn('ml-auto', selectedValue === option.value ? 'opacity-100' : 'opacity-0')} />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3ZN766EW.js","../components/form/searchable-select.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3ZN766EW.js","sourcesContent":[null,"\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Button } from '../ui/button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormSearchableSelectProps {\n id?: string;\n name: string;\n label?: string;\n placeholder?: string;\n data: SelectOption[] | string[];\n defaultValue?: string;\n value?: string;\n onChange: (value?: string) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n required?: boolean;\n disabled?: boolean;\n}\n\nexport function FormSearchableSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n}: FormSearchableSelectProps) {\n let _options: SelectOption[] = [];\n\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n const [open, setOpen] = React.useState(false);\n const [selectedValue, setSelectedValue] = React.useState(value ?? defaultValue ?? '');\n\n React.useEffect(() => {\n setSelectedValue(value ?? defaultValue ?? '');\n }, [value, defaultValue]);\n\n const handleSelect = (currentValue: string) => {\n const newValue = currentValue === selectedValue ? '' : currentValue;\n setSelectedValue(newValue);\n onChange(newValue);\n setOpen(false);\n };\n\n return (\n <div className={cn('$form-searchable-select space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n appearance=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn('w-full justify-between border-input!', classNames?.input)}\n >\n {selectedValue ? _options.find((opt) => opt.value === selectedValue)?.label : placeholder || 'Select...'}\n <ChevronsUpDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder={`Search ${label ?? 'option'}...`} className=\"h-9\" />\n <CommandList>\n <CommandEmpty>No option found.</CommandEmpty>\n <CommandGroup>\n {_options.map((option) => (\n <CommandItem key={option.value} value={option.value} onSelect={handleSelect}>\n {option.label}\n <Check className={cn('ml-auto', selectedValue === option.value ? 'opacity-100' : 'opacity-0')} />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n"]}
@@ -5,7 +5,7 @@ import {
5
5
  CommandInput,
6
6
  CommandItem,
7
7
  CommandList
8
- } from "./chunk-HNN3WAQE.mjs";
8
+ } from "./chunk-ZMMYQNQV.mjs";
9
9
  import {
10
10
  Popover,
11
11
  PopoverContent,
@@ -66,7 +66,7 @@ function FormSearchableSelect({
66
66
  onChange(newValue);
67
67
  setOpen(false);
68
68
  };
69
- return /* @__PURE__ */ React.createElement("div", { className: cn("form-searchable-select space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
69
+ return /* @__PURE__ */ React.createElement("div", { className: cn("$form-searchable-select space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
70
70
  Button,
71
71
  {
72
72
  variant: "secondary",
@@ -84,4 +84,4 @@ function FormSearchableSelect({
84
84
  export {
85
85
  FormSearchableSelect
86
86
  };
87
- //# sourceMappingURL=chunk-KRFQNEGY.mjs.map
87
+ //# sourceMappingURL=chunk-432PQWGO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/searchable-select.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Button } from '../ui/button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormSearchableSelectProps {\n id?: string;\n name: string;\n label?: string;\n placeholder?: string;\n data: SelectOption[] | string[];\n defaultValue?: string;\n value?: string;\n onChange: (value?: string) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n required?: boolean;\n disabled?: boolean;\n}\n\nexport function FormSearchableSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n}: FormSearchableSelectProps) {\n let _options: SelectOption[] = [];\n\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n const [open, setOpen] = React.useState(false);\n const [selectedValue, setSelectedValue] = React.useState(value ?? defaultValue ?? '');\n\n React.useEffect(() => {\n setSelectedValue(value ?? defaultValue ?? '');\n }, [value, defaultValue]);\n\n const handleSelect = (currentValue: string) => {\n const newValue = currentValue === selectedValue ? '' : currentValue;\n setSelectedValue(newValue);\n onChange(newValue);\n setOpen(false);\n };\n\n return (\n <div className={cn('$form-searchable-select space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondary\"\n appearance=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn('w-full justify-between border-input!', classNames?.input)}\n >\n {selectedValue ? _options.find((opt) => opt.value === selectedValue)?.label : placeholder || 'Select...'}\n <ChevronsUpDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder={`Search ${label ?? 'option'}...`} className=\"h-9\" />\n <CommandList>\n <CommandEmpty>No option found.</CommandEmpty>\n <CommandGroup>\n {_options.map((option) => (\n <CommandItem key={option.value} value={option.value} onSelect={handleSelect}>\n {option.label}\n <Check className={cn('ml-auto', selectedValue === option.value ? 'opacity-100' : 'opacity-0')} />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AACvB,OAAO,eAAe;AAMtB,SAAS,OAAO,sBAAsB;AAOtC,SAAS,oBAAoB,OAAiB;AAC5C,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WAAO,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EACpC,CAAC;AACH;AAoBO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AApD9B;AAqDE,MAAI,WAA2B,CAAC;AAEhC,MAAI,KAAK,SAAS,GAAG;AACnB,QAAI,UAAU,KAAK,CAAC,CAAC,GAAG;AACtB,iBAAW,oBAAoB,IAAgB;AAAA,IACjD,OAAO;AACL,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAI,MAAM,UAAS,6BAAS,iBAAT,YAAyB,EAAE;AAEpF,QAAM,UAAU,MAAM;AApExB,QAAAA;AAqEI,sBAAiBA,MAAA,wBAAS,iBAAT,OAAAA,MAAyB,EAAE;AAAA,EAC9C,GAAG,CAAC,OAAO,YAAY,CAAC;AAExB,QAAM,eAAe,CAAC,iBAAyB;AAC7C,UAAM,WAAW,iBAAiB,gBAAgB,KAAK;AACvD,qBAAiB,QAAQ;AACzB,aAAS,QAAQ;AACjB,YAAQ,KAAK;AAAA,EACf;AAEA,SACE,oCAAC,SAAI,WAAW,GAAG,qCAAqC,yCAAY,OAAO,KACxE,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF,oCAAC,WAAQ,MAAY,cAAc,WACjC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,YAAW;AAAA,MACX,MAAK;AAAA,MACL,iBAAe;AAAA,MACf;AAAA,MACA,WAAW,GAAG,wCAAwC,yCAAY,KAAK;AAAA;AAAA,IAEtE,iBAAgB,cAAS,KAAK,CAAC,QAAQ,IAAI,UAAU,aAAa,MAAlD,mBAAqD,QAAQ,eAAe;AAAA,IAC7F,oCAAC,kBAAe,WAAU,cAAa;AAAA,EACzC,CACF,GAEA,oCAAC,kBAAe,WAAU,gBACxB,oCAAC,eACC,oCAAC,gBAAa,aAAa,UAAU,wBAAS,QAAQ,OAAO,WAAU,OAAM,GAC7E,oCAAC,mBACC,oCAAC,oBAAa,kBAAgB,GAC9B,oCAAC,oBACE,SAAS,IAAI,CAAC,WACb,oCAAC,eAAY,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,UAAU,gBAC5D,OAAO,OACR,oCAAC,SAAM,WAAW,GAAG,WAAW,kBAAkB,OAAO,QAAQ,gBAAgB,WAAW,GAAG,CACjG,CACD,CACH,CACF,CACF,CACF,CACF,CACF;AAEJ;","names":["_a"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3
3
 
4
- var _chunkMAL7MDPSjs = require('./chunk-MAL7MDPS.js');
4
+ var _chunkUQW3H2JSjs = require('./chunk-UQW3H2JS.js');
5
5
 
6
6
 
7
7
 
@@ -9,6 +9,9 @@ var _chunkMAL7MDPSjs = require('./chunk-MAL7MDPS.js');
9
9
  var _chunk4SYFVOM2js = require('./chunk-4SYFVOM2.js');
10
10
 
11
11
 
12
+ var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
13
+
14
+
12
15
 
13
16
 
14
17
  var _chunk2NMEKWO5js = require('./chunk-2NMEKWO5.js');
@@ -16,7 +19,7 @@ var _chunk2NMEKWO5js = require('./chunk-2NMEKWO5.js');
16
19
  // components/form/time-input.tsx
17
20
  var _react = require('react'); var _react2 = _interopRequireDefault(_react);
18
21
  function FormTimeInput(_a) {
19
- var _b = _a, { value: parentValue = 0, onChange } = _b, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["value", "onChange"]);
22
+ var _b = _a, { value: parentValue = 0, onChange, className } = _b, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["value", "onChange", "className"]);
20
23
  const [value, setValue] = _react.useState.call(void 0, String(parentValue));
21
24
  _react.useEffect.call(void 0, () => {
22
25
  setValue(String(parentValue != null ? parentValue : ""));
@@ -33,10 +36,19 @@ function FormTimeInput(_a) {
33
36
  const displayText = _chunk4SYFVOM2js.convertFromHours.call(void 0, value);
34
37
  const displayWhole = _chunk4SYFVOM2js.convertToWholeFromHours.call(void 0, value);
35
38
  const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;
36
- return /* @__PURE__ */ _react2.default.createElement(_chunkMAL7MDPSjs.FormTextInput, _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, rest), { value, onChange: handleChange, onBlur: handleBlur, title }));
39
+ return /* @__PURE__ */ _react2.default.createElement(
40
+ _chunkUQW3H2JSjs.FormTextInput,
41
+ _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, rest), {
42
+ className: _chunkPSPAJNNBjs.cn.call(void 0, "$form-time-input", className),
43
+ value,
44
+ onChange: handleChange,
45
+ onBlur: handleBlur,
46
+ title
47
+ })
48
+ );
37
49
  }
38
50
 
39
51
 
40
52
 
41
53
  exports.FormTimeInput = FormTimeInput;
42
- //# sourceMappingURL=chunk-4A5EDTXU.js.map
54
+ //# sourceMappingURL=chunk-6CRGZEQF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-6CRGZEQF.js","../components/form/time-input.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AChBA,4EAAwD;AAWjD,SAAS,aAAA,CAAc,EAAA,EAA8E;AAA9E,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,KAAA,EAAO,YAAA,EAAc,CAAA,EAAG,QAAA,EAAU,UAZlE,EAAA,EAY8B,EAAA,EAAkD,KAAA,EAAA,wCAAA,EAAlD,EAAkD,CAAhD,OAAA,EAAwB,UAAA,EAAU,WAAA,CAAA,CAAA;AAChE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAI,6BAAA,MAAiB,CAAO,WAAW,CAAC,CAAA;AAE9D,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,QAAA,CAAS,MAAA,CAAO,YAAA,GAAA,KAAA,EAAA,YAAA,EAAe,EAAE,CAAC,CAAA;AAAA,EACpC,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAA,MAAM,aAAA,EAAe,CAAC,CAAA,EAAA,GAAqC;AACzD,IAAA,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,WAAA,EAAa,CAAC,CAAA,EAAA,GAAqC;AACvD,IAAA,MAAM,SAAA,EAAW,6CAAA,CAAe,CAAE,MAAA,CAAO,KAAK,CAAA;AAC9C,IAAA,MAAM,aAAA,EAAe,MAAA,CAAO,QAAQ,CAAA;AAEpC,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,SAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,QAAA,CAAW,YAAA,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,MAAM,YAAA,EAAc,+CAAA,KAAsB,CAAA;AAC1C,EAAA,MAAM,aAAA,EAAe,sDAAA,KAA6B,CAAA;AAClD,EAAA,MAAM,MAAA,EAAQ,YAAA,IAAgB,aAAA,EAAe,CAAA,EAAA;AAG3C,EAAA;AAAC,IAAA;AAAA,IAAA;AAEmC,MAAA;AAClC,MAAA;AACU,MAAA;AACF,MAAA;AACR,MAAA;AAAA,IAAA;AACF,EAAA;AAEJ;ADGgD;AACA;AACA;AACA","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-6CRGZEQF.js","sourcesContent":[null,"\"use client\";\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { cn } from '../../utils/ui';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../utils/time';\n\nexport interface FormTimeInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n value?: number;\n onChange?: (value: number) => void;\n}\n\nexport function FormTimeInput({ value: parentValue = 0, onChange, className, ...rest }: FormTimeInputProps) {\n const [value, setValue] = useState<string>(String(parentValue));\n\n useEffect(() => {\n setValue(String(parentValue ?? ''));\n }, [parentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n };\n\n const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = convertToHours(e.target.value);\n const numericValue = Number(newValue);\n\n setValue(newValue);\n onChange?.(numericValue);\n };\n\n const displayText = convertFromHours(value);\n const displayWhole = convertToWholeFromHours(value);\n const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n return (\n <FormTextInput\n {...rest}\n className={cn('$form-time-input', className)}\n value={value}\n onChange={handleChange}\n onBlur={handleBlur}\n title={title}\n />\n );\n}\n"]}
@@ -22,7 +22,7 @@ function FormCheckbox({
22
22
  classNames
23
23
  }) {
24
24
  const checkboxId = id || _kebabCase(name);
25
- return /* @__PURE__ */ React.createElement("div", { className: cn("form-checkbox flex items-center gap-3", classNames == null ? void 0 : classNames.wrapper) }, /* @__PURE__ */ React.createElement(
25
+ return /* @__PURE__ */ React.createElement("div", { className: cn("$form-checkbox flex items-center gap-3", classNames == null ? void 0 : classNames.wrapper) }, /* @__PURE__ */ React.createElement(
26
26
  Checkbox,
27
27
  {
28
28
  id: checkboxId,
@@ -39,4 +39,4 @@ function FormCheckbox({
39
39
  export {
40
40
  FormCheckbox
41
41
  };
42
- //# sourceMappingURL=chunk-LQEGZ3FQ.mjs.map
42
+ //# sourceMappingURL=chunk-6ECNY4VS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/checkbox.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Checkbox } from '../ui/checkbox';\n\nexport interface FormCheckboxProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n checkbox?: string;\n };\n}\n\nexport function FormCheckbox({\n id,\n name,\n label,\n required,\n disabled,\n checked,\n onCheckedChange,\n classNames,\n}: FormCheckboxProps) {\n const checkboxId = id || _kebabCase(name);\n\n return (\n <div className={cn('$form-checkbox flex items-center gap-3', classNames?.wrapper)}>\n <Checkbox\n id={checkboxId}\n name={name}\n disabled={disabled}\n required={required}\n checked={checked}\n onCheckedChange={onCheckedChange}\n className={cn(classNames?.checkbox)}\n />\n\n {label && (\n <Label htmlFor={checkboxId} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AACA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AAoBhB,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,aAAa,MAAM,WAAW,IAAI;AAExC,SACE,oCAAC,SAAI,WAAW,GAAG,0CAA0C,yCAAY,OAAO,KAC9E;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,GAAG,yCAAY,QAAQ;AAAA;AAAA,EACpC,GAEC,SACC,oCAAC,SAAM,SAAS,YAAY,WAAW,yCAAY,OAAO,YACvD,KACH,CAEJ;AAEJ;","names":[]}
@@ -74,7 +74,7 @@ function FormDatePicker({
74
74
  }, [date, initialized]);
75
75
  if (!id) id = _kebabCase(name);
76
76
  const display = !initialized ? /* @__PURE__ */ React.createElement("span", null) : date ? /* @__PURE__ */ React.createElement(React.Fragment, null, formatDate(date)) : /* @__PURE__ */ React.createElement("span", null, "Pick a date");
77
- return /* @__PURE__ */ React.createElement("div", { className: cn("form-date-picker space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement("div", { className: cn("grid gap-2") }, /* @__PURE__ */ React.createElement(Popover, { open: isOpen, onOpenChange: setIsOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
77
+ return /* @__PURE__ */ React.createElement("div", { className: cn("$form-date-picker space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement("div", { className: cn("grid gap-2") }, /* @__PURE__ */ React.createElement(Popover, { open: isOpen, onOpenChange: setIsOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
78
78
  Button,
79
79
  {
80
80
  variant: date ? "secondary" : "muted",
@@ -103,4 +103,4 @@ function FormDatePicker({
103
103
  export {
104
104
  FormDatePicker
105
105
  };
106
- //# sourceMappingURL=chunk-RATSSU7L.mjs.map
106
+ //# sourceMappingURL=chunk-7ZMTJBXT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/date-picker.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isUndefined from 'lodash-es/isUndefined';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../utils/date';\nimport { cn } from '../../utils/ui';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\nimport { Matcher } from 'react-day-picker';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nfunction getStartOfDay(date: Date) {\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n return startOfDay;\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: Matcher | Matcher[];\n initialValue?: Date | string;\n closeOnSelect?: boolean;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n closeOnSelect = true,\n disabled,\n initialValue,\n value,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const [date, setDate] = useState<Date | undefined>(undefined);\n const [initialized, setInitialized] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n if (!initialized) {\n const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(new Date());\n\n setDate(dt);\n setInitialized(true);\n }\n }, [initialized, initialValue]);\n\n useEffect(() => {\n if (_isUndefined(value)) {\n if (!_isUndefined(date)) {\n setDate(undefined);\n }\n } else {\n const dt = _isString(value) ? new Date(value) : value;\n if (!isEqualDate(date, dt)) {\n setDate(getStartOfDay(dt));\n }\n }\n }, [value]);\n\n useEffect(() => {\n if (initialized) {\n onChange(date);\n }\n }, [date, initialized]);\n\n if (!id) id = _kebabCase(name);\n\n const display = !initialized ? <span></span> : date ? <>{formatDate(date)}</> : <span>Pick a date</span>;\n\n return (\n <div className={cn('$form-date-picker space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <div className={cn('grid gap-2')}>\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>\n <Button\n variant={date ? 'secondary' : 'muted'}\n appearance=\"outline\"\n className={cn('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {display}\n </Button>\n </PopoverTrigger>\n\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={(newdate) => {\n if (!isEqualDate(date, newdate)) {\n setDate(newdate);\n }\n if (closeOnSelect) setIsOpen(false);\n }}\n disabled={disabled}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,SAAS,WAAW,gBAAgB;AAC3C,SAAkB,cAAuB;AACzC,SAAS,oBAAoB;AAC7B,OAAO,gBAAgB;AAEvB,OAAO,kBAAkB;AACzB,OAAO,eAAe;AAUtB,SAAS,WAAW,MAAY;AAC9B,SAAO,OAAO,MAAM,WAAW;AACjC;AAEA,SAAS,cAAc,MAAY;AACjC,QAAM,aAAa,IAAI,KAAK,KAAK,YAAY,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,CAAC;AAC/E,SAAO;AACT;AAmBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,SAA2B,MAAS;AAC5D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,YAAU,MAAM;AACd,QAAI,CAAC,aAAa;AAChB,YAAM,KAAK,eAAe,cAAc,IAAI,KAAK,YAAY,CAAC,IAAI,cAAc,oBAAI,KAAK,CAAC;AAE1F,cAAQ,EAAE;AACV,qBAAe,IAAI;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,aAAa,YAAY,CAAC;AAE9B,YAAU,MAAM;AACd,QAAI,aAAa,KAAK,GAAG;AACvB,UAAI,CAAC,aAAa,IAAI,GAAG;AACvB,gBAAQ,MAAS;AAAA,MACnB;AAAA,IACF,OAAO;AACL,YAAM,KAAK,UAAU,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;AAChD,UAAI,CAAC,YAAY,MAAM,EAAE,GAAG;AAC1B,gBAAQ,cAAc,EAAE,CAAC;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,YAAU,MAAM;AACd,QAAI,aAAa;AACf,eAAS,IAAI;AAAA,IACf;AAAA,EACF,GAAG,CAAC,MAAM,WAAW,CAAC;AAEtB,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,QAAM,UAAU,CAAC,cAAc,oCAAC,YAAK,IAAU,OAAO,0DAAG,WAAW,IAAI,CAAE,IAAM,oCAAC,cAAK,aAAW;AAEjG,SACE,oCAAC,SAAI,WAAW,GAAG,+BAA+B,yCAAY,OAAO,KAClE,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,WAAQ,MAAM,QAAQ,cAAc,aACnC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,OAAO,cAAc;AAAA,MAC9B,YAAW;AAAA,MACX,WAAW,GAAG,qDAAqD,yCAAY,MAAM;AAAA;AAAA,IAErF,oCAAC,kBAAa;AAAA,IACb;AAAA,EACH,CACF,GAEA,oCAAC,kBAAe,WAAU,cAAa,OAAM,WAC3C;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU,CAAC,YAAY;AACrB,YAAI,CAAC,YAAY,MAAM,OAAO,GAAG;AAC/B,kBAAQ,OAAO;AAAA,QACjB;AACA,YAAI,cAAe,WAAU,KAAK;AAAA,MACpC;AAAA,MACA;AAAA;AAAA,EACF,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -9,7 +9,7 @@ var _chunkMJT6B7OJjs = require('./chunk-MJT6B7OJ.js');
9
9
 
10
10
 
11
11
 
12
- var _chunkEGG4SBHVjs = require('./chunk-EGG4SBHV.js');
12
+ var _chunkRFORRZRNjs = require('./chunk-RFORRZRN.js');
13
13
 
14
14
 
15
15
  var _chunkPSPAJNNBjs = require('./chunk-PSPAJNNB.js');
@@ -49,8 +49,8 @@ function CommandDialog(_a) {
49
49
  "className",
50
50
  "showCloseButton"
51
51
  ]);
52
- return /* @__PURE__ */ React.createElement(_chunkEGG4SBHVjs.Dialog, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, props), /* @__PURE__ */ React.createElement(_chunkEGG4SBHVjs.DialogHeader, { className: "sr-only" }, /* @__PURE__ */ React.createElement(_chunkEGG4SBHVjs.DialogTitle, null, title), /* @__PURE__ */ React.createElement(_chunkEGG4SBHVjs.DialogDescription, null, description)), /* @__PURE__ */ React.createElement(
53
- _chunkEGG4SBHVjs.DialogContent,
52
+ return /* @__PURE__ */ React.createElement(_chunkRFORRZRNjs.Dialog, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, props), /* @__PURE__ */ React.createElement(_chunkRFORRZRNjs.DialogHeader, { className: "sr-only" }, /* @__PURE__ */ React.createElement(_chunkRFORRZRNjs.DialogTitle, null, title), /* @__PURE__ */ React.createElement(_chunkRFORRZRNjs.DialogDescription, null, description)), /* @__PURE__ */ React.createElement(
53
+ _chunkRFORRZRNjs.DialogContent,
54
54
  {
55
55
  className: _chunkPSPAJNNBjs.cn.call(void 0, "rounded-xl! top-1/3 translate-y-0 overflow-hidden p-0", className),
56
56
  showCloseButton
@@ -151,4 +151,4 @@ function CommandShortcut(_a) {
151
151
 
152
152
 
153
153
  exports.Command = Command; exports.CommandDialog = CommandDialog; exports.CommandInput = CommandInput; exports.CommandList = CommandList; exports.CommandEmpty = CommandEmpty; exports.CommandGroup = CommandGroup; exports.CommandSeparator = CommandSeparator; exports.CommandItem = CommandItem; exports.CommandShortcut = CommandShortcut;
154
- //# sourceMappingURL=chunk-ECYGZFEF.js.map
154
+ //# sourceMappingURL=chunk-AJLAS62X.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-ECYGZFEF.js","../components/ui/command.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-ECYGZFEF.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\n\nimport { cn } from '../../utils/ui';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { InputGroup, InputGroupAddon } from './input-group';\nimport { SearchIcon, CheckIcon } from 'lucide-react';\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground rounded-xl! p-1 flex size-full flex-col overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = false,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn('rounded-xl! top-1/3 translate-y-0 overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className)}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n );\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto', className)}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('py-6 text-center text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({ className, children, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-muted data-[selected=true]:text-foreground data-[selected=true]:*:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! [&_svg:not([class*='size-'])]:size-4 group/command-item data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n );\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"]}
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AJLAS62X.js","../components/ui/command.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-AJLAS62X.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\n\nimport { cn } from '../../utils/ui';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { InputGroup, InputGroupAddon } from './input-group';\nimport { SearchIcon, CheckIcon } from 'lucide-react';\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground rounded-xl! p-1 flex size-full flex-col overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = false,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn('rounded-xl! top-1/3 translate-y-0 overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className)}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n );\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto', className)}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('py-6 text-center text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({ className, children, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-muted data-[selected=true]:text-foreground data-[selected=true]:*:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! [&_svg:not([class*='size-'])]:size-4 group/command-item data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n );\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"]}
@@ -40,7 +40,7 @@ function FormTextarea(_a) {
40
40
  ]);
41
41
  if (!id) id = _kebabCase(name);
42
42
  const _ref = useRef(null);
43
- return /* @__PURE__ */ React.createElement("div", { className: cn("form-textarea space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement(
43
+ return /* @__PURE__ */ React.createElement("div", { className: cn("$form-textarea space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement(
44
44
  Textarea,
45
45
  __spreadProps(__spreadValues(__spreadValues({
46
46
  id,
@@ -69,4 +69,4 @@ function FormTextarea(_a) {
69
69
  export {
70
70
  FormTextarea
71
71
  };
72
- //# sourceMappingURL=chunk-2UC2IM3Q.mjs.map
72
+ //# sourceMappingURL=chunk-BEPAUXCN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/textarea.tsx"],"sourcesContent":["\"use client\";\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('$form-textarea space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,OAAO,SAAiC,cAAc;AACtD,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAOvB,IAAM,aAAa;AAcZ,SAAS,aAAa,IAUP;AAVO,eAC3B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EAhChB,IAwB6B,IASxB,iBATwB,IASxB;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAC7B,QAAM,OAAO,OAA4B,IAAI;AAE7C,SACE,oCAAC,SAAI,WAAW,GAAG,4BAA4B,yCAAY,OAAO,KAC/D,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,OARL;AAAA,MAYC,KAAK,CAAC,OAAO;AACX,YAAI,CAAC,GAAI;AAET,SAAC,MAAM,WAAW,GAAG,EAAE,QAAQ,CAAC,OAAO;AACrC,cAAI,CAAC,GAAI;AAET,cAAI,YAAY,EAAE,GAAG;AACnB,eAAG,EAAE;AAAA,UACP,OAAO;AACL,eAAG,UAAU;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}
@@ -41,7 +41,7 @@ function FormTextarea(_a) {
41
41
  ]);
42
42
  if (!id) id = _kebabCase3.default.call(void 0, name);
43
43
  const _ref = _react.useRef.call(void 0, null);
44
- return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkPSPAJNNBjs.cn.call(void 0, "form-textarea space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkCKGMFUU2js.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement(
44
+ return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkPSPAJNNBjs.cn.call(void 0, "$form-textarea space-y-1", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkCKGMFUU2js.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement(
45
45
  _chunkRJG7QLDDjs.Textarea,
46
46
  _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {
47
47
  id,
@@ -70,4 +70,4 @@ function FormTextarea(_a) {
70
70
 
71
71
 
72
72
  exports.FormTextarea = FormTextarea;
73
- //# sourceMappingURL=chunk-6KVESKTY.js.map
73
+ //# sourceMappingURL=chunk-BJK4J4VY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-6KVESKTY.js","../components/form/textarea.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACdA,4EAAsD;AACtD,4GAAwB;AACxB,wGAAuB;AAOvB,IAAM,WAAA,EAAa,EAAA;AAcZ,SAAS,YAAA,CAAa,EAAA,EAUP;AAVO,EAAA,IAAA,GAAA,EAAA,EAAA,EAC3B;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,CAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EAhChB,EAAA,EAwB6B,EAAA,EASxB,KAAA,EAAA,wCAAA,EATwB,EASxB;AAAA,IARH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,GAAA,EAAK,iCAAA,IAAe,CAAA;AAC7B,EAAA,MAAM,KAAA,EAAO,2BAAA,IAAgC,CAAA;AAE7C,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,yBAAG,EAA2B,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAC9D,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EAC/C,KACH,CAAA,kBAGF,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,IAAA,CAAA,EARL;AAAA,MAYC,GAAA,EAAK,CAAC,EAAA,EAAA,GAAO;AACX,QAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,QAAA,CAAC,IAAA,EAAM,UAAA,CAAW,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,EAAA,EAAA,GAAO;AACrC,UAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,UAAA,GAAA,CAAI,kCAAA,EAAc,CAAA,EAAG;AACnB,YAAA,EAAA,CAAG,EAAE,CAAA;AAAA,UACP,EAAA,KAAO;AACL,YAAA,EAAA,CAAG,QAAA,EAAU,EAAA;AAAA,UACf;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADRA;AACA;AACE;AACF,oCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-6KVESKTY.js","sourcesContent":[null,"\"use client\";\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('form-textarea space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-BJK4J4VY.js","../components/form/textarea.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACdA,4EAAsD;AACtD,4GAAwB;AACxB,wGAAuB;AAOvB,IAAM,WAAA,EAAa,EAAA;AAcZ,SAAS,YAAA,CAAa,EAAA,EAUP;AAVO,EAAA,IAAA,GAAA,EAAA,EAAA,EAC3B;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,CAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EAhChB,EAAA,EAwB6B,EAAA,EASxB,KAAA,EAAA,wCAAA,EATwB,EASxB;AAAA,IARH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,GAAA,EAAK,iCAAA,IAAe,CAAA;AAC7B,EAAA,MAAM,KAAA,EAAO,2BAAA,IAAgC,CAAA;AAE7C,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,0BAAG,EAA4B,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAC/D,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EAC/C,KACH,CAAA,kBAGF,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,IAAA,CAAA,EARL;AAAA,MAYC,GAAA,EAAK,CAAC,EAAA,EAAA,GAAO;AACX,QAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,QAAA,CAAC,IAAA,EAAM,UAAA,CAAW,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,EAAA,EAAA,GAAO;AACrC,UAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,UAAA,GAAA,CAAI,kCAAA,EAAc,CAAA,EAAG;AACnB,YAAA,EAAA,CAAG,EAAE,CAAA;AAAA,UACP,EAAA,KAAO;AACL,YAAA,EAAA,CAAG,QAAA,EAAU,EAAA;AAAA,UACf;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADRA;AACA;AACE;AACF,oCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-BJK4J4VY.js","sourcesContent":[null,"\"use client\";\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../utils/ui';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('$form-textarea space-y-1', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
@@ -38,7 +38,7 @@ function SelectTrigger(_a) {
38
38
  "data-slot": "select-trigger",
39
39
  "data-size": size,
40
40
  className: cn(
41
- "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
41
+ "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-sm border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
42
42
  className
43
43
  )
44
44
  }, props),
@@ -64,7 +64,7 @@ function SelectContent(_a) {
64
64
  "data-slot": "select-content",
65
65
  "data-align-trigger": position === "item-aligned",
66
66
  className: cn(
67
- "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-lg shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none",
67
+ "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-sm shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none",
68
68
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
69
69
  className
70
70
  ),
@@ -103,7 +103,7 @@ function SelectItem(_a) {
103
103
  __spreadValues({
104
104
  "data-slot": "select-item",
105
105
  className: cn(
106
- "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
106
+ "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
107
107
  className
108
108
  )
109
109
  }, props),
@@ -166,4 +166,4 @@ export {
166
166
  SelectScrollUpButton,
167
167
  SelectScrollDownButton
168
168
  };
169
- //# sourceMappingURL=chunk-HUEFOSXC.mjs.map
169
+ //# sourceMappingURL=chunk-E7F5KADG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/ui/select.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\n\nimport { cn } from '../../utils/ui';\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" className={cn('scroll-my-1 p-1', className)} {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-sm border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"text-muted-foreground size-4 pointer-events-none\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === 'item-aligned'}\n className={cn(\n 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-sm shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n 'data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)',\n position === 'popper' && '',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-1.5 py-1 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border -mx-1 my-1 h-px pointer-events-none', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"mappings":"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","names":[]}
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  FormTextInput
3
- } from "./chunk-QEMZCGBS.mjs";
3
+ } from "./chunk-VHYQNTH7.mjs";
4
4
  import {
5
5
  convertFromHours,
6
6
  convertToHours,
7
7
  convertToWholeFromHours
8
8
  } from "./chunk-ZEZK2FJ4.mjs";
9
+ import {
10
+ cn
11
+ } from "./chunk-KGUUDFJE.mjs";
9
12
  import {
10
13
  __objRest,
11
14
  __spreadProps,
@@ -15,7 +18,7 @@ import {
15
18
  // components/form/time-input.tsx
16
19
  import React, { useState, useEffect } from "react";
17
20
  function FormTimeInput(_a) {
18
- var _b = _a, { value: parentValue = 0, onChange } = _b, rest = __objRest(_b, ["value", "onChange"]);
21
+ var _b = _a, { value: parentValue = 0, onChange, className } = _b, rest = __objRest(_b, ["value", "onChange", "className"]);
19
22
  const [value, setValue] = useState(String(parentValue));
20
23
  useEffect(() => {
21
24
  setValue(String(parentValue != null ? parentValue : ""));
@@ -32,10 +35,19 @@ function FormTimeInput(_a) {
32
35
  const displayText = convertFromHours(value);
33
36
  const displayWhole = convertToWholeFromHours(value);
34
37
  const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;
35
- return /* @__PURE__ */ React.createElement(FormTextInput, __spreadProps(__spreadValues({}, rest), { value, onChange: handleChange, onBlur: handleBlur, title }));
38
+ return /* @__PURE__ */ React.createElement(
39
+ FormTextInput,
40
+ __spreadProps(__spreadValues({}, rest), {
41
+ className: cn("$form-time-input", className),
42
+ value,
43
+ onChange: handleChange,
44
+ onBlur: handleBlur,
45
+ title
46
+ })
47
+ );
36
48
  }
37
49
 
38
50
  export {
39
51
  FormTimeInput
40
52
  };
41
- //# sourceMappingURL=chunk-NHDANPMI.mjs.map
53
+ //# sourceMappingURL=chunk-FD7CNCJW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/time-input.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { cn } from '../../utils/ui';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../utils/time';\n\nexport interface FormTimeInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n value?: number;\n onChange?: (value: number) => void;\n}\n\nexport function FormTimeInput({ value: parentValue = 0, onChange, className, ...rest }: FormTimeInputProps) {\n const [value, setValue] = useState<string>(String(parentValue));\n\n useEffect(() => {\n setValue(String(parentValue ?? ''));\n }, [parentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n };\n\n const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = convertToHours(e.target.value);\n const numericValue = Number(newValue);\n\n setValue(newValue);\n onChange?.(numericValue);\n };\n\n const displayText = convertFromHours(value);\n const displayWhole = convertToWholeFromHours(value);\n const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n return (\n <FormTextInput\n {...rest}\n className={cn('$form-time-input', className)}\n value={value}\n onChange={handleChange}\n onBlur={handleBlur}\n title={title}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,OAAO,SAAS,UAAU,iBAA8B;AAWjD,SAAS,cAAc,IAA8E;AAA9E,eAAE,SAAO,cAAc,GAAG,UAAU,UAZlE,IAY8B,IAAkD,iBAAlD,IAAkD,CAAhD,SAAwB,YAAU;AAChE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,OAAO,WAAW,CAAC;AAE9D,YAAU,MAAM;AACd,aAAS,OAAO,oCAAe,EAAE,CAAC;AAAA,EACpC,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,eAAe,CAAC,MAAqC;AACzD,aAAS,EAAE,OAAO,KAAK;AAAA,EACzB;AAEA,QAAM,aAAa,CAAC,MAAqC;AACvD,UAAM,WAAW,eAAe,EAAE,OAAO,KAAK;AAC9C,UAAM,eAAe,OAAO,QAAQ;AAEpC,aAAS,QAAQ;AACjB,yCAAW;AAAA,EACb;AAEA,QAAM,cAAc,iBAAiB,KAAK;AAC1C,QAAM,eAAe,wBAAwB,KAAK;AAClD,QAAM,QAAQ,gBAAgB,eAAe,GAAG,WAAW,KAAK,YAAY,MAAM;AAElF,SACE;AAAA,IAAC;AAAA,qCACK,OADL;AAAA,MAEC,WAAW,GAAG,oBAAoB,SAAS;AAAA,MAC3C;AAAA,MACA,UAAU;AAAA,MACV,QAAQ;AAAA,MACR;AAAA;AAAA,EACF;AAEJ;","names":[]}