@next-degree/pickle-shared-js 0.15.2 → 0.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/{chunk-VBLDMVVW.cjs → chunk-2XIO3WQ2.cjs} +4 -4
  2. package/dist/{chunk-VBLDMVVW.cjs.map → chunk-2XIO3WQ2.cjs.map} +1 -1
  3. package/dist/{chunk-ZZCTMR2F.cjs → chunk-2YUUVN7E.cjs} +3 -3
  4. package/dist/{chunk-ZZCTMR2F.cjs.map → chunk-2YUUVN7E.cjs.map} +1 -1
  5. package/dist/{chunk-QRMNGILI.cjs → chunk-4F2PRKMM.cjs} +4 -4
  6. package/dist/{chunk-QRMNGILI.cjs.map → chunk-4F2PRKMM.cjs.map} +1 -1
  7. package/dist/{chunk-NCEXSFMC.js → chunk-556GH3CB.js} +4 -4
  8. package/dist/{chunk-NCEXSFMC.js.map → chunk-556GH3CB.js.map} +1 -1
  9. package/dist/{chunk-F3FYMCRO.js → chunk-5IFDS3CJ.js} +3 -3
  10. package/dist/{chunk-F3FYMCRO.js.map → chunk-5IFDS3CJ.js.map} +1 -1
  11. package/dist/{chunk-5EUHR4DQ.cjs → chunk-7PVEU6NQ.cjs} +13 -13
  12. package/dist/{chunk-5EUHR4DQ.cjs.map → chunk-7PVEU6NQ.cjs.map} +1 -1
  13. package/dist/{chunk-K76RPF2X.js → chunk-CPZFINPG.js} +3 -3
  14. package/dist/{chunk-K76RPF2X.js.map → chunk-CPZFINPG.js.map} +1 -1
  15. package/dist/{chunk-ILLYEM3G.cjs → chunk-E244YSGF.cjs} +31 -42
  16. package/dist/chunk-E244YSGF.cjs.map +1 -0
  17. package/dist/{chunk-LV6BHE7Q.cjs → chunk-HDQBXWSS.cjs} +12 -3
  18. package/dist/chunk-HDQBXWSS.cjs.map +1 -0
  19. package/dist/{chunk-R73HWAYA.js → chunk-KKYX5Y5N.js} +3 -3
  20. package/dist/{chunk-R73HWAYA.js.map → chunk-KKYX5Y5N.js.map} +1 -1
  21. package/dist/{chunk-NEKYNDRG.js → chunk-KMHPNIJQ.js} +3 -3
  22. package/dist/{chunk-NEKYNDRG.js.map → chunk-KMHPNIJQ.js.map} +1 -1
  23. package/dist/{chunk-5NQTYPZG.js → chunk-KRG4BXBL.js} +3 -3
  24. package/dist/{chunk-5NQTYPZG.js.map → chunk-KRG4BXBL.js.map} +1 -1
  25. package/dist/{chunk-CQHERJ3J.js → chunk-M4WUWRGI.js} +4 -4
  26. package/dist/chunk-M4WUWRGI.js.map +1 -0
  27. package/dist/{chunk-CEVBQ664.cjs → chunk-MNDXLLWH.cjs} +9 -9
  28. package/dist/{chunk-CEVBQ664.cjs.map → chunk-MNDXLLWH.cjs.map} +1 -1
  29. package/dist/{chunk-567FG76G.cjs → chunk-OXDKVZZ5.cjs} +4 -4
  30. package/dist/{chunk-567FG76G.cjs.map → chunk-OXDKVZZ5.cjs.map} +1 -1
  31. package/dist/{chunk-4E3ANVRR.js → chunk-OZJZVEF2.js} +3 -3
  32. package/dist/{chunk-4E3ANVRR.js.map → chunk-OZJZVEF2.js.map} +1 -1
  33. package/dist/{chunk-4IMEF4J5.cjs → chunk-PU52LECH.cjs} +4 -4
  34. package/dist/{chunk-4IMEF4J5.cjs.map → chunk-PU52LECH.cjs.map} +1 -1
  35. package/dist/{chunk-ZSNEG5J7.js → chunk-SRIUPNYK.js} +12 -3
  36. package/dist/chunk-SRIUPNYK.js.map +1 -0
  37. package/dist/{chunk-ZILKCCXQ.cjs → chunk-VBRVZZ2I.cjs} +4 -4
  38. package/dist/chunk-VBRVZZ2I.cjs.map +1 -0
  39. package/dist/{chunk-QURNDLRE.js → chunk-VE3GPIUQ.js} +19 -9
  40. package/dist/chunk-VE3GPIUQ.js.map +1 -0
  41. package/dist/{chunk-W4QTU3U6.js → chunk-VLAFOLD6.js} +4 -4
  42. package/dist/{chunk-W4QTU3U6.js.map → chunk-VLAFOLD6.js.map} +1 -1
  43. package/dist/{chunk-7NYMASRN.js → chunk-VSQKQNTT.js} +26 -37
  44. package/dist/chunk-VSQKQNTT.js.map +1 -0
  45. package/dist/{chunk-XKLOANYB.cjs → chunk-WRULIQZE.cjs} +19 -9
  46. package/dist/chunk-WRULIQZE.cjs.map +1 -0
  47. package/dist/{chunk-LFWX5GEE.cjs → chunk-YOQY4H6Z.cjs} +8 -8
  48. package/dist/{chunk-LFWX5GEE.cjs.map → chunk-YOQY4H6Z.cjs.map} +1 -1
  49. package/dist/{company_service_sanity-CCbS8ElX.d.cts → company_service_sanity-Br0R7m-A.d.cts} +271 -271
  50. package/dist/{company_service_sanity-B1Xg7ISJ.d.ts → company_service_sanity-DF01qvTz.d.ts} +271 -271
  51. package/dist/components/jobCard/JobLocation.d.cts +1 -1
  52. package/dist/components/jobCard/JobLocation.d.ts +1 -1
  53. package/dist/components/jobPost/JobDescription.cjs +4 -4
  54. package/dist/components/jobPost/JobDescription.js +3 -3
  55. package/dist/components/jobPost/JobPost.cjs +9 -9
  56. package/dist/components/jobPost/JobPost.d.cts +1 -1
  57. package/dist/components/jobPost/JobPost.d.ts +1 -1
  58. package/dist/components/jobPost/JobPost.js +8 -8
  59. package/dist/components/primitives/command.cjs +11 -11
  60. package/dist/components/primitives/command.d.cts +1 -1
  61. package/dist/components/primitives/command.d.ts +1 -1
  62. package/dist/components/primitives/command.js +2 -2
  63. package/dist/components/primitives/dialog.cjs +11 -11
  64. package/dist/components/primitives/dialog.js +1 -1
  65. package/dist/components/ui/Button.cjs +3 -3
  66. package/dist/components/ui/Button.d.cts +1 -1
  67. package/dist/components/ui/Button.d.ts +1 -1
  68. package/dist/components/ui/Button.js +1 -1
  69. package/dist/components/ui/Combobox.cjs +5 -6
  70. package/dist/components/ui/Combobox.d.cts +4 -3
  71. package/dist/components/ui/Combobox.d.ts +4 -3
  72. package/dist/components/ui/Combobox.js +4 -5
  73. package/dist/components/ui/ListItem.cjs +2 -4
  74. package/dist/components/ui/ListItem.js +1 -3
  75. package/dist/components/ui/ModalDialog.cjs +4 -4
  76. package/dist/components/ui/ModalDialog.js +3 -3
  77. package/dist/components/ui/PlacesQueryInput.cjs +4 -4
  78. package/dist/components/ui/PlacesQueryInput.js +3 -3
  79. package/dist/components/ui/ReadMore.cjs +3 -3
  80. package/dist/components/ui/ReadMore.js +2 -2
  81. package/dist/components/ui/buttonShadcn.d.cts +1 -1
  82. package/dist/components/ui/buttonShadcn.d.ts +1 -1
  83. package/dist/{displayText-Ck0qovrl.d.cts → displayText-BDPndCI9.d.cts} +2 -2
  84. package/dist/{displayText-ClDGmi1J.d.ts → displayText-EpnIpZ38.d.ts} +2 -2
  85. package/dist/hooks/useDisplayText.cjs +4 -4
  86. package/dist/hooks/useDisplayText.d.cts +3 -3
  87. package/dist/hooks/useDisplayText.d.ts +3 -3
  88. package/dist/hooks/useDisplayText.js +3 -3
  89. package/dist/index.cjs +27 -27
  90. package/dist/index.d.cts +6 -6
  91. package/dist/index.d.ts +6 -6
  92. package/dist/index.js +14 -14
  93. package/dist/{job_posting_service_latest-DfX8Y4gB.d.cts → job_posting_service_latest-B6Trs6sX.d.cts} +177 -177
  94. package/dist/{job_posting_service_latest-DfX8Y4gB.d.ts → job_posting_service_latest-B6Trs6sX.d.ts} +177 -177
  95. package/dist/{job_posting_service_latest-Bk53vj02.d.cts → job_posting_service_latest-BKz5U2Gp.d.cts} +177 -177
  96. package/dist/{job_posting_service_latest-Bk53vj02.d.ts → job_posting_service_latest-BKz5U2Gp.d.ts} +177 -177
  97. package/dist/{job_posting_service_sanity-BSxLNte3.d.cts → job_posting_service_sanity-BN7XcVxU.d.cts} +357 -357
  98. package/dist/{job_posting_service_sanity-C6aPb8kp.d.ts → job_posting_service_sanity-BNQsNQs2.d.ts} +357 -357
  99. package/dist/lib/locations.d.cts +3 -3
  100. package/dist/lib/locations.d.ts +3 -3
  101. package/dist/lib/mappings.d.cts +3 -3
  102. package/dist/lib/mappings.d.ts +3 -3
  103. package/dist/lib/salaryRange.d.cts +1 -1
  104. package/dist/lib/salaryRange.d.ts +1 -1
  105. package/dist/services/displayText.cjs +3 -3
  106. package/dist/services/displayText.d.cts +3 -3
  107. package/dist/services/displayText.d.ts +3 -3
  108. package/dist/services/displayText.js +2 -2
  109. package/dist/styles/globals.css +15 -3
  110. package/dist/styles/globals.css.map +1 -1
  111. package/dist/types/data/company_service_latest.d.cts +1 -1
  112. package/dist/types/data/company_service_latest.d.ts +1 -1
  113. package/dist/types/data/job_posting_service_latest.d.cts +1 -1
  114. package/dist/types/data/job_posting_service_latest.d.ts +1 -1
  115. package/dist/types/data/shared_pickle_output_latest.d.cts +1 -1
  116. package/dist/types/data/shared_pickle_output_latest.d.ts +1 -1
  117. package/dist/types/index.d.cts +5 -5
  118. package/dist/types/index.d.ts +5 -5
  119. package/dist/types/latest/company_service_latest.d.cts +1 -1
  120. package/dist/types/latest/company_service_latest.d.ts +1 -1
  121. package/dist/types/latest/custom/company_service_sanity.d.cts +3 -3
  122. package/dist/types/latest/custom/company_service_sanity.d.ts +3 -3
  123. package/dist/types/latest/custom/job_posting_service_sanity.d.cts +3 -3
  124. package/dist/types/latest/custom/job_posting_service_sanity.d.ts +3 -3
  125. package/dist/types/latest/job_posting_service_latest.d.cts +1 -1
  126. package/dist/types/latest/job_posting_service_latest.d.ts +1 -1
  127. package/dist/types/latest/shared_pickle_output_latest.d.cts +1 -1
  128. package/dist/types/latest/shared_pickle_output_latest.d.ts +1 -1
  129. package/package.json +1 -1
  130. package/dist/chunk-7NYMASRN.js.map +0 -1
  131. package/dist/chunk-CQHERJ3J.js.map +0 -1
  132. package/dist/chunk-ILLYEM3G.cjs.map +0 -1
  133. package/dist/chunk-LV6BHE7Q.cjs.map +0 -1
  134. package/dist/chunk-QURNDLRE.js.map +0 -1
  135. package/dist/chunk-XKLOANYB.cjs.map +0 -1
  136. package/dist/chunk-ZILKCCXQ.cjs.map +0 -1
  137. package/dist/chunk-ZSNEG5J7.js.map +0 -1
  138. package/dist/{company_service_latest-CVgoQ8Mc.d.cts → company_service_latest-C7Moeufo.d.cts} +174 -174
  139. package/dist/{company_service_latest-CVgoQ8Mc.d.ts → company_service_latest-C7Moeufo.d.ts} +174 -174
  140. package/dist/{company_service_latest-oWEnaiRd.d.cts → company_service_latest-CITz7F53.d.cts} +174 -174
  141. package/dist/{company_service_latest-oWEnaiRd.d.ts → company_service_latest-CITz7F53.d.ts} +174 -174
  142. package/dist/{shared_pickle_output_latest-BVF7Zh2H.d.cts → shared_pickle_output_latest--XZhOUyE.d.cts} +11 -11
  143. package/dist/{shared_pickle_output_latest-BVF7Zh2H.d.ts → shared_pickle_output_latest--XZhOUyE.d.ts} +11 -11
  144. package/dist/{shared_pickle_output_latest-BjRRmT8R.d.cts → shared_pickle_output_latest-DKOmTyYk.d.cts} +11 -11
  145. package/dist/{shared_pickle_output_latest-BjRRmT8R.d.ts → shared_pickle_output_latest-DKOmTyYk.d.ts} +11 -11
@@ -42,7 +42,6 @@ var buttonVariants = cva.cva(
42
42
  "items-center",
43
43
  "justify-center",
44
44
  "gap-2",
45
- "rounded-full",
46
45
  "font-bold",
47
46
  "outline-2",
48
47
  "outline-offset-2",
@@ -54,6 +53,7 @@ var buttonVariants = cva.cva(
54
53
  variants: {
55
54
  variant: {
56
55
  neutral: [
56
+ "rounded-full",
57
57
  "bg-black",
58
58
  "text-white",
59
59
  "hover:bg-grey-90",
@@ -63,6 +63,7 @@ var buttonVariants = cva.cva(
63
63
  "disabled:bg-grey-10"
64
64
  ],
65
65
  primary: [
66
+ "rounded-full",
66
67
  "bg-pickle-100",
67
68
  "text-black",
68
69
  "hover:bg-pickle-80",
@@ -72,6 +73,7 @@ var buttonVariants = cva.cva(
72
73
  "disabled:bg-grey-10"
73
74
  ],
74
75
  secondary: [
76
+ "rounded-full",
75
77
  "bg-green-80",
76
78
  "text-white",
77
79
  "hover:bg-green-90",
@@ -81,6 +83,7 @@ var buttonVariants = cva.cva(
81
83
  "disabled:bg-grey-10"
82
84
  ],
83
85
  transparent: [
86
+ "rounded-full",
84
87
  "text-white",
85
88
  "hover:bg-green-80",
86
89
  "active:bg-green-100",
@@ -88,6 +91,7 @@ var buttonVariants = cva.cva(
88
91
  "disabled:text-grey-40"
89
92
  ],
90
93
  link: [
94
+ "rounded-none",
91
95
  "leading-tight",
92
96
  "text-black",
93
97
  "underline",
@@ -97,6 +101,7 @@ var buttonVariants = cva.cva(
97
101
  "active:text-purple-80"
98
102
  ],
99
103
  "outline-primary": [
104
+ "rounded-full",
100
105
  "bg-transparent",
101
106
  "border-2",
102
107
  "border-pickle-100",
@@ -112,6 +117,7 @@ var buttonVariants = cva.cva(
112
117
  "disabled:hover:text-grey-40"
113
118
  ],
114
119
  "outline-secondary": [
120
+ "rounded-full",
115
121
  "bg-transparent",
116
122
  "border-2",
117
123
  "border-green-80",
@@ -127,6 +133,7 @@ var buttonVariants = cva.cva(
127
133
  "disabled:hover:text-grey-40"
128
134
  ],
129
135
  "icon-outline": [
136
+ "rounded-full",
130
137
  "bg-transparent",
131
138
  "text-black",
132
139
  "hover:bg-grey-5",
@@ -137,6 +144,7 @@ var buttonVariants = cva.cva(
137
144
  "disabled:hover:text-grey-40"
138
145
  ],
139
146
  "icon-primary": [
147
+ "rounded-full",
140
148
  "bg-pickle-100",
141
149
  "text-black",
142
150
  "hover:bg-pickle-80",
@@ -146,6 +154,7 @@ var buttonVariants = cva.cva(
146
154
  "disabled:bg-grey-10"
147
155
  ],
148
156
  "icon-secondary": [
157
+ "rounded-full",
149
158
  "bg-green-80",
150
159
  "text-white",
151
160
  "hover:bg-green-90",
@@ -262,5 +271,5 @@ var buttonVariants = cva.cva(
262
271
 
263
272
  exports.Button = Button;
264
273
  exports.buttonVariants = buttonVariants;
265
- //# sourceMappingURL=chunk-LV6BHE7Q.cjs.map
266
- //# sourceMappingURL=chunk-LV6BHE7Q.cjs.map
274
+ //# sourceMappingURL=chunk-HDQBXWSS.cjs.map
275
+ //# sourceMappingURL=chunk-HDQBXWSS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/Button.tsx"],"names":["forwardRef","Slot","jsx","cn","jsxs","Fragment","Loader2","cva"],"mappings":"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","file":"chunk-HDQBXWSS.cjs","sourcesContent":["'use client'\n\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'cva'\nimport { Loader2 } from 'lucide-react'\nimport React, { forwardRef } from 'react'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Props for the Button component.\n * @interface ButtonProps\n * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}\n * @extends {VariantProps<typeof buttonVariants>}\n */\ninterface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {}\n\n/**\n * A versatile button component that supports multiple variants and sizes.\n *\n * @component\n * @example\n * ```tsx\n * // Default button\n * <Button>Click me</Button>\n *\n * // Primary variant with large size\n * <Button variant=\"primary\" size=\"lg\">Large Button</Button>\n *\n * // As a link\n * <Button asChild>\n * <a href=\"/somewhere\">Go somewhere</a>\n * </Button>\n * ```\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n type = 'button',\n children,\n isLoading = false,\n ...props\n },\n ref\n ) => {\n const Component = asChild ? Slot : 'button'\n\n return (\n <Component\n className={cn(buttonVariants({ variant, size, className, isLoading, asChild }))}\n type={type}\n ref={ref}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n {isLoading && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-white/30 backdrop-blur-[0.5px]\">\n <Loader2 className=\"h-5 w-5 animate-spin text-gray-800\" />\n </div>\n )}\n </>\n )}\n </Component>\n )\n }\n)\nButton.displayName = 'Button'\n\n/**\n * Variant definitions for the Button component using class-variance-authority.\n * Provides consistent styling across different button variations.\n */\nexport const buttonVariants = cva(\n [\n 'relative',\n 'flex',\n 'items-center',\n 'justify-center',\n 'gap-2',\n 'font-bold',\n 'outline-2',\n 'outline-offset-2',\n 'outline-dashed',\n 'outline-transparent',\n 'overflow-hidden',\n ],\n {\n variants: {\n variant: {\n neutral: [\n 'rounded-full',\n 'bg-black',\n 'text-white',\n 'hover:bg-grey-90',\n 'active:bg-grey-80',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n primary: [\n 'rounded-full',\n 'bg-pickle-100',\n 'text-black',\n 'hover:bg-pickle-80',\n 'active:bg-pickle-60',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n secondary: [\n 'rounded-full',\n 'bg-green-80',\n 'text-white',\n 'hover:bg-green-90',\n 'active:bg-green-100',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n transparent: [\n 'rounded-full',\n 'text-white',\n 'hover:bg-green-80',\n 'active:bg-green-100',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n ],\n link: [\n 'rounded-none',\n 'leading-tight',\n 'text-black',\n 'underline',\n 'hover:text-purple-100',\n 'focus:text-black',\n 'focus:outline-purple-100',\n 'active:text-purple-80',\n ],\n 'outline-primary': [\n 'rounded-full',\n 'bg-transparent',\n 'border-2',\n 'border-pickle-100',\n 'text-pickle-100',\n 'hover:bg-pickle-100',\n 'hover:text-black',\n 'active:bg-pickle-80',\n 'active:text-black',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:border-grey-40',\n 'disabled:hover:bg-transparent',\n 'disabled:hover:text-grey-40',\n ],\n 'outline-secondary': [\n 'rounded-full',\n 'bg-transparent',\n 'border-2',\n 'border-green-80',\n 'text-green-80',\n 'hover:bg-green-80',\n 'hover:text-white',\n 'active:bg-green-90',\n 'active:text-white',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n 'disabled:border-grey-40',\n 'disabled:hover:bg-transparent',\n 'disabled:hover:text-grey-40',\n ],\n 'icon-outline': [\n 'rounded-full',\n 'bg-transparent',\n 'text-black',\n 'hover:bg-grey-5',\n 'active:bg-grey-10',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:hover:bg-transparent',\n 'disabled:hover:text-grey-40',\n ],\n 'icon-primary': [\n 'rounded-full',\n 'bg-pickle-100',\n 'text-black',\n 'hover:bg-pickle-80',\n 'active:bg-pickle-60',\n 'focus:outline-purple-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n 'icon-secondary': [\n 'rounded-full',\n 'bg-green-80',\n 'text-white',\n 'hover:bg-green-90',\n 'active:bg-green-100',\n 'focus:outline-pickle-100',\n 'disabled:text-grey-40',\n 'disabled:bg-grey-10',\n ],\n },\n size: {\n 'extra-small': ['h-8', 'text-xs', 'px-3', 'py-1'],\n small: ['h-10', 'text-sm', 'px-4', 'py-2'],\n medium: ['h-12', 'text-base', 'px-6', 'py-3'],\n large: ['h-14', 'text-lg', 'px-8', 'py-4'],\n },\n isLoading: {\n true: ['cursor-not-allowed', 'pointer-events-none'],\n },\n asChild: {\n true: [],\n false: ['cursor-pointer', 'pointer-events-auto'],\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'medium',\n isLoading: false,\n asChild: false,\n },\n compoundVariants: [\n {\n variant: 'link',\n size: 'extra-small',\n class: ['h-3', 'text-xs', 'p-0'],\n },\n {\n variant: 'link',\n size: 'small',\n class: ['h-3', 'text-xs', 'p-0'],\n },\n {\n variant: 'link',\n size: 'medium',\n class: ['h-4', 'text-sm', 'p-0'],\n },\n {\n variant: 'link',\n size: 'large',\n class: ['h-6', 'text-base', 'p-0'],\n },\n {\n variant: 'icon-outline',\n size: 'extra-small',\n class: ['h-8', 'w-8', 'p-1.5', '[&>svg]:w-5', '[&>svg]:h-5'],\n },\n {\n variant: 'icon-outline',\n size: 'small',\n class: ['h-10', 'w-10', 'p-2', '[&>svg]:w-6', '[&>svg]:h-6'],\n },\n {\n variant: 'icon-outline',\n size: 'medium',\n class: ['h-12', 'w-12', 'p-2.5', '[&>svg]:w-7', '[&>svg]:h-7'],\n },\n {\n variant: 'icon-outline',\n size: 'large',\n class: ['h-14', 'w-14', 'p-3', '[&>svg]:w-8', '[&>svg]:h-8'],\n },\n {\n variant: 'icon-primary',\n size: 'extra-small',\n class: ['h-8', 'w-8', 'p-1.5', '[&>svg]:w-5', '[&>svg]:h-5'],\n },\n {\n variant: 'icon-primary',\n size: 'small',\n class: ['h-10', 'w-10', 'p-2', '[&>svg]:w-6', '[&>svg]:h-6'],\n },\n {\n variant: 'icon-primary',\n size: 'medium',\n class: ['h-12', 'w-12', 'p-2.5', '[&>svg]:w-7', '[&>svg]:h-7'],\n },\n {\n variant: 'icon-primary',\n size: 'large',\n class: ['h-14', 'w-14', 'p-3', '[&>svg]:w-8', '[&>svg]:h-8'],\n },\n {\n variant: 'icon-secondary',\n size: 'extra-small',\n class: ['h-8', 'w-8', 'p-1.5', '[&>svg]:w-5', '[&>svg]:h-5'],\n },\n {\n variant: 'icon-secondary',\n size: 'small',\n class: ['h-10', 'w-10', 'p-2', '[&>svg]:w-6', '[&>svg]:h-6'],\n },\n {\n variant: 'icon-secondary',\n size: 'medium',\n class: ['h-12', 'w-12', 'p-2.5', '[&>svg]:w-7', '[&>svg]:h-7'],\n },\n {\n variant: 'icon-secondary',\n size: 'large',\n class: ['h-14', 'w-14', 'p-3', '[&>svg]:w-8', '[&>svg]:h-8'],\n },\n ],\n }\n)\n"]}
@@ -1,4 +1,4 @@
1
- import { Dialog, DialogContent } from './chunk-CQHERJ3J.js';
1
+ import { Dialog, DialogContent } from './chunk-M4WUWRGI.js';
2
2
  import { cn } from './chunk-2FGZQI42.js';
3
3
  import { Command as Command$1 } from 'cmdk';
4
4
  import { Search } from 'lucide-react';
@@ -98,5 +98,5 @@ var CommandShortcut = ({ className, ...props }) => {
98
98
  CommandShortcut.displayName = "CommandShortcut";
99
99
 
100
100
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
101
- //# sourceMappingURL=chunk-R73HWAYA.js.map
102
- //# sourceMappingURL=chunk-R73HWAYA.js.map
101
+ //# sourceMappingURL=chunk-KKYX5Y5N.js.map
102
+ //# sourceMappingURL=chunk-KKYX5Y5N.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/primitives/command.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-R73HWAYA.js","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
+ {"version":3,"sources":["../src/components/primitives/command.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-KKYX5Y5N.js","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,4 +1,4 @@
1
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from './chunk-R73HWAYA.js';
1
+ import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from './chunk-KKYX5Y5N.js';
2
2
  import { cn } from './chunk-2FGZQI42.js';
3
3
  import { autocomplete } from './chunk-U3D4LL6T.js';
4
4
  import { LoaderCircle, CircleX } from 'lucide-react';
@@ -120,5 +120,5 @@ function PlacesQueryInput({
120
120
  var PlacesQueryInput_default = PlacesQueryInput;
121
121
 
122
122
  export { PlacesQueryInput_default };
123
- //# sourceMappingURL=chunk-NEKYNDRG.js.map
124
- //# sourceMappingURL=chunk-NEKYNDRG.js.map
123
+ //# sourceMappingURL=chunk-KMHPNIJQ.js.map
124
+ //# sourceMappingURL=chunk-KMHPNIJQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":[],"mappings":"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","file":"chunk-NEKYNDRG.js","sourcesContent":["'use client'\n\nimport { type PlaceAutocompleteResult } from '@googlemaps/google-maps-services-js'\nimport { CircleX, LoaderCircle } from 'lucide-react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { autocomplete } from '@/lib/google'\nimport { cn } from '@/lib/utils'\n\n/**\n * The idea is of this type is to have a more specific type for the Place object,\n * without the repos that use it having to import the PlaceAutocompleteResult type.\n * 'place_id' can be used to query the Google Places API directly for more information about the place.\n */\nexport type Place = Pick<PlaceAutocompleteResult, 'description' | 'place_id'>\n\ntype Size = 'small' | 'normal' | 'large' | 'xlarge'\n\ninterface PlacesQueryInputProps {\n apiKey: string\n selected?: Place\n onSelect: (place?: Place) => void\n className?: string\n size?: Size\n}\n\nconst sizeClasses: Record<Size, string> = {\n small: 'h-8 text-xs',\n normal: 'h-9 text-sm',\n large: 'h-10 text-base',\n xlarge: 'h-11 text-base',\n}\n\nfunction PlacesQueryInput({\n apiKey,\n selected,\n onSelect,\n className,\n size = 'normal',\n}: Readonly<PlacesQueryInputProps>) {\n const [predictions, setPredictions] = useState<PlaceAutocompleteResult[] | null>(null)\n const [input, setInput] = useState(selected?.description ?? '')\n const [isLoadingPredictions, setIsLoadingPredictions] = useState(false)\n const [shouldOpenUpward, setShouldOpenUpward] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const inputRef = useRef<HTMLDivElement | null>(null)\n\n const debouncedAutocomplete = useCallback((value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(async () => {\n try {\n if (value.length > 2) {\n setIsLoadingPredictions(true)\n const fetchedPredictions = await autocomplete(value, apiKey)\n setIsLoadingPredictions(false)\n setPredictions(fetchedPredictions ?? [])\n } else {\n setPredictions(null)\n }\n } catch (error) {\n setIsLoadingPredictions(false)\n setPredictions([])\n console.error('Autocomplete error:', error)\n }\n }, 300)\n }, [])\n\n const handleInputChange = (value: string) => {\n setInput(value)\n debouncedAutocomplete(value)\n }\n\n const handleSelect = (prediction: PlaceAutocompleteResult) => {\n onSelect(prediction)\n setPredictions(null)\n setInput(prediction.description)\n }\n\n const handleClear = () => {\n onSelect()\n setPredictions(null)\n setInput('')\n }\n\n /** Close the dropdown when the input loses focus, with the timeout to allow the user to click on a prediction.\n * */\n const handleBlur = () => setTimeout(() => setPredictions(null), 200)\n\n useEffect(() => {\n const checkDropdownPosition = () => {\n if (inputRef.current) {\n const rect = inputRef.current.getBoundingClientRect()\n const windowHeight = window.innerHeight\n setShouldOpenUpward(rect.bottom + 200 > windowHeight)\n }\n }\n\n checkDropdownPosition()\n window.addEventListener('resize', checkDropdownPosition)\n return () => window.removeEventListener('resize', checkDropdownPosition)\n }, [])\n\n return (\n <div className={cn('relative w-full', className)} ref={inputRef} onBlur={handleBlur}>\n <Command>\n <div className=\"relative w-full\">\n <CommandInput\n placeholder=\"Type an address to search...\"\n value={input}\n onValueChange={handleInputChange}\n className={cn('truncate pr-8', sizeClasses[size])}\n />\n {isLoadingPredictions && (\n <LoaderCircle className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100\" />\n )}\n {input && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n {predictions && (\n <CommandList\n className={cn(\n 'absolute z-50 w-full rounded-md border bg-white shadow-lg',\n shouldOpenUpward ? 'bottom-full' : 'top-full'\n )}\n >\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {predictions.map((prediction) => (\n <CommandItem\n key={prediction.place_id}\n onSelect={() => handleSelect(prediction)}\n className=\"truncate\"\n >\n {prediction.description}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n )}\n </Command>\n </div>\n )\n}\n\nexport default PlacesQueryInput\n"]}
1
+ {"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":[],"mappings":"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","file":"chunk-KMHPNIJQ.js","sourcesContent":["'use client'\n\nimport { type PlaceAutocompleteResult } from '@googlemaps/google-maps-services-js'\nimport { CircleX, LoaderCircle } from 'lucide-react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { autocomplete } from '@/lib/google'\nimport { cn } from '@/lib/utils'\n\n/**\n * The idea is of this type is to have a more specific type for the Place object,\n * without the repos that use it having to import the PlaceAutocompleteResult type.\n * 'place_id' can be used to query the Google Places API directly for more information about the place.\n */\nexport type Place = Pick<PlaceAutocompleteResult, 'description' | 'place_id'>\n\ntype Size = 'small' | 'normal' | 'large' | 'xlarge'\n\ninterface PlacesQueryInputProps {\n apiKey: string\n selected?: Place\n onSelect: (place?: Place) => void\n className?: string\n size?: Size\n}\n\nconst sizeClasses: Record<Size, string> = {\n small: 'h-8 text-xs',\n normal: 'h-9 text-sm',\n large: 'h-10 text-base',\n xlarge: 'h-11 text-base',\n}\n\nfunction PlacesQueryInput({\n apiKey,\n selected,\n onSelect,\n className,\n size = 'normal',\n}: Readonly<PlacesQueryInputProps>) {\n const [predictions, setPredictions] = useState<PlaceAutocompleteResult[] | null>(null)\n const [input, setInput] = useState(selected?.description ?? '')\n const [isLoadingPredictions, setIsLoadingPredictions] = useState(false)\n const [shouldOpenUpward, setShouldOpenUpward] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const inputRef = useRef<HTMLDivElement | null>(null)\n\n const debouncedAutocomplete = useCallback((value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(async () => {\n try {\n if (value.length > 2) {\n setIsLoadingPredictions(true)\n const fetchedPredictions = await autocomplete(value, apiKey)\n setIsLoadingPredictions(false)\n setPredictions(fetchedPredictions ?? [])\n } else {\n setPredictions(null)\n }\n } catch (error) {\n setIsLoadingPredictions(false)\n setPredictions([])\n console.error('Autocomplete error:', error)\n }\n }, 300)\n }, [])\n\n const handleInputChange = (value: string) => {\n setInput(value)\n debouncedAutocomplete(value)\n }\n\n const handleSelect = (prediction: PlaceAutocompleteResult) => {\n onSelect(prediction)\n setPredictions(null)\n setInput(prediction.description)\n }\n\n const handleClear = () => {\n onSelect()\n setPredictions(null)\n setInput('')\n }\n\n /** Close the dropdown when the input loses focus, with the timeout to allow the user to click on a prediction.\n * */\n const handleBlur = () => setTimeout(() => setPredictions(null), 200)\n\n useEffect(() => {\n const checkDropdownPosition = () => {\n if (inputRef.current) {\n const rect = inputRef.current.getBoundingClientRect()\n const windowHeight = window.innerHeight\n setShouldOpenUpward(rect.bottom + 200 > windowHeight)\n }\n }\n\n checkDropdownPosition()\n window.addEventListener('resize', checkDropdownPosition)\n return () => window.removeEventListener('resize', checkDropdownPosition)\n }, [])\n\n return (\n <div className={cn('relative w-full', className)} ref={inputRef} onBlur={handleBlur}>\n <Command>\n <div className=\"relative w-full\">\n <CommandInput\n placeholder=\"Type an address to search...\"\n value={input}\n onValueChange={handleInputChange}\n className={cn('truncate pr-8', sizeClasses[size])}\n />\n {isLoadingPredictions && (\n <LoaderCircle className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100\" />\n )}\n {input && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n {predictions && (\n <CommandList\n className={cn(\n 'absolute z-50 w-full rounded-md border bg-white shadow-lg',\n shouldOpenUpward ? 'bottom-full' : 'top-full'\n )}\n >\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {predictions.map((prediction) => (\n <CommandItem\n key={prediction.place_id}\n onSelect={() => handleSelect(prediction)}\n className=\"truncate\"\n >\n {prediction.description}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n )}\n </Command>\n </div>\n )\n}\n\nexport default PlacesQueryInput\n"]}
@@ -1,4 +1,4 @@
1
- import { ReadMore } from './chunk-F3FYMCRO.js';
1
+ import { ReadMore } from './chunk-5IFDS3CJ.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
 
4
4
  function JobDescription({ description }) {
@@ -10,5 +10,5 @@ function JobDescription({ description }) {
10
10
  }
11
11
 
12
12
  export { JobDescription };
13
- //# sourceMappingURL=chunk-5NQTYPZG.js.map
14
- //# sourceMappingURL=chunk-5NQTYPZG.js.map
13
+ //# sourceMappingURL=chunk-KRG4BXBL.js.map
14
+ //# sourceMappingURL=chunk-KRG4BXBL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/jobPost/JobDescription.tsx"],"names":[],"mappings":";;;AAMO,SAAS,cAAA,CAAe,EAAE,WAAA,EAAoC,EAAA;AACnE,EAAI,IAAA,CAAC,aAAoB,OAAA,IAAA;AAEzB,EACE,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4BACb,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,IAAA,EAAA,EAAG,SAAU,EAAA,mBAAA,EAAoB,QAAe,EAAA,iBAAA,EAAA,CAAA;AAAA,oBACjD,GAAA,CAAC,QAAS,EAAA,EAAA,IAAA,EAAM,WAAa,EAAA;AAAA,GAC/B,EAAA,CAAA;AAEJ","file":"chunk-5NQTYPZG.js","sourcesContent":["import { ReadMore } from '@/components/ui/ReadMore'\n\nexport type JobDescriptionProps = {\n description?: string\n}\n\nexport function JobDescription({ description }: JobDescriptionProps) {\n if (!description) return null\n\n return (\n <div className=\"flex w-full flex-col gap-2\">\n <h3 className=\"text-xl font-bold\">Job Description</h3>\n <ReadMore text={description} />\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/jobPost/JobDescription.tsx"],"names":[],"mappings":";;;AAMO,SAAS,cAAA,CAAe,EAAE,WAAA,EAAoC,EAAA;AACnE,EAAI,IAAA,CAAC,aAAoB,OAAA,IAAA;AAEzB,EACE,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4BACb,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,IAAA,EAAA,EAAG,SAAU,EAAA,mBAAA,EAAoB,QAAe,EAAA,iBAAA,EAAA,CAAA;AAAA,oBACjD,GAAA,CAAC,QAAS,EAAA,EAAA,IAAA,EAAM,WAAa,EAAA;AAAA,GAC/B,EAAA,CAAA;AAEJ","file":"chunk-KRG4BXBL.js","sourcesContent":["import { ReadMore } from '@/components/ui/ReadMore'\n\nexport type JobDescriptionProps = {\n description?: string\n}\n\nexport function JobDescription({ description }: JobDescriptionProps) {\n if (!description) return null\n\n return (\n <div className=\"flex w-full flex-col gap-2\">\n <h3 className=\"text-xl font-bold\">Job Description</h3>\n <ReadMore text={description} />\n </div>\n )\n}\n"]}
@@ -20,14 +20,14 @@ var DialogOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PUR
20
20
  ));
21
21
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
22
22
  var DialogContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
23
- /* @__PURE__ */ jsx(DialogOverlay, {}),
23
+ /* @__PURE__ */ jsx(DialogOverlay, { className: "z-50" }),
24
24
  /* @__PURE__ */ jsx(
25
25
  DialogPrimitive.Content,
26
26
  {
27
27
  ref,
28
28
  className: cn(
29
29
  // Position centered with sensible defaults (shadcn pattern)
30
- "fixed left-1/2 top-1/2 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-white shadow-lg duration-200",
30
+ "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-white shadow-lg duration-200",
31
31
  // Animations
32
32
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
33
33
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -71,5 +71,5 @@ var DialogDescription = React.forwardRef(({ className, ...props }, ref) => /* @_
71
71
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
72
72
 
73
73
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
74
- //# sourceMappingURL=chunk-CQHERJ3J.js.map
75
- //# sourceMappingURL=chunk-CQHERJ3J.js.map
74
+ //# sourceMappingURL=chunk-M4WUWRGI.js.map
75
+ //# sourceMappingURL=chunk-M4WUWRGI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/dialog.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,MAAyB,GAAA,eAAA,CAAA;AAE/B,IAAM,aAAgC,GAAA,eAAA,CAAA;AAEtC,IAAM,YAA+B,GAAA,eAAA,CAAA;AAErC,IAAM,WAA8B,GAAA,eAAA,CAAA;AAE9B,IAAA,aAAA,GAAsB,iBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAA,GAAA;AAAA,EAAiB,eAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,EAAA;AAAA,MACT,mJAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,cAA8B,eAAQ,CAAA,OAAA,CAAA,WAAA;AAE9C,IAAA,aAAA,GAAsB,KAG1B,CAAA,UAAA,CAAA,CAAC,EAAE,SAAA,EAAW,QAAU,EAAA,GAAG,KAAM,EAAA,EAAG,GACpC,qBAAA,IAAA,CAAC,YACC,EAAA,EAAA,QAAA,EAAA;AAAA,kBAAC,GAAA,CAAA,aAAA,EAAA,EAAc,WAAU,MAAO,EAAA,CAAA;AAAA,kBAChC,GAAA;AAAA,IAAiB,eAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAA,EAAA;AAAA;AAAA,QAET,iIAAA;AAAA;AAAA,QAEA,yHAAA;AAAA,QACA,8DAAA;AAAA,QACA,yKAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA;AACH,CAAA,EACF,CACD;AACD,aAAA,CAAc,cAA8B,eAAQ,CAAA,OAAA,CAAA,WAAA;AAEpD,IAAM,YAAe,GAAA,CAAC,EAAE,SAAA,EAAW,GAAG,KAAM,EAAA,qBACzC,GAAA,CAAA,KAAA,EAAA,EAAI,WAAW,EAAG,CAAA,oDAAA,EAAsD,SAAS,CAAA,EAAI,GAAG,KAAO,EAAA;AAElG,YAAA,CAAa,WAAc,GAAA,cAAA;AAE3B,IAAM,eAAe,CAAC,EAAE,SAAW,EAAA,GAAG,OACpC,qBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAG,CAAA,+DAAA,EAAiE,SAAS,CAAA;AAAA,IACvF,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAc,GAAA,cAAA;AAErB,IAAA,WAAA,GAAoB,iBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAA,GAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,mDAAA,EAAqD,SAAS,CAAA;AAAA,IAC3E,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8B,eAAM,CAAA,KAAA,CAAA,WAAA;AAE1C,IAAA,iBAAA,GAA0B,iBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAA,GAAA;AAAA,EAAiB,eAAA,CAAA,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,cAA8B,eAAY,CAAA,WAAA,CAAA,WAAA","file":"chunk-M4WUWRGI.js","sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay className=\"z-50\" />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n // Position centered with sensible defaults (shadcn pattern)\n 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-white shadow-lg duration-200',\n // Animations\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]',\n 'sm:rounded-lg',\n className\n )}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-neutral-500 dark:text-neutral-400', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkVBLDMVVW_cjs = require('./chunk-VBLDMVVW.cjs');
3
+ var chunk2XIO3WQ2_cjs = require('./chunk-2XIO3WQ2.cjs');
4
4
  var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
5
5
  var chunkAMNEAWA7_cjs = require('./chunk-AMNEAWA7.cjs');
6
6
  var lucideReact = require('lucide-react');
@@ -74,10 +74,10 @@ function PlacesQueryInput({
74
74
  window.addEventListener("resize", checkDropdownPosition);
75
75
  return () => window.removeEventListener("resize", checkDropdownPosition);
76
76
  }, []);
77
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkMGWZXPMF_cjs.cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkVBLDMVVW_cjs.Command, { children: [
77
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkMGWZXPMF_cjs.cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ jsxRuntime.jsxs(chunk2XIO3WQ2_cjs.Command, { children: [
78
78
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full", children: [
79
79
  /* @__PURE__ */ jsxRuntime.jsx(
80
- chunkVBLDMVVW_cjs.CommandInput,
80
+ chunk2XIO3WQ2_cjs.CommandInput,
81
81
  {
82
82
  placeholder: "Type an address to search...",
83
83
  value: input,
@@ -97,16 +97,16 @@ function PlacesQueryInput({
97
97
  )
98
98
  ] }),
99
99
  predictions && /* @__PURE__ */ jsxRuntime.jsxs(
100
- chunkVBLDMVVW_cjs.CommandList,
100
+ chunk2XIO3WQ2_cjs.CommandList,
101
101
  {
102
102
  className: chunkMGWZXPMF_cjs.cn(
103
103
  "absolute z-50 w-full rounded-md border bg-white shadow-lg",
104
104
  shouldOpenUpward ? "bottom-full" : "top-full"
105
105
  ),
106
106
  children: [
107
- /* @__PURE__ */ jsxRuntime.jsx(chunkVBLDMVVW_cjs.CommandEmpty, { children: "No results" }),
108
- /* @__PURE__ */ jsxRuntime.jsx(chunkVBLDMVVW_cjs.CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ jsxRuntime.jsx(
109
- chunkVBLDMVVW_cjs.CommandItem,
107
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2XIO3WQ2_cjs.CommandEmpty, { children: "No results" }),
108
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2XIO3WQ2_cjs.CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ jsxRuntime.jsx(
109
+ chunk2XIO3WQ2_cjs.CommandItem,
110
110
  {
111
111
  onSelect: () => handleSelect(prediction),
112
112
  className: "truncate",
@@ -122,5 +122,5 @@ function PlacesQueryInput({
122
122
  var PlacesQueryInput_default = PlacesQueryInput;
123
123
 
124
124
  exports.PlacesQueryInput_default = PlacesQueryInput_default;
125
- //# sourceMappingURL=chunk-CEVBQ664.cjs.map
126
- //# sourceMappingURL=chunk-CEVBQ664.cjs.map
125
+ //# sourceMappingURL=chunk-MNDXLLWH.cjs.map
126
+ //# sourceMappingURL=chunk-MNDXLLWH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":["useState","useRef","useCallback","autocomplete","useEffect","jsx","cn","jsxs","Command","CommandInput","LoaderCircle","CircleX","CommandList","CommandEmpty","CommandGroup","CommandItem"],"mappings":"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","file":"chunk-CEVBQ664.cjs","sourcesContent":["'use client'\n\nimport { type PlaceAutocompleteResult } from '@googlemaps/google-maps-services-js'\nimport { CircleX, LoaderCircle } from 'lucide-react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { autocomplete } from '@/lib/google'\nimport { cn } from '@/lib/utils'\n\n/**\n * The idea is of this type is to have a more specific type for the Place object,\n * without the repos that use it having to import the PlaceAutocompleteResult type.\n * 'place_id' can be used to query the Google Places API directly for more information about the place.\n */\nexport type Place = Pick<PlaceAutocompleteResult, 'description' | 'place_id'>\n\ntype Size = 'small' | 'normal' | 'large' | 'xlarge'\n\ninterface PlacesQueryInputProps {\n apiKey: string\n selected?: Place\n onSelect: (place?: Place) => void\n className?: string\n size?: Size\n}\n\nconst sizeClasses: Record<Size, string> = {\n small: 'h-8 text-xs',\n normal: 'h-9 text-sm',\n large: 'h-10 text-base',\n xlarge: 'h-11 text-base',\n}\n\nfunction PlacesQueryInput({\n apiKey,\n selected,\n onSelect,\n className,\n size = 'normal',\n}: Readonly<PlacesQueryInputProps>) {\n const [predictions, setPredictions] = useState<PlaceAutocompleteResult[] | null>(null)\n const [input, setInput] = useState(selected?.description ?? '')\n const [isLoadingPredictions, setIsLoadingPredictions] = useState(false)\n const [shouldOpenUpward, setShouldOpenUpward] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const inputRef = useRef<HTMLDivElement | null>(null)\n\n const debouncedAutocomplete = useCallback((value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(async () => {\n try {\n if (value.length > 2) {\n setIsLoadingPredictions(true)\n const fetchedPredictions = await autocomplete(value, apiKey)\n setIsLoadingPredictions(false)\n setPredictions(fetchedPredictions ?? [])\n } else {\n setPredictions(null)\n }\n } catch (error) {\n setIsLoadingPredictions(false)\n setPredictions([])\n console.error('Autocomplete error:', error)\n }\n }, 300)\n }, [])\n\n const handleInputChange = (value: string) => {\n setInput(value)\n debouncedAutocomplete(value)\n }\n\n const handleSelect = (prediction: PlaceAutocompleteResult) => {\n onSelect(prediction)\n setPredictions(null)\n setInput(prediction.description)\n }\n\n const handleClear = () => {\n onSelect()\n setPredictions(null)\n setInput('')\n }\n\n /** Close the dropdown when the input loses focus, with the timeout to allow the user to click on a prediction.\n * */\n const handleBlur = () => setTimeout(() => setPredictions(null), 200)\n\n useEffect(() => {\n const checkDropdownPosition = () => {\n if (inputRef.current) {\n const rect = inputRef.current.getBoundingClientRect()\n const windowHeight = window.innerHeight\n setShouldOpenUpward(rect.bottom + 200 > windowHeight)\n }\n }\n\n checkDropdownPosition()\n window.addEventListener('resize', checkDropdownPosition)\n return () => window.removeEventListener('resize', checkDropdownPosition)\n }, [])\n\n return (\n <div className={cn('relative w-full', className)} ref={inputRef} onBlur={handleBlur}>\n <Command>\n <div className=\"relative w-full\">\n <CommandInput\n placeholder=\"Type an address to search...\"\n value={input}\n onValueChange={handleInputChange}\n className={cn('truncate pr-8', sizeClasses[size])}\n />\n {isLoadingPredictions && (\n <LoaderCircle className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100\" />\n )}\n {input && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n {predictions && (\n <CommandList\n className={cn(\n 'absolute z-50 w-full rounded-md border bg-white shadow-lg',\n shouldOpenUpward ? 'bottom-full' : 'top-full'\n )}\n >\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {predictions.map((prediction) => (\n <CommandItem\n key={prediction.place_id}\n onSelect={() => handleSelect(prediction)}\n className=\"truncate\"\n >\n {prediction.description}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n )}\n </Command>\n </div>\n )\n}\n\nexport default PlacesQueryInput\n"]}
1
+ {"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":["useState","useRef","useCallback","autocomplete","useEffect","jsx","cn","jsxs","Command","CommandInput","LoaderCircle","CircleX","CommandList","CommandEmpty","CommandGroup","CommandItem"],"mappings":"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","file":"chunk-MNDXLLWH.cjs","sourcesContent":["'use client'\n\nimport { type PlaceAutocompleteResult } from '@googlemaps/google-maps-services-js'\nimport { CircleX, LoaderCircle } from 'lucide-react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { autocomplete } from '@/lib/google'\nimport { cn } from '@/lib/utils'\n\n/**\n * The idea is of this type is to have a more specific type for the Place object,\n * without the repos that use it having to import the PlaceAutocompleteResult type.\n * 'place_id' can be used to query the Google Places API directly for more information about the place.\n */\nexport type Place = Pick<PlaceAutocompleteResult, 'description' | 'place_id'>\n\ntype Size = 'small' | 'normal' | 'large' | 'xlarge'\n\ninterface PlacesQueryInputProps {\n apiKey: string\n selected?: Place\n onSelect: (place?: Place) => void\n className?: string\n size?: Size\n}\n\nconst sizeClasses: Record<Size, string> = {\n small: 'h-8 text-xs',\n normal: 'h-9 text-sm',\n large: 'h-10 text-base',\n xlarge: 'h-11 text-base',\n}\n\nfunction PlacesQueryInput({\n apiKey,\n selected,\n onSelect,\n className,\n size = 'normal',\n}: Readonly<PlacesQueryInputProps>) {\n const [predictions, setPredictions] = useState<PlaceAutocompleteResult[] | null>(null)\n const [input, setInput] = useState(selected?.description ?? '')\n const [isLoadingPredictions, setIsLoadingPredictions] = useState(false)\n const [shouldOpenUpward, setShouldOpenUpward] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const inputRef = useRef<HTMLDivElement | null>(null)\n\n const debouncedAutocomplete = useCallback((value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(async () => {\n try {\n if (value.length > 2) {\n setIsLoadingPredictions(true)\n const fetchedPredictions = await autocomplete(value, apiKey)\n setIsLoadingPredictions(false)\n setPredictions(fetchedPredictions ?? [])\n } else {\n setPredictions(null)\n }\n } catch (error) {\n setIsLoadingPredictions(false)\n setPredictions([])\n console.error('Autocomplete error:', error)\n }\n }, 300)\n }, [])\n\n const handleInputChange = (value: string) => {\n setInput(value)\n debouncedAutocomplete(value)\n }\n\n const handleSelect = (prediction: PlaceAutocompleteResult) => {\n onSelect(prediction)\n setPredictions(null)\n setInput(prediction.description)\n }\n\n const handleClear = () => {\n onSelect()\n setPredictions(null)\n setInput('')\n }\n\n /** Close the dropdown when the input loses focus, with the timeout to allow the user to click on a prediction.\n * */\n const handleBlur = () => setTimeout(() => setPredictions(null), 200)\n\n useEffect(() => {\n const checkDropdownPosition = () => {\n if (inputRef.current) {\n const rect = inputRef.current.getBoundingClientRect()\n const windowHeight = window.innerHeight\n setShouldOpenUpward(rect.bottom + 200 > windowHeight)\n }\n }\n\n checkDropdownPosition()\n window.addEventListener('resize', checkDropdownPosition)\n return () => window.removeEventListener('resize', checkDropdownPosition)\n }, [])\n\n return (\n <div className={cn('relative w-full', className)} ref={inputRef} onBlur={handleBlur}>\n <Command>\n <div className=\"relative w-full\">\n <CommandInput\n placeholder=\"Type an address to search...\"\n value={input}\n onValueChange={handleInputChange}\n className={cn('truncate pr-8', sizeClasses[size])}\n />\n {isLoadingPredictions && (\n <LoaderCircle className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100\" />\n )}\n {input && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n {predictions && (\n <CommandList\n className={cn(\n 'absolute z-50 w-full rounded-md border bg-white shadow-lg',\n shouldOpenUpward ? 'bottom-full' : 'top-full'\n )}\n >\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {predictions.map((prediction) => (\n <CommandItem\n key={prediction.place_id}\n onSelect={() => handleSelect(prediction)}\n className=\"truncate\"\n >\n {prediction.description}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n )}\n </Command>\n </div>\n )\n}\n\nexport default PlacesQueryInput\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"]}
@@ -1,5 +1,5 @@
1
- import { defaultMappings } from './chunk-TCV6N3EK.js';
2
1
  import { DisplayTextScopeNotFoundError, DisplayTextValueNotFoundError } from './chunk-YB2USB4M.js';
2
+ import { defaultMappings } from './chunk-TCV6N3EK.js';
3
3
 
4
4
  // src/services/displayText.tsx
5
5
  var DisplayTextService = class {
@@ -31,5 +31,5 @@ var DisplayTextService = class {
31
31
  };
32
32
 
33
33
  export { DisplayTextService };
34
- //# sourceMappingURL=chunk-4E3ANVRR.js.map
35
- //# sourceMappingURL=chunk-4E3ANVRR.js.map
34
+ //# sourceMappingURL=chunk-OZJZVEF2.js.map
35
+ //# sourceMappingURL=chunk-OZJZVEF2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/services/displayText.tsx"],"names":["displayTexts"],"mappings":";;;;AAiCO,IAAM,qBAAN,MAAwD;AAAA,EAI7D,YAAY,cAA2C,EAAA;AAHvD,IAAA,IAAA,CAAiB,eAAqC,GAAA,IAAA;AAIpD,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAG,eAAA;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACL;AAAA;AACF,EAEA,MAAM,cACJ,CAAA,KAAA,EACA,KACA,EAAA,QAAA,GAA8B,KAAK,eAClB,EAAA;AACjB,IAAM,MAAA,YAAA,GAAe,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAI,8BAA8B,KAAK,CAAA;AAAA;AAG/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,mBAAA,GAAsB,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,cAAe,CAAA,KAAA,EAAO,CAAG,EAAA,QAAQ,CAAC,CAAA;AACpF,MAAA,MAAMA,aAAe,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,mBAAmB,CAAA;AAC1D,MAAOA,OAAAA,aAAAA,CAAa,OAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAGlD,IAAM,MAAA,YAAA,GAAe,aAAa,KAAK,CAAA;AAEvC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAI,6BAA8B,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA;AAGtD,IAAA,OAAO,aAAa,QAAQ,CAAA,IAAK,YAAa,CAAA,IAAA,CAAK,eAAe,CAAK,IAAA,KAAA;AAAA;AAE3E","file":"chunk-4E3ANVRR.js","sourcesContent":["import { type z } from 'zod'\n\nimport { defaultMappings } from '@/lib/mappings'\nimport {\n DisplayTextScopeNotFoundError,\n DisplayTextValueNotFoundError,\n} from '@/types/displayText.errors'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SUPPORTED_LANGUAGES = ['en'] as const\ntype SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]\n\n// Define the display text configuration type for Zod enums\nexport type ServiceMappings = typeof defaultMappings\n\ntype ZodEnumValue<T> = T extends z.ZodEnum<[string, ...string[]]> ? z.infer<T> : never\n\nexport type DisplayTextConfig<T = string> = {\n [K in T extends z.ZodEnum<[string, ...string[]]> ? ZodEnumValue<T> : string]: {\n [L in SupportedLanguage]: string\n }\n} & Record<string, { [L in SupportedLanguage]: string }>\n\n// Define the expected interface for the service\nexport interface IDisplayTextService {\n getDisplayText: (\n scope: keyof ServiceMappings,\n value: string | string[],\n language?: SupportedLanguage\n ) => Promise<string>\n}\n\n// define the service\nexport class DisplayTextService implements IDisplayTextService {\n private readonly defaultLanguage: SupportedLanguage = 'en'\n private readonly mappings: ServiceMappings\n\n constructor(customMappings?: Partial<ServiceMappings>) {\n this.mappings = {\n ...defaultMappings, // Use all pre-defined mappings as defaults\n ...customMappings, // Override with any custom mappings if provided\n }\n }\n\n async getDisplayText(\n scope: keyof ServiceMappings,\n value: string | string[],\n language: SupportedLanguage = this.defaultLanguage\n ): Promise<string> {\n const scopeMapping = this.mappings[scope]\n\n if (!scopeMapping) {\n throw new DisplayTextScopeNotFoundError(scope)\n }\n\n if (Array.isArray(value)) {\n const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language))\n const displayTexts = await Promise.all(displayTextPromises)\n return displayTexts.filter((v) => !!v).join(', ')\n }\n\n const displayTexts = scopeMapping[value]\n\n if (!displayTexts) {\n throw new DisplayTextValueNotFoundError(value, scope)\n }\n\n return displayTexts[language] || displayTexts[this.defaultLanguage] || value\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/services/displayText.tsx"],"names":["displayTexts"],"mappings":";;;;AAiCO,IAAM,qBAAN,MAAwD;AAAA,EAI7D,YAAY,cAA2C,EAAA;AAHvD,IAAA,IAAA,CAAiB,eAAqC,GAAA,IAAA;AAIpD,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAG,eAAA;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACL;AAAA;AACF,EAEA,MAAM,cACJ,CAAA,KAAA,EACA,KACA,EAAA,QAAA,GAA8B,KAAK,eAClB,EAAA;AACjB,IAAM,MAAA,YAAA,GAAe,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAI,8BAA8B,KAAK,CAAA;AAAA;AAG/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,mBAAA,GAAsB,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,cAAe,CAAA,KAAA,EAAO,CAAG,EAAA,QAAQ,CAAC,CAAA;AACpF,MAAA,MAAMA,aAAe,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,mBAAmB,CAAA;AAC1D,MAAOA,OAAAA,aAAAA,CAAa,OAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAGlD,IAAM,MAAA,YAAA,GAAe,aAAa,KAAK,CAAA;AAEvC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAI,6BAA8B,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA;AAGtD,IAAA,OAAO,aAAa,QAAQ,CAAA,IAAK,YAAa,CAAA,IAAA,CAAK,eAAe,CAAK,IAAA,KAAA;AAAA;AAE3E","file":"chunk-OZJZVEF2.js","sourcesContent":["import { type z } from 'zod'\n\nimport { defaultMappings } from '@/lib/mappings'\nimport {\n DisplayTextScopeNotFoundError,\n DisplayTextValueNotFoundError,\n} from '@/types/displayText.errors'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SUPPORTED_LANGUAGES = ['en'] as const\ntype SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]\n\n// Define the display text configuration type for Zod enums\nexport type ServiceMappings = typeof defaultMappings\n\ntype ZodEnumValue<T> = T extends z.ZodEnum<[string, ...string[]]> ? z.infer<T> : never\n\nexport type DisplayTextConfig<T = string> = {\n [K in T extends z.ZodEnum<[string, ...string[]]> ? ZodEnumValue<T> : string]: {\n [L in SupportedLanguage]: string\n }\n} & Record<string, { [L in SupportedLanguage]: string }>\n\n// Define the expected interface for the service\nexport interface IDisplayTextService {\n getDisplayText: (\n scope: keyof ServiceMappings,\n value: string | string[],\n language?: SupportedLanguage\n ) => Promise<string>\n}\n\n// define the service\nexport class DisplayTextService implements IDisplayTextService {\n private readonly defaultLanguage: SupportedLanguage = 'en'\n private readonly mappings: ServiceMappings\n\n constructor(customMappings?: Partial<ServiceMappings>) {\n this.mappings = {\n ...defaultMappings, // Use all pre-defined mappings as defaults\n ...customMappings, // Override with any custom mappings if provided\n }\n }\n\n async getDisplayText(\n scope: keyof ServiceMappings,\n value: string | string[],\n language: SupportedLanguage = this.defaultLanguage\n ): Promise<string> {\n const scopeMapping = this.mappings[scope]\n\n if (!scopeMapping) {\n throw new DisplayTextScopeNotFoundError(scope)\n }\n\n if (Array.isArray(value)) {\n const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language))\n const displayTexts = await Promise.all(displayTextPromises)\n return displayTexts.filter((v) => !!v).join(', ')\n }\n\n const displayTexts = scopeMapping[value]\n\n if (!displayTexts) {\n throw new DisplayTextValueNotFoundError(value, scope)\n }\n\n return displayTexts[language] || displayTexts[this.defaultLanguage] || value\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkLV6BHE7Q_cjs = require('./chunk-LV6BHE7Q.cjs');
3
+ var chunkHDQBXWSS_cjs = require('./chunk-HDQBXWSS.cjs');
4
4
  var react = require('react');
5
5
  var Markdown = require('react-markdown');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -38,7 +38,7 @@ function ReadMore({ text, ...props }) {
38
38
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...props, children: [
39
39
  /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ jsxRuntime.jsx(Markdown__default.default, { children: snippet }) }),
40
40
  isOverMaxWords && /* @__PURE__ */ jsxRuntime.jsx(
41
- chunkLV6BHE7Q_cjs.Button,
41
+ chunkHDQBXWSS_cjs.Button,
42
42
  {
43
43
  type: "button",
44
44
  className: "mt-2 flex items-center justify-center",
@@ -54,5 +54,5 @@ function ReadMore({ text, ...props }) {
54
54
  }
55
55
 
56
56
  exports.ReadMore = ReadMore;
57
- //# sourceMappingURL=chunk-4IMEF4J5.cjs.map
58
- //# sourceMappingURL=chunk-4IMEF4J5.cjs.map
57
+ //# sourceMappingURL=chunk-PU52LECH.cjs.map
58
+ //# sourceMappingURL=chunk-PU52LECH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/ReadMore.tsx"],"names":["useState","useEffect","text","maxWords","isExpanded","snippet","jsxs","jsx","Markdown","Button"],"mappings":";;;;;;;;;;;AAWO,SAAS,QAAS,CAAA,EAAE,IAAM,EAAA,GAAG,OAAkC,EAAA;AACpE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,eAAS,KAAK,CAAA;AAClD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAAS,GAAG,CAAA;AAE5C,EAAA,MAAM,cAAiB,GAAA,IAAA,CAAK,KAAM,CAAA,GAAG,EAAE,MAAS,GAAA,QAAA;AAEhD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,MAAM,cAAc,MAAO,CAAA,UAAA;AAC3B,MAAA,IAAI,eAAe,GAAK,EAAA;AACtB,QAAA,WAAA,CAAY,EAAE,CAAA;AAAA,OACT,MAAA;AACL,QAAA,WAAA,CAAY,GAAG,CAAA;AAAA;AACjB,KACF;AAEA,IAAe,cAAA,EAAA;AACf,IAAO,MAAA,CAAA,gBAAA,CAAiB,UAAU,cAAc,CAAA;AAEhD,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAoB,CAAA,QAAA,EAAU,cAAc,CAAA;AAAA,GAClE,EAAG,EAAE,CAAA;AAEL,EAAS,SAAA,kBAAA,CAAmBC,KAAcC,EAAAA,SAAAA,EAAkBC,WAA6B,EAAA;AACvF,IAAI,IAAA,CAAC,gBAAuBF,OAAAA,KAAAA;AAE5B,IAAM,MAAA,KAAA,GAAQA,KAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AAC5B,IAAMG,MAAAA,QAAAA,GAAUD,cAAaF,KAAO,GAAA,KAAA,CAAM,MAAM,CAAGC,EAAAA,SAAQ,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AACrE,IAAM,MAAA,YAAA,GAAeC,cAAa,EAAK,GAAA,KAAA;AACvC,IAAO,OAAA,CAAA,EAAGC,QAAO,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA;AAAA;AAGnC,EAAA,MAAM,UAAa,GAAA,MAAM,aAAc,CAAA,CAAC,UAAU,CAAA;AAElD,EAAA,MAAM,OAAU,GAAA,kBAAA,CAAmB,IAAM,EAAA,QAAA,EAAU,UAAU,CAAA;AAE7D,EACE,uBAAAC,eAAA,CAAC,KAAK,EAAA,EAAA,GAAG,KACP,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,KAAA,EAAA,EAAI,eAAY,gBAAiB,EAAA,SAAA,EAAU,qBAC1C,QAAC,kBAAAA,cAAA,CAAAC,yBAAA,EAAA,EAAU,mBAAQ,CACrB,EAAA,CAAA;AAAA,IACC,cACC,oBAAAD,cAAA;AAAA,MAACE,wBAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,QAAA;AAAA,QACL,SAAU,EAAA,uCAAA;AAAA,QACV,OAAQ,EAAA,MAAA;AAAA,QACR,OAAS,EAAA,UAAA;AAAA,QAET,QAAA,kBAAAH,eAAA,CAAC,GAAE,EAAA,EAAA,SAAA,EAAU,gDAAiD,EAAA,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACtD,aAAa,MAAS,GAAA;AAAA,SAC9B,EAAA;AAAA;AAAA;AACF,GAEJ,EAAA,CAAA;AAEJ","file":"chunk-4IMEF4J5.cjs","sourcesContent":["'use client'\n\nimport { type ComponentProps, useEffect, useState } from 'react'\nimport Markdown from 'react-markdown'\n\nimport { Button } from '@/components/ui/Button'\n\nexport type ReadMoreProps = ComponentProps<'div'> & {\n text: string\n}\n\nexport function ReadMore({ text, ...props }: Readonly<ReadMoreProps>) {\n const [isExpanded, setIsExpanded] = useState(false)\n const [maxWords, setMaxWords] = useState(160)\n\n const isOverMaxWords = text.split(' ').length > maxWords\n\n useEffect(() => {\n const updateMaxWords = () => {\n const windowWidth = window.innerWidth\n if (windowWidth <= 768) {\n setMaxWords(50)\n } else {\n setMaxWords(160)\n }\n }\n\n updateMaxWords()\n window.addEventListener('resize', updateMaxWords)\n\n return () => window.removeEventListener('resize', updateMaxWords)\n }, [])\n\n function createReadMoreText(text: string, maxWords: number, isExpanded: boolean): string {\n if (!isOverMaxWords) return text\n\n const words = text.split(' ')\n const snippet = isExpanded ? text : words.slice(0, maxWords).join(' ')\n const readMoreText = isExpanded ? '' : '...'\n return `${snippet} ${readMoreText}`\n }\n\n const toggleText = () => setIsExpanded(!isExpanded)\n\n const snippet = createReadMoreText(text, maxWords, isExpanded)\n\n return (\n <div {...props}>\n <div data-testid=\"read-more-text\" className=\"prose lg:prose-lg\">\n <Markdown>{snippet}</Markdown>\n </div>\n {isOverMaxWords && (\n <Button\n type=\"button\"\n className=\"mt-2 flex items-center justify-center\"\n variant=\"link\"\n onClick={toggleText}\n >\n <p className=\"text-sm font-bold underline underline-offset-2\">\n Read {isExpanded ? 'less' : 'more'}\n </p>\n </Button>\n )}\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/ui/ReadMore.tsx"],"names":["useState","useEffect","text","maxWords","isExpanded","snippet","jsxs","jsx","Markdown","Button"],"mappings":";;;;;;;;;;;AAWO,SAAS,QAAS,CAAA,EAAE,IAAM,EAAA,GAAG,OAAkC,EAAA;AACpE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,eAAS,KAAK,CAAA;AAClD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAAS,GAAG,CAAA;AAE5C,EAAA,MAAM,cAAiB,GAAA,IAAA,CAAK,KAAM,CAAA,GAAG,EAAE,MAAS,GAAA,QAAA;AAEhD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,MAAM,cAAc,MAAO,CAAA,UAAA;AAC3B,MAAA,IAAI,eAAe,GAAK,EAAA;AACtB,QAAA,WAAA,CAAY,EAAE,CAAA;AAAA,OACT,MAAA;AACL,QAAA,WAAA,CAAY,GAAG,CAAA;AAAA;AACjB,KACF;AAEA,IAAe,cAAA,EAAA;AACf,IAAO,MAAA,CAAA,gBAAA,CAAiB,UAAU,cAAc,CAAA;AAEhD,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAoB,CAAA,QAAA,EAAU,cAAc,CAAA;AAAA,GAClE,EAAG,EAAE,CAAA;AAEL,EAAS,SAAA,kBAAA,CAAmBC,KAAcC,EAAAA,SAAAA,EAAkBC,WAA6B,EAAA;AACvF,IAAI,IAAA,CAAC,gBAAuBF,OAAAA,KAAAA;AAE5B,IAAM,MAAA,KAAA,GAAQA,KAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AAC5B,IAAMG,MAAAA,QAAAA,GAAUD,cAAaF,KAAO,GAAA,KAAA,CAAM,MAAM,CAAGC,EAAAA,SAAQ,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AACrE,IAAM,MAAA,YAAA,GAAeC,cAAa,EAAK,GAAA,KAAA;AACvC,IAAO,OAAA,CAAA,EAAGC,QAAO,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA;AAAA;AAGnC,EAAA,MAAM,UAAa,GAAA,MAAM,aAAc,CAAA,CAAC,UAAU,CAAA;AAElD,EAAA,MAAM,OAAU,GAAA,kBAAA,CAAmB,IAAM,EAAA,QAAA,EAAU,UAAU,CAAA;AAE7D,EACE,uBAAAC,eAAA,CAAC,KAAK,EAAA,EAAA,GAAG,KACP,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,KAAA,EAAA,EAAI,eAAY,gBAAiB,EAAA,SAAA,EAAU,qBAC1C,QAAC,kBAAAA,cAAA,CAAAC,yBAAA,EAAA,EAAU,mBAAQ,CACrB,EAAA,CAAA;AAAA,IACC,cACC,oBAAAD,cAAA;AAAA,MAACE,wBAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,QAAA;AAAA,QACL,SAAU,EAAA,uCAAA;AAAA,QACV,OAAQ,EAAA,MAAA;AAAA,QACR,OAAS,EAAA,UAAA;AAAA,QAET,QAAA,kBAAAH,eAAA,CAAC,GAAE,EAAA,EAAA,SAAA,EAAU,gDAAiD,EAAA,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACtD,aAAa,MAAS,GAAA;AAAA,SAC9B,EAAA;AAAA;AAAA;AACF,GAEJ,EAAA,CAAA;AAEJ","file":"chunk-PU52LECH.cjs","sourcesContent":["'use client'\n\nimport { type ComponentProps, useEffect, useState } from 'react'\nimport Markdown from 'react-markdown'\n\nimport { Button } from '@/components/ui/Button'\n\nexport type ReadMoreProps = ComponentProps<'div'> & {\n text: string\n}\n\nexport function ReadMore({ text, ...props }: Readonly<ReadMoreProps>) {\n const [isExpanded, setIsExpanded] = useState(false)\n const [maxWords, setMaxWords] = useState(160)\n\n const isOverMaxWords = text.split(' ').length > maxWords\n\n useEffect(() => {\n const updateMaxWords = () => {\n const windowWidth = window.innerWidth\n if (windowWidth <= 768) {\n setMaxWords(50)\n } else {\n setMaxWords(160)\n }\n }\n\n updateMaxWords()\n window.addEventListener('resize', updateMaxWords)\n\n return () => window.removeEventListener('resize', updateMaxWords)\n }, [])\n\n function createReadMoreText(text: string, maxWords: number, isExpanded: boolean): string {\n if (!isOverMaxWords) return text\n\n const words = text.split(' ')\n const snippet = isExpanded ? text : words.slice(0, maxWords).join(' ')\n const readMoreText = isExpanded ? '' : '...'\n return `${snippet} ${readMoreText}`\n }\n\n const toggleText = () => setIsExpanded(!isExpanded)\n\n const snippet = createReadMoreText(text, maxWords, isExpanded)\n\n return (\n <div {...props}>\n <div data-testid=\"read-more-text\" className=\"prose lg:prose-lg\">\n <Markdown>{snippet}</Markdown>\n </div>\n {isOverMaxWords && (\n <Button\n type=\"button\"\n className=\"mt-2 flex items-center justify-center\"\n variant=\"link\"\n onClick={toggleText}\n >\n <p className=\"text-sm font-bold underline underline-offset-2\">\n Read {isExpanded ? 'less' : 'more'}\n </p>\n </Button>\n )}\n </div>\n )\n}\n"]}