@egose/shadcn-theme 0.0.50 → 0.0.52

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 (201) hide show
  1. package/{chunk-IPTLI5N5.mjs → chunk-2BKV4IJV.mjs} +4 -4
  2. package/chunk-2BKV4IJV.mjs.map +1 -0
  3. package/{chunk-2H5WIGQU.js → chunk-4FD63HEQ.js} +5 -5
  4. package/chunk-4FD63HEQ.js.map +1 -0
  5. package/chunk-4XC6EXHZ.mjs +112 -0
  6. package/chunk-4XC6EXHZ.mjs.map +1 -0
  7. package/{chunk-7TCN3MNY.js → chunk-5HD5BGK7.js} +1 -1
  8. package/chunk-5HD5BGK7.js.map +1 -0
  9. package/{chunk-WA2Z3OWJ.js → chunk-6KUUJF3I.js} +3 -3
  10. package/chunk-6KUUJF3I.js.map +1 -0
  11. package/{chunk-LPZRXLKK.mjs → chunk-ACE5WNTU.mjs} +6 -6
  12. package/chunk-ACE5WNTU.mjs.map +1 -0
  13. package/{chunk-NJDC3RMA.mjs → chunk-ARQYTBBZ.mjs} +1 -1
  14. package/chunk-ARQYTBBZ.mjs.map +1 -0
  15. package/chunk-CE4PBEIL.js +88 -0
  16. package/chunk-CE4PBEIL.js.map +1 -0
  17. package/{chunk-MWA2HHI7.mjs → chunk-CPGH6LBC.mjs} +1 -1
  18. package/chunk-CPGH6LBC.mjs.map +1 -0
  19. package/{chunk-2WDZS5E5.mjs → chunk-CTYAFVU5.mjs} +2 -2
  20. package/chunk-CTYAFVU5.mjs.map +1 -0
  21. package/{chunk-N4QVNSAY.js → chunk-DGYAXPSD.js} +1 -1
  22. package/chunk-DGYAXPSD.js.map +1 -0
  23. package/{chunk-V5IL3OBF.mjs → chunk-DMATER3M.mjs} +1 -1
  24. package/chunk-DMATER3M.mjs.map +1 -0
  25. package/chunk-DTJ43DCW.mjs +87 -0
  26. package/chunk-DTJ43DCW.mjs.map +1 -0
  27. package/{chunk-U3HF6HPN.js → chunk-DYUS5722.js} +1 -1
  28. package/chunk-DYUS5722.js.map +1 -0
  29. package/{chunk-R3RMWOGE.mjs → chunk-EJQJ3BCF.mjs} +1 -1
  30. package/chunk-EJQJ3BCF.mjs.map +1 -0
  31. package/{chunk-LVFEXEXE.mjs → chunk-FMYITAWN.mjs} +1 -1
  32. package/chunk-FMYITAWN.mjs.map +1 -0
  33. package/{chunk-PSQGNWKT.js → chunk-GI222XFX.js} +1 -1
  34. package/chunk-GI222XFX.js.map +1 -0
  35. package/chunk-I64GW5SA.js +113 -0
  36. package/chunk-I64GW5SA.js.map +1 -0
  37. package/{chunk-ALDDTRY5.js → chunk-I6AFNWVY.js} +1 -1
  38. package/chunk-I6AFNWVY.js.map +1 -0
  39. package/{chunk-YT6UTIPP.js → chunk-IQYZKNJZ.js} +3 -3
  40. package/chunk-IQYZKNJZ.js.map +1 -0
  41. package/chunk-JW7N7IR5.mjs +120 -0
  42. package/chunk-JW7N7IR5.mjs.map +1 -0
  43. package/{chunk-4QOQOMZB.mjs → chunk-LXILG667.mjs} +1 -1
  44. package/chunk-LXILG667.mjs.map +1 -0
  45. package/{chunk-DMO25T5J.mjs → chunk-NTYWTGYX.mjs} +1 -1
  46. package/chunk-NTYWTGYX.mjs.map +1 -0
  47. package/{chunk-3YDM2NYL.js → chunk-NVBZVKIT.js} +1 -1
  48. package/chunk-NVBZVKIT.js.map +1 -0
  49. package/{chunk-5RW6O56P.mjs → chunk-OXCN3BD6.mjs} +1 -1
  50. package/chunk-OXCN3BD6.mjs.map +1 -0
  51. package/{chunk-E77FKWFS.js → chunk-PCR4GC74.js} +1 -1
  52. package/chunk-PCR4GC74.js.map +1 -0
  53. package/{chunk-273TIMKM.js → chunk-PS3LNHTA.js} +1 -1
  54. package/chunk-PS3LNHTA.js.map +1 -0
  55. package/{chunk-UQTHHSJN.mjs → chunk-R4SF7CSA.mjs} +1 -1
  56. package/chunk-R4SF7CSA.mjs.map +1 -0
  57. package/chunk-RMDDLEPA.js +121 -0
  58. package/chunk-RMDDLEPA.js.map +1 -0
  59. package/{chunk-FQG3C7OR.js → chunk-XJ7GBFHV.js} +1 -1
  60. package/chunk-XJ7GBFHV.js.map +1 -0
  61. package/{chunk-5UUXFHU3.mjs → chunk-YQZZ6RRI.mjs} +1 -1
  62. package/chunk-YQZZ6RRI.mjs.map +1 -0
  63. package/{chunk-XCHWNZWB.js → chunk-YWWFTM23.js} +1 -1
  64. package/chunk-YWWFTM23.js.map +1 -0
  65. package/components/form/checkbox.js +2 -2
  66. package/components/form/checkbox.mjs +1 -1
  67. package/components/form/date-picker.js +3 -3
  68. package/components/form/date-picker.mjs +2 -2
  69. package/components/form/date-range-picker.js +2 -2
  70. package/components/form/date-range-picker.js.map +1 -1
  71. package/components/form/date-range-picker.mjs +3 -3
  72. package/components/form/date-range-picker.mjs.map +1 -1
  73. package/components/form/hook-checkbox.js +2 -2
  74. package/components/form/hook-checkbox.js.map +1 -1
  75. package/components/form/hook-checkbox.mjs +1 -1
  76. package/components/form/hook-checkbox.mjs.map +1 -1
  77. package/components/form/hook-date-picker.js +3 -3
  78. package/components/form/hook-date-picker.js.map +1 -1
  79. package/components/form/hook-date-picker.mjs +2 -2
  80. package/components/form/hook-date-picker.mjs.map +1 -1
  81. package/components/form/hook-native-select.js +2 -2
  82. package/components/form/hook-native-select.js.map +1 -1
  83. package/components/form/hook-native-select.mjs +1 -1
  84. package/components/form/hook-native-select.mjs.map +1 -1
  85. package/components/form/hook-searchable-select.d.mts +12 -0
  86. package/components/form/hook-searchable-select.d.ts +12 -0
  87. package/components/form/hook-searchable-select.js +74 -0
  88. package/components/form/hook-searchable-select.js.map +1 -0
  89. package/components/form/hook-searchable-select.mjs +73 -0
  90. package/components/form/hook-searchable-select.mjs.map +1 -0
  91. package/components/form/hook-select.js +2 -2
  92. package/components/form/hook-select.js.map +1 -1
  93. package/components/form/hook-select.mjs +1 -1
  94. package/components/form/hook-select.mjs.map +1 -1
  95. package/components/form/hook-text-input.js +2 -2
  96. package/components/form/hook-text-input.js.map +1 -1
  97. package/components/form/hook-text-input.mjs +1 -1
  98. package/components/form/hook-text-input.mjs.map +1 -1
  99. package/components/form/hook-textarea.js +2 -2
  100. package/components/form/hook-textarea.js.map +1 -1
  101. package/components/form/hook-textarea.mjs +1 -1
  102. package/components/form/hook-textarea.mjs.map +1 -1
  103. package/components/form/hook-time-input.js +3 -3
  104. package/components/form/hook-time-input.js.map +1 -1
  105. package/components/form/hook-time-input.mjs +2 -2
  106. package/components/form/hook-time-input.mjs.map +1 -1
  107. package/components/form/native-select.js +2 -2
  108. package/components/form/native-select.mjs +1 -1
  109. package/components/form/searchable-select.d.mts +26 -0
  110. package/components/form/searchable-select.d.ts +26 -0
  111. package/components/form/searchable-select.js +17 -0
  112. package/components/form/searchable-select.js.map +1 -0
  113. package/components/form/searchable-select.mjs +16 -0
  114. package/components/form/searchable-select.mjs.map +1 -0
  115. package/components/form/select.js +2 -2
  116. package/components/form/select.mjs +1 -1
  117. package/components/form/text-input.js +2 -2
  118. package/components/form/text-input.mjs +1 -1
  119. package/components/form/textarea.js +2 -2
  120. package/components/form/textarea.mjs +1 -1
  121. package/components/form/time-input.js +3 -3
  122. package/components/form/time-input.mjs +2 -2
  123. package/components/ui/badge.js +5 -113
  124. package/components/ui/badge.js.map +1 -1
  125. package/components/ui/badge.mjs +5 -113
  126. package/components/ui/badge.mjs.map +1 -1
  127. package/components/ui/command.d.mts +7 -7
  128. package/components/ui/command.d.ts +7 -7
  129. package/components/ui/command.js +26 -111
  130. package/components/ui/command.js.map +1 -1
  131. package/components/ui/command.mjs +13 -98
  132. package/components/ui/command.mjs.map +1 -1
  133. package/components/ui/extension/file-input.d.mts +10 -0
  134. package/components/ui/extension/file-input.d.ts +10 -0
  135. package/components/ui/extension/file-input.js +28 -0
  136. package/components/ui/extension/file-input.js.map +1 -0
  137. package/components/ui/extension/file-input.mjs +27 -0
  138. package/components/ui/extension/file-input.mjs.map +1 -0
  139. package/components/ui/extension/multi-select.d.mts +53 -0
  140. package/components/ui/extension/multi-select.d.ts +53 -0
  141. package/components/ui/extension/multi-select.js +312 -0
  142. package/components/ui/extension/multi-select.js.map +1 -0
  143. package/components/ui/extension/multi-select.mjs +311 -0
  144. package/components/ui/extension/multi-select.mjs.map +1 -0
  145. package/components/ui/resizable.d.mts +1 -1
  146. package/components/ui/resizable.d.ts +1 -1
  147. package/components/ui/toaster.js +2 -2
  148. package/components/ui/toaster.mjs +1 -1
  149. package/components/widgets/dialog-manager/index.js +3 -3
  150. package/components/widgets/dialog-manager/index.js.map +1 -1
  151. package/components/widgets/dialog-manager/index.mjs +2 -2
  152. package/components/widgets/dialog-manager/provider.js +2 -2
  153. package/components/widgets/dialog-manager/provider.mjs +1 -1
  154. package/hooks/use-toast.js +2 -2
  155. package/hooks/use-toast.mjs +1 -1
  156. package/layouts/sidebar1/LinkWrapper.js.map +1 -1
  157. package/layouts/sidebar1/LinkWrapper.mjs.map +1 -1
  158. package/layouts/sidebar1/app-sidebar.js +5 -5
  159. package/layouts/sidebar1/app-sidebar.mjs +4 -4
  160. package/layouts/sidebar1/context-switcher.js +2 -2
  161. package/layouts/sidebar1/context-switcher.mjs +1 -1
  162. package/layouts/sidebar1/index.js +7 -7
  163. package/layouts/sidebar1/index.js.map +1 -1
  164. package/layouts/sidebar1/index.mjs +6 -6
  165. package/layouts/sidebar1/nav-menus.js +2 -2
  166. package/layouts/sidebar1/nav-menus.mjs +1 -1
  167. package/layouts/sidebar1/nav-user.js +2 -2
  168. package/layouts/sidebar1/nav-user.mjs +1 -1
  169. package/layouts/simple/index.d.mts +19 -15
  170. package/layouts/simple/index.d.ts +19 -15
  171. package/layouts/simple/index.js +14 -14
  172. package/layouts/simple/index.js.map +1 -1
  173. package/layouts/simple/index.mjs +14 -14
  174. package/layouts/simple/index.mjs.map +1 -1
  175. package/package.json +1 -1
  176. package/chunk-273TIMKM.js.map +0 -1
  177. package/chunk-2H5WIGQU.js.map +0 -1
  178. package/chunk-2WDZS5E5.mjs.map +0 -1
  179. package/chunk-3YDM2NYL.js.map +0 -1
  180. package/chunk-4QOQOMZB.mjs.map +0 -1
  181. package/chunk-5RW6O56P.mjs.map +0 -1
  182. package/chunk-5UUXFHU3.mjs.map +0 -1
  183. package/chunk-7TCN3MNY.js.map +0 -1
  184. package/chunk-ALDDTRY5.js.map +0 -1
  185. package/chunk-DMO25T5J.mjs.map +0 -1
  186. package/chunk-E77FKWFS.js.map +0 -1
  187. package/chunk-FQG3C7OR.js.map +0 -1
  188. package/chunk-IPTLI5N5.mjs.map +0 -1
  189. package/chunk-LPZRXLKK.mjs.map +0 -1
  190. package/chunk-LVFEXEXE.mjs.map +0 -1
  191. package/chunk-MWA2HHI7.mjs.map +0 -1
  192. package/chunk-N4QVNSAY.js.map +0 -1
  193. package/chunk-NJDC3RMA.mjs.map +0 -1
  194. package/chunk-PSQGNWKT.js.map +0 -1
  195. package/chunk-R3RMWOGE.mjs.map +0 -1
  196. package/chunk-U3HF6HPN.js.map +0 -1
  197. package/chunk-UQTHHSJN.mjs.map +0 -1
  198. package/chunk-V5IL3OBF.mjs.map +0 -1
  199. package/chunk-WA2Z3OWJ.js.map +0 -1
  200. package/chunk-XCHWNZWB.js.map +0 -1
  201. package/chunk-YT6UTIPP.js.map +0 -1
@@ -1,11 +1,11 @@
1
+ import {
2
+ Calendar
3
+ } from "./chunk-PS7WGOZH.mjs";
1
4
  import {
2
5
  Popover,
3
6
  PopoverContent,
4
7
  PopoverTrigger
5
8
  } from "./chunk-TMC4JKD5.mjs";
6
- import {
7
- Calendar
8
- } from "./chunk-PS7WGOZH.mjs";
9
9
  import {
10
10
  Button
11
11
  } from "./chunk-4NMFJSJN.mjs";
@@ -99,4 +99,4 @@ function FormDatePicker({
99
99
  export {
100
100
  FormDatePicker
101
101
  };
102
- //# sourceMappingURL=chunk-IPTLI5N5.mjs.map
102
+ //# sourceMappingURL=chunk-2BKV4IJV.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 '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\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?: boolean;\n initialValue?: Date | string;\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 disabled = false,\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\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('date-picker', 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>\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 }}\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;AAStB,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;AAkBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,SAA2B,MAAS;AAC5D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,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,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,eACC,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;AAAA,MACF;AAAA;AAAA,EACF,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
3
3
 
4
- var _chunk7TCN3MNYjs = require('./chunk-7TCN3MNY.js');
4
+ var _chunkPCR4GC74js = require('./chunk-PCR4GC74.js');
5
5
 
6
6
 
7
- var _chunkU3HF6HPNjs = require('./chunk-U3HF6HPN.js');
7
+ var _chunk5HD5BGK7js = require('./chunk-5HD5BGK7.js');
8
8
 
9
9
 
10
- var _chunkE77FKWFSjs = require('./chunk-E77FKWFS.js');
10
+ var _chunkDYUS5722js = require('./chunk-DYUS5722.js');
11
11
 
12
12
 
13
13
 
@@ -29,7 +29,7 @@ function AppSidebar(_a) {
29
29
  var props = _chunk2NMEKWO5js.__objRest.call(void 0, _a, []);
30
30
  var _b;
31
31
  const _a2 = props, { data, aslink } = _a2, rest = _chunk2NMEKWO5js.__objRest.call(void 0, _a2, ["data", "aslink"]);
32
- return /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.Sidebar, _chunk2NMEKWO5js.__spreadValues.call(void 0, { collapsible: "icon" }, rest), /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.SidebarHeader, null, /* @__PURE__ */ React.createElement(_chunkU3HF6HPNjs.ContextSwitcher, { items: data.contexts })), /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.SidebarContent, null, /* @__PURE__ */ React.createElement(_chunkE77FKWFSjs.NavMenus, { menus: data.menus, aslink })), /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.SidebarFooter, null, data.user ? /* @__PURE__ */ React.createElement(_chunk7TCN3MNYjs.NavUser, { user: data.user, menus: data.userMenus, aslink, onLogout: (_b = data.events) == null ? void 0 : _b.logout }) : /* @__PURE__ */ React.createElement(
32
+ return /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.Sidebar, _chunk2NMEKWO5js.__spreadValues.call(void 0, { collapsible: "icon" }, rest), /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.SidebarHeader, null, /* @__PURE__ */ React.createElement(_chunkDYUS5722js.ContextSwitcher, { items: data.contexts })), /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.SidebarContent, null, /* @__PURE__ */ React.createElement(_chunkPCR4GC74js.NavMenus, { menus: data.menus, aslink })), /* @__PURE__ */ React.createElement(_chunkMYO4WRNBjs.SidebarFooter, null, data.user ? /* @__PURE__ */ React.createElement(_chunk5HD5BGK7js.NavUser, { user: data.user, menus: data.userMenus, aslink, onLogout: (_b = data.events) == null ? void 0 : _b.logout }) : /* @__PURE__ */ React.createElement(
33
33
  _chunkEZZ2YCUUjs.Button,
34
34
  {
35
35
  variant: "primary",
@@ -47,4 +47,4 @@ function AppSidebar(_a) {
47
47
 
48
48
 
49
49
  exports.AppSidebar = AppSidebar;
50
- //# sourceMappingURL=chunk-2H5WIGQU.js.map
50
+ //# sourceMappingURL=chunk-4FD63HEQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-4FD63HEQ.js","../layouts/sidebar1/app-sidebar.tsx"],"names":["_a"],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACvBA,2EAAuB;AAoBhB,SAAS,UAAA,CAAW,EAAA,EAKxB;AALwB,EAAA,IACtB,MAAA,EAAA,wCAAA,EADsB,EACtB,CAAA,CAAA,CAAA;AAtBL,EAAA,IAAA,EAAA;AA2BE,EAAA,MAAkCA,IAAAA,EAAA,KAAA,EAA1B,EAAA,IAAA,EAAM,OA3BhB,EAAA,EA2BoCA,GAAAA,EAAT,KAAA,EAAA,wCAAA,GAASA,EAAT,CAAjB,MAAA,EAAM,QAAA,CAAA,CAAA;AAEd,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,wBAAA,EAAA,6CAAA,EAAQ,WAAA,EAAY,OAAA,CAAA,EAAW,IAAA,CAAA,kBAC9B,KAAA,CAAA,aAAA,CAAC,8BAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,EAAgB,KAAA,EAAO,IAAA,CAAK,SAAA,CAAU,CACzC,CAAA,kBAEA,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,yBAAA,EAAA,EAAS,KAAA,EAAO,IAAA,CAAK,KAAA,EAAO,OAAA,CAAgB,CAC/C,CAAA,kBAEA,KAAA,CAAA,aAAA,CAAC,8BAAA,EAAA,IAAA,EACE,IAAA,CAAK,KAAA,kBACJ,KAAA,CAAA,aAAA,CAAC,wBAAA,EAAA,EAAQ,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,IAAA,CAAK,SAAA,EAAW,MAAA,EAAgB,QAAA,EAAA,CAAU,GAAA,EAAA,IAAA,CAAK,MAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAa,OAAA,CAAQ,EAAA,kBAEhG,KAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,SAAA;AAAA,MACR,OAAA,EAAS,CAAA,EAAA,GAAM;AA7C3B,QAAA,IAAAA,GAAAA;AA8Cc,QAAA,GAAA,CAAA,CAAIA,IAAAA,EAAA,IAAA,CAAK,MAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAAA,GAAAA,CAAa,KAAA,EAAO;AACtB,UAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,CAAA;AAAA,QACpB;AAAA,MACF;AAAA,IAAA,CAAA;AAAA,IACD;AAAA,EAED,CAEJ,CAAA,kBAEA,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAY,CACf,CAAA;AAEJ;ADfA;AACA;AACE;AACF,gCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-4FD63HEQ.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { NavMenus } from './nav-menus';\nimport { NavUser, INavUser, INavUserMenuItem } from './nav-user';\nimport { ContextSwitcher, INavContext } from './context-switcher';\nimport { INavMenu } from './nav-menus';\nimport { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarRail } from '../../components/ui/sidebar';\nimport { Button } from '../../components/ui/button';\nimport { cn } from '../../lib/utils';\n\nexport interface ISidebarData {\n user?: INavUser;\n contexts: INavContext[];\n menus: INavMenu[];\n userMenus: INavUserMenuItem[];\n events?: {\n login?: () => void;\n logout?: (user: INavUser) => void;\n };\n}\n\nexport function AppSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar> & {\n data: ISidebarData;\n aslink: React.ElementType;\n}) {\n const { data, aslink, ...rest } = props;\n\n return (\n <Sidebar collapsible=\"icon\" {...rest}>\n <SidebarHeader>\n <ContextSwitcher items={data.contexts} />\n </SidebarHeader>\n\n <SidebarContent>\n <NavMenus menus={data.menus} aslink={aslink} />\n </SidebarContent>\n\n <SidebarFooter>\n {data.user ? (\n <NavUser user={data.user} menus={data.userMenus} aslink={aslink} onLogout={data.events?.logout} />\n ) : (\n <Button\n variant=\"primary\"\n onClick={() => {\n if (data.events?.login) {\n data.events.login();\n }\n }}\n >\n Sign in\n </Button>\n )}\n </SidebarFooter>\n\n <SidebarRail />\n </Sidebar>\n );\n}\n"]}
@@ -0,0 +1,112 @@
1
+ import {
2
+ Dialog,
3
+ DialogContent
4
+ } from "./chunk-YAPKDLRQ.mjs";
5
+ import {
6
+ cn
7
+ } from "./chunk-F5XCCSBC.mjs";
8
+ import {
9
+ __objRest,
10
+ __spreadValues
11
+ } from "./chunk-YOSPWY5K.mjs";
12
+
13
+ // components/ui/command.tsx
14
+ import * as React from "react";
15
+ import { Command as CommandPrimitive } from "cmdk";
16
+ import { Search } from "lucide-react";
17
+ var Command = React.forwardRef((_a, ref) => {
18
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
19
+ return /* @__PURE__ */ React.createElement(
20
+ CommandPrimitive,
21
+ __spreadValues({
22
+ ref,
23
+ className: cn(
24
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
25
+ className
26
+ )
27
+ }, props)
28
+ );
29
+ });
30
+ Command.displayName = CommandPrimitive.displayName;
31
+ var CommandDialog = (_a) => {
32
+ var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
33
+ return /* @__PURE__ */ React.createElement(Dialog, __spreadValues({}, props), /* @__PURE__ */ React.createElement(DialogContent, { className: "overflow-hidden p-0" }, /* @__PURE__ */ React.createElement(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5" }, children)));
34
+ };
35
+ var CommandInput = React.forwardRef((_a, ref) => {
36
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
37
+ return /* @__PURE__ */ React.createElement("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "" }, /* @__PURE__ */ React.createElement(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), /* @__PURE__ */ React.createElement(
38
+ CommandPrimitive.Input,
39
+ __spreadValues({
40
+ ref,
41
+ className: cn(
42
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
43
+ className
44
+ )
45
+ }, props)
46
+ ));
47
+ });
48
+ CommandInput.displayName = CommandPrimitive.Input.displayName;
49
+ var CommandList = React.forwardRef((_a, ref) => {
50
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
51
+ return /* @__PURE__ */ React.createElement(
52
+ CommandPrimitive.List,
53
+ __spreadValues({
54
+ ref,
55
+ className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)
56
+ }, props)
57
+ );
58
+ });
59
+ CommandList.displayName = CommandPrimitive.List.displayName;
60
+ var CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(CommandPrimitive.Empty, __spreadValues({ ref, className: "py-6 text-center text-sm" }, props)));
61
+ CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
62
+ var CommandGroup = React.forwardRef((_a, ref) => {
63
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
64
+ return /* @__PURE__ */ React.createElement(
65
+ CommandPrimitive.Group,
66
+ __spreadValues({
67
+ ref,
68
+ className: cn(
69
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
70
+ className
71
+ )
72
+ }, props)
73
+ );
74
+ });
75
+ CommandGroup.displayName = CommandPrimitive.Group.displayName;
76
+ var CommandSeparator = React.forwardRef((_a, ref) => {
77
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
78
+ return /* @__PURE__ */ React.createElement(CommandPrimitive.Separator, __spreadValues({ ref, className: cn("-mx-1 h-px bg-border", className) }, props));
79
+ });
80
+ CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
81
+ var CommandItem = React.forwardRef((_a, ref) => {
82
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
83
+ return /* @__PURE__ */ React.createElement(
84
+ CommandPrimitive.Item,
85
+ __spreadValues({
86
+ ref,
87
+ className: cn(
88
+ "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
89
+ className
90
+ )
91
+ }, props)
92
+ );
93
+ });
94
+ CommandItem.displayName = CommandPrimitive.Item.displayName;
95
+ var CommandShortcut = (_a) => {
96
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
97
+ return /* @__PURE__ */ React.createElement("span", __spreadValues({ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className) }, props));
98
+ };
99
+ CommandShortcut.displayName = "CommandShortcut";
100
+
101
+ export {
102
+ Command,
103
+ CommandDialog,
104
+ CommandInput,
105
+ CommandList,
106
+ CommandEmpty,
107
+ CommandGroup,
108
+ CommandSeparator,
109
+ CommandItem,
110
+ CommandShortcut
111
+ };
112
+ //# sourceMappingURL=chunk-4XC6EXHZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/ui/command.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { type DialogProps } from '@radix-ui/react-dialog';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport { Dialog, DialogContent } from './dialog';\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />);\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n 'overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn('-mx-1 h-px bg-border', className)} {...props} />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...props} />;\n};\nCommandShortcut.displayName = 'CommandShortcut';\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],"mappings":";;;;;;;;;;;;;AACA,YAAY,WAAW;AAEvB,SAAS,WAAW,wBAAwB;AAC5C,SAAS,cAAc;AAKvB,IAAM,UAAgB,iBAGpB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAZL,IAYG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,QAAQ,cAAc,iBAAiB;AAEvC,IAAM,gBAAgB,CAAC,OAAwC;AAAxC,eAAE,WAxBzB,IAwBuB,IAAe,kBAAf,IAAe,CAAb;AACvB,SACE,oCAAC,2BAAW,QACV,oCAAC,iBAAc,WAAU,yBACvB,oCAAC,WAAQ,WAAU,iXAChB,QACH,CACF,CACF;AAEJ;AAEA,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAvCL,IAuCG,IAAgB,kBAAhB,IAAgB,CAAd;AACH,6CAAC,SAAI,WAAU,mCAAkC,sBAAmB,MAClE,oCAAC,UAAO,WAAU,oCAAmC,GACrD;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN,CACF;AAAA,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,cAAoB,iBAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA1DL,IA0DG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,mDAAmD,SAAS;AAAA,OACtE;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,eAAqB,iBAGzB,CAAC,OAAO,QAAQ,oCAAC,iBAAiB,OAAjB,iBAAuB,KAAU,WAAU,8BAA+B,MAAO,CAAE;AAEtG,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA9EL,IA8EG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,mBAAyB,iBAG7B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA9FL,IA8FG,IAAgB,kBAAhB,IAAgB,CAAd;AACH,6CAAC,iBAAiB,WAAjB,iBAA2B,KAAU,WAAW,GAAG,wBAAwB,SAAS,KAAO,MAAO;AAAA,CACpG;AACD,iBAAiB,cAAc,iBAAiB,UAAU;AAE1D,IAAM,cAAoB,iBAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAtGL,IAsGG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,kBAAkB,CAAC,OAAmE;AAAnE,eAAE,YAnH3B,IAmHyB,IAAgB,kBAAhB,IAAgB,CAAd;AACzB,SAAO,oCAAC,yBAAK,WAAW,GAAG,yDAAyD,SAAS,KAAO,MAAO;AAC7G;AACA,gBAAgB,cAAc;","names":[]}
@@ -73,4 +73,4 @@ function NavUser({
73
73
 
74
74
 
75
75
  exports.NavUser = NavUser;
76
- //# sourceMappingURL=chunk-7TCN3MNY.js.map
76
+ //# sourceMappingURL=chunk-5HD5BGK7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-5HD5BGK7.js","../layouts/sidebar1/nav-user.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-5HD5BGK7.js","sourcesContent":[null,"\"use client\";\nimport * as React from 'react';\nimport { ChevronsUpDown, LogOut, type LucideIcon } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\n\nexport interface INavUser {\n name: string;\n email: string;\n avatar: string;\n}\n\nexport interface INavUserMenuItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n onClick?: (title: string) => void;\n}\n\nexport function NavUser({\n user,\n menus = [],\n aslink: LinkComponent,\n onLogout,\n}: {\n user: INavUser;\n menus: INavUserMenuItem[];\n aslink?: React.ElementType;\n onLogout?: (user: INavUser) => void;\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n {menus.length > 0 && <DropdownMenuSeparator />}\n\n <DropdownMenuGroup>\n {menus.map((menu) => {\n const Comp = LinkComponent && menu.url ? LinkComponent : 'button';\n\n return (\n <Comp\n key={menu.title}\n to={menu.url}\n href={menu.url}\n onClick={() => menu.onClick?.(menu.title)}\n className=\"block w-full\"\n >\n <DropdownMenuItem>\n {menu.icon && <menu.icon />}\n {menu.title}\n </DropdownMenuItem>\n </Comp>\n );\n })}\n </DropdownMenuGroup>\n\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem onClick={() => onLogout(user)}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"]}
@@ -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 _chunkN4QVNSAYjs = require('./chunk-N4QVNSAY.js');
4
+ var _chunkDGYAXPSDjs = require('./chunk-DGYAXPSD.js');
5
5
 
6
6
 
7
7
 
@@ -33,10 +33,10 @@ function FormTimeInput(_a) {
33
33
  const displayText = _chunk4YSHGGKXjs.convertFromHours.call(void 0, value);
34
34
  const displayWhole = _chunk4YSHGGKXjs.convertToWholeFromHours.call(void 0, value);
35
35
  const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;
36
- return /* @__PURE__ */ _react2.default.createElement(_chunkN4QVNSAYjs.FormTextInput, _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, rest), { value, onChange: handleChange, onBlur: handleBlur, title }));
36
+ return /* @__PURE__ */ _react2.default.createElement(_chunkDGYAXPSDjs.FormTextInput, _chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {}, rest), { value, onChange: handleChange, onBlur: handleBlur, title }));
37
37
  }
38
38
 
39
39
 
40
40
 
41
41
  exports.FormTimeInput = FormTimeInput;
42
- //# sourceMappingURL=chunk-WA2Z3OWJ.js.map
42
+ //# sourceMappingURL=chunk-6KUUJF3I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-6KUUJF3I.js","../components/form/time-input.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACbA,4EAAwD;AAUjD,SAAS,aAAA,CAAc,EAAA,EAAmE;AAAnE,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,KAAA,EAAO,YAAA,EAAc,CAAA,EAAG,SAXxD,EAAA,EAW8B,EAAA,EAAuC,KAAA,EAAA,wCAAA,EAAvC,EAAuC,CAArC,OAAA,EAAwB,UAAA,CAAA,CAAA;AACtD,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;AAErC,EAAA;AACV;ADCgD;AACA;AACA;AACA","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-6KUUJF3I.js","sourcesContent":[null,"\"use client\";\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../lib/number';\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, ...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 <FormTextInput {...rest} value={value} onChange={handleChange} onBlur={handleBlur} title={title} />;\n}\n"]}
@@ -1,12 +1,12 @@
1
+ import {
2
+ NavMenus
3
+ } from "./chunk-EJQJ3BCF.mjs";
1
4
  import {
2
5
  NavUser
3
- } from "./chunk-V5IL3OBF.mjs";
6
+ } from "./chunk-DMATER3M.mjs";
4
7
  import {
5
8
  ContextSwitcher
6
- } from "./chunk-DMO25T5J.mjs";
7
- import {
8
- NavMenus
9
- } from "./chunk-R3RMWOGE.mjs";
9
+ } from "./chunk-NTYWTGYX.mjs";
10
10
  import {
11
11
  Sidebar,
12
12
  SidebarContent,
@@ -46,4 +46,4 @@ function AppSidebar(_a) {
46
46
  export {
47
47
  AppSidebar
48
48
  };
49
- //# sourceMappingURL=chunk-LPZRXLKK.mjs.map
49
+ //# sourceMappingURL=chunk-ACE5WNTU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../layouts/sidebar1/app-sidebar.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { NavMenus } from './nav-menus';\nimport { NavUser, INavUser, INavUserMenuItem } from './nav-user';\nimport { ContextSwitcher, INavContext } from './context-switcher';\nimport { INavMenu } from './nav-menus';\nimport { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarRail } from '../../components/ui/sidebar';\nimport { Button } from '../../components/ui/button';\nimport { cn } from '../../lib/utils';\n\nexport interface ISidebarData {\n user?: INavUser;\n contexts: INavContext[];\n menus: INavMenu[];\n userMenus: INavUserMenuItem[];\n events?: {\n login?: () => void;\n logout?: (user: INavUser) => void;\n };\n}\n\nexport function AppSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar> & {\n data: ISidebarData;\n aslink: React.ElementType;\n}) {\n const { data, aslink, ...rest } = props;\n\n return (\n <Sidebar collapsible=\"icon\" {...rest}>\n <SidebarHeader>\n <ContextSwitcher items={data.contexts} />\n </SidebarHeader>\n\n <SidebarContent>\n <NavMenus menus={data.menus} aslink={aslink} />\n </SidebarContent>\n\n <SidebarFooter>\n {data.user ? (\n <NavUser user={data.user} menus={data.userMenus} aslink={aslink} onLogout={data.events?.logout} />\n ) : (\n <Button\n variant=\"primary\"\n onClick={() => {\n if (data.events?.login) {\n data.events.login();\n }\n }}\n >\n Sign in\n </Button>\n )}\n </SidebarFooter>\n\n <SidebarRail />\n </Sidebar>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,YAAY,WAAW;AAoBhB,SAAS,WAAW,IAKxB;AALwB,MACtB,kBADsB,IACtB;AAtBL;AA2BE,QAAkCA,MAAA,OAA1B,QAAM,OA3BhB,IA2BoCA,KAAT,iBAASA,KAAT,CAAjB,QAAM;AAEd,SACE,oCAAC,0BAAQ,aAAY,UAAW,OAC9B,oCAAC,qBACC,oCAAC,mBAAgB,OAAO,KAAK,UAAU,CACzC,GAEA,oCAAC,sBACC,oCAAC,YAAS,OAAO,KAAK,OAAO,QAAgB,CAC/C,GAEA,oCAAC,qBACE,KAAK,OACJ,oCAAC,WAAQ,MAAM,KAAK,MAAM,OAAO,KAAK,WAAW,QAAgB,WAAU,UAAK,WAAL,mBAAa,QAAQ,IAEhG;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MAAM;AA7C3B,YAAAA;AA8Cc,aAAIA,MAAA,KAAK,WAAL,gBAAAA,IAAa,OAAO;AACtB,eAAK,OAAO,MAAM;AAAA,QACpB;AAAA,MACF;AAAA;AAAA,IACD;AAAA,EAED,CAEJ,GAEA,oCAAC,iBAAY,CACf;AAEJ;","names":["_a"]}
@@ -39,4 +39,4 @@ function FormCheckbox({
39
39
  export {
40
40
  FormCheckbox
41
41
  };
42
- //# sourceMappingURL=chunk-NJDC3RMA.mjs.map
42
+ //# sourceMappingURL=chunk-ARQYTBBZ.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 '../../lib/utils';\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('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,2BAA2B,yCAAY,OAAO,KAC/D;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":[]}
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3
+
4
+
5
+
6
+
7
+
8
+
9
+ var _chunkI64GW5SAjs = require('./chunk-I64GW5SA.js');
10
+
11
+
12
+
13
+
14
+ var _chunkNK4XTZ5Wjs = require('./chunk-NK4XTZ5W.js');
15
+
16
+
17
+ var _chunkEZZ2YCUUjs = require('./chunk-EZZ2YCUU.js');
18
+
19
+
20
+ var _chunkTUFO3JJEjs = require('./chunk-TUFO3JJE.js');
21
+
22
+
23
+ var _chunk6N4WCMTEjs = require('./chunk-6N4WCMTE.js');
24
+
25
+ // components/form/searchable-select.tsx
26
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
27
+ var _kebabCase2 = require('lodash-es/kebabCase'); var _kebabCase3 = _interopRequireDefault(_kebabCase2);
28
+ var _isString2 = require('lodash-es/isString'); var _isString3 = _interopRequireDefault(_isString2);
29
+ var _lucidereact = require('lucide-react');
30
+ function listToSelectOptions(items) {
31
+ return items.map((item) => {
32
+ return { label: item, value: item };
33
+ });
34
+ }
35
+ function FormSearchableSelect({
36
+ id,
37
+ name,
38
+ label,
39
+ placeholder = "",
40
+ data,
41
+ defaultValue,
42
+ value,
43
+ onChange,
44
+ classNames,
45
+ required,
46
+ disabled
47
+ }) {
48
+ var _a, _b;
49
+ let _options = [];
50
+ if (data.length > 0) {
51
+ if (_isString3.default.call(void 0, data[0])) {
52
+ _options = listToSelectOptions(data);
53
+ } else {
54
+ _options = data;
55
+ }
56
+ }
57
+ if (!id) id = _kebabCase3.default.call(void 0, name);
58
+ const [open, setOpen] = _react2.default.useState(false);
59
+ const [selectedValue, setSelectedValue] = _react2.default.useState((_a = value != null ? value : defaultValue) != null ? _a : "");
60
+ _react2.default.useEffect(() => {
61
+ var _a2;
62
+ setSelectedValue((_a2 = value != null ? value : defaultValue) != null ? _a2 : "");
63
+ }, [value, defaultValue]);
64
+ const handleSelect = (currentValue) => {
65
+ const newValue = currentValue === selectedValue ? "" : currentValue;
66
+ setSelectedValue(newValue);
67
+ onChange(newValue);
68
+ setOpen(false);
69
+ };
70
+ return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunk6N4WCMTEjs.cn.call(void 0, "_searchable-select", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkTUFO3JJEjs.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement(_chunkNK4XTZ5Wjs.Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ _react2.default.createElement(_chunkNK4XTZ5Wjs.PopoverTrigger, { asChild: true }, /* @__PURE__ */ _react2.default.createElement(
71
+ _chunkEZZ2YCUUjs.Button,
72
+ {
73
+ variant: "secondary",
74
+ appearance: "outline",
75
+ role: "combobox",
76
+ "aria-expanded": open,
77
+ disabled,
78
+ className: _chunk6N4WCMTEjs.cn.call(void 0, "w-full justify-between border-input!", classNames == null ? void 0 : classNames.input)
79
+ },
80
+ selectedValue ? (_b = _options.find((opt) => opt.value === selectedValue)) == null ? void 0 : _b.label : placeholder || "Select...",
81
+ /* @__PURE__ */ _react2.default.createElement(_lucidereact.ChevronsUpDown, { className: "opacity-50" })
82
+ )), /* @__PURE__ */ _react2.default.createElement(_chunkNK4XTZ5Wjs.PopoverContent, { className: "w-full p-0" }, /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.Command, null, /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.CommandInput, { placeholder: `Search ${label != null ? label : "option"}...`, className: "h-9" }), /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.CommandList, null, /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.CommandEmpty, null, "No option found."), /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.CommandGroup, null, _options.map((option) => /* @__PURE__ */ _react2.default.createElement(_chunkI64GW5SAjs.CommandItem, { key: option.value, value: option.value, onSelect: handleSelect }, option.label, /* @__PURE__ */ _react2.default.createElement(_lucidereact.Check, { className: _chunk6N4WCMTEjs.cn.call(void 0, "ml-auto", selectedValue === option.value ? "opacity-100" : "opacity-0") })))))))));
83
+ }
84
+
85
+
86
+
87
+ exports.FormSearchableSelect = FormSearchableSelect;
88
+ //# sourceMappingURL=chunk-CE4PBEIL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-CE4PBEIL.js","../components/form/searchable-select.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-CE4PBEIL.js","sourcesContent":[null,"\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\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('_searchable-select', 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"]}
@@ -68,4 +68,4 @@ function FormSelect(_a) {
68
68
  export {
69
69
  FormSelect
70
70
  };
71
- //# sourceMappingURL=chunk-MWA2HHI7.mjs.map
71
+ //# sourceMappingURL=chunk-CPGH6LBC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/form/select.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from '../ui/select';\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 FormSelectProps {\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 FormSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n ...rest\n}: FormSelectProps) {\n let _options: SelectOption[] = [];\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 return (\n <div className={cn('_select', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Select onValueChange={onChange} defaultValue={defaultValue ?? value ?? ''} value={value}>\n <SelectTrigger className=\"\">\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent className={cn(classNames?.input)}>\n {_options.map((option, index) => {\n return (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AACvB,OAAO,eAAe;AAUtB,SAAS,oBAAoB,OAAiB;AAC5C,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WAAO,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EACpC,CAAC;AACH;AAoBO,SAAS,WAAW,IAaP;AAbO,eACzB;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAhDF,IAqC2B,IAYtB,iBAZsB,IAYtB;AAAA,IAXH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAhDF,MAAAA;AAmDE,MAAI,WAA2B,CAAC;AAChC,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,SACE,oCAAC,SAAI,WAAW,GAAG,WAAW,yCAAY,OAAO,KAC9C,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF,oCAAC,UAAO,eAAe,UAAU,eAAcA,MAAA,sCAAgB,UAAhB,OAAAA,MAAyB,IAAI,SAC1E,oCAAC,iBAAc,WAAU,MACvB,oCAAC,eAAY,aAA0B,CACzC,GAEA,oCAAC,iBAAc,WAAW,GAAG,yCAAY,KAAK,KAC3C,SAAS,IAAI,CAAC,QAAQ,UAAU;AAC/B,WACE,oCAAC,cAAW,KAAK,OAAO,OAAO,OAAO,OAAO,SAC1C,OAAO,KACV;AAAA,EAEJ,CAAC,CACH,CACF,CACF;AAEJ;","names":["_a"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FormTextInput
3
- } from "./chunk-4QOQOMZB.mjs";
3
+ } from "./chunk-LXILG667.mjs";
4
4
  import {
5
5
  convertFromHours,
6
6
  convertToHours,
@@ -38,4 +38,4 @@ function FormTimeInput(_a) {
38
38
  export {
39
39
  FormTimeInput
40
40
  };
41
- //# sourceMappingURL=chunk-2WDZS5E5.mjs.map
41
+ //# sourceMappingURL=chunk-CTYAFVU5.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 { convertToHours, convertFromHours, convertToWholeFromHours } from '../../lib/number';\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, ...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 <FormTextInput {...rest} value={value} onChange={handleChange} onBlur={handleBlur} title={title} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA,OAAO,SAAS,UAAU,iBAA8B;AAUjD,SAAS,cAAc,IAAmE;AAAnE,eAAE,SAAO,cAAc,GAAG,SAXxD,IAW8B,IAAuC,iBAAvC,IAAuC,CAArC,SAAwB;AACtD,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,SAAO,oCAAC,gDAAkB,OAAlB,EAAwB,OAAc,UAAU,cAAc,QAAQ,YAAY,QAAc;AAC1G;","names":[]}
@@ -57,4 +57,4 @@ function FormTextInput(_a) {
57
57
 
58
58
 
59
59
  exports.FormTextInput = FormTextInput;
60
- //# sourceMappingURL=chunk-N4QVNSAY.js.map
60
+ //# sourceMappingURL=chunk-DGYAXPSD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-DGYAXPSD.js","../components/form/text-input.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACdA,4EAA2C;AAC3C,wGAAuB;AAOvB,IAAM,WAAA,EAAa,EAAA;AAcZ,SAAS,aAAA,CAAc,EAAA,EAUP;AAVO,EAAA,IAAA,GAAA,EAAA,EAAA,EAC5B;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EA/BhB,EAAA,EAuB8B,EAAA,EASzB,KAAA,EAAA,wCAAA,EATyB,EASzB;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;AAE7B,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,aAAG,EAAe,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAClD,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,sBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,IAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,IAAA,CAAA,EARL;AAAA,MASC,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADHA;AACA;AACE;AACF,sCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-DGYAXPSD.js","sourcesContent":[null,"\"use client\";\nimport React, { InputHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Input\n type={type}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
@@ -72,4 +72,4 @@ function NavUser({
72
72
  export {
73
73
  NavUser
74
74
  };
75
- //# sourceMappingURL=chunk-V5IL3OBF.mjs.map
75
+ //# sourceMappingURL=chunk-DMATER3M.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../layouts/sidebar1/nav-user.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { ChevronsUpDown, LogOut, type LucideIcon } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\n\nexport interface INavUser {\n name: string;\n email: string;\n avatar: string;\n}\n\nexport interface INavUserMenuItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n onClick?: (title: string) => void;\n}\n\nexport function NavUser({\n user,\n menus = [],\n aslink: LinkComponent,\n onLogout,\n}: {\n user: INavUser;\n menus: INavUserMenuItem[];\n aslink?: React.ElementType;\n onLogout?: (user: INavUser) => void;\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n {menus.length > 0 && <DropdownMenuSeparator />}\n\n <DropdownMenuGroup>\n {menus.map((menu) => {\n const Comp = LinkComponent && menu.url ? LinkComponent : 'button';\n\n return (\n <Comp\n key={menu.title}\n to={menu.url}\n href={menu.url}\n onClick={() => menu.onClick?.(menu.title)}\n className=\"block w-full\"\n >\n <DropdownMenuItem>\n {menu.icon && <menu.icon />}\n {menu.title}\n </DropdownMenuItem>\n </Comp>\n );\n })}\n </DropdownMenuGroup>\n\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem onClick={() => onLogout(user)}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,YAAY,WAAW;AACvB,SAAS,gBAAgB,cAA+B;AA0BjD,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,QAAQ;AAAA,EACR;AACF,GAKG;AACD,QAAM,EAAE,SAAS,IAAI,WAAW;AAEhC,SACE,oCAAC,mBACC,oCAAC,uBACC,oCAAC,oBACC,oCAAC,uBAAoB,SAAO,QAC1B;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA;AAAA,IAEV,oCAAC,UAAO,WAAU,wBAChB,oCAAC,eAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM,GAC/C,oCAAC,kBAAe,WAAU,gBAAa,IAAE,CAC3C;AAAA,IAEA,oCAAC,SAAI,WAAU,iDACb,oCAAC,UAAK,WAAU,4BAA0B,KAAK,IAAK,GACpD,oCAAC,UAAK,WAAU,sBAAoB,KAAK,KAAM,CACjD;AAAA,IAEA,oCAAC,kBAAe,WAAU,kBAAiB;AAAA,EAC7C,CACF,GAEA;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAM,WAAW,WAAW;AAAA,MAC5B,OAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,qBAAkB,WAAU,qBAC3B,oCAAC,SAAI,WAAU,2DACb,oCAAC,UAAO,WAAU,wBAChB,oCAAC,eAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM,GAC/C,oCAAC,kBAAe,WAAU,gBAAa,IAAE,CAC3C,GAEA,oCAAC,SAAI,WAAU,iDACb,oCAAC,UAAK,WAAU,4BAA0B,KAAK,IAAK,GACpD,oCAAC,UAAK,WAAU,sBAAoB,KAAK,KAAM,CACjD,CACF,CACF;AAAA,IACC,MAAM,SAAS,KAAK,oCAAC,2BAAsB;AAAA,IAE5C,oCAAC,yBACE,MAAM,IAAI,CAAC,SAAS;AACnB,YAAM,OAAO,iBAAiB,KAAK,MAAM,gBAAgB;AAEzD,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,KAAK;AAAA,UACV,IAAI,KAAK;AAAA,UACT,MAAM,KAAK;AAAA,UACX,SAAS,MAAG;AA9FhC;AA8FmC,8BAAK,YAAL,8BAAe,KAAK;AAAA;AAAA,UACnC,WAAU;AAAA;AAAA,QAEV,oCAAC,wBACE,KAAK,QAAQ,oCAAC,KAAK,MAAL,IAAU,GACxB,KAAK,KACR;AAAA,MACF;AAAA,IAEJ,CAAC,CACH;AAAA,IAEC,YACC,0DACE,oCAAC,2BAAsB,GAEvB,oCAAC,oBAAiB,SAAS,MAAM,SAAS,IAAI,KAC5C,oCAAC,YAAO,GAAE,SAEZ,CACF;AAAA,EAEJ,CACF,CACF,CACF;AAEJ;","names":[]}
@@ -0,0 +1,87 @@
1
+ import {
2
+ Command,
3
+ CommandEmpty,
4
+ CommandGroup,
5
+ CommandInput,
6
+ CommandItem,
7
+ CommandList
8
+ } from "./chunk-4XC6EXHZ.mjs";
9
+ import {
10
+ Popover,
11
+ PopoverContent,
12
+ PopoverTrigger
13
+ } from "./chunk-TMC4JKD5.mjs";
14
+ import {
15
+ Button
16
+ } from "./chunk-4NMFJSJN.mjs";
17
+ import {
18
+ Label
19
+ } from "./chunk-JWENANTO.mjs";
20
+ import {
21
+ cn
22
+ } from "./chunk-F5XCCSBC.mjs";
23
+
24
+ // components/form/searchable-select.tsx
25
+ import React from "react";
26
+ import _kebabCase from "lodash-es/kebabCase";
27
+ import _isString from "lodash-es/isString";
28
+ import { Check, ChevronsUpDown } from "lucide-react";
29
+ function listToSelectOptions(items) {
30
+ return items.map((item) => {
31
+ return { label: item, value: item };
32
+ });
33
+ }
34
+ function FormSearchableSelect({
35
+ id,
36
+ name,
37
+ label,
38
+ placeholder = "",
39
+ data,
40
+ defaultValue,
41
+ value,
42
+ onChange,
43
+ classNames,
44
+ required,
45
+ disabled
46
+ }) {
47
+ var _a, _b;
48
+ let _options = [];
49
+ if (data.length > 0) {
50
+ if (_isString(data[0])) {
51
+ _options = listToSelectOptions(data);
52
+ } else {
53
+ _options = data;
54
+ }
55
+ }
56
+ if (!id) id = _kebabCase(name);
57
+ const [open, setOpen] = React.useState(false);
58
+ const [selectedValue, setSelectedValue] = React.useState((_a = value != null ? value : defaultValue) != null ? _a : "");
59
+ React.useEffect(() => {
60
+ var _a2;
61
+ setSelectedValue((_a2 = value != null ? value : defaultValue) != null ? _a2 : "");
62
+ }, [value, defaultValue]);
63
+ const handleSelect = (currentValue) => {
64
+ const newValue = currentValue === selectedValue ? "" : currentValue;
65
+ setSelectedValue(newValue);
66
+ onChange(newValue);
67
+ setOpen(false);
68
+ };
69
+ return /* @__PURE__ */ React.createElement("div", { className: cn("_searchable-select", 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
+ Button,
71
+ {
72
+ variant: "secondary",
73
+ appearance: "outline",
74
+ role: "combobox",
75
+ "aria-expanded": open,
76
+ disabled,
77
+ className: cn("w-full justify-between border-input!", classNames == null ? void 0 : classNames.input)
78
+ },
79
+ selectedValue ? (_b = _options.find((opt) => opt.value === selectedValue)) == null ? void 0 : _b.label : placeholder || "Select...",
80
+ /* @__PURE__ */ React.createElement(ChevronsUpDown, { className: "opacity-50" })
81
+ )), /* @__PURE__ */ React.createElement(PopoverContent, { className: "w-full p-0" }, /* @__PURE__ */ React.createElement(Command, null, /* @__PURE__ */ React.createElement(CommandInput, { placeholder: `Search ${label != null ? label : "option"}...`, className: "h-9" }), /* @__PURE__ */ React.createElement(CommandList, null, /* @__PURE__ */ React.createElement(CommandEmpty, null, "No option found."), /* @__PURE__ */ React.createElement(CommandGroup, null, _options.map((option) => /* @__PURE__ */ React.createElement(CommandItem, { key: option.value, value: option.value, onSelect: handleSelect }, option.label, /* @__PURE__ */ React.createElement(Check, { className: cn("ml-auto", selectedValue === option.value ? "opacity-100" : "opacity-0") })))))))));
82
+ }
83
+
84
+ export {
85
+ FormSearchableSelect
86
+ };
87
+ //# sourceMappingURL=chunk-DTJ43DCW.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 '../../lib/utils';\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('_searchable-select', 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,sBAAsB,yCAAY,OAAO,KACzD,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"]}
@@ -71,4 +71,4 @@ function ContextSwitcher({
71
71
 
72
72
 
73
73
  exports.ContextSwitcher = ContextSwitcher;
74
- //# sourceMappingURL=chunk-U3HF6HPN.js.map
74
+ //# sourceMappingURL=chunk-DYUS5722.js.map