@next-degree/pickle-shared-js 0.7.51 → 0.9.2
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.
- package/dist/components/jobPost/JobDescription.cjs +2 -1
- package/dist/components/jobPost/JobDescription.cjs.map +1 -1
- package/dist/components/jobPost/JobDescription.js +2 -1
- package/dist/components/jobPost/JobDescription.js.map +1 -1
- package/dist/components/jobPost/JobPost.cjs +2 -1
- package/dist/components/jobPost/JobPost.cjs.map +1 -1
- package/dist/components/jobPost/JobPost.d.cts +1 -1
- package/dist/components/jobPost/JobPost.d.ts +1 -1
- package/dist/components/jobPost/JobPost.js +2 -1
- package/dist/components/jobPost/JobPost.js.map +1 -1
- package/dist/components/primitives/command.d.cts +7 -7
- package/dist/components/primitives/command.d.ts +7 -7
- package/dist/components/primitives/radio-group.cjs +74 -0
- package/dist/components/primitives/radio-group.cjs.map +1 -0
- package/dist/components/primitives/radio-group.d.cts +9 -0
- package/dist/components/primitives/radio-group.d.ts +9 -0
- package/dist/components/primitives/radio-group.js +39 -0
- package/dist/components/primitives/radio-group.js.map +1 -0
- package/dist/components/ui/Button.cjs +2 -1
- package/dist/components/ui/Button.cjs.map +1 -1
- package/dist/components/ui/Button.d.cts +1 -1
- package/dist/components/ui/Button.d.ts +1 -1
- package/dist/components/ui/Button.js +2 -1
- package/dist/components/ui/Button.js.map +1 -1
- package/dist/components/ui/Checkbox.cjs +38 -13
- package/dist/components/ui/Checkbox.cjs.map +1 -1
- package/dist/components/ui/Checkbox.d.cts +2 -1
- package/dist/components/ui/Checkbox.d.ts +2 -1
- package/dist/components/ui/Checkbox.js +31 -11
- package/dist/components/ui/Checkbox.js.map +1 -1
- package/dist/components/ui/Combobox.cjs +62 -41
- package/dist/components/ui/Combobox.cjs.map +1 -1
- package/dist/components/ui/Combobox.js +53 -32
- package/dist/components/ui/Combobox.js.map +1 -1
- package/dist/components/ui/DatePicker.cjs +133 -149
- package/dist/components/ui/DatePicker.cjs.map +1 -1
- package/dist/components/ui/DatePicker.js +132 -148
- package/dist/components/ui/DatePicker.js.map +1 -1
- package/dist/components/ui/ListItem.cjs +40 -21
- package/dist/components/ui/ListItem.cjs.map +1 -1
- package/dist/components/ui/ListItem.js +36 -17
- package/dist/components/ui/ListItem.js.map +1 -1
- package/dist/components/ui/Radio.cjs +177 -0
- package/dist/components/ui/Radio.cjs.map +1 -0
- package/dist/components/ui/Radio.d.cts +27 -0
- package/dist/components/ui/Radio.d.ts +27 -0
- package/dist/components/ui/Radio.js +142 -0
- package/dist/components/ui/Radio.js.map +1 -0
- package/dist/components/ui/ReadMore.cjs +2 -1
- package/dist/components/ui/ReadMore.cjs.map +1 -1
- package/dist/components/ui/ReadMore.js +2 -1
- package/dist/components/ui/ReadMore.js.map +1 -1
- package/dist/components/ui/Select.cjs +48 -24
- package/dist/components/ui/Select.cjs.map +1 -1
- package/dist/components/ui/Select.js +49 -25
- package/dist/components/ui/Select.js.map +1 -1
- package/dist/components/ui/Switch.cjs +83 -0
- package/dist/components/ui/Switch.cjs.map +1 -0
- package/dist/components/ui/Switch.d.cts +10 -0
- package/dist/components/ui/Switch.d.ts +10 -0
- package/dist/components/ui/Switch.js +48 -0
- package/dist/components/ui/Switch.js.map +1 -0
- package/dist/components/ui/buttonShadcn.cjs +2 -9
- package/dist/components/ui/buttonShadcn.cjs.map +1 -1
- package/dist/components/ui/buttonShadcn.d.cts +2 -2
- package/dist/components/ui/buttonShadcn.d.ts +2 -2
- package/dist/components/ui/buttonShadcn.js +2 -9
- package/dist/components/ui/buttonShadcn.js.map +1 -1
- package/dist/components/ui/calendar.cjs +7 -17
- package/dist/components/ui/calendar.cjs.map +1 -1
- package/dist/components/ui/calendar.js +7 -17
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/{displayText-CQRZ2fOT.d.cts → displayText-ca_ofoAC.d.cts} +2 -2
- package/dist/{displayText-LlsLfkTS.d.ts → displayText-eoAHqSNz.d.ts} +2 -2
- package/dist/hooks/useDisplayText.d.cts +3 -3
- package/dist/hooks/useDisplayText.d.ts +3 -3
- package/dist/index.cjs +574 -259
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -7
- package/dist/index.d.ts +13 -7
- package/dist/index.js +536 -224
- package/dist/index.js.map +1 -1
- package/dist/lib/locations.d.cts +2 -2
- package/dist/lib/locations.d.ts +2 -2
- package/dist/lib/mappings.d.cts +3 -3
- package/dist/lib/mappings.d.ts +3 -3
- package/dist/lib/salaryRange.d.cts +1 -1
- package/dist/lib/salaryRange.d.ts +1 -1
- package/dist/services/displayText.d.cts +3 -3
- package/dist/services/displayText.d.ts +3 -3
- package/dist/styles/globals.css +78 -0
- package/dist/styles/globals.css.map +1 -1
- package/dist/types/data/company_service_latest.d.cts +1 -1
- package/dist/types/data/company_service_latest.d.ts +1 -1
- package/dist/types/data/job_posting_service_latest.d.cts +1 -1
- package/dist/types/data/job_posting_service_latest.d.ts +1 -1
- package/dist/types/data/shared_pickle_output_latest.d.cts +1 -1
- package/dist/types/data/shared_pickle_output_latest.d.ts +1 -1
- package/package.json +7 -10
- package/dist/{company_service_latest-8IMr2hMZ.d.cts → company_service_latest-CRQFzMep.d.cts} +364 -364
- package/dist/{company_service_latest-8IMr2hMZ.d.ts → company_service_latest-CRQFzMep.d.ts} +364 -364
- package/dist/{job_posting_service_latest-CKITrYyz.d.cts → job_posting_service_latest-BOVbz68F.d.cts} +314 -314
- package/dist/{job_posting_service_latest-CKITrYyz.d.ts → job_posting_service_latest-BOVbz68F.d.ts} +314 -314
- package/dist/{shared_pickle_output_latest-Cwf2EMdH.d.cts → shared_pickle_output_latest-DKOmTyYk.d.cts} +18 -18
- package/dist/{shared_pickle_output_latest-Cwf2EMdH.d.ts → shared_pickle_output_latest-DKOmTyYk.d.ts} +18 -18
package/dist/index.cjs
CHANGED
|
@@ -34,7 +34,7 @@ __export(index_exports, {
|
|
|
34
34
|
BackButton: () => BackButton,
|
|
35
35
|
Badge: () => Badge,
|
|
36
36
|
Button: () => Button,
|
|
37
|
-
Checkbox: () =>
|
|
37
|
+
Checkbox: () => Checkbox,
|
|
38
38
|
Chip: () => Chip_default,
|
|
39
39
|
Combobox: () => Combobox,
|
|
40
40
|
CompanyBenefits: () => CompanyBenefits,
|
|
@@ -42,6 +42,7 @@ __export(index_exports, {
|
|
|
42
42
|
CompanyService: () => company_service_latest_exports,
|
|
43
43
|
CompanyTake: () => CompanyTake,
|
|
44
44
|
Counter: () => Counter,
|
|
45
|
+
DatePicker: () => DatePicker,
|
|
45
46
|
Icon: () => Icon,
|
|
46
47
|
Input: () => Input_default,
|
|
47
48
|
InputOtp: () => InputOtp,
|
|
@@ -54,9 +55,11 @@ __export(index_exports, {
|
|
|
54
55
|
ListItem: () => ListItem_default,
|
|
55
56
|
MapComponent: () => MapComponent_default,
|
|
56
57
|
PlacesQueryInput: () => PlacesQueryInput_default,
|
|
58
|
+
Radio: () => Radio,
|
|
57
59
|
ReadMore: () => ReadMore,
|
|
58
60
|
Select: () => Select_default,
|
|
59
61
|
SharedService: () => shared_pickle_output_latest_exports,
|
|
62
|
+
Switch: () => Switch,
|
|
60
63
|
WindowHistoryProvider: () => WindowHistoryProvider,
|
|
61
64
|
cn: () => cn,
|
|
62
65
|
fetchLocation: () => fetchLocation,
|
|
@@ -65,76 +68,11 @@ __export(index_exports, {
|
|
|
65
68
|
});
|
|
66
69
|
module.exports = __toCommonJS(index_exports);
|
|
67
70
|
|
|
68
|
-
// src/components/ui/Checkbox.tsx
|
|
69
|
-
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
70
|
-
var import_lucide_react = require("lucide-react");
|
|
71
|
-
var import_react = require("react");
|
|
72
|
-
|
|
73
|
-
// src/lib/utils.ts
|
|
74
|
-
var import_clsx = require("clsx");
|
|
75
|
-
var import_tailwind_merge = require("tailwind-merge");
|
|
76
|
-
function cn(...inputs) {
|
|
77
|
-
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// src/components/ui/Checkbox.tsx
|
|
81
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
82
|
-
var CheckboxToggle = (0, import_react.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
83
|
-
CheckboxPrimitive.Root,
|
|
84
|
-
{
|
|
85
|
-
ref,
|
|
86
|
-
className: cn(
|
|
87
|
-
"group",
|
|
88
|
-
"peer",
|
|
89
|
-
"h-5",
|
|
90
|
-
"w-5",
|
|
91
|
-
"shrink-0",
|
|
92
|
-
"rounded-md",
|
|
93
|
-
"border",
|
|
94
|
-
"border-grey-10",
|
|
95
|
-
"outline",
|
|
96
|
-
"outline-1",
|
|
97
|
-
"outline-offset-2",
|
|
98
|
-
"outline-transparent",
|
|
99
|
-
"hover:border-grey-20",
|
|
100
|
-
"focus:outline-purple-100",
|
|
101
|
-
"active:border-green-80",
|
|
102
|
-
"disabled:cursor-not-allowed",
|
|
103
|
-
"disabled:opacity-50",
|
|
104
|
-
"data-[state=checked]:bg-green-80",
|
|
105
|
-
"data-[state=indeterminate]:bg-green-80",
|
|
106
|
-
"data-[state=checked]:text-white",
|
|
107
|
-
"data-[state=indeterminate]:text-primary-foreground",
|
|
108
|
-
props.disabled && "data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",
|
|
109
|
-
className
|
|
110
|
-
),
|
|
111
|
-
...props,
|
|
112
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
|
|
113
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }),
|
|
114
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" })
|
|
115
|
-
] })
|
|
116
|
-
}
|
|
117
|
-
));
|
|
118
|
-
CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
|
|
119
|
-
var Checkbox = (0, import_react.forwardRef)(
|
|
120
|
-
({ classNames, children, ...props }, ref) => {
|
|
121
|
-
const { disabled } = props;
|
|
122
|
-
const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
|
|
123
|
-
const labelClassName = disabled ? "text-grey-40 pointer-events-none" : "";
|
|
124
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: cn("flex space-x-2", classNames?.wrapper), children: [
|
|
125
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CheckboxToggle, { id, disabled, ref, ...props }),
|
|
126
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", { htmlFor: id, className: cn(labelClassName, classNames?.label), children })
|
|
127
|
-
] });
|
|
128
|
-
}
|
|
129
|
-
);
|
|
130
|
-
Checkbox.displayName = "Checkbox";
|
|
131
|
-
var Checkbox_default = Checkbox;
|
|
132
|
-
|
|
133
71
|
// src/components/ui/Chip.tsx
|
|
134
72
|
var import_cva = require("cva");
|
|
135
|
-
var
|
|
136
|
-
var
|
|
137
|
-
var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ (0,
|
|
73
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
74
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
75
|
+
var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_tailwind_merge.twMerge)(chipVariants({ variant, size, className })), ...props });
|
|
138
76
|
var chipVariants = (0, import_cva.cva)(["flex", "items-center", "rounded-3xl", "border", "w-fit"], {
|
|
139
77
|
variants: {
|
|
140
78
|
variant: {
|
|
@@ -158,28 +96,35 @@ var Chip_default = Chip;
|
|
|
158
96
|
|
|
159
97
|
// src/components/ui/Input.tsx
|
|
160
98
|
var import_cva2 = require("cva");
|
|
161
|
-
var
|
|
162
|
-
var
|
|
99
|
+
var import_lucide_react2 = require("lucide-react");
|
|
100
|
+
var import_react = require("react");
|
|
101
|
+
|
|
102
|
+
// src/lib/utils.ts
|
|
103
|
+
var import_clsx = require("clsx");
|
|
104
|
+
var import_tailwind_merge2 = require("tailwind-merge");
|
|
105
|
+
function cn(...inputs) {
|
|
106
|
+
return (0, import_tailwind_merge2.twMerge)((0, import_clsx.clsx)(inputs));
|
|
107
|
+
}
|
|
163
108
|
|
|
164
109
|
// src/components/ui/ErrorMessage.tsx
|
|
165
|
-
var
|
|
110
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
166
111
|
function ErrorMessage({ message, className, ...props }) {
|
|
167
112
|
if (!message) return null;
|
|
168
|
-
return /* @__PURE__ */ (0,
|
|
113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: cn("px-1 text-xs text-red-600", className), ...props, children: message });
|
|
169
114
|
}
|
|
170
115
|
var ErrorMessage_default = ErrorMessage;
|
|
171
116
|
|
|
172
117
|
// src/components/ui/Label.tsx
|
|
173
|
-
var
|
|
118
|
+
var import_lucide_react = require("lucide-react");
|
|
174
119
|
|
|
175
120
|
// src/components/primitives/tooltip.tsx
|
|
176
121
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
177
122
|
var React = __toESM(require("react"), 1);
|
|
178
|
-
var
|
|
123
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
179
124
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
180
125
|
var Tooltip = TooltipPrimitive.Root;
|
|
181
126
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
182
|
-
var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0,
|
|
127
|
+
var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
183
128
|
TooltipPrimitive.Content,
|
|
184
129
|
{
|
|
185
130
|
ref,
|
|
@@ -194,11 +139,11 @@ var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props },
|
|
|
194
139
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
195
140
|
|
|
196
141
|
// src/components/ui/Label.tsx
|
|
197
|
-
var
|
|
142
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
198
143
|
function Label({ text, required, description, className, ...props }) {
|
|
199
144
|
if (!text) return null;
|
|
200
|
-
return /* @__PURE__ */ (0,
|
|
201
|
-
/* @__PURE__ */ (0,
|
|
145
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full flex-row gap-1", children: [
|
|
146
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
202
147
|
"label",
|
|
203
148
|
{
|
|
204
149
|
className: cn(
|
|
@@ -208,32 +153,32 @@ function Label({ text, required, description, className, ...props }) {
|
|
|
208
153
|
...props,
|
|
209
154
|
children: [
|
|
210
155
|
text,
|
|
211
|
-
required && /* @__PURE__ */ (0,
|
|
156
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-red-600", children: "\xA0*" })
|
|
212
157
|
]
|
|
213
158
|
}
|
|
214
159
|
),
|
|
215
|
-
!!description && /* @__PURE__ */ (0,
|
|
216
|
-
/* @__PURE__ */ (0,
|
|
217
|
-
/* @__PURE__ */ (0,
|
|
160
|
+
!!description && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Tooltip, { children: [
|
|
161
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.InfoIcon, { className: "h-4 w-4" }) }),
|
|
162
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipContent, { className: "max-w-48", children: description })
|
|
218
163
|
] }) })
|
|
219
164
|
] });
|
|
220
165
|
}
|
|
221
166
|
var Label_default = Label;
|
|
222
167
|
|
|
223
168
|
// src/components/ui/Input.tsx
|
|
224
|
-
var
|
|
225
|
-
var Input = (0,
|
|
169
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
170
|
+
var Input = (0, import_react.forwardRef)(
|
|
226
171
|
({ label, error, description, theme, icon, onClear, value, onChange, classNames, ...props }, ref) => {
|
|
227
172
|
const handleClear = () => {
|
|
228
173
|
onChange?.({ target: { value: "" } });
|
|
229
174
|
onClear?.();
|
|
230
175
|
};
|
|
231
|
-
const IconComponent = icon &&
|
|
176
|
+
const IconComponent = icon && import_lucide_react2.icons[icon];
|
|
232
177
|
const placeholder = props.placeholder ?? (icon === "Search" ? "Search..." : "");
|
|
233
178
|
const hasIcon = !!icon;
|
|
234
179
|
const iconColor = theme === "dark" ? "text-white" : "text-grey-80";
|
|
235
|
-
return /* @__PURE__ */ (0,
|
|
236
|
-
label && /* @__PURE__ */ (0,
|
|
180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "group flex w-full flex-col gap-1", "data-testid": `input-wrapper-${props.id}`, children: [
|
|
181
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
237
182
|
Label_default,
|
|
238
183
|
{
|
|
239
184
|
text: label,
|
|
@@ -243,14 +188,14 @@ var Input = (0, import_react2.forwardRef)(
|
|
|
243
188
|
className: classNames?.label
|
|
244
189
|
}
|
|
245
190
|
),
|
|
246
|
-
/* @__PURE__ */ (0,
|
|
247
|
-
IconComponent && /* @__PURE__ */ (0,
|
|
191
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "relative flex flex-row items-center", children: [
|
|
192
|
+
IconComponent && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
248
193
|
IconComponent,
|
|
249
194
|
{
|
|
250
195
|
className: `absolute left-3 h-4 w-4 ${iconColor} opacity-50 group-hover:opacity-100`
|
|
251
196
|
}
|
|
252
197
|
),
|
|
253
|
-
/* @__PURE__ */ (0,
|
|
198
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
254
199
|
"input",
|
|
255
200
|
{
|
|
256
201
|
className: cn(inputVariants({ theme, hasIcon })),
|
|
@@ -262,8 +207,8 @@ var Input = (0, import_react2.forwardRef)(
|
|
|
262
207
|
...props
|
|
263
208
|
}
|
|
264
209
|
),
|
|
265
|
-
hasIcon && value && /* @__PURE__ */ (0,
|
|
266
|
-
|
|
210
|
+
hasIcon && value && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
211
|
+
import_lucide_react2.X,
|
|
267
212
|
{
|
|
268
213
|
className: `absolute right-3 h-4 w-4 cursor-pointer ${iconColor}`,
|
|
269
214
|
onClick: handleClear,
|
|
@@ -271,7 +216,7 @@ var Input = (0, import_react2.forwardRef)(
|
|
|
271
216
|
}
|
|
272
217
|
)
|
|
273
218
|
] }),
|
|
274
|
-
/* @__PURE__ */ (0,
|
|
219
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ErrorMessage_default, { message: error })
|
|
275
220
|
] });
|
|
276
221
|
}
|
|
277
222
|
);
|
|
@@ -329,6 +274,75 @@ var Input_default = Input;
|
|
|
329
274
|
// src/components/ui/ListItem.tsx
|
|
330
275
|
var import_lucide_react4 = require("lucide-react");
|
|
331
276
|
var import_lucide_react5 = require("lucide-react");
|
|
277
|
+
|
|
278
|
+
// src/components/ui/Checkbox.tsx
|
|
279
|
+
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
280
|
+
var import_lucide_react3 = require("lucide-react");
|
|
281
|
+
var import_react2 = require("react");
|
|
282
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
283
|
+
var CheckboxToggle = (0, import_react2.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
284
|
+
CheckboxPrimitive.Root,
|
|
285
|
+
{
|
|
286
|
+
ref,
|
|
287
|
+
className: cn(
|
|
288
|
+
"group",
|
|
289
|
+
"peer",
|
|
290
|
+
"h-5",
|
|
291
|
+
"w-5",
|
|
292
|
+
"shrink-0",
|
|
293
|
+
"rounded-md",
|
|
294
|
+
"border",
|
|
295
|
+
"border-grey-10",
|
|
296
|
+
"outline",
|
|
297
|
+
"outline-1",
|
|
298
|
+
"outline-offset-2",
|
|
299
|
+
"outline-transparent",
|
|
300
|
+
"hover:border-grey-20",
|
|
301
|
+
"focus:outline-purple-100",
|
|
302
|
+
"active:border-green-80",
|
|
303
|
+
"disabled:cursor-not-allowed",
|
|
304
|
+
"disabled:opacity-50",
|
|
305
|
+
"data-[state=checked]:bg-green-80",
|
|
306
|
+
"data-[state=indeterminate]:bg-green-80",
|
|
307
|
+
"data-[state=checked]:text-white",
|
|
308
|
+
"data-[state=indeterminate]:text-primary-foreground",
|
|
309
|
+
props.disabled && "data-[state=checked]:text-foreground bg-grey-20 data-[state=checked]:bg-grey-20",
|
|
310
|
+
className
|
|
311
|
+
),
|
|
312
|
+
...props,
|
|
313
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
|
|
314
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react3.Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }),
|
|
315
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react3.Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" })
|
|
316
|
+
] })
|
|
317
|
+
}
|
|
318
|
+
));
|
|
319
|
+
CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
|
|
320
|
+
var Checkbox = (0, import_react2.forwardRef)(
|
|
321
|
+
({ error, classNames, children, ...props }, ref) => {
|
|
322
|
+
const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
|
|
323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cn("flex space-x-2", classNames?.wrapper), children: [
|
|
324
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CheckboxToggle, { id, ref, ...props }),
|
|
325
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
326
|
+
"label",
|
|
327
|
+
{
|
|
328
|
+
htmlFor: id,
|
|
329
|
+
className: cn(
|
|
330
|
+
"text-sm",
|
|
331
|
+
props.disabled && "pointer-events-none text-grey-40",
|
|
332
|
+
classNames?.label
|
|
333
|
+
),
|
|
334
|
+
children: [
|
|
335
|
+
children,
|
|
336
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ErrorMessage_default, { message: error, className: "mt-1" })
|
|
337
|
+
]
|
|
338
|
+
}
|
|
339
|
+
)
|
|
340
|
+
] });
|
|
341
|
+
}
|
|
342
|
+
);
|
|
343
|
+
Checkbox.displayName = "Checkbox";
|
|
344
|
+
|
|
345
|
+
// src/components/ui/ListItem.tsx
|
|
332
346
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
333
347
|
function ListItem({
|
|
334
348
|
icon,
|
|
@@ -359,7 +373,7 @@ function ListItem({
|
|
|
359
373
|
"data-state": isSelected ? "checked" : "unchecked",
|
|
360
374
|
children: [
|
|
361
375
|
optionIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "mr-2", children: optionIcon }),
|
|
362
|
-
hasCheckbox && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
376
|
+
hasCheckbox && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
|
|
363
377
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { children: [
|
|
364
378
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { children: title }),
|
|
365
379
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-xs text-grey-80", children: description })
|
|
@@ -753,7 +767,18 @@ Separator.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
753
767
|
// src/components/ui/Select.tsx
|
|
754
768
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
755
769
|
var Select = (0, import_react4.forwardRef)(
|
|
756
|
-
({
|
|
770
|
+
({
|
|
771
|
+
label,
|
|
772
|
+
options,
|
|
773
|
+
placeholder,
|
|
774
|
+
multiselect,
|
|
775
|
+
description,
|
|
776
|
+
classNames,
|
|
777
|
+
error,
|
|
778
|
+
id,
|
|
779
|
+
children: footer,
|
|
780
|
+
...props
|
|
781
|
+
}, ref) => {
|
|
757
782
|
const { value, defaultValue, dir, className, onChange, ...rest } = props;
|
|
758
783
|
const [selected, setSelected] = (0, import_react4.useState)([]);
|
|
759
784
|
const [open, setOpen] = (0, import_react4.useState)(false);
|
|
@@ -842,28 +867,30 @@ var Select = (0, import_react4.forwardRef)(
|
|
|
842
867
|
onPointerDownOutside: toggleOpen,
|
|
843
868
|
onKeyDown: closeOnEscape,
|
|
844
869
|
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SelectPrimitive.Viewport, { children: [
|
|
845
|
-
multiselect && !!chipLabels?.length && /* @__PURE__ */ (0, import_jsx_runtime13.
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
870
|
+
multiselect && !!chipLabels?.length && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
871
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
872
|
+
SelectPrimitive.Group,
|
|
873
|
+
{
|
|
874
|
+
className: "mb-2 flex flex-row flex-wrap gap-1 px-2",
|
|
875
|
+
"data-testid": "selected-labels",
|
|
876
|
+
children: chipLabels?.map(
|
|
877
|
+
(chip) => chip && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Chip_default, { size: "small", variant: "primary", children: [
|
|
878
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: chip.title }),
|
|
879
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
880
|
+
import_lucide_react9.X,
|
|
881
|
+
{
|
|
882
|
+
size: 18,
|
|
883
|
+
"data-testid": `chip-remove-${chip.value}`,
|
|
884
|
+
className: "cursor-pointer",
|
|
885
|
+
onClick: () => handleChange(chip.value)
|
|
886
|
+
}
|
|
887
|
+
)
|
|
888
|
+
] }, chip.title)
|
|
889
|
+
)
|
|
890
|
+
}
|
|
891
|
+
),
|
|
892
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Separator, {})
|
|
893
|
+
] }),
|
|
867
894
|
options?.map(({ id: id2, title, value: value2 }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
868
895
|
SelectPrimitive.Item,
|
|
869
896
|
{
|
|
@@ -884,7 +911,18 @@ var Select = (0, import_react4.forwardRef)(
|
|
|
884
911
|
]
|
|
885
912
|
},
|
|
886
913
|
id2
|
|
887
|
-
))
|
|
914
|
+
)),
|
|
915
|
+
!!footer && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
916
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Separator, {}),
|
|
917
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
918
|
+
SelectPrimitive.Group,
|
|
919
|
+
{
|
|
920
|
+
className: "mt-2 flex flex-row flex-wrap gap-1 px-2",
|
|
921
|
+
"data-testid": "selected-labels",
|
|
922
|
+
children: footer
|
|
923
|
+
}
|
|
924
|
+
)
|
|
925
|
+
] })
|
|
888
926
|
] })
|
|
889
927
|
}
|
|
890
928
|
) })
|
|
@@ -993,12 +1031,13 @@ var import_cva5 = require("cva");
|
|
|
993
1031
|
var import_react5 = require("react");
|
|
994
1032
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
995
1033
|
var Button = (0, import_react5.forwardRef)(
|
|
996
|
-
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
1034
|
+
({ className, variant, size, asChild = false, type = "button", ...props }, ref) => {
|
|
997
1035
|
const Component = asChild ? import_react_slot.Slot : "button";
|
|
998
1036
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
999
1037
|
Component,
|
|
1000
1038
|
{
|
|
1001
1039
|
className: cn(buttonVariants({ variant, size, className })),
|
|
1040
|
+
type,
|
|
1002
1041
|
ref,
|
|
1003
1042
|
...props
|
|
1004
1043
|
}
|
|
@@ -1316,15 +1355,114 @@ var triggerVariants = (0, import_cva6.cva)(
|
|
|
1316
1355
|
}
|
|
1317
1356
|
);
|
|
1318
1357
|
|
|
1358
|
+
// src/components/ui/Switch.tsx
|
|
1359
|
+
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"), 1);
|
|
1360
|
+
var import_react7 = require("react");
|
|
1361
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1362
|
+
var Switch = (0, import_react7.forwardRef)(
|
|
1363
|
+
({ label, error, className, ...props }, ref) => {
|
|
1364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: cn("flex items-center", props.disabled && "opacity-50"), children: [
|
|
1365
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1366
|
+
SwitchPrimitive.Root,
|
|
1367
|
+
{
|
|
1368
|
+
className: cn(
|
|
1369
|
+
"relative h-[25px] w-[42px] cursor-default rounded-full bg-grey-20 shadow-md outline-none focus:outline-purple-100 data-[state=checked]:bg-green-90",
|
|
1370
|
+
className
|
|
1371
|
+
),
|
|
1372
|
+
ref,
|
|
1373
|
+
...props,
|
|
1374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SwitchPrimitive.Thumb, { className: "block h-[21px] w-[21px] translate-x-0.5 rounded-full bg-white shadow-[0_2px_2px] transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[19px]" })
|
|
1375
|
+
}
|
|
1376
|
+
),
|
|
1377
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { className: "pl-4 text-sm leading-none text-inherit", htmlFor: props.name, children: [
|
|
1378
|
+
label,
|
|
1379
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ErrorMessage_default, { message: error, className: "mt-1" })
|
|
1380
|
+
] })
|
|
1381
|
+
] });
|
|
1382
|
+
}
|
|
1383
|
+
);
|
|
1384
|
+
Switch.displayName = "Switch";
|
|
1385
|
+
|
|
1386
|
+
// src/components/ui/Radio.tsx
|
|
1387
|
+
var import_react9 = require("react");
|
|
1388
|
+
|
|
1389
|
+
// src/components/primitives/radio-group.tsx
|
|
1390
|
+
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
1391
|
+
var import_react8 = require("react");
|
|
1392
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1393
|
+
var RadioGroup = (0, import_react8.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(RadioGroupPrimitive.Root, { className, ...props, ref }));
|
|
1394
|
+
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
1395
|
+
var RadioGroupItem = (0, import_react8.forwardRef)(({ className, children, ...props }, ref) => {
|
|
1396
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "group flex flex-row items-center gap-2", children: [
|
|
1397
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1398
|
+
RadioGroupPrimitive.Item,
|
|
1399
|
+
{
|
|
1400
|
+
ref,
|
|
1401
|
+
className: cn(
|
|
1402
|
+
"focus-visible:ring-ring peer aspect-square h-4 rounded-full border border-grey-10 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-20 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",
|
|
1403
|
+
className
|
|
1404
|
+
),
|
|
1405
|
+
...props
|
|
1406
|
+
}
|
|
1407
|
+
),
|
|
1408
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("label", { htmlFor: props.id, className: "text-sm peer-data-[disabled]:text-grey-40", children })
|
|
1409
|
+
] });
|
|
1410
|
+
});
|
|
1411
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
1412
|
+
|
|
1413
|
+
// src/components/ui/Radio.tsx
|
|
1414
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1415
|
+
var Radio = (0, import_react9.forwardRef)(
|
|
1416
|
+
({
|
|
1417
|
+
label,
|
|
1418
|
+
error,
|
|
1419
|
+
description,
|
|
1420
|
+
options,
|
|
1421
|
+
classNames,
|
|
1422
|
+
onChange: handleValueChange,
|
|
1423
|
+
orientation,
|
|
1424
|
+
...props
|
|
1425
|
+
}, ref) => {
|
|
1426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: cn("flex flex-col gap-1", classNames?.root), children: [
|
|
1427
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Label_default, { text: label, description, required: props.required }),
|
|
1428
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1429
|
+
RadioGroup,
|
|
1430
|
+
{
|
|
1431
|
+
ref,
|
|
1432
|
+
className: cn(
|
|
1433
|
+
"flex text-sm",
|
|
1434
|
+
orientation === "vertical" ? "flex-col gap-2" : "flex-row gap-4",
|
|
1435
|
+
classNames?.group
|
|
1436
|
+
),
|
|
1437
|
+
onValueChange: handleValueChange,
|
|
1438
|
+
...props,
|
|
1439
|
+
children: options?.map(({ id, title, value }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1440
|
+
RadioGroupItem,
|
|
1441
|
+
{
|
|
1442
|
+
value,
|
|
1443
|
+
id: `radio-group-item-${title}`,
|
|
1444
|
+
className: classNames?.item,
|
|
1445
|
+
children: title
|
|
1446
|
+
},
|
|
1447
|
+
id
|
|
1448
|
+
))
|
|
1449
|
+
}
|
|
1450
|
+
),
|
|
1451
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ErrorMessage_default, { message: error })
|
|
1452
|
+
] });
|
|
1453
|
+
}
|
|
1454
|
+
);
|
|
1455
|
+
Radio.displayName = "Radio";
|
|
1456
|
+
|
|
1319
1457
|
// src/components/ui/Counter.tsx
|
|
1320
1458
|
var import_cva7 = require("cva");
|
|
1321
1459
|
var import_lucide_react11 = require("lucide-react");
|
|
1322
|
-
var
|
|
1323
|
-
var
|
|
1324
|
-
var Counter = (0,
|
|
1460
|
+
var import_react10 = require("react");
|
|
1461
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1462
|
+
var Counter = (0, import_react10.forwardRef)(
|
|
1325
1463
|
({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
|
|
1326
|
-
const [count, setCount] = (0,
|
|
1327
|
-
(0,
|
|
1464
|
+
const [count, setCount] = (0, import_react10.useState)(0);
|
|
1465
|
+
(0, import_react10.useEffect)(() => {
|
|
1328
1466
|
setCount(value ?? 0);
|
|
1329
1467
|
}, [value]);
|
|
1330
1468
|
const handleChange = (e) => {
|
|
@@ -1355,13 +1493,13 @@ var Counter = (0, import_react7.forwardRef)(
|
|
|
1355
1493
|
onChange?.(newValue);
|
|
1356
1494
|
setCount(newValue);
|
|
1357
1495
|
};
|
|
1358
|
-
return /* @__PURE__ */ (0,
|
|
1496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1359
1497
|
"div",
|
|
1360
1498
|
{
|
|
1361
1499
|
className: cn("flex w-auto flex-col gap-1", classNames?.root),
|
|
1362
1500
|
"data-testid": `counter-wrapper-${props.id}`,
|
|
1363
1501
|
children: [
|
|
1364
|
-
label && /* @__PURE__ */ (0,
|
|
1502
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1365
1503
|
Label_default,
|
|
1366
1504
|
{
|
|
1367
1505
|
text: label,
|
|
@@ -1371,17 +1509,17 @@ var Counter = (0, import_react7.forwardRef)(
|
|
|
1371
1509
|
className: classNames?.label
|
|
1372
1510
|
}
|
|
1373
1511
|
),
|
|
1374
|
-
/* @__PURE__ */ (0,
|
|
1375
|
-
/* @__PURE__ */ (0,
|
|
1512
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "relative flex w-[122px] flex-row items-center", children: [
|
|
1513
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1376
1514
|
"button",
|
|
1377
1515
|
{
|
|
1378
1516
|
type: "button",
|
|
1379
1517
|
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",
|
|
1380
1518
|
onClick: decrement,
|
|
1381
|
-
children: /* @__PURE__ */ (0,
|
|
1519
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react11.Minus, { className: "h-4 w-4 text-green-100" })
|
|
1382
1520
|
}
|
|
1383
1521
|
),
|
|
1384
|
-
/* @__PURE__ */ (0,
|
|
1522
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1385
1523
|
"input",
|
|
1386
1524
|
{
|
|
1387
1525
|
className: cn(counterVariants({ theme }), classNames?.input),
|
|
@@ -1392,17 +1530,17 @@ var Counter = (0, import_react7.forwardRef)(
|
|
|
1392
1530
|
...props
|
|
1393
1531
|
}
|
|
1394
1532
|
),
|
|
1395
|
-
/* @__PURE__ */ (0,
|
|
1533
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1396
1534
|
"button",
|
|
1397
1535
|
{
|
|
1398
1536
|
type: "button",
|
|
1399
1537
|
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",
|
|
1400
1538
|
onClick: increment,
|
|
1401
|
-
children: /* @__PURE__ */ (0,
|
|
1539
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react11.Plus, { className: "h-4 w-4 text-green-100" })
|
|
1402
1540
|
}
|
|
1403
1541
|
)
|
|
1404
1542
|
] }),
|
|
1405
|
-
/* @__PURE__ */ (0,
|
|
1543
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ErrorMessage_default, { message: error })
|
|
1406
1544
|
]
|
|
1407
1545
|
}
|
|
1408
1546
|
);
|
|
@@ -1462,13 +1600,13 @@ var counterVariants = (0, import_cva7.cva)(
|
|
|
1462
1600
|
// src/components/ui/Icon.tsx
|
|
1463
1601
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
1464
1602
|
var import_cva8 = require("cva");
|
|
1465
|
-
var
|
|
1603
|
+
var import_react11 = require("react");
|
|
1466
1604
|
var import_tailwind_merge3 = require("tailwind-merge");
|
|
1467
|
-
var
|
|
1468
|
-
var Icon = (0,
|
|
1605
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1606
|
+
var Icon = (0, import_react11.forwardRef)(
|
|
1469
1607
|
({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
|
|
1470
1608
|
const Component = readonly ? import_react_slot2.Slot : "button";
|
|
1471
|
-
return /* @__PURE__ */ (0,
|
|
1609
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1472
1610
|
Component,
|
|
1473
1611
|
{
|
|
1474
1612
|
className: cn(
|
|
@@ -1537,14 +1675,14 @@ var iconVariants = (0, import_cva8.cva)(
|
|
|
1537
1675
|
);
|
|
1538
1676
|
|
|
1539
1677
|
// src/components/ui/InputOtp.tsx
|
|
1540
|
-
var
|
|
1678
|
+
var import_react12 = require("react");
|
|
1541
1679
|
|
|
1542
1680
|
// src/components/primitives/input-otp.tsx
|
|
1543
1681
|
var import_input_otp = require("input-otp");
|
|
1544
1682
|
var import_lucide_react12 = require("lucide-react");
|
|
1545
1683
|
var React8 = __toESM(require("react"), 1);
|
|
1546
|
-
var
|
|
1547
|
-
var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1684
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1685
|
+
var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1548
1686
|
import_input_otp.OTPInput,
|
|
1549
1687
|
{
|
|
1550
1688
|
ref,
|
|
@@ -1557,12 +1695,12 @@ var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, r
|
|
|
1557
1695
|
}
|
|
1558
1696
|
));
|
|
1559
1697
|
InputOTP.displayName = "InputOTP";
|
|
1560
|
-
var InputOTPGroup = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1698
|
+
var InputOTPGroup = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { ref, className: cn("flex items-center", className), ...props }));
|
|
1561
1699
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
1562
1700
|
var InputOTPSlot = React8.forwardRef(({ index, error, className, ...props }, ref) => {
|
|
1563
1701
|
const inputOTPContext = React8.useContext(import_input_otp.OTPInputContext);
|
|
1564
1702
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
1565
|
-
return /* @__PURE__ */ (0,
|
|
1703
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1566
1704
|
"div",
|
|
1567
1705
|
{
|
|
1568
1706
|
ref,
|
|
@@ -1575,26 +1713,26 @@ var InputOTPSlot = React8.forwardRef(({ index, error, className, ...props }, ref
|
|
|
1575
1713
|
...props,
|
|
1576
1714
|
children: [
|
|
1577
1715
|
char,
|
|
1578
|
-
hasFakeCaret && /* @__PURE__ */ (0,
|
|
1716
|
+
hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-neutral-950 duration-1000 dark:bg-neutral-50" }) })
|
|
1579
1717
|
]
|
|
1580
1718
|
}
|
|
1581
1719
|
);
|
|
1582
1720
|
});
|
|
1583
1721
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
1584
|
-
var InputOTPSeparator = React8.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0,
|
|
1722
|
+
var InputOTPSeparator = React8.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react12.Dot, {}) }));
|
|
1585
1723
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
1586
1724
|
|
|
1587
1725
|
// src/components/ui/InputOtp.tsx
|
|
1588
|
-
var
|
|
1589
|
-
var InputOtp = (0,
|
|
1726
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1727
|
+
var InputOtp = (0, import_react12.forwardRef)(
|
|
1590
1728
|
({ digits, label, description, error, ...props }, ref) => {
|
|
1591
|
-
return /* @__PURE__ */ (0,
|
|
1729
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1592
1730
|
"div",
|
|
1593
1731
|
{
|
|
1594
1732
|
className: "group flex w-full flex-col gap-1",
|
|
1595
1733
|
"data-testid": `input-otp-wrapper-${props.id}`,
|
|
1596
1734
|
children: [
|
|
1597
|
-
label && /* @__PURE__ */ (0,
|
|
1735
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1598
1736
|
Label_default,
|
|
1599
1737
|
{
|
|
1600
1738
|
text: label,
|
|
@@ -1603,17 +1741,17 @@ var InputOtp = (0, import_react9.forwardRef)(
|
|
|
1603
1741
|
description
|
|
1604
1742
|
}
|
|
1605
1743
|
),
|
|
1606
|
-
/* @__PURE__ */ (0,
|
|
1744
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "relative flex flex-row items-center", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1607
1745
|
InputOTP,
|
|
1608
1746
|
{
|
|
1609
1747
|
ref,
|
|
1610
1748
|
maxLength: digits,
|
|
1611
1749
|
"data-testid": `input-otp-element-${props.id}`,
|
|
1612
1750
|
...props,
|
|
1613
|
-
children: [...Array(digits)].map((_, index) => /* @__PURE__ */ (0,
|
|
1751
|
+
children: [...Array(digits)].map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputOTPGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputOTPSlot, { index, error: Boolean(error) }) }, index))
|
|
1614
1752
|
}
|
|
1615
1753
|
) }),
|
|
1616
|
-
/* @__PURE__ */ (0,
|
|
1754
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ErrorMessage_default, { message: error })
|
|
1617
1755
|
]
|
|
1618
1756
|
}
|
|
1619
1757
|
);
|
|
@@ -1623,7 +1761,7 @@ InputOtp.displayName = "Input";
|
|
|
1623
1761
|
|
|
1624
1762
|
// src/components/ui/LinkButton.tsx
|
|
1625
1763
|
var import_link2 = __toESM(require("next/link"), 1);
|
|
1626
|
-
var
|
|
1764
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1627
1765
|
var LinkButton = ({
|
|
1628
1766
|
disabled = false,
|
|
1629
1767
|
useAnchor = false,
|
|
@@ -1632,7 +1770,7 @@ var LinkButton = ({
|
|
|
1632
1770
|
...props
|
|
1633
1771
|
}) => {
|
|
1634
1772
|
const Component = useAnchor ? "a" : import_link2.default;
|
|
1635
|
-
return /* @__PURE__ */ (0,
|
|
1773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1636
1774
|
Component,
|
|
1637
1775
|
{
|
|
1638
1776
|
href,
|
|
@@ -1645,13 +1783,13 @@ var LinkButton = ({
|
|
|
1645
1783
|
};
|
|
1646
1784
|
|
|
1647
1785
|
// src/components/ui/ReadMore.tsx
|
|
1648
|
-
var
|
|
1786
|
+
var import_react13 = require("react");
|
|
1649
1787
|
var import_react_markdown = __toESM(require("react-markdown"), 1);
|
|
1650
|
-
var
|
|
1788
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1651
1789
|
function ReadMore({ text, ...props }) {
|
|
1652
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
1653
|
-
const [maxWords, setMaxWords] = (0,
|
|
1654
|
-
(0,
|
|
1790
|
+
const [isExpanded, setIsExpanded] = (0, import_react13.useState)(false);
|
|
1791
|
+
const [maxWords, setMaxWords] = (0, import_react13.useState)(160);
|
|
1792
|
+
(0, import_react13.useEffect)(() => {
|
|
1655
1793
|
const updateMaxWords = () => {
|
|
1656
1794
|
const windowWidth = window.innerWidth;
|
|
1657
1795
|
if (windowWidth <= 768) {
|
|
@@ -1672,16 +1810,16 @@ function ReadMore({ text, ...props }) {
|
|
|
1672
1810
|
}
|
|
1673
1811
|
const toggleText = () => setIsExpanded(!isExpanded);
|
|
1674
1812
|
const snippet = createReadMoreText(text, maxWords, isExpanded);
|
|
1675
|
-
return /* @__PURE__ */ (0,
|
|
1676
|
-
/* @__PURE__ */ (0,
|
|
1677
|
-
/* @__PURE__ */ (0,
|
|
1813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { ...props, children: [
|
|
1814
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_markdown.default, { children: snippet }) }),
|
|
1815
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1678
1816
|
Button,
|
|
1679
1817
|
{
|
|
1680
1818
|
type: "button",
|
|
1681
1819
|
className: "mt-2 flex items-center justify-center",
|
|
1682
1820
|
variant: "link",
|
|
1683
1821
|
onClick: toggleText,
|
|
1684
|
-
children: /* @__PURE__ */ (0,
|
|
1822
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("p", { className: "text-sm font-bold underline underline-offset-2", children: [
|
|
1685
1823
|
"Read ",
|
|
1686
1824
|
isExpanded ? "less" : "more"
|
|
1687
1825
|
] })
|
|
@@ -1690,18 +1828,192 @@ function ReadMore({ text, ...props }) {
|
|
|
1690
1828
|
] });
|
|
1691
1829
|
}
|
|
1692
1830
|
|
|
1831
|
+
// src/components/ui/DatePicker.tsx
|
|
1832
|
+
var import_cva9 = require("cva");
|
|
1833
|
+
var import_date_fns = require("date-fns");
|
|
1834
|
+
var import_lucide_react14 = require("lucide-react");
|
|
1835
|
+
var import_react14 = require("react");
|
|
1836
|
+
|
|
1837
|
+
// src/components/ui/calendar.tsx
|
|
1838
|
+
var import_lucide_react13 = require("lucide-react");
|
|
1839
|
+
var import_react_day_picker = require("react-day-picker");
|
|
1840
|
+
|
|
1841
|
+
// src/components/ui/buttonShadcn.tsx
|
|
1842
|
+
var import_react_slot3 = require("@radix-ui/react-slot");
|
|
1843
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
1844
|
+
var React9 = __toESM(require("react"), 1);
|
|
1845
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1846
|
+
var buttonVariants2 = (0, import_class_variance_authority.cva)(
|
|
1847
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-950 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:focus-visible:ring-neutral-300",
|
|
1848
|
+
{
|
|
1849
|
+
variants: {
|
|
1850
|
+
variant: {
|
|
1851
|
+
default: "bg-neutral-900 text-neutral-50 shadow hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
|
|
1852
|
+
destructive: "bg-red-500 text-neutral-50 shadow-sm hover:bg-red-500/90 dark:bg-red-900 dark:text-neutral-50 dark:hover:bg-red-900/90",
|
|
1853
|
+
outline: "border border-neutral-200 bg-white shadow-sm hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
|
|
1854
|
+
secondary: "bg-neutral-100 text-neutral-900 shadow-sm hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
|
|
1855
|
+
ghost: "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
|
|
1856
|
+
link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50"
|
|
1857
|
+
},
|
|
1858
|
+
size: {
|
|
1859
|
+
default: "h-9 px-4 py-2",
|
|
1860
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
1861
|
+
lg: "h-10 rounded-md px-8",
|
|
1862
|
+
icon: "h-9 w-9"
|
|
1863
|
+
}
|
|
1864
|
+
},
|
|
1865
|
+
defaultVariants: {
|
|
1866
|
+
variant: "default",
|
|
1867
|
+
size: "default"
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
);
|
|
1871
|
+
var Button2 = React9.forwardRef(
|
|
1872
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
1873
|
+
const Comp = asChild ? import_react_slot3.Slot : "button";
|
|
1874
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, { className: cn(buttonVariants2({ variant, size, className })), ref, ...props });
|
|
1875
|
+
}
|
|
1876
|
+
);
|
|
1877
|
+
Button2.displayName = "Button";
|
|
1878
|
+
|
|
1879
|
+
// src/components/ui/calendar.tsx
|
|
1880
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1881
|
+
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
1882
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1883
|
+
import_react_day_picker.DayPicker,
|
|
1884
|
+
{
|
|
1885
|
+
showOutsideDays,
|
|
1886
|
+
className: cn("p-3", className),
|
|
1887
|
+
classNames: {
|
|
1888
|
+
months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
|
|
1889
|
+
month: "space-y-4",
|
|
1890
|
+
caption: "flex justify-center pt-1 relative items-center",
|
|
1891
|
+
caption_label: "text-sm font-medium",
|
|
1892
|
+
nav: "space-x-1 flex items-center",
|
|
1893
|
+
nav_button: cn(
|
|
1894
|
+
buttonVariants2({ variant: "outline" }),
|
|
1895
|
+
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
1896
|
+
),
|
|
1897
|
+
nav_button_previous: "absolute left-1",
|
|
1898
|
+
nav_button_next: "absolute right-1",
|
|
1899
|
+
table: "w-full border-collapse space-y-1",
|
|
1900
|
+
head_row: "flex",
|
|
1901
|
+
head_cell: "text-neutral-500 rounded-md w-8 font-normal text-[0.8rem] dark:text-neutral-400",
|
|
1902
|
+
row: "flex w-full mt-2",
|
|
1903
|
+
cell: cn(
|
|
1904
|
+
"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-neutral-100 [&:has([aria-selected].day-outside)]:bg-neutral-100/50 [&:has([aria-selected].day-range-end)]:rounded-r-md dark:[&:has([aria-selected])]:bg-neutral-800 dark:[&:has([aria-selected].day-outside)]:bg-neutral-800/50",
|
|
1905
|
+
props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
|
|
1906
|
+
),
|
|
1907
|
+
day: cn(
|
|
1908
|
+
buttonVariants2({ variant: "ghost" }),
|
|
1909
|
+
"h-8 w-8 p-0 font-normal aria-selected:opacity-100"
|
|
1910
|
+
),
|
|
1911
|
+
day_range_start: "day-range-start",
|
|
1912
|
+
day_range_end: "day-range-end",
|
|
1913
|
+
day_selected: "bg-neutral-900 text-neutral-50 hover:bg-neutral-900 hover:text-neutral-50 focus:bg-neutral-900 focus:text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50 dark:hover:text-neutral-900 dark:focus:bg-neutral-50 dark:focus:text-neutral-900",
|
|
1914
|
+
day_today: "bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50",
|
|
1915
|
+
day_outside: "day-outside text-neutral-500 aria-selected:bg-neutral-100/50 aria-selected:text-neutral-500 dark:text-neutral-400 dark:aria-selected:bg-neutral-800/50 dark:aria-selected:text-neutral-400",
|
|
1916
|
+
day_disabled: "text-neutral-500 opacity-50 dark:text-neutral-400",
|
|
1917
|
+
day_range_middle: "aria-selected:bg-neutral-100 aria-selected:text-neutral-900 dark:aria-selected:bg-neutral-800 dark:aria-selected:text-neutral-50",
|
|
1918
|
+
day_hidden: "invisible",
|
|
1919
|
+
...classNames
|
|
1920
|
+
},
|
|
1921
|
+
components: {
|
|
1922
|
+
IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react13.ChevronLeft, { className: cn("h-4 w-4", className2), ...props2 }),
|
|
1923
|
+
IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react13.ChevronRight, { className: cn("h-4 w-4", className2), ...props2 })
|
|
1924
|
+
},
|
|
1925
|
+
...props
|
|
1926
|
+
}
|
|
1927
|
+
);
|
|
1928
|
+
}
|
|
1929
|
+
Calendar.displayName = "Calendar";
|
|
1930
|
+
|
|
1931
|
+
// src/components/ui/DatePicker.tsx
|
|
1932
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1933
|
+
var DatePicker = (0, import_react14.forwardRef)(
|
|
1934
|
+
({ label, description, required, classNames, value, onChange, error }, ref) => {
|
|
1935
|
+
const [date, setDate] = (0, import_react14.useState)(null);
|
|
1936
|
+
(0, import_react14.useEffect)(() => {
|
|
1937
|
+
setDate(value ?? null);
|
|
1938
|
+
}, [value]);
|
|
1939
|
+
const handleDateSelect = (dateSelected) => {
|
|
1940
|
+
if (!dateSelected) return;
|
|
1941
|
+
onChange?.(dateSelected);
|
|
1942
|
+
setDate(dateSelected);
|
|
1943
|
+
};
|
|
1944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: cn("flex w-auto flex-col gap-1"), children: [
|
|
1945
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1946
|
+
Label_default,
|
|
1947
|
+
{
|
|
1948
|
+
text: label,
|
|
1949
|
+
required,
|
|
1950
|
+
description,
|
|
1951
|
+
className: classNames?.label
|
|
1952
|
+
}
|
|
1953
|
+
),
|
|
1954
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Popover, { children: [
|
|
1955
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopoverTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: cn(datePickerStyle()), children: [
|
|
1956
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react14.Calendar, { size: 16 }),
|
|
1957
|
+
date ? (0, import_date_fns.format)(date, "MM/dd/yyyy") : "Select a date"
|
|
1958
|
+
] }) }),
|
|
1959
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopoverContent, { ref, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1960
|
+
Calendar,
|
|
1961
|
+
{
|
|
1962
|
+
mode: "single",
|
|
1963
|
+
selected: date || void 0,
|
|
1964
|
+
onSelect: handleDateSelect,
|
|
1965
|
+
captionLayout: "dropdown",
|
|
1966
|
+
showOutsideDays: true
|
|
1967
|
+
}
|
|
1968
|
+
) })
|
|
1969
|
+
] }),
|
|
1970
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ErrorMessage_default, { message: error })
|
|
1971
|
+
] });
|
|
1972
|
+
}
|
|
1973
|
+
);
|
|
1974
|
+
var datePickerStyle = (0, import_cva9.cva)([
|
|
1975
|
+
"placeholder:text-muted-foreground",
|
|
1976
|
+
"focus-visible:ring-ring",
|
|
1977
|
+
"inline-flex",
|
|
1978
|
+
"w-full",
|
|
1979
|
+
"h-11",
|
|
1980
|
+
"items-center",
|
|
1981
|
+
"justify-start",
|
|
1982
|
+
"gap-3",
|
|
1983
|
+
"rounded-lg",
|
|
1984
|
+
"bg-transparent",
|
|
1985
|
+
"px-3",
|
|
1986
|
+
"pt-0.5",
|
|
1987
|
+
"text-sm",
|
|
1988
|
+
"shadow-sm",
|
|
1989
|
+
"ring-grey-50",
|
|
1990
|
+
"transition-colors",
|
|
1991
|
+
"focus-visible:outline-none",
|
|
1992
|
+
"focus-visible:ring-1",
|
|
1993
|
+
"disabled:cursor-not-allowed",
|
|
1994
|
+
"disabled:opacity-50",
|
|
1995
|
+
"appearance-none",
|
|
1996
|
+
"[&::-webkit-search-cancel-button]:appearance-none",
|
|
1997
|
+
"[&::-webkit-search-decoration]:appearance-none",
|
|
1998
|
+
"[&::-webkit-search-results-button]:appearance-none",
|
|
1999
|
+
"[&::-webkit-search-results-decoration]:appearance-none",
|
|
2000
|
+
"[&::-ms-clear]:display-none",
|
|
2001
|
+
"[&::-ms-reveal]:display-none",
|
|
2002
|
+
"text-grey-80 border"
|
|
2003
|
+
]);
|
|
2004
|
+
|
|
1693
2005
|
// src/components/company/CompanyBenefits.tsx
|
|
1694
|
-
var
|
|
2006
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1695
2007
|
function CompanyBenefits({ benefits }) {
|
|
1696
2008
|
if (!benefits) return null;
|
|
1697
|
-
return /* @__PURE__ */ (0,
|
|
1698
|
-
/* @__PURE__ */ (0,
|
|
1699
|
-
/* @__PURE__ */ (0,
|
|
2009
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
|
|
2010
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg", children: "Company benefits" }),
|
|
2011
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
|
|
1700
2012
|
] });
|
|
1701
2013
|
}
|
|
1702
2014
|
|
|
1703
2015
|
// src/components/company/CompanyInformation.tsx
|
|
1704
|
-
var
|
|
2016
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1705
2017
|
function CompanyInformation({
|
|
1706
2018
|
name,
|
|
1707
2019
|
how,
|
|
@@ -1709,8 +2021,8 @@ function CompanyInformation({
|
|
|
1709
2021
|
wow,
|
|
1710
2022
|
website
|
|
1711
2023
|
}) {
|
|
1712
|
-
return /* @__PURE__ */ (0,
|
|
1713
|
-
/* @__PURE__ */ (0,
|
|
2024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
2025
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
1714
2026
|
"h2",
|
|
1715
2027
|
{
|
|
1716
2028
|
"data-testid": "company-name",
|
|
@@ -1721,22 +2033,22 @@ function CompanyInformation({
|
|
|
1721
2033
|
]
|
|
1722
2034
|
}
|
|
1723
2035
|
),
|
|
1724
|
-
how && /* @__PURE__ */ (0,
|
|
1725
|
-
mission && /* @__PURE__ */ (0,
|
|
1726
|
-
/* @__PURE__ */ (0,
|
|
1727
|
-
/* @__PURE__ */ (0,
|
|
1728
|
-
/* @__PURE__ */ (0,
|
|
2036
|
+
how && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
|
|
2037
|
+
mission && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex gap-2", children: [
|
|
2038
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { children: "\u{1F680}" }),
|
|
2039
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("p", { className: "text-base text-grey-80", children: [
|
|
2040
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "pr-1 font-bold", children: "Mission" }),
|
|
1729
2041
|
mission
|
|
1730
2042
|
] })
|
|
1731
2043
|
] }),
|
|
1732
|
-
wow && /* @__PURE__ */ (0,
|
|
1733
|
-
/* @__PURE__ */ (0,
|
|
1734
|
-
/* @__PURE__ */ (0,
|
|
1735
|
-
/* @__PURE__ */ (0,
|
|
2044
|
+
wow && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex gap-2", children: [
|
|
2045
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { children: "\u{1F31F}" }),
|
|
2046
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("p", { className: "text-base text-grey-80", children: [
|
|
2047
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
|
|
1736
2048
|
wow
|
|
1737
2049
|
] })
|
|
1738
2050
|
] }),
|
|
1739
|
-
website && /* @__PURE__ */ (0,
|
|
2051
|
+
website && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1740
2052
|
LinkButton,
|
|
1741
2053
|
{
|
|
1742
2054
|
"data-testid": "company-website-link",
|
|
@@ -1750,22 +2062,22 @@ function CompanyInformation({
|
|
|
1750
2062
|
}
|
|
1751
2063
|
|
|
1752
2064
|
// src/components/company/CompanyTake.tsx
|
|
1753
|
-
var
|
|
2065
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1754
2066
|
function CompanyTake({ content, avatarSrc }) {
|
|
1755
2067
|
if (!content) return null;
|
|
1756
|
-
return /* @__PURE__ */ (0,
|
|
2068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
1757
2069
|
"div",
|
|
1758
2070
|
{
|
|
1759
2071
|
"data-testid": "company-take",
|
|
1760
2072
|
className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
|
|
1761
2073
|
children: [
|
|
1762
|
-
/* @__PURE__ */ (0,
|
|
1763
|
-
/* @__PURE__ */ (0,
|
|
1764
|
-
/* @__PURE__ */ (0,
|
|
1765
|
-
/* @__PURE__ */ (0,
|
|
1766
|
-
/* @__PURE__ */ (0,
|
|
1767
|
-
/* @__PURE__ */ (0,
|
|
1768
|
-
/* @__PURE__ */ (0,
|
|
2074
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
|
|
2075
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
|
|
2076
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "mt-8 flex w-full items-center gap-3", children: [
|
|
2077
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Avatar, { name: "Jon Lee", src: avatarSrc }),
|
|
2078
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex flex-col flex-wrap items-start", children: [
|
|
2079
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
|
|
2080
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
|
|
1769
2081
|
] })
|
|
1770
2082
|
] })
|
|
1771
2083
|
]
|
|
@@ -1774,51 +2086,51 @@ function CompanyTake({ content, avatarSrc }) {
|
|
|
1774
2086
|
}
|
|
1775
2087
|
|
|
1776
2088
|
// src/components/jobPost/JobDescription.tsx
|
|
1777
|
-
var
|
|
2089
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1778
2090
|
function JobDescription({ description }) {
|
|
1779
2091
|
if (!description) return null;
|
|
1780
|
-
return /* @__PURE__ */ (0,
|
|
1781
|
-
/* @__PURE__ */ (0,
|
|
1782
|
-
/* @__PURE__ */ (0,
|
|
2092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex w-full flex-col gap-2", children: [
|
|
2093
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h3", { className: "text-xl font-bold", children: "Job Description" }),
|
|
2094
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ReadMore, { text: description })
|
|
1783
2095
|
] });
|
|
1784
2096
|
}
|
|
1785
2097
|
|
|
1786
2098
|
// src/components/jobPost/JobHeader.tsx
|
|
1787
|
-
var
|
|
2099
|
+
var import_lucide_react17 = require("lucide-react");
|
|
1788
2100
|
var import_image = __toESM(require("next/image"), 1);
|
|
1789
2101
|
|
|
1790
2102
|
// src/components/buttons/BackButton.tsx
|
|
1791
|
-
var
|
|
2103
|
+
var import_lucide_react15 = require("lucide-react");
|
|
1792
2104
|
var import_navigation2 = require("next/navigation");
|
|
1793
2105
|
|
|
1794
2106
|
// src/hooks/useWindowHistory.ts
|
|
1795
|
-
var
|
|
2107
|
+
var import_react16 = require("react");
|
|
1796
2108
|
|
|
1797
2109
|
// src/contexts/WindowHistoryProvider.tsx
|
|
1798
2110
|
var import_navigation = require("next/navigation");
|
|
1799
|
-
var
|
|
1800
|
-
var
|
|
1801
|
-
var WindowHistoryContext = (0,
|
|
2111
|
+
var import_react15 = require("react");
|
|
2112
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2113
|
+
var WindowHistoryContext = (0, import_react15.createContext)({});
|
|
1802
2114
|
function WindowHistoryProvider({ children }) {
|
|
1803
|
-
const [history, setHistory] = (0,
|
|
2115
|
+
const [history, setHistory] = (0, import_react15.useState)([]);
|
|
1804
2116
|
const searchParams = (0, import_navigation.useSearchParams)();
|
|
1805
|
-
(0,
|
|
2117
|
+
(0, import_react15.useEffect)(() => {
|
|
1806
2118
|
setHistory(
|
|
1807
2119
|
(prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
|
|
1808
2120
|
);
|
|
1809
2121
|
}, [searchParams]);
|
|
1810
|
-
const contextValue = (0,
|
|
1811
|
-
return /* @__PURE__ */ (0,
|
|
2122
|
+
const contextValue = (0, import_react15.useMemo)(() => ({ history }), [history]);
|
|
2123
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(WindowHistoryContext.Provider, { value: contextValue, children });
|
|
1812
2124
|
}
|
|
1813
2125
|
|
|
1814
2126
|
// src/hooks/useWindowHistory.ts
|
|
1815
2127
|
function useWindowHistory() {
|
|
1816
|
-
const windowHistoryContext = (0,
|
|
2128
|
+
const windowHistoryContext = (0, import_react16.useContext)(WindowHistoryContext);
|
|
1817
2129
|
return windowHistoryContext;
|
|
1818
2130
|
}
|
|
1819
2131
|
|
|
1820
2132
|
// src/components/buttons/BackButton.tsx
|
|
1821
|
-
var
|
|
2133
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
1822
2134
|
function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
|
|
1823
2135
|
const { history } = useWindowHistory();
|
|
1824
2136
|
const router = (0, import_navigation2.useRouter)();
|
|
@@ -1831,7 +2143,7 @@ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
|
|
|
1831
2143
|
router.push(fallbackHref ?? "/");
|
|
1832
2144
|
}
|
|
1833
2145
|
};
|
|
1834
|
-
return /* @__PURE__ */ (0,
|
|
2146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1835
2147
|
Icon,
|
|
1836
2148
|
{
|
|
1837
2149
|
"aria-label": "back button",
|
|
@@ -1840,38 +2152,38 @@ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
|
|
|
1840
2152
|
onClick: goBack,
|
|
1841
2153
|
className,
|
|
1842
2154
|
...props,
|
|
1843
|
-
children: /* @__PURE__ */ (0,
|
|
2155
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react15.X, {})
|
|
1844
2156
|
}
|
|
1845
2157
|
);
|
|
1846
2158
|
}
|
|
1847
2159
|
|
|
1848
2160
|
// src/lib/icons.ts
|
|
1849
|
-
var
|
|
2161
|
+
var import_lucide_react16 = require("lucide-react");
|
|
1850
2162
|
var iconMap = {
|
|
1851
|
-
house:
|
|
1852
|
-
layers:
|
|
1853
|
-
users:
|
|
1854
|
-
settings:
|
|
1855
|
-
building:
|
|
1856
|
-
bell:
|
|
1857
|
-
wallet:
|
|
1858
|
-
contact:
|
|
1859
|
-
banknote:
|
|
1860
|
-
"message-square-dot":
|
|
1861
|
-
"life-buoy":
|
|
1862
|
-
"building-2":
|
|
1863
|
-
"gallery-vertical-end":
|
|
1864
|
-
"square-kanban":
|
|
1865
|
-
"briefcase-business":
|
|
1866
|
-
"circle-user":
|
|
1867
|
-
"key-round":
|
|
1868
|
-
"clock-2":
|
|
1869
|
-
"circle-user-round":
|
|
1870
|
-
"map-pin":
|
|
2163
|
+
house: import_lucide_react16.Home,
|
|
2164
|
+
layers: import_lucide_react16.Layers,
|
|
2165
|
+
users: import_lucide_react16.Users,
|
|
2166
|
+
settings: import_lucide_react16.Settings,
|
|
2167
|
+
building: import_lucide_react16.Building,
|
|
2168
|
+
bell: import_lucide_react16.Bell,
|
|
2169
|
+
wallet: import_lucide_react16.Wallet,
|
|
2170
|
+
contact: import_lucide_react16.Contact,
|
|
2171
|
+
banknote: import_lucide_react16.Banknote,
|
|
2172
|
+
"message-square-dot": import_lucide_react16.MessageSquareDot,
|
|
2173
|
+
"life-buoy": import_lucide_react16.LifeBuoy,
|
|
2174
|
+
"building-2": import_lucide_react16.Building2,
|
|
2175
|
+
"gallery-vertical-end": import_lucide_react16.GalleryVerticalEnd,
|
|
2176
|
+
"square-kanban": import_lucide_react16.SquareKanban,
|
|
2177
|
+
"briefcase-business": import_lucide_react16.BriefcaseBusiness,
|
|
2178
|
+
"circle-user": import_lucide_react16.CircleUser,
|
|
2179
|
+
"key-round": import_lucide_react16.KeyRound,
|
|
2180
|
+
"clock-2": import_lucide_react16.Clock2,
|
|
2181
|
+
"circle-user-round": import_lucide_react16.CircleUserRound,
|
|
2182
|
+
"map-pin": import_lucide_react16.MapPin
|
|
1871
2183
|
};
|
|
1872
2184
|
|
|
1873
2185
|
// src/components/jobPost/JobHeader.tsx
|
|
1874
|
-
var
|
|
2186
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
1875
2187
|
function JobHeader({
|
|
1876
2188
|
title,
|
|
1877
2189
|
subtitles,
|
|
@@ -1887,9 +2199,9 @@ function JobHeader({
|
|
|
1887
2199
|
}) {
|
|
1888
2200
|
const renderIcon = (icon) => {
|
|
1889
2201
|
const Icon2 = iconMap[icon];
|
|
1890
|
-
return /* @__PURE__ */ (0,
|
|
2202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon2, { size: 18 });
|
|
1891
2203
|
};
|
|
1892
|
-
return /* @__PURE__ */ (0,
|
|
2204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
1893
2205
|
"div",
|
|
1894
2206
|
{
|
|
1895
2207
|
"data-testid": "job-header-root",
|
|
@@ -1898,8 +2210,8 @@ function JobHeader({
|
|
|
1898
2210
|
!standalone && "rounded-3xl"
|
|
1899
2211
|
),
|
|
1900
2212
|
children: [
|
|
1901
|
-
!standalone && /* @__PURE__ */ (0,
|
|
1902
|
-
/* @__PURE__ */ (0,
|
|
2213
|
+
!standalone && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "relative flex min-h-16 w-full items-center rounded-t-3xl bg-transparent md:min-h-24 md:flex-row lg:min-h-32", children: [
|
|
2214
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1903
2215
|
import_image.default,
|
|
1904
2216
|
{
|
|
1905
2217
|
className: "h-full w-full rounded-t-3xl object-cover",
|
|
@@ -1908,7 +2220,7 @@ function JobHeader({
|
|
|
1908
2220
|
fill: true
|
|
1909
2221
|
}
|
|
1910
2222
|
),
|
|
1911
|
-
/* @__PURE__ */ (0,
|
|
2223
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1912
2224
|
BackButton,
|
|
1913
2225
|
{
|
|
1914
2226
|
acceptedRoutes: backAcceptedRoutes,
|
|
@@ -1917,12 +2229,12 @@ function JobHeader({
|
|
|
1917
2229
|
"data-testid": "job-header-back-button"
|
|
1918
2230
|
}
|
|
1919
2231
|
),
|
|
1920
|
-
/* @__PURE__ */ (0,
|
|
2232
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1921
2233
|
"div",
|
|
1922
2234
|
{
|
|
1923
2235
|
className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
|
|
1924
2236
|
"data-testid": "job-header-avatar",
|
|
1925
|
-
children: /* @__PURE__ */ (0,
|
|
2237
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1926
2238
|
Avatar,
|
|
1927
2239
|
{
|
|
1928
2240
|
size: "large",
|
|
@@ -1936,9 +2248,9 @@ function JobHeader({
|
|
|
1936
2248
|
}
|
|
1937
2249
|
)
|
|
1938
2250
|
] }),
|
|
1939
|
-
/* @__PURE__ */ (0,
|
|
1940
|
-
/* @__PURE__ */ (0,
|
|
1941
|
-
standalone && /* @__PURE__ */ (0,
|
|
2251
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
|
|
2252
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col md:flex-row", children: [
|
|
2253
|
+
standalone && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1942
2254
|
Avatar,
|
|
1943
2255
|
{
|
|
1944
2256
|
size: "large",
|
|
@@ -1949,26 +2261,26 @@ function JobHeader({
|
|
|
1949
2261
|
rel: "noopener noreferrer"
|
|
1950
2262
|
}
|
|
1951
2263
|
) }),
|
|
1952
|
-
/* @__PURE__ */ (0,
|
|
2264
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg", children: subtitles?.map((subtitle, i) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
1953
2265
|
"div",
|
|
1954
2266
|
{
|
|
1955
2267
|
"data-testid": `job-header-subtitle-${i}`,
|
|
1956
2268
|
className: "flex items-center",
|
|
1957
2269
|
children: [
|
|
1958
2270
|
subtitle,
|
|
1959
|
-
i < subtitles.length - 1 && /* @__PURE__ */ (0,
|
|
2271
|
+
i < subtitles.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react17.Dot, { className: "mx-1 shrink-0", size: 10 })
|
|
1960
2272
|
]
|
|
1961
2273
|
},
|
|
1962
2274
|
subtitle
|
|
1963
2275
|
)) })
|
|
1964
2276
|
] }),
|
|
1965
|
-
/* @__PURE__ */ (0,
|
|
2277
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
1966
2278
|
"div",
|
|
1967
2279
|
{
|
|
1968
2280
|
"data-testid": "job-header-content",
|
|
1969
2281
|
className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
|
|
1970
2282
|
children: [
|
|
1971
|
-
/* @__PURE__ */ (0,
|
|
2283
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1972
2284
|
"h2",
|
|
1973
2285
|
{
|
|
1974
2286
|
"data-testid": "job-header-title",
|
|
@@ -1976,7 +2288,7 @@ function JobHeader({
|
|
|
1976
2288
|
children: title
|
|
1977
2289
|
}
|
|
1978
2290
|
),
|
|
1979
|
-
!!actions && /* @__PURE__ */ (0,
|
|
2291
|
+
!!actions && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1980
2292
|
"div",
|
|
1981
2293
|
{
|
|
1982
2294
|
className: "flex w-full justify-end gap-2 md:w-auto",
|
|
@@ -1987,12 +2299,12 @@ function JobHeader({
|
|
|
1987
2299
|
]
|
|
1988
2300
|
}
|
|
1989
2301
|
),
|
|
1990
|
-
/* @__PURE__ */ (0,
|
|
2302
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1991
2303
|
"div",
|
|
1992
2304
|
{
|
|
1993
2305
|
"data-testid": "job-header-tags",
|
|
1994
2306
|
className: "flex flex-row flex-wrap items-center justify-start gap-2",
|
|
1995
|
-
children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ (0,
|
|
2307
|
+
children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
1996
2308
|
Chip_default,
|
|
1997
2309
|
{
|
|
1998
2310
|
size: "small",
|
|
@@ -2001,7 +2313,7 @@ function JobHeader({
|
|
|
2001
2313
|
"data-testid": `job-header-tag-${name}`,
|
|
2002
2314
|
children: [
|
|
2003
2315
|
renderIcon(icon),
|
|
2004
|
-
/* @__PURE__ */ (0,
|
|
2316
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: label })
|
|
2005
2317
|
]
|
|
2006
2318
|
},
|
|
2007
2319
|
name
|
|
@@ -2018,7 +2330,7 @@ function JobHeader({
|
|
|
2018
2330
|
var DateFns = __toESM(require("date-fns"), 1);
|
|
2019
2331
|
|
|
2020
2332
|
// src/hooks/useDisplayText.ts
|
|
2021
|
-
var
|
|
2333
|
+
var import_react17 = require("react");
|
|
2022
2334
|
|
|
2023
2335
|
// src/lib/mappings.ts
|
|
2024
2336
|
var employmentTypeDisplayText = {
|
|
@@ -2462,9 +2774,9 @@ var DisplayTextService = class {
|
|
|
2462
2774
|
|
|
2463
2775
|
// src/hooks/useDisplayText.ts
|
|
2464
2776
|
var useDisplayText = (scope, value) => {
|
|
2465
|
-
const [displayText, setDisplayText] = (0,
|
|
2466
|
-
const displayService = (0,
|
|
2467
|
-
(0,
|
|
2777
|
+
const [displayText, setDisplayText] = (0, import_react17.useState)("");
|
|
2778
|
+
const displayService = (0, import_react17.useMemo)(() => new DisplayTextService(), []);
|
|
2779
|
+
(0, import_react17.useEffect)(() => {
|
|
2468
2780
|
if (!displayService || !value) {
|
|
2469
2781
|
setDisplayText("");
|
|
2470
2782
|
return;
|
|
@@ -2603,7 +2915,7 @@ function salaryRange(salary) {
|
|
|
2603
2915
|
}
|
|
2604
2916
|
|
|
2605
2917
|
// src/components/jobPost/JobPost.tsx
|
|
2606
|
-
var
|
|
2918
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2607
2919
|
function JobPost({
|
|
2608
2920
|
job,
|
|
2609
2921
|
bannerSrc,
|
|
@@ -2647,7 +2959,7 @@ function JobPost({
|
|
|
2647
2959
|
label: formattedLocation
|
|
2648
2960
|
}
|
|
2649
2961
|
].filter((t) => !!t);
|
|
2650
|
-
return /* @__PURE__ */ (0,
|
|
2962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
2651
2963
|
"div",
|
|
2652
2964
|
{
|
|
2653
2965
|
className: cn(
|
|
@@ -2655,7 +2967,7 @@ function JobPost({
|
|
|
2655
2967
|
!standalone && "border-1 rounded-3xl border-grey-5"
|
|
2656
2968
|
),
|
|
2657
2969
|
children: [
|
|
2658
|
-
/* @__PURE__ */ (0,
|
|
2970
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2659
2971
|
JobHeader,
|
|
2660
2972
|
{
|
|
2661
2973
|
title: job.title,
|
|
@@ -2669,16 +2981,16 @@ function JobPost({
|
|
|
2669
2981
|
tags
|
|
2670
2982
|
}
|
|
2671
2983
|
),
|
|
2672
|
-
/* @__PURE__ */ (0,
|
|
2673
|
-
/* @__PURE__ */ (0,
|
|
2674
|
-
/* @__PURE__ */ (0,
|
|
2984
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-8 px-6", children: [
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(JobDescription, { description: job.description }),
|
|
2986
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2675
2987
|
CompanyTake,
|
|
2676
2988
|
{
|
|
2677
2989
|
avatarSrc,
|
|
2678
2990
|
content: job.hiringOrganization?.companyNdg?.companyNdgTake
|
|
2679
2991
|
}
|
|
2680
2992
|
),
|
|
2681
|
-
/* @__PURE__ */ (0,
|
|
2993
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2682
2994
|
CompanyInformation,
|
|
2683
2995
|
{
|
|
2684
2996
|
name: job.hiringOrganization?.companyName ?? "",
|
|
@@ -2688,7 +3000,7 @@ function JobPost({
|
|
|
2688
3000
|
website: job.hiringOrganization?.companyWebsite
|
|
2689
3001
|
}
|
|
2690
3002
|
),
|
|
2691
|
-
/* @__PURE__ */ (0,
|
|
3003
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2692
3004
|
CompanyBenefits,
|
|
2693
3005
|
{
|
|
2694
3006
|
benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
|
|
@@ -2924,6 +3236,7 @@ var jobPostSchema = import_zod3.z.object({
|
|
|
2924
3236
|
CompanyService,
|
|
2925
3237
|
CompanyTake,
|
|
2926
3238
|
Counter,
|
|
3239
|
+
DatePicker,
|
|
2927
3240
|
Icon,
|
|
2928
3241
|
Input,
|
|
2929
3242
|
InputOtp,
|
|
@@ -2936,9 +3249,11 @@ var jobPostSchema = import_zod3.z.object({
|
|
|
2936
3249
|
ListItem,
|
|
2937
3250
|
MapComponent,
|
|
2938
3251
|
PlacesQueryInput,
|
|
3252
|
+
Radio,
|
|
2939
3253
|
ReadMore,
|
|
2940
3254
|
Select,
|
|
2941
3255
|
SharedService,
|
|
3256
|
+
Switch,
|
|
2942
3257
|
WindowHistoryProvider,
|
|
2943
3258
|
cn,
|
|
2944
3259
|
fetchLocation,
|