@next-degree/pickle-shared-js 0.4.31 → 0.6.43
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/company_service_latest-Dwf4Fkjr.d.cts +2641 -0
- package/dist/company_service_latest-Dwf4Fkjr.d.ts +2641 -0
- package/dist/components/buttons/BackButton.cjs +161 -0
- package/dist/components/buttons/BackButton.cjs.map +1 -0
- package/dist/components/buttons/BackButton.d.cts +9 -0
- package/dist/components/buttons/BackButton.d.ts +9 -0
- package/dist/components/buttons/BackButton.js +137 -0
- package/dist/components/buttons/BackButton.js.map +1 -0
- package/dist/components/company/CompanyBenefits.cjs +38 -0
- package/dist/components/company/CompanyBenefits.cjs.map +1 -0
- package/dist/components/company/CompanyBenefits.d.cts +8 -0
- package/dist/components/company/CompanyBenefits.d.ts +8 -0
- package/dist/components/company/CompanyBenefits.js +13 -0
- package/dist/components/company/CompanyBenefits.js.map +1 -0
- package/dist/components/company/CompanyInformation.cjs +112 -0
- package/dist/components/company/CompanyInformation.cjs.map +1 -0
- package/dist/components/company/CompanyInformation.d.cts +12 -0
- package/dist/components/company/CompanyInformation.d.ts +12 -0
- package/dist/components/company/CompanyInformation.js +75 -0
- package/dist/components/company/CompanyInformation.js.map +1 -0
- package/dist/components/company/CompanyTake.cjs +140 -0
- package/dist/components/company/CompanyTake.cjs.map +1 -0
- package/dist/components/company/CompanyTake.d.cts +9 -0
- package/dist/components/company/CompanyTake.d.ts +9 -0
- package/dist/components/company/CompanyTake.js +104 -0
- package/dist/components/company/CompanyTake.js.map +1 -0
- package/dist/components/jobPost/JobDescription.cjs +205 -0
- package/dist/components/jobPost/JobDescription.cjs.map +1 -0
- package/dist/components/jobPost/JobDescription.d.cts +8 -0
- package/dist/components/jobPost/JobDescription.d.ts +8 -0
- package/dist/components/jobPost/JobDescription.js +168 -0
- package/dist/components/jobPost/JobDescription.js.map +1 -0
- package/dist/components/jobPost/JobHeader.cjs +436 -0
- package/dist/components/jobPost/JobHeader.cjs.map +1 -0
- package/dist/components/jobPost/JobHeader.d.cts +26 -0
- package/dist/components/jobPost/JobHeader.d.ts +26 -0
- package/dist/components/jobPost/JobHeader.js +423 -0
- package/dist/components/jobPost/JobHeader.js.map +1 -0
- package/dist/components/jobPost/JobPost.cjs +1349 -0
- package/dist/components/jobPost/JobPost.cjs.map +1 -0
- package/dist/components/jobPost/JobPost.d.cts +16 -0
- package/dist/components/jobPost/JobPost.d.ts +16 -0
- package/dist/components/jobPost/JobPost.js +1336 -0
- package/dist/components/jobPost/JobPost.js.map +1 -0
- package/dist/components/primitives/avatar.cjs +88 -0
- package/dist/components/primitives/avatar.cjs.map +1 -0
- package/dist/components/primitives/avatar.d.cts +13 -0
- package/dist/components/primitives/avatar.d.ts +13 -0
- package/dist/components/primitives/avatar.js +52 -0
- package/dist/components/primitives/avatar.js.map +1 -0
- package/dist/components/primitives/command.d.cts +3 -3
- package/dist/components/primitives/command.d.ts +3 -3
- package/dist/components/ui/Avatar.cjs +117 -0
- package/dist/components/ui/Avatar.cjs.map +1 -0
- package/dist/components/ui/Avatar.d.cts +16 -0
- package/dist/components/ui/Avatar.d.ts +16 -0
- package/dist/components/ui/Avatar.js +79 -0
- package/dist/components/ui/Avatar.js.map +1 -0
- package/dist/components/ui/Icon.cjs +114 -0
- package/dist/components/ui/Icon.cjs.map +1 -0
- package/dist/components/ui/Icon.d.cts +15 -0
- package/dist/components/ui/Icon.d.ts +15 -0
- package/dist/components/ui/Icon.js +89 -0
- package/dist/components/ui/Icon.js.map +1 -0
- package/dist/{app/layout.cjs → components/ui/LinkButton.cjs} +25 -35
- package/dist/components/ui/LinkButton.cjs.map +1 -0
- package/dist/components/ui/LinkButton.d.cts +29 -0
- package/dist/components/ui/LinkButton.d.ts +29 -0
- package/dist/components/ui/LinkButton.js +26 -0
- package/dist/components/ui/LinkButton.js.map +1 -0
- package/dist/components/ui/MapComponent.cjs +54 -0
- package/dist/components/ui/MapComponent.cjs.map +1 -0
- package/dist/components/ui/MapComponent.d.cts +15 -0
- package/dist/components/ui/MapComponent.d.ts +15 -0
- package/dist/components/ui/MapComponent.js +34 -0
- package/dist/components/ui/MapComponent.js.map +1 -0
- package/dist/components/ui/PlacesQueryInput.cjs.map +1 -1
- package/dist/components/ui/PlacesQueryInput.js.map +1 -1
- package/dist/components/ui/ReadMore.cjs +194 -0
- package/dist/components/ui/ReadMore.cjs.map +1 -0
- package/dist/components/ui/ReadMore.d.cts +9 -0
- package/dist/components/ui/ReadMore.d.ts +9 -0
- package/dist/components/ui/ReadMore.js +160 -0
- package/dist/components/ui/ReadMore.js.map +1 -0
- package/dist/contexts/WindowHistoryProvider.cjs +48 -0
- package/dist/contexts/WindowHistoryProvider.cjs.map +1 -0
- package/dist/contexts/WindowHistoryProvider.d.cts +11 -0
- package/dist/contexts/WindowHistoryProvider.d.ts +11 -0
- package/dist/contexts/WindowHistoryProvider.js +23 -0
- package/dist/contexts/WindowHistoryProvider.js.map +1 -0
- package/dist/displayText-C1qKqRYc.d.cts +48 -0
- package/dist/displayText-D-OzRlJf.d.ts +48 -0
- package/dist/hooks/useDisplayText.cjs +502 -0
- package/dist/hooks/useDisplayText.cjs.map +1 -0
- package/dist/hooks/useDisplayText.d.cts +8 -0
- package/dist/hooks/useDisplayText.d.ts +8 -0
- package/dist/hooks/useDisplayText.js +477 -0
- package/dist/hooks/useDisplayText.js.map +1 -0
- package/dist/hooks/useWindowHistory.cjs +46 -0
- package/dist/hooks/useWindowHistory.cjs.map +1 -0
- package/dist/hooks/useWindowHistory.d.cts +7 -0
- package/dist/hooks/useWindowHistory.d.ts +7 -0
- package/dist/hooks/useWindowHistory.js +21 -0
- package/dist/hooks/useWindowHistory.js.map +1 -0
- package/dist/index.cjs +1564 -72
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +1557 -57
- package/dist/index.js.map +1 -1
- package/dist/job_posting_service_latest-D0AsiA4a.d.cts +2789 -0
- package/dist/job_posting_service_latest-D0AsiA4a.d.ts +2789 -0
- package/dist/lib/google.cjs +44 -2
- package/dist/lib/google.cjs.map +1 -1
- package/dist/lib/google.d.cts +22 -1
- package/dist/lib/google.d.ts +22 -1
- package/dist/lib/google.js +40 -1
- package/dist/lib/google.js.map +1 -1
- package/dist/lib/icons.cjs +53 -0
- package/dist/lib/icons.cjs.map +1 -0
- package/dist/lib/icons.d.cts +27 -0
- package/dist/lib/icons.d.ts +27 -0
- package/dist/lib/icons.js +49 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/locations.cjs +45 -0
- package/dist/lib/locations.cjs.map +1 -0
- package/dist/lib/locations.d.cts +8 -0
- package/dist/lib/locations.d.ts +8 -0
- package/dist/lib/locations.js +19 -0
- package/dist/lib/locations.js.map +1 -0
- package/dist/lib/mappings.cjs +443 -0
- package/dist/lib/mappings.cjs.map +1 -0
- package/dist/lib/mappings.d.cts +4 -0
- package/dist/lib/mappings.d.ts +4 -0
- package/dist/lib/mappings.js +409 -0
- package/dist/lib/mappings.js.map +1 -0
- package/dist/lib/salaryRange.cjs +90 -0
- package/dist/lib/salaryRange.cjs.map +1 -0
- package/dist/lib/salaryRange.d.cts +6 -0
- package/dist/lib/salaryRange.d.ts +6 -0
- package/dist/lib/salaryRange.js +63 -0
- package/dist/lib/salaryRange.js.map +1 -0
- package/dist/services/displayText.cjs +470 -0
- package/dist/services/displayText.cjs.map +1 -0
- package/dist/services/displayText.d.cts +4 -0
- package/dist/services/displayText.d.ts +4 -0
- package/dist/services/displayText.js +443 -0
- package/dist/services/displayText.js.map +1 -0
- package/dist/shared_pickle_output_latest-DX6GQoVn.d.cts +194 -0
- package/dist/shared_pickle_output_latest-DX6GQoVn.d.ts +194 -0
- package/dist/styles/globals.css +829 -0
- package/dist/styles/globals.css.map +1 -1
- package/dist/types/data/company_service_latest.cjs +228 -0
- package/dist/types/data/company_service_latest.cjs.map +1 -0
- package/dist/types/data/company_service_latest.d.cts +2 -0
- package/dist/types/data/company_service_latest.d.ts +2 -0
- package/dist/types/data/company_service_latest.js +186 -0
- package/dist/types/data/company_service_latest.js.map +1 -0
- package/dist/types/data/job_posting_service_latest.cjs +266 -0
- package/dist/types/data/job_posting_service_latest.cjs.map +1 -0
- package/dist/types/data/job_posting_service_latest.d.cts +2 -0
- package/dist/types/data/job_posting_service_latest.d.ts +2 -0
- package/dist/types/data/job_posting_service_latest.js +230 -0
- package/dist/types/data/job_posting_service_latest.js.map +1 -0
- package/dist/types/data/shared_pickle_output_latest.cjs +82 -0
- package/dist/types/data/shared_pickle_output_latest.cjs.map +1 -0
- package/dist/types/data/shared_pickle_output_latest.d.cts +2 -0
- package/dist/types/data/shared_pickle_output_latest.d.ts +2 -0
- package/dist/types/data/shared_pickle_output_latest.js +50 -0
- package/dist/types/data/shared_pickle_output_latest.js.map +1 -0
- package/dist/types/displayText.errors.cjs +44 -0
- package/dist/types/displayText.errors.cjs.map +1 -0
- package/dist/types/displayText.errors.d.cts +8 -0
- package/dist/types/displayText.errors.d.ts +8 -0
- package/dist/types/displayText.errors.js +18 -0
- package/dist/types/displayText.errors.js.map +1 -0
- package/package.json +20 -7
- package/dist/AmbitBold-3SZZPYLH.otf +0 -0
- package/dist/AmbitBoldItalic-JSHFTN4A.otf +0 -0
- package/dist/AmbitRegular-MB5U7O3L.otf +0 -0
- package/dist/app/layout.cjs.map +0 -1
- package/dist/app/layout.css +0 -1411
- package/dist/app/layout.css.map +0 -1
- package/dist/app/layout.d.cts +0 -11
- package/dist/app/layout.d.ts +0 -11
- package/dist/app/layout.js +0 -36
- package/dist/app/layout.js.map +0 -1
- package/dist/app/page.cjs +0 -1517
- package/dist/app/page.cjs.map +0 -1
- package/dist/app/page.d.cts +0 -5
- package/dist/app/page.d.ts +0 -5
- package/dist/app/page.js +0 -1491
- package/dist/app/page.js.map +0 -1
- package/dist/assets/fonts/AmbitBold.cjs +0 -3
- package/dist/assets/fonts/AmbitBold.cjs.map +0 -1
- package/dist/assets/fonts/AmbitBold.d.cts +0 -2
- package/dist/assets/fonts/AmbitBold.d.ts +0 -2
- package/dist/assets/fonts/AmbitBold.js +0 -6
- package/dist/assets/fonts/AmbitBold.js.map +0 -1
- package/dist/assets/fonts/AmbitBoldItalic.cjs +0 -3
- package/dist/assets/fonts/AmbitBoldItalic.cjs.map +0 -1
- package/dist/assets/fonts/AmbitBoldItalic.d.cts +0 -2
- package/dist/assets/fonts/AmbitBoldItalic.d.ts +0 -2
- package/dist/assets/fonts/AmbitBoldItalic.js +0 -6
- package/dist/assets/fonts/AmbitBoldItalic.js.map +0 -1
- package/dist/assets/fonts/AmbitRegular.cjs +0 -3
- package/dist/assets/fonts/AmbitRegular.cjs.map +0 -1
- package/dist/assets/fonts/AmbitRegular.d.cts +0 -2
- package/dist/assets/fonts/AmbitRegular.d.ts +0 -2
- package/dist/assets/fonts/AmbitRegular.js +0 -6
- package/dist/assets/fonts/AmbitRegular.js.map +0 -1
- package/dist/components/demos/ComboboxDemo.cjs +0 -814
- package/dist/components/demos/ComboboxDemo.cjs.map +0 -1
- package/dist/components/demos/ComboboxDemo.d.cts +0 -5
- package/dist/components/demos/ComboboxDemo.d.ts +0 -5
- package/dist/components/demos/ComboboxDemo.js +0 -786
- package/dist/components/demos/ComboboxDemo.js.map +0 -1
- package/dist/components/demos/CounterDemo.cjs +0 -270
- package/dist/components/demos/CounterDemo.cjs.map +0 -1
- package/dist/components/demos/CounterDemo.d.cts +0 -5
- package/dist/components/demos/CounterDemo.d.ts +0 -5
- package/dist/components/demos/CounterDemo.js +0 -238
- package/dist/components/demos/CounterDemo.js.map +0 -1
- package/dist/components/demos/InputDemo.cjs +0 -225
- package/dist/components/demos/InputDemo.cjs.map +0 -1
- package/dist/components/demos/InputDemo.d.cts +0 -5
- package/dist/components/demos/InputDemo.d.ts +0 -5
- package/dist/components/demos/InputDemo.js +0 -192
- package/dist/components/demos/InputDemo.js.map +0 -1
- package/dist/components/demos/PlacesQueryInputDemo.cjs +0 -341
- package/dist/components/demos/PlacesQueryInputDemo.cjs.map +0 -1
- package/dist/components/demos/PlacesQueryInputDemo.d.cts +0 -5
- package/dist/components/demos/PlacesQueryInputDemo.d.ts +0 -5
- package/dist/components/demos/PlacesQueryInputDemo.js +0 -309
- package/dist/components/demos/PlacesQueryInputDemo.js.map +0 -1
- package/dist/components/demos/SelectDemo.cjs +0 -365
- package/dist/components/demos/SelectDemo.cjs.map +0 -1
- package/dist/components/demos/SelectDemo.d.cts +0 -5
- package/dist/components/demos/SelectDemo.d.ts +0 -5
- package/dist/components/demos/SelectDemo.js +0 -337
- package/dist/components/demos/SelectDemo.js.map +0 -1
- package/dist/components/demos/index.cjs +0 -1510
- package/dist/components/demos/index.cjs.map +0 -1
- package/dist/components/demos/index.d.cts +0 -5
- package/dist/components/demos/index.d.ts +0 -5
- package/dist/components/demos/index.js +0 -1484
- package/dist/components/demos/index.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -30,18 +30,37 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
+
Avatar: () => Avatar,
|
|
34
|
+
BackButton: () => BackButton,
|
|
33
35
|
Badge: () => Badge,
|
|
34
36
|
Button: () => Button,
|
|
35
37
|
Checkbox: () => Checkbox_default,
|
|
36
38
|
Chip: () => Chip_default,
|
|
37
39
|
Combobox: () => Combobox,
|
|
40
|
+
CompanyBenefits: () => CompanyBenefits,
|
|
41
|
+
CompanyInformation: () => CompanyInformation,
|
|
42
|
+
CompanyService: () => company_service_latest_exports,
|
|
43
|
+
CompanyTake: () => CompanyTake,
|
|
38
44
|
Counter: () => Counter,
|
|
45
|
+
Icon: () => Icon,
|
|
39
46
|
Input: () => Input_default,
|
|
47
|
+
JobDescription: () => JobDescription,
|
|
48
|
+
JobHeader: () => JobHeader,
|
|
49
|
+
JobPost: () => JobPost,
|
|
50
|
+
JobPostService: () => job_posting_service_latest_exports,
|
|
40
51
|
Label: () => Label_default,
|
|
52
|
+
LinkButton: () => LinkButton,
|
|
41
53
|
ListItem: () => ListItem_default,
|
|
54
|
+
MapComponent: () => MapComponent_default,
|
|
42
55
|
PlacesQueryInput: () => PlacesQueryInput_default,
|
|
56
|
+
ReadMore: () => ReadMore,
|
|
43
57
|
Select: () => Select_default,
|
|
44
|
-
|
|
58
|
+
SharedService: () => shared_pickle_output_latest_exports,
|
|
59
|
+
WindowHistoryProvider: () => WindowHistoryProvider,
|
|
60
|
+
cn: () => cn,
|
|
61
|
+
fetchLocation: () => fetchLocation,
|
|
62
|
+
useDisplayText: () => useDisplayText,
|
|
63
|
+
useWindowHistory: () => useWindowHistory
|
|
45
64
|
});
|
|
46
65
|
module.exports = __toCommonJS(index_exports);
|
|
47
66
|
|
|
@@ -532,6 +551,26 @@ var inputVariants = (0, import_cva2.cva)(
|
|
|
532
551
|
);
|
|
533
552
|
var Input_default = Input;
|
|
534
553
|
|
|
554
|
+
// src/components/ui/MapComponent.tsx
|
|
555
|
+
var import_react_google_maps = require("@vis.gl/react-google-maps");
|
|
556
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
557
|
+
function MapComponent({ apiKey, mapId, position, className, zoom = 15 }) {
|
|
558
|
+
const defaultPosition = { lat: 40.715021, lng: -74.00459 };
|
|
559
|
+
const defaultZoom = 11;
|
|
560
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_google_maps.APIProvider, { apiKey, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cn("h-screen max-w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
561
|
+
import_react_google_maps.Map,
|
|
562
|
+
{
|
|
563
|
+
zoom: position ? zoom : defaultZoom,
|
|
564
|
+
center: position || defaultPosition,
|
|
565
|
+
mapId,
|
|
566
|
+
keyboardShortcuts: false,
|
|
567
|
+
disableDefaultUI: true,
|
|
568
|
+
children: position && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_google_maps.AdvancedMarker, { position, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_google_maps.Pin, { background: "#0B5441", borderColor: "#EBFDF1", glyphColor: "#D4F500" }) })
|
|
569
|
+
}
|
|
570
|
+
) }) });
|
|
571
|
+
}
|
|
572
|
+
var MapComponent_default = MapComponent;
|
|
573
|
+
|
|
535
574
|
// src/components/primitives/command.tsx
|
|
536
575
|
var import_cmdk = require("cmdk");
|
|
537
576
|
var import_lucide_react8 = require("lucide-react");
|
|
@@ -541,9 +580,9 @@ var React4 = __toESM(require("react"), 1);
|
|
|
541
580
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
542
581
|
var import_lucide_react7 = require("lucide-react");
|
|
543
582
|
var React3 = __toESM(require("react"), 1);
|
|
544
|
-
var
|
|
583
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
545
584
|
var DialogPortal = DialogPrimitive.Portal;
|
|
546
|
-
var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
585
|
+
var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
547
586
|
DialogPrimitive.Overlay,
|
|
548
587
|
{
|
|
549
588
|
ref,
|
|
@@ -555,9 +594,9 @@ var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
555
594
|
}
|
|
556
595
|
));
|
|
557
596
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
558
|
-
var DialogContent = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
559
|
-
/* @__PURE__ */ (0,
|
|
560
|
-
/* @__PURE__ */ (0,
|
|
597
|
+
var DialogContent = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DialogPortal, { children: [
|
|
598
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DialogOverlay, {}),
|
|
599
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
561
600
|
DialogPrimitive.Content,
|
|
562
601
|
{
|
|
563
602
|
ref,
|
|
@@ -568,18 +607,18 @@ var DialogContent = React3.forwardRef(({ className, children, ...props }, ref) =
|
|
|
568
607
|
...props,
|
|
569
608
|
children: [
|
|
570
609
|
children,
|
|
571
|
-
/* @__PURE__ */ (0,
|
|
572
|
-
/* @__PURE__ */ (0,
|
|
573
|
-
/* @__PURE__ */ (0,
|
|
610
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400", children: [
|
|
611
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react7.X, { className: "h-4 w-4" }),
|
|
612
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "Close" })
|
|
574
613
|
] })
|
|
575
614
|
]
|
|
576
615
|
}
|
|
577
616
|
)
|
|
578
617
|
] }));
|
|
579
618
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
580
|
-
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
619
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
581
620
|
DialogHeader.displayName = "DialogHeader";
|
|
582
|
-
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
621
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
583
622
|
"div",
|
|
584
623
|
{
|
|
585
624
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
@@ -587,7 +626,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
|
|
|
587
626
|
}
|
|
588
627
|
);
|
|
589
628
|
DialogFooter.displayName = "DialogFooter";
|
|
590
|
-
var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
629
|
+
var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
591
630
|
DialogPrimitive.Title,
|
|
592
631
|
{
|
|
593
632
|
ref,
|
|
@@ -596,7 +635,7 @@ var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
596
635
|
}
|
|
597
636
|
));
|
|
598
637
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
599
|
-
var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
638
|
+
var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
600
639
|
DialogPrimitive.Description,
|
|
601
640
|
{
|
|
602
641
|
ref,
|
|
@@ -607,8 +646,8 @@ var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
607
646
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
608
647
|
|
|
609
648
|
// src/components/primitives/command.tsx
|
|
610
|
-
var
|
|
611
|
-
var Command = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
649
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
650
|
+
var Command = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
612
651
|
import_cmdk.Command,
|
|
613
652
|
{
|
|
614
653
|
ref,
|
|
@@ -620,9 +659,9 @@ var Command = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
620
659
|
}
|
|
621
660
|
));
|
|
622
661
|
Command.displayName = import_cmdk.Command.displayName;
|
|
623
|
-
var CommandInput = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
624
|
-
/* @__PURE__ */ (0,
|
|
625
|
-
/* @__PURE__ */ (0,
|
|
662
|
+
var CommandInput = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "m-1 flex items-center rounded-xl border px-3", "cmdk-input-wrapper": "", children: [
|
|
663
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react8.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
664
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
626
665
|
import_cmdk.Command.Input,
|
|
627
666
|
{
|
|
628
667
|
ref,
|
|
@@ -635,7 +674,7 @@ var CommandInput = React4.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
635
674
|
)
|
|
636
675
|
] }));
|
|
637
676
|
CommandInput.displayName = import_cmdk.Command.Input.displayName;
|
|
638
|
-
var CommandList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
677
|
+
var CommandList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
639
678
|
import_cmdk.Command.List,
|
|
640
679
|
{
|
|
641
680
|
ref,
|
|
@@ -644,9 +683,9 @@ var CommandList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
644
683
|
}
|
|
645
684
|
));
|
|
646
685
|
CommandList.displayName = import_cmdk.Command.List.displayName;
|
|
647
|
-
var CommandEmpty = React4.forwardRef((props, ref) => /* @__PURE__ */ (0,
|
|
686
|
+
var CommandEmpty = React4.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
648
687
|
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
|
|
649
|
-
var CommandGroup = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
688
|
+
var CommandGroup = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
650
689
|
import_cmdk.Command.Group,
|
|
651
690
|
{
|
|
652
691
|
ref,
|
|
@@ -658,7 +697,7 @@ var CommandGroup = React4.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
658
697
|
}
|
|
659
698
|
));
|
|
660
699
|
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
|
|
661
|
-
var CommandSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
700
|
+
var CommandSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
662
701
|
import_cmdk.Command.Separator,
|
|
663
702
|
{
|
|
664
703
|
ref,
|
|
@@ -667,7 +706,7 @@ var CommandSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
667
706
|
}
|
|
668
707
|
));
|
|
669
708
|
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
|
|
670
|
-
var CommandItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
709
|
+
var CommandItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
671
710
|
import_cmdk.Command.Item,
|
|
672
711
|
{
|
|
673
712
|
ref,
|
|
@@ -680,7 +719,7 @@ var CommandItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
680
719
|
));
|
|
681
720
|
CommandItem.displayName = import_cmdk.Command.Item.displayName;
|
|
682
721
|
var CommandShortcut = ({ className, ...props }) => {
|
|
683
|
-
return /* @__PURE__ */ (0,
|
|
722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
684
723
|
"span",
|
|
685
724
|
{
|
|
686
725
|
className: cn("ml-auto text-xs tracking-widest text-neutral-500", className),
|
|
@@ -703,11 +742,47 @@ var autocomplete = async (input, key) => {
|
|
|
703
742
|
console.error(error);
|
|
704
743
|
}
|
|
705
744
|
};
|
|
745
|
+
var fetchLocation = async (place, key) => {
|
|
746
|
+
try {
|
|
747
|
+
if (place.place_id) {
|
|
748
|
+
const placeDetails = await getPlaceDetails(place.place_id, key);
|
|
749
|
+
if (placeDetails) return placeDetails;
|
|
750
|
+
}
|
|
751
|
+
if (place.address) {
|
|
752
|
+
const result = await geocode(place.address, key);
|
|
753
|
+
const firstAddress = result?.[0];
|
|
754
|
+
return firstAddress;
|
|
755
|
+
}
|
|
756
|
+
return void 0;
|
|
757
|
+
} catch (error) {
|
|
758
|
+
console.error("Error fetching location:", error);
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
var getPlaceDetails = async (place_id, key) => {
|
|
762
|
+
try {
|
|
763
|
+
const response = await client.placeDetails({
|
|
764
|
+
params: { place_id, key }
|
|
765
|
+
});
|
|
766
|
+
return response.data.result;
|
|
767
|
+
} catch (error) {
|
|
768
|
+
console.error(error);
|
|
769
|
+
}
|
|
770
|
+
};
|
|
771
|
+
var geocode = async (address, key) => {
|
|
772
|
+
try {
|
|
773
|
+
const response = await client.geocode({
|
|
774
|
+
params: { address, key }
|
|
775
|
+
});
|
|
776
|
+
return response.data.results;
|
|
777
|
+
} catch (error) {
|
|
778
|
+
console.error(error);
|
|
779
|
+
}
|
|
780
|
+
};
|
|
706
781
|
|
|
707
782
|
// src/components/ui/PlacesQueryInput.tsx
|
|
708
783
|
var import_lucide_react9 = require("lucide-react");
|
|
709
784
|
var import_react4 = require("react");
|
|
710
|
-
var
|
|
785
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
711
786
|
function PlacesQueryInput({
|
|
712
787
|
apiKey,
|
|
713
788
|
selected,
|
|
@@ -762,9 +837,9 @@ function PlacesQueryInput({
|
|
|
762
837
|
window.addEventListener("resize", checkDropdownPosition);
|
|
763
838
|
return () => window.removeEventListener("resize", checkDropdownPosition);
|
|
764
839
|
}, []);
|
|
765
|
-
return /* @__PURE__ */ (0,
|
|
766
|
-
/* @__PURE__ */ (0,
|
|
767
|
-
/* @__PURE__ */ (0,
|
|
840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Command, { children: [
|
|
841
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "relative w-full", children: [
|
|
842
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
768
843
|
CommandInput,
|
|
769
844
|
{
|
|
770
845
|
placeholder: "Type an address to search...",
|
|
@@ -773,18 +848,18 @@ function PlacesQueryInput({
|
|
|
773
848
|
className: "truncate pr-8"
|
|
774
849
|
}
|
|
775
850
|
),
|
|
776
|
-
isLoadingPredictions && /* @__PURE__ */ (0,
|
|
777
|
-
input && /* @__PURE__ */ (0,
|
|
851
|
+
isLoadingPredictions && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react9.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" }),
|
|
852
|
+
input && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
778
853
|
"button",
|
|
779
854
|
{
|
|
780
855
|
type: "button",
|
|
781
856
|
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",
|
|
782
857
|
onClick: handleClear,
|
|
783
|
-
children: /* @__PURE__ */ (0,
|
|
858
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react9.CircleX, { className: "h-4 w-4 text-green-100" })
|
|
784
859
|
}
|
|
785
860
|
)
|
|
786
861
|
] }),
|
|
787
|
-
predictions && /* @__PURE__ */ (0,
|
|
862
|
+
predictions && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
788
863
|
CommandList,
|
|
789
864
|
{
|
|
790
865
|
className: cn(
|
|
@@ -792,8 +867,8 @@ function PlacesQueryInput({
|
|
|
792
867
|
shouldOpenUpward ? "bottom-full" : "top-full"
|
|
793
868
|
),
|
|
794
869
|
children: [
|
|
795
|
-
/* @__PURE__ */ (0,
|
|
796
|
-
/* @__PURE__ */ (0,
|
|
870
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CommandEmpty, { children: "No results" }),
|
|
871
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
797
872
|
CommandItem,
|
|
798
873
|
{
|
|
799
874
|
onSelect: () => handleSelect(prediction),
|
|
@@ -813,11 +888,11 @@ var PlacesQueryInput_default = PlacesQueryInput;
|
|
|
813
888
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
814
889
|
var import_cva3 = require("cva");
|
|
815
890
|
var import_react5 = require("react");
|
|
816
|
-
var
|
|
891
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
817
892
|
var Button = (0, import_react5.forwardRef)(
|
|
818
893
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
819
894
|
const Component = asChild ? import_react_slot.Slot : "button";
|
|
820
|
-
return /* @__PURE__ */ (0,
|
|
895
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
821
896
|
Component,
|
|
822
897
|
{
|
|
823
898
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -926,10 +1001,10 @@ var import_cva5 = require("cva");
|
|
|
926
1001
|
// src/components/primitives/popover.tsx
|
|
927
1002
|
var React6 = __toESM(require("react"), 1);
|
|
928
1003
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
|
|
929
|
-
var
|
|
1004
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
930
1005
|
var Popover = PopoverPrimitive.Root;
|
|
931
1006
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
932
|
-
var PopoverContent = React6.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1007
|
+
var PopoverContent = React6.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
933
1008
|
PopoverPrimitive.Content,
|
|
934
1009
|
{
|
|
935
1010
|
ref,
|
|
@@ -946,7 +1021,7 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
946
1021
|
|
|
947
1022
|
// src/components/ui/Badge.tsx
|
|
948
1023
|
var import_cva4 = require("cva");
|
|
949
|
-
var
|
|
1024
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
950
1025
|
var badgeVariants = (0, import_cva4.cva)("rounded-full px-2 py-0.5 text-xs font-semibold", {
|
|
951
1026
|
variants: {
|
|
952
1027
|
variant: {
|
|
@@ -960,11 +1035,11 @@ var badgeVariants = (0, import_cva4.cva)("rounded-full px-2 py-0.5 text-xs font-
|
|
|
960
1035
|
}
|
|
961
1036
|
});
|
|
962
1037
|
function Badge({ className, variant, ...props }) {
|
|
963
|
-
return /* @__PURE__ */ (0,
|
|
1038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
964
1039
|
}
|
|
965
1040
|
|
|
966
1041
|
// src/components/ui/Combobox.tsx
|
|
967
|
-
var
|
|
1042
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
968
1043
|
var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
969
1044
|
const {
|
|
970
1045
|
id,
|
|
@@ -1021,8 +1096,8 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1021
1096
|
const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(", ") : placeholder;
|
|
1022
1097
|
return isDefault ? defaultLabel : label;
|
|
1023
1098
|
};
|
|
1024
|
-
return /* @__PURE__ */ (0,
|
|
1025
|
-
isDefault && /* @__PURE__ */ (0,
|
|
1099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: cn("flex flex-col gap-1", className), children: [
|
|
1100
|
+
isDefault && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1026
1101
|
Label_default,
|
|
1027
1102
|
{
|
|
1028
1103
|
text: label,
|
|
@@ -1032,15 +1107,15 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1032
1107
|
className: classNames?.label
|
|
1033
1108
|
}
|
|
1034
1109
|
),
|
|
1035
|
-
/* @__PURE__ */ (0,
|
|
1036
|
-
/* @__PURE__ */ (0,
|
|
1037
|
-
/* @__PURE__ */ (0,
|
|
1110
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "relative flex", children: [
|
|
1111
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
1112
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1038
1113
|
PopoverTrigger,
|
|
1039
1114
|
{
|
|
1040
1115
|
asChild: true,
|
|
1041
1116
|
disabled: options.length === 0,
|
|
1042
1117
|
"data-testid": `${id ?? name}-combobox-trigger`,
|
|
1043
|
-
children: /* @__PURE__ */ (0,
|
|
1118
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1044
1119
|
"div",
|
|
1045
1120
|
{
|
|
1046
1121
|
ref,
|
|
@@ -1051,9 +1126,9 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1051
1126
|
),
|
|
1052
1127
|
"aria-expanded": open,
|
|
1053
1128
|
children: [
|
|
1054
|
-
isDefault && IconComponent && /* @__PURE__ */ (0,
|
|
1055
|
-
isChip && !isEmpty && /* @__PURE__ */ (0,
|
|
1056
|
-
/* @__PURE__ */ (0,
|
|
1129
|
+
isDefault && IconComponent && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconComponent, { className: "h-4 w-4 shrink-0" }),
|
|
1130
|
+
isChip && !isEmpty && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Badge, { variant: "purple", children: selected.length }),
|
|
1131
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1057
1132
|
"span",
|
|
1058
1133
|
{
|
|
1059
1134
|
className: cn(
|
|
@@ -1063,7 +1138,7 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1063
1138
|
children: handleDisplayValue()
|
|
1064
1139
|
}
|
|
1065
1140
|
),
|
|
1066
|
-
showChevron && /* @__PURE__ */ (0,
|
|
1141
|
+
showChevron && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1067
1142
|
import_lucide_react10.ChevronDownIcon,
|
|
1068
1143
|
{
|
|
1069
1144
|
className: "shrink-0 transform group-data-[state=open]:rotate-180",
|
|
@@ -1075,7 +1150,7 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1075
1150
|
)
|
|
1076
1151
|
}
|
|
1077
1152
|
),
|
|
1078
|
-
/* @__PURE__ */ (0,
|
|
1153
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1079
1154
|
PopoverContent,
|
|
1080
1155
|
{
|
|
1081
1156
|
className: cn(
|
|
@@ -1086,16 +1161,16 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1086
1161
|
collisionPadding: 8,
|
|
1087
1162
|
sideOffset: 4,
|
|
1088
1163
|
align: "start",
|
|
1089
|
-
children: /* @__PURE__ */ (0,
|
|
1090
|
-
!hideSearchBox && /* @__PURE__ */ (0,
|
|
1091
|
-
/* @__PURE__ */ (0,
|
|
1092
|
-
/* @__PURE__ */ (0,
|
|
1093
|
-
/* @__PURE__ */ (0,
|
|
1164
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Command, { children: [
|
|
1165
|
+
!hideSearchBox && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CommandInput, { placeholder: "Search..." }),
|
|
1166
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(CommandList, { children: [
|
|
1167
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CommandEmpty, { children: "No results" }),
|
|
1168
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CommandGroup, { children: options.map(({ id: id2, ...option }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1094
1169
|
CommandItem,
|
|
1095
1170
|
{
|
|
1096
1171
|
value: option.title,
|
|
1097
1172
|
onSelect: () => handleSelect(option.value),
|
|
1098
|
-
children: /* @__PURE__ */ (0,
|
|
1173
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1099
1174
|
ListItem_default,
|
|
1100
1175
|
{
|
|
1101
1176
|
className: cn(classNames?.items, "truncate py-1"),
|
|
@@ -1108,19 +1183,19 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
1108
1183
|
id2
|
|
1109
1184
|
)) })
|
|
1110
1185
|
] }),
|
|
1111
|
-
!!footer && /* @__PURE__ */ (0,
|
|
1186
|
+
!!footer && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Separator, {}),
|
|
1112
1187
|
footer && footer({ close })
|
|
1113
1188
|
] })
|
|
1114
1189
|
}
|
|
1115
1190
|
)
|
|
1116
1191
|
] }),
|
|
1117
|
-
isDefault && !isEmpty && /* @__PURE__ */ (0,
|
|
1192
|
+
isDefault && !isEmpty && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1118
1193
|
"button",
|
|
1119
1194
|
{
|
|
1120
1195
|
type: "button",
|
|
1121
1196
|
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",
|
|
1122
1197
|
onClick: handleClear,
|
|
1123
|
-
children: /* @__PURE__ */ (0,
|
|
1198
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react10.CircleX, { className: "h-4 w-4 text-green-100" })
|
|
1124
1199
|
}
|
|
1125
1200
|
)
|
|
1126
1201
|
] })
|
|
@@ -1157,7 +1232,7 @@ var triggerVariants = (0, import_cva5.cva)(
|
|
|
1157
1232
|
var import_cva6 = require("cva");
|
|
1158
1233
|
var import_lucide_react11 = require("lucide-react");
|
|
1159
1234
|
var import_react7 = require("react");
|
|
1160
|
-
var
|
|
1235
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1161
1236
|
var Counter = (0, import_react7.forwardRef)(
|
|
1162
1237
|
({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
|
|
1163
1238
|
const [count, setCount] = (0, import_react7.useState)(0);
|
|
@@ -1192,13 +1267,13 @@ var Counter = (0, import_react7.forwardRef)(
|
|
|
1192
1267
|
onChange?.(newValue);
|
|
1193
1268
|
setCount(newValue);
|
|
1194
1269
|
};
|
|
1195
|
-
return /* @__PURE__ */ (0,
|
|
1270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1196
1271
|
"div",
|
|
1197
1272
|
{
|
|
1198
1273
|
className: cn("flex w-auto flex-col gap-1", classNames?.root),
|
|
1199
1274
|
"data-testid": `counter-wrapper-${props.id}`,
|
|
1200
1275
|
children: [
|
|
1201
|
-
label && /* @__PURE__ */ (0,
|
|
1276
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1202
1277
|
Label_default,
|
|
1203
1278
|
{
|
|
1204
1279
|
text: label,
|
|
@@ -1208,17 +1283,17 @@ var Counter = (0, import_react7.forwardRef)(
|
|
|
1208
1283
|
className: classNames?.label
|
|
1209
1284
|
}
|
|
1210
1285
|
),
|
|
1211
|
-
/* @__PURE__ */ (0,
|
|
1212
|
-
/* @__PURE__ */ (0,
|
|
1286
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "relative flex w-[122px] flex-row items-center", children: [
|
|
1287
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1213
1288
|
"button",
|
|
1214
1289
|
{
|
|
1215
1290
|
type: "button",
|
|
1216
1291
|
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",
|
|
1217
1292
|
onClick: decrement,
|
|
1218
|
-
children: /* @__PURE__ */ (0,
|
|
1293
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react11.Minus, { className: "h-4 w-4 text-green-100" })
|
|
1219
1294
|
}
|
|
1220
1295
|
),
|
|
1221
|
-
/* @__PURE__ */ (0,
|
|
1296
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1222
1297
|
"input",
|
|
1223
1298
|
{
|
|
1224
1299
|
className: cn(counterVariants({ theme }), classNames?.input),
|
|
@@ -1229,17 +1304,17 @@ var Counter = (0, import_react7.forwardRef)(
|
|
|
1229
1304
|
...props
|
|
1230
1305
|
}
|
|
1231
1306
|
),
|
|
1232
|
-
/* @__PURE__ */ (0,
|
|
1307
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1233
1308
|
"button",
|
|
1234
1309
|
{
|
|
1235
1310
|
type: "button",
|
|
1236
1311
|
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",
|
|
1237
1312
|
onClick: increment,
|
|
1238
|
-
children: /* @__PURE__ */ (0,
|
|
1313
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react11.Plus, { className: "h-4 w-4 text-green-100" })
|
|
1239
1314
|
}
|
|
1240
1315
|
)
|
|
1241
1316
|
] }),
|
|
1242
|
-
/* @__PURE__ */ (0,
|
|
1317
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorMessage_default, { message: error })
|
|
1243
1318
|
]
|
|
1244
1319
|
}
|
|
1245
1320
|
);
|
|
@@ -1295,19 +1370,1436 @@ var counterVariants = (0, import_cva6.cva)(
|
|
|
1295
1370
|
}
|
|
1296
1371
|
}
|
|
1297
1372
|
);
|
|
1373
|
+
|
|
1374
|
+
// src/components/primitives/avatar.tsx
|
|
1375
|
+
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
|
|
1376
|
+
var React7 = __toESM(require("react"), 1);
|
|
1377
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1378
|
+
var AvatarBase = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1379
|
+
AvatarPrimitive.Root,
|
|
1380
|
+
{
|
|
1381
|
+
ref,
|
|
1382
|
+
className: cn("relative flex shrink-0 overflow-hidden rounded-full", className),
|
|
1383
|
+
...props
|
|
1384
|
+
}
|
|
1385
|
+
));
|
|
1386
|
+
AvatarBase.displayName = AvatarPrimitive.Root.displayName;
|
|
1387
|
+
var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1388
|
+
AvatarPrimitive.Image,
|
|
1389
|
+
{
|
|
1390
|
+
ref,
|
|
1391
|
+
className: cn("aspect-square h-full w-full", className),
|
|
1392
|
+
"data-testid": "job-card-avatar",
|
|
1393
|
+
...props
|
|
1394
|
+
}
|
|
1395
|
+
));
|
|
1396
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
1397
|
+
var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1398
|
+
AvatarPrimitive.Fallback,
|
|
1399
|
+
{
|
|
1400
|
+
ref,
|
|
1401
|
+
className: cn(
|
|
1402
|
+
"flex h-full w-full items-center justify-center rounded-full bg-pumpkin-100 py-2 text-sm font-bold capitalize leading-normal text-white md:text-lg",
|
|
1403
|
+
className
|
|
1404
|
+
),
|
|
1405
|
+
...props
|
|
1406
|
+
}
|
|
1407
|
+
));
|
|
1408
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
1409
|
+
|
|
1410
|
+
// src/components/ui/Avatar.tsx
|
|
1411
|
+
var import_cva7 = require("cva");
|
|
1412
|
+
var import_link = __toESM(require("next/link"), 1);
|
|
1413
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1414
|
+
function Avatar({ size, src, href, name, ...linkProps }) {
|
|
1415
|
+
const fallbackShort = name?.slice(0, 2);
|
|
1416
|
+
const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
|
|
1417
|
+
const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
|
|
1418
|
+
const renderAvatar = () => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(AvatarBase, { className: avatarVariants({ size }), children: [
|
|
1419
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AvatarImage, { src, alt: name }),
|
|
1420
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AvatarFallback, { children: fallback?.toUpperCase() })
|
|
1421
|
+
] });
|
|
1422
|
+
if (href) {
|
|
1423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_link.default, { href, ...linkProps, children: renderAvatar() });
|
|
1424
|
+
}
|
|
1425
|
+
return renderAvatar();
|
|
1426
|
+
}
|
|
1427
|
+
var avatarVariants = (0, import_cva7.cva)("ring ring-white ring-2", {
|
|
1428
|
+
variants: {
|
|
1429
|
+
size: {
|
|
1430
|
+
large: "h-16 w-16",
|
|
1431
|
+
medium: "h-10 w-10",
|
|
1432
|
+
small: "h-8 w-8"
|
|
1433
|
+
}
|
|
1434
|
+
},
|
|
1435
|
+
defaultVariants: {
|
|
1436
|
+
size: "medium"
|
|
1437
|
+
}
|
|
1438
|
+
});
|
|
1439
|
+
|
|
1440
|
+
// src/components/ui/Icon.tsx
|
|
1441
|
+
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
1442
|
+
var import_cva8 = require("cva");
|
|
1443
|
+
var import_react8 = require("react");
|
|
1444
|
+
var import_tailwind_merge3 = require("tailwind-merge");
|
|
1445
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1446
|
+
var Icon = (0, import_react8.forwardRef)(
|
|
1447
|
+
({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
|
|
1448
|
+
const Component = readonly ? import_react_slot2.Slot : "button";
|
|
1449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1450
|
+
Component,
|
|
1451
|
+
{
|
|
1452
|
+
className: cn(
|
|
1453
|
+
(0, import_tailwind_merge3.twMerge)(iconVariants({ variant: active ? "active" : variant, size })),
|
|
1454
|
+
className
|
|
1455
|
+
),
|
|
1456
|
+
...props,
|
|
1457
|
+
ref
|
|
1458
|
+
}
|
|
1459
|
+
);
|
|
1460
|
+
}
|
|
1461
|
+
);
|
|
1462
|
+
Icon.displayName = "Icon";
|
|
1463
|
+
var iconVariants = (0, import_cva8.cva)(
|
|
1464
|
+
[
|
|
1465
|
+
"inline-flex",
|
|
1466
|
+
"items-center",
|
|
1467
|
+
"rounded-full",
|
|
1468
|
+
"outline-2",
|
|
1469
|
+
"outline-offset-2",
|
|
1470
|
+
"outline-dashed",
|
|
1471
|
+
"outline-transparent",
|
|
1472
|
+
"disabled:text-grey-40",
|
|
1473
|
+
"disabled:bg-transparent",
|
|
1474
|
+
"disabled:pointer-events-none"
|
|
1475
|
+
],
|
|
1476
|
+
{
|
|
1477
|
+
variants: {
|
|
1478
|
+
variant: {
|
|
1479
|
+
filled: [
|
|
1480
|
+
"border",
|
|
1481
|
+
"border-green-80",
|
|
1482
|
+
"bg-green-90",
|
|
1483
|
+
"text-white",
|
|
1484
|
+
"hover:bg-green-80",
|
|
1485
|
+
"active:bg-green-80",
|
|
1486
|
+
"focus:outline-pickle-100",
|
|
1487
|
+
"disabled:bg-green-70"
|
|
1488
|
+
],
|
|
1489
|
+
transparent: [
|
|
1490
|
+
"text-black",
|
|
1491
|
+
"hover:bg-grey-5",
|
|
1492
|
+
"active:bg-grey-10",
|
|
1493
|
+
"focus:outline-purple-100"
|
|
1494
|
+
],
|
|
1495
|
+
tonal: [
|
|
1496
|
+
"border",
|
|
1497
|
+
"border-grey-5",
|
|
1498
|
+
"hover:border-grey-10",
|
|
1499
|
+
"active:border-grey-20",
|
|
1500
|
+
"focus:outline-purple-100"
|
|
1501
|
+
],
|
|
1502
|
+
active: ["text-black", "bg-pickle-100"]
|
|
1503
|
+
},
|
|
1504
|
+
size: {
|
|
1505
|
+
small: ["h-10", "w-10", "p-3"],
|
|
1506
|
+
medium: ["h-12", "w-12", "p-4"],
|
|
1507
|
+
large: ["h-14", "w-14", "p-4"]
|
|
1508
|
+
}
|
|
1509
|
+
},
|
|
1510
|
+
defaultVariants: {
|
|
1511
|
+
variant: "filled",
|
|
1512
|
+
size: "medium"
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
);
|
|
1516
|
+
|
|
1517
|
+
// src/components/ui/LinkButton.tsx
|
|
1518
|
+
var import_link2 = __toESM(require("next/link"), 1);
|
|
1519
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1520
|
+
var LinkButton = ({
|
|
1521
|
+
disabled = false,
|
|
1522
|
+
useAnchor = false,
|
|
1523
|
+
children,
|
|
1524
|
+
href,
|
|
1525
|
+
...props
|
|
1526
|
+
}) => {
|
|
1527
|
+
const Component = useAnchor ? "a" : import_link2.default;
|
|
1528
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1529
|
+
Component,
|
|
1530
|
+
{
|
|
1531
|
+
href,
|
|
1532
|
+
className: `inline-flex items-center justify-center gap-2 rounded-full text-sm font-bold leading-tight text-black underline outline-dashed outline-2 outline-offset-2 outline-transparent hover:text-purple-100 focus:text-black focus:outline-purple-100 active:text-purple-80 ${disabled ? "pointer-events-none text-grey-40" : ""} `,
|
|
1533
|
+
...disabled && { "aria-disabled": true, tabIndex: -1 },
|
|
1534
|
+
...props,
|
|
1535
|
+
children
|
|
1536
|
+
}
|
|
1537
|
+
);
|
|
1538
|
+
};
|
|
1539
|
+
|
|
1540
|
+
// src/components/ui/ReadMore.tsx
|
|
1541
|
+
var import_react9 = require("react");
|
|
1542
|
+
var import_react_markdown = __toESM(require("react-markdown"), 1);
|
|
1543
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1544
|
+
function ReadMore({ text, ...props }) {
|
|
1545
|
+
const [isExpanded, setIsExpanded] = (0, import_react9.useState)(false);
|
|
1546
|
+
const [maxWords, setMaxWords] = (0, import_react9.useState)(160);
|
|
1547
|
+
(0, import_react9.useEffect)(() => {
|
|
1548
|
+
const updateMaxWords = () => {
|
|
1549
|
+
const windowWidth = window.innerWidth;
|
|
1550
|
+
if (windowWidth <= 768) {
|
|
1551
|
+
setMaxWords(50);
|
|
1552
|
+
} else {
|
|
1553
|
+
setMaxWords(160);
|
|
1554
|
+
}
|
|
1555
|
+
};
|
|
1556
|
+
updateMaxWords();
|
|
1557
|
+
window.addEventListener("resize", updateMaxWords);
|
|
1558
|
+
return () => window.removeEventListener("resize", updateMaxWords);
|
|
1559
|
+
}, []);
|
|
1560
|
+
function createReadMoreText(text2, maxWords2, isExpanded2) {
|
|
1561
|
+
const words = text2.split(" ");
|
|
1562
|
+
const snippet2 = isExpanded2 ? text2 : words.slice(0, maxWords2).join(" ");
|
|
1563
|
+
const readMoreText = isExpanded2 ? "" : "...";
|
|
1564
|
+
return `${snippet2} ${readMoreText}`;
|
|
1565
|
+
}
|
|
1566
|
+
const toggleText = () => setIsExpanded(!isExpanded);
|
|
1567
|
+
const snippet = createReadMoreText(text, maxWords, isExpanded);
|
|
1568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { ...props, children: [
|
|
1569
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_markdown.default, { children: snippet }) }),
|
|
1570
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { className: "mt-2 flex items-center justify-center", variant: "link", onClick: toggleText, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("p", { className: "text-sm font-bold underline underline-offset-2", children: [
|
|
1571
|
+
"Read ",
|
|
1572
|
+
isExpanded ? "less" : "more"
|
|
1573
|
+
] }) })
|
|
1574
|
+
] });
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
// src/components/company/CompanyBenefits.tsx
|
|
1578
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1579
|
+
function CompanyBenefits({ benefits }) {
|
|
1580
|
+
if (!benefits) return null;
|
|
1581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
|
|
1582
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.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" }),
|
|
1583
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
|
|
1584
|
+
] });
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
// src/components/company/CompanyInformation.tsx
|
|
1588
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1589
|
+
function CompanyInformation({
|
|
1590
|
+
name,
|
|
1591
|
+
how,
|
|
1592
|
+
mission,
|
|
1593
|
+
wow,
|
|
1594
|
+
website
|
|
1595
|
+
}) {
|
|
1596
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
1597
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1598
|
+
"h2",
|
|
1599
|
+
{
|
|
1600
|
+
"data-testid": "company-name",
|
|
1601
|
+
className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
|
|
1602
|
+
children: [
|
|
1603
|
+
"About ",
|
|
1604
|
+
name
|
|
1605
|
+
]
|
|
1606
|
+
}
|
|
1607
|
+
),
|
|
1608
|
+
how && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
|
|
1609
|
+
mission && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex gap-2", children: [
|
|
1610
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "\u{1F680}" }),
|
|
1611
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("p", { className: "text-base text-grey-80", children: [
|
|
1612
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pr-1 font-bold", children: "Mission" }),
|
|
1613
|
+
mission
|
|
1614
|
+
] })
|
|
1615
|
+
] }),
|
|
1616
|
+
wow && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex gap-2", children: [
|
|
1617
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "\u{1F31F}" }),
|
|
1618
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("p", { className: "text-base text-grey-80", children: [
|
|
1619
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
|
|
1620
|
+
wow
|
|
1621
|
+
] })
|
|
1622
|
+
] }),
|
|
1623
|
+
website && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1624
|
+
LinkButton,
|
|
1625
|
+
{
|
|
1626
|
+
"data-testid": "company-website-link",
|
|
1627
|
+
href: website,
|
|
1628
|
+
target: "_blank",
|
|
1629
|
+
rel: "noopener noreferrer",
|
|
1630
|
+
children: "Website"
|
|
1631
|
+
}
|
|
1632
|
+
) })
|
|
1633
|
+
] });
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
// src/components/company/CompanyTake.tsx
|
|
1637
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1638
|
+
function CompanyTake({ content, avatarSrc }) {
|
|
1639
|
+
if (!content) return null;
|
|
1640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1641
|
+
"div",
|
|
1642
|
+
{
|
|
1643
|
+
"data-testid": "company-take",
|
|
1644
|
+
className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
|
|
1645
|
+
children: [
|
|
1646
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
|
|
1647
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
|
|
1648
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "mt-8 flex w-full items-center gap-3", children: [
|
|
1649
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Avatar, { name: "Jon Lee", src: avatarSrc }),
|
|
1650
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col flex-wrap items-start", children: [
|
|
1651
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
|
|
1652
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
|
|
1653
|
+
] })
|
|
1654
|
+
] })
|
|
1655
|
+
]
|
|
1656
|
+
}
|
|
1657
|
+
);
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
// src/components/jobPost/JobDescription.tsx
|
|
1661
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1662
|
+
function JobDescription({ description }) {
|
|
1663
|
+
if (!description) return null;
|
|
1664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex w-full flex-col gap-2", children: [
|
|
1665
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h3", { className: "text-xl font-bold", children: "Job Description" }),
|
|
1666
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ReadMore, { text: description })
|
|
1667
|
+
] });
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1670
|
+
// src/components/jobPost/JobHeader.tsx
|
|
1671
|
+
var import_lucide_react14 = require("lucide-react");
|
|
1672
|
+
var import_image = __toESM(require("next/image"), 1);
|
|
1673
|
+
|
|
1674
|
+
// src/components/buttons/BackButton.tsx
|
|
1675
|
+
var import_lucide_react12 = require("lucide-react");
|
|
1676
|
+
var import_navigation2 = require("next/navigation");
|
|
1677
|
+
|
|
1678
|
+
// src/hooks/useWindowHistory.ts
|
|
1679
|
+
var import_react11 = require("react");
|
|
1680
|
+
|
|
1681
|
+
// src/contexts/WindowHistoryProvider.tsx
|
|
1682
|
+
var import_navigation = require("next/navigation");
|
|
1683
|
+
var import_react10 = require("react");
|
|
1684
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1685
|
+
var WindowHistoryContext = (0, import_react10.createContext)({});
|
|
1686
|
+
function WindowHistoryProvider({ children }) {
|
|
1687
|
+
const [history, setHistory] = (0, import_react10.useState)([]);
|
|
1688
|
+
const searchParams = (0, import_navigation.useSearchParams)();
|
|
1689
|
+
(0, import_react10.useEffect)(() => {
|
|
1690
|
+
setHistory(
|
|
1691
|
+
(prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
|
|
1692
|
+
);
|
|
1693
|
+
}, [searchParams]);
|
|
1694
|
+
const contextValue = (0, import_react10.useMemo)(() => ({ history }), [history]);
|
|
1695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(WindowHistoryContext.Provider, { value: contextValue, children });
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1698
|
+
// src/hooks/useWindowHistory.ts
|
|
1699
|
+
function useWindowHistory() {
|
|
1700
|
+
const windowHistoryContext = (0, import_react11.useContext)(WindowHistoryContext);
|
|
1701
|
+
if (Object.keys(windowHistoryContext).length === 0) {
|
|
1702
|
+
throw new Error("useWindowHistory was used outside of its WindowHistoryContext");
|
|
1703
|
+
}
|
|
1704
|
+
return windowHistoryContext;
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
// src/components/buttons/BackButton.tsx
|
|
1708
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1709
|
+
function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
|
|
1710
|
+
const { history } = useWindowHistory();
|
|
1711
|
+
const router = (0, import_navigation2.useRouter)();
|
|
1712
|
+
const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
|
|
1713
|
+
const goBack = () => {
|
|
1714
|
+
const previous = history[history.length - 2];
|
|
1715
|
+
history.length > 1 && isAcceptedRoute(previous) ? router.back() : router.push(fallbackHref ?? "/");
|
|
1716
|
+
};
|
|
1717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1718
|
+
Icon,
|
|
1719
|
+
{
|
|
1720
|
+
"aria-label": "back button",
|
|
1721
|
+
variant: "transparent",
|
|
1722
|
+
size: "small",
|
|
1723
|
+
onClick: goBack,
|
|
1724
|
+
className,
|
|
1725
|
+
...props,
|
|
1726
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react12.X, {})
|
|
1727
|
+
}
|
|
1728
|
+
);
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
// src/lib/icons.ts
|
|
1732
|
+
var import_lucide_react13 = require("lucide-react");
|
|
1733
|
+
var iconMap = {
|
|
1734
|
+
house: import_lucide_react13.Home,
|
|
1735
|
+
layers: import_lucide_react13.Layers,
|
|
1736
|
+
users: import_lucide_react13.Users,
|
|
1737
|
+
settings: import_lucide_react13.Settings,
|
|
1738
|
+
building: import_lucide_react13.Building,
|
|
1739
|
+
bell: import_lucide_react13.Bell,
|
|
1740
|
+
wallet: import_lucide_react13.Wallet,
|
|
1741
|
+
contact: import_lucide_react13.Contact,
|
|
1742
|
+
banknote: import_lucide_react13.Banknote,
|
|
1743
|
+
"message-square-dot": import_lucide_react13.MessageSquareDot,
|
|
1744
|
+
"life-buoy": import_lucide_react13.LifeBuoy,
|
|
1745
|
+
"building-2": import_lucide_react13.Building2,
|
|
1746
|
+
"gallery-vertical-end": import_lucide_react13.GalleryVerticalEnd,
|
|
1747
|
+
"square-kanban": import_lucide_react13.SquareKanban,
|
|
1748
|
+
"briefcase-business": import_lucide_react13.BriefcaseBusiness,
|
|
1749
|
+
"circle-user": import_lucide_react13.CircleUser,
|
|
1750
|
+
"key-round": import_lucide_react13.KeyRound,
|
|
1751
|
+
"clock-2": import_lucide_react13.Clock2,
|
|
1752
|
+
"circle-user-round": import_lucide_react13.CircleUserRound,
|
|
1753
|
+
"map-pin": import_lucide_react13.MapPin
|
|
1754
|
+
};
|
|
1755
|
+
|
|
1756
|
+
// src/components/jobPost/JobHeader.tsx
|
|
1757
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1758
|
+
function JobHeader({
|
|
1759
|
+
title,
|
|
1760
|
+
subtitles,
|
|
1761
|
+
standalone,
|
|
1762
|
+
bannerSrc,
|
|
1763
|
+
avatarSrc,
|
|
1764
|
+
avatarName,
|
|
1765
|
+
avatarHref,
|
|
1766
|
+
backFallbackHref,
|
|
1767
|
+
backAcceptedRoutes,
|
|
1768
|
+
actions,
|
|
1769
|
+
tags
|
|
1770
|
+
}) {
|
|
1771
|
+
const renderIcon = (icon) => {
|
|
1772
|
+
const Icon2 = iconMap[icon];
|
|
1773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon2, { size: 18 });
|
|
1774
|
+
};
|
|
1775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
1776
|
+
"div",
|
|
1777
|
+
{
|
|
1778
|
+
"data-testid": "job-header-root",
|
|
1779
|
+
className: cn(
|
|
1780
|
+
"-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
|
|
1781
|
+
!standalone && "rounded-3xl"
|
|
1782
|
+
),
|
|
1783
|
+
children: [
|
|
1784
|
+
!standalone && /* @__PURE__ */ (0, import_jsx_runtime30.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: [
|
|
1785
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1786
|
+
import_image.default,
|
|
1787
|
+
{
|
|
1788
|
+
className: "h-full w-full rounded-t-3xl object-cover",
|
|
1789
|
+
src: bannerSrc,
|
|
1790
|
+
alt: "job banner",
|
|
1791
|
+
fill: true
|
|
1792
|
+
}
|
|
1793
|
+
),
|
|
1794
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1795
|
+
BackButton,
|
|
1796
|
+
{
|
|
1797
|
+
acceptedRoutes: backAcceptedRoutes,
|
|
1798
|
+
fallbackHref: backFallbackHref,
|
|
1799
|
+
className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
|
|
1800
|
+
"data-testid": "job-header-back-button"
|
|
1801
|
+
}
|
|
1802
|
+
),
|
|
1803
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1804
|
+
"div",
|
|
1805
|
+
{
|
|
1806
|
+
className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
|
|
1807
|
+
"data-testid": "job-header-avatar",
|
|
1808
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1809
|
+
Avatar,
|
|
1810
|
+
{
|
|
1811
|
+
size: "large",
|
|
1812
|
+
target: "_blank",
|
|
1813
|
+
href: avatarHref,
|
|
1814
|
+
name: avatarName,
|
|
1815
|
+
src: avatarSrc,
|
|
1816
|
+
rel: "noopener noreferrer"
|
|
1817
|
+
}
|
|
1818
|
+
)
|
|
1819
|
+
}
|
|
1820
|
+
)
|
|
1821
|
+
] }),
|
|
1822
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
|
|
1823
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex flex-col md:flex-row", children: [
|
|
1824
|
+
standalone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1825
|
+
Avatar,
|
|
1826
|
+
{
|
|
1827
|
+
size: "large",
|
|
1828
|
+
target: "_blank",
|
|
1829
|
+
href: avatarHref,
|
|
1830
|
+
name: avatarName,
|
|
1831
|
+
src: avatarSrc,
|
|
1832
|
+
rel: "noopener noreferrer"
|
|
1833
|
+
}
|
|
1834
|
+
) }),
|
|
1835
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.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_runtime30.jsxs)(
|
|
1836
|
+
"div",
|
|
1837
|
+
{
|
|
1838
|
+
"data-testid": `job-header-subtitle-${i}`,
|
|
1839
|
+
className: "flex items-center",
|
|
1840
|
+
children: [
|
|
1841
|
+
subtitle,
|
|
1842
|
+
i < subtitles.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react14.Dot, { className: "mx-1 shrink-0", size: 10 })
|
|
1843
|
+
]
|
|
1844
|
+
},
|
|
1845
|
+
subtitle
|
|
1846
|
+
)) })
|
|
1847
|
+
] }),
|
|
1848
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
1849
|
+
"div",
|
|
1850
|
+
{
|
|
1851
|
+
"data-testid": "job-header-content",
|
|
1852
|
+
className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
|
|
1853
|
+
children: [
|
|
1854
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1855
|
+
"h2",
|
|
1856
|
+
{
|
|
1857
|
+
"data-testid": "job-header-title",
|
|
1858
|
+
className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg",
|
|
1859
|
+
children: title
|
|
1860
|
+
}
|
|
1861
|
+
),
|
|
1862
|
+
!!actions && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1863
|
+
"div",
|
|
1864
|
+
{
|
|
1865
|
+
className: "flex w-full justify-end gap-2 md:w-auto",
|
|
1866
|
+
"data-testid": "job-header-actions",
|
|
1867
|
+
children: actions
|
|
1868
|
+
}
|
|
1869
|
+
)
|
|
1870
|
+
]
|
|
1871
|
+
}
|
|
1872
|
+
),
|
|
1873
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1874
|
+
"div",
|
|
1875
|
+
{
|
|
1876
|
+
"data-testid": "job-header-tags",
|
|
1877
|
+
className: "flex flex-row flex-wrap items-center justify-start gap-2",
|
|
1878
|
+
children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
1879
|
+
Chip_default,
|
|
1880
|
+
{
|
|
1881
|
+
size: "small",
|
|
1882
|
+
variant: "neutral",
|
|
1883
|
+
"aria-label": name,
|
|
1884
|
+
"data-testid": `job-header-tag-${name}`,
|
|
1885
|
+
children: [
|
|
1886
|
+
renderIcon(icon),
|
|
1887
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: label })
|
|
1888
|
+
]
|
|
1889
|
+
},
|
|
1890
|
+
name
|
|
1891
|
+
))
|
|
1892
|
+
}
|
|
1893
|
+
)
|
|
1894
|
+
] })
|
|
1895
|
+
]
|
|
1896
|
+
}
|
|
1897
|
+
);
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1900
|
+
// src/components/jobPost/JobPost.tsx
|
|
1901
|
+
var DateFns = __toESM(require("date-fns"), 1);
|
|
1902
|
+
|
|
1903
|
+
// src/types/data/shared_pickle_output_latest.ts
|
|
1904
|
+
var shared_pickle_output_latest_exports = {};
|
|
1905
|
+
__export(shared_pickle_output_latest_exports, {
|
|
1906
|
+
CurrencyEnum: () => CurrencyEnum,
|
|
1907
|
+
DetailLevelEnum: () => DetailLevelEnum,
|
|
1908
|
+
TypeEnum: () => TypeEnum,
|
|
1909
|
+
UnitTextEnum: () => UnitTextEnum,
|
|
1910
|
+
monetaryAmountSchema: () => monetaryAmountSchema,
|
|
1911
|
+
placeSchema: () => placeSchema,
|
|
1912
|
+
postalAddressSchema: () => postalAddressSchema,
|
|
1913
|
+
quantitativeValueSchema: () => quantitativeValueSchema
|
|
1914
|
+
});
|
|
1915
|
+
var import_zod = require("zod");
|
|
1916
|
+
var TypeEnum = import_zod.z.enum(["MONETARY_AMOUNT"]);
|
|
1917
|
+
var DetailLevelEnum = import_zod.z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
|
|
1918
|
+
var UnitTextEnum = import_zod.z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
|
|
1919
|
+
var CurrencyEnum = import_zod.z.enum(["EUR", "GBP", "USD"]);
|
|
1920
|
+
var postalAddressSchema = import_zod.z.object({
|
|
1921
|
+
version: import_zod.z.literal("1.0.0").default("1.0.0"),
|
|
1922
|
+
type: import_zod.z.string().describe("Document type used within sanity"),
|
|
1923
|
+
addressCountry: import_zod.z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
|
|
1924
|
+
addressRegion: import_zod.z.optional(import_zod.z.string()).describe("The region in which the locality is, and which is in the country."),
|
|
1925
|
+
addressLocality: import_zod.z.optional(import_zod.z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
|
|
1926
|
+
streetAddress: import_zod.z.optional(import_zod.z.string()).describe("The street address within the locality."),
|
|
1927
|
+
postalCode: import_zod.z.optional(import_zod.z.string()).describe("The postal code")
|
|
1928
|
+
});
|
|
1929
|
+
var placeSchema = import_zod.z.object({
|
|
1930
|
+
version: import_zod.z.literal("1.0.0").default("1.0.0"),
|
|
1931
|
+
detailLevel: import_zod.z.optional(DetailLevelEnum),
|
|
1932
|
+
latitude: import_zod.z.optional(import_zod.z.number()).describe("The latitude of a location."),
|
|
1933
|
+
longitude: import_zod.z.optional(import_zod.z.number()).describe("The longitude of a location."),
|
|
1934
|
+
address: import_zod.z.optional(postalAddressSchema).describe("The physical place of the location")
|
|
1935
|
+
});
|
|
1936
|
+
var quantitativeValueSchema = import_zod.z.object({
|
|
1937
|
+
version: import_zod.z.literal("1.0.0").default("1.0.0"),
|
|
1938
|
+
type: import_zod.z.string().describe("Document type used within sanity"),
|
|
1939
|
+
value: import_zod.z.optional(import_zod.z.number()).describe("The single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Typically used for a single salary."),
|
|
1940
|
+
minValue: import_zod.z.optional(import_zod.z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
|
|
1941
|
+
maxValue: import_zod.z.optional(import_zod.z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
|
|
1942
|
+
unitText: UnitTextEnum
|
|
1943
|
+
});
|
|
1944
|
+
var monetaryAmountSchema = import_zod.z.object({
|
|
1945
|
+
version: import_zod.z.literal("1.0.0").default("1.0.0"),
|
|
1946
|
+
type: import_zod.z.string().describe("Document type used within sanity"),
|
|
1947
|
+
singleValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Deprecated - use value.value instead."),
|
|
1948
|
+
minValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
|
|
1949
|
+
maxValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
|
|
1950
|
+
value: import_zod.z.optional(quantitativeValueSchema).describe("The quantitative_value for a given salary"),
|
|
1951
|
+
currency: import_zod.z.optional(CurrencyEnum)
|
|
1952
|
+
});
|
|
1953
|
+
|
|
1954
|
+
// src/lib/salaryRange.ts
|
|
1955
|
+
function salaryRange(salary) {
|
|
1956
|
+
if (!salary) return null;
|
|
1957
|
+
const min = salary.minValue;
|
|
1958
|
+
const max = salary.maxValue;
|
|
1959
|
+
const single = salary.singleValue;
|
|
1960
|
+
const signs = {
|
|
1961
|
+
[CurrencyEnum.Values.USD]: "$",
|
|
1962
|
+
[CurrencyEnum.Values.GBP]: "\xA3",
|
|
1963
|
+
[CurrencyEnum.Values.EUR]: "\u20AC"
|
|
1964
|
+
};
|
|
1965
|
+
const sign = signs[salary.currency ?? CurrencyEnum.Values.USD];
|
|
1966
|
+
if (min == null && max == null && single == null) return null;
|
|
1967
|
+
if (single != null) return sign + single.toLocaleString();
|
|
1968
|
+
if (min === max) return sign + min?.toLocaleString();
|
|
1969
|
+
if (min != null && max != null)
|
|
1970
|
+
return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString();
|
|
1971
|
+
return null;
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1974
|
+
// src/hooks/useDisplayText.ts
|
|
1975
|
+
var import_react12 = require("react");
|
|
1976
|
+
|
|
1977
|
+
// src/lib/mappings.ts
|
|
1978
|
+
var employmentTypeDisplayText = {
|
|
1979
|
+
FULL_TIME: {
|
|
1980
|
+
en: "Full Time"
|
|
1981
|
+
},
|
|
1982
|
+
INTERNSHIP: {
|
|
1983
|
+
en: "Internship"
|
|
1984
|
+
},
|
|
1985
|
+
OTHER: {
|
|
1986
|
+
en: "Other"
|
|
1987
|
+
},
|
|
1988
|
+
PART_TIME: {
|
|
1989
|
+
en: "Part Time"
|
|
1990
|
+
},
|
|
1991
|
+
PER_DIEM: {
|
|
1992
|
+
en: "Per-Diem"
|
|
1993
|
+
},
|
|
1994
|
+
TEMPORARY: {
|
|
1995
|
+
en: "Temporary"
|
|
1996
|
+
},
|
|
1997
|
+
CONTRACT: {
|
|
1998
|
+
en: "Contract"
|
|
1999
|
+
}
|
|
2000
|
+
};
|
|
2001
|
+
var unitTextDisplayText = {
|
|
2002
|
+
DAY: {
|
|
2003
|
+
en: "Day"
|
|
2004
|
+
},
|
|
2005
|
+
HOUR: {
|
|
2006
|
+
en: "Hour"
|
|
2007
|
+
},
|
|
2008
|
+
MONTH: {
|
|
2009
|
+
en: "Month"
|
|
2010
|
+
},
|
|
2011
|
+
PER_ACTIVITY: {
|
|
2012
|
+
en: "Per Activity"
|
|
2013
|
+
},
|
|
2014
|
+
WEEK: {
|
|
2015
|
+
en: "Week"
|
|
2016
|
+
},
|
|
2017
|
+
YEAR: {
|
|
2018
|
+
en: "Year"
|
|
2019
|
+
}
|
|
2020
|
+
};
|
|
2021
|
+
var currencyDisplayText = {
|
|
2022
|
+
EUR: {
|
|
2023
|
+
en: "\u20AC"
|
|
2024
|
+
},
|
|
2025
|
+
GBP: {
|
|
2026
|
+
en: "\xA3"
|
|
2027
|
+
},
|
|
2028
|
+
USD: {
|
|
2029
|
+
en: "$"
|
|
2030
|
+
}
|
|
2031
|
+
};
|
|
2032
|
+
var employmentLevelDisplayText = {
|
|
2033
|
+
DIRECTOR: {
|
|
2034
|
+
en: "Director"
|
|
2035
|
+
},
|
|
2036
|
+
ENTRY_LEVEL: {
|
|
2037
|
+
en: "Entry Level"
|
|
2038
|
+
},
|
|
2039
|
+
EXECUTIVE: {
|
|
2040
|
+
en: "Executive"
|
|
2041
|
+
},
|
|
2042
|
+
EXPERIENCED: {
|
|
2043
|
+
en: "Experienced"
|
|
2044
|
+
},
|
|
2045
|
+
INTERN: {
|
|
2046
|
+
en: "Intern"
|
|
2047
|
+
},
|
|
2048
|
+
MANAGER: {
|
|
2049
|
+
en: "Manager"
|
|
2050
|
+
}
|
|
2051
|
+
};
|
|
2052
|
+
var jobFunctionDisplayText = {
|
|
2053
|
+
CLINICAL_RESEARCH: {
|
|
2054
|
+
en: "Clinical Research"
|
|
2055
|
+
},
|
|
2056
|
+
CUSTOMER_SUCCESS: {
|
|
2057
|
+
en: "Customer Success"
|
|
2058
|
+
},
|
|
2059
|
+
DATA_ANALYTICS: {
|
|
2060
|
+
en: "Data Analytics"
|
|
2061
|
+
},
|
|
2062
|
+
FINANCE_AND_AUDIT: {
|
|
2063
|
+
en: "Finance and Audit"
|
|
2064
|
+
},
|
|
2065
|
+
MARKETING: {
|
|
2066
|
+
en: "Marketing"
|
|
2067
|
+
},
|
|
2068
|
+
OPERATIONS: {
|
|
2069
|
+
en: "Operations"
|
|
2070
|
+
},
|
|
2071
|
+
PEOPLE_HUMAN_RESOURCES: {
|
|
2072
|
+
en: "People Human Resources"
|
|
2073
|
+
},
|
|
2074
|
+
PRODUCT_AND_TECH: {
|
|
2075
|
+
en: "Product and Tech"
|
|
2076
|
+
},
|
|
2077
|
+
QUALITY_ASSURANCE_AND_OUTCOMES: {
|
|
2078
|
+
en: "Quality Assurance and Outcomes"
|
|
2079
|
+
},
|
|
2080
|
+
SALES_AND_BUSINESS_DEVELOPMENT: {
|
|
2081
|
+
en: "Sales and Business Development"
|
|
2082
|
+
},
|
|
2083
|
+
STRATEGY_AND_CONSULTING: {
|
|
2084
|
+
en: "Strategy and Consulting"
|
|
2085
|
+
}
|
|
2086
|
+
};
|
|
2087
|
+
var bestFitDisplayText = {
|
|
2088
|
+
DENTIST: {
|
|
2089
|
+
en: "Dentist"
|
|
2090
|
+
},
|
|
2091
|
+
DIETICIAN: {
|
|
2092
|
+
en: "Dietician"
|
|
2093
|
+
},
|
|
2094
|
+
DOULA: {
|
|
2095
|
+
en: "Doula"
|
|
2096
|
+
},
|
|
2097
|
+
MEDICAL_ASSISTANT: {
|
|
2098
|
+
en: "Medical Assistant"
|
|
2099
|
+
},
|
|
2100
|
+
MIDWIFE: {
|
|
2101
|
+
en: "Midwife"
|
|
2102
|
+
},
|
|
2103
|
+
NURSE: {
|
|
2104
|
+
en: "Nurse"
|
|
2105
|
+
},
|
|
2106
|
+
OCCUPATIONAL_THERAPIST: {
|
|
2107
|
+
en: "Occupational Therapist"
|
|
2108
|
+
},
|
|
2109
|
+
PHARMACIST: {
|
|
2110
|
+
en: "Pharmacist"
|
|
2111
|
+
},
|
|
2112
|
+
PHYSICAL_THERAPIST: {
|
|
2113
|
+
en: "Physical Therapist"
|
|
2114
|
+
},
|
|
2115
|
+
PHYSICIAN: {
|
|
2116
|
+
en: "Physician"
|
|
2117
|
+
},
|
|
2118
|
+
PHYSICIAN_ASSISTANT: {
|
|
2119
|
+
en: "Physician Assistant"
|
|
2120
|
+
},
|
|
2121
|
+
PSYCHOLOGIST: {
|
|
2122
|
+
en: "Psychologist"
|
|
2123
|
+
},
|
|
2124
|
+
RADIOLOGIST: {
|
|
2125
|
+
en: "Radiologist"
|
|
2126
|
+
},
|
|
2127
|
+
SOCIAL_WORKER: {
|
|
2128
|
+
en: "Social Worker"
|
|
2129
|
+
},
|
|
2130
|
+
SPEECH_LANGUAGE_PATHOLOGIST: {
|
|
2131
|
+
en: "Speech Language Pathologist"
|
|
2132
|
+
},
|
|
2133
|
+
SURGEON: {
|
|
2134
|
+
en: "Surgeon"
|
|
2135
|
+
}
|
|
2136
|
+
};
|
|
2137
|
+
var clinicalSpecialtyDisplayText = {
|
|
2138
|
+
ANESTHESIOLOGY: {
|
|
2139
|
+
en: "Anesthesiology"
|
|
2140
|
+
},
|
|
2141
|
+
CARDIOLOGY: {
|
|
2142
|
+
en: "Cardiology"
|
|
2143
|
+
},
|
|
2144
|
+
CARDIOVASCULAR_AND_PULMONARY: {
|
|
2145
|
+
en: "Cardiovascular and Pulmonary"
|
|
2146
|
+
},
|
|
2147
|
+
CASE_MANAGEMENT: {
|
|
2148
|
+
en: "Case Management"
|
|
2149
|
+
},
|
|
2150
|
+
CHRONIC_PAIN: {
|
|
2151
|
+
en: "Chronic Pain"
|
|
2152
|
+
},
|
|
2153
|
+
CLINICAL_ELECTROPHYSIOLOGY: {
|
|
2154
|
+
en: "Clinical Electrophysiology"
|
|
2155
|
+
},
|
|
2156
|
+
CRITICAL_AND_ACUTE_CARE: {
|
|
2157
|
+
en: "Critical and Acute Care"
|
|
2158
|
+
},
|
|
2159
|
+
DERMATOLOGY: {
|
|
2160
|
+
en: "Dermatology"
|
|
2161
|
+
},
|
|
2162
|
+
DIALYSIS: {
|
|
2163
|
+
en: "Dialysis"
|
|
2164
|
+
},
|
|
2165
|
+
EMERGENCY_MEDICINE: {
|
|
2166
|
+
en: "Emergency Medicine"
|
|
2167
|
+
},
|
|
2168
|
+
ENDOCRINOLOGY: {
|
|
2169
|
+
en: "Endocrinology"
|
|
2170
|
+
},
|
|
2171
|
+
ERGONOMICS: {
|
|
2172
|
+
en: "Ergonomics"
|
|
2173
|
+
},
|
|
2174
|
+
FEEDING_EATING_AND_SWALLOWING: {
|
|
2175
|
+
en: "Feeding, Eating, and Swallowing"
|
|
2176
|
+
},
|
|
2177
|
+
GASTROENTEROLOGY: {
|
|
2178
|
+
en: "Gastroenterology"
|
|
2179
|
+
},
|
|
2180
|
+
GERIATRICS: {
|
|
2181
|
+
en: "Geriatrics"
|
|
2182
|
+
},
|
|
2183
|
+
HAND_THERAPY: {
|
|
2184
|
+
en: "Hand Therapy"
|
|
2185
|
+
},
|
|
2186
|
+
HEMATOLOGY: {
|
|
2187
|
+
en: "Hematology"
|
|
2188
|
+
},
|
|
2189
|
+
HOLISTIC_MEDICINE: {
|
|
2190
|
+
en: "Holistic Medicine"
|
|
2191
|
+
},
|
|
2192
|
+
INFORMATICS: {
|
|
2193
|
+
en: "Informatics"
|
|
2194
|
+
},
|
|
2195
|
+
INTERNAL_MEDICINE: {
|
|
2196
|
+
en: "Internal Medicine"
|
|
2197
|
+
},
|
|
2198
|
+
LABOR_AND_DELIVERY: {
|
|
2199
|
+
en: "Labor and Delivery"
|
|
2200
|
+
},
|
|
2201
|
+
MANUAL_THERAPY: {
|
|
2202
|
+
en: "Manual Therapy"
|
|
2203
|
+
},
|
|
2204
|
+
MED_SURG: {
|
|
2205
|
+
en: "Medical-Surgical"
|
|
2206
|
+
},
|
|
2207
|
+
MENTAL_HEALTH: {
|
|
2208
|
+
en: "Mental Health"
|
|
2209
|
+
},
|
|
2210
|
+
NEPHROLOGY: {
|
|
2211
|
+
en: "Nephrology"
|
|
2212
|
+
},
|
|
2213
|
+
NEUROLOGY: {
|
|
2214
|
+
en: "Neurology"
|
|
2215
|
+
},
|
|
2216
|
+
ONCOLOGY: {
|
|
2217
|
+
en: "Oncology"
|
|
2218
|
+
},
|
|
2219
|
+
ORTHOPEDICS: {
|
|
2220
|
+
en: "Orthopedics"
|
|
2221
|
+
},
|
|
2222
|
+
OTOLARYNGOLOGY: {
|
|
2223
|
+
en: "Otolaryngology"
|
|
2224
|
+
},
|
|
2225
|
+
PEDIATRICS: {
|
|
2226
|
+
en: "Pediatrics"
|
|
2227
|
+
},
|
|
2228
|
+
PHYSICAL_AND_REHABILITATION_MEDICINE: {
|
|
2229
|
+
en: "Physical and Rehabilitation Medicine"
|
|
2230
|
+
},
|
|
2231
|
+
PLASTIC_SURGERY: {
|
|
2232
|
+
en: "Plastic Surgery"
|
|
2233
|
+
},
|
|
2234
|
+
PRIMARY_CARE: {
|
|
2235
|
+
en: "Primary Care"
|
|
2236
|
+
},
|
|
2237
|
+
PSYCHIATRY: {
|
|
2238
|
+
en: "Psychiatry"
|
|
2239
|
+
},
|
|
2240
|
+
PULMONOLOGY: {
|
|
2241
|
+
en: "Pulmonology"
|
|
2242
|
+
},
|
|
2243
|
+
RADIOLOGY: {
|
|
2244
|
+
en: "Radiology"
|
|
2245
|
+
},
|
|
2246
|
+
SENSORY: {
|
|
2247
|
+
en: "Sensory"
|
|
2248
|
+
},
|
|
2249
|
+
SPORTS: {
|
|
2250
|
+
en: "Sports"
|
|
2251
|
+
},
|
|
2252
|
+
SURGERY: {
|
|
2253
|
+
en: "Surgery"
|
|
2254
|
+
},
|
|
2255
|
+
TRANSPLANT_SURGERY: {
|
|
2256
|
+
en: "Transplant Surgery"
|
|
2257
|
+
},
|
|
2258
|
+
TRAUMA_MEDICINE: {
|
|
2259
|
+
en: "Trauma Medicine"
|
|
2260
|
+
},
|
|
2261
|
+
URGENT_CARE: {
|
|
2262
|
+
en: "Urgent Care"
|
|
2263
|
+
},
|
|
2264
|
+
UROLOGY: {
|
|
2265
|
+
en: "Urology"
|
|
2266
|
+
},
|
|
2267
|
+
VISION: {
|
|
2268
|
+
en: "Vision"
|
|
2269
|
+
},
|
|
2270
|
+
WOMENS_HEALTH: {
|
|
2271
|
+
en: "Women's Health"
|
|
2272
|
+
},
|
|
2273
|
+
WOUND_AND_BURN_CARE: {
|
|
2274
|
+
en: "Wound and Burn Care"
|
|
2275
|
+
},
|
|
2276
|
+
WOUND_MANAGEMENT: {
|
|
2277
|
+
en: "Wound Management"
|
|
2278
|
+
}
|
|
2279
|
+
};
|
|
2280
|
+
var shiftDisplayText = {
|
|
2281
|
+
TEN_HOUR: {
|
|
2282
|
+
en: "10 Hour"
|
|
2283
|
+
},
|
|
2284
|
+
TWELVE_HOUR: {
|
|
2285
|
+
en: "12 Hour"
|
|
2286
|
+
},
|
|
2287
|
+
EIGHT_HOUR: {
|
|
2288
|
+
en: "8 Hour"
|
|
2289
|
+
},
|
|
2290
|
+
DAY: {
|
|
2291
|
+
en: "Day"
|
|
2292
|
+
},
|
|
2293
|
+
EVENING: {
|
|
2294
|
+
en: "Evening"
|
|
2295
|
+
},
|
|
2296
|
+
FLEXIBLE: {
|
|
2297
|
+
en: "Flexible"
|
|
2298
|
+
},
|
|
2299
|
+
MID_SHIFT: {
|
|
2300
|
+
en: "Mid Shift"
|
|
2301
|
+
},
|
|
2302
|
+
MONDAY_TO_FRIDAY: {
|
|
2303
|
+
en: "Monday to Friday"
|
|
2304
|
+
},
|
|
2305
|
+
NIGHT: {
|
|
2306
|
+
en: "Night"
|
|
2307
|
+
},
|
|
2308
|
+
ON_CALL: {
|
|
2309
|
+
en: "On Call"
|
|
2310
|
+
},
|
|
2311
|
+
WEEKENDS: {
|
|
2312
|
+
en: "Weekends"
|
|
2313
|
+
}
|
|
2314
|
+
};
|
|
2315
|
+
var clinicalSettingDisplayText = {
|
|
2316
|
+
ACUTE_CARE: {
|
|
2317
|
+
en: "Acute Care"
|
|
2318
|
+
},
|
|
2319
|
+
AMBULATORY_SURGERY_CENTER: {
|
|
2320
|
+
en: "Ambulatory Surgery Center"
|
|
2321
|
+
},
|
|
2322
|
+
CLINIC: {
|
|
2323
|
+
en: "Clinic"
|
|
2324
|
+
},
|
|
2325
|
+
HOME_HEALTH: {
|
|
2326
|
+
en: "Home Health"
|
|
2327
|
+
},
|
|
2328
|
+
HOSPITAL: {
|
|
2329
|
+
en: "Hospital"
|
|
2330
|
+
},
|
|
2331
|
+
INPATIENT: {
|
|
2332
|
+
en: "Inpatient"
|
|
2333
|
+
},
|
|
2334
|
+
LONG_TERM_CARE: {
|
|
2335
|
+
en: "Long Term Care"
|
|
2336
|
+
},
|
|
2337
|
+
MED_SPA: {
|
|
2338
|
+
en: "Med Spa"
|
|
2339
|
+
},
|
|
2340
|
+
NURSING_HOME: {
|
|
2341
|
+
en: "Nursing Home"
|
|
2342
|
+
},
|
|
2343
|
+
OFFICE: {
|
|
2344
|
+
en: "Office"
|
|
2345
|
+
},
|
|
2346
|
+
OUTPATIENT: {
|
|
2347
|
+
en: "Outpatient"
|
|
2348
|
+
},
|
|
2349
|
+
PRIVATE_PRACTICE: {
|
|
2350
|
+
en: "Private Practice"
|
|
2351
|
+
},
|
|
2352
|
+
REHAB_CENTER: {
|
|
2353
|
+
en: "Rehab Center"
|
|
2354
|
+
},
|
|
2355
|
+
SCHOOL: {
|
|
2356
|
+
en: "School"
|
|
2357
|
+
},
|
|
2358
|
+
SKILLED_NURSING_FACILITY: {
|
|
2359
|
+
en: "Skilled Nursing Facility"
|
|
2360
|
+
}
|
|
2361
|
+
};
|
|
2362
|
+
var defaultMappings = {
|
|
2363
|
+
employmentType: employmentTypeDisplayText,
|
|
2364
|
+
unitText: unitTextDisplayText,
|
|
2365
|
+
currency: currencyDisplayText,
|
|
2366
|
+
employmentLevel: employmentLevelDisplayText,
|
|
2367
|
+
jobFunction: jobFunctionDisplayText,
|
|
2368
|
+
bestFit: bestFitDisplayText,
|
|
2369
|
+
clinicalSpecialty: clinicalSpecialtyDisplayText,
|
|
2370
|
+
clinicalSetting: clinicalSettingDisplayText,
|
|
2371
|
+
shift: shiftDisplayText
|
|
2372
|
+
};
|
|
2373
|
+
|
|
2374
|
+
// src/types/displayText.errors.tsx
|
|
2375
|
+
var DisplayTextScopeNotFoundError = class extends Error {
|
|
2376
|
+
constructor(scope) {
|
|
2377
|
+
super(`No display text mapping found for scope: ${scope}`);
|
|
2378
|
+
this.name = "DisplayTextScopeNotFoundError";
|
|
2379
|
+
}
|
|
2380
|
+
};
|
|
2381
|
+
var DisplayTextValueNotFoundError = class extends Error {
|
|
2382
|
+
constructor(value, scope) {
|
|
2383
|
+
super(`No display text found for value: '${value}' in scope: '${scope}'`);
|
|
2384
|
+
this.name = "DisplayTextValueNotFoundError";
|
|
2385
|
+
}
|
|
2386
|
+
};
|
|
2387
|
+
|
|
2388
|
+
// src/services/displayText.tsx
|
|
2389
|
+
var DisplayTextService = class {
|
|
2390
|
+
constructor(customMappings) {
|
|
2391
|
+
this.defaultLanguage = "en";
|
|
2392
|
+
this.mappings = {
|
|
2393
|
+
...defaultMappings,
|
|
2394
|
+
// Use all pre-defined mappings as defaults
|
|
2395
|
+
...customMappings
|
|
2396
|
+
// Override with any custom mappings if provided
|
|
2397
|
+
};
|
|
2398
|
+
}
|
|
2399
|
+
async getDisplayText(scope, value, language = this.defaultLanguage) {
|
|
2400
|
+
const scopeMapping = this.mappings[scope];
|
|
2401
|
+
if (!scopeMapping) {
|
|
2402
|
+
throw new DisplayTextScopeNotFoundError(scope);
|
|
2403
|
+
}
|
|
2404
|
+
if (Array.isArray(value)) {
|
|
2405
|
+
const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language));
|
|
2406
|
+
const displayTexts2 = await Promise.all(displayTextPromises);
|
|
2407
|
+
return displayTexts2.filter((v) => !!v).join(", ");
|
|
2408
|
+
}
|
|
2409
|
+
const displayTexts = scopeMapping[value];
|
|
2410
|
+
if (!displayTexts) {
|
|
2411
|
+
throw new DisplayTextValueNotFoundError(value, scope);
|
|
2412
|
+
}
|
|
2413
|
+
return displayTexts[language] || displayTexts[this.defaultLanguage] || value;
|
|
2414
|
+
}
|
|
2415
|
+
};
|
|
2416
|
+
|
|
2417
|
+
// src/hooks/useDisplayText.ts
|
|
2418
|
+
var useDisplayText = (scope, value) => {
|
|
2419
|
+
const [displayText, setDisplayText] = (0, import_react12.useState)("");
|
|
2420
|
+
const displayService = (0, import_react12.useMemo)(() => new DisplayTextService(), []);
|
|
2421
|
+
(0, import_react12.useEffect)(() => {
|
|
2422
|
+
if (!displayService || !value) {
|
|
2423
|
+
setDisplayText("");
|
|
2424
|
+
return;
|
|
2425
|
+
}
|
|
2426
|
+
void (async () => {
|
|
2427
|
+
try {
|
|
2428
|
+
const result = await displayService.getDisplayText(scope, value);
|
|
2429
|
+
if (typeof result === "string") {
|
|
2430
|
+
setDisplayText(result);
|
|
2431
|
+
} else {
|
|
2432
|
+
console.error("Expected a string result, but got:", result);
|
|
2433
|
+
}
|
|
2434
|
+
} catch (error) {
|
|
2435
|
+
if (error instanceof DisplayTextValueNotFoundError) {
|
|
2436
|
+
console.warn("Display text value not found:", value);
|
|
2437
|
+
setDisplayText(String(value));
|
|
2438
|
+
} else {
|
|
2439
|
+
console.error("Unexpected error formatting text:", error);
|
|
2440
|
+
setDisplayText(String(value));
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2443
|
+
})();
|
|
2444
|
+
}, [scope, value, displayService]);
|
|
2445
|
+
return displayText;
|
|
2446
|
+
};
|
|
2447
|
+
|
|
2448
|
+
// src/lib/locations.ts
|
|
2449
|
+
function formattedAddress(address) {
|
|
2450
|
+
const { addressLocality, addressRegion, addressCountry } = address;
|
|
2451
|
+
if (addressLocality && addressRegion) return `${addressLocality}, ${addressRegion}`;
|
|
2452
|
+
if (addressRegion && addressCountry) return `${addressRegion}, ${addressCountry}`;
|
|
2453
|
+
if (addressRegion) return addressRegion;
|
|
2454
|
+
if (addressCountry) return addressCountry;
|
|
2455
|
+
return null;
|
|
2456
|
+
}
|
|
2457
|
+
function formattedJobLocation(job) {
|
|
2458
|
+
const address = job.jobLocation && formattedAddress(job.jobLocation);
|
|
2459
|
+
const remote = job.isRemote ? "Remote" : "";
|
|
2460
|
+
return [address, remote].filter(Boolean).join(" | ");
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2463
|
+
// src/components/jobPost/JobPost.tsx
|
|
2464
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2465
|
+
function JobPost({
|
|
2466
|
+
job,
|
|
2467
|
+
bannerSrc,
|
|
2468
|
+
avatarSrc,
|
|
2469
|
+
standalone,
|
|
2470
|
+
fallbackHref,
|
|
2471
|
+
actions
|
|
2472
|
+
}) {
|
|
2473
|
+
const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
|
|
2474
|
+
const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
|
|
2475
|
+
const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
|
|
2476
|
+
const formattedLocation = formattedJobLocation(job);
|
|
2477
|
+
const formattedSalary = salaryRange(job.estimatedSalary);
|
|
2478
|
+
const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
|
|
2479
|
+
addSuffix: true
|
|
2480
|
+
});
|
|
2481
|
+
const tags = [
|
|
2482
|
+
!!formattedSalary && {
|
|
2483
|
+
icon: "banknote",
|
|
2484
|
+
name: "salary",
|
|
2485
|
+
label: `${formattedSalary} a year`
|
|
2486
|
+
},
|
|
2487
|
+
!!formattedEmploymentType && {
|
|
2488
|
+
icon: "briefcase-business",
|
|
2489
|
+
name: "employmentType",
|
|
2490
|
+
label: formattedEmploymentType
|
|
2491
|
+
},
|
|
2492
|
+
!!formattedEmploymentLevel && {
|
|
2493
|
+
icon: "circle-user",
|
|
2494
|
+
name: "level",
|
|
2495
|
+
label: formattedEmploymentLevel
|
|
2496
|
+
},
|
|
2497
|
+
!!formattedJobFunction && {
|
|
2498
|
+
icon: "briefcase-business",
|
|
2499
|
+
name: "jobFunction",
|
|
2500
|
+
label: formattedJobFunction
|
|
2501
|
+
},
|
|
2502
|
+
!!formattedLocation && {
|
|
2503
|
+
icon: "map-pin",
|
|
2504
|
+
name: "location",
|
|
2505
|
+
label: formattedLocation
|
|
2506
|
+
}
|
|
2507
|
+
].filter((t) => !!t);
|
|
2508
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
2509
|
+
"div",
|
|
2510
|
+
{
|
|
2511
|
+
className: cn(
|
|
2512
|
+
"flex flex-col gap-10 pb-4",
|
|
2513
|
+
!standalone && "border-1 rounded-3xl border-grey-5"
|
|
2514
|
+
),
|
|
2515
|
+
children: [
|
|
2516
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2517
|
+
JobHeader,
|
|
2518
|
+
{
|
|
2519
|
+
title: job.title,
|
|
2520
|
+
bannerSrc,
|
|
2521
|
+
avatarName: job.hiringOrganization?.companyName,
|
|
2522
|
+
subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
|
|
2523
|
+
actions,
|
|
2524
|
+
standalone,
|
|
2525
|
+
backFallbackHref: fallbackHref,
|
|
2526
|
+
tags
|
|
2527
|
+
}
|
|
2528
|
+
),
|
|
2529
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "flex flex-col gap-8 px-6", children: [
|
|
2530
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(JobDescription, { description: job.description }),
|
|
2531
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2532
|
+
CompanyTake,
|
|
2533
|
+
{
|
|
2534
|
+
avatarSrc,
|
|
2535
|
+
content: job.hiringOrganization?.companyNDG?.companyNDGTake
|
|
2536
|
+
}
|
|
2537
|
+
),
|
|
2538
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2539
|
+
CompanyInformation,
|
|
2540
|
+
{
|
|
2541
|
+
name: job.hiringOrganization?.companyName ?? "",
|
|
2542
|
+
how: job.hiringOrganization?.companyPhilosophy?.companyHow,
|
|
2543
|
+
mission: job.hiringOrganization?.companyPhilosophy?.mission,
|
|
2544
|
+
wow: job.hiringOrganization?.companyNDG?.companyWow,
|
|
2545
|
+
website: job.hiringOrganization?.companyWebsite
|
|
2546
|
+
}
|
|
2547
|
+
),
|
|
2548
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2549
|
+
CompanyBenefits,
|
|
2550
|
+
{
|
|
2551
|
+
benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.description).filter((d) => d !== void 0)
|
|
2552
|
+
}
|
|
2553
|
+
)
|
|
2554
|
+
] })
|
|
2555
|
+
]
|
|
2556
|
+
}
|
|
2557
|
+
);
|
|
2558
|
+
}
|
|
2559
|
+
|
|
2560
|
+
// src/types/data/job_posting_service_latest.ts
|
|
2561
|
+
var job_posting_service_latest_exports = {};
|
|
2562
|
+
__export(job_posting_service_latest_exports, {
|
|
2563
|
+
BestFitEnum: () => BestFitEnum,
|
|
2564
|
+
ClinicalLicenseEnum: () => ClinicalLicenseEnum,
|
|
2565
|
+
ClinicalSettingEnum: () => ClinicalSettingEnum,
|
|
2566
|
+
ClinicalSpecialtyEnum: () => ClinicalSpecialtyEnum,
|
|
2567
|
+
EmploymentLevelEnum: () => EmploymentLevelEnum,
|
|
2568
|
+
EmploymentTypeEnum: () => EmploymentTypeEnum,
|
|
2569
|
+
JobFunctionEnum: () => JobFunctionEnum,
|
|
2570
|
+
JobLocationTypeEnum: () => JobLocationTypeEnum,
|
|
2571
|
+
PublishStatusEnum: () => PublishStatusEnum2,
|
|
2572
|
+
ShiftEnum: () => ShiftEnum,
|
|
2573
|
+
TypeEnum: () => TypeEnum3,
|
|
2574
|
+
jobPostSchema: () => jobPostSchema
|
|
2575
|
+
});
|
|
2576
|
+
var import_zod3 = require("zod");
|
|
2577
|
+
|
|
2578
|
+
// src/types/data/company_service_latest.ts
|
|
2579
|
+
var company_service_latest_exports = {};
|
|
2580
|
+
__export(company_service_latest_exports, {
|
|
2581
|
+
CategoryEnum: () => CategoryEnum,
|
|
2582
|
+
OfficeTypeEnum: () => OfficeTypeEnum,
|
|
2583
|
+
PublishStatusEnum: () => PublishStatusEnum,
|
|
2584
|
+
TitleEnum: () => TitleEnum,
|
|
2585
|
+
TypeEnum: () => TypeEnum2,
|
|
2586
|
+
companyBenefitsSchema: () => companyBenefitsSchema,
|
|
2587
|
+
companyCareersPageSchema: () => companyCareersPageSchema,
|
|
2588
|
+
companyNdgSchema: () => companyNdgSchema,
|
|
2589
|
+
companyPhilosophySchema: () => companyPhilosophySchema,
|
|
2590
|
+
companySchema: () => companySchema,
|
|
2591
|
+
foundingInformationSchema: () => foundingInformationSchema,
|
|
2592
|
+
imageSchema: () => imageSchema,
|
|
2593
|
+
industrySchema: () => industrySchema,
|
|
2594
|
+
jobBoardSchema: () => jobBoardSchema,
|
|
2595
|
+
ngdMetadataSchema: () => ngdMetadataSchema,
|
|
2596
|
+
officeSchema: () => officeSchema,
|
|
2597
|
+
personSchema: () => personSchema,
|
|
2598
|
+
socialMediaSchema: () => socialMediaSchema
|
|
2599
|
+
});
|
|
2600
|
+
var import_zod2 = require("zod");
|
|
2601
|
+
var TypeEnum2 = import_zod2.z.enum(["OFFICE"]);
|
|
2602
|
+
var CategoryEnum = import_zod2.z.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
|
|
2603
|
+
var TitleEnum = import_zod2.z.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
|
|
2604
|
+
var PublishStatusEnum = import_zod2.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
|
|
2605
|
+
var OfficeTypeEnum = import_zod2.z.enum(["BRANCH", "HEADQUARTERS", "SATELLITE"]);
|
|
2606
|
+
var imageSchema = import_zod2.z.object({
|
|
2607
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2608
|
+
url: import_zod2.z.string()
|
|
2609
|
+
});
|
|
2610
|
+
var socialMediaSchema = import_zod2.z.object({
|
|
2611
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2612
|
+
url: import_zod2.z.string().describe("The link to the social media platform"),
|
|
2613
|
+
type: import_zod2.z.string().describe("The type of social media link")
|
|
2614
|
+
});
|
|
2615
|
+
var companyBenefitsSchema = import_zod2.z.object({
|
|
2616
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2617
|
+
type: import_zod2.z.string().describe("Document type used within sanity"),
|
|
2618
|
+
name: import_zod2.z.string(),
|
|
2619
|
+
description: import_zod2.z.optional(import_zod2.z.string()),
|
|
2620
|
+
category: CategoryEnum
|
|
2621
|
+
});
|
|
2622
|
+
var industrySchema = import_zod2.z.lazy(() => import_zod2.z.object({
|
|
2623
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2624
|
+
type: import_zod2.z.string().describe("Document type used within sanity"),
|
|
2625
|
+
name: import_zod2.z.string(),
|
|
2626
|
+
description: import_zod2.z.optional(import_zod2.z.string()).describe("A brief description of the industry"),
|
|
2627
|
+
onetIndustryId: import_zod2.z.optional(import_zod2.z.string()).describe("ONET industry ID"),
|
|
2628
|
+
parent: import_zod2.z.optional(industrySchema)
|
|
2629
|
+
}));
|
|
2630
|
+
var jobBoardSchema = import_zod2.z.object({
|
|
2631
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2632
|
+
type: import_zod2.z.string().describe("Document type used within sanity"),
|
|
2633
|
+
name: import_zod2.z.string().describe("The name of the job board"),
|
|
2634
|
+
description: import_zod2.z.string().describe("A brief description of the job board"),
|
|
2635
|
+
logo: import_zod2.z.optional(imageSchema).describe("The logo of the job board"),
|
|
2636
|
+
baseUrl: import_zod2.z.optional(import_zod2.z.string()).describe("The base URL of the job board")
|
|
2637
|
+
});
|
|
2638
|
+
var personSchema = import_zod2.z.object({
|
|
2639
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2640
|
+
type: import_zod2.z.string().describe("Document type used within sanity"),
|
|
2641
|
+
firstName: import_zod2.z.string().describe("The first name of the person"),
|
|
2642
|
+
lastName: import_zod2.z.string().describe("The last name of the person"),
|
|
2643
|
+
title: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())).describe("The titles of the degree of the person"),
|
|
2644
|
+
slug: import_zod2.z.string().describe("person slug - should be familyname-givenname-title(s)"),
|
|
2645
|
+
jobTitle: import_zod2.z.optional(import_zod2.z.string()).describe("The job title of the person"),
|
|
2646
|
+
isDoctor: import_zod2.z.optional(import_zod2.z.boolean()).describe("Is the person a doctor"),
|
|
2647
|
+
isMedical: import_zod2.z.optional(import_zod2.z.boolean()).describe("Are they of a medical background?"),
|
|
2648
|
+
isScientist: import_zod2.z.optional(import_zod2.z.boolean()).describe("Are they a scientist?"),
|
|
2649
|
+
image: import_zod2.z.optional(imageSchema).describe("The image of the person"),
|
|
2650
|
+
email: import_zod2.z.optional(import_zod2.z.string()).describe("The email of the person"),
|
|
2651
|
+
socialMedia: import_zod2.z.optional(import_zod2.z.array(socialMediaSchema)).describe("The social media links of the person"),
|
|
2652
|
+
telephone: import_zod2.z.optional(import_zod2.z.string()).describe("The telephone number of the person"),
|
|
2653
|
+
url: import_zod2.z.optional(import_zod2.z.string()).describe("The URL of the person"),
|
|
2654
|
+
address: import_zod2.z.optional(placeSchema).describe("The address of the person")
|
|
2655
|
+
});
|
|
2656
|
+
var companyCareersPageSchema = import_zod2.z.object({
|
|
2657
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2658
|
+
companyCareersUrl: import_zod2.z.string().describe("The URL of the company careers page"),
|
|
2659
|
+
companyJobBoard: import_zod2.z.optional(jobBoardSchema),
|
|
2660
|
+
jobBoardSlug: import_zod2.z.array(import_zod2.z.string()),
|
|
2661
|
+
companyBenefits: import_zod2.z.optional(import_zod2.z.array(companyBenefitsSchema)).describe("What are the specific benefits of that company. The benefit is generic.")
|
|
2662
|
+
});
|
|
2663
|
+
var companyPhilosophySchema = import_zod2.z.object({
|
|
2664
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2665
|
+
mission: import_zod2.z.optional(import_zod2.z.string()).describe("The mission statement of the company."),
|
|
2666
|
+
companyHow: import_zod2.z.optional(import_zod2.z.string()).describe("How does the company achieve its mission"),
|
|
2667
|
+
companyCulture: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())).describe("What are some of the culture aspects of this company?")
|
|
2668
|
+
});
|
|
2669
|
+
var companyNdgSchema = import_zod2.z.object({
|
|
2670
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2671
|
+
companyWow: import_zod2.z.optional(import_zod2.z.string()).describe("What is the wow of this company?"),
|
|
2672
|
+
companyNDGTake: import_zod2.z.optional(import_zod2.z.string()).describe("What is the NDG POV on this company?"),
|
|
2673
|
+
// Manually edited due to a different naming convention
|
|
2674
|
+
companyBestFit: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())),
|
|
2675
|
+
companyInterests: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string()))
|
|
2676
|
+
});
|
|
2677
|
+
var foundingInformationSchema = import_zod2.z.object({
|
|
2678
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2679
|
+
foundedYear: import_zod2.z.optional(import_zod2.z.string()),
|
|
2680
|
+
foundingCountry: import_zod2.z.optional(import_zod2.z.string()),
|
|
2681
|
+
foundingCity: import_zod2.z.optional(import_zod2.z.string()),
|
|
2682
|
+
founders: import_zod2.z.optional(import_zod2.z.array(personSchema))
|
|
2683
|
+
});
|
|
2684
|
+
var ngdMetadataSchema = import_zod2.z.object({
|
|
2685
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2686
|
+
lastScraped: import_zod2.z.optional(import_zod2.z.string()).describe("Date the last entity was scraped, if applicable"),
|
|
2687
|
+
scraperVersion: import_zod2.z.optional(import_zod2.z.string()),
|
|
2688
|
+
postProcessorVersion: import_zod2.z.optional(import_zod2.z.string()),
|
|
2689
|
+
uniqueRunId: import_zod2.z.optional(import_zod2.z.string()),
|
|
2690
|
+
postProcessorUniqueRunId: import_zod2.z.optional(import_zod2.z.string()),
|
|
2691
|
+
shouldThisDocumentBeScraped: import_zod2.z.optional(import_zod2.z.boolean())
|
|
2692
|
+
});
|
|
2693
|
+
var companySchema = import_zod2.z.object({
|
|
2694
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2695
|
+
companyName: import_zod2.z.string().describe("The name of the company"),
|
|
2696
|
+
slug: import_zod2.z.string().describe("The NDG specific slug for a company."),
|
|
2697
|
+
type: import_zod2.z.string().describe("Document type used within sanity"),
|
|
2698
|
+
logo: import_zod2.z.optional(imageSchema).describe("The logo of the company"),
|
|
2699
|
+
companyWebsite: import_zod2.z.optional(import_zod2.z.string()).describe("The website of the company"),
|
|
2700
|
+
socialMedia: import_zod2.z.optional(import_zod2.z.array(socialMediaSchema)).describe("The social media links of the company"),
|
|
2701
|
+
brandColor: import_zod2.z.optional(import_zod2.z.string()).describe("The brand color of the company"),
|
|
2702
|
+
companyCareers: import_zod2.z.optional(companyCareersPageSchema).describe("Career Specific Information for the company."),
|
|
2703
|
+
companyPhilosophy: import_zod2.z.optional(companyPhilosophySchema).describe("Company mission,values and how the company achieves its mission."),
|
|
2704
|
+
companyNDG: import_zod2.z.optional(companyNdgSchema).describe("Next Degree specific information for the company."),
|
|
2705
|
+
// Manually edited due to a different naming convention
|
|
2706
|
+
foundingInfo: import_zod2.z.optional(foundingInformationSchema),
|
|
2707
|
+
headquartersLocation: import_zod2.z.optional(placeSchema),
|
|
2708
|
+
employeeEstimate: import_zod2.z.optional(import_zod2.z.string()),
|
|
2709
|
+
publishStatus: import_zod2.z.optional(import_zod2.z.string()),
|
|
2710
|
+
ngdMetadata: import_zod2.z.optional(ngdMetadataSchema)
|
|
2711
|
+
});
|
|
2712
|
+
var officeSchema = import_zod2.z.object({
|
|
2713
|
+
version: import_zod2.z.literal("1.0.0").default("1.0.0"),
|
|
2714
|
+
type: import_zod2.z.string().describe("Document type used within sanity"),
|
|
2715
|
+
name: import_zod2.z.string().describe("Name or nickname for the office (e.g., 'NYC HQ', 'West Coast Branch')"),
|
|
2716
|
+
officeType: OfficeTypeEnum,
|
|
2717
|
+
companyId: import_zod2.z.optional(companySchema),
|
|
2718
|
+
geoLocation: import_zod2.z.optional(placeSchema).describe("Geographical location details: coordinates + postal address"),
|
|
2719
|
+
createdAt: import_zod2.z.optional(import_zod2.z.string()),
|
|
2720
|
+
updatedAt: import_zod2.z.optional(import_zod2.z.string())
|
|
2721
|
+
});
|
|
2722
|
+
|
|
2723
|
+
// src/types/data/job_posting_service_latest.ts
|
|
2724
|
+
var TypeEnum3 = import_zod3.z.enum(["JOB_POST"]);
|
|
2725
|
+
var JobLocationTypeEnum = import_zod3.z.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
|
|
2726
|
+
var EmploymentTypeEnum = import_zod3.z.enum(["CONTRACT", "FULL_TIME", "INTERNSHIP", "OTHER", "PART_TIME", "PER_DIEM", "TEMPORARY"]);
|
|
2727
|
+
var EmploymentLevelEnum = import_zod3.z.enum(["DIRECTOR", "ENTRY_LEVEL", "EXECUTIVE", "EXPERIENCED", "INTERN", "MANAGER"]);
|
|
2728
|
+
var JobFunctionEnum = import_zod3.z.enum(["CLINICAL_RESEARCH", "CUSTOMER_SUCCESS", "DATA_ANALYTICS", "FINANCE_AND_AUDIT", "MARKETING", "OPERATIONS", "PEOPLE_HUMAN_RESOURCES", "PRODUCT_AND_TECH", "QUALITY_ASSURANCE_AND_OUTCOMES", "SALES_AND_BUSINESS_DEVELOPMENT", "STRATEGY_AND_CONSULTING"]);
|
|
2729
|
+
var PublishStatusEnum2 = import_zod3.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
|
|
2730
|
+
var BestFitEnum = import_zod3.z.enum(["DENTIST", "DIETICIAN", "DOULA", "MEDICAL_ASSISTANT", "MIDWIFE", "NURSE", "OCCUPATIONAL_THERAPIST", "PHARMACIST", "PHYSICAL_THERAPIST", "PHYSICIAN", "PHYSICIAN_ASSISTANT", "PSYCHOLOGIST", "RADIOLOGIST", "SOCIAL_WORKER", "SPEECH_LANGUAGE_PATHOLOGIST", "SURGEON"]);
|
|
2731
|
+
var ClinicalLicenseEnum = import_zod3.z.enum(["CNA", "CNM", "CNS", "COTA", "CRNA", "LPN", "LVN", "NP", "OT", "PT", "PTA", "RN"]);
|
|
2732
|
+
var ShiftEnum = import_zod3.z.enum(["DAY", "EIGHT_HOUR", "EVENING", "FLEXIBLE", "MID_SHIFT", "MONDAY_TO_FRIDAY", "NIGHT", "ON_CALL", "TEN_HOUR", "TWELVE_HOUR", "WEEKENDS"]);
|
|
2733
|
+
var ClinicalSettingEnum = import_zod3.z.enum(["ACUTE_CARE", "AMBULATORY_SURGERY_CENTER", "CLINIC", "HOME_HEALTH", "HOSPITAL", "INPATIENT", "LONG_TERM_CARE", "MED_SPA", "NURSING_HOME", "OFFICE", "OUTPATIENT", "PRIVATE_PRACTICE", "REHAB_CENTER", "SCHOOL", "SKILLED_NURSING_FACILITY"]);
|
|
2734
|
+
var ClinicalSpecialtyEnum = import_zod3.z.enum(["ANESTHESIOLOGY", "CARDIOLOGY", "CASE_MANAGEMENT", "CHRONIC_PAIN", "CLINICAL_ELECTROPHYSIOLOGY", "CRITICAL_AND_ACUTE_CARE", "DERMATOLOGY", "DIALYSIS", "EMERGENCY_MEDICINE", "ENDOCRINOLOGY", "ERGONOMICS", "FEEDING_EATING_AND_SWALLOWING", "GASTROENTEROLOGY", "GERIATRICS", "HAND_THERAPY", "HEMATOLOGY", "HOLISTIC_MEDICINE", "INFORMATICS", "INTERNAL_MEDICINE", "LABOR_AND_DELIVERY", "MANUAL_THERAPY", "MED_SURG", "MENTAL_HEALTH", "NEPHROLOGY", "NEUROLOGY", "ONCOLOGY", "ORTHOPEDICS", "OTOLARYNGOLOGY", "PEDIATRICS", "PHYSICAL_AND_REHABILITATION_MEDICINE", "PLASTIC_SURGERY", "PRIMARY_CARE", "PSYCHIATRY", "PULMONOLOGY", "RADIOLOGY", "SENSORY", "SPORTS", "SURGERY", "TRAUMA_MEDICINE", "URGENT_CARE", "UROLOGY", "VISION", "WOMENS_HEALTH", "WOUND_AND_BURN_CARE"]);
|
|
2735
|
+
var jobPostSchema = import_zod3.z.object({
|
|
2736
|
+
version: import_zod3.z.literal("1.0.0").default("1.0.0"),
|
|
2737
|
+
id: import_zod3.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
|
|
2738
|
+
type: import_zod3.z.string().describe("Document type used within sanity"),
|
|
2739
|
+
createdAt: import_zod3.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
|
|
2740
|
+
updatedAt: import_zod3.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
|
|
2741
|
+
dateAdded: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job was added to the platform"),
|
|
2742
|
+
datePosted: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job was published for public viewing"),
|
|
2743
|
+
dateRemoved: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job was removed from public viewing"),
|
|
2744
|
+
validThrough: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job posting is valid through. After this date it will be removed from public viewing"),
|
|
2745
|
+
vacancyCount: import_zod3.z.optional(import_zod3.z.number().int()).describe("The number of vacancies for a given job posting"),
|
|
2746
|
+
clientId: import_zod3.z.string().describe("The ID assigned by the client to a job - normally the same as the GH / Lever / Ashby ID or internal ID"),
|
|
2747
|
+
url: import_zod3.z.string().describe("The URL of the job to be displayed for users to apply with. Direct job link."),
|
|
2748
|
+
title: import_zod3.z.string().describe("The title of the job post"),
|
|
2749
|
+
description: import_zod3.z.string().describe("The description of the job post saved as markdown. Used for rendering the job description."),
|
|
2750
|
+
richTextDescription: import_zod3.z.optional(import_zod3.z.string()).describe("The description of the job post saved as rich text"),
|
|
2751
|
+
isClinical: import_zod3.z.boolean().default(false).describe("Denotes if a job posting is clinical in nature or not. A role is clinical if it requires direct clinical patient care."),
|
|
2752
|
+
isRemote: import_zod3.z.boolean().default(false).describe("Denotes if a job posting is remote in nature. For a posting to be 'remote' it must be 100% remote (e.g hybrid roles would denote this to false)."),
|
|
2753
|
+
isVerified: import_zod3.z.boolean().default(false).describe("Denotes if a job posting has been manually verified - and thus ALL fields can be considered accurate. Can be used for DS training."),
|
|
2754
|
+
isDirectApply: import_zod3.z.boolean().default(false).describe("Denotes if a job posting url is direct apply. To be direct apply a user must be able to apply to the role without logging in and under 2 clicks."),
|
|
2755
|
+
jobLocationType: import_zod3.z.optional(import_zod3.z.array(JobLocationTypeEnum)),
|
|
2756
|
+
employmentType: import_zod3.z.optional(import_zod3.z.array(EmploymentTypeEnum)),
|
|
2757
|
+
employmentLevel: import_zod3.z.optional(EmploymentLevelEnum),
|
|
2758
|
+
jobFunction: import_zod3.z.optional(JobFunctionEnum),
|
|
2759
|
+
publishStatus: PublishStatusEnum2,
|
|
2760
|
+
bestFit: import_zod3.z.optional(import_zod3.z.array(BestFitEnum)),
|
|
2761
|
+
clinicalLicense: import_zod3.z.optional(import_zod3.z.array(ClinicalLicenseEnum)),
|
|
2762
|
+
shift: import_zod3.z.optional(import_zod3.z.array(ShiftEnum)),
|
|
2763
|
+
clinicalSetting: import_zod3.z.optional(import_zod3.z.array(ClinicalSettingEnum)),
|
|
2764
|
+
clinicalSpecialty: import_zod3.z.optional(import_zod3.z.array(ClinicalSpecialtyEnum)),
|
|
2765
|
+
estimatedSalary: import_zod3.z.optional(monetaryAmountSchema).describe("Determines the estimated salary for a given job posting"),
|
|
2766
|
+
jobLocation: import_zod3.z.optional(postalAddressSchema).describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
|
|
2767
|
+
applicableOffices: import_zod3.z.optional(import_zod3.z.array(officeSchema)).describe("The physical location(s) in which employees may be located for to be eligible for the job. Used in conjunction with job_location_type."),
|
|
2768
|
+
applicantLocationRequirements: import_zod3.z.optional(import_zod3.z.array(placeSchema)).describe("The geographic location(s) in which employees may be located for to be eligible for the job. The job description must clearly state that the applicant may be located in certain geographical location(s). This property is required if applicants may be located in one or more geographic locations and the job is 100% remote."),
|
|
2769
|
+
hiringOrganization: import_zod3.z.optional(companySchema).describe("The organization that is hiring for the role")
|
|
2770
|
+
});
|
|
1298
2771
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1299
2772
|
0 && (module.exports = {
|
|
2773
|
+
Avatar,
|
|
2774
|
+
BackButton,
|
|
1300
2775
|
Badge,
|
|
1301
2776
|
Button,
|
|
1302
2777
|
Checkbox,
|
|
1303
2778
|
Chip,
|
|
1304
2779
|
Combobox,
|
|
2780
|
+
CompanyBenefits,
|
|
2781
|
+
CompanyInformation,
|
|
2782
|
+
CompanyService,
|
|
2783
|
+
CompanyTake,
|
|
1305
2784
|
Counter,
|
|
2785
|
+
Icon,
|
|
1306
2786
|
Input,
|
|
2787
|
+
JobDescription,
|
|
2788
|
+
JobHeader,
|
|
2789
|
+
JobPost,
|
|
2790
|
+
JobPostService,
|
|
1307
2791
|
Label,
|
|
2792
|
+
LinkButton,
|
|
1308
2793
|
ListItem,
|
|
2794
|
+
MapComponent,
|
|
1309
2795
|
PlacesQueryInput,
|
|
2796
|
+
ReadMore,
|
|
1310
2797
|
Select,
|
|
1311
|
-
|
|
2798
|
+
SharedService,
|
|
2799
|
+
WindowHistoryProvider,
|
|
2800
|
+
cn,
|
|
2801
|
+
fetchLocation,
|
|
2802
|
+
useDisplayText,
|
|
2803
|
+
useWindowHistory
|
|
1312
2804
|
});
|
|
1313
2805
|
//# sourceMappingURL=index.cjs.map
|