@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.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
+
};
|
|
6
|
+
|
|
1
7
|
// src/components/ui/Select.tsx
|
|
2
8
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3
9
|
import { CheckIcon, ChevronDownIcon, X } from "lucide-react";
|
|
@@ -492,6 +498,26 @@ var inputVariants = cva2(
|
|
|
492
498
|
);
|
|
493
499
|
var Input_default = Input;
|
|
494
500
|
|
|
501
|
+
// src/components/ui/MapComponent.tsx
|
|
502
|
+
import { APIProvider, Map, AdvancedMarker, Pin } from "@vis.gl/react-google-maps";
|
|
503
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
504
|
+
function MapComponent({ apiKey, mapId, position, className, zoom = 15 }) {
|
|
505
|
+
const defaultPosition = { lat: 40.715021, lng: -74.00459 };
|
|
506
|
+
const defaultZoom = 11;
|
|
507
|
+
return /* @__PURE__ */ jsx10(APIProvider, { apiKey, children: /* @__PURE__ */ jsx10("div", { className: cn("h-screen max-w-full", className), children: /* @__PURE__ */ jsx10(
|
|
508
|
+
Map,
|
|
509
|
+
{
|
|
510
|
+
zoom: position ? zoom : defaultZoom,
|
|
511
|
+
center: position || defaultPosition,
|
|
512
|
+
mapId,
|
|
513
|
+
keyboardShortcuts: false,
|
|
514
|
+
disableDefaultUI: true,
|
|
515
|
+
children: position && /* @__PURE__ */ jsx10(AdvancedMarker, { position, children: /* @__PURE__ */ jsx10(Pin, { background: "#0B5441", borderColor: "#EBFDF1", glyphColor: "#D4F500" }) })
|
|
516
|
+
}
|
|
517
|
+
) }) });
|
|
518
|
+
}
|
|
519
|
+
var MapComponent_default = MapComponent;
|
|
520
|
+
|
|
495
521
|
// src/components/primitives/command.tsx
|
|
496
522
|
import { Command as CommandPrimitive } from "cmdk";
|
|
497
523
|
import { Search } from "lucide-react";
|
|
@@ -501,9 +527,9 @@ import * as React4 from "react";
|
|
|
501
527
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
502
528
|
import { X as X3 } from "lucide-react";
|
|
503
529
|
import * as React3 from "react";
|
|
504
|
-
import { jsx as
|
|
530
|
+
import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
505
531
|
var DialogPortal = DialogPrimitive.Portal;
|
|
506
|
-
var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
532
|
+
var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
507
533
|
DialogPrimitive.Overlay,
|
|
508
534
|
{
|
|
509
535
|
ref,
|
|
@@ -516,7 +542,7 @@ var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
516
542
|
));
|
|
517
543
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
518
544
|
var DialogContent = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(DialogPortal, { children: [
|
|
519
|
-
/* @__PURE__ */
|
|
545
|
+
/* @__PURE__ */ jsx11(DialogOverlay, {}),
|
|
520
546
|
/* @__PURE__ */ jsxs6(
|
|
521
547
|
DialogPrimitive.Content,
|
|
522
548
|
{
|
|
@@ -529,17 +555,17 @@ var DialogContent = React3.forwardRef(({ className, children, ...props }, ref) =
|
|
|
529
555
|
children: [
|
|
530
556
|
children,
|
|
531
557
|
/* @__PURE__ */ jsxs6(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: [
|
|
532
|
-
/* @__PURE__ */
|
|
533
|
-
/* @__PURE__ */
|
|
558
|
+
/* @__PURE__ */ jsx11(X3, { className: "h-4 w-4" }),
|
|
559
|
+
/* @__PURE__ */ jsx11("span", { className: "sr-only", children: "Close" })
|
|
534
560
|
] })
|
|
535
561
|
]
|
|
536
562
|
}
|
|
537
563
|
)
|
|
538
564
|
] }));
|
|
539
565
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
540
|
-
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
566
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx11("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
541
567
|
DialogHeader.displayName = "DialogHeader";
|
|
542
|
-
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
568
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx11(
|
|
543
569
|
"div",
|
|
544
570
|
{
|
|
545
571
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
@@ -547,7 +573,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx10(
|
|
|
547
573
|
}
|
|
548
574
|
);
|
|
549
575
|
DialogFooter.displayName = "DialogFooter";
|
|
550
|
-
var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
576
|
+
var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
551
577
|
DialogPrimitive.Title,
|
|
552
578
|
{
|
|
553
579
|
ref,
|
|
@@ -556,7 +582,7 @@ var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
556
582
|
}
|
|
557
583
|
));
|
|
558
584
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
559
|
-
var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
585
|
+
var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
560
586
|
DialogPrimitive.Description,
|
|
561
587
|
{
|
|
562
588
|
ref,
|
|
@@ -567,8 +593,8 @@ var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
567
593
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
568
594
|
|
|
569
595
|
// src/components/primitives/command.tsx
|
|
570
|
-
import { jsx as
|
|
571
|
-
var Command = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
596
|
+
import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
597
|
+
var Command = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
572
598
|
CommandPrimitive,
|
|
573
599
|
{
|
|
574
600
|
ref,
|
|
@@ -581,8 +607,8 @@ var Command = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
581
607
|
));
|
|
582
608
|
Command.displayName = CommandPrimitive.displayName;
|
|
583
609
|
var CommandInput = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs7("div", { className: "m-1 flex items-center rounded-xl border px-3", "cmdk-input-wrapper": "", children: [
|
|
584
|
-
/* @__PURE__ */
|
|
585
|
-
/* @__PURE__ */
|
|
610
|
+
/* @__PURE__ */ jsx12(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
611
|
+
/* @__PURE__ */ jsx12(
|
|
586
612
|
CommandPrimitive.Input,
|
|
587
613
|
{
|
|
588
614
|
ref,
|
|
@@ -595,7 +621,7 @@ var CommandInput = React4.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
595
621
|
)
|
|
596
622
|
] }));
|
|
597
623
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
598
|
-
var CommandList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
624
|
+
var CommandList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
599
625
|
CommandPrimitive.List,
|
|
600
626
|
{
|
|
601
627
|
ref,
|
|
@@ -604,9 +630,9 @@ var CommandList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
604
630
|
}
|
|
605
631
|
));
|
|
606
632
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
607
|
-
var CommandEmpty = React4.forwardRef((props, ref) => /* @__PURE__ */
|
|
633
|
+
var CommandEmpty = React4.forwardRef((props, ref) => /* @__PURE__ */ jsx12(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
608
634
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
609
|
-
var CommandGroup = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
635
|
+
var CommandGroup = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
610
636
|
CommandPrimitive.Group,
|
|
611
637
|
{
|
|
612
638
|
ref,
|
|
@@ -618,7 +644,7 @@ var CommandGroup = React4.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
618
644
|
}
|
|
619
645
|
));
|
|
620
646
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
621
|
-
var CommandSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
647
|
+
var CommandSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
622
648
|
CommandPrimitive.Separator,
|
|
623
649
|
{
|
|
624
650
|
ref,
|
|
@@ -627,7 +653,7 @@ var CommandSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
627
653
|
}
|
|
628
654
|
));
|
|
629
655
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
630
|
-
var CommandItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
656
|
+
var CommandItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
631
657
|
CommandPrimitive.Item,
|
|
632
658
|
{
|
|
633
659
|
ref,
|
|
@@ -640,7 +666,7 @@ var CommandItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
640
666
|
));
|
|
641
667
|
CommandItem.displayName = CommandPrimitive.Item.displayName;
|
|
642
668
|
var CommandShortcut = ({ className, ...props }) => {
|
|
643
|
-
return /* @__PURE__ */
|
|
669
|
+
return /* @__PURE__ */ jsx12(
|
|
644
670
|
"span",
|
|
645
671
|
{
|
|
646
672
|
className: cn("ml-auto text-xs tracking-widest text-neutral-500", className),
|
|
@@ -663,11 +689,47 @@ var autocomplete = async (input, key) => {
|
|
|
663
689
|
console.error(error);
|
|
664
690
|
}
|
|
665
691
|
};
|
|
692
|
+
var fetchLocation = async (place, key) => {
|
|
693
|
+
try {
|
|
694
|
+
if (place.place_id) {
|
|
695
|
+
const placeDetails = await getPlaceDetails(place.place_id, key);
|
|
696
|
+
if (placeDetails) return placeDetails;
|
|
697
|
+
}
|
|
698
|
+
if (place.address) {
|
|
699
|
+
const result = await geocode(place.address, key);
|
|
700
|
+
const firstAddress = result?.[0];
|
|
701
|
+
return firstAddress;
|
|
702
|
+
}
|
|
703
|
+
return void 0;
|
|
704
|
+
} catch (error) {
|
|
705
|
+
console.error("Error fetching location:", error);
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
var getPlaceDetails = async (place_id, key) => {
|
|
709
|
+
try {
|
|
710
|
+
const response = await client.placeDetails({
|
|
711
|
+
params: { place_id, key }
|
|
712
|
+
});
|
|
713
|
+
return response.data.result;
|
|
714
|
+
} catch (error) {
|
|
715
|
+
console.error(error);
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
var geocode = async (address, key) => {
|
|
719
|
+
try {
|
|
720
|
+
const response = await client.geocode({
|
|
721
|
+
params: { address, key }
|
|
722
|
+
});
|
|
723
|
+
return response.data.results;
|
|
724
|
+
} catch (error) {
|
|
725
|
+
console.error(error);
|
|
726
|
+
}
|
|
727
|
+
};
|
|
666
728
|
|
|
667
729
|
// src/components/ui/PlacesQueryInput.tsx
|
|
668
730
|
import { CircleX, LoaderCircle } from "lucide-react";
|
|
669
731
|
import { useState as useState2, useCallback, useRef as useRef2, useEffect as useEffect2 } from "react";
|
|
670
|
-
import { jsx as
|
|
732
|
+
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
671
733
|
function PlacesQueryInput({
|
|
672
734
|
apiKey,
|
|
673
735
|
selected,
|
|
@@ -722,9 +784,9 @@ function PlacesQueryInput({
|
|
|
722
784
|
window.addEventListener("resize", checkDropdownPosition);
|
|
723
785
|
return () => window.removeEventListener("resize", checkDropdownPosition);
|
|
724
786
|
}, []);
|
|
725
|
-
return /* @__PURE__ */
|
|
787
|
+
return /* @__PURE__ */ jsx13("div", { className: cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ jsxs8(Command, { children: [
|
|
726
788
|
/* @__PURE__ */ jsxs8("div", { className: "relative w-full", children: [
|
|
727
|
-
/* @__PURE__ */
|
|
789
|
+
/* @__PURE__ */ jsx13(
|
|
728
790
|
CommandInput,
|
|
729
791
|
{
|
|
730
792
|
placeholder: "Type an address to search...",
|
|
@@ -733,14 +795,14 @@ function PlacesQueryInput({
|
|
|
733
795
|
className: "truncate pr-8"
|
|
734
796
|
}
|
|
735
797
|
),
|
|
736
|
-
isLoadingPredictions && /* @__PURE__ */
|
|
737
|
-
input && /* @__PURE__ */
|
|
798
|
+
isLoadingPredictions && /* @__PURE__ */ jsx13(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" }),
|
|
799
|
+
input && /* @__PURE__ */ jsx13(
|
|
738
800
|
"button",
|
|
739
801
|
{
|
|
740
802
|
type: "button",
|
|
741
803
|
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",
|
|
742
804
|
onClick: handleClear,
|
|
743
|
-
children: /* @__PURE__ */
|
|
805
|
+
children: /* @__PURE__ */ jsx13(CircleX, { className: "h-4 w-4 text-green-100" })
|
|
744
806
|
}
|
|
745
807
|
)
|
|
746
808
|
] }),
|
|
@@ -752,8 +814,8 @@ function PlacesQueryInput({
|
|
|
752
814
|
shouldOpenUpward ? "bottom-full" : "top-full"
|
|
753
815
|
),
|
|
754
816
|
children: [
|
|
755
|
-
/* @__PURE__ */
|
|
756
|
-
/* @__PURE__ */
|
|
817
|
+
/* @__PURE__ */ jsx13(CommandEmpty, { children: "No results" }),
|
|
818
|
+
/* @__PURE__ */ jsx13(CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ jsx13(
|
|
757
819
|
CommandItem,
|
|
758
820
|
{
|
|
759
821
|
onSelect: () => handleSelect(prediction),
|
|
@@ -773,11 +835,11 @@ var PlacesQueryInput_default = PlacesQueryInput;
|
|
|
773
835
|
import { Slot } from "@radix-ui/react-slot";
|
|
774
836
|
import { cva as cva3 } from "cva";
|
|
775
837
|
import { forwardRef as forwardRef8 } from "react";
|
|
776
|
-
import { jsx as
|
|
838
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
777
839
|
var Button = forwardRef8(
|
|
778
840
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
779
841
|
const Component = asChild ? Slot : "button";
|
|
780
|
-
return /* @__PURE__ */
|
|
842
|
+
return /* @__PURE__ */ jsx14(
|
|
781
843
|
Component,
|
|
782
844
|
{
|
|
783
845
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -886,10 +948,10 @@ import { cva as cva5 } from "cva";
|
|
|
886
948
|
// src/components/primitives/popover.tsx
|
|
887
949
|
import * as React6 from "react";
|
|
888
950
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
889
|
-
import { jsx as
|
|
951
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
890
952
|
var Popover = PopoverPrimitive.Root;
|
|
891
953
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
892
|
-
var PopoverContent = React6.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
954
|
+
var PopoverContent = React6.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx15(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx15(
|
|
893
955
|
PopoverPrimitive.Content,
|
|
894
956
|
{
|
|
895
957
|
ref,
|
|
@@ -906,7 +968,7 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
906
968
|
|
|
907
969
|
// src/components/ui/Badge.tsx
|
|
908
970
|
import { cva as cva4 } from "cva";
|
|
909
|
-
import { jsx as
|
|
971
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
910
972
|
var badgeVariants = cva4("rounded-full px-2 py-0.5 text-xs font-semibold", {
|
|
911
973
|
variants: {
|
|
912
974
|
variant: {
|
|
@@ -920,11 +982,11 @@ var badgeVariants = cva4("rounded-full px-2 py-0.5 text-xs font-semibold", {
|
|
|
920
982
|
}
|
|
921
983
|
});
|
|
922
984
|
function Badge({ className, variant, ...props }) {
|
|
923
|
-
return /* @__PURE__ */
|
|
985
|
+
return /* @__PURE__ */ jsx16("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
924
986
|
}
|
|
925
987
|
|
|
926
988
|
// src/components/ui/Combobox.tsx
|
|
927
|
-
import { jsx as
|
|
989
|
+
import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
928
990
|
var Combobox = forwardRef10((props, ref) => {
|
|
929
991
|
const {
|
|
930
992
|
id,
|
|
@@ -982,7 +1044,7 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
982
1044
|
return isDefault ? defaultLabel : label;
|
|
983
1045
|
};
|
|
984
1046
|
return /* @__PURE__ */ jsxs9("div", { className: cn("flex flex-col gap-1", className), children: [
|
|
985
|
-
isDefault && /* @__PURE__ */
|
|
1047
|
+
isDefault && /* @__PURE__ */ jsx17(
|
|
986
1048
|
Label_default,
|
|
987
1049
|
{
|
|
988
1050
|
text: label,
|
|
@@ -994,7 +1056,7 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
994
1056
|
),
|
|
995
1057
|
/* @__PURE__ */ jsxs9("div", { className: "relative flex", children: [
|
|
996
1058
|
/* @__PURE__ */ jsxs9(Popover, { open, onOpenChange: setOpen, children: [
|
|
997
|
-
/* @__PURE__ */
|
|
1059
|
+
/* @__PURE__ */ jsx17(
|
|
998
1060
|
PopoverTrigger,
|
|
999
1061
|
{
|
|
1000
1062
|
asChild: true,
|
|
@@ -1011,9 +1073,9 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
1011
1073
|
),
|
|
1012
1074
|
"aria-expanded": open,
|
|
1013
1075
|
children: [
|
|
1014
|
-
isDefault && IconComponent && /* @__PURE__ */
|
|
1015
|
-
isChip && !isEmpty && /* @__PURE__ */
|
|
1016
|
-
/* @__PURE__ */
|
|
1076
|
+
isDefault && IconComponent && /* @__PURE__ */ jsx17(IconComponent, { className: "h-4 w-4 shrink-0" }),
|
|
1077
|
+
isChip && !isEmpty && /* @__PURE__ */ jsx17(Badge, { variant: "purple", children: selected.length }),
|
|
1078
|
+
/* @__PURE__ */ jsx17(
|
|
1017
1079
|
"span",
|
|
1018
1080
|
{
|
|
1019
1081
|
className: cn(
|
|
@@ -1023,7 +1085,7 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
1023
1085
|
children: handleDisplayValue()
|
|
1024
1086
|
}
|
|
1025
1087
|
),
|
|
1026
|
-
showChevron && /* @__PURE__ */
|
|
1088
|
+
showChevron && /* @__PURE__ */ jsx17(
|
|
1027
1089
|
ChevronDownIcon2,
|
|
1028
1090
|
{
|
|
1029
1091
|
className: "shrink-0 transform group-data-[state=open]:rotate-180",
|
|
@@ -1035,7 +1097,7 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
1035
1097
|
)
|
|
1036
1098
|
}
|
|
1037
1099
|
),
|
|
1038
|
-
/* @__PURE__ */
|
|
1100
|
+
/* @__PURE__ */ jsx17(
|
|
1039
1101
|
PopoverContent,
|
|
1040
1102
|
{
|
|
1041
1103
|
className: cn(
|
|
@@ -1047,15 +1109,15 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
1047
1109
|
sideOffset: 4,
|
|
1048
1110
|
align: "start",
|
|
1049
1111
|
children: /* @__PURE__ */ jsxs9(Command, { children: [
|
|
1050
|
-
!hideSearchBox && /* @__PURE__ */
|
|
1112
|
+
!hideSearchBox && /* @__PURE__ */ jsx17(CommandInput, { placeholder: "Search..." }),
|
|
1051
1113
|
/* @__PURE__ */ jsxs9(CommandList, { children: [
|
|
1052
|
-
/* @__PURE__ */
|
|
1053
|
-
/* @__PURE__ */
|
|
1114
|
+
/* @__PURE__ */ jsx17(CommandEmpty, { children: "No results" }),
|
|
1115
|
+
/* @__PURE__ */ jsx17(CommandGroup, { children: options.map(({ id: id2, ...option }) => /* @__PURE__ */ jsx17(
|
|
1054
1116
|
CommandItem,
|
|
1055
1117
|
{
|
|
1056
1118
|
value: option.title,
|
|
1057
1119
|
onSelect: () => handleSelect(option.value),
|
|
1058
|
-
children: /* @__PURE__ */
|
|
1120
|
+
children: /* @__PURE__ */ jsx17(
|
|
1059
1121
|
ListItem_default,
|
|
1060
1122
|
{
|
|
1061
1123
|
className: cn(classNames?.items, "truncate py-1"),
|
|
@@ -1068,19 +1130,19 @@ var Combobox = forwardRef10((props, ref) => {
|
|
|
1068
1130
|
id2
|
|
1069
1131
|
)) })
|
|
1070
1132
|
] }),
|
|
1071
|
-
!!footer && /* @__PURE__ */
|
|
1133
|
+
!!footer && /* @__PURE__ */ jsx17(Separator, {}),
|
|
1072
1134
|
footer && footer({ close })
|
|
1073
1135
|
] })
|
|
1074
1136
|
}
|
|
1075
1137
|
)
|
|
1076
1138
|
] }),
|
|
1077
|
-
isDefault && !isEmpty && /* @__PURE__ */
|
|
1139
|
+
isDefault && !isEmpty && /* @__PURE__ */ jsx17(
|
|
1078
1140
|
"button",
|
|
1079
1141
|
{
|
|
1080
1142
|
type: "button",
|
|
1081
1143
|
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",
|
|
1082
1144
|
onClick: handleClear,
|
|
1083
|
-
children: /* @__PURE__ */
|
|
1145
|
+
children: /* @__PURE__ */ jsx17(CircleX2, { className: "h-4 w-4 text-green-100" })
|
|
1084
1146
|
}
|
|
1085
1147
|
)
|
|
1086
1148
|
] })
|
|
@@ -1117,7 +1179,7 @@ var triggerVariants = cva5(
|
|
|
1117
1179
|
import { cva as cva6 } from "cva";
|
|
1118
1180
|
import { Minus as Minus2, Plus } from "lucide-react";
|
|
1119
1181
|
import { forwardRef as forwardRef11, useEffect as useEffect4, useState as useState4 } from "react";
|
|
1120
|
-
import { jsx as
|
|
1182
|
+
import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1121
1183
|
var Counter = forwardRef11(
|
|
1122
1184
|
({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
|
|
1123
1185
|
const [count, setCount] = useState4(0);
|
|
@@ -1158,7 +1220,7 @@ var Counter = forwardRef11(
|
|
|
1158
1220
|
className: cn("flex w-auto flex-col gap-1", classNames?.root),
|
|
1159
1221
|
"data-testid": `counter-wrapper-${props.id}`,
|
|
1160
1222
|
children: [
|
|
1161
|
-
label && /* @__PURE__ */
|
|
1223
|
+
label && /* @__PURE__ */ jsx18(
|
|
1162
1224
|
Label_default,
|
|
1163
1225
|
{
|
|
1164
1226
|
text: label,
|
|
@@ -1169,16 +1231,16 @@ var Counter = forwardRef11(
|
|
|
1169
1231
|
}
|
|
1170
1232
|
),
|
|
1171
1233
|
/* @__PURE__ */ jsxs10("div", { className: "relative flex w-[122px] flex-row items-center", children: [
|
|
1172
|
-
/* @__PURE__ */
|
|
1234
|
+
/* @__PURE__ */ jsx18(
|
|
1173
1235
|
"button",
|
|
1174
1236
|
{
|
|
1175
1237
|
type: "button",
|
|
1176
1238
|
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",
|
|
1177
1239
|
onClick: decrement,
|
|
1178
|
-
children: /* @__PURE__ */
|
|
1240
|
+
children: /* @__PURE__ */ jsx18(Minus2, { className: "h-4 w-4 text-green-100" })
|
|
1179
1241
|
}
|
|
1180
1242
|
),
|
|
1181
|
-
/* @__PURE__ */
|
|
1243
|
+
/* @__PURE__ */ jsx18(
|
|
1182
1244
|
"input",
|
|
1183
1245
|
{
|
|
1184
1246
|
className: cn(counterVariants({ theme }), classNames?.input),
|
|
@@ -1189,17 +1251,17 @@ var Counter = forwardRef11(
|
|
|
1189
1251
|
...props
|
|
1190
1252
|
}
|
|
1191
1253
|
),
|
|
1192
|
-
/* @__PURE__ */
|
|
1254
|
+
/* @__PURE__ */ jsx18(
|
|
1193
1255
|
"button",
|
|
1194
1256
|
{
|
|
1195
1257
|
type: "button",
|
|
1196
1258
|
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",
|
|
1197
1259
|
onClick: increment,
|
|
1198
|
-
children: /* @__PURE__ */
|
|
1260
|
+
children: /* @__PURE__ */ jsx18(Plus, { className: "h-4 w-4 text-green-100" })
|
|
1199
1261
|
}
|
|
1200
1262
|
)
|
|
1201
1263
|
] }),
|
|
1202
|
-
/* @__PURE__ */
|
|
1264
|
+
/* @__PURE__ */ jsx18(ErrorMessage_default, { message: error })
|
|
1203
1265
|
]
|
|
1204
1266
|
}
|
|
1205
1267
|
);
|
|
@@ -1255,18 +1317,1456 @@ var counterVariants = cva6(
|
|
|
1255
1317
|
}
|
|
1256
1318
|
}
|
|
1257
1319
|
);
|
|
1320
|
+
|
|
1321
|
+
// src/components/primitives/avatar.tsx
|
|
1322
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
1323
|
+
import * as React7 from "react";
|
|
1324
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1325
|
+
var AvatarBase = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1326
|
+
AvatarPrimitive.Root,
|
|
1327
|
+
{
|
|
1328
|
+
ref,
|
|
1329
|
+
className: cn("relative flex shrink-0 overflow-hidden rounded-full", className),
|
|
1330
|
+
...props
|
|
1331
|
+
}
|
|
1332
|
+
));
|
|
1333
|
+
AvatarBase.displayName = AvatarPrimitive.Root.displayName;
|
|
1334
|
+
var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1335
|
+
AvatarPrimitive.Image,
|
|
1336
|
+
{
|
|
1337
|
+
ref,
|
|
1338
|
+
className: cn("aspect-square h-full w-full", className),
|
|
1339
|
+
"data-testid": "job-card-avatar",
|
|
1340
|
+
...props
|
|
1341
|
+
}
|
|
1342
|
+
));
|
|
1343
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
1344
|
+
var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1345
|
+
AvatarPrimitive.Fallback,
|
|
1346
|
+
{
|
|
1347
|
+
ref,
|
|
1348
|
+
className: cn(
|
|
1349
|
+
"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",
|
|
1350
|
+
className
|
|
1351
|
+
),
|
|
1352
|
+
...props
|
|
1353
|
+
}
|
|
1354
|
+
));
|
|
1355
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
1356
|
+
|
|
1357
|
+
// src/components/ui/Avatar.tsx
|
|
1358
|
+
import { cva as cva7 } from "cva";
|
|
1359
|
+
import Link from "next/link";
|
|
1360
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1361
|
+
function Avatar({ size, src, href, name, ...linkProps }) {
|
|
1362
|
+
const fallbackShort = name?.slice(0, 2);
|
|
1363
|
+
const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
|
|
1364
|
+
const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
|
|
1365
|
+
const renderAvatar = () => /* @__PURE__ */ jsxs11(AvatarBase, { className: avatarVariants({ size }), children: [
|
|
1366
|
+
/* @__PURE__ */ jsx20(AvatarImage, { src, alt: name }),
|
|
1367
|
+
/* @__PURE__ */ jsx20(AvatarFallback, { children: fallback?.toUpperCase() })
|
|
1368
|
+
] });
|
|
1369
|
+
if (href) {
|
|
1370
|
+
return /* @__PURE__ */ jsx20(Link, { href, ...linkProps, children: renderAvatar() });
|
|
1371
|
+
}
|
|
1372
|
+
return renderAvatar();
|
|
1373
|
+
}
|
|
1374
|
+
var avatarVariants = cva7("ring ring-white ring-2", {
|
|
1375
|
+
variants: {
|
|
1376
|
+
size: {
|
|
1377
|
+
large: "h-16 w-16",
|
|
1378
|
+
medium: "h-10 w-10",
|
|
1379
|
+
small: "h-8 w-8"
|
|
1380
|
+
}
|
|
1381
|
+
},
|
|
1382
|
+
defaultVariants: {
|
|
1383
|
+
size: "medium"
|
|
1384
|
+
}
|
|
1385
|
+
});
|
|
1386
|
+
|
|
1387
|
+
// src/components/ui/Icon.tsx
|
|
1388
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
1389
|
+
import { cva as cva8 } from "cva";
|
|
1390
|
+
import { forwardRef as forwardRef13 } from "react";
|
|
1391
|
+
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
1392
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1393
|
+
var Icon = forwardRef13(
|
|
1394
|
+
({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
|
|
1395
|
+
const Component = readonly ? Slot2 : "button";
|
|
1396
|
+
return /* @__PURE__ */ jsx21(
|
|
1397
|
+
Component,
|
|
1398
|
+
{
|
|
1399
|
+
className: cn(
|
|
1400
|
+
twMerge3(iconVariants({ variant: active ? "active" : variant, size })),
|
|
1401
|
+
className
|
|
1402
|
+
),
|
|
1403
|
+
...props,
|
|
1404
|
+
ref
|
|
1405
|
+
}
|
|
1406
|
+
);
|
|
1407
|
+
}
|
|
1408
|
+
);
|
|
1409
|
+
Icon.displayName = "Icon";
|
|
1410
|
+
var iconVariants = cva8(
|
|
1411
|
+
[
|
|
1412
|
+
"inline-flex",
|
|
1413
|
+
"items-center",
|
|
1414
|
+
"rounded-full",
|
|
1415
|
+
"outline-2",
|
|
1416
|
+
"outline-offset-2",
|
|
1417
|
+
"outline-dashed",
|
|
1418
|
+
"outline-transparent",
|
|
1419
|
+
"disabled:text-grey-40",
|
|
1420
|
+
"disabled:bg-transparent",
|
|
1421
|
+
"disabled:pointer-events-none"
|
|
1422
|
+
],
|
|
1423
|
+
{
|
|
1424
|
+
variants: {
|
|
1425
|
+
variant: {
|
|
1426
|
+
filled: [
|
|
1427
|
+
"border",
|
|
1428
|
+
"border-green-80",
|
|
1429
|
+
"bg-green-90",
|
|
1430
|
+
"text-white",
|
|
1431
|
+
"hover:bg-green-80",
|
|
1432
|
+
"active:bg-green-80",
|
|
1433
|
+
"focus:outline-pickle-100",
|
|
1434
|
+
"disabled:bg-green-70"
|
|
1435
|
+
],
|
|
1436
|
+
transparent: [
|
|
1437
|
+
"text-black",
|
|
1438
|
+
"hover:bg-grey-5",
|
|
1439
|
+
"active:bg-grey-10",
|
|
1440
|
+
"focus:outline-purple-100"
|
|
1441
|
+
],
|
|
1442
|
+
tonal: [
|
|
1443
|
+
"border",
|
|
1444
|
+
"border-grey-5",
|
|
1445
|
+
"hover:border-grey-10",
|
|
1446
|
+
"active:border-grey-20",
|
|
1447
|
+
"focus:outline-purple-100"
|
|
1448
|
+
],
|
|
1449
|
+
active: ["text-black", "bg-pickle-100"]
|
|
1450
|
+
},
|
|
1451
|
+
size: {
|
|
1452
|
+
small: ["h-10", "w-10", "p-3"],
|
|
1453
|
+
medium: ["h-12", "w-12", "p-4"],
|
|
1454
|
+
large: ["h-14", "w-14", "p-4"]
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
defaultVariants: {
|
|
1458
|
+
variant: "filled",
|
|
1459
|
+
size: "medium"
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
);
|
|
1463
|
+
|
|
1464
|
+
// src/components/ui/LinkButton.tsx
|
|
1465
|
+
import Link2 from "next/link";
|
|
1466
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1467
|
+
var LinkButton = ({
|
|
1468
|
+
disabled = false,
|
|
1469
|
+
useAnchor = false,
|
|
1470
|
+
children,
|
|
1471
|
+
href,
|
|
1472
|
+
...props
|
|
1473
|
+
}) => {
|
|
1474
|
+
const Component = useAnchor ? "a" : Link2;
|
|
1475
|
+
return /* @__PURE__ */ jsx22(
|
|
1476
|
+
Component,
|
|
1477
|
+
{
|
|
1478
|
+
href,
|
|
1479
|
+
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" : ""} `,
|
|
1480
|
+
...disabled && { "aria-disabled": true, tabIndex: -1 },
|
|
1481
|
+
...props,
|
|
1482
|
+
children
|
|
1483
|
+
}
|
|
1484
|
+
);
|
|
1485
|
+
};
|
|
1486
|
+
|
|
1487
|
+
// src/components/ui/ReadMore.tsx
|
|
1488
|
+
import { useEffect as useEffect5, useState as useState5 } from "react";
|
|
1489
|
+
import Markdown from "react-markdown";
|
|
1490
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1491
|
+
function ReadMore({ text, ...props }) {
|
|
1492
|
+
const [isExpanded, setIsExpanded] = useState5(false);
|
|
1493
|
+
const [maxWords, setMaxWords] = useState5(160);
|
|
1494
|
+
useEffect5(() => {
|
|
1495
|
+
const updateMaxWords = () => {
|
|
1496
|
+
const windowWidth = window.innerWidth;
|
|
1497
|
+
if (windowWidth <= 768) {
|
|
1498
|
+
setMaxWords(50);
|
|
1499
|
+
} else {
|
|
1500
|
+
setMaxWords(160);
|
|
1501
|
+
}
|
|
1502
|
+
};
|
|
1503
|
+
updateMaxWords();
|
|
1504
|
+
window.addEventListener("resize", updateMaxWords);
|
|
1505
|
+
return () => window.removeEventListener("resize", updateMaxWords);
|
|
1506
|
+
}, []);
|
|
1507
|
+
function createReadMoreText(text2, maxWords2, isExpanded2) {
|
|
1508
|
+
const words = text2.split(" ");
|
|
1509
|
+
const snippet2 = isExpanded2 ? text2 : words.slice(0, maxWords2).join(" ");
|
|
1510
|
+
const readMoreText = isExpanded2 ? "" : "...";
|
|
1511
|
+
return `${snippet2} ${readMoreText}`;
|
|
1512
|
+
}
|
|
1513
|
+
const toggleText = () => setIsExpanded(!isExpanded);
|
|
1514
|
+
const snippet = createReadMoreText(text, maxWords, isExpanded);
|
|
1515
|
+
return /* @__PURE__ */ jsxs12("div", { ...props, children: [
|
|
1516
|
+
/* @__PURE__ */ jsx23("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ jsx23(Markdown, { children: snippet }) }),
|
|
1517
|
+
/* @__PURE__ */ jsx23(Button, { className: "mt-2 flex items-center justify-center", variant: "link", onClick: toggleText, children: /* @__PURE__ */ jsxs12("p", { className: "text-sm font-bold underline underline-offset-2", children: [
|
|
1518
|
+
"Read ",
|
|
1519
|
+
isExpanded ? "less" : "more"
|
|
1520
|
+
] }) })
|
|
1521
|
+
] });
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
// src/components/company/CompanyBenefits.tsx
|
|
1525
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1526
|
+
function CompanyBenefits({ benefits }) {
|
|
1527
|
+
if (!benefits) return null;
|
|
1528
|
+
return /* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
|
|
1529
|
+
/* @__PURE__ */ jsx24("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg", children: "Company benefits" }),
|
|
1530
|
+
/* @__PURE__ */ jsx24("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ jsx24("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
|
|
1531
|
+
] });
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
// src/components/company/CompanyInformation.tsx
|
|
1535
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1536
|
+
function CompanyInformation({
|
|
1537
|
+
name,
|
|
1538
|
+
how,
|
|
1539
|
+
mission,
|
|
1540
|
+
wow,
|
|
1541
|
+
website
|
|
1542
|
+
}) {
|
|
1543
|
+
return /* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-2", children: [
|
|
1544
|
+
/* @__PURE__ */ jsxs14(
|
|
1545
|
+
"h2",
|
|
1546
|
+
{
|
|
1547
|
+
"data-testid": "company-name",
|
|
1548
|
+
className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
|
|
1549
|
+
children: [
|
|
1550
|
+
"About ",
|
|
1551
|
+
name
|
|
1552
|
+
]
|
|
1553
|
+
}
|
|
1554
|
+
),
|
|
1555
|
+
how && /* @__PURE__ */ jsx25("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
|
|
1556
|
+
mission && /* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
|
|
1557
|
+
/* @__PURE__ */ jsx25("span", { children: "\u{1F680}" }),
|
|
1558
|
+
/* @__PURE__ */ jsxs14("p", { className: "text-base text-grey-80", children: [
|
|
1559
|
+
/* @__PURE__ */ jsx25("span", { className: "pr-1 font-bold", children: "Mission" }),
|
|
1560
|
+
mission
|
|
1561
|
+
] })
|
|
1562
|
+
] }),
|
|
1563
|
+
wow && /* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
|
|
1564
|
+
/* @__PURE__ */ jsx25("span", { children: "\u{1F31F}" }),
|
|
1565
|
+
/* @__PURE__ */ jsxs14("p", { className: "text-base text-grey-80", children: [
|
|
1566
|
+
/* @__PURE__ */ jsx25("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
|
|
1567
|
+
wow
|
|
1568
|
+
] })
|
|
1569
|
+
] }),
|
|
1570
|
+
website && /* @__PURE__ */ jsx25("div", { className: "pt-2", children: /* @__PURE__ */ jsx25(
|
|
1571
|
+
LinkButton,
|
|
1572
|
+
{
|
|
1573
|
+
"data-testid": "company-website-link",
|
|
1574
|
+
href: website,
|
|
1575
|
+
target: "_blank",
|
|
1576
|
+
rel: "noopener noreferrer",
|
|
1577
|
+
children: "Website"
|
|
1578
|
+
}
|
|
1579
|
+
) })
|
|
1580
|
+
] });
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
// src/components/company/CompanyTake.tsx
|
|
1584
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1585
|
+
function CompanyTake({ content, avatarSrc }) {
|
|
1586
|
+
if (!content) return null;
|
|
1587
|
+
return /* @__PURE__ */ jsxs15(
|
|
1588
|
+
"div",
|
|
1589
|
+
{
|
|
1590
|
+
"data-testid": "company-take",
|
|
1591
|
+
className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
|
|
1592
|
+
children: [
|
|
1593
|
+
/* @__PURE__ */ jsx26("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
|
|
1594
|
+
/* @__PURE__ */ jsx26("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ jsx26("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
|
|
1595
|
+
/* @__PURE__ */ jsxs15("div", { className: "mt-8 flex w-full items-center gap-3", children: [
|
|
1596
|
+
/* @__PURE__ */ jsx26(Avatar, { name: "Jon Lee", src: avatarSrc }),
|
|
1597
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col flex-wrap items-start", children: [
|
|
1598
|
+
/* @__PURE__ */ jsx26("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
|
|
1599
|
+
/* @__PURE__ */ jsx26("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
|
|
1600
|
+
] })
|
|
1601
|
+
] })
|
|
1602
|
+
]
|
|
1603
|
+
}
|
|
1604
|
+
);
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
// src/components/jobPost/JobDescription.tsx
|
|
1608
|
+
import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1609
|
+
function JobDescription({ description }) {
|
|
1610
|
+
if (!description) return null;
|
|
1611
|
+
return /* @__PURE__ */ jsxs16("div", { className: "flex w-full flex-col gap-2", children: [
|
|
1612
|
+
/* @__PURE__ */ jsx27("h3", { className: "text-xl font-bold", children: "Job Description" }),
|
|
1613
|
+
/* @__PURE__ */ jsx27(ReadMore, { text: description })
|
|
1614
|
+
] });
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
// src/components/jobPost/JobHeader.tsx
|
|
1618
|
+
import { Dot } from "lucide-react";
|
|
1619
|
+
import Image2 from "next/image";
|
|
1620
|
+
|
|
1621
|
+
// src/components/buttons/BackButton.tsx
|
|
1622
|
+
import { X as X4 } from "lucide-react";
|
|
1623
|
+
import { useRouter } from "next/navigation";
|
|
1624
|
+
|
|
1625
|
+
// src/hooks/useWindowHistory.ts
|
|
1626
|
+
import { useContext } from "react";
|
|
1627
|
+
|
|
1628
|
+
// src/contexts/WindowHistoryProvider.tsx
|
|
1629
|
+
import { useSearchParams } from "next/navigation";
|
|
1630
|
+
import { createContext, useEffect as useEffect6, useMemo, useState as useState6 } from "react";
|
|
1631
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1632
|
+
var WindowHistoryContext = createContext({});
|
|
1633
|
+
function WindowHistoryProvider({ children }) {
|
|
1634
|
+
const [history, setHistory] = useState6([]);
|
|
1635
|
+
const searchParams = useSearchParams();
|
|
1636
|
+
useEffect6(() => {
|
|
1637
|
+
setHistory(
|
|
1638
|
+
(prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
|
|
1639
|
+
);
|
|
1640
|
+
}, [searchParams]);
|
|
1641
|
+
const contextValue = useMemo(() => ({ history }), [history]);
|
|
1642
|
+
return /* @__PURE__ */ jsx28(WindowHistoryContext.Provider, { value: contextValue, children });
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
// src/hooks/useWindowHistory.ts
|
|
1646
|
+
function useWindowHistory() {
|
|
1647
|
+
const windowHistoryContext = useContext(WindowHistoryContext);
|
|
1648
|
+
if (Object.keys(windowHistoryContext).length === 0) {
|
|
1649
|
+
throw new Error("useWindowHistory was used outside of its WindowHistoryContext");
|
|
1650
|
+
}
|
|
1651
|
+
return windowHistoryContext;
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
// src/components/buttons/BackButton.tsx
|
|
1655
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1656
|
+
function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
|
|
1657
|
+
const { history } = useWindowHistory();
|
|
1658
|
+
const router = useRouter();
|
|
1659
|
+
const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
|
|
1660
|
+
const goBack = () => {
|
|
1661
|
+
const previous = history[history.length - 2];
|
|
1662
|
+
history.length > 1 && isAcceptedRoute(previous) ? router.back() : router.push(fallbackHref ?? "/");
|
|
1663
|
+
};
|
|
1664
|
+
return /* @__PURE__ */ jsx29(
|
|
1665
|
+
Icon,
|
|
1666
|
+
{
|
|
1667
|
+
"aria-label": "back button",
|
|
1668
|
+
variant: "transparent",
|
|
1669
|
+
size: "small",
|
|
1670
|
+
onClick: goBack,
|
|
1671
|
+
className,
|
|
1672
|
+
...props,
|
|
1673
|
+
children: /* @__PURE__ */ jsx29(X4, {})
|
|
1674
|
+
}
|
|
1675
|
+
);
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
// src/lib/icons.ts
|
|
1679
|
+
import {
|
|
1680
|
+
Banknote,
|
|
1681
|
+
Bell,
|
|
1682
|
+
BriefcaseBusiness,
|
|
1683
|
+
Building,
|
|
1684
|
+
Building2,
|
|
1685
|
+
CircleUser,
|
|
1686
|
+
CircleUserRound,
|
|
1687
|
+
Clock2,
|
|
1688
|
+
Contact,
|
|
1689
|
+
GalleryVerticalEnd,
|
|
1690
|
+
Home,
|
|
1691
|
+
KeyRound,
|
|
1692
|
+
Layers,
|
|
1693
|
+
LifeBuoy,
|
|
1694
|
+
MapPin,
|
|
1695
|
+
MessageSquareDot,
|
|
1696
|
+
Settings,
|
|
1697
|
+
SquareKanban,
|
|
1698
|
+
Users,
|
|
1699
|
+
Wallet
|
|
1700
|
+
} from "lucide-react";
|
|
1701
|
+
var iconMap = {
|
|
1702
|
+
house: Home,
|
|
1703
|
+
layers: Layers,
|
|
1704
|
+
users: Users,
|
|
1705
|
+
settings: Settings,
|
|
1706
|
+
building: Building,
|
|
1707
|
+
bell: Bell,
|
|
1708
|
+
wallet: Wallet,
|
|
1709
|
+
contact: Contact,
|
|
1710
|
+
banknote: Banknote,
|
|
1711
|
+
"message-square-dot": MessageSquareDot,
|
|
1712
|
+
"life-buoy": LifeBuoy,
|
|
1713
|
+
"building-2": Building2,
|
|
1714
|
+
"gallery-vertical-end": GalleryVerticalEnd,
|
|
1715
|
+
"square-kanban": SquareKanban,
|
|
1716
|
+
"briefcase-business": BriefcaseBusiness,
|
|
1717
|
+
"circle-user": CircleUser,
|
|
1718
|
+
"key-round": KeyRound,
|
|
1719
|
+
"clock-2": Clock2,
|
|
1720
|
+
"circle-user-round": CircleUserRound,
|
|
1721
|
+
"map-pin": MapPin
|
|
1722
|
+
};
|
|
1723
|
+
|
|
1724
|
+
// src/components/jobPost/JobHeader.tsx
|
|
1725
|
+
import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1726
|
+
function JobHeader({
|
|
1727
|
+
title,
|
|
1728
|
+
subtitles,
|
|
1729
|
+
standalone,
|
|
1730
|
+
bannerSrc,
|
|
1731
|
+
avatarSrc,
|
|
1732
|
+
avatarName,
|
|
1733
|
+
avatarHref,
|
|
1734
|
+
backFallbackHref,
|
|
1735
|
+
backAcceptedRoutes,
|
|
1736
|
+
actions,
|
|
1737
|
+
tags
|
|
1738
|
+
}) {
|
|
1739
|
+
const renderIcon = (icon) => {
|
|
1740
|
+
const Icon2 = iconMap[icon];
|
|
1741
|
+
return /* @__PURE__ */ jsx30(Icon2, { size: 18 });
|
|
1742
|
+
};
|
|
1743
|
+
return /* @__PURE__ */ jsxs17(
|
|
1744
|
+
"div",
|
|
1745
|
+
{
|
|
1746
|
+
"data-testid": "job-header-root",
|
|
1747
|
+
className: cn(
|
|
1748
|
+
"-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
|
|
1749
|
+
!standalone && "rounded-3xl"
|
|
1750
|
+
),
|
|
1751
|
+
children: [
|
|
1752
|
+
!standalone && /* @__PURE__ */ jsxs17("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: [
|
|
1753
|
+
/* @__PURE__ */ jsx30(
|
|
1754
|
+
Image2,
|
|
1755
|
+
{
|
|
1756
|
+
className: "h-full w-full rounded-t-3xl object-cover",
|
|
1757
|
+
src: bannerSrc,
|
|
1758
|
+
alt: "job banner",
|
|
1759
|
+
fill: true
|
|
1760
|
+
}
|
|
1761
|
+
),
|
|
1762
|
+
/* @__PURE__ */ jsx30(
|
|
1763
|
+
BackButton,
|
|
1764
|
+
{
|
|
1765
|
+
acceptedRoutes: backAcceptedRoutes,
|
|
1766
|
+
fallbackHref: backFallbackHref,
|
|
1767
|
+
className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
|
|
1768
|
+
"data-testid": "job-header-back-button"
|
|
1769
|
+
}
|
|
1770
|
+
),
|
|
1771
|
+
/* @__PURE__ */ jsx30(
|
|
1772
|
+
"div",
|
|
1773
|
+
{
|
|
1774
|
+
className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
|
|
1775
|
+
"data-testid": "job-header-avatar",
|
|
1776
|
+
children: /* @__PURE__ */ jsx30(
|
|
1777
|
+
Avatar,
|
|
1778
|
+
{
|
|
1779
|
+
size: "large",
|
|
1780
|
+
target: "_blank",
|
|
1781
|
+
href: avatarHref,
|
|
1782
|
+
name: avatarName,
|
|
1783
|
+
src: avatarSrc,
|
|
1784
|
+
rel: "noopener noreferrer"
|
|
1785
|
+
}
|
|
1786
|
+
)
|
|
1787
|
+
}
|
|
1788
|
+
)
|
|
1789
|
+
] }),
|
|
1790
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
|
|
1791
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex flex-col md:flex-row", children: [
|
|
1792
|
+
standalone && /* @__PURE__ */ jsx30("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ jsx30(
|
|
1793
|
+
Avatar,
|
|
1794
|
+
{
|
|
1795
|
+
size: "large",
|
|
1796
|
+
target: "_blank",
|
|
1797
|
+
href: avatarHref,
|
|
1798
|
+
name: avatarName,
|
|
1799
|
+
src: avatarSrc,
|
|
1800
|
+
rel: "noopener noreferrer"
|
|
1801
|
+
}
|
|
1802
|
+
) }),
|
|
1803
|
+
/* @__PURE__ */ jsx30("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg", children: subtitles?.map((subtitle, i) => /* @__PURE__ */ jsxs17(
|
|
1804
|
+
"div",
|
|
1805
|
+
{
|
|
1806
|
+
"data-testid": `job-header-subtitle-${i}`,
|
|
1807
|
+
className: "flex items-center",
|
|
1808
|
+
children: [
|
|
1809
|
+
subtitle,
|
|
1810
|
+
i < subtitles.length - 1 && /* @__PURE__ */ jsx30(Dot, { className: "mx-1 shrink-0", size: 10 })
|
|
1811
|
+
]
|
|
1812
|
+
},
|
|
1813
|
+
subtitle
|
|
1814
|
+
)) })
|
|
1815
|
+
] }),
|
|
1816
|
+
/* @__PURE__ */ jsxs17(
|
|
1817
|
+
"div",
|
|
1818
|
+
{
|
|
1819
|
+
"data-testid": "job-header-content",
|
|
1820
|
+
className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
|
|
1821
|
+
children: [
|
|
1822
|
+
/* @__PURE__ */ jsx30(
|
|
1823
|
+
"h2",
|
|
1824
|
+
{
|
|
1825
|
+
"data-testid": "job-header-title",
|
|
1826
|
+
className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg",
|
|
1827
|
+
children: title
|
|
1828
|
+
}
|
|
1829
|
+
),
|
|
1830
|
+
!!actions && /* @__PURE__ */ jsx30(
|
|
1831
|
+
"div",
|
|
1832
|
+
{
|
|
1833
|
+
className: "flex w-full justify-end gap-2 md:w-auto",
|
|
1834
|
+
"data-testid": "job-header-actions",
|
|
1835
|
+
children: actions
|
|
1836
|
+
}
|
|
1837
|
+
)
|
|
1838
|
+
]
|
|
1839
|
+
}
|
|
1840
|
+
),
|
|
1841
|
+
/* @__PURE__ */ jsx30(
|
|
1842
|
+
"div",
|
|
1843
|
+
{
|
|
1844
|
+
"data-testid": "job-header-tags",
|
|
1845
|
+
className: "flex flex-row flex-wrap items-center justify-start gap-2",
|
|
1846
|
+
children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ jsxs17(
|
|
1847
|
+
Chip_default,
|
|
1848
|
+
{
|
|
1849
|
+
size: "small",
|
|
1850
|
+
variant: "neutral",
|
|
1851
|
+
"aria-label": name,
|
|
1852
|
+
"data-testid": `job-header-tag-${name}`,
|
|
1853
|
+
children: [
|
|
1854
|
+
renderIcon(icon),
|
|
1855
|
+
/* @__PURE__ */ jsx30("span", { children: label })
|
|
1856
|
+
]
|
|
1857
|
+
},
|
|
1858
|
+
name
|
|
1859
|
+
))
|
|
1860
|
+
}
|
|
1861
|
+
)
|
|
1862
|
+
] })
|
|
1863
|
+
]
|
|
1864
|
+
}
|
|
1865
|
+
);
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
// src/components/jobPost/JobPost.tsx
|
|
1869
|
+
import * as DateFns from "date-fns";
|
|
1870
|
+
|
|
1871
|
+
// src/types/data/shared_pickle_output_latest.ts
|
|
1872
|
+
var shared_pickle_output_latest_exports = {};
|
|
1873
|
+
__export(shared_pickle_output_latest_exports, {
|
|
1874
|
+
CurrencyEnum: () => CurrencyEnum,
|
|
1875
|
+
DetailLevelEnum: () => DetailLevelEnum,
|
|
1876
|
+
TypeEnum: () => TypeEnum,
|
|
1877
|
+
UnitTextEnum: () => UnitTextEnum,
|
|
1878
|
+
monetaryAmountSchema: () => monetaryAmountSchema,
|
|
1879
|
+
placeSchema: () => placeSchema,
|
|
1880
|
+
postalAddressSchema: () => postalAddressSchema,
|
|
1881
|
+
quantitativeValueSchema: () => quantitativeValueSchema
|
|
1882
|
+
});
|
|
1883
|
+
import { z } from "zod";
|
|
1884
|
+
var TypeEnum = z.enum(["MONETARY_AMOUNT"]);
|
|
1885
|
+
var DetailLevelEnum = z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
|
|
1886
|
+
var UnitTextEnum = z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
|
|
1887
|
+
var CurrencyEnum = z.enum(["EUR", "GBP", "USD"]);
|
|
1888
|
+
var postalAddressSchema = z.object({
|
|
1889
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1890
|
+
type: z.string().describe("Document type used within sanity"),
|
|
1891
|
+
addressCountry: z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
|
|
1892
|
+
addressRegion: z.optional(z.string()).describe("The region in which the locality is, and which is in the country."),
|
|
1893
|
+
addressLocality: z.optional(z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
|
|
1894
|
+
streetAddress: z.optional(z.string()).describe("The street address within the locality."),
|
|
1895
|
+
postalCode: z.optional(z.string()).describe("The postal code")
|
|
1896
|
+
});
|
|
1897
|
+
var placeSchema = z.object({
|
|
1898
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1899
|
+
detailLevel: z.optional(DetailLevelEnum),
|
|
1900
|
+
latitude: z.optional(z.number()).describe("The latitude of a location."),
|
|
1901
|
+
longitude: z.optional(z.number()).describe("The longitude of a location."),
|
|
1902
|
+
address: z.optional(postalAddressSchema).describe("The physical place of the location")
|
|
1903
|
+
});
|
|
1904
|
+
var quantitativeValueSchema = z.object({
|
|
1905
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1906
|
+
type: z.string().describe("Document type used within sanity"),
|
|
1907
|
+
value: z.optional(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."),
|
|
1908
|
+
minValue: z.optional(z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
|
|
1909
|
+
maxValue: z.optional(z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
|
|
1910
|
+
unitText: UnitTextEnum
|
|
1911
|
+
});
|
|
1912
|
+
var monetaryAmountSchema = z.object({
|
|
1913
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1914
|
+
type: z.string().describe("Document type used within sanity"),
|
|
1915
|
+
singleValue: z.optional(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."),
|
|
1916
|
+
minValue: z.optional(z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
|
|
1917
|
+
maxValue: z.optional(z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
|
|
1918
|
+
value: z.optional(quantitativeValueSchema).describe("The quantitative_value for a given salary"),
|
|
1919
|
+
currency: z.optional(CurrencyEnum)
|
|
1920
|
+
});
|
|
1921
|
+
|
|
1922
|
+
// src/lib/salaryRange.ts
|
|
1923
|
+
function salaryRange(salary) {
|
|
1924
|
+
if (!salary) return null;
|
|
1925
|
+
const min = salary.minValue;
|
|
1926
|
+
const max = salary.maxValue;
|
|
1927
|
+
const single = salary.singleValue;
|
|
1928
|
+
const signs = {
|
|
1929
|
+
[CurrencyEnum.Values.USD]: "$",
|
|
1930
|
+
[CurrencyEnum.Values.GBP]: "\xA3",
|
|
1931
|
+
[CurrencyEnum.Values.EUR]: "\u20AC"
|
|
1932
|
+
};
|
|
1933
|
+
const sign = signs[salary.currency ?? CurrencyEnum.Values.USD];
|
|
1934
|
+
if (min == null && max == null && single == null) return null;
|
|
1935
|
+
if (single != null) return sign + single.toLocaleString();
|
|
1936
|
+
if (min === max) return sign + min?.toLocaleString();
|
|
1937
|
+
if (min != null && max != null)
|
|
1938
|
+
return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString();
|
|
1939
|
+
return null;
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
// src/hooks/useDisplayText.ts
|
|
1943
|
+
import { useEffect as useEffect7, useMemo as useMemo2, useState as useState7 } from "react";
|
|
1944
|
+
|
|
1945
|
+
// src/lib/mappings.ts
|
|
1946
|
+
var employmentTypeDisplayText = {
|
|
1947
|
+
FULL_TIME: {
|
|
1948
|
+
en: "Full Time"
|
|
1949
|
+
},
|
|
1950
|
+
INTERNSHIP: {
|
|
1951
|
+
en: "Internship"
|
|
1952
|
+
},
|
|
1953
|
+
OTHER: {
|
|
1954
|
+
en: "Other"
|
|
1955
|
+
},
|
|
1956
|
+
PART_TIME: {
|
|
1957
|
+
en: "Part Time"
|
|
1958
|
+
},
|
|
1959
|
+
PER_DIEM: {
|
|
1960
|
+
en: "Per-Diem"
|
|
1961
|
+
},
|
|
1962
|
+
TEMPORARY: {
|
|
1963
|
+
en: "Temporary"
|
|
1964
|
+
},
|
|
1965
|
+
CONTRACT: {
|
|
1966
|
+
en: "Contract"
|
|
1967
|
+
}
|
|
1968
|
+
};
|
|
1969
|
+
var unitTextDisplayText = {
|
|
1970
|
+
DAY: {
|
|
1971
|
+
en: "Day"
|
|
1972
|
+
},
|
|
1973
|
+
HOUR: {
|
|
1974
|
+
en: "Hour"
|
|
1975
|
+
},
|
|
1976
|
+
MONTH: {
|
|
1977
|
+
en: "Month"
|
|
1978
|
+
},
|
|
1979
|
+
PER_ACTIVITY: {
|
|
1980
|
+
en: "Per Activity"
|
|
1981
|
+
},
|
|
1982
|
+
WEEK: {
|
|
1983
|
+
en: "Week"
|
|
1984
|
+
},
|
|
1985
|
+
YEAR: {
|
|
1986
|
+
en: "Year"
|
|
1987
|
+
}
|
|
1988
|
+
};
|
|
1989
|
+
var currencyDisplayText = {
|
|
1990
|
+
EUR: {
|
|
1991
|
+
en: "\u20AC"
|
|
1992
|
+
},
|
|
1993
|
+
GBP: {
|
|
1994
|
+
en: "\xA3"
|
|
1995
|
+
},
|
|
1996
|
+
USD: {
|
|
1997
|
+
en: "$"
|
|
1998
|
+
}
|
|
1999
|
+
};
|
|
2000
|
+
var employmentLevelDisplayText = {
|
|
2001
|
+
DIRECTOR: {
|
|
2002
|
+
en: "Director"
|
|
2003
|
+
},
|
|
2004
|
+
ENTRY_LEVEL: {
|
|
2005
|
+
en: "Entry Level"
|
|
2006
|
+
},
|
|
2007
|
+
EXECUTIVE: {
|
|
2008
|
+
en: "Executive"
|
|
2009
|
+
},
|
|
2010
|
+
EXPERIENCED: {
|
|
2011
|
+
en: "Experienced"
|
|
2012
|
+
},
|
|
2013
|
+
INTERN: {
|
|
2014
|
+
en: "Intern"
|
|
2015
|
+
},
|
|
2016
|
+
MANAGER: {
|
|
2017
|
+
en: "Manager"
|
|
2018
|
+
}
|
|
2019
|
+
};
|
|
2020
|
+
var jobFunctionDisplayText = {
|
|
2021
|
+
CLINICAL_RESEARCH: {
|
|
2022
|
+
en: "Clinical Research"
|
|
2023
|
+
},
|
|
2024
|
+
CUSTOMER_SUCCESS: {
|
|
2025
|
+
en: "Customer Success"
|
|
2026
|
+
},
|
|
2027
|
+
DATA_ANALYTICS: {
|
|
2028
|
+
en: "Data Analytics"
|
|
2029
|
+
},
|
|
2030
|
+
FINANCE_AND_AUDIT: {
|
|
2031
|
+
en: "Finance and Audit"
|
|
2032
|
+
},
|
|
2033
|
+
MARKETING: {
|
|
2034
|
+
en: "Marketing"
|
|
2035
|
+
},
|
|
2036
|
+
OPERATIONS: {
|
|
2037
|
+
en: "Operations"
|
|
2038
|
+
},
|
|
2039
|
+
PEOPLE_HUMAN_RESOURCES: {
|
|
2040
|
+
en: "People Human Resources"
|
|
2041
|
+
},
|
|
2042
|
+
PRODUCT_AND_TECH: {
|
|
2043
|
+
en: "Product and Tech"
|
|
2044
|
+
},
|
|
2045
|
+
QUALITY_ASSURANCE_AND_OUTCOMES: {
|
|
2046
|
+
en: "Quality Assurance and Outcomes"
|
|
2047
|
+
},
|
|
2048
|
+
SALES_AND_BUSINESS_DEVELOPMENT: {
|
|
2049
|
+
en: "Sales and Business Development"
|
|
2050
|
+
},
|
|
2051
|
+
STRATEGY_AND_CONSULTING: {
|
|
2052
|
+
en: "Strategy and Consulting"
|
|
2053
|
+
}
|
|
2054
|
+
};
|
|
2055
|
+
var bestFitDisplayText = {
|
|
2056
|
+
DENTIST: {
|
|
2057
|
+
en: "Dentist"
|
|
2058
|
+
},
|
|
2059
|
+
DIETICIAN: {
|
|
2060
|
+
en: "Dietician"
|
|
2061
|
+
},
|
|
2062
|
+
DOULA: {
|
|
2063
|
+
en: "Doula"
|
|
2064
|
+
},
|
|
2065
|
+
MEDICAL_ASSISTANT: {
|
|
2066
|
+
en: "Medical Assistant"
|
|
2067
|
+
},
|
|
2068
|
+
MIDWIFE: {
|
|
2069
|
+
en: "Midwife"
|
|
2070
|
+
},
|
|
2071
|
+
NURSE: {
|
|
2072
|
+
en: "Nurse"
|
|
2073
|
+
},
|
|
2074
|
+
OCCUPATIONAL_THERAPIST: {
|
|
2075
|
+
en: "Occupational Therapist"
|
|
2076
|
+
},
|
|
2077
|
+
PHARMACIST: {
|
|
2078
|
+
en: "Pharmacist"
|
|
2079
|
+
},
|
|
2080
|
+
PHYSICAL_THERAPIST: {
|
|
2081
|
+
en: "Physical Therapist"
|
|
2082
|
+
},
|
|
2083
|
+
PHYSICIAN: {
|
|
2084
|
+
en: "Physician"
|
|
2085
|
+
},
|
|
2086
|
+
PHYSICIAN_ASSISTANT: {
|
|
2087
|
+
en: "Physician Assistant"
|
|
2088
|
+
},
|
|
2089
|
+
PSYCHOLOGIST: {
|
|
2090
|
+
en: "Psychologist"
|
|
2091
|
+
},
|
|
2092
|
+
RADIOLOGIST: {
|
|
2093
|
+
en: "Radiologist"
|
|
2094
|
+
},
|
|
2095
|
+
SOCIAL_WORKER: {
|
|
2096
|
+
en: "Social Worker"
|
|
2097
|
+
},
|
|
2098
|
+
SPEECH_LANGUAGE_PATHOLOGIST: {
|
|
2099
|
+
en: "Speech Language Pathologist"
|
|
2100
|
+
},
|
|
2101
|
+
SURGEON: {
|
|
2102
|
+
en: "Surgeon"
|
|
2103
|
+
}
|
|
2104
|
+
};
|
|
2105
|
+
var clinicalSpecialtyDisplayText = {
|
|
2106
|
+
ANESTHESIOLOGY: {
|
|
2107
|
+
en: "Anesthesiology"
|
|
2108
|
+
},
|
|
2109
|
+
CARDIOLOGY: {
|
|
2110
|
+
en: "Cardiology"
|
|
2111
|
+
},
|
|
2112
|
+
CARDIOVASCULAR_AND_PULMONARY: {
|
|
2113
|
+
en: "Cardiovascular and Pulmonary"
|
|
2114
|
+
},
|
|
2115
|
+
CASE_MANAGEMENT: {
|
|
2116
|
+
en: "Case Management"
|
|
2117
|
+
},
|
|
2118
|
+
CHRONIC_PAIN: {
|
|
2119
|
+
en: "Chronic Pain"
|
|
2120
|
+
},
|
|
2121
|
+
CLINICAL_ELECTROPHYSIOLOGY: {
|
|
2122
|
+
en: "Clinical Electrophysiology"
|
|
2123
|
+
},
|
|
2124
|
+
CRITICAL_AND_ACUTE_CARE: {
|
|
2125
|
+
en: "Critical and Acute Care"
|
|
2126
|
+
},
|
|
2127
|
+
DERMATOLOGY: {
|
|
2128
|
+
en: "Dermatology"
|
|
2129
|
+
},
|
|
2130
|
+
DIALYSIS: {
|
|
2131
|
+
en: "Dialysis"
|
|
2132
|
+
},
|
|
2133
|
+
EMERGENCY_MEDICINE: {
|
|
2134
|
+
en: "Emergency Medicine"
|
|
2135
|
+
},
|
|
2136
|
+
ENDOCRINOLOGY: {
|
|
2137
|
+
en: "Endocrinology"
|
|
2138
|
+
},
|
|
2139
|
+
ERGONOMICS: {
|
|
2140
|
+
en: "Ergonomics"
|
|
2141
|
+
},
|
|
2142
|
+
FEEDING_EATING_AND_SWALLOWING: {
|
|
2143
|
+
en: "Feeding, Eating, and Swallowing"
|
|
2144
|
+
},
|
|
2145
|
+
GASTROENTEROLOGY: {
|
|
2146
|
+
en: "Gastroenterology"
|
|
2147
|
+
},
|
|
2148
|
+
GERIATRICS: {
|
|
2149
|
+
en: "Geriatrics"
|
|
2150
|
+
},
|
|
2151
|
+
HAND_THERAPY: {
|
|
2152
|
+
en: "Hand Therapy"
|
|
2153
|
+
},
|
|
2154
|
+
HEMATOLOGY: {
|
|
2155
|
+
en: "Hematology"
|
|
2156
|
+
},
|
|
2157
|
+
HOLISTIC_MEDICINE: {
|
|
2158
|
+
en: "Holistic Medicine"
|
|
2159
|
+
},
|
|
2160
|
+
INFORMATICS: {
|
|
2161
|
+
en: "Informatics"
|
|
2162
|
+
},
|
|
2163
|
+
INTERNAL_MEDICINE: {
|
|
2164
|
+
en: "Internal Medicine"
|
|
2165
|
+
},
|
|
2166
|
+
LABOR_AND_DELIVERY: {
|
|
2167
|
+
en: "Labor and Delivery"
|
|
2168
|
+
},
|
|
2169
|
+
MANUAL_THERAPY: {
|
|
2170
|
+
en: "Manual Therapy"
|
|
2171
|
+
},
|
|
2172
|
+
MED_SURG: {
|
|
2173
|
+
en: "Medical-Surgical"
|
|
2174
|
+
},
|
|
2175
|
+
MENTAL_HEALTH: {
|
|
2176
|
+
en: "Mental Health"
|
|
2177
|
+
},
|
|
2178
|
+
NEPHROLOGY: {
|
|
2179
|
+
en: "Nephrology"
|
|
2180
|
+
},
|
|
2181
|
+
NEUROLOGY: {
|
|
2182
|
+
en: "Neurology"
|
|
2183
|
+
},
|
|
2184
|
+
ONCOLOGY: {
|
|
2185
|
+
en: "Oncology"
|
|
2186
|
+
},
|
|
2187
|
+
ORTHOPEDICS: {
|
|
2188
|
+
en: "Orthopedics"
|
|
2189
|
+
},
|
|
2190
|
+
OTOLARYNGOLOGY: {
|
|
2191
|
+
en: "Otolaryngology"
|
|
2192
|
+
},
|
|
2193
|
+
PEDIATRICS: {
|
|
2194
|
+
en: "Pediatrics"
|
|
2195
|
+
},
|
|
2196
|
+
PHYSICAL_AND_REHABILITATION_MEDICINE: {
|
|
2197
|
+
en: "Physical and Rehabilitation Medicine"
|
|
2198
|
+
},
|
|
2199
|
+
PLASTIC_SURGERY: {
|
|
2200
|
+
en: "Plastic Surgery"
|
|
2201
|
+
},
|
|
2202
|
+
PRIMARY_CARE: {
|
|
2203
|
+
en: "Primary Care"
|
|
2204
|
+
},
|
|
2205
|
+
PSYCHIATRY: {
|
|
2206
|
+
en: "Psychiatry"
|
|
2207
|
+
},
|
|
2208
|
+
PULMONOLOGY: {
|
|
2209
|
+
en: "Pulmonology"
|
|
2210
|
+
},
|
|
2211
|
+
RADIOLOGY: {
|
|
2212
|
+
en: "Radiology"
|
|
2213
|
+
},
|
|
2214
|
+
SENSORY: {
|
|
2215
|
+
en: "Sensory"
|
|
2216
|
+
},
|
|
2217
|
+
SPORTS: {
|
|
2218
|
+
en: "Sports"
|
|
2219
|
+
},
|
|
2220
|
+
SURGERY: {
|
|
2221
|
+
en: "Surgery"
|
|
2222
|
+
},
|
|
2223
|
+
TRANSPLANT_SURGERY: {
|
|
2224
|
+
en: "Transplant Surgery"
|
|
2225
|
+
},
|
|
2226
|
+
TRAUMA_MEDICINE: {
|
|
2227
|
+
en: "Trauma Medicine"
|
|
2228
|
+
},
|
|
2229
|
+
URGENT_CARE: {
|
|
2230
|
+
en: "Urgent Care"
|
|
2231
|
+
},
|
|
2232
|
+
UROLOGY: {
|
|
2233
|
+
en: "Urology"
|
|
2234
|
+
},
|
|
2235
|
+
VISION: {
|
|
2236
|
+
en: "Vision"
|
|
2237
|
+
},
|
|
2238
|
+
WOMENS_HEALTH: {
|
|
2239
|
+
en: "Women's Health"
|
|
2240
|
+
},
|
|
2241
|
+
WOUND_AND_BURN_CARE: {
|
|
2242
|
+
en: "Wound and Burn Care"
|
|
2243
|
+
},
|
|
2244
|
+
WOUND_MANAGEMENT: {
|
|
2245
|
+
en: "Wound Management"
|
|
2246
|
+
}
|
|
2247
|
+
};
|
|
2248
|
+
var shiftDisplayText = {
|
|
2249
|
+
TEN_HOUR: {
|
|
2250
|
+
en: "10 Hour"
|
|
2251
|
+
},
|
|
2252
|
+
TWELVE_HOUR: {
|
|
2253
|
+
en: "12 Hour"
|
|
2254
|
+
},
|
|
2255
|
+
EIGHT_HOUR: {
|
|
2256
|
+
en: "8 Hour"
|
|
2257
|
+
},
|
|
2258
|
+
DAY: {
|
|
2259
|
+
en: "Day"
|
|
2260
|
+
},
|
|
2261
|
+
EVENING: {
|
|
2262
|
+
en: "Evening"
|
|
2263
|
+
},
|
|
2264
|
+
FLEXIBLE: {
|
|
2265
|
+
en: "Flexible"
|
|
2266
|
+
},
|
|
2267
|
+
MID_SHIFT: {
|
|
2268
|
+
en: "Mid Shift"
|
|
2269
|
+
},
|
|
2270
|
+
MONDAY_TO_FRIDAY: {
|
|
2271
|
+
en: "Monday to Friday"
|
|
2272
|
+
},
|
|
2273
|
+
NIGHT: {
|
|
2274
|
+
en: "Night"
|
|
2275
|
+
},
|
|
2276
|
+
ON_CALL: {
|
|
2277
|
+
en: "On Call"
|
|
2278
|
+
},
|
|
2279
|
+
WEEKENDS: {
|
|
2280
|
+
en: "Weekends"
|
|
2281
|
+
}
|
|
2282
|
+
};
|
|
2283
|
+
var clinicalSettingDisplayText = {
|
|
2284
|
+
ACUTE_CARE: {
|
|
2285
|
+
en: "Acute Care"
|
|
2286
|
+
},
|
|
2287
|
+
AMBULATORY_SURGERY_CENTER: {
|
|
2288
|
+
en: "Ambulatory Surgery Center"
|
|
2289
|
+
},
|
|
2290
|
+
CLINIC: {
|
|
2291
|
+
en: "Clinic"
|
|
2292
|
+
},
|
|
2293
|
+
HOME_HEALTH: {
|
|
2294
|
+
en: "Home Health"
|
|
2295
|
+
},
|
|
2296
|
+
HOSPITAL: {
|
|
2297
|
+
en: "Hospital"
|
|
2298
|
+
},
|
|
2299
|
+
INPATIENT: {
|
|
2300
|
+
en: "Inpatient"
|
|
2301
|
+
},
|
|
2302
|
+
LONG_TERM_CARE: {
|
|
2303
|
+
en: "Long Term Care"
|
|
2304
|
+
},
|
|
2305
|
+
MED_SPA: {
|
|
2306
|
+
en: "Med Spa"
|
|
2307
|
+
},
|
|
2308
|
+
NURSING_HOME: {
|
|
2309
|
+
en: "Nursing Home"
|
|
2310
|
+
},
|
|
2311
|
+
OFFICE: {
|
|
2312
|
+
en: "Office"
|
|
2313
|
+
},
|
|
2314
|
+
OUTPATIENT: {
|
|
2315
|
+
en: "Outpatient"
|
|
2316
|
+
},
|
|
2317
|
+
PRIVATE_PRACTICE: {
|
|
2318
|
+
en: "Private Practice"
|
|
2319
|
+
},
|
|
2320
|
+
REHAB_CENTER: {
|
|
2321
|
+
en: "Rehab Center"
|
|
2322
|
+
},
|
|
2323
|
+
SCHOOL: {
|
|
2324
|
+
en: "School"
|
|
2325
|
+
},
|
|
2326
|
+
SKILLED_NURSING_FACILITY: {
|
|
2327
|
+
en: "Skilled Nursing Facility"
|
|
2328
|
+
}
|
|
2329
|
+
};
|
|
2330
|
+
var defaultMappings = {
|
|
2331
|
+
employmentType: employmentTypeDisplayText,
|
|
2332
|
+
unitText: unitTextDisplayText,
|
|
2333
|
+
currency: currencyDisplayText,
|
|
2334
|
+
employmentLevel: employmentLevelDisplayText,
|
|
2335
|
+
jobFunction: jobFunctionDisplayText,
|
|
2336
|
+
bestFit: bestFitDisplayText,
|
|
2337
|
+
clinicalSpecialty: clinicalSpecialtyDisplayText,
|
|
2338
|
+
clinicalSetting: clinicalSettingDisplayText,
|
|
2339
|
+
shift: shiftDisplayText
|
|
2340
|
+
};
|
|
2341
|
+
|
|
2342
|
+
// src/types/displayText.errors.tsx
|
|
2343
|
+
var DisplayTextScopeNotFoundError = class extends Error {
|
|
2344
|
+
constructor(scope) {
|
|
2345
|
+
super(`No display text mapping found for scope: ${scope}`);
|
|
2346
|
+
this.name = "DisplayTextScopeNotFoundError";
|
|
2347
|
+
}
|
|
2348
|
+
};
|
|
2349
|
+
var DisplayTextValueNotFoundError = class extends Error {
|
|
2350
|
+
constructor(value, scope) {
|
|
2351
|
+
super(`No display text found for value: '${value}' in scope: '${scope}'`);
|
|
2352
|
+
this.name = "DisplayTextValueNotFoundError";
|
|
2353
|
+
}
|
|
2354
|
+
};
|
|
2355
|
+
|
|
2356
|
+
// src/services/displayText.tsx
|
|
2357
|
+
var DisplayTextService = class {
|
|
2358
|
+
constructor(customMappings) {
|
|
2359
|
+
this.defaultLanguage = "en";
|
|
2360
|
+
this.mappings = {
|
|
2361
|
+
...defaultMappings,
|
|
2362
|
+
// Use all pre-defined mappings as defaults
|
|
2363
|
+
...customMappings
|
|
2364
|
+
// Override with any custom mappings if provided
|
|
2365
|
+
};
|
|
2366
|
+
}
|
|
2367
|
+
async getDisplayText(scope, value, language = this.defaultLanguage) {
|
|
2368
|
+
const scopeMapping = this.mappings[scope];
|
|
2369
|
+
if (!scopeMapping) {
|
|
2370
|
+
throw new DisplayTextScopeNotFoundError(scope);
|
|
2371
|
+
}
|
|
2372
|
+
if (Array.isArray(value)) {
|
|
2373
|
+
const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language));
|
|
2374
|
+
const displayTexts2 = await Promise.all(displayTextPromises);
|
|
2375
|
+
return displayTexts2.filter((v) => !!v).join(", ");
|
|
2376
|
+
}
|
|
2377
|
+
const displayTexts = scopeMapping[value];
|
|
2378
|
+
if (!displayTexts) {
|
|
2379
|
+
throw new DisplayTextValueNotFoundError(value, scope);
|
|
2380
|
+
}
|
|
2381
|
+
return displayTexts[language] || displayTexts[this.defaultLanguage] || value;
|
|
2382
|
+
}
|
|
2383
|
+
};
|
|
2384
|
+
|
|
2385
|
+
// src/hooks/useDisplayText.ts
|
|
2386
|
+
var useDisplayText = (scope, value) => {
|
|
2387
|
+
const [displayText, setDisplayText] = useState7("");
|
|
2388
|
+
const displayService = useMemo2(() => new DisplayTextService(), []);
|
|
2389
|
+
useEffect7(() => {
|
|
2390
|
+
if (!displayService || !value) {
|
|
2391
|
+
setDisplayText("");
|
|
2392
|
+
return;
|
|
2393
|
+
}
|
|
2394
|
+
void (async () => {
|
|
2395
|
+
try {
|
|
2396
|
+
const result = await displayService.getDisplayText(scope, value);
|
|
2397
|
+
if (typeof result === "string") {
|
|
2398
|
+
setDisplayText(result);
|
|
2399
|
+
} else {
|
|
2400
|
+
console.error("Expected a string result, but got:", result);
|
|
2401
|
+
}
|
|
2402
|
+
} catch (error) {
|
|
2403
|
+
if (error instanceof DisplayTextValueNotFoundError) {
|
|
2404
|
+
console.warn("Display text value not found:", value);
|
|
2405
|
+
setDisplayText(String(value));
|
|
2406
|
+
} else {
|
|
2407
|
+
console.error("Unexpected error formatting text:", error);
|
|
2408
|
+
setDisplayText(String(value));
|
|
2409
|
+
}
|
|
2410
|
+
}
|
|
2411
|
+
})();
|
|
2412
|
+
}, [scope, value, displayService]);
|
|
2413
|
+
return displayText;
|
|
2414
|
+
};
|
|
2415
|
+
|
|
2416
|
+
// src/lib/locations.ts
|
|
2417
|
+
function formattedAddress(address) {
|
|
2418
|
+
const { addressLocality, addressRegion, addressCountry } = address;
|
|
2419
|
+
if (addressLocality && addressRegion) return `${addressLocality}, ${addressRegion}`;
|
|
2420
|
+
if (addressRegion && addressCountry) return `${addressRegion}, ${addressCountry}`;
|
|
2421
|
+
if (addressRegion) return addressRegion;
|
|
2422
|
+
if (addressCountry) return addressCountry;
|
|
2423
|
+
return null;
|
|
2424
|
+
}
|
|
2425
|
+
function formattedJobLocation(job) {
|
|
2426
|
+
const address = job.jobLocation && formattedAddress(job.jobLocation);
|
|
2427
|
+
const remote = job.isRemote ? "Remote" : "";
|
|
2428
|
+
return [address, remote].filter(Boolean).join(" | ");
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2431
|
+
// src/components/jobPost/JobPost.tsx
|
|
2432
|
+
import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2433
|
+
function JobPost({
|
|
2434
|
+
job,
|
|
2435
|
+
bannerSrc,
|
|
2436
|
+
avatarSrc,
|
|
2437
|
+
standalone,
|
|
2438
|
+
fallbackHref,
|
|
2439
|
+
actions
|
|
2440
|
+
}) {
|
|
2441
|
+
const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
|
|
2442
|
+
const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
|
|
2443
|
+
const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
|
|
2444
|
+
const formattedLocation = formattedJobLocation(job);
|
|
2445
|
+
const formattedSalary = salaryRange(job.estimatedSalary);
|
|
2446
|
+
const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
|
|
2447
|
+
addSuffix: true
|
|
2448
|
+
});
|
|
2449
|
+
const tags = [
|
|
2450
|
+
!!formattedSalary && {
|
|
2451
|
+
icon: "banknote",
|
|
2452
|
+
name: "salary",
|
|
2453
|
+
label: `${formattedSalary} a year`
|
|
2454
|
+
},
|
|
2455
|
+
!!formattedEmploymentType && {
|
|
2456
|
+
icon: "briefcase-business",
|
|
2457
|
+
name: "employmentType",
|
|
2458
|
+
label: formattedEmploymentType
|
|
2459
|
+
},
|
|
2460
|
+
!!formattedEmploymentLevel && {
|
|
2461
|
+
icon: "circle-user",
|
|
2462
|
+
name: "level",
|
|
2463
|
+
label: formattedEmploymentLevel
|
|
2464
|
+
},
|
|
2465
|
+
!!formattedJobFunction && {
|
|
2466
|
+
icon: "briefcase-business",
|
|
2467
|
+
name: "jobFunction",
|
|
2468
|
+
label: formattedJobFunction
|
|
2469
|
+
},
|
|
2470
|
+
!!formattedLocation && {
|
|
2471
|
+
icon: "map-pin",
|
|
2472
|
+
name: "location",
|
|
2473
|
+
label: formattedLocation
|
|
2474
|
+
}
|
|
2475
|
+
].filter((t) => !!t);
|
|
2476
|
+
return /* @__PURE__ */ jsxs18(
|
|
2477
|
+
"div",
|
|
2478
|
+
{
|
|
2479
|
+
className: cn(
|
|
2480
|
+
"flex flex-col gap-10 pb-4",
|
|
2481
|
+
!standalone && "border-1 rounded-3xl border-grey-5"
|
|
2482
|
+
),
|
|
2483
|
+
children: [
|
|
2484
|
+
/* @__PURE__ */ jsx31(
|
|
2485
|
+
JobHeader,
|
|
2486
|
+
{
|
|
2487
|
+
title: job.title,
|
|
2488
|
+
bannerSrc,
|
|
2489
|
+
avatarName: job.hiringOrganization?.companyName,
|
|
2490
|
+
subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
|
|
2491
|
+
actions,
|
|
2492
|
+
standalone,
|
|
2493
|
+
backFallbackHref: fallbackHref,
|
|
2494
|
+
tags
|
|
2495
|
+
}
|
|
2496
|
+
),
|
|
2497
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-8 px-6", children: [
|
|
2498
|
+
/* @__PURE__ */ jsx31(JobDescription, { description: job.description }),
|
|
2499
|
+
/* @__PURE__ */ jsx31(
|
|
2500
|
+
CompanyTake,
|
|
2501
|
+
{
|
|
2502
|
+
avatarSrc,
|
|
2503
|
+
content: job.hiringOrganization?.companyNDG?.companyNDGTake
|
|
2504
|
+
}
|
|
2505
|
+
),
|
|
2506
|
+
/* @__PURE__ */ jsx31(
|
|
2507
|
+
CompanyInformation,
|
|
2508
|
+
{
|
|
2509
|
+
name: job.hiringOrganization?.companyName ?? "",
|
|
2510
|
+
how: job.hiringOrganization?.companyPhilosophy?.companyHow,
|
|
2511
|
+
mission: job.hiringOrganization?.companyPhilosophy?.mission,
|
|
2512
|
+
wow: job.hiringOrganization?.companyNDG?.companyWow,
|
|
2513
|
+
website: job.hiringOrganization?.companyWebsite
|
|
2514
|
+
}
|
|
2515
|
+
),
|
|
2516
|
+
/* @__PURE__ */ jsx31(
|
|
2517
|
+
CompanyBenefits,
|
|
2518
|
+
{
|
|
2519
|
+
benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.description).filter((d) => d !== void 0)
|
|
2520
|
+
}
|
|
2521
|
+
)
|
|
2522
|
+
] })
|
|
2523
|
+
]
|
|
2524
|
+
}
|
|
2525
|
+
);
|
|
2526
|
+
}
|
|
2527
|
+
|
|
2528
|
+
// src/types/data/job_posting_service_latest.ts
|
|
2529
|
+
var job_posting_service_latest_exports = {};
|
|
2530
|
+
__export(job_posting_service_latest_exports, {
|
|
2531
|
+
BestFitEnum: () => BestFitEnum,
|
|
2532
|
+
ClinicalLicenseEnum: () => ClinicalLicenseEnum,
|
|
2533
|
+
ClinicalSettingEnum: () => ClinicalSettingEnum,
|
|
2534
|
+
ClinicalSpecialtyEnum: () => ClinicalSpecialtyEnum,
|
|
2535
|
+
EmploymentLevelEnum: () => EmploymentLevelEnum,
|
|
2536
|
+
EmploymentTypeEnum: () => EmploymentTypeEnum,
|
|
2537
|
+
JobFunctionEnum: () => JobFunctionEnum,
|
|
2538
|
+
JobLocationTypeEnum: () => JobLocationTypeEnum,
|
|
2539
|
+
PublishStatusEnum: () => PublishStatusEnum2,
|
|
2540
|
+
ShiftEnum: () => ShiftEnum,
|
|
2541
|
+
TypeEnum: () => TypeEnum3,
|
|
2542
|
+
jobPostSchema: () => jobPostSchema
|
|
2543
|
+
});
|
|
2544
|
+
import { z as z3 } from "zod";
|
|
2545
|
+
|
|
2546
|
+
// src/types/data/company_service_latest.ts
|
|
2547
|
+
var company_service_latest_exports = {};
|
|
2548
|
+
__export(company_service_latest_exports, {
|
|
2549
|
+
CategoryEnum: () => CategoryEnum,
|
|
2550
|
+
OfficeTypeEnum: () => OfficeTypeEnum,
|
|
2551
|
+
PublishStatusEnum: () => PublishStatusEnum,
|
|
2552
|
+
TitleEnum: () => TitleEnum,
|
|
2553
|
+
TypeEnum: () => TypeEnum2,
|
|
2554
|
+
companyBenefitsSchema: () => companyBenefitsSchema,
|
|
2555
|
+
companyCareersPageSchema: () => companyCareersPageSchema,
|
|
2556
|
+
companyNdgSchema: () => companyNdgSchema,
|
|
2557
|
+
companyPhilosophySchema: () => companyPhilosophySchema,
|
|
2558
|
+
companySchema: () => companySchema,
|
|
2559
|
+
foundingInformationSchema: () => foundingInformationSchema,
|
|
2560
|
+
imageSchema: () => imageSchema,
|
|
2561
|
+
industrySchema: () => industrySchema,
|
|
2562
|
+
jobBoardSchema: () => jobBoardSchema,
|
|
2563
|
+
ngdMetadataSchema: () => ngdMetadataSchema,
|
|
2564
|
+
officeSchema: () => officeSchema,
|
|
2565
|
+
personSchema: () => personSchema,
|
|
2566
|
+
socialMediaSchema: () => socialMediaSchema
|
|
2567
|
+
});
|
|
2568
|
+
import { z as z2 } from "zod";
|
|
2569
|
+
var TypeEnum2 = z2.enum(["OFFICE"]);
|
|
2570
|
+
var CategoryEnum = z2.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
|
|
2571
|
+
var TitleEnum = z2.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
|
|
2572
|
+
var PublishStatusEnum = z2.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
|
|
2573
|
+
var OfficeTypeEnum = z2.enum(["BRANCH", "HEADQUARTERS", "SATELLITE"]);
|
|
2574
|
+
var imageSchema = z2.object({
|
|
2575
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2576
|
+
url: z2.string()
|
|
2577
|
+
});
|
|
2578
|
+
var socialMediaSchema = z2.object({
|
|
2579
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2580
|
+
url: z2.string().describe("The link to the social media platform"),
|
|
2581
|
+
type: z2.string().describe("The type of social media link")
|
|
2582
|
+
});
|
|
2583
|
+
var companyBenefitsSchema = z2.object({
|
|
2584
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2585
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2586
|
+
name: z2.string(),
|
|
2587
|
+
description: z2.optional(z2.string()),
|
|
2588
|
+
category: CategoryEnum
|
|
2589
|
+
});
|
|
2590
|
+
var industrySchema = z2.lazy(() => z2.object({
|
|
2591
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2592
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2593
|
+
name: z2.string(),
|
|
2594
|
+
description: z2.optional(z2.string()).describe("A brief description of the industry"),
|
|
2595
|
+
onetIndustryId: z2.optional(z2.string()).describe("ONET industry ID"),
|
|
2596
|
+
parent: z2.optional(industrySchema)
|
|
2597
|
+
}));
|
|
2598
|
+
var jobBoardSchema = z2.object({
|
|
2599
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2600
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2601
|
+
name: z2.string().describe("The name of the job board"),
|
|
2602
|
+
description: z2.string().describe("A brief description of the job board"),
|
|
2603
|
+
logo: z2.optional(imageSchema).describe("The logo of the job board"),
|
|
2604
|
+
baseUrl: z2.optional(z2.string()).describe("The base URL of the job board")
|
|
2605
|
+
});
|
|
2606
|
+
var personSchema = z2.object({
|
|
2607
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2608
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2609
|
+
firstName: z2.string().describe("The first name of the person"),
|
|
2610
|
+
lastName: z2.string().describe("The last name of the person"),
|
|
2611
|
+
title: z2.optional(z2.array(z2.string())).describe("The titles of the degree of the person"),
|
|
2612
|
+
slug: z2.string().describe("person slug - should be familyname-givenname-title(s)"),
|
|
2613
|
+
jobTitle: z2.optional(z2.string()).describe("The job title of the person"),
|
|
2614
|
+
isDoctor: z2.optional(z2.boolean()).describe("Is the person a doctor"),
|
|
2615
|
+
isMedical: z2.optional(z2.boolean()).describe("Are they of a medical background?"),
|
|
2616
|
+
isScientist: z2.optional(z2.boolean()).describe("Are they a scientist?"),
|
|
2617
|
+
image: z2.optional(imageSchema).describe("The image of the person"),
|
|
2618
|
+
email: z2.optional(z2.string()).describe("The email of the person"),
|
|
2619
|
+
socialMedia: z2.optional(z2.array(socialMediaSchema)).describe("The social media links of the person"),
|
|
2620
|
+
telephone: z2.optional(z2.string()).describe("The telephone number of the person"),
|
|
2621
|
+
url: z2.optional(z2.string()).describe("The URL of the person"),
|
|
2622
|
+
address: z2.optional(placeSchema).describe("The address of the person")
|
|
2623
|
+
});
|
|
2624
|
+
var companyCareersPageSchema = z2.object({
|
|
2625
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2626
|
+
companyCareersUrl: z2.string().describe("The URL of the company careers page"),
|
|
2627
|
+
companyJobBoard: z2.optional(jobBoardSchema),
|
|
2628
|
+
jobBoardSlug: z2.array(z2.string()),
|
|
2629
|
+
companyBenefits: z2.optional(z2.array(companyBenefitsSchema)).describe("What are the specific benefits of that company. The benefit is generic.")
|
|
2630
|
+
});
|
|
2631
|
+
var companyPhilosophySchema = z2.object({
|
|
2632
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2633
|
+
mission: z2.optional(z2.string()).describe("The mission statement of the company."),
|
|
2634
|
+
companyHow: z2.optional(z2.string()).describe("How does the company achieve its mission"),
|
|
2635
|
+
companyCulture: z2.optional(z2.array(z2.string())).describe("What are some of the culture aspects of this company?")
|
|
2636
|
+
});
|
|
2637
|
+
var companyNdgSchema = z2.object({
|
|
2638
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2639
|
+
companyWow: z2.optional(z2.string()).describe("What is the wow of this company?"),
|
|
2640
|
+
companyNDGTake: z2.optional(z2.string()).describe("What is the NDG POV on this company?"),
|
|
2641
|
+
// Manually edited due to a different naming convention
|
|
2642
|
+
companyBestFit: z2.optional(z2.array(z2.string())),
|
|
2643
|
+
companyInterests: z2.optional(z2.array(z2.string()))
|
|
2644
|
+
});
|
|
2645
|
+
var foundingInformationSchema = z2.object({
|
|
2646
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2647
|
+
foundedYear: z2.optional(z2.string()),
|
|
2648
|
+
foundingCountry: z2.optional(z2.string()),
|
|
2649
|
+
foundingCity: z2.optional(z2.string()),
|
|
2650
|
+
founders: z2.optional(z2.array(personSchema))
|
|
2651
|
+
});
|
|
2652
|
+
var ngdMetadataSchema = z2.object({
|
|
2653
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2654
|
+
lastScraped: z2.optional(z2.string()).describe("Date the last entity was scraped, if applicable"),
|
|
2655
|
+
scraperVersion: z2.optional(z2.string()),
|
|
2656
|
+
postProcessorVersion: z2.optional(z2.string()),
|
|
2657
|
+
uniqueRunId: z2.optional(z2.string()),
|
|
2658
|
+
postProcessorUniqueRunId: z2.optional(z2.string()),
|
|
2659
|
+
shouldThisDocumentBeScraped: z2.optional(z2.boolean())
|
|
2660
|
+
});
|
|
2661
|
+
var companySchema = z2.object({
|
|
2662
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2663
|
+
companyName: z2.string().describe("The name of the company"),
|
|
2664
|
+
slug: z2.string().describe("The NDG specific slug for a company."),
|
|
2665
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2666
|
+
logo: z2.optional(imageSchema).describe("The logo of the company"),
|
|
2667
|
+
companyWebsite: z2.optional(z2.string()).describe("The website of the company"),
|
|
2668
|
+
socialMedia: z2.optional(z2.array(socialMediaSchema)).describe("The social media links of the company"),
|
|
2669
|
+
brandColor: z2.optional(z2.string()).describe("The brand color of the company"),
|
|
2670
|
+
companyCareers: z2.optional(companyCareersPageSchema).describe("Career Specific Information for the company."),
|
|
2671
|
+
companyPhilosophy: z2.optional(companyPhilosophySchema).describe("Company mission,values and how the company achieves its mission."),
|
|
2672
|
+
companyNDG: z2.optional(companyNdgSchema).describe("Next Degree specific information for the company."),
|
|
2673
|
+
// Manually edited due to a different naming convention
|
|
2674
|
+
foundingInfo: z2.optional(foundingInformationSchema),
|
|
2675
|
+
headquartersLocation: z2.optional(placeSchema),
|
|
2676
|
+
employeeEstimate: z2.optional(z2.string()),
|
|
2677
|
+
publishStatus: z2.optional(z2.string()),
|
|
2678
|
+
ngdMetadata: z2.optional(ngdMetadataSchema)
|
|
2679
|
+
});
|
|
2680
|
+
var officeSchema = z2.object({
|
|
2681
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2682
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2683
|
+
name: z2.string().describe("Name or nickname for the office (e.g., 'NYC HQ', 'West Coast Branch')"),
|
|
2684
|
+
officeType: OfficeTypeEnum,
|
|
2685
|
+
companyId: z2.optional(companySchema),
|
|
2686
|
+
geoLocation: z2.optional(placeSchema).describe("Geographical location details: coordinates + postal address"),
|
|
2687
|
+
createdAt: z2.optional(z2.string()),
|
|
2688
|
+
updatedAt: z2.optional(z2.string())
|
|
2689
|
+
});
|
|
2690
|
+
|
|
2691
|
+
// src/types/data/job_posting_service_latest.ts
|
|
2692
|
+
var TypeEnum3 = z3.enum(["JOB_POST"]);
|
|
2693
|
+
var JobLocationTypeEnum = z3.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
|
|
2694
|
+
var EmploymentTypeEnum = z3.enum(["CONTRACT", "FULL_TIME", "INTERNSHIP", "OTHER", "PART_TIME", "PER_DIEM", "TEMPORARY"]);
|
|
2695
|
+
var EmploymentLevelEnum = z3.enum(["DIRECTOR", "ENTRY_LEVEL", "EXECUTIVE", "EXPERIENCED", "INTERN", "MANAGER"]);
|
|
2696
|
+
var JobFunctionEnum = z3.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"]);
|
|
2697
|
+
var PublishStatusEnum2 = z3.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
|
|
2698
|
+
var BestFitEnum = z3.enum(["DENTIST", "DIETICIAN", "DOULA", "MEDICAL_ASSISTANT", "MIDWIFE", "NURSE", "OCCUPATIONAL_THERAPIST", "PHARMACIST", "PHYSICAL_THERAPIST", "PHYSICIAN", "PHYSICIAN_ASSISTANT", "PSYCHOLOGIST", "RADIOLOGIST", "SOCIAL_WORKER", "SPEECH_LANGUAGE_PATHOLOGIST", "SURGEON"]);
|
|
2699
|
+
var ClinicalLicenseEnum = z3.enum(["CNA", "CNM", "CNS", "COTA", "CRNA", "LPN", "LVN", "NP", "OT", "PT", "PTA", "RN"]);
|
|
2700
|
+
var ShiftEnum = z3.enum(["DAY", "EIGHT_HOUR", "EVENING", "FLEXIBLE", "MID_SHIFT", "MONDAY_TO_FRIDAY", "NIGHT", "ON_CALL", "TEN_HOUR", "TWELVE_HOUR", "WEEKENDS"]);
|
|
2701
|
+
var ClinicalSettingEnum = z3.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"]);
|
|
2702
|
+
var ClinicalSpecialtyEnum = z3.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"]);
|
|
2703
|
+
var jobPostSchema = z3.object({
|
|
2704
|
+
version: z3.literal("1.0.0").default("1.0.0"),
|
|
2705
|
+
id: z3.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."),
|
|
2706
|
+
type: z3.string().describe("Document type used within sanity"),
|
|
2707
|
+
createdAt: z3.string().datetime().describe("Time document was created. Autoset by Sanity"),
|
|
2708
|
+
updatedAt: z3.string().datetime().describe("Time document was created. Autoset by Sanity"),
|
|
2709
|
+
dateAdded: z3.optional(z3.string().datetime()).describe("The date the job was added to the platform"),
|
|
2710
|
+
datePosted: z3.optional(z3.string().datetime()).describe("The date the job was published for public viewing"),
|
|
2711
|
+
dateRemoved: z3.optional(z3.string().datetime()).describe("The date the job was removed from public viewing"),
|
|
2712
|
+
validThrough: z3.optional(z3.string().datetime()).describe("The date the job posting is valid through. After this date it will be removed from public viewing"),
|
|
2713
|
+
vacancyCount: z3.optional(z3.number().int()).describe("The number of vacancies for a given job posting"),
|
|
2714
|
+
clientId: z3.string().describe("The ID assigned by the client to a job - normally the same as the GH / Lever / Ashby ID or internal ID"),
|
|
2715
|
+
url: z3.string().describe("The URL of the job to be displayed for users to apply with. Direct job link."),
|
|
2716
|
+
title: z3.string().describe("The title of the job post"),
|
|
2717
|
+
description: z3.string().describe("The description of the job post saved as markdown. Used for rendering the job description."),
|
|
2718
|
+
richTextDescription: z3.optional(z3.string()).describe("The description of the job post saved as rich text"),
|
|
2719
|
+
isClinical: z3.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."),
|
|
2720
|
+
isRemote: z3.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)."),
|
|
2721
|
+
isVerified: z3.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."),
|
|
2722
|
+
isDirectApply: z3.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."),
|
|
2723
|
+
jobLocationType: z3.optional(z3.array(JobLocationTypeEnum)),
|
|
2724
|
+
employmentType: z3.optional(z3.array(EmploymentTypeEnum)),
|
|
2725
|
+
employmentLevel: z3.optional(EmploymentLevelEnum),
|
|
2726
|
+
jobFunction: z3.optional(JobFunctionEnum),
|
|
2727
|
+
publishStatus: PublishStatusEnum2,
|
|
2728
|
+
bestFit: z3.optional(z3.array(BestFitEnum)),
|
|
2729
|
+
clinicalLicense: z3.optional(z3.array(ClinicalLicenseEnum)),
|
|
2730
|
+
shift: z3.optional(z3.array(ShiftEnum)),
|
|
2731
|
+
clinicalSetting: z3.optional(z3.array(ClinicalSettingEnum)),
|
|
2732
|
+
clinicalSpecialty: z3.optional(z3.array(ClinicalSpecialtyEnum)),
|
|
2733
|
+
estimatedSalary: z3.optional(monetaryAmountSchema).describe("Determines the estimated salary for a given job posting"),
|
|
2734
|
+
jobLocation: z3.optional(postalAddressSchema).describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
|
|
2735
|
+
applicableOffices: z3.optional(z3.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."),
|
|
2736
|
+
applicantLocationRequirements: z3.optional(z3.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."),
|
|
2737
|
+
hiringOrganization: z3.optional(companySchema).describe("The organization that is hiring for the role")
|
|
2738
|
+
});
|
|
1258
2739
|
export {
|
|
2740
|
+
Avatar,
|
|
2741
|
+
BackButton,
|
|
1259
2742
|
Badge,
|
|
1260
2743
|
Button,
|
|
1261
2744
|
Checkbox_default as Checkbox,
|
|
1262
2745
|
Chip_default as Chip,
|
|
1263
2746
|
Combobox,
|
|
2747
|
+
CompanyBenefits,
|
|
2748
|
+
CompanyInformation,
|
|
2749
|
+
company_service_latest_exports as CompanyService,
|
|
2750
|
+
CompanyTake,
|
|
1264
2751
|
Counter,
|
|
2752
|
+
Icon,
|
|
1265
2753
|
Input_default as Input,
|
|
2754
|
+
JobDescription,
|
|
2755
|
+
JobHeader,
|
|
2756
|
+
JobPost,
|
|
2757
|
+
job_posting_service_latest_exports as JobPostService,
|
|
1266
2758
|
Label_default as Label,
|
|
2759
|
+
LinkButton,
|
|
1267
2760
|
ListItem_default as ListItem,
|
|
2761
|
+
MapComponent_default as MapComponent,
|
|
1268
2762
|
PlacesQueryInput_default as PlacesQueryInput,
|
|
2763
|
+
ReadMore,
|
|
1269
2764
|
Select_default as Select,
|
|
1270
|
-
|
|
2765
|
+
shared_pickle_output_latest_exports as SharedService,
|
|
2766
|
+
WindowHistoryProvider,
|
|
2767
|
+
cn,
|
|
2768
|
+
fetchLocation,
|
|
2769
|
+
useDisplayText,
|
|
2770
|
+
useWindowHistory
|
|
1271
2771
|
};
|
|
1272
2772
|
//# sourceMappingURL=index.js.map
|