@next-degree/pickle-shared-js 0.13.7 → 0.14.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 (153) hide show
  1. package/dist/{chunk-ZZCTMR2F.cjs → chunk-2YUUVN7E.cjs} +3 -3
  2. package/dist/{chunk-ZZCTMR2F.cjs.map → chunk-2YUUVN7E.cjs.map} +1 -1
  3. package/dist/{chunk-IJV66D4K.cjs → chunk-46EFOSND.cjs} +2 -11
  4. package/dist/chunk-46EFOSND.cjs.map +1 -0
  5. package/dist/{chunk-7NP3NX67.cjs → chunk-4BGH2D62.cjs} +10 -10
  6. package/dist/chunk-4BGH2D62.cjs.map +1 -0
  7. package/dist/{chunk-YVKKQOTE.cjs → chunk-4FETL23S.cjs} +17 -14
  8. package/dist/chunk-4FETL23S.cjs.map +1 -0
  9. package/dist/chunk-5GODYRZA.js +138 -0
  10. package/dist/chunk-5GODYRZA.js.map +1 -0
  11. package/dist/{chunk-U27VO642.js → chunk-62HL22CD.js} +12 -5
  12. package/dist/chunk-62HL22CD.js.map +1 -0
  13. package/dist/chunk-6KGXXX6X.cjs +140 -0
  14. package/dist/chunk-6KGXXX6X.cjs.map +1 -0
  15. package/dist/chunk-73JL5O6N.cjs +95 -0
  16. package/dist/chunk-73JL5O6N.cjs.map +1 -0
  17. package/dist/{chunk-6EW2D7K7.cjs → chunk-7TFFAGVB.cjs} +33 -8
  18. package/dist/chunk-7TFFAGVB.cjs.map +1 -0
  19. package/dist/{chunk-SKMP4FO7.cjs → chunk-ASPUIRWU.cjs} +22 -4
  20. package/dist/chunk-ASPUIRWU.cjs.map +1 -0
  21. package/dist/{chunk-KM5XDOAL.js → chunk-AZ4V3ZLU.js} +2 -11
  22. package/dist/chunk-AZ4V3ZLU.js.map +1 -0
  23. package/dist/{chunk-LFWX5GEE.cjs → chunk-CGCGALTZ.cjs} +6 -6
  24. package/dist/{chunk-LFWX5GEE.cjs.map → chunk-CGCGALTZ.cjs.map} +1 -1
  25. package/dist/{chunk-K76RPF2X.js → chunk-CPZFINPG.js} +3 -3
  26. package/dist/{chunk-K76RPF2X.js.map → chunk-CPZFINPG.js.map} +1 -1
  27. package/dist/{chunk-LT35HARQ.cjs → chunk-EYN3RHOF.cjs} +18 -11
  28. package/dist/chunk-EYN3RHOF.cjs.map +1 -0
  29. package/dist/{chunk-3FQTSGHL.cjs → chunk-F567WG2X.cjs} +47 -35
  30. package/dist/chunk-F567WG2X.cjs.map +1 -0
  31. package/dist/{chunk-GHJACW4X.cjs → chunk-FDGHWRRP.cjs} +27 -8
  32. package/dist/chunk-FDGHWRRP.cjs.map +1 -0
  33. package/dist/{chunk-DUVGFEGU.js → chunk-G4KDEQIL.js} +28 -18
  34. package/dist/chunk-G4KDEQIL.js.map +1 -0
  35. package/dist/chunk-IPP5X4TY.js +53 -0
  36. package/dist/chunk-IPP5X4TY.js.map +1 -0
  37. package/dist/{chunk-XGQU7BQK.js → chunk-JZLJVA4I.js} +47 -35
  38. package/dist/chunk-JZLJVA4I.js.map +1 -0
  39. package/dist/{chunk-C3DCFPJC.cjs → chunk-KBAY4F7D.cjs} +23 -16
  40. package/dist/chunk-KBAY4F7D.cjs.map +1 -0
  41. package/dist/{chunk-3XO3AJR4.js → chunk-N2DDL726.js} +6 -6
  42. package/dist/chunk-N2DDL726.js.map +1 -0
  43. package/dist/{chunk-VB32IBQC.cjs → chunk-N7GS4DZD.cjs} +8 -6
  44. package/dist/chunk-N7GS4DZD.cjs.map +1 -0
  45. package/dist/{chunk-567FG76G.cjs → chunk-OXDKVZZ5.cjs} +4 -4
  46. package/dist/{chunk-567FG76G.cjs.map → chunk-OXDKVZZ5.cjs.map} +1 -1
  47. package/dist/{chunk-4E3ANVRR.js → chunk-OZJZVEF2.js} +3 -3
  48. package/dist/{chunk-4E3ANVRR.js.map → chunk-OZJZVEF2.js.map} +1 -1
  49. package/dist/{chunk-Z5PEOX6F.js → chunk-PU4O76IS.js} +12 -9
  50. package/dist/chunk-PU4O76IS.js.map +1 -0
  51. package/dist/chunk-PVW2B7IC.js +73 -0
  52. package/dist/chunk-PVW2B7IC.js.map +1 -0
  53. package/dist/{chunk-NCEXSFMC.js → chunk-QYSTBZXD.js} +3 -3
  54. package/dist/{chunk-NCEXSFMC.js.map → chunk-QYSTBZXD.js.map} +1 -1
  55. package/dist/{chunk-62OBBM7T.js → chunk-SNHRG4TY.js} +23 -16
  56. package/dist/chunk-SNHRG4TY.js.map +1 -0
  57. package/dist/{chunk-DURKKV2E.js → chunk-TXSLKNR3.js} +6 -4
  58. package/dist/chunk-TXSLKNR3.js.map +1 -0
  59. package/dist/{chunk-EV54AFL4.js → chunk-YJICO3OG.js} +27 -8
  60. package/dist/chunk-YJICO3OG.js.map +1 -0
  61. package/dist/chunk-Z77KENZ6.js +52 -0
  62. package/dist/chunk-Z77KENZ6.js.map +1 -0
  63. package/dist/{chunk-UW6NEKBF.cjs → chunk-ZLANEWSF.cjs} +28 -18
  64. package/dist/chunk-ZLANEWSF.cjs.map +1 -0
  65. package/dist/components/jobPost/JobPost.cjs +6 -6
  66. package/dist/components/jobPost/JobPost.js +5 -5
  67. package/dist/components/primitives/command.cjs +10 -10
  68. package/dist/components/primitives/command.js +1 -1
  69. package/dist/components/primitives/radio-group.cjs +3 -3
  70. package/dist/components/primitives/radio-group.d.cts +9 -1
  71. package/dist/components/primitives/radio-group.d.ts +9 -1
  72. package/dist/components/primitives/radio-group.js +1 -1
  73. package/dist/components/ui/Combobox.cjs +4 -4
  74. package/dist/components/ui/Combobox.d.cts +2 -1
  75. package/dist/components/ui/Combobox.d.ts +2 -1
  76. package/dist/components/ui/Combobox.js +3 -3
  77. package/dist/components/ui/Counter.cjs +2 -2
  78. package/dist/components/ui/Counter.d.cts +2 -2
  79. package/dist/components/ui/Counter.d.ts +2 -2
  80. package/dist/components/ui/Counter.js +1 -1
  81. package/dist/components/ui/DatePicker.cjs +2 -2
  82. package/dist/components/ui/DatePicker.d.cts +8 -3
  83. package/dist/components/ui/DatePicker.d.ts +8 -3
  84. package/dist/components/ui/DatePicker.js +1 -1
  85. package/dist/components/ui/Input.cjs +2 -2
  86. package/dist/components/ui/Input.d.cts +2 -1
  87. package/dist/components/ui/Input.d.ts +2 -1
  88. package/dist/components/ui/Input.js +1 -1
  89. package/dist/components/ui/Map/MapComponent.cjs +4 -4
  90. package/dist/components/ui/Map/MapComponent.js +3 -3
  91. package/dist/components/ui/Map/MapContent.cjs +2 -2
  92. package/dist/components/ui/Map/MapContent.js +1 -1
  93. package/dist/components/ui/Map/hooks.cjs +4 -4
  94. package/dist/components/ui/Map/hooks.js +1 -1
  95. package/dist/components/ui/Map/index.cjs +4 -4
  96. package/dist/components/ui/Map/index.js +3 -3
  97. package/dist/components/ui/PlacesQueryInput.cjs +3 -3
  98. package/dist/components/ui/PlacesQueryInput.d.cts +3 -1
  99. package/dist/components/ui/PlacesQueryInput.d.ts +3 -1
  100. package/dist/components/ui/PlacesQueryInput.js +2 -2
  101. package/dist/components/ui/Radio.cjs +3 -3
  102. package/dist/components/ui/Radio.d.cts +4 -1
  103. package/dist/components/ui/Radio.d.ts +4 -1
  104. package/dist/components/ui/Radio.js +2 -2
  105. package/dist/components/ui/Select.cjs +2 -2
  106. package/dist/components/ui/Select.d.cts +8 -1
  107. package/dist/components/ui/Select.d.ts +8 -1
  108. package/dist/components/ui/Select.js +1 -1
  109. package/dist/components/ui/Switch.cjs +2 -2
  110. package/dist/components/ui/Switch.d.cts +7 -1
  111. package/dist/components/ui/Switch.d.ts +7 -1
  112. package/dist/components/ui/Switch.js +1 -1
  113. package/dist/hooks/useDisplayText.cjs +4 -4
  114. package/dist/hooks/useDisplayText.js +3 -3
  115. package/dist/index.cjs +57 -57
  116. package/dist/index.js +25 -25
  117. package/dist/services/displayText.cjs +3 -3
  118. package/dist/services/displayText.js +2 -2
  119. package/dist/styles/globals.css +53 -26
  120. package/dist/styles/globals.css.map +1 -1
  121. package/package.json +1 -1
  122. package/dist/chunk-2I2TWTPC.js +0 -115
  123. package/dist/chunk-2I2TWTPC.js.map +0 -1
  124. package/dist/chunk-3FQTSGHL.cjs.map +0 -1
  125. package/dist/chunk-3XO3AJR4.js.map +0 -1
  126. package/dist/chunk-62OBBM7T.js.map +0 -1
  127. package/dist/chunk-6EW2D7K7.cjs.map +0 -1
  128. package/dist/chunk-7NP3NX67.cjs.map +0 -1
  129. package/dist/chunk-B7NHA4GE.js +0 -33
  130. package/dist/chunk-B7NHA4GE.js.map +0 -1
  131. package/dist/chunk-C3DCFPJC.cjs.map +0 -1
  132. package/dist/chunk-DURKKV2E.js.map +0 -1
  133. package/dist/chunk-DUVGFEGU.js.map +0 -1
  134. package/dist/chunk-EV54AFL4.js.map +0 -1
  135. package/dist/chunk-FSMBDLNU.js +0 -34
  136. package/dist/chunk-FSMBDLNU.js.map +0 -1
  137. package/dist/chunk-GHJACW4X.cjs.map +0 -1
  138. package/dist/chunk-IJV66D4K.cjs.map +0 -1
  139. package/dist/chunk-KM5XDOAL.js.map +0 -1
  140. package/dist/chunk-LT35HARQ.cjs.map +0 -1
  141. package/dist/chunk-ORVF255B.cjs +0 -55
  142. package/dist/chunk-ORVF255B.cjs.map +0 -1
  143. package/dist/chunk-SKMP4FO7.cjs.map +0 -1
  144. package/dist/chunk-U27VO642.js.map +0 -1
  145. package/dist/chunk-U7LTIWUS.js +0 -28
  146. package/dist/chunk-U7LTIWUS.js.map +0 -1
  147. package/dist/chunk-UW6NEKBF.cjs.map +0 -1
  148. package/dist/chunk-VAHZQJTA.cjs +0 -117
  149. package/dist/chunk-VAHZQJTA.cjs.map +0 -1
  150. package/dist/chunk-VB32IBQC.cjs.map +0 -1
  151. package/dist/chunk-XGQU7BQK.js.map +0 -1
  152. package/dist/chunk-YVKKQOTE.cjs.map +0 -1
  153. package/dist/chunk-Z5PEOX6F.js.map +0 -1
@@ -6,6 +6,7 @@ var chunkXO6LO5CU_cjs = require('./chunk-XO6LO5CU.cjs');
6
6
  var chunk6BFFHI2V_cjs = require('./chunk-6BFFHI2V.cjs');
7
7
  var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
8
8
  var SelectPrimitive = require('@radix-ui/react-select');
9
+ var cva = require('cva');
9
10
  var lucideReact = require('lucide-react');
10
11
  var react = require('react');
11
12
  var jsxRuntime = require('react/jsx-runtime');
@@ -43,6 +44,7 @@ var Select = react.forwardRef(
43
44
  id,
44
45
  children: footer,
45
46
  useAnchor = true,
47
+ size,
46
48
  ...props
47
49
  }, ref) => {
48
50
  const { value, defaultValue, dir, className, onChange, onOpenChange, ...rest } = props;
@@ -67,6 +69,8 @@ var Select = react.forwardRef(
67
69
  const chipLabels = selected?.map((s) => options?.find(({ value: value2 }) => value2 === s)).filter(Boolean);
68
70
  function handleChange(newValue) {
69
71
  if (newValue === "" && !multiselect) return;
72
+ const option = options?.find((opt) => opt.value === newValue);
73
+ if (option?.disabled) return;
70
74
  let newSelected = [];
71
75
  setSelected((prev) => {
72
76
  newSelected = prev.includes(newValue) ? prev.filter((item) => item !== newValue) : [...prev, newValue];
@@ -106,10 +110,7 @@ var Select = react.forwardRef(
106
110
  SelectPrimitive__namespace.Trigger,
107
111
  {
108
112
  ref,
109
- className: chunkMGWZXPMF_cjs.cn(
110
- "group flex h-11 w-full flex-row items-center justify-between gap-3 rounded-lg border px-4 py-3 text-sm font-normal focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40",
111
- classNames?.trigger
112
- ),
113
+ className: chunkMGWZXPMF_cjs.cn(triggerVariants({ size }), classNames?.trigger),
113
114
  children: [
114
115
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: /* @__PURE__ */ jsxRuntime.jsx(
115
116
  SelectPrimitive__namespace.Value,
@@ -168,17 +169,19 @@ var Select = react.forwardRef(
168
169
  ),
169
170
  /* @__PURE__ */ jsxRuntime.jsx(chunkXO6LO5CU_cjs.Separator, {})
170
171
  ] }),
171
- options?.map(({ id: id2, title, value: value2, description: description2 }) => /* @__PURE__ */ jsxRuntime.jsxs(
172
+ options?.map(({ id: id2, title, value: value2, description: description2, disabled }) => /* @__PURE__ */ jsxRuntime.jsxs(
172
173
  SelectPrimitive__namespace.Item,
173
174
  {
174
175
  value: value2,
176
+ disabled,
175
177
  className: chunkMGWZXPMF_cjs.cn(
176
178
  "group relative cursor-pointer px-4 py-2 text-left text-sm hover:bg-purple-50 focus:bg-purple-50 focus:outline-none data-[state=checked]:bg-purple-50 data-[state=checked]:pr-10 data-[state=checked]:text-purple-100",
179
+ disabled && "cursor-not-allowed opacity-50 hover:bg-transparent data-[state=checked]:bg-transparent",
177
180
  classNames?.item
178
181
  ),
179
182
  "data-state": selected.includes(value2) ? "checked" : "unchecked",
180
183
  onKeyDown: (e) => setValueOnEnter(e, value2),
181
- onClick: () => handleChange(value2),
184
+ onClick: () => !disabled && handleChange(value2),
182
185
  children: [
183
186
  /* @__PURE__ */ jsxRuntime.jsx(
184
187
  lucideReact.CheckIcon,
@@ -220,8 +223,24 @@ var Select = react.forwardRef(
220
223
  }
221
224
  );
222
225
  Select.displayName = "Select";
226
+ var triggerVariants = cva.cva(
227
+ "group flex w-full flex-row items-center justify-between gap-3 rounded-lg border border-grey-20 font-normal text-grey-80 focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40",
228
+ {
229
+ variants: {
230
+ size: {
231
+ small: "h-8 px-3 py-1 text-xs",
232
+ normal: "h-9 px-3 py-2 text-sm",
233
+ large: "h-10 px-4 py-2 text-base",
234
+ xlarge: "h-11 px-4 py-3 text-base"
235
+ }
236
+ },
237
+ defaultVariants: {
238
+ size: "normal"
239
+ }
240
+ }
241
+ );
223
242
  var Select_default = Select;
224
243
 
225
244
  exports.Select_default = Select_default;
226
- //# sourceMappingURL=chunk-GHJACW4X.cjs.map
227
- //# sourceMappingURL=chunk-GHJACW4X.cjs.map
245
+ //# sourceMappingURL=chunk-FDGHWRRP.cjs.map
246
+ //# sourceMappingURL=chunk-FDGHWRRP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Select.tsx"],"names":["forwardRef","useState","useRef","useEffect","value","jsxs","cn","jsx","Label_default","SelectPrimitive","ChevronDownIcon","Fragment","Chip_default","X","Separator","id","description","CheckIcon","ErrorMessage_default","cva"],"mappings":"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","file":"chunk-FDGHWRRP.cjs","sourcesContent":["'use client'\n\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { cva, type VariantProps } from 'cva'\nimport { CheckIcon, ChevronDownIcon, X } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type KeyboardEvent,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport { Separator } from '@/components/primitives/separator'\nimport Chip from '@/components/ui/Chip'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ntype SelectContentProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\ntype RadixAlignType = SelectContentProps['align']\n\ntype TriggerVariants = VariantProps<typeof triggerVariants>\n\ninterface Props\n extends Omit<ComponentPropsWithoutRef<'select'>, 'value' | 'onChange' | 'size'>,\n TriggerVariants {\n label?: string\n value?: string | string[]\n options?: {\n id: string | number\n value: string\n title: string\n description?: string\n disabled?: boolean\n }[]\n placeholder?: string\n multiselect?: boolean\n description?: string\n error?: string\n classNames?: {\n label?: string\n trigger?: string\n content?: string\n item?: string\n checkmark?: string\n }\n dropdownAlign?: RadixAlignType\n useAnchor?: boolean\n onChange?: (value: string | string[]) => void\n onOpenChange?: (open: boolean) => void\n}\n\nconst Select = forwardRef<HTMLButtonElement, Props>(\n (\n {\n label,\n options,\n placeholder,\n multiselect,\n description,\n classNames,\n dropdownAlign = 'start',\n error,\n id,\n children: footer,\n useAnchor = true,\n size,\n ...props\n },\n ref\n ) => {\n const { value, defaultValue, dir, className, onChange, onOpenChange, ...rest } = props\n const [selected, setSelected] = useState<string[]>([])\n const [open, setOpen] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!value) return setSelected([])\n setSelected(Array.isArray(value) ? value : [value])\n }, [value])\n\n const toggleOpen = () => setOpen((prev) => !prev)\n const closeOnEscape = (event: KeyboardEvent) => event.key === 'Escape' && setOpen(false)\n const handleOnOpenChange = (isOpen: boolean) => {\n const shouldUpdate = !multiselect || isOpen\n if (shouldUpdate) {\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n }\n const setValueOnEnter = (event: KeyboardEvent, value: string) =>\n event.key === 'Enter' && handleChange(value)\n const getLabel = () =>\n selected.map((o) => options?.find((option) => option.value === o)?.title).join(', ')\n\n const chipLabels = selected\n ?.map((s) => options?.find(({ value }) => value === s))\n .filter(Boolean)\n\n function handleChange(newValue: string) {\n if (newValue === '' && !multiselect) return // Prevent clearing single select\n // Check if the option is disabled\n const option = options?.find((opt) => opt.value === newValue)\n if (option?.disabled) return // Prevent selecting disabled options\n let newSelected: string[] = []\n setSelected((prev) => {\n newSelected = prev.includes(newValue)\n ? prev.filter((item) => item !== newValue)\n : [...prev, newValue]\n return multiselect ? newSelected : [newValue]\n })\n onChange?.(multiselect ? newSelected : newValue)\n }\n\n return (\n <div\n className={cn('flex w-full flex-col gap-1', className)}\n ref={containerRef}\n data-testid={`${(label ?? id)?.toLowerCase()}-select-element`}\n >\n <Label\n text={label}\n htmlFor={props.name}\n required={props.required}\n description={description}\n className={classNames?.label}\n />\n\n <SelectPrimitive.Root\n open={open}\n value={selected.join(',')}\n onOpenChange={handleOnOpenChange}\n onValueChange={multiselect ? undefined : handleChange}\n defaultValue={typeof defaultValue === 'string' ? defaultValue : undefined}\n dir={dir === 'rtl' ? 'rtl' : 'ltr'}\n {...rest}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(triggerVariants({ size }), classNames?.trigger)}\n >\n <span className=\"truncate\">\n <SelectPrimitive.Value\n placeholder={placeholder ?? 'Select an option'}\n aria-label={getLabel()}\n >\n {getLabel()}\n </SelectPrimitive.Value>\n </span>\n\n <ChevronDownIcon\n className=\"transform text-black group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n </SelectPrimitive.Trigger>\n\n <SelectPrimitive.Portal container={useAnchor ? containerRef.current : undefined}>\n <SelectPrimitive.Content\n hideWhenDetached\n className={cn(\n 'z-10 max-h-[var(--radix-select-content-available-height)] overflow-hidden rounded-md bg-white py-2 shadow-lg',\n 'w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)]',\n classNames?.content\n )}\n position=\"popper\"\n align={dropdownAlign}\n sideOffset={4}\n onPointerDownOutside={toggleOpen}\n onKeyDown={closeOnEscape}\n >\n <SelectPrimitive.Viewport>\n {multiselect && !!chipLabels?.length && (\n <>\n <SelectPrimitive.Group\n className=\"mb-2 flex flex-row flex-wrap gap-1 px-2\"\n data-testid=\"selected-labels\"\n >\n {chipLabels?.map(\n (chip) =>\n chip && (\n <Chip key={chip.title} size=\"small\" variant=\"primary\">\n <span>{chip.title}</span>\n <X\n size={18}\n data-testid={`chip-remove-${chip.value}`}\n className=\"cursor-pointer\"\n onClick={() => handleChange(chip.value)}\n />\n </Chip>\n )\n )}\n </SelectPrimitive.Group>\n <Separator />\n </>\n )}\n {options?.map(({ id, title, value, description, disabled }) => (\n <SelectPrimitive.Item\n key={id}\n value={value}\n disabled={disabled}\n className={cn(\n 'group relative cursor-pointer px-4 py-2 text-left text-sm hover:bg-purple-50 focus:bg-purple-50 focus:outline-none data-[state=checked]:bg-purple-50 data-[state=checked]:pr-10 data-[state=checked]:text-purple-100',\n disabled &&\n 'cursor-not-allowed opacity-50 hover:bg-transparent data-[state=checked]:bg-transparent',\n classNames?.item\n )}\n data-state={selected.includes(value) ? 'checked' : 'unchecked'}\n onKeyDown={(e) => setValueOnEnter(e, value)}\n onClick={() => !disabled && handleChange(value)}\n >\n <CheckIcon\n className={cn(\n 'absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block',\n classNames?.checkmark\n )}\n size={16}\n />\n <SelectPrimitive.ItemText>{title}</SelectPrimitive.ItemText>\n {description && (\n <span className=\"block text-sm text-grey-70\">{description}</span>\n )}\n </SelectPrimitive.Item>\n ))}\n\n {!!footer && (\n <>\n <Separator />\n <SelectPrimitive.Group\n className=\"mt-2 flex flex-row flex-wrap gap-1 px-2\"\n data-testid=\"selected-labels\"\n >\n {footer}\n </SelectPrimitive.Group>\n </>\n )}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\n\nSelect.displayName = 'Select'\n\nconst triggerVariants = cva(\n 'group flex w-full flex-row items-center justify-between gap-3 rounded-lg border border-grey-20 font-normal text-grey-80 focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40',\n {\n variants: {\n size: {\n small: 'h-8 px-3 py-1 text-xs',\n normal: 'h-9 px-3 py-2 text-sm',\n large: 'h-10 px-4 py-2 text-base',\n xlarge: 'h-11 px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n\nexport default Select\n"]}
@@ -7,7 +7,20 @@ import { forwardRef, useState, useEffect } from 'react';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
9
9
  var Counter = forwardRef(
10
- ({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
10
+ ({
11
+ label,
12
+ error,
13
+ min,
14
+ max,
15
+ step = 1,
16
+ description,
17
+ theme,
18
+ size,
19
+ value,
20
+ classNames,
21
+ onChange,
22
+ ...props
23
+ }, ref) => {
11
24
  const [count, setCount] = useState(0);
12
25
  useEffect(() => {
13
26
  setCount(value ?? 0);
@@ -69,7 +82,7 @@ var Counter = forwardRef(
69
82
  /* @__PURE__ */ jsx(
70
83
  "input",
71
84
  {
72
- className: cn(counterVariants({ theme }), classNames?.input),
85
+ className: cn(counterVariants({ theme, size }), classNames?.input),
73
86
  ref,
74
87
  value: count,
75
88
  onChange: handleChange,
@@ -96,23 +109,18 @@ var Counter = forwardRef(
96
109
  Counter.displayName = "Counter";
97
110
  var counterVariants = cva(
98
111
  [
99
- "border-input",
100
- "placeholder:text-muted-foreground",
112
+ "border",
113
+ "border-grey-20",
114
+ "placeholder:text-grey-50",
101
115
  "focus-visible:ring-ring",
102
116
  "inline-flex",
103
117
  "w-[122px]",
104
- "h-11",
105
118
  "items-center",
106
- "justify-start",
107
- "gap-3",
119
+ "justify-center",
108
120
  "rounded-lg",
109
121
  "bg-transparent",
110
- "px-3",
111
- "pt-0.5",
112
- "text-sm",
113
122
  "text-center",
114
123
  "shadow-sm",
115
- "ring-grey-50",
116
124
  "transition-colors",
117
125
  "focus-visible:outline-none",
118
126
  "focus-visible:ring-1",
@@ -129,21 +137,23 @@ var counterVariants = cva(
129
137
  {
130
138
  variants: {
131
139
  theme: {
132
- light: "text-grey-80 border",
140
+ light: "text-grey-80",
133
141
  dark: "text-white"
134
142
  },
135
- hasIcon: {
136
- false: "pl-3",
137
- true: "pl-8"
143
+ size: {
144
+ small: "h-8 px-3 py-1 text-xs",
145
+ normal: "h-9 px-3 py-2 text-sm",
146
+ large: "h-10 px-4 py-2 text-base",
147
+ xlarge: "h-11 px-4 py-3 text-base"
138
148
  }
139
149
  },
140
150
  defaultVariants: {
141
151
  theme: "light",
142
- hasIcon: false
152
+ size: "normal"
143
153
  }
144
154
  }
145
155
  );
146
156
 
147
157
  export { Counter };
148
- //# sourceMappingURL=chunk-DUVGFEGU.js.map
149
- //# sourceMappingURL=chunk-DUVGFEGU.js.map
158
+ //# sourceMappingURL=chunk-G4KDEQIL.js.map
159
+ //# sourceMappingURL=chunk-G4KDEQIL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Counter.tsx"],"names":[],"mappings":"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","file":"chunk-G4KDEQIL.js","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { Minus, Plus } from 'lucide-react'\nimport { type ChangeEvent, forwardRef, type InputHTMLAttributes, useEffect, useState } from 'react'\n\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ntype InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'>\ntype CounterVariants = VariantProps<typeof counterVariants>\ntype Props = InputProps &\n CounterVariants & {\n label?: string\n value?: number\n error?: string\n min?: number\n max?: number\n step?: number\n description?: string\n classNames?: { root?: string; input?: string; label?: string }\n onChange?: (n: number) => void\n }\n\nexport const Counter = forwardRef<HTMLInputElement, Props>(\n (\n {\n label,\n error,\n min,\n max,\n step = 1,\n description,\n theme,\n size,\n value,\n classNames,\n onChange,\n ...props\n },\n ref\n ) => {\n const [count, setCount] = useState(0)\n\n useEffect(() => {\n setCount(value ?? 0)\n }, [value])\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = parseInt(e.target.value.replace(/\\D/g, ''), 10)\n if (isNaN(newValue)) return\n if (min && newValue < min) {\n onChange?.(min)\n setCount(min)\n return\n }\n if (max && newValue > max) {\n onChange?.(max)\n setCount(max)\n return\n }\n onChange?.(newValue)\n setCount(newValue)\n }\n\n const decrement = () => {\n const proposedValue = count - step\n const newValue = Math.max(min ?? -Infinity, proposedValue)\n onChange?.(newValue)\n setCount(newValue)\n }\n\n const increment = () => {\n const proposedValue = count + step\n const newValue = Math.min(max ?? Infinity, proposedValue)\n onChange?.(newValue)\n setCount(newValue)\n }\n\n return (\n <div\n className={cn('flex w-auto flex-col gap-1', classNames?.root)}\n data-testid={`counter-wrapper-${props.id}`}\n >\n {label && (\n <Label\n text={label}\n htmlFor={props.name}\n required={props.required}\n description={description}\n className={classNames?.label}\n />\n )}\n\n <div className=\"relative flex w-[122px] flex-row items-center\">\n <button\n type=\"button\"\n className=\"absolute inset-y-0 left-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={decrement}\n >\n <Minus className=\"h-4 w-4 text-green-100\" />\n </button>\n\n <input\n className={cn(counterVariants({ theme, size }), classNames?.input)}\n ref={ref}\n value={count}\n onChange={handleChange}\n data-testid={`counter-element-${props.id}`}\n {...props}\n />\n\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={increment}\n >\n <Plus className=\"h-4 w-4 text-green-100\" />\n </button>\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\nCounter.displayName = 'Counter'\n\nconst counterVariants = cva(\n [\n 'border',\n 'border-grey-20',\n 'placeholder:text-grey-50',\n 'focus-visible:ring-ring',\n 'inline-flex',\n 'w-[122px]',\n 'items-center',\n 'justify-center',\n 'rounded-lg',\n 'bg-transparent',\n 'text-center',\n 'shadow-sm',\n 'transition-colors',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'appearance-none',\n '[&::-webkit-search-cancel-button]:appearance-none',\n '[&::-webkit-search-decoration]:appearance-none',\n '[&::-webkit-search-results-button]:appearance-none',\n '[&::-webkit-search-results-decoration]:appearance-none',\n '[&::-ms-clear]:display-none',\n '[&::-ms-reveal]:display-none',\n ],\n {\n variants: {\n theme: {\n light: 'text-grey-80',\n dark: 'text-white',\n },\n size: {\n small: 'h-8 px-3 py-1 text-xs',\n normal: 'h-9 px-3 py-2 text-sm',\n large: 'h-10 px-4 py-2 text-base',\n xlarge: 'h-11 px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n theme: 'light',\n size: 'normal',\n },\n }\n)\n"]}
@@ -0,0 +1,53 @@
1
+ import { cn } from './chunk-2FGZQI42.js';
2
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
3
+ import { cva } from 'cva';
4
+ import { forwardRef } from 'react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var radioItemVariants = cva(
8
+ "peer aspect-square rounded-full border border-grey-20 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 focus-visible:ring-ring active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-30 data-[state=checked]:border-4 data-[disabled]:border-grey-20 data-[state=checked]:border-green-90 data-[disabled]:bg-grey-10 data-[state=checked]:group-hover:border-green-80",
9
+ {
10
+ variants: {
11
+ size: {
12
+ small: "h-3",
13
+ normal: "h-4",
14
+ large: "h-5"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ size: "normal"
19
+ }
20
+ }
21
+ );
22
+ var radioLabelVariants = cva("text-grey-80 peer-data-[disabled]:text-grey-40", {
23
+ variants: {
24
+ size: {
25
+ small: "text-xs",
26
+ normal: "text-sm",
27
+ large: "text-base"
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ size: "normal"
32
+ }
33
+ });
34
+ var RadioGroup = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className, ...props, ref }));
35
+ RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
36
+ var RadioGroupItem = forwardRef(({ className, children, size, ...props }, ref) => {
37
+ return /* @__PURE__ */ jsxs("div", { className: "group flex flex-row items-center gap-2", children: [
38
+ /* @__PURE__ */ jsx(
39
+ RadioGroupPrimitive.Item,
40
+ {
41
+ ref,
42
+ className: cn(radioItemVariants({ size }), className),
43
+ ...props
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsx("label", { htmlFor: props.id, className: radioLabelVariants({ size }), children })
47
+ ] });
48
+ });
49
+ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
50
+
51
+ export { RadioGroup, RadioGroupItem };
52
+ //# sourceMappingURL=chunk-IPP5X4TY.js.map
53
+ //# sourceMappingURL=chunk-IPP5X4TY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/radio-group.tsx"],"names":[],"mappings":";;;;;;AAaA,IAAM,iBAAoB,GAAA,GAAA;AAAA,EACxB,8dAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,KAAO,EAAA,KAAA;AAAA,QACP,MAAQ,EAAA,KAAA;AAAA,QACR,KAAO,EAAA;AAAA;AACT,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,IAAM,EAAA;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,kBAAA,GAAqB,IAAI,gDAAkD,EAAA;AAAA,EAC/E,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,SAAA;AAAA,MACP,MAAQ,EAAA,SAAA;AAAA,MACR,KAAO,EAAA;AAAA;AACT,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA;AAAA;AAEV,CAAC,CAAA;AAIM,IAAM,aAAa,UAGxB,CAAA,CAAC,EAAE,SAAA,EAAW,GAAG,KAAM,EAAA,EAAG,GAC1B,qBAAA,GAAA,CAAqB,0BAApB,EAAyB,SAAA,EAAuB,GAAG,KAAA,EAAO,KAAU,CACtE;AACD,UAAA,CAAW,cAAkC,mBAAK,CAAA,IAAA,CAAA,WAAA;AAQrC,IAAA,cAAA,GAAiB,UAG5B,CAAA,CAAC,EAAE,SAAA,EAAW,UAAU,IAAM,EAAA,GAAG,KAAM,EAAA,EAAG,GAAQ,KAAA;AAClD,EACE,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,wCACb,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAqB,mBAAA,CAAA,IAAA;AAAA,MAApB;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAG,CAAA,iBAAA,CAAkB,EAAE,IAAK,EAAC,GAAG,SAAS,CAAA;AAAA,QACnD,GAAG;AAAA;AAAA,KACN;AAAA,oBACA,GAAA,CAAC,OAAM,EAAA,EAAA,OAAA,EAAS,KAAM,CAAA,EAAA,EAAI,SAAW,EAAA,kBAAA,CAAmB,EAAE,IAAA,EAAM,CAAA,EAC7D,QACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,cAAkC,mBAAK,CAAA,IAAA,CAAA,WAAA","file":"chunk-IPP5X4TY.js","sourcesContent":["'use client'\n\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { cva, type VariantProps } from 'cva'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst radioItemVariants = cva(\n 'peer aspect-square rounded-full border border-grey-20 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 focus-visible:ring-ring active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-30 data-[state=checked]:border-4 data-[disabled]:border-grey-20 data-[state=checked]:border-green-90 data-[disabled]:bg-grey-10 data-[state=checked]:group-hover:border-green-80',\n {\n variants: {\n size: {\n small: 'h-3',\n normal: 'h-4',\n large: 'h-5',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n\nconst radioLabelVariants = cva('text-grey-80 peer-data-[disabled]:text-grey-40', {\n variants: {\n size: {\n small: 'text-xs',\n normal: 'text-sm',\n large: 'text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n})\n\nexport type RadioSize = VariantProps<typeof radioItemVariants>['size']\n\nexport const RadioGroup = forwardRef<\n ElementRef<typeof RadioGroupPrimitive.Root>,\n ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Root className={className} {...props} ref={ref} />\n))\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\ntype RadioGroupItemProps = PropsWithChildren<\n ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> & {\n size?: RadioSize\n }\n>\n\nexport const RadioGroupItem = forwardRef<\n ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, children, size, ...props }, ref) => {\n return (\n <div className=\"group flex flex-row items-center gap-2\">\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(radioItemVariants({ size }), className)}\n {...props}\n />\n <label htmlFor={props.id} className={radioLabelVariants({ size })}>\n {children}\n </label>\n </div>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n"]}
@@ -10,7 +10,7 @@ import { forwardRef, useState, useEffect } from 'react';
10
10
  import { jsxs, jsx } from 'react/jsx-runtime';
11
11
 
12
12
  var DatePicker = forwardRef(
13
- ({ label, description, required, classNames, value, onChange, error, id, testId }, ref) => {
13
+ ({ label, description, required, classNames, value, onChange, error, id, testId, size }, ref) => {
14
14
  const [date, setDate] = useState(null);
15
15
  useEffect(() => {
16
16
  setDate(value ?? null);
@@ -31,7 +31,7 @@ var DatePicker = forwardRef(
31
31
  }
32
32
  ),
33
33
  /* @__PURE__ */ jsxs(Popover, { children: [
34
- /* @__PURE__ */ jsx(PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ jsxs("div", { className: cn(datePickerStyle(), classNames?.input), children: [
34
+ /* @__PURE__ */ jsx(PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ jsxs("div", { className: cn(datePickerStyle({ size }), classNames?.input), children: [
35
35
  /* @__PURE__ */ jsx(Calendar, { size: 16 }),
36
36
  date ? format(date, "MM/dd/yyyy") : "Select a date"
37
37
  ] }) }),
@@ -51,38 +51,50 @@ var DatePicker = forwardRef(
51
51
  ] });
52
52
  }
53
53
  );
54
- var datePickerStyle = cva([
55
- "placeholder:text-muted-foreground",
56
- "focus-visible:ring-ring",
57
- "inline-flex",
58
- "w-full",
59
- "h-11",
60
- "items-center",
61
- "justify-start",
62
- "gap-3",
63
- "rounded-lg",
64
- "bg-transparent",
65
- "px-3",
66
- "pt-0.5",
67
- "text-sm",
68
- "shadow-sm",
69
- "ring-grey-50",
70
- "transition-colors",
71
- "focus-visible:outline-none",
72
- "focus-visible:ring-1",
73
- "disabled:cursor-not-allowed",
74
- "disabled:opacity-50",
75
- "appearance-none",
76
- "[&::-webkit-search-cancel-button]:appearance-none",
77
- "[&::-webkit-search-decoration]:appearance-none",
78
- "[&::-webkit-search-results-button]:appearance-none",
79
- "[&::-webkit-search-results-decoration]:appearance-none",
80
- "[&::-ms-clear]:display-none",
81
- "[&::-ms-reveal]:display-none",
82
- "text-grey-80 border",
83
- "font-normal"
84
- ]);
54
+ var datePickerStyle = cva(
55
+ [
56
+ "placeholder:text-grey-50",
57
+ "focus-visible:ring-ring",
58
+ "inline-flex",
59
+ "w-full",
60
+ "items-center",
61
+ "justify-start",
62
+ "gap-3",
63
+ "rounded-lg",
64
+ "bg-transparent",
65
+ "shadow-sm",
66
+ "transition-colors",
67
+ "focus-visible:outline-none",
68
+ "focus-visible:ring-1",
69
+ "disabled:cursor-not-allowed",
70
+ "disabled:opacity-50",
71
+ "appearance-none",
72
+ "[&::-webkit-search-cancel-button]:appearance-none",
73
+ "[&::-webkit-search-decoration]:appearance-none",
74
+ "[&::-webkit-search-results-button]:appearance-none",
75
+ "[&::-webkit-search-results-decoration]:appearance-none",
76
+ "[&::-ms-clear]:display-none",
77
+ "[&::-ms-reveal]:display-none",
78
+ "text-grey-80",
79
+ "border",
80
+ "border-grey-20",
81
+ "font-normal"
82
+ ],
83
+ {
84
+ variants: {
85
+ size: {
86
+ small: "h-8 px-3 py-1 text-xs",
87
+ normal: "h-9 px-3 py-2 text-sm",
88
+ large: "h-10 px-4 py-2 text-base",
89
+ xlarge: "h-11 px-4 py-3 text-base"
90
+ }
91
+ },
92
+ defaultVariants: {
93
+ size: "normal"
94
+ }
95
+ }
96
+ );
85
97
 
86
98
  export { DatePicker };
87
- //# sourceMappingURL=chunk-XGQU7BQK.js.map
88
- //# sourceMappingURL=chunk-XGQU7BQK.js.map
99
+ //# sourceMappingURL=chunk-JZLJVA4I.js.map
100
+ //# sourceMappingURL=chunk-JZLJVA4I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/DatePicker.tsx"],"names":["CalendarIcon","Calendar"],"mappings":"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","file":"chunk-JZLJVA4I.js","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { format } from 'date-fns'\nimport { Calendar as CalendarIcon } from 'lucide-react'\nimport { forwardRef, useEffect, useState } from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Calendar } from '@/components/ui/calendar'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ntype DatePickerVariants = VariantProps<typeof datePickerStyle>\n\ntype Props = DatePickerVariants & {\n label?: string\n description?: string\n required?: boolean\n id?: string\n classNames?: {\n label?: string\n input?: string\n calendar?: string\n }\n value?: Date | null\n onChange?: (date: Date) => void\n error?: string\n testId?: string\n}\n\nexport const DatePicker = forwardRef<HTMLInputElement, Props>(\n ({ label, description, required, classNames, value, onChange, error, id, testId, size }, ref) => {\n const [date, setDate] = useState<Date | null>(null)\n\n useEffect(() => {\n setDate(value ?? null)\n }, [value])\n\n const handleDateSelect = (dateSelected: Date | undefined) => {\n if (!dateSelected) return\n onChange?.(dateSelected)\n setDate(dateSelected)\n }\n\n return (\n <div id={id} className={cn('flex w-auto flex-col gap-1')}>\n {label && (\n <Label\n text={label}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n <Popover>\n <PopoverTrigger data-testid={testId}>\n <div className={cn(datePickerStyle({ size }), classNames?.input)}>\n <CalendarIcon size={16} />\n {date ? format(date, 'MM/dd/yyyy') : 'Select a date'}\n </div>\n </PopoverTrigger>\n <PopoverContent ref={ref}>\n <Calendar\n mode=\"single\"\n selected={date || undefined}\n onSelect={handleDateSelect}\n captionLayout=\"dropdown\"\n showOutsideDays={true}\n className={classNames?.calendar}\n />\n </PopoverContent>\n </Popover>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\n\nconst datePickerStyle = cva(\n [\n 'placeholder:text-grey-50',\n 'focus-visible:ring-ring',\n 'inline-flex',\n 'w-full',\n 'items-center',\n 'justify-start',\n 'gap-3',\n 'rounded-lg',\n 'bg-transparent',\n 'shadow-sm',\n 'transition-colors',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'appearance-none',\n '[&::-webkit-search-cancel-button]:appearance-none',\n '[&::-webkit-search-decoration]:appearance-none',\n '[&::-webkit-search-results-button]:appearance-none',\n '[&::-webkit-search-results-decoration]:appearance-none',\n '[&::-ms-clear]:display-none',\n '[&::-ms-reveal]:display-none',\n 'text-grey-80',\n 'border',\n 'border-grey-20',\n 'font-normal',\n ],\n {\n variants: {\n size: {\n small: 'h-8 px-3 py-1 text-xs',\n normal: 'h-9 px-3 py-2 text-sm',\n large: 'h-10 px-4 py-2 text-base',\n xlarge: 'h-11 px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n"]}
@@ -42,20 +42,27 @@ Command.displayName = cmdk.Command.displayName;
42
42
  var CommandDialog = ({ children, ...props }) => {
43
43
  return /* @__PURE__ */ jsxRuntime.jsx(chunkP6ZEOB4L_cjs.Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx(chunkP6ZEOB4L_cjs.DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 [&_[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 }) }) });
44
44
  };
45
- var CommandInput = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "m-1 flex items-center rounded-xl border px-3", "cmdk-input-wrapper": "", children: [
46
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
47
- /* @__PURE__ */ jsxRuntime.jsx(
48
- cmdk.Command.Input,
49
- {
50
- ref,
51
- className: chunkMGWZXPMF_cjs.cn(
52
- "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50",
53
- className
54
- ),
55
- ...props
56
- }
57
- )
58
- ] }));
45
+ var CommandInput = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
46
+ "div",
47
+ {
48
+ className: "m-1 flex items-center rounded-lg border border-grey-20 px-3",
49
+ "cmdk-input-wrapper": "",
50
+ children: [
51
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
52
+ /* @__PURE__ */ jsxRuntime.jsx(
53
+ cmdk.Command.Input,
54
+ {
55
+ ref,
56
+ className: chunkMGWZXPMF_cjs.cn(
57
+ "flex h-9 w-full rounded-md bg-transparent py-2 text-sm text-grey-80 outline-none placeholder:text-grey-50 disabled:cursor-not-allowed disabled:opacity-50",
58
+ className
59
+ ),
60
+ ...props
61
+ }
62
+ )
63
+ ]
64
+ }
65
+ ));
59
66
  CommandInput.displayName = cmdk.Command.Input.displayName;
60
67
  var CommandList = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
61
68
  cmdk.Command.List,
@@ -121,5 +128,5 @@ exports.CommandItem = CommandItem;
121
128
  exports.CommandList = CommandList;
122
129
  exports.CommandSeparator = CommandSeparator;
123
130
  exports.CommandShortcut = CommandShortcut;
124
- //# sourceMappingURL=chunk-C3DCFPJC.cjs.map
125
- //# sourceMappingURL=chunk-C3DCFPJC.cjs.map
131
+ //# sourceMappingURL=chunk-KBAY4F7D.cjs.map
132
+ //# sourceMappingURL=chunk-KBAY4F7D.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/command.tsx"],"names":["React","jsx","CommandPrimitive","cn","Dialog","DialogContent","jsxs","Search"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,IAAA,OAAA,GAAgBA,4BAGpB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAACC,YAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAAC,oBAAA;AAAA,MACT,kFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,OAAA,CAAQ,cAAcD,YAAiB,CAAA,WAAA;AAIvC,IAAM,gBAAgB,CAAC,EAAE,QAAU,EAAA,GAAG,OAAgC,KAAA;AACpE,EAAA,uBACGD,cAAA,CAAAG,wBAAA,EAAA,EAAQ,GAAG,KAAA,EACV,yCAACC,+BAAc,EAAA,EAAA,SAAA,EAAU,+BACvB,EAAA,QAAA,kBAAAJ,cAAA,CAAC,OAAQ,EAAA,EAAA,SAAA,EAAU,wWAChB,EAAA,QAAA,EACH,GACF,CACF,EAAA,CAAA;AAEJ;AAEM,IAAA,YAAA,GAAqBD,4BAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAM,eAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAU,EAAA,6DAAA;AAAA,IACV,oBAAmB,EAAA,EAAA;AAAA,IAEnB,QAAA,EAAA;AAAA,sBAACL,cAAA,CAAAM,kBAAA,EAAA,EAAO,WAAU,kCAAmC,EAAA,CAAA;AAAA,sBACrDN,cAAA;AAAA,QAACC,YAAiB,CAAA,KAAA;AAAA,QAAjB;AAAA,UACC,GAAA;AAAA,UACA,SAAW,EAAAC,oBAAA;AAAA,YACT,2JAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA;AACF,CACD;AAED,YAAa,CAAA,WAAA,GAAcD,aAAiB,KAAM,CAAA,WAAA;AAE5C,IAAA,WAAA,GAAoBF,4BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAACC,YAAiB,CAAA,IAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,oBAAG,CAAA,mCAAA,EAAqC,SAAS,CAAA;AAAA,IAC3D,GAAG;AAAA;AACN,CACD;AAED,WAAY,CAAA,WAAA,GAAcD,aAAiB,IAAK,CAAA,WAAA;AAEhD,IAAM,YAAqB,GAAAF,gBAAA,CAAA,UAAA,CAGzB,CAAC,KAAA,EAAO,wBACPC,cAAA,CAAAC,YAAA,CAAiB,KAAjB,EAAA,EAAuB,GAAU,EAAA,SAAA,EAAU,0BAA4B,EAAA,GAAG,OAAO,CACnF;AAED,YAAa,CAAA,WAAA,GAAcA,aAAiB,KAAM,CAAA,WAAA;AAE5C,IAAA,YAAA,GAAqBF,4BAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAACC,YAAiB,CAAA,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAAC,oBAAA;AAAA,MACT,oNAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,YAAa,CAAA,WAAA,GAAcD,aAAiB,KAAM,CAAA,WAAA;AAE5C,IAAA,gBAAA,GAAyBF,4BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAACC,YAAiB,CAAA,SAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,oBAAG,CAAA,2BAAA,EAA6B,SAAS,CAAA;AAAA,IACnD,GAAG;AAAA;AACN,CACD;AACD,gBAAiB,CAAA,WAAA,GAAcD,aAAiB,SAAU,CAAA,WAAA;AAEpD,IAAA,WAAA,GAAoBF,4BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAC,cAAA;AAAA,EAACC,YAAiB,CAAA,IAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAAC,oBAAA;AAAA,MACT,wPAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,WAAY,CAAA,WAAA,GAAcD,aAAiB,IAAK,CAAA,WAAA;AAEhD,IAAM,kBAAkB,CAAC,EAAE,SAAW,EAAA,GAAG,OAAmD,KAAA;AAC1F,EACE,uBAAAD,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWE,oBAAG,CAAA,kDAAA,EAAoD,SAAS,CAAA;AAAA,MAC1E,GAAG;AAAA;AAAA,GACN;AAEJ;AACA,eAAA,CAAgB,WAAc,GAAA,iBAAA","file":"chunk-KBAY4F7D.cjs","sourcesContent":["'use client'\n\nimport { type DialogProps } from '@radix-ui/react-dialog'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { Search } from 'lucide-react'\nimport * as React from 'react'\n\nimport { Dialog, DialogContent } from '@/components/primitives/dialog'\nimport { cn } from '@/lib/utils'\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-xl bg-white text-neutral-950',\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ntype CommandDialogProps = DialogProps\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 [&_[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\n className=\"m-1 flex items-center rounded-lg border border-grey-20 px-3\"\n cmdk-input-wrapper=\"\"\n >\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-9 w-full rounded-md bg-transparent py-2 text-sm text-grey-80 outline-none placeholder:text-grey-50 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('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) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\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-neutral-950 [&_[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-neutral-500',\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\n ref={ref}\n className={cn('-mx-1 h-px bg-neutral-200', className)}\n {...props}\n />\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-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-neutral-500', className)}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { MapContent } from './chunk-KM5XDOAL.js';
2
- import { useMapBounds, useZoomLevel, useClusters } from './chunk-FSMBDLNU.js';
1
+ import { MapContent } from './chunk-AZ4V3ZLU.js';
2
+ import { useMapBounds, useZoomLevel, useClusters } from './chunk-Z77KENZ6.js';
3
3
  import { getCenterForCoordinates, getZoomForCoordinates } from './chunk-5H35ZVLR.js';
4
4
  import { DEFAULT_ZOOM, DEFAULT_POSITION } from './chunk-LQQ244AY.js';
5
5
  import { APIProvider } from '@vis.gl/react-google-maps';
@@ -20,8 +20,8 @@ function MapComponent({
20
20
  const { bounds, setBounds } = useMapBounds(coordinates);
21
21
  const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM);
22
22
  const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel);
23
- const mapCenter = coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) : position || DEFAULT_POSITION;
24
- const mapZoom = coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) : position ? zoom : DEFAULT_ZOOM;
23
+ const mapCenter = position ? position : coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) : DEFAULT_POSITION;
24
+ const mapZoom = position ? zoom : coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) : DEFAULT_ZOOM;
25
25
  return /* @__PURE__ */ jsx(APIProvider, { apiKey, children: /* @__PURE__ */ jsx(
26
26
  MapContent,
27
27
  {
@@ -44,5 +44,5 @@ function MapComponent({
44
44
  }
45
45
 
46
46
  export { MapComponent };
47
- //# sourceMappingURL=chunk-3XO3AJR4.js.map
48
- //# sourceMappingURL=chunk-3XO3AJR4.js.map
47
+ //# sourceMappingURL=chunk-N2DDL726.js.map
48
+ //# sourceMappingURL=chunk-N2DDL726.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Map/MapComponent.tsx"],"names":[],"mappings":";;;;;;;AAUO,SAAS,YAA0B,CAAA;AAAA,EACxC,MAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAO,GAAA;AACT,CAAmC,EAAA;AACjC,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAU,EAAA,GAAI,aAAa,WAAW,CAAA;AACtD,EAAA,MAAM,EAAE,SAAW,EAAA,YAAA,EAAiB,GAAA,YAAA,CAAa,QAAQ,YAAY,CAAA;AACrE,EAAA,MAAM,EAAE,QAAU,EAAA,YAAA,KAAiB,WAAY,CAAA,WAAA,EAAa,QAAQ,SAAS,CAAA;AAE7E,EAAM,MAAA,SAAA,GAAY,WACd,QACA,GAAA,WAAA,IAAe,YAAY,MAAS,GAAA,CAAA,GAClC,uBAAwB,CAAA,WAAW,CACnC,GAAA,gBAAA;AAEN,EAAM,MAAA,OAAA,GAAU,QACZ,GAAA,IAAA,GACA,WAAe,IAAA,WAAA,CAAY,SAAS,CAClC,GAAA,qBAAA,CAAsB,WAAa,EAAA,IAAI,CACvC,GAAA,YAAA;AAEN,EACE,uBAAA,GAAA,CAAC,eAAY,MACX,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA;AAAA,GAEJ,EAAA,CAAA;AAEJ","file":"chunk-N2DDL726.js","sourcesContent":["'use client'\n\nimport { APIProvider } from '@vis.gl/react-google-maps'\n\nimport { DEFAULT_POSITION, DEFAULT_ZOOM } from '@/components/ui/Map/constants'\nimport { useClusters, useMapBounds, useZoomLevel } from '@/components/ui/Map/hooks'\nimport { MapContent } from '@/components/ui/Map/MapContent'\nimport type { MapComponentProps, PinData } from '@/components/ui/Map/types'\nimport { getCenterForCoordinates, getZoomForCoordinates } from '@/components/ui/Map/utils'\n\nexport function MapComponent<T = PinData>({\n apiKey,\n mapId,\n position,\n coordinates,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n zoom = 10,\n}: Readonly<MapComponentProps<T>>) {\n const { bounds, setBounds } = useMapBounds(coordinates)\n const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM)\n const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel)\n\n const mapCenter = position\n ? position\n : coordinates && coordinates.length > 0\n ? getCenterForCoordinates(coordinates)\n : DEFAULT_POSITION\n\n const mapZoom = position\n ? zoom\n : coordinates && coordinates.length > 1\n ? getZoomForCoordinates(coordinates, zoom)\n : DEFAULT_ZOOM\n\n return (\n <APIProvider apiKey={apiKey}>\n <MapContent\n mapId={mapId}\n mapCenter={mapCenter}\n mapZoom={mapZoom}\n position={position}\n coordinates={coordinates}\n clusters={clusters}\n supercluster={supercluster}\n onPinHover={onPinHover}\n onPinClick={onPinClick}\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n className={className}\n setBounds={setBounds}\n setZoomLevel={setZoomLevel}\n />\n </APIProvider>\n )\n}\n"]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkXWQI5MC3_cjs = require('./chunk-XWQI5MC3.cjs');
4
4
  var chunkLTJXX7NG_cjs = require('./chunk-LTJXX7NG.cjs');
5
- var chunk6EW2D7K7_cjs = require('./chunk-6EW2D7K7.cjs');
5
+ var chunk7TFFAGVB_cjs = require('./chunk-7TFFAGVB.cjs');
6
6
  var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
7
7
  var react = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
@@ -16,27 +16,29 @@ var Radio = react.forwardRef(
16
16
  classNames,
17
17
  onChange: handleValueChange,
18
18
  orientation,
19
+ size,
19
20
  ...props
20
21
  }, ref) => {
21
22
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkMGWZXPMF_cjs.cn("flex flex-col gap-1", classNames?.root), children: [
22
23
  /* @__PURE__ */ jsxRuntime.jsx(chunkXWQI5MC3_cjs.Label_default, { text: label, description, required: props.required }),
23
24
  /* @__PURE__ */ jsxRuntime.jsx(
24
- chunk6EW2D7K7_cjs.RadioGroup,
25
+ chunk7TFFAGVB_cjs.RadioGroup,
25
26
  {
26
27
  ref,
27
28
  className: chunkMGWZXPMF_cjs.cn(
28
- "flex text-sm",
29
+ "flex",
29
30
  orientation === "vertical" ? "flex-col gap-2" : "flex-row gap-4",
30
31
  classNames?.group
31
32
  ),
32
33
  onValueChange: handleValueChange,
33
34
  ...props,
34
35
  children: options?.map(({ id, title, value }) => /* @__PURE__ */ jsxRuntime.jsx(
35
- chunk6EW2D7K7_cjs.RadioGroupItem,
36
+ chunk7TFFAGVB_cjs.RadioGroupItem,
36
37
  {
37
38
  value,
38
39
  id: `radio-group-item-${title}`,
39
40
  className: classNames?.item,
41
+ size,
40
42
  children: title
41
43
  },
42
44
  id
@@ -50,5 +52,5 @@ var Radio = react.forwardRef(
50
52
  Radio.displayName = "Radio";
51
53
 
52
54
  exports.Radio = Radio;
53
- //# sourceMappingURL=chunk-VB32IBQC.cjs.map
54
- //# sourceMappingURL=chunk-VB32IBQC.cjs.map
55
+ //# sourceMappingURL=chunk-N7GS4DZD.cjs.map
56
+ //# sourceMappingURL=chunk-N7GS4DZD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Radio.tsx"],"names":["forwardRef","cn","jsx","Label_default","RadioGroup","RadioGroupItem","ErrorMessage_default"],"mappings":";;;;;;;;;AAoBO,IAAM,KAAQ,GAAAA,gBAAA;AAAA,EACnB,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAU,EAAA,iBAAA;AAAA,IACV,WAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAG;AAAA,KAEL,GACG,KAAA;AACH,IAAA,uCACG,KAAI,EAAA,EAAA,SAAA,EAAWC,qBAAG,qBAAuB,EAAA,UAAA,EAAY,IAAI,CACxD,EAAA,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAACC,mCAAM,IAAM,EAAA,KAAA,EAAO,WAA0B,EAAA,QAAA,EAAU,MAAM,QAAU,EAAA,CAAA;AAAA,sBAExED,cAAA;AAAA,QAACE,4BAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAW,EAAAH,oBAAA;AAAA,YACT,MAAA;AAAA,YACA,WAAA,KAAgB,aAAa,gBAAmB,GAAA,gBAAA;AAAA,YAChD,UAAY,EAAA;AAAA,WACd;AAAA,UACA,aAAe,EAAA,iBAAA;AAAA,UACd,GAAG,KAAA;AAAA,UAEH,mBAAS,GAAI,CAAA,CAAC,EAAE,EAAI,EAAA,KAAA,EAAO,OAC1B,qBAAAC,cAAA;AAAA,YAACG,gCAAA;AAAA,YAAA;AAAA,cAEC,KAAA;AAAA,cACA,EAAA,EAAI,oBAAoB,KAAK,CAAA,CAAA;AAAA,cAC7B,WAAW,UAAY,EAAA,IAAA;AAAA,cACvB,IAAA;AAAA,cAEC,QAAA,EAAA;AAAA,aAAA;AAAA,YANI;AAAA,WAQR;AAAA;AAAA,OACH;AAAA,sBAEAH,cAAA,CAACI,sCAAa,EAAA,EAAA,OAAA,EAAS,KAAO,EAAA;AAAA,KAChC,EAAA,CAAA;AAAA;AAGN;AACA,KAAA,CAAM,WAAc,GAAA,OAAA","file":"chunk-N7GS4DZD.cjs","sourcesContent":["import { type ComponentProps, forwardRef } from 'react'\n\nimport { RadioGroup, RadioGroupItem, type RadioSize } from '@/components/primitives/radio-group'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ntype RadioItem = { id: string | number; title: string; value: string }\ntype RadioClassNames = { root?: string; group?: string; item?: string }\ntype RadioGroupProps = Omit<ComponentProps<typeof RadioGroup>, 'onValueChange'>\nexport type RadioProps = RadioGroupProps & {\n label?: string\n error?: string\n description?: string\n classNames?: RadioClassNames\n options?: RadioItem[]\n onChange?: (value: string) => void\n size?: RadioSize\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n label,\n error,\n description,\n options,\n classNames,\n onChange: handleValueChange,\n orientation,\n size,\n ...props\n },\n ref\n ) => {\n return (\n <div className={cn('flex flex-col gap-1', classNames?.root)}>\n <Label text={label} description={description} required={props.required} />\n\n <RadioGroup\n ref={ref}\n className={cn(\n 'flex',\n orientation === 'vertical' ? 'flex-col gap-2' : 'flex-row gap-4',\n classNames?.group\n )}\n onValueChange={handleValueChange}\n {...props}\n >\n {options?.map(({ id, title, value }) => (\n <RadioGroupItem\n key={id}\n value={value}\n id={`radio-group-item-${title}`}\n className={classNames?.item}\n size={size}\n >\n {title}\n </RadioGroupItem>\n ))}\n </RadioGroup>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\nRadio.displayName = 'Radio'\n"]}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkZZCTMR2F_cjs = require('./chunk-ZZCTMR2F.cjs');
3
+ var chunk2YUUVN7E_cjs = require('./chunk-2YUUVN7E.cjs');
4
4
  var chunkXUTLQ573_cjs = require('./chunk-XUTLQ573.cjs');
5
5
  var react = require('react');
6
6
 
7
7
  var useDisplayText = (scope, value) => {
8
8
  const [displayText, setDisplayText] = react.useState("");
9
- const displayService = react.useMemo(() => new chunkZZCTMR2F_cjs.DisplayTextService(), []);
9
+ const displayService = react.useMemo(() => new chunk2YUUVN7E_cjs.DisplayTextService(), []);
10
10
  react.useEffect(() => {
11
11
  if (!displayService || !value) {
12
12
  setDisplayText("");
@@ -35,5 +35,5 @@ var useDisplayText = (scope, value) => {
35
35
  };
36
36
 
37
37
  exports.useDisplayText = useDisplayText;
38
- //# sourceMappingURL=chunk-567FG76G.cjs.map
39
- //# sourceMappingURL=chunk-567FG76G.cjs.map
38
+ //# sourceMappingURL=chunk-OXDKVZZ5.cjs.map
39
+ //# sourceMappingURL=chunk-OXDKVZZ5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useDisplayText.ts"],"names":["useState","useMemo","DisplayTextService","useEffect","DisplayTextValueNotFoundError"],"mappings":";;;;;;AAKa,IAAA,cAAA,GAAiB,CAC5B,KAAA,EACA,KACG,KAAA;AACH,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,eAAS,EAAE,CAAA;AACjD,EAAA,MAAM,iBAAiBC,aAAQ,CAAA,MAAM,IAAIC,oCAAmB,EAAA,EAAG,EAAE,CAAA;AAEjE,EAAAC,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,cAAkB,IAAA,CAAC,KAAO,EAAA;AAC7B,MAAA,cAAA,CAAe,EAAE,CAAA;AACjB,MAAA;AAAA;AAEF,IAAA,KAAA,CAAM,YAAY;AAChB,MAAI,IAAA;AACF,QAAA,MAAM,MAAS,GAAA,MAAM,cAAe,CAAA,cAAA,CAAe,OAAO,KAAK,CAAA;AAC/D,QAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,UAAA,cAAA,CAAe,MAAM,CAAA;AAAA,SAChB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,sCAAsC,MAAM,CAAA;AAAA;AAC5D,eACO,KAAO,EAAA;AACd,QAAA,IAAI,iBAAiBC,+CAA+B,EAAA;AAClD,UAAQ,OAAA,CAAA,IAAA,CAAK,iCAAiC,KAAK,CAAA;AACnD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AACxD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAC9B;AACF,KACC,GAAA;AAAA,GACF,EAAA,CAAC,KAAO,EAAA,KAAA,EAAO,cAAc,CAAC,CAAA;AAEjC,EAAO,OAAA,WAAA;AACT","file":"chunk-567FG76G.cjs","sourcesContent":["import { useEffect, useMemo, useState } from 'react'\n\nimport { DisplayTextService, type ServiceMappings } from '@/services/displayText'\nimport { DisplayTextValueNotFoundError } from '@/types/displayText.errors'\n\nexport const useDisplayText = (\n scope: keyof ServiceMappings,\n value: string | string[] | undefined | null\n) => {\n const [displayText, setDisplayText] = useState('')\n const displayService = useMemo(() => new DisplayTextService(), [])\n\n useEffect(() => {\n if (!displayService || !value) {\n setDisplayText('')\n return\n }\n void (async () => {\n try {\n const result = await displayService.getDisplayText(scope, value)\n if (typeof result === 'string') {\n setDisplayText(result)\n } else {\n console.error('Expected a string result, but got:', result)\n }\n } catch (error) {\n if (error instanceof DisplayTextValueNotFoundError) {\n console.warn('Display text value not found:', value)\n setDisplayText(String(value))\n } else {\n console.error('Unexpected error formatting text:', error)\n setDisplayText(String(value))\n }\n }\n })()\n }, [scope, value, displayService])\n\n return displayText\n}\n"]}
1
+ {"version":3,"sources":["../src/hooks/useDisplayText.ts"],"names":["useState","useMemo","DisplayTextService","useEffect","DisplayTextValueNotFoundError"],"mappings":";;;;;;AAKa,IAAA,cAAA,GAAiB,CAC5B,KAAA,EACA,KACG,KAAA;AACH,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,eAAS,EAAE,CAAA;AACjD,EAAA,MAAM,iBAAiBC,aAAQ,CAAA,MAAM,IAAIC,oCAAmB,EAAA,EAAG,EAAE,CAAA;AAEjE,EAAAC,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,cAAkB,IAAA,CAAC,KAAO,EAAA;AAC7B,MAAA,cAAA,CAAe,EAAE,CAAA;AACjB,MAAA;AAAA;AAEF,IAAA,KAAA,CAAM,YAAY;AAChB,MAAI,IAAA;AACF,QAAA,MAAM,MAAS,GAAA,MAAM,cAAe,CAAA,cAAA,CAAe,OAAO,KAAK,CAAA;AAC/D,QAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,UAAA,cAAA,CAAe,MAAM,CAAA;AAAA,SAChB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,sCAAsC,MAAM,CAAA;AAAA;AAC5D,eACO,KAAO,EAAA;AACd,QAAA,IAAI,iBAAiBC,+CAA+B,EAAA;AAClD,UAAQ,OAAA,CAAA,IAAA,CAAK,iCAAiC,KAAK,CAAA;AACnD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AACxD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAC9B;AACF,KACC,GAAA;AAAA,GACF,EAAA,CAAC,KAAO,EAAA,KAAA,EAAO,cAAc,CAAC,CAAA;AAEjC,EAAO,OAAA,WAAA;AACT","file":"chunk-OXDKVZZ5.cjs","sourcesContent":["import { useEffect, useMemo, useState } from 'react'\n\nimport { DisplayTextService, type ServiceMappings } from '@/services/displayText'\nimport { DisplayTextValueNotFoundError } from '@/types/displayText.errors'\n\nexport const useDisplayText = (\n scope: keyof ServiceMappings,\n value: string | string[] | undefined | null\n) => {\n const [displayText, setDisplayText] = useState('')\n const displayService = useMemo(() => new DisplayTextService(), [])\n\n useEffect(() => {\n if (!displayService || !value) {\n setDisplayText('')\n return\n }\n void (async () => {\n try {\n const result = await displayService.getDisplayText(scope, value)\n if (typeof result === 'string') {\n setDisplayText(result)\n } else {\n console.error('Expected a string result, but got:', result)\n }\n } catch (error) {\n if (error instanceof DisplayTextValueNotFoundError) {\n console.warn('Display text value not found:', value)\n setDisplayText(String(value))\n } else {\n console.error('Unexpected error formatting text:', error)\n setDisplayText(String(value))\n }\n }\n })()\n }, [scope, value, displayService])\n\n return displayText\n}\n"]}