@next-degree/pickle-shared-js 0.9.5 → 0.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/{company_service_sanity-B5FBDl-4.d.ts → company_service_sanity-BZtdt7Df.d.ts} +1743 -1743
  2. package/dist/{company_service_sanity--Aw-Y3Us.d.cts → company_service_sanity-Bedw6Mhk.d.cts} +1743 -1743
  3. package/dist/components/buttons/BackButton.cjs +1 -1
  4. package/dist/components/buttons/BackButton.cjs.map +1 -1
  5. package/dist/components/buttons/BackButton.js +1 -1
  6. package/dist/components/buttons/BackButton.js.map +1 -1
  7. package/dist/components/jobPost/JobDescription.cjs.map +1 -1
  8. package/dist/components/jobPost/JobDescription.js.map +1 -1
  9. package/dist/components/jobPost/JobHeader.cjs +1 -1
  10. package/dist/components/jobPost/JobHeader.cjs.map +1 -1
  11. package/dist/components/jobPost/JobHeader.js +1 -1
  12. package/dist/components/jobPost/JobHeader.js.map +1 -1
  13. package/dist/components/jobPost/JobPost.cjs +358 -12
  14. package/dist/components/jobPost/JobPost.cjs.map +1 -1
  15. package/dist/components/jobPost/JobPost.d.cts +3 -2
  16. package/dist/components/jobPost/JobPost.d.ts +3 -2
  17. package/dist/components/jobPost/JobPost.js +363 -12
  18. package/dist/components/jobPost/JobPost.js.map +1 -1
  19. package/dist/components/ui/Button.cjs +4 -2
  20. package/dist/components/ui/Button.cjs.map +1 -1
  21. package/dist/components/ui/Button.d.cts +2 -2
  22. package/dist/components/ui/Button.d.ts +2 -2
  23. package/dist/components/ui/Button.js +2 -1
  24. package/dist/components/ui/Button.js.map +1 -1
  25. package/dist/components/ui/Combobox.cjs +20 -20
  26. package/dist/components/ui/Combobox.cjs.map +1 -1
  27. package/dist/components/ui/Combobox.d.cts +1 -0
  28. package/dist/components/ui/Combobox.d.ts +1 -0
  29. package/dist/components/ui/Combobox.js +18 -18
  30. package/dist/components/ui/Combobox.js.map +1 -1
  31. package/dist/components/ui/InputOtp.cjs +8 -1
  32. package/dist/components/ui/InputOtp.cjs.map +1 -1
  33. package/dist/components/ui/InputOtp.js +8 -1
  34. package/dist/components/ui/InputOtp.js.map +1 -1
  35. package/dist/components/ui/ReadMore.cjs.map +1 -1
  36. package/dist/components/ui/ReadMore.js.map +1 -1
  37. package/dist/components/ui/buttonShadcn.d.cts +1 -1
  38. package/dist/components/ui/buttonShadcn.d.ts +1 -1
  39. package/dist/{displayText-4cJ7-3Mw.d.cts → displayText-BIzvCN9H.d.cts} +1 -1
  40. package/dist/{displayText-CBIWVZVw.d.ts → displayText-BtujjCCA.d.ts} +1 -1
  41. package/dist/hooks/useDisplayText.d.cts +2 -2
  42. package/dist/hooks/useDisplayText.d.ts +2 -2
  43. package/dist/index.cjs +587 -167
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.cts +2 -2
  46. package/dist/index.d.ts +2 -2
  47. package/dist/index.js +587 -167
  48. package/dist/index.js.map +1 -1
  49. package/dist/{job_posting_service_sanity-CeX9tlpb.d.ts → job_posting_service_sanity-B6APEfOO.d.ts} +1795 -1795
  50. package/dist/{job_posting_service_sanity-D5Znr6Ba.d.cts → job_posting_service_sanity-CLQAVXTy.d.cts} +1795 -1795
  51. package/dist/lib/locations.d.cts +1 -1
  52. package/dist/lib/locations.d.ts +1 -1
  53. package/dist/lib/mappings.d.cts +2 -2
  54. package/dist/lib/mappings.d.ts +2 -2
  55. package/dist/lib/salaryRange.cjs +355 -11
  56. package/dist/lib/salaryRange.cjs.map +1 -1
  57. package/dist/lib/salaryRange.d.cts +2 -1
  58. package/dist/lib/salaryRange.d.ts +2 -1
  59. package/dist/lib/salaryRange.js +361 -11
  60. package/dist/lib/salaryRange.js.map +1 -1
  61. package/dist/services/displayText.d.cts +2 -2
  62. package/dist/services/displayText.d.ts +2 -2
  63. package/dist/styles/globals.css +9 -0
  64. package/dist/styles/globals.css.map +1 -1
  65. package/dist/types/data/job_posting_service_latest.d.cts +1 -1
  66. package/dist/types/data/job_posting_service_latest.d.ts +1 -1
  67. package/dist/types/index.d.cts +5 -5
  68. package/dist/types/index.d.ts +5 -5
  69. package/dist/types/latest/company_service_latest.d.cts +1 -1
  70. package/dist/types/latest/company_service_latest.d.ts +1 -1
  71. package/dist/types/latest/custom/company_service_sanity.d.cts +3 -3
  72. package/dist/types/latest/custom/company_service_sanity.d.ts +3 -3
  73. package/dist/types/latest/custom/custom_sanity_models.d.cts +2 -2
  74. package/dist/types/latest/custom/custom_sanity_models.d.ts +2 -2
  75. package/dist/types/latest/custom/job_posting_service_sanity.d.cts +3 -3
  76. package/dist/types/latest/custom/job_posting_service_sanity.d.ts +3 -3
  77. package/dist/types/latest/job_posting_service_latest.d.cts +1 -1
  78. package/dist/types/latest/job_posting_service_latest.d.ts +1 -1
  79. package/dist/types/latest/shared_pickle_output_latest.d.cts +1 -1
  80. package/dist/types/latest/shared_pickle_output_latest.d.ts +1 -1
  81. package/package.json +1 -1
  82. package/dist/{company_service_latest-DFxfjA2x.d.cts → company_service_latest-BmiEQ4dO.d.cts} +1001 -1001
  83. package/dist/{company_service_latest-DFxfjA2x.d.ts → company_service_latest-BmiEQ4dO.d.ts} +1001 -1001
  84. package/dist/{job_posting_service_latest-B5tqLSgo.d.cts → job_posting_service_latest-C6TSGfcJ.d.cts} +986 -986
  85. package/dist/{job_posting_service_latest-B5tqLSgo.d.ts → job_posting_service_latest-C6TSGfcJ.d.ts} +986 -986
  86. package/dist/{job_posting_service_latest-DOGQ9tEu.d.cts → job_posting_service_latest-duSSyFvo.d.cts} +1 -1
  87. package/dist/{job_posting_service_latest-DOGQ9tEu.d.ts → job_posting_service_latest-duSSyFvo.d.ts} +1 -1
  88. package/dist/{shared_pickle_output_latest-Bwfg5B4p.d.cts → shared_pickle_output_latest--XZhOUyE.d.cts} +48 -48
  89. package/dist/{shared_pickle_output_latest-Bwfg5B4p.d.ts → shared_pickle_output_latest--XZhOUyE.d.ts} +48 -48
package/dist/index.cjs CHANGED
@@ -39,7 +39,7 @@ __export(index_exports, {
39
39
  Combobox: () => Combobox,
40
40
  CompanyBenefits: () => CompanyBenefits,
41
41
  CompanyInformation: () => CompanyInformation,
42
- CompanyService: () => company_service_latest_exports,
42
+ CompanyService: () => company_service_latest_exports2,
43
43
  CompanyTake: () => CompanyTake,
44
44
  Counter: () => Counter,
45
45
  DatePicker: () => DatePicker,
@@ -49,7 +49,7 @@ __export(index_exports, {
49
49
  JobDescription: () => JobDescription,
50
50
  JobHeader: () => JobHeader,
51
51
  JobPost: () => JobPost,
52
- JobPostService: () => job_posting_service_latest_exports,
52
+ JobPostService: () => job_posting_service_latest_exports2,
53
53
  Label: () => Label_default,
54
54
  LinkButton: () => LinkButton,
55
55
  ListItem: () => ListItem_default,
@@ -58,7 +58,7 @@ __export(index_exports, {
58
58
  Radio: () => Radio,
59
59
  ReadMore: () => ReadMore,
60
60
  Select: () => Select_default,
61
- SharedService: () => shared_pickle_output_latest_exports,
61
+ SharedService: () => shared_pickle_output_latest_exports2,
62
62
  Switch: () => Switch,
63
63
  WindowHistoryProvider: () => WindowHistoryProvider,
64
64
  cn: () => cn,
@@ -1175,6 +1175,7 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
1175
1175
  classNames,
1176
1176
  multiselect,
1177
1177
  placeholder,
1178
+ error,
1178
1179
  variant = "default",
1179
1180
  size,
1180
1181
  icon,
@@ -1325,7 +1326,8 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
1325
1326
  children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react10.CircleX, { className: "h-4 w-4 text-green-100" })
1326
1327
  }
1327
1328
  )
1328
- ] })
1329
+ ] }),
1330
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ErrorMessage_default, { message: error })
1329
1331
  ] });
1330
1332
  });
1331
1333
  Combobox.displayName = "Combobox";
@@ -1748,7 +1750,14 @@ var InputOtp = (0, import_react12.forwardRef)(
1748
1750
  maxLength: digits,
1749
1751
  "data-testid": `input-otp-element-${props.id}`,
1750
1752
  ...props,
1751
- children: [...Array(digits)].map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputOTPGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputOTPSlot, { index, error: Boolean(error) }) }, index))
1753
+ children: [...Array(digits)].map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputOTPGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1754
+ InputOTPSlot,
1755
+ {
1756
+ "data-testid": `input-otp-slot-${index}`,
1757
+ index,
1758
+ error: Boolean(error)
1759
+ }
1760
+ ) }, index))
1752
1761
  }
1753
1762
  ) }),
1754
1763
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ErrorMessage_default, { message: error })
@@ -2136,7 +2145,7 @@ var import_jsx_runtime37 = require("react/jsx-runtime");
2136
2145
  function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2137
2146
  const { history } = useWindowHistory();
2138
2147
  const router = (0, import_navigation2.useRouter)();
2139
- const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
2148
+ const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(new URL(r).pathname));
2140
2149
  const goBack = () => {
2141
2150
  const previous = history[history.length - 2];
2142
2151
  if (history.length > 1 && isAcceptedRoute(previous)) {
@@ -2820,7 +2829,10 @@ function formattedJobLocation(job) {
2820
2829
  return [address, remote].filter(Boolean).join(" | ");
2821
2830
  }
2822
2831
 
2823
- // src/types/data/shared_pickle_output_latest.ts
2832
+ // src/types/latest/company_service_latest.ts
2833
+ var import_zod2 = require("zod");
2834
+
2835
+ // src/types/latest/shared_pickle_output_latest.ts
2824
2836
  var shared_pickle_output_latest_exports = {};
2825
2837
  __export(shared_pickle_output_latest_exports, {
2826
2838
  CurrencyEnum: () => CurrencyEnum,
@@ -2896,148 +2908,7 @@ var imageSchema = import_zod.z.object({
2896
2908
  asset: import_zod.z.optional(imageAssetSchema).describe("The asset for the image")
2897
2909
  });
2898
2910
 
2899
- // src/lib/salaryRange.ts
2900
- function salaryRange(salary) {
2901
- if (!salary) return null;
2902
- const min = salary.minValue;
2903
- const max = salary.maxValue;
2904
- const single = salary.singleValue;
2905
- const signs = {
2906
- [CurrencyEnum.Values.USD]: "$",
2907
- [CurrencyEnum.Values.GBP]: "\xA3",
2908
- [CurrencyEnum.Values.EUR]: "\u20AC"
2909
- };
2910
- const sign = signs[salary.currency ?? CurrencyEnum.Values.USD];
2911
- if (min == null && max == null && single == null) return null;
2912
- if (single != null) return sign + single.toLocaleString();
2913
- if (min === max) return sign + min?.toLocaleString();
2914
- if (min != null && max != null)
2915
- return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString();
2916
- return null;
2917
- }
2918
-
2919
- // src/components/jobPost/JobPost.tsx
2920
- var import_jsx_runtime39 = require("react/jsx-runtime");
2921
- function JobPost({
2922
- job,
2923
- bannerSrc,
2924
- avatarSrc,
2925
- standalone,
2926
- avatarHref,
2927
- fallbackHref,
2928
- actions
2929
- }) {
2930
- const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
2931
- const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
2932
- const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
2933
- const formattedLocation = formattedJobLocation(job);
2934
- const formattedSalary = salaryRange(job.estimatedSalary);
2935
- const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
2936
- addSuffix: true
2937
- });
2938
- const tags = [
2939
- !!formattedSalary && {
2940
- icon: "banknote",
2941
- name: "salary",
2942
- label: `${formattedSalary} a year`
2943
- },
2944
- !!formattedEmploymentType && {
2945
- icon: "briefcase-business",
2946
- name: "employmentType",
2947
- label: formattedEmploymentType
2948
- },
2949
- !!formattedEmploymentLevel && {
2950
- icon: "circle-user",
2951
- name: "level",
2952
- label: formattedEmploymentLevel
2953
- },
2954
- !!formattedJobFunction && {
2955
- icon: "briefcase-business",
2956
- name: "jobFunction",
2957
- label: formattedJobFunction
2958
- },
2959
- !!formattedLocation && {
2960
- icon: "map-pin",
2961
- name: "location",
2962
- label: formattedLocation
2963
- }
2964
- ].filter((t) => !!t);
2965
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2966
- "div",
2967
- {
2968
- className: cn(
2969
- "flex flex-col gap-10 pb-4",
2970
- !standalone && "border-1 rounded-3xl border-grey-5"
2971
- ),
2972
- children: [
2973
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2974
- JobHeader,
2975
- {
2976
- title: job.title,
2977
- bannerSrc,
2978
- avatarName: job.hiringOrganization?.companyName,
2979
- avatarSrc: job.hiringOrganization?.logo?.asset?.url,
2980
- subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
2981
- actions,
2982
- standalone,
2983
- avatarHref,
2984
- backFallbackHref: fallbackHref,
2985
- tags
2986
- }
2987
- ),
2988
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-8 px-6", children: [
2989
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(JobDescription, { description: job.description }),
2990
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2991
- CompanyTake,
2992
- {
2993
- avatarSrc,
2994
- content: job.hiringOrganization?.companyNDG?.companyNDGTake
2995
- }
2996
- ),
2997
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2998
- CompanyInformation,
2999
- {
3000
- name: job.hiringOrganization?.companyName ?? "",
3001
- how: job.hiringOrganization?.companyPhilosophy?.companyHow,
3002
- mission: job.hiringOrganization?.companyPhilosophy?.companyMission,
3003
- wow: job.hiringOrganization?.companyNDG?.companyWow,
3004
- website: job.hiringOrganization?.companyWebsite
3005
- }
3006
- ),
3007
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3008
- CompanyBenefits,
3009
- {
3010
- benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
3011
- }
3012
- )
3013
- ] })
3014
- ]
3015
- }
3016
- );
3017
- }
3018
-
3019
- // src/types/data/company_service_latest.ts
3020
- var company_service_latest_exports = {};
3021
- __export(company_service_latest_exports, {
3022
- CategoryEnum: () => CategoryEnum,
3023
- OfficeTypeEnum: () => OfficeTypeEnum,
3024
- PublishStatusEnum: () => PublishStatusEnum,
3025
- TitleEnum: () => TitleEnum,
3026
- TypeEnum: () => TypeEnum2,
3027
- companyBenefitsSchema: () => companyBenefitsSchema,
3028
- companyCareersSchema: () => companyCareersSchema,
3029
- companyNdgSchema: () => companyNdgSchema,
3030
- companyPhilosophySchema: () => companyPhilosophySchema,
3031
- companySchema: () => companySchema,
3032
- foundingInformationSchema: () => foundingInformationSchema,
3033
- industrySchema: () => industrySchema,
3034
- jobBoardSchema: () => jobBoardSchema,
3035
- ngdMetadataSchema: () => ngdMetadataSchema,
3036
- officeSchema: () => officeSchema,
3037
- personSchema: () => personSchema,
3038
- socialMediaSchema: () => socialMediaSchema
3039
- });
3040
- var import_zod2 = require("zod");
2911
+ // src/types/latest/company_service_latest.ts
3041
2912
  var TypeEnum2 = import_zod2.z.enum(["OFFICE"]);
3042
2913
  var CategoryEnum = import_zod2.z.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
3043
2914
  var TitleEnum = import_zod2.z.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
@@ -3108,7 +2979,7 @@ var companyNdgSchema = import_zod2.z.object({
3108
2979
  version: import_zod2.z.literal("1.0.0").default("1.0.0"),
3109
2980
  type: import_zod2.z.string().describe("Document type used for schema"),
3110
2981
  companyWow: import_zod2.z.optional(import_zod2.z.string()).describe("What is the wow of this company?"),
3111
- companyNDGTake: import_zod2.z.optional(import_zod2.z.string()).describe("What is the NDG POV on this company?"),
2982
+ companyNdgTake: import_zod2.z.optional(import_zod2.z.string()).describe("What is the NDG POV on this company?"),
3112
2983
  companyBestFit: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())),
3113
2984
  companyInterests: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string()))
3114
2985
  });
@@ -3144,7 +3015,7 @@ var companySchema = import_zod2.z.object({
3144
3015
  brandColor: import_zod2.z.optional(import_zod2.z.string()).describe("The brand color of the company"),
3145
3016
  companyCareers: import_zod2.z.optional(companyCareersSchema).describe("Career Specific Information for the company."),
3146
3017
  companyPhilosophy: import_zod2.z.optional(companyPhilosophySchema).describe("Company mission,values and how the company achieves its mission."),
3147
- companyNDG: import_zod2.z.optional(companyNdgSchema).describe("Next Degree specific information for the company."),
3018
+ companyNdg: import_zod2.z.optional(companyNdgSchema).describe("Next Degree specific information for the company."),
3148
3019
  foundingInfo: import_zod2.z.optional(foundingInformationSchema),
3149
3020
  headquartersLocation: import_zod2.z.optional(placeSchema),
3150
3021
  employeeEstimate: import_zod2.z.optional(import_zod2.z.string()),
@@ -3162,22 +3033,7 @@ var officeSchema = import_zod2.z.object({
3162
3033
  updatedAt: import_zod2.z.optional(import_zod2.z.string())
3163
3034
  });
3164
3035
 
3165
- // src/types/data/job_posting_service_latest.ts
3166
- var job_posting_service_latest_exports = {};
3167
- __export(job_posting_service_latest_exports, {
3168
- BestFitEnum: () => BestFitEnum,
3169
- ClinicalLicenseEnum: () => ClinicalLicenseEnum,
3170
- ClinicalSettingEnum: () => ClinicalSettingEnum,
3171
- ClinicalSpecialtyEnum: () => ClinicalSpecialtyEnum,
3172
- EmploymentLevelEnum: () => EmploymentLevelEnum,
3173
- EmploymentTypeEnum: () => EmploymentTypeEnum,
3174
- JobFunctionEnum: () => JobFunctionEnum,
3175
- JobLocationTypeEnum: () => JobLocationTypeEnum,
3176
- PublishStatusEnum: () => PublishStatusEnum2,
3177
- ShiftEnum: () => ShiftEnum,
3178
- TypeEnum: () => TypeEnum3,
3179
- jobPostSchema: () => jobPostSchema
3180
- });
3036
+ // src/types/latest/job_posting_service_latest.ts
3181
3037
  var import_zod3 = require("zod");
3182
3038
  var TypeEnum3 = import_zod3.z.enum(["JOB_POST"]);
3183
3039
  var JobLocationTypeEnum = import_zod3.z.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
@@ -3226,6 +3082,570 @@ var jobPostSchema = import_zod3.z.object({
3226
3082
  applicantLocationRequirements: import_zod3.z.optional(import_zod3.z.array(placeSchema)).describe("The geographic location(s) in which employees may be located for to be eligible for the job. The job description must clearly state that the applicant may be located in certain geographical location(s). This property is required if applicants may be located in one or more geographic locations and the job is 100% remote."),
3227
3083
  hiringOrganization: import_zod3.z.optional(companySchema).describe("The organization that is hiring for the role")
3228
3084
  });
3085
+
3086
+ // src/types/latest/custom/company_service_sanity.ts
3087
+ var import_zod5 = require("zod");
3088
+
3089
+ // src/types/latest/custom/custom_sanity_models.ts
3090
+ var import_zod4 = require("zod");
3091
+ var sanityReferenceSchema = import_zod4.z.object({
3092
+ _ref: import_zod4.z.string(),
3093
+ _type: import_zod4.z.string(),
3094
+ _key: import_zod4.z.optional(import_zod4.z.string())
3095
+ });
3096
+ var sanitySlugSchema = import_zod4.z.object({
3097
+ current: import_zod4.z.string(),
3098
+ _type: import_zod4.z.string(),
3099
+ _key: import_zod4.z.optional(import_zod4.z.string())
3100
+ });
3101
+
3102
+ // src/types/latest/custom/company_service_sanity.ts
3103
+ var foundingInformationSchema2 = foundingInformationSchema.extend({
3104
+ _type: import_zod5.z.string().describe("Document type used within sanity").default("companyFounding"),
3105
+ founders: import_zod5.z.optional(import_zod5.z.union([import_zod5.z.array(personSchema), import_zod5.z.array(sanityReferenceSchema)])).nullable(),
3106
+ founderList: import_zod5.z.optional(import_zod5.z.union([import_zod5.z.array(personSchema), import_zod5.z.array(sanityReferenceSchema)])).nullable()
3107
+ }).omit({ type: true }).strict().transform((data) => ({
3108
+ ...data,
3109
+ type: data._type,
3110
+ founders: data.founders || data.founderList || void 0
3111
+ })).transform(({ _type, founderList, ...rest }) => rest);
3112
+ var companyNdgSchema2 = companyNdgSchema.extend({
3113
+ _type: import_zod5.z.string().describe("Document type used within sanity").default("companyNDG"),
3114
+ companyNDGTake: import_zod5.z.string().nullable().describe("What is the NDG POV on this company?")
3115
+ }).omit({ type: true }).strict().transform((data) => ({
3116
+ ...data,
3117
+ type: data._type,
3118
+ companyNdgTake: data.companyNDGTake
3119
+ })).transform(({ _type, companyNDGTake, ...rest }) => rest);
3120
+ var ngdMetadataSchema2 = ngdMetadataSchema.extend({
3121
+ _type: import_zod5.z.string().describe("Document type used within sanity").default("ndgMetadata")
3122
+ }).omit({ type: true }).transform((data) => ({
3123
+ ...data,
3124
+ type: data._type
3125
+ })).transform(({ _type, ...rest }) => rest);
3126
+ var companyPhilosophySchema2 = companyPhilosophySchema.extend({
3127
+ _type: import_zod5.z.string().describe("Document type used within sanity").default("companyPhilosophy")
3128
+ }).omit({ type: true }).strict().transform((data) => ({
3129
+ ...data,
3130
+ type: data._type
3131
+ })).transform(({ _type, ...rest }) => rest);
3132
+ var companyCareersSchema2 = companyCareersSchema.extend({
3133
+ _type: import_zod5.z.string().describe("Document type used within sanity").default("companyCareers"),
3134
+ companyBenefits: import_zod5.z.optional(import_zod5.z.array(
3135
+ import_zod5.z.union([companyBenefitsSchema, sanityReferenceSchema])
3136
+ )).nullable().describe("What are the specific benefits of that company. The benefit is generic."),
3137
+ jobBoard: import_zod5.z.union([jobBoardSchema, sanityReferenceSchema]).nullable(),
3138
+ jobBoardSlug: import_zod5.z.optional(import_zod5.z.union([import_zod5.z.array(import_zod5.z.string()), import_zod5.z.array(sanitySlugSchema)]))
3139
+ }).omit({ type: true }).strict().transform((data) => ({
3140
+ ...data,
3141
+ type: data._type
3142
+ })).transform(({ _type, ...rest }) => rest);
3143
+ var companySchema2 = companySchema.extend({
3144
+ _id: import_zod5.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
3145
+ _rev: import_zod5.z.string().nullable().describe("Revision number"),
3146
+ _type: import_zod5.z.string().describe("Document type used within sanity").default("company"),
3147
+ _createdAt: import_zod5.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3148
+ _updatedAt: import_zod5.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3149
+ companyCareers: companyCareersSchema2.nullable().describe("Career Specific Information for the company."),
3150
+ companyPhilosophy: companyPhilosophySchema2.nullable().describe("Company mission,values and how the company achieves its mission."),
3151
+ companyNDG: companyNdgSchema2.nullable().describe("Next Degree specific information for the company."),
3152
+ foundingInfo: foundingInformationSchema2.nullable(),
3153
+ slug: import_zod5.z.union([import_zod5.z.string(), sanitySlugSchema]).describe("The NDG specific slug for a company."),
3154
+ ndgMetadata: ngdMetadataSchema2.nullable(),
3155
+ logo: import_zod5.z.union([imageSchema, import_zod5.z.record(import_zod5.z.any())]).nullable().describe("The logo of the company"),
3156
+ //Deprecated Models
3157
+ logoImageURL: import_zod5.z.optional(import_zod5.z.string()).describe("The logo of the company"),
3158
+ industryList: import_zod5.z.optional(import_zod5.z.array(sanityReferenceSchema)).describe("The industry of the company")
3159
+ }).omit({ type: true, id: true, createdAt: true, updatedAt: true }).strict().transform((data) => ({
3160
+ ...data,
3161
+ type: data._type,
3162
+ id: data._id,
3163
+ createdAt: data._createdAt,
3164
+ updatedAt: data._updatedAt,
3165
+ rev: data._rev
3166
+ })).transform(({ _type, _id, _rev, _createdAt, _updatedAt, ...rest }) => rest);
3167
+
3168
+ // src/types/latest/custom/job_posting_service_sanity.ts
3169
+ var import_zod6 = require("zod");
3170
+ var JobPostTypeEnum = import_zod6.z.enum(["jobPost"]);
3171
+ var MonetaryAmountTypeEnum = import_zod6.z.enum(["monetaryAmount"]);
3172
+ var postalAddressSchema2 = postalAddressSchema.extend({
3173
+ _type: import_zod6.z.string().describe("Document type used within sanity").default("address")
3174
+ }).omit({ type: true }).strict().transform((data) => ({
3175
+ ...data,
3176
+ type: data._type
3177
+ })).transform(({ _type, ...rest }) => rest);
3178
+ var quantitativeValueSchema2 = quantitativeValueSchema.extend({
3179
+ _type: import_zod6.z.string().describe("Document type used within sanity").default("quantitativeValue")
3180
+ }).omit({ type: true }).strict().transform((data) => ({
3181
+ ...data,
3182
+ type: data._type
3183
+ })).transform(({ _type, ...rest }) => rest);
3184
+ var monetaryAmountSchema2 = monetaryAmountSchema.extend({
3185
+ _type: import_zod6.z.string().describe("Document type used within sanity").default("monetaryAmount"),
3186
+ value: quantitativeValueSchema2.optional().describe("The quantitative_value for a given salary")
3187
+ }).omit({ type: true }).strict().transform((data) => ({
3188
+ ...data,
3189
+ type: data._type
3190
+ })).transform(({ _type, ...rest }) => rest);
3191
+ var jobPostSchema2 = jobPostSchema.extend({
3192
+ // Override base fields with Sanity-specific fields
3193
+ _id: import_zod6.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed.").regex(/^ndg-.*-.*$/),
3194
+ _rev: import_zod6.z.string().optional().describe("Revision number"),
3195
+ _type: import_zod6.z.string().describe("Document type used within sanity").default("jobPost"),
3196
+ _createdAt: import_zod6.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3197
+ _updatedAt: import_zod6.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3198
+ // Override fields with new schemas
3199
+ estimatedSalary: monetaryAmountSchema2.optional().describe("Determines the estimated salary for a given job posting"),
3200
+ jobLocation: postalAddressSchema2.optional().describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
3201
+ // Add Sanity-specific fields
3202
+ ndgMetadata: import_zod6.z.record(import_zod6.z.any()).optional(),
3203
+ ndgID: import_zod6.z.string().optional(),
3204
+ hiringOrganization: import_zod6.z.optional(import_zod6.z.union([sanityReferenceSchema, companySchema])),
3205
+ raw: import_zod6.z.record(import_zod6.z.any()).optional(),
3206
+ isLoaded: import_zod6.z.boolean().default(false),
3207
+ isVerified: import_zod6.z.boolean().default(false),
3208
+ needsReview: import_zod6.z.boolean().default(false),
3209
+ schema_version: import_zod6.z.string().optional(),
3210
+ origin: import_zod6.z.string().optional(),
3211
+ temp: import_zod6.z.record(import_zod6.z.any()).optional(),
3212
+ applicationType: import_zod6.z.string().optional(),
3213
+ // Override clientId to use Sanity naming convention
3214
+ clientID: import_zod6.z.string()
3215
+ }).omit({ type: true, id: true, createdAt: true, updatedAt: true, clientId: true }).transform((data) => ({
3216
+ ...data,
3217
+ type: data._type,
3218
+ id: data._id,
3219
+ createdAt: data._createdAt,
3220
+ updatedAt: data._updatedAt,
3221
+ rev: data._rev
3222
+ })).transform(({ _type, _id, _rev, _createdAt, _updatedAt, ...rest }) => rest);
3223
+
3224
+ // src/lib/salaryRange.ts
3225
+ var CurrencyEnum2 = shared_pickle_output_latest_exports.CurrencyEnum;
3226
+ function salaryRange(salary) {
3227
+ if (!salary) return null;
3228
+ let min = salary.minValue;
3229
+ let max = salary.maxValue;
3230
+ let single = salary.singleValue;
3231
+ let value = salary.value;
3232
+ let unitText = "YEAR";
3233
+ const signs = {
3234
+ [CurrencyEnum2.Values.USD]: "$",
3235
+ [CurrencyEnum2.Values.GBP]: "\xA3",
3236
+ [CurrencyEnum2.Values.EUR]: "\u20AC"
3237
+ };
3238
+ const sign = signs[salary.currency ?? CurrencyEnum2.Values.USD];
3239
+ if (value != null && typeof value === "object") {
3240
+ min = value.minValue;
3241
+ max = value.maxValue;
3242
+ single = value.value;
3243
+ unitText = value.unitText;
3244
+ }
3245
+ if (unitText === "YEAR") unitText = "per year";
3246
+ if (unitText === "MONTH") unitText = "per month";
3247
+ if (unitText === "WEEK") unitText = "per week";
3248
+ if (unitText === "DAY") unitText = "per day";
3249
+ if (unitText === "PER_ACTIVITY") unitText = "per activity";
3250
+ if (unitText === "HOUR") unitText = "per hour";
3251
+ if (min == null && max == null && single == null) return null;
3252
+ if (single != null) return sign + single.toLocaleString() + " " + unitText;
3253
+ if (min === max) return sign + min?.toLocaleString() + " " + unitText;
3254
+ if (min != null && max != null)
3255
+ return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString() + " " + unitText;
3256
+ return null;
3257
+ }
3258
+
3259
+ // src/components/jobPost/JobPost.tsx
3260
+ var import_jsx_runtime39 = require("react/jsx-runtime");
3261
+ function JobPost({
3262
+ job,
3263
+ bannerSrc,
3264
+ avatarSrc,
3265
+ standalone,
3266
+ avatarHref,
3267
+ fallbackHref,
3268
+ backAcceptedRoutes,
3269
+ actions
3270
+ }) {
3271
+ const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
3272
+ const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
3273
+ const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
3274
+ const formattedLocation = formattedJobLocation(job);
3275
+ const formattedSalary = salaryRange(job.estimatedSalary);
3276
+ const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
3277
+ addSuffix: true
3278
+ });
3279
+ const tags = [
3280
+ !!formattedSalary && {
3281
+ icon: "banknote",
3282
+ name: "salary",
3283
+ label: `${formattedSalary} a year`
3284
+ },
3285
+ !!formattedEmploymentType && {
3286
+ icon: "briefcase-business",
3287
+ name: "employmentType",
3288
+ label: formattedEmploymentType
3289
+ },
3290
+ !!formattedEmploymentLevel && {
3291
+ icon: "circle-user",
3292
+ name: "level",
3293
+ label: formattedEmploymentLevel
3294
+ },
3295
+ !!formattedJobFunction && {
3296
+ icon: "briefcase-business",
3297
+ name: "jobFunction",
3298
+ label: formattedJobFunction
3299
+ },
3300
+ !!formattedLocation && {
3301
+ icon: "map-pin",
3302
+ name: "location",
3303
+ label: formattedLocation
3304
+ }
3305
+ ].filter((t) => !!t);
3306
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
3307
+ "div",
3308
+ {
3309
+ className: cn(
3310
+ "flex flex-col gap-10 pb-4",
3311
+ !standalone && "border-1 rounded-3xl border-grey-5"
3312
+ ),
3313
+ children: [
3314
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3315
+ JobHeader,
3316
+ {
3317
+ title: job.title,
3318
+ bannerSrc,
3319
+ avatarName: job.hiringOrganization?.companyName,
3320
+ avatarSrc: job.hiringOrganization?.logo?.asset?.url,
3321
+ subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
3322
+ actions,
3323
+ standalone,
3324
+ avatarHref,
3325
+ backFallbackHref: fallbackHref,
3326
+ backAcceptedRoutes,
3327
+ tags
3328
+ }
3329
+ ),
3330
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-8 px-6", children: [
3331
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(JobDescription, { description: job.description }),
3332
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3333
+ CompanyTake,
3334
+ {
3335
+ avatarSrc,
3336
+ content: job.hiringOrganization?.companyNDG?.companyNDGTake
3337
+ }
3338
+ ),
3339
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3340
+ CompanyInformation,
3341
+ {
3342
+ name: job.hiringOrganization?.companyName ?? "",
3343
+ how: job.hiringOrganization?.companyPhilosophy?.companyHow,
3344
+ mission: job.hiringOrganization?.companyPhilosophy?.companyMission,
3345
+ wow: job.hiringOrganization?.companyNDG?.companyWow,
3346
+ website: job.hiringOrganization?.companyWebsite
3347
+ }
3348
+ ),
3349
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3350
+ CompanyBenefits,
3351
+ {
3352
+ benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
3353
+ }
3354
+ )
3355
+ ] })
3356
+ ]
3357
+ }
3358
+ );
3359
+ }
3360
+
3361
+ // src/types/data/company_service_latest.ts
3362
+ var company_service_latest_exports2 = {};
3363
+ __export(company_service_latest_exports2, {
3364
+ CategoryEnum: () => CategoryEnum2,
3365
+ OfficeTypeEnum: () => OfficeTypeEnum2,
3366
+ PublishStatusEnum: () => PublishStatusEnum3,
3367
+ TitleEnum: () => TitleEnum2,
3368
+ TypeEnum: () => TypeEnum5,
3369
+ companyBenefitsSchema: () => companyBenefitsSchema2,
3370
+ companyCareersSchema: () => companyCareersSchema3,
3371
+ companyNdgSchema: () => companyNdgSchema3,
3372
+ companyPhilosophySchema: () => companyPhilosophySchema3,
3373
+ companySchema: () => companySchema3,
3374
+ foundingInformationSchema: () => foundingInformationSchema3,
3375
+ industrySchema: () => industrySchema2,
3376
+ jobBoardSchema: () => jobBoardSchema2,
3377
+ ngdMetadataSchema: () => ngdMetadataSchema3,
3378
+ officeSchema: () => officeSchema2,
3379
+ personSchema: () => personSchema2,
3380
+ socialMediaSchema: () => socialMediaSchema2
3381
+ });
3382
+ var import_zod8 = require("zod");
3383
+
3384
+ // src/types/data/shared_pickle_output_latest.ts
3385
+ var shared_pickle_output_latest_exports2 = {};
3386
+ __export(shared_pickle_output_latest_exports2, {
3387
+ CurrencyEnum: () => CurrencyEnum3,
3388
+ DetailLevelEnum: () => DetailLevelEnum2,
3389
+ TypeEnum: () => TypeEnum4,
3390
+ UnitTextEnum: () => UnitTextEnum2,
3391
+ imageAssetSchema: () => imageAssetSchema2,
3392
+ imageSchema: () => imageSchema2,
3393
+ monetaryAmountSchema: () => monetaryAmountSchema3,
3394
+ placeSchema: () => placeSchema2,
3395
+ postalAddressSchema: () => postalAddressSchema3,
3396
+ quantitativeValueSchema: () => quantitativeValueSchema3
3397
+ });
3398
+ var import_zod7 = require("zod");
3399
+ var TypeEnum4 = import_zod7.z.enum(["IMAGE"]);
3400
+ var DetailLevelEnum2 = import_zod7.z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
3401
+ var UnitTextEnum2 = import_zod7.z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
3402
+ var CurrencyEnum3 = import_zod7.z.enum(["EUR", "GBP", "USD"]);
3403
+ var postalAddressSchema3 = import_zod7.z.object({
3404
+ version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3405
+ type: import_zod7.z.string().describe("Document type used for schema"),
3406
+ addressCountry: import_zod7.z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
3407
+ addressRegion: import_zod7.z.optional(import_zod7.z.string()).describe("The region in which the locality is, and which is in the country."),
3408
+ addressLocality: import_zod7.z.optional(import_zod7.z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
3409
+ streetAddress: import_zod7.z.optional(import_zod7.z.string()).describe("The street name of the address within the locality."),
3410
+ streetNumber: import_zod7.z.optional(import_zod7.z.string()).describe("The house of building number within the street."),
3411
+ postalCode: import_zod7.z.optional(import_zod7.z.string()).describe("The postal code"),
3412
+ description: import_zod7.z.optional(import_zod7.z.string()).describe("A descriptive string containing the full address.")
3413
+ });
3414
+ var placeSchema2 = import_zod7.z.object({
3415
+ version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3416
+ detailLevel: import_zod7.z.optional(DetailLevelEnum2),
3417
+ latitude: import_zod7.z.optional(import_zod7.z.number()).describe("The latitude of a location."),
3418
+ longitude: import_zod7.z.optional(import_zod7.z.number()).describe("The longitude of a location."),
3419
+ address: import_zod7.z.optional(postalAddressSchema3).describe("The physical place of the location")
3420
+ });
3421
+ var quantitativeValueSchema3 = import_zod7.z.object({
3422
+ version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3423
+ type: import_zod7.z.string().describe("Document type used for schema"),
3424
+ value: import_zod7.z.optional(import_zod7.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."),
3425
+ minValue: import_zod7.z.optional(import_zod7.z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
3426
+ maxValue: import_zod7.z.optional(import_zod7.z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
3427
+ unitText: UnitTextEnum2
3428
+ });
3429
+ var monetaryAmountSchema3 = import_zod7.z.object({
3430
+ version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3431
+ type: import_zod7.z.string().describe("Document type used for schema"),
3432
+ singleValue: import_zod7.z.optional(import_zod7.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."),
3433
+ minValue: import_zod7.z.optional(import_zod7.z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
3434
+ maxValue: import_zod7.z.optional(import_zod7.z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
3435
+ value: import_zod7.z.optional(quantitativeValueSchema3).describe("The quantitative_value for a given salary"),
3436
+ currency: import_zod7.z.optional(CurrencyEnum3)
3437
+ });
3438
+ var imageAssetSchema2 = import_zod7.z.object({
3439
+ version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3440
+ altText: import_zod7.z.optional(import_zod7.z.string()).describe("The alt text for the image"),
3441
+ assetId: import_zod7.z.optional(import_zod7.z.string()).describe("The asset ID for the image"),
3442
+ description: import_zod7.z.optional(import_zod7.z.string()).describe("The description for the image"),
3443
+ extension: import_zod7.z.optional(import_zod7.z.string()).describe("The extension for the image"),
3444
+ label: import_zod7.z.optional(import_zod7.z.string()).describe("The label for the image"),
3445
+ mimeType: import_zod7.z.optional(import_zod7.z.string()).describe("The mime type for the image"),
3446
+ originalFilename: import_zod7.z.optional(import_zod7.z.string()).describe("The original filename for the image"),
3447
+ path: import_zod7.z.optional(import_zod7.z.string()).describe("The path for the image"),
3448
+ sha1Hash: import_zod7.z.optional(import_zod7.z.string()).describe("The SHA1 hash for the image"),
3449
+ size: import_zod7.z.optional(import_zod7.z.number()).describe("The size for the image"),
3450
+ title: import_zod7.z.optional(import_zod7.z.string()).describe("The title for the image"),
3451
+ uploadId: import_zod7.z.optional(import_zod7.z.string()).describe("The upload ID for the image"),
3452
+ url: import_zod7.z.optional(import_zod7.z.string()).describe("The URL for the image")
3453
+ });
3454
+ var imageSchema2 = import_zod7.z.object({
3455
+ version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3456
+ type: import_zod7.z.string().describe("Document type used for schema"),
3457
+ asset: import_zod7.z.optional(imageAssetSchema2).describe("The asset for the image")
3458
+ });
3459
+
3460
+ // src/types/data/company_service_latest.ts
3461
+ var TypeEnum5 = import_zod8.z.enum(["OFFICE"]);
3462
+ var CategoryEnum2 = import_zod8.z.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
3463
+ var TitleEnum2 = import_zod8.z.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
3464
+ var PublishStatusEnum3 = import_zod8.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
3465
+ var OfficeTypeEnum2 = import_zod8.z.enum(["BRANCH", "HEADQUARTERS", "SATELLITE"]);
3466
+ var socialMediaSchema2 = import_zod8.z.object({
3467
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3468
+ url: import_zod8.z.string().describe("The link to the social media platform"),
3469
+ type: import_zod8.z.string().describe("The type of social media link")
3470
+ });
3471
+ var companyBenefitsSchema2 = import_zod8.z.object({
3472
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3473
+ type: import_zod8.z.string().describe("Document type used for schema"),
3474
+ title: import_zod8.z.string(),
3475
+ description: import_zod8.z.optional(import_zod8.z.string()),
3476
+ category: CategoryEnum2
3477
+ });
3478
+ var industrySchema2 = import_zod8.z.lazy(() => import_zod8.z.object({
3479
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3480
+ type: import_zod8.z.string().describe("Document type used for schema"),
3481
+ name: import_zod8.z.string(),
3482
+ description: import_zod8.z.optional(import_zod8.z.string()).describe("A brief description of the industry"),
3483
+ onetIndustryId: import_zod8.z.optional(import_zod8.z.string()).describe("ONET industry ID"),
3484
+ parent: import_zod8.z.optional(industrySchema2)
3485
+ }));
3486
+ var jobBoardSchema2 = import_zod8.z.object({
3487
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3488
+ type: import_zod8.z.string().describe("Document type used for schema"),
3489
+ name: import_zod8.z.string().describe("The name of the job board"),
3490
+ description: import_zod8.z.string().describe("A brief description of the job board"),
3491
+ logo: import_zod8.z.optional(imageSchema2).describe("The logo of the job board"),
3492
+ baseUrl: import_zod8.z.optional(import_zod8.z.string()).describe("The base URL of the job board")
3493
+ });
3494
+ var personSchema2 = import_zod8.z.object({
3495
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3496
+ type: import_zod8.z.string().describe("Document type used for schema"),
3497
+ firstName: import_zod8.z.string().describe("The first name of the person"),
3498
+ lastName: import_zod8.z.string().describe("The last name of the person"),
3499
+ title: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())).describe("The titles of the degree of the person"),
3500
+ slug: import_zod8.z.string().describe("person slug - should be familyname-givenname-title(s)"),
3501
+ jobTitle: import_zod8.z.optional(import_zod8.z.string()).describe("The job title of the person"),
3502
+ isDoctor: import_zod8.z.optional(import_zod8.z.boolean()).describe("Is the person a doctor"),
3503
+ isMedical: import_zod8.z.optional(import_zod8.z.boolean()).describe("Are they of a medical background?"),
3504
+ isScientist: import_zod8.z.optional(import_zod8.z.boolean()).describe("Are they a scientist?"),
3505
+ image: import_zod8.z.optional(imageSchema2).describe("The image of the person"),
3506
+ email: import_zod8.z.optional(import_zod8.z.string()).describe("The email of the person"),
3507
+ socialMedia: import_zod8.z.optional(import_zod8.z.array(socialMediaSchema2)).describe("The social media links of the person"),
3508
+ telephone: import_zod8.z.optional(import_zod8.z.string()).describe("The telephone number of the person"),
3509
+ url: import_zod8.z.optional(import_zod8.z.string()).describe("The URL of the person"),
3510
+ address: import_zod8.z.optional(placeSchema2).describe("The address of the person")
3511
+ });
3512
+ var companyCareersSchema3 = import_zod8.z.object({
3513
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3514
+ type: import_zod8.z.string().describe("Document type used for schema"),
3515
+ careersUrl: import_zod8.z.string().describe("The URL of the company careers page"),
3516
+ jobBoard: import_zod8.z.optional(jobBoardSchema2),
3517
+ jobBoardSlug: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())),
3518
+ companyBenefits: import_zod8.z.optional(import_zod8.z.array(companyBenefitsSchema2)).describe("What are the specific benefits of that company. The benefit is generic.")
3519
+ });
3520
+ var companyPhilosophySchema3 = import_zod8.z.object({
3521
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3522
+ type: import_zod8.z.string().describe("Document type used for schema"),
3523
+ companyMission: import_zod8.z.optional(import_zod8.z.string()).describe("The mission statement of the company."),
3524
+ companyHow: import_zod8.z.optional(import_zod8.z.string()).describe("How does the company achieve its mission"),
3525
+ companyCulture: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())).describe("What are some of the culture aspects of this company?")
3526
+ });
3527
+ var companyNdgSchema3 = import_zod8.z.object({
3528
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3529
+ type: import_zod8.z.string().describe("Document type used for schema"),
3530
+ companyWow: import_zod8.z.optional(import_zod8.z.string()).describe("What is the wow of this company?"),
3531
+ companyNDGTake: import_zod8.z.optional(import_zod8.z.string()).describe("What is the NDG POV on this company?"),
3532
+ companyBestFit: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())),
3533
+ companyInterests: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string()))
3534
+ });
3535
+ var foundingInformationSchema3 = import_zod8.z.object({
3536
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3537
+ type: import_zod8.z.string().describe("Document type used for schema"),
3538
+ foundedDate: import_zod8.z.optional(import_zod8.z.string()),
3539
+ foundedCountry: import_zod8.z.optional(import_zod8.z.string()),
3540
+ foundedCity: import_zod8.z.optional(import_zod8.z.string()),
3541
+ founders: import_zod8.z.optional(import_zod8.z.array(personSchema2))
3542
+ });
3543
+ var ngdMetadataSchema3 = import_zod8.z.object({
3544
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3545
+ type: import_zod8.z.string().describe("Document type used for schema"),
3546
+ lastScraped: import_zod8.z.optional(import_zod8.z.string()).describe("Date the last entity was scraped, if applicable"),
3547
+ scraperVersion: import_zod8.z.optional(import_zod8.z.string()),
3548
+ postProcessorVersion: import_zod8.z.optional(import_zod8.z.string()),
3549
+ uniqueRunId: import_zod8.z.optional(import_zod8.z.string()),
3550
+ postProcessorUniqueRunId: import_zod8.z.optional(import_zod8.z.string()),
3551
+ isScrapeManaged: import_zod8.z.optional(import_zod8.z.boolean()).default(true)
3552
+ });
3553
+ var companySchema3 = import_zod8.z.object({
3554
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3555
+ id: import_zod8.z.string().describe("The NDG specific id for a company. Cannot be changed."),
3556
+ createdAt: import_zod8.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3557
+ updatedAt: import_zod8.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3558
+ companyName: import_zod8.z.string().describe("The name of the company"),
3559
+ slug: import_zod8.z.string().describe("The NDG specific slug for a company."),
3560
+ type: import_zod8.z.string().describe("Document type used for schema"),
3561
+ logo: import_zod8.z.optional(imageSchema2).describe("The logo of the company"),
3562
+ companyWebsite: import_zod8.z.optional(import_zod8.z.string()).describe("The website of the company"),
3563
+ socialMedia: import_zod8.z.optional(import_zod8.z.array(socialMediaSchema2)).describe("The social media links of the company"),
3564
+ brandColor: import_zod8.z.optional(import_zod8.z.string()).describe("The brand color of the company"),
3565
+ companyCareers: import_zod8.z.optional(companyCareersSchema3).describe("Career Specific Information for the company."),
3566
+ companyPhilosophy: import_zod8.z.optional(companyPhilosophySchema3).describe("Company mission,values and how the company achieves its mission."),
3567
+ companyNDG: import_zod8.z.optional(companyNdgSchema3).describe("Next Degree specific information for the company."),
3568
+ foundingInfo: import_zod8.z.optional(foundingInformationSchema3),
3569
+ headquartersLocation: import_zod8.z.optional(placeSchema2),
3570
+ employeeEstimate: import_zod8.z.optional(import_zod8.z.string()),
3571
+ publishStatus: import_zod8.z.optional(import_zod8.z.string()),
3572
+ ngdMetadata: import_zod8.z.optional(ngdMetadataSchema3)
3573
+ });
3574
+ var officeSchema2 = import_zod8.z.object({
3575
+ version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3576
+ type: import_zod8.z.string().describe("Document type used for schema"),
3577
+ name: import_zod8.z.string().describe("Name or nickname for the office (e.g., 'NYC HQ', 'West Coast Branch')"),
3578
+ officeType: OfficeTypeEnum2,
3579
+ companyId: import_zod8.z.optional(companySchema3),
3580
+ geoLocation: import_zod8.z.optional(placeSchema2).describe("Geographical location details: coordinates + postal address"),
3581
+ createdAt: import_zod8.z.optional(import_zod8.z.string()),
3582
+ updatedAt: import_zod8.z.optional(import_zod8.z.string())
3583
+ });
3584
+
3585
+ // src/types/data/job_posting_service_latest.ts
3586
+ var job_posting_service_latest_exports2 = {};
3587
+ __export(job_posting_service_latest_exports2, {
3588
+ BestFitEnum: () => BestFitEnum2,
3589
+ ClinicalLicenseEnum: () => ClinicalLicenseEnum2,
3590
+ ClinicalSettingEnum: () => ClinicalSettingEnum2,
3591
+ ClinicalSpecialtyEnum: () => ClinicalSpecialtyEnum2,
3592
+ EmploymentLevelEnum: () => EmploymentLevelEnum2,
3593
+ EmploymentTypeEnum: () => EmploymentTypeEnum2,
3594
+ JobFunctionEnum: () => JobFunctionEnum2,
3595
+ JobLocationTypeEnum: () => JobLocationTypeEnum2,
3596
+ PublishStatusEnum: () => PublishStatusEnum4,
3597
+ ShiftEnum: () => ShiftEnum2,
3598
+ TypeEnum: () => TypeEnum6,
3599
+ jobPostSchema: () => jobPostSchema3
3600
+ });
3601
+ var import_zod9 = require("zod");
3602
+ var TypeEnum6 = import_zod9.z.enum(["JOB_POST"]);
3603
+ var JobLocationTypeEnum2 = import_zod9.z.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
3604
+ var EmploymentTypeEnum2 = import_zod9.z.enum(["CONTRACT", "FULL_TIME", "INTERNSHIP", "OTHER", "PART_TIME", "PER_DIEM", "TEMPORARY"]);
3605
+ var EmploymentLevelEnum2 = import_zod9.z.enum(["DIRECTOR", "ENTRY_LEVEL", "EXECUTIVE", "EXPERIENCED", "INTERN", "MANAGER"]);
3606
+ var JobFunctionEnum2 = import_zod9.z.enum(["CLINICAL_RESEARCH", "CUSTOMER_SUCCESS", "DATA_ANALYTICS", "FINANCE_AND_AUDIT", "MARKETING", "OPERATIONS", "PEOPLE_HUMAN_RESOURCES", "PRODUCT_AND_TECH", "QUALITY_ASSURANCE_AND_OUTCOMES", "SALES_AND_BUSINESS_DEVELOPMENT", "STRATEGY_AND_CONSULTING"]);
3607
+ var PublishStatusEnum4 = import_zod9.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
3608
+ var BestFitEnum2 = import_zod9.z.enum(["DENTIST", "DIETICIAN", "DOULA", "MEDICAL_ASSISTANT", "MIDWIFE", "NURSE", "OCCUPATIONAL_THERAPIST", "PHARMACIST", "PHYSICAL_THERAPIST", "PHYSICIAN", "PHYSICIAN_ASSISTANT", "PSYCHOLOGIST", "RADIOLOGIST", "SOCIAL_WORKER", "SPEECH_LANGUAGE_PATHOLOGIST", "SURGEON"]);
3609
+ var ClinicalLicenseEnum2 = import_zod9.z.enum(["CNA", "CNM", "CNS", "COTA", "CRNA", "LPN", "LVN", "NP", "OT", "PT", "PTA", "RN"]);
3610
+ var ShiftEnum2 = import_zod9.z.enum(["DAY", "EIGHT_HOUR", "EVENING", "FLEXIBLE", "MID_SHIFT", "MONDAY_TO_FRIDAY", "NIGHT", "ON_CALL", "TEN_HOUR", "TWELVE_HOUR", "WEEKENDS"]);
3611
+ var ClinicalSettingEnum2 = import_zod9.z.enum(["ACUTE_CARE", "AMBULATORY_SURGERY_CENTER", "CLINIC", "HOME_HEALTH", "HOSPITAL", "INPATIENT", "LONG_TERM_CARE", "MED_SPA", "NURSING_HOME", "OFFICE", "OUTPATIENT", "PRIVATE_PRACTICE", "REHAB_CENTER", "SCHOOL", "SKILLED_NURSING_FACILITY"]);
3612
+ var ClinicalSpecialtyEnum2 = import_zod9.z.enum(["ANESTHESIOLOGY", "CARDIOLOGY", "CASE_MANAGEMENT", "CHRONIC_PAIN", "CLINICAL_ELECTROPHYSIOLOGY", "CRITICAL_AND_ACUTE_CARE", "DERMATOLOGY", "DIALYSIS", "EMERGENCY_MEDICINE", "ENDOCRINOLOGY", "ERGONOMICS", "FEEDING_EATING_AND_SWALLOWING", "GASTROENTEROLOGY", "GERIATRICS", "HAND_THERAPY", "HEMATOLOGY", "HOLISTIC_MEDICINE", "INFORMATICS", "INTERNAL_MEDICINE", "LABOR_AND_DELIVERY", "MANUAL_THERAPY", "MED_SURG", "MENTAL_HEALTH", "NEPHROLOGY", "NEUROLOGY", "ONCOLOGY", "ORTHOPEDICS", "OTOLARYNGOLOGY", "PEDIATRICS", "PHYSICAL_AND_REHABILITATION_MEDICINE", "PLASTIC_SURGERY", "PRIMARY_CARE", "PSYCHIATRY", "PULMONOLOGY", "RADIOLOGY", "SENSORY", "SPORTS", "SURGERY", "TRAUMA_MEDICINE", "URGENT_CARE", "UROLOGY", "VISION", "WOMENS_HEALTH", "WOUND_AND_BURN_CARE"]);
3613
+ var jobPostSchema3 = import_zod9.z.object({
3614
+ version: import_zod9.z.literal("1.0.0").default("1.0.0"),
3615
+ id: import_zod9.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
3616
+ type: import_zod9.z.string().describe("Document type used for schema"),
3617
+ createdAt: import_zod9.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3618
+ updatedAt: import_zod9.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
3619
+ dateAdded: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job was added to the platform"),
3620
+ datePosted: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job was published for public viewing"),
3621
+ dateRemoved: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job was removed from public viewing"),
3622
+ validThrough: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job posting is valid through. After this date it will be removed from public viewing"),
3623
+ vacancyCount: import_zod9.z.optional(import_zod9.z.number().int()).describe("The number of vacancies for a given job posting"),
3624
+ clientId: import_zod9.z.string().describe("The ID assigned by the client to a job - normally the same as the GH / Lever / Ashby ID or internal ID"),
3625
+ url: import_zod9.z.string().describe("The URL of the job to be displayed for users to apply with. Direct job link."),
3626
+ title: import_zod9.z.string().describe("The title of the job post"),
3627
+ description: import_zod9.z.string().describe("The description of the job post saved as markdown. Used for rendering the job description."),
3628
+ richTextDescription: import_zod9.z.optional(import_zod9.z.string()).describe("The description of the job post saved as rich text"),
3629
+ isClinical: import_zod9.z.boolean().default(false).describe("Denotes if a job posting is clinical in nature or not. A role is clinical if it requires direct clinical patient care."),
3630
+ isRemote: import_zod9.z.boolean().default(false).describe("Denotes if a job posting is remote in nature. For a posting to be 'remote' it must be 100% remote (e.g hybrid roles would denote this to false)."),
3631
+ isVerified: import_zod9.z.boolean().default(false).describe("Denotes if a job posting has been manually verified - and thus ALL fields can be considered accurate. Can be used for DS training."),
3632
+ isDirectApply: import_zod9.z.boolean().default(false).describe("Denotes if a job posting url is direct apply. To be direct apply a user must be able to apply to the role without logging in and under 2 clicks."),
3633
+ jobLocationType: import_zod9.z.optional(import_zod9.z.array(JobLocationTypeEnum2)),
3634
+ employmentType: import_zod9.z.optional(import_zod9.z.array(EmploymentTypeEnum2)),
3635
+ employmentLevel: import_zod9.z.optional(EmploymentLevelEnum2),
3636
+ jobFunction: import_zod9.z.optional(JobFunctionEnum2),
3637
+ publishStatus: PublishStatusEnum4,
3638
+ bestFit: import_zod9.z.optional(import_zod9.z.array(BestFitEnum2)),
3639
+ clinicalLicense: import_zod9.z.optional(import_zod9.z.array(ClinicalLicenseEnum2)),
3640
+ shift: import_zod9.z.optional(import_zod9.z.array(ShiftEnum2)),
3641
+ clinicalSetting: import_zod9.z.optional(import_zod9.z.array(ClinicalSettingEnum2)),
3642
+ clinicalSpecialty: import_zod9.z.optional(import_zod9.z.array(ClinicalSpecialtyEnum2)),
3643
+ estimatedSalary: import_zod9.z.optional(monetaryAmountSchema3).describe("Determines the estimated salary for a given job posting"),
3644
+ jobLocation: import_zod9.z.optional(postalAddressSchema3).describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
3645
+ applicableOffices: import_zod9.z.optional(import_zod9.z.array(officeSchema2)).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."),
3646
+ applicantLocationRequirements: import_zod9.z.optional(import_zod9.z.array(placeSchema2)).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."),
3647
+ hiringOrganization: import_zod9.z.optional(companySchema3).describe("The organization that is hiring for the role")
3648
+ });
3229
3649
  // Annotate the CommonJS export names for ESM import in node:
3230
3650
  0 && (module.exports = {
3231
3651
  Avatar,