@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.
Files changed (247) hide show
  1. package/dist/company_service_latest-Dwf4Fkjr.d.cts +2641 -0
  2. package/dist/company_service_latest-Dwf4Fkjr.d.ts +2641 -0
  3. package/dist/components/buttons/BackButton.cjs +161 -0
  4. package/dist/components/buttons/BackButton.cjs.map +1 -0
  5. package/dist/components/buttons/BackButton.d.cts +9 -0
  6. package/dist/components/buttons/BackButton.d.ts +9 -0
  7. package/dist/components/buttons/BackButton.js +137 -0
  8. package/dist/components/buttons/BackButton.js.map +1 -0
  9. package/dist/components/company/CompanyBenefits.cjs +38 -0
  10. package/dist/components/company/CompanyBenefits.cjs.map +1 -0
  11. package/dist/components/company/CompanyBenefits.d.cts +8 -0
  12. package/dist/components/company/CompanyBenefits.d.ts +8 -0
  13. package/dist/components/company/CompanyBenefits.js +13 -0
  14. package/dist/components/company/CompanyBenefits.js.map +1 -0
  15. package/dist/components/company/CompanyInformation.cjs +112 -0
  16. package/dist/components/company/CompanyInformation.cjs.map +1 -0
  17. package/dist/components/company/CompanyInformation.d.cts +12 -0
  18. package/dist/components/company/CompanyInformation.d.ts +12 -0
  19. package/dist/components/company/CompanyInformation.js +75 -0
  20. package/dist/components/company/CompanyInformation.js.map +1 -0
  21. package/dist/components/company/CompanyTake.cjs +140 -0
  22. package/dist/components/company/CompanyTake.cjs.map +1 -0
  23. package/dist/components/company/CompanyTake.d.cts +9 -0
  24. package/dist/components/company/CompanyTake.d.ts +9 -0
  25. package/dist/components/company/CompanyTake.js +104 -0
  26. package/dist/components/company/CompanyTake.js.map +1 -0
  27. package/dist/components/jobPost/JobDescription.cjs +205 -0
  28. package/dist/components/jobPost/JobDescription.cjs.map +1 -0
  29. package/dist/components/jobPost/JobDescription.d.cts +8 -0
  30. package/dist/components/jobPost/JobDescription.d.ts +8 -0
  31. package/dist/components/jobPost/JobDescription.js +168 -0
  32. package/dist/components/jobPost/JobDescription.js.map +1 -0
  33. package/dist/components/jobPost/JobHeader.cjs +436 -0
  34. package/dist/components/jobPost/JobHeader.cjs.map +1 -0
  35. package/dist/components/jobPost/JobHeader.d.cts +26 -0
  36. package/dist/components/jobPost/JobHeader.d.ts +26 -0
  37. package/dist/components/jobPost/JobHeader.js +423 -0
  38. package/dist/components/jobPost/JobHeader.js.map +1 -0
  39. package/dist/components/jobPost/JobPost.cjs +1349 -0
  40. package/dist/components/jobPost/JobPost.cjs.map +1 -0
  41. package/dist/components/jobPost/JobPost.d.cts +16 -0
  42. package/dist/components/jobPost/JobPost.d.ts +16 -0
  43. package/dist/components/jobPost/JobPost.js +1336 -0
  44. package/dist/components/jobPost/JobPost.js.map +1 -0
  45. package/dist/components/primitives/avatar.cjs +88 -0
  46. package/dist/components/primitives/avatar.cjs.map +1 -0
  47. package/dist/components/primitives/avatar.d.cts +13 -0
  48. package/dist/components/primitives/avatar.d.ts +13 -0
  49. package/dist/components/primitives/avatar.js +52 -0
  50. package/dist/components/primitives/avatar.js.map +1 -0
  51. package/dist/components/primitives/command.d.cts +3 -3
  52. package/dist/components/primitives/command.d.ts +3 -3
  53. package/dist/components/ui/Avatar.cjs +117 -0
  54. package/dist/components/ui/Avatar.cjs.map +1 -0
  55. package/dist/components/ui/Avatar.d.cts +16 -0
  56. package/dist/components/ui/Avatar.d.ts +16 -0
  57. package/dist/components/ui/Avatar.js +79 -0
  58. package/dist/components/ui/Avatar.js.map +1 -0
  59. package/dist/components/ui/Icon.cjs +114 -0
  60. package/dist/components/ui/Icon.cjs.map +1 -0
  61. package/dist/components/ui/Icon.d.cts +15 -0
  62. package/dist/components/ui/Icon.d.ts +15 -0
  63. package/dist/components/ui/Icon.js +89 -0
  64. package/dist/components/ui/Icon.js.map +1 -0
  65. package/dist/{app/layout.cjs → components/ui/LinkButton.cjs} +25 -35
  66. package/dist/components/ui/LinkButton.cjs.map +1 -0
  67. package/dist/components/ui/LinkButton.d.cts +29 -0
  68. package/dist/components/ui/LinkButton.d.ts +29 -0
  69. package/dist/components/ui/LinkButton.js +26 -0
  70. package/dist/components/ui/LinkButton.js.map +1 -0
  71. package/dist/components/ui/MapComponent.cjs +54 -0
  72. package/dist/components/ui/MapComponent.cjs.map +1 -0
  73. package/dist/components/ui/MapComponent.d.cts +15 -0
  74. package/dist/components/ui/MapComponent.d.ts +15 -0
  75. package/dist/components/ui/MapComponent.js +34 -0
  76. package/dist/components/ui/MapComponent.js.map +1 -0
  77. package/dist/components/ui/PlacesQueryInput.cjs.map +1 -1
  78. package/dist/components/ui/PlacesQueryInput.js.map +1 -1
  79. package/dist/components/ui/ReadMore.cjs +194 -0
  80. package/dist/components/ui/ReadMore.cjs.map +1 -0
  81. package/dist/components/ui/ReadMore.d.cts +9 -0
  82. package/dist/components/ui/ReadMore.d.ts +9 -0
  83. package/dist/components/ui/ReadMore.js +160 -0
  84. package/dist/components/ui/ReadMore.js.map +1 -0
  85. package/dist/contexts/WindowHistoryProvider.cjs +48 -0
  86. package/dist/contexts/WindowHistoryProvider.cjs.map +1 -0
  87. package/dist/contexts/WindowHistoryProvider.d.cts +11 -0
  88. package/dist/contexts/WindowHistoryProvider.d.ts +11 -0
  89. package/dist/contexts/WindowHistoryProvider.js +23 -0
  90. package/dist/contexts/WindowHistoryProvider.js.map +1 -0
  91. package/dist/displayText-C1qKqRYc.d.cts +48 -0
  92. package/dist/displayText-D-OzRlJf.d.ts +48 -0
  93. package/dist/hooks/useDisplayText.cjs +502 -0
  94. package/dist/hooks/useDisplayText.cjs.map +1 -0
  95. package/dist/hooks/useDisplayText.d.cts +8 -0
  96. package/dist/hooks/useDisplayText.d.ts +8 -0
  97. package/dist/hooks/useDisplayText.js +477 -0
  98. package/dist/hooks/useDisplayText.js.map +1 -0
  99. package/dist/hooks/useWindowHistory.cjs +46 -0
  100. package/dist/hooks/useWindowHistory.cjs.map +1 -0
  101. package/dist/hooks/useWindowHistory.d.cts +7 -0
  102. package/dist/hooks/useWindowHistory.d.ts +7 -0
  103. package/dist/hooks/useWindowHistory.js +21 -0
  104. package/dist/hooks/useWindowHistory.js.map +1 -0
  105. package/dist/index.cjs +1564 -72
  106. package/dist/index.cjs.map +1 -1
  107. package/dist/index.d.cts +23 -0
  108. package/dist/index.d.ts +23 -0
  109. package/dist/index.js +1557 -57
  110. package/dist/index.js.map +1 -1
  111. package/dist/job_posting_service_latest-D0AsiA4a.d.cts +2789 -0
  112. package/dist/job_posting_service_latest-D0AsiA4a.d.ts +2789 -0
  113. package/dist/lib/google.cjs +44 -2
  114. package/dist/lib/google.cjs.map +1 -1
  115. package/dist/lib/google.d.cts +22 -1
  116. package/dist/lib/google.d.ts +22 -1
  117. package/dist/lib/google.js +40 -1
  118. package/dist/lib/google.js.map +1 -1
  119. package/dist/lib/icons.cjs +53 -0
  120. package/dist/lib/icons.cjs.map +1 -0
  121. package/dist/lib/icons.d.cts +27 -0
  122. package/dist/lib/icons.d.ts +27 -0
  123. package/dist/lib/icons.js +49 -0
  124. package/dist/lib/icons.js.map +1 -0
  125. package/dist/lib/locations.cjs +45 -0
  126. package/dist/lib/locations.cjs.map +1 -0
  127. package/dist/lib/locations.d.cts +8 -0
  128. package/dist/lib/locations.d.ts +8 -0
  129. package/dist/lib/locations.js +19 -0
  130. package/dist/lib/locations.js.map +1 -0
  131. package/dist/lib/mappings.cjs +443 -0
  132. package/dist/lib/mappings.cjs.map +1 -0
  133. package/dist/lib/mappings.d.cts +4 -0
  134. package/dist/lib/mappings.d.ts +4 -0
  135. package/dist/lib/mappings.js +409 -0
  136. package/dist/lib/mappings.js.map +1 -0
  137. package/dist/lib/salaryRange.cjs +90 -0
  138. package/dist/lib/salaryRange.cjs.map +1 -0
  139. package/dist/lib/salaryRange.d.cts +6 -0
  140. package/dist/lib/salaryRange.d.ts +6 -0
  141. package/dist/lib/salaryRange.js +63 -0
  142. package/dist/lib/salaryRange.js.map +1 -0
  143. package/dist/services/displayText.cjs +470 -0
  144. package/dist/services/displayText.cjs.map +1 -0
  145. package/dist/services/displayText.d.cts +4 -0
  146. package/dist/services/displayText.d.ts +4 -0
  147. package/dist/services/displayText.js +443 -0
  148. package/dist/services/displayText.js.map +1 -0
  149. package/dist/shared_pickle_output_latest-DX6GQoVn.d.cts +194 -0
  150. package/dist/shared_pickle_output_latest-DX6GQoVn.d.ts +194 -0
  151. package/dist/styles/globals.css +829 -0
  152. package/dist/styles/globals.css.map +1 -1
  153. package/dist/types/data/company_service_latest.cjs +228 -0
  154. package/dist/types/data/company_service_latest.cjs.map +1 -0
  155. package/dist/types/data/company_service_latest.d.cts +2 -0
  156. package/dist/types/data/company_service_latest.d.ts +2 -0
  157. package/dist/types/data/company_service_latest.js +186 -0
  158. package/dist/types/data/company_service_latest.js.map +1 -0
  159. package/dist/types/data/job_posting_service_latest.cjs +266 -0
  160. package/dist/types/data/job_posting_service_latest.cjs.map +1 -0
  161. package/dist/types/data/job_posting_service_latest.d.cts +2 -0
  162. package/dist/types/data/job_posting_service_latest.d.ts +2 -0
  163. package/dist/types/data/job_posting_service_latest.js +230 -0
  164. package/dist/types/data/job_posting_service_latest.js.map +1 -0
  165. package/dist/types/data/shared_pickle_output_latest.cjs +82 -0
  166. package/dist/types/data/shared_pickle_output_latest.cjs.map +1 -0
  167. package/dist/types/data/shared_pickle_output_latest.d.cts +2 -0
  168. package/dist/types/data/shared_pickle_output_latest.d.ts +2 -0
  169. package/dist/types/data/shared_pickle_output_latest.js +50 -0
  170. package/dist/types/data/shared_pickle_output_latest.js.map +1 -0
  171. package/dist/types/displayText.errors.cjs +44 -0
  172. package/dist/types/displayText.errors.cjs.map +1 -0
  173. package/dist/types/displayText.errors.d.cts +8 -0
  174. package/dist/types/displayText.errors.d.ts +8 -0
  175. package/dist/types/displayText.errors.js +18 -0
  176. package/dist/types/displayText.errors.js.map +1 -0
  177. package/package.json +20 -7
  178. package/dist/AmbitBold-3SZZPYLH.otf +0 -0
  179. package/dist/AmbitBoldItalic-JSHFTN4A.otf +0 -0
  180. package/dist/AmbitRegular-MB5U7O3L.otf +0 -0
  181. package/dist/app/layout.cjs.map +0 -1
  182. package/dist/app/layout.css +0 -1411
  183. package/dist/app/layout.css.map +0 -1
  184. package/dist/app/layout.d.cts +0 -11
  185. package/dist/app/layout.d.ts +0 -11
  186. package/dist/app/layout.js +0 -36
  187. package/dist/app/layout.js.map +0 -1
  188. package/dist/app/page.cjs +0 -1517
  189. package/dist/app/page.cjs.map +0 -1
  190. package/dist/app/page.d.cts +0 -5
  191. package/dist/app/page.d.ts +0 -5
  192. package/dist/app/page.js +0 -1491
  193. package/dist/app/page.js.map +0 -1
  194. package/dist/assets/fonts/AmbitBold.cjs +0 -3
  195. package/dist/assets/fonts/AmbitBold.cjs.map +0 -1
  196. package/dist/assets/fonts/AmbitBold.d.cts +0 -2
  197. package/dist/assets/fonts/AmbitBold.d.ts +0 -2
  198. package/dist/assets/fonts/AmbitBold.js +0 -6
  199. package/dist/assets/fonts/AmbitBold.js.map +0 -1
  200. package/dist/assets/fonts/AmbitBoldItalic.cjs +0 -3
  201. package/dist/assets/fonts/AmbitBoldItalic.cjs.map +0 -1
  202. package/dist/assets/fonts/AmbitBoldItalic.d.cts +0 -2
  203. package/dist/assets/fonts/AmbitBoldItalic.d.ts +0 -2
  204. package/dist/assets/fonts/AmbitBoldItalic.js +0 -6
  205. package/dist/assets/fonts/AmbitBoldItalic.js.map +0 -1
  206. package/dist/assets/fonts/AmbitRegular.cjs +0 -3
  207. package/dist/assets/fonts/AmbitRegular.cjs.map +0 -1
  208. package/dist/assets/fonts/AmbitRegular.d.cts +0 -2
  209. package/dist/assets/fonts/AmbitRegular.d.ts +0 -2
  210. package/dist/assets/fonts/AmbitRegular.js +0 -6
  211. package/dist/assets/fonts/AmbitRegular.js.map +0 -1
  212. package/dist/components/demos/ComboboxDemo.cjs +0 -814
  213. package/dist/components/demos/ComboboxDemo.cjs.map +0 -1
  214. package/dist/components/demos/ComboboxDemo.d.cts +0 -5
  215. package/dist/components/demos/ComboboxDemo.d.ts +0 -5
  216. package/dist/components/demos/ComboboxDemo.js +0 -786
  217. package/dist/components/demos/ComboboxDemo.js.map +0 -1
  218. package/dist/components/demos/CounterDemo.cjs +0 -270
  219. package/dist/components/demos/CounterDemo.cjs.map +0 -1
  220. package/dist/components/demos/CounterDemo.d.cts +0 -5
  221. package/dist/components/demos/CounterDemo.d.ts +0 -5
  222. package/dist/components/demos/CounterDemo.js +0 -238
  223. package/dist/components/demos/CounterDemo.js.map +0 -1
  224. package/dist/components/demos/InputDemo.cjs +0 -225
  225. package/dist/components/demos/InputDemo.cjs.map +0 -1
  226. package/dist/components/demos/InputDemo.d.cts +0 -5
  227. package/dist/components/demos/InputDemo.d.ts +0 -5
  228. package/dist/components/demos/InputDemo.js +0 -192
  229. package/dist/components/demos/InputDemo.js.map +0 -1
  230. package/dist/components/demos/PlacesQueryInputDemo.cjs +0 -341
  231. package/dist/components/demos/PlacesQueryInputDemo.cjs.map +0 -1
  232. package/dist/components/demos/PlacesQueryInputDemo.d.cts +0 -5
  233. package/dist/components/demos/PlacesQueryInputDemo.d.ts +0 -5
  234. package/dist/components/demos/PlacesQueryInputDemo.js +0 -309
  235. package/dist/components/demos/PlacesQueryInputDemo.js.map +0 -1
  236. package/dist/components/demos/SelectDemo.cjs +0 -365
  237. package/dist/components/demos/SelectDemo.cjs.map +0 -1
  238. package/dist/components/demos/SelectDemo.d.cts +0 -5
  239. package/dist/components/demos/SelectDemo.d.ts +0 -5
  240. package/dist/components/demos/SelectDemo.js +0 -337
  241. package/dist/components/demos/SelectDemo.js.map +0 -1
  242. package/dist/components/demos/index.cjs +0 -1510
  243. package/dist/components/demos/index.cjs.map +0 -1
  244. package/dist/components/demos/index.d.cts +0 -5
  245. package/dist/components/demos/index.d.ts +0 -5
  246. package/dist/components/demos/index.js +0 -1484
  247. package/dist/components/demos/index.js.map +0 -1
@@ -0,0 +1,1349 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/components/jobPost/JobPost.tsx
32
+ var JobPost_exports = {};
33
+ __export(JobPost_exports, {
34
+ JobPost: () => JobPost
35
+ });
36
+ module.exports = __toCommonJS(JobPost_exports);
37
+ var DateFns = __toESM(require("date-fns"), 1);
38
+
39
+ // src/components/company/CompanyBenefits.tsx
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ function CompanyBenefits({ benefits }) {
42
+ if (!benefits) return null;
43
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
44
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg", children: "Company benefits" }),
45
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
46
+ ] });
47
+ }
48
+
49
+ // src/components/ui/LinkButton.tsx
50
+ var import_link = __toESM(require("next/link"), 1);
51
+ var import_jsx_runtime2 = require("react/jsx-runtime");
52
+ var LinkButton = ({
53
+ disabled = false,
54
+ useAnchor = false,
55
+ children,
56
+ href,
57
+ ...props
58
+ }) => {
59
+ const Component = useAnchor ? "a" : import_link.default;
60
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
61
+ Component,
62
+ {
63
+ href,
64
+ 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" : ""} `,
65
+ ...disabled && { "aria-disabled": true, tabIndex: -1 },
66
+ ...props,
67
+ children
68
+ }
69
+ );
70
+ };
71
+
72
+ // src/components/company/CompanyInformation.tsx
73
+ var import_jsx_runtime3 = require("react/jsx-runtime");
74
+ function CompanyInformation({
75
+ name,
76
+ how,
77
+ mission,
78
+ wow,
79
+ website
80
+ }) {
81
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex flex-col gap-2", children: [
82
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
83
+ "h2",
84
+ {
85
+ "data-testid": "company-name",
86
+ className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
87
+ children: [
88
+ "About ",
89
+ name
90
+ ]
91
+ }
92
+ ),
93
+ how && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
94
+ mission && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex gap-2", children: [
95
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: "\u{1F680}" }),
96
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("p", { className: "text-base text-grey-80", children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "pr-1 font-bold", children: "Mission" }),
98
+ mission
99
+ ] })
100
+ ] }),
101
+ wow && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex gap-2", children: [
102
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: "\u{1F31F}" }),
103
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("p", { className: "text-base text-grey-80", children: [
104
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
105
+ wow
106
+ ] })
107
+ ] }),
108
+ website && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
109
+ LinkButton,
110
+ {
111
+ "data-testid": "company-website-link",
112
+ href: website,
113
+ target: "_blank",
114
+ rel: "noopener noreferrer",
115
+ children: "Website"
116
+ }
117
+ ) })
118
+ ] });
119
+ }
120
+
121
+ // src/components/primitives/avatar.tsx
122
+ var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
123
+ var React = __toESM(require("react"), 1);
124
+
125
+ // src/lib/utils.ts
126
+ var import_clsx = require("clsx");
127
+ var import_tailwind_merge = require("tailwind-merge");
128
+ function cn(...inputs) {
129
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
130
+ }
131
+
132
+ // src/components/primitives/avatar.tsx
133
+ var import_jsx_runtime4 = require("react/jsx-runtime");
134
+ var AvatarBase = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
135
+ AvatarPrimitive.Root,
136
+ {
137
+ ref,
138
+ className: cn("relative flex shrink-0 overflow-hidden rounded-full", className),
139
+ ...props
140
+ }
141
+ ));
142
+ AvatarBase.displayName = AvatarPrimitive.Root.displayName;
143
+ var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
144
+ AvatarPrimitive.Image,
145
+ {
146
+ ref,
147
+ className: cn("aspect-square h-full w-full", className),
148
+ "data-testid": "job-card-avatar",
149
+ ...props
150
+ }
151
+ ));
152
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
153
+ var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
154
+ AvatarPrimitive.Fallback,
155
+ {
156
+ ref,
157
+ className: cn(
158
+ "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",
159
+ className
160
+ ),
161
+ ...props
162
+ }
163
+ ));
164
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
165
+
166
+ // src/components/ui/Avatar.tsx
167
+ var import_cva = require("cva");
168
+ var import_link2 = __toESM(require("next/link"), 1);
169
+ var import_jsx_runtime5 = require("react/jsx-runtime");
170
+ function Avatar({ size, src, href, name, ...linkProps }) {
171
+ const fallbackShort = name?.slice(0, 2);
172
+ const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
173
+ const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
174
+ const renderAvatar = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(AvatarBase, { className: avatarVariants({ size }), children: [
175
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarImage, { src, alt: name }),
176
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AvatarFallback, { children: fallback?.toUpperCase() })
177
+ ] });
178
+ if (href) {
179
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_link2.default, { href, ...linkProps, children: renderAvatar() });
180
+ }
181
+ return renderAvatar();
182
+ }
183
+ var avatarVariants = (0, import_cva.cva)("ring ring-white ring-2", {
184
+ variants: {
185
+ size: {
186
+ large: "h-16 w-16",
187
+ medium: "h-10 w-10",
188
+ small: "h-8 w-8"
189
+ }
190
+ },
191
+ defaultVariants: {
192
+ size: "medium"
193
+ }
194
+ });
195
+
196
+ // src/components/company/CompanyTake.tsx
197
+ var import_jsx_runtime6 = require("react/jsx-runtime");
198
+ function CompanyTake({ content, avatarSrc }) {
199
+ if (!content) return null;
200
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
201
+ "div",
202
+ {
203
+ "data-testid": "company-take",
204
+ className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
205
+ children: [
206
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
207
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
208
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "mt-8 flex w-full items-center gap-3", children: [
209
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Avatar, { name: "Jon Lee", src: avatarSrc }),
210
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col flex-wrap items-start", children: [
211
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
212
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
213
+ ] })
214
+ ] })
215
+ ]
216
+ }
217
+ );
218
+ }
219
+
220
+ // src/components/ui/ReadMore.tsx
221
+ var import_react2 = require("react");
222
+ var import_react_markdown = __toESM(require("react-markdown"), 1);
223
+
224
+ // src/components/ui/Button.tsx
225
+ var import_react_slot = require("@radix-ui/react-slot");
226
+ var import_cva2 = require("cva");
227
+ var import_react = require("react");
228
+ var import_jsx_runtime7 = require("react/jsx-runtime");
229
+ var Button = (0, import_react.forwardRef)(
230
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
231
+ const Component = asChild ? import_react_slot.Slot : "button";
232
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
233
+ Component,
234
+ {
235
+ className: cn(buttonVariants({ variant, size, className })),
236
+ ref,
237
+ ...props
238
+ }
239
+ );
240
+ }
241
+ );
242
+ Button.displayName = "Button";
243
+ var buttonVariants = (0, import_cva2.cva)(
244
+ [
245
+ "flex",
246
+ "items-center",
247
+ "justify-center",
248
+ "gap-2",
249
+ "rounded-full",
250
+ "font-bold",
251
+ "outline-2",
252
+ "outline-offset-2",
253
+ "outline-dashed",
254
+ "outline-transparent"
255
+ ],
256
+ {
257
+ variants: {
258
+ variant: {
259
+ neutral: [
260
+ "bg-black",
261
+ "text-white",
262
+ "hover:bg-grey-90",
263
+ "active:bg-grey-80",
264
+ "focus:outline-purple-100",
265
+ "disabled:text-grey-40",
266
+ "disabled:bg-grey-10"
267
+ ],
268
+ primary: [
269
+ "bg-pickle-100",
270
+ "text-black",
271
+ "hover:bg-pickle-80",
272
+ "active:bg-pickle-60",
273
+ "focus:outline-purple-100",
274
+ "disabled:text-grey-40",
275
+ "disabled:bg-grey-10"
276
+ ],
277
+ secondary: [
278
+ "bg-green-80",
279
+ "text-white",
280
+ "hover:bg-green-90",
281
+ "active:bg-green-100",
282
+ "focus:outline-pickle-100",
283
+ "disabled:text-grey-40",
284
+ "disabled:bg-grey-10"
285
+ ],
286
+ transparent: [
287
+ "text-white",
288
+ "hover:bg-green-80",
289
+ "active:bg-green-100",
290
+ "focus:outline-pickle-100",
291
+ "disabled:text-grey-40"
292
+ ],
293
+ link: [
294
+ "leading-tight",
295
+ "text-black",
296
+ "underline",
297
+ "hover:text-purple-100",
298
+ "focus:text-black",
299
+ "focus:outline-purple-100",
300
+ "active:text-purple-80"
301
+ ]
302
+ },
303
+ size: {
304
+ small: ["h-10", "text-sm", "px-4", "py-2"],
305
+ medium: ["h-12", "text-base", "px-6", "py-3"],
306
+ large: ["h-14", "text-lg", "px-8", "py-4"]
307
+ }
308
+ },
309
+ defaultVariants: {
310
+ variant: "neutral",
311
+ size: "medium"
312
+ },
313
+ compoundVariants: [
314
+ {
315
+ variant: "link",
316
+ size: "small",
317
+ class: ["h-3", "text-xs", "p-0"]
318
+ },
319
+ {
320
+ variant: "link",
321
+ size: "medium",
322
+ class: ["h-4", "text-sm", "p-0"]
323
+ },
324
+ {
325
+ variant: "link",
326
+ size: "large",
327
+ class: ["h-6", "text-base", "p-0"]
328
+ }
329
+ ]
330
+ }
331
+ );
332
+
333
+ // src/components/ui/ReadMore.tsx
334
+ var import_jsx_runtime8 = require("react/jsx-runtime");
335
+ function ReadMore({ text, ...props }) {
336
+ const [isExpanded, setIsExpanded] = (0, import_react2.useState)(false);
337
+ const [maxWords, setMaxWords] = (0, import_react2.useState)(160);
338
+ (0, import_react2.useEffect)(() => {
339
+ const updateMaxWords = () => {
340
+ const windowWidth = window.innerWidth;
341
+ if (windowWidth <= 768) {
342
+ setMaxWords(50);
343
+ } else {
344
+ setMaxWords(160);
345
+ }
346
+ };
347
+ updateMaxWords();
348
+ window.addEventListener("resize", updateMaxWords);
349
+ return () => window.removeEventListener("resize", updateMaxWords);
350
+ }, []);
351
+ function createReadMoreText(text2, maxWords2, isExpanded2) {
352
+ const words = text2.split(" ");
353
+ const snippet2 = isExpanded2 ? text2 : words.slice(0, maxWords2).join(" ");
354
+ const readMoreText = isExpanded2 ? "" : "...";
355
+ return `${snippet2} ${readMoreText}`;
356
+ }
357
+ const toggleText = () => setIsExpanded(!isExpanded);
358
+ const snippet = createReadMoreText(text, maxWords, isExpanded);
359
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { ...props, children: [
360
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_markdown.default, { children: snippet }) }),
361
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { className: "mt-2 flex items-center justify-center", variant: "link", onClick: toggleText, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("p", { className: "text-sm font-bold underline underline-offset-2", children: [
362
+ "Read ",
363
+ isExpanded ? "less" : "more"
364
+ ] }) })
365
+ ] });
366
+ }
367
+
368
+ // src/components/jobPost/JobDescription.tsx
369
+ var import_jsx_runtime9 = require("react/jsx-runtime");
370
+ function JobDescription({ description }) {
371
+ if (!description) return null;
372
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex w-full flex-col gap-2", children: [
373
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("h3", { className: "text-xl font-bold", children: "Job Description" }),
374
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ReadMore, { text: description })
375
+ ] });
376
+ }
377
+
378
+ // src/components/jobPost/JobHeader.tsx
379
+ var import_lucide_react3 = require("lucide-react");
380
+ var import_image = __toESM(require("next/image"), 1);
381
+
382
+ // src/components/buttons/BackButton.tsx
383
+ var import_lucide_react = require("lucide-react");
384
+ var import_navigation2 = require("next/navigation");
385
+
386
+ // src/components/ui/Icon.tsx
387
+ var import_react_slot2 = require("@radix-ui/react-slot");
388
+ var import_cva3 = require("cva");
389
+ var import_react3 = require("react");
390
+ var import_tailwind_merge2 = require("tailwind-merge");
391
+ var import_jsx_runtime10 = require("react/jsx-runtime");
392
+ var Icon = (0, import_react3.forwardRef)(
393
+ ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
394
+ const Component = readonly ? import_react_slot2.Slot : "button";
395
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
396
+ Component,
397
+ {
398
+ className: cn(
399
+ (0, import_tailwind_merge2.twMerge)(iconVariants({ variant: active ? "active" : variant, size })),
400
+ className
401
+ ),
402
+ ...props,
403
+ ref
404
+ }
405
+ );
406
+ }
407
+ );
408
+ Icon.displayName = "Icon";
409
+ var iconVariants = (0, import_cva3.cva)(
410
+ [
411
+ "inline-flex",
412
+ "items-center",
413
+ "rounded-full",
414
+ "outline-2",
415
+ "outline-offset-2",
416
+ "outline-dashed",
417
+ "outline-transparent",
418
+ "disabled:text-grey-40",
419
+ "disabled:bg-transparent",
420
+ "disabled:pointer-events-none"
421
+ ],
422
+ {
423
+ variants: {
424
+ variant: {
425
+ filled: [
426
+ "border",
427
+ "border-green-80",
428
+ "bg-green-90",
429
+ "text-white",
430
+ "hover:bg-green-80",
431
+ "active:bg-green-80",
432
+ "focus:outline-pickle-100",
433
+ "disabled:bg-green-70"
434
+ ],
435
+ transparent: [
436
+ "text-black",
437
+ "hover:bg-grey-5",
438
+ "active:bg-grey-10",
439
+ "focus:outline-purple-100"
440
+ ],
441
+ tonal: [
442
+ "border",
443
+ "border-grey-5",
444
+ "hover:border-grey-10",
445
+ "active:border-grey-20",
446
+ "focus:outline-purple-100"
447
+ ],
448
+ active: ["text-black", "bg-pickle-100"]
449
+ },
450
+ size: {
451
+ small: ["h-10", "w-10", "p-3"],
452
+ medium: ["h-12", "w-12", "p-4"],
453
+ large: ["h-14", "w-14", "p-4"]
454
+ }
455
+ },
456
+ defaultVariants: {
457
+ variant: "filled",
458
+ size: "medium"
459
+ }
460
+ }
461
+ );
462
+
463
+ // src/hooks/useWindowHistory.ts
464
+ var import_react5 = require("react");
465
+
466
+ // src/contexts/WindowHistoryProvider.tsx
467
+ var import_navigation = require("next/navigation");
468
+ var import_react4 = require("react");
469
+ var import_jsx_runtime11 = require("react/jsx-runtime");
470
+ var WindowHistoryContext = (0, import_react4.createContext)({});
471
+
472
+ // src/hooks/useWindowHistory.ts
473
+ function useWindowHistory() {
474
+ const windowHistoryContext = (0, import_react5.useContext)(WindowHistoryContext);
475
+ if (Object.keys(windowHistoryContext).length === 0) {
476
+ throw new Error("useWindowHistory was used outside of its WindowHistoryContext");
477
+ }
478
+ return windowHistoryContext;
479
+ }
480
+
481
+ // src/components/buttons/BackButton.tsx
482
+ var import_jsx_runtime12 = require("react/jsx-runtime");
483
+ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
484
+ const { history } = useWindowHistory();
485
+ const router = (0, import_navigation2.useRouter)();
486
+ const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
487
+ const goBack = () => {
488
+ const previous = history[history.length - 2];
489
+ history.length > 1 && isAcceptedRoute(previous) ? router.back() : router.push(fallbackHref ?? "/");
490
+ };
491
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
492
+ Icon,
493
+ {
494
+ "aria-label": "back button",
495
+ variant: "transparent",
496
+ size: "small",
497
+ onClick: goBack,
498
+ className,
499
+ ...props,
500
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react.X, {})
501
+ }
502
+ );
503
+ }
504
+
505
+ // src/components/ui/Chip.tsx
506
+ var import_cva4 = require("cva");
507
+ var import_tailwind_merge3 = require("tailwind-merge");
508
+ var import_jsx_runtime13 = require("react/jsx-runtime");
509
+ var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: (0, import_tailwind_merge3.twMerge)(chipVariants({ variant, size, className })), ...props });
510
+ var chipVariants = (0, import_cva4.cva)(["flex", "items-center", "rounded-3xl", "border", "w-fit"], {
511
+ variants: {
512
+ variant: {
513
+ neutral: ["text-grey-80", "border-grey-10"],
514
+ primary: ["text-purple-100", "border-purple-20"],
515
+ danger: ["text-pumpkin-100", "border-pumpkin-20"],
516
+ onboarding: ["text-green-100", "bg-green-10", "cursor-pointer"],
517
+ onboardingSelected: ["text-white", "bg-green-90", "cursor-pointer"]
518
+ },
519
+ size: {
520
+ small: ["text-sm", "leading-5", "px-2", "py-1", "gap-1.5"],
521
+ medium: ["text-base", "leading-6", "px-3", "py-2", "gap-2"]
522
+ }
523
+ },
524
+ defaultVariants: {
525
+ variant: "neutral",
526
+ size: "medium"
527
+ }
528
+ });
529
+ var Chip_default = Chip;
530
+
531
+ // src/lib/icons.ts
532
+ var import_lucide_react2 = require("lucide-react");
533
+ var iconMap = {
534
+ house: import_lucide_react2.Home,
535
+ layers: import_lucide_react2.Layers,
536
+ users: import_lucide_react2.Users,
537
+ settings: import_lucide_react2.Settings,
538
+ building: import_lucide_react2.Building,
539
+ bell: import_lucide_react2.Bell,
540
+ wallet: import_lucide_react2.Wallet,
541
+ contact: import_lucide_react2.Contact,
542
+ banknote: import_lucide_react2.Banknote,
543
+ "message-square-dot": import_lucide_react2.MessageSquareDot,
544
+ "life-buoy": import_lucide_react2.LifeBuoy,
545
+ "building-2": import_lucide_react2.Building2,
546
+ "gallery-vertical-end": import_lucide_react2.GalleryVerticalEnd,
547
+ "square-kanban": import_lucide_react2.SquareKanban,
548
+ "briefcase-business": import_lucide_react2.BriefcaseBusiness,
549
+ "circle-user": import_lucide_react2.CircleUser,
550
+ "key-round": import_lucide_react2.KeyRound,
551
+ "clock-2": import_lucide_react2.Clock2,
552
+ "circle-user-round": import_lucide_react2.CircleUserRound,
553
+ "map-pin": import_lucide_react2.MapPin
554
+ };
555
+
556
+ // src/components/jobPost/JobHeader.tsx
557
+ var import_jsx_runtime14 = require("react/jsx-runtime");
558
+ function JobHeader({
559
+ title,
560
+ subtitles,
561
+ standalone,
562
+ bannerSrc,
563
+ avatarSrc,
564
+ avatarName,
565
+ avatarHref,
566
+ backFallbackHref,
567
+ backAcceptedRoutes,
568
+ actions,
569
+ tags
570
+ }) {
571
+ const renderIcon = (icon) => {
572
+ const Icon2 = iconMap[icon];
573
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon2, { size: 18 });
574
+ };
575
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
576
+ "div",
577
+ {
578
+ "data-testid": "job-header-root",
579
+ className: cn(
580
+ "-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
581
+ !standalone && "rounded-3xl"
582
+ ),
583
+ children: [
584
+ !standalone && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "relative flex min-h-16 w-full items-center rounded-t-3xl bg-transparent md:min-h-24 md:flex-row lg:min-h-32", children: [
585
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
586
+ import_image.default,
587
+ {
588
+ className: "h-full w-full rounded-t-3xl object-cover",
589
+ src: bannerSrc,
590
+ alt: "job banner",
591
+ fill: true
592
+ }
593
+ ),
594
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
595
+ BackButton,
596
+ {
597
+ acceptedRoutes: backAcceptedRoutes,
598
+ fallbackHref: backFallbackHref,
599
+ className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
600
+ "data-testid": "job-header-back-button"
601
+ }
602
+ ),
603
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
604
+ "div",
605
+ {
606
+ className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
607
+ "data-testid": "job-header-avatar",
608
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
609
+ Avatar,
610
+ {
611
+ size: "large",
612
+ target: "_blank",
613
+ href: avatarHref,
614
+ name: avatarName,
615
+ src: avatarSrc,
616
+ rel: "noopener noreferrer"
617
+ }
618
+ )
619
+ }
620
+ )
621
+ ] }),
622
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
623
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex flex-col md:flex-row", children: [
624
+ standalone && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
625
+ Avatar,
626
+ {
627
+ size: "large",
628
+ target: "_blank",
629
+ href: avatarHref,
630
+ name: avatarName,
631
+ src: avatarSrc,
632
+ rel: "noopener noreferrer"
633
+ }
634
+ ) }),
635
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg", children: subtitles?.map((subtitle, i) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
636
+ "div",
637
+ {
638
+ "data-testid": `job-header-subtitle-${i}`,
639
+ className: "flex items-center",
640
+ children: [
641
+ subtitle,
642
+ i < subtitles.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react3.Dot, { className: "mx-1 shrink-0", size: 10 })
643
+ ]
644
+ },
645
+ subtitle
646
+ )) })
647
+ ] }),
648
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
649
+ "div",
650
+ {
651
+ "data-testid": "job-header-content",
652
+ className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
653
+ children: [
654
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
655
+ "h2",
656
+ {
657
+ "data-testid": "job-header-title",
658
+ className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg",
659
+ children: title
660
+ }
661
+ ),
662
+ !!actions && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
663
+ "div",
664
+ {
665
+ className: "flex w-full justify-end gap-2 md:w-auto",
666
+ "data-testid": "job-header-actions",
667
+ children: actions
668
+ }
669
+ )
670
+ ]
671
+ }
672
+ ),
673
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
674
+ "div",
675
+ {
676
+ "data-testid": "job-header-tags",
677
+ className: "flex flex-row flex-wrap items-center justify-start gap-2",
678
+ children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
679
+ Chip_default,
680
+ {
681
+ size: "small",
682
+ variant: "neutral",
683
+ "aria-label": name,
684
+ "data-testid": `job-header-tag-${name}`,
685
+ children: [
686
+ renderIcon(icon),
687
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: label })
688
+ ]
689
+ },
690
+ name
691
+ ))
692
+ }
693
+ )
694
+ ] })
695
+ ]
696
+ }
697
+ );
698
+ }
699
+
700
+ // src/types/data/shared_pickle_output_latest.ts
701
+ var import_zod = require("zod");
702
+ var TypeEnum = import_zod.z.enum(["MONETARY_AMOUNT"]);
703
+ var DetailLevelEnum = import_zod.z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
704
+ var UnitTextEnum = import_zod.z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
705
+ var CurrencyEnum = import_zod.z.enum(["EUR", "GBP", "USD"]);
706
+ var postalAddressSchema = import_zod.z.object({
707
+ version: import_zod.z.literal("1.0.0").default("1.0.0"),
708
+ type: import_zod.z.string().describe("Document type used within sanity"),
709
+ addressCountry: import_zod.z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
710
+ addressRegion: import_zod.z.optional(import_zod.z.string()).describe("The region in which the locality is, and which is in the country."),
711
+ addressLocality: import_zod.z.optional(import_zod.z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
712
+ streetAddress: import_zod.z.optional(import_zod.z.string()).describe("The street address within the locality."),
713
+ postalCode: import_zod.z.optional(import_zod.z.string()).describe("The postal code")
714
+ });
715
+ var placeSchema = import_zod.z.object({
716
+ version: import_zod.z.literal("1.0.0").default("1.0.0"),
717
+ detailLevel: import_zod.z.optional(DetailLevelEnum),
718
+ latitude: import_zod.z.optional(import_zod.z.number()).describe("The latitude of a location."),
719
+ longitude: import_zod.z.optional(import_zod.z.number()).describe("The longitude of a location."),
720
+ address: import_zod.z.optional(postalAddressSchema).describe("The physical place of the location")
721
+ });
722
+ var quantitativeValueSchema = import_zod.z.object({
723
+ version: import_zod.z.literal("1.0.0").default("1.0.0"),
724
+ type: import_zod.z.string().describe("Document type used within sanity"),
725
+ value: import_zod.z.optional(import_zod.z.number()).describe("The single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Typically used for a single salary."),
726
+ minValue: import_zod.z.optional(import_zod.z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
727
+ maxValue: import_zod.z.optional(import_zod.z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
728
+ unitText: UnitTextEnum
729
+ });
730
+ var monetaryAmountSchema = import_zod.z.object({
731
+ version: import_zod.z.literal("1.0.0").default("1.0.0"),
732
+ type: import_zod.z.string().describe("Document type used within sanity"),
733
+ singleValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Deprecated - use value.value instead."),
734
+ minValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
735
+ maxValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
736
+ value: import_zod.z.optional(quantitativeValueSchema).describe("The quantitative_value for a given salary"),
737
+ currency: import_zod.z.optional(CurrencyEnum)
738
+ });
739
+
740
+ // src/lib/salaryRange.ts
741
+ function salaryRange(salary) {
742
+ if (!salary) return null;
743
+ const min = salary.minValue;
744
+ const max = salary.maxValue;
745
+ const single = salary.singleValue;
746
+ const signs = {
747
+ [CurrencyEnum.Values.USD]: "$",
748
+ [CurrencyEnum.Values.GBP]: "\xA3",
749
+ [CurrencyEnum.Values.EUR]: "\u20AC"
750
+ };
751
+ const sign = signs[salary.currency ?? CurrencyEnum.Values.USD];
752
+ if (min == null && max == null && single == null) return null;
753
+ if (single != null) return sign + single.toLocaleString();
754
+ if (min === max) return sign + min?.toLocaleString();
755
+ if (min != null && max != null)
756
+ return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString();
757
+ return null;
758
+ }
759
+
760
+ // src/hooks/useDisplayText.ts
761
+ var import_react6 = require("react");
762
+
763
+ // src/lib/mappings.ts
764
+ var employmentTypeDisplayText = {
765
+ FULL_TIME: {
766
+ en: "Full Time"
767
+ },
768
+ INTERNSHIP: {
769
+ en: "Internship"
770
+ },
771
+ OTHER: {
772
+ en: "Other"
773
+ },
774
+ PART_TIME: {
775
+ en: "Part Time"
776
+ },
777
+ PER_DIEM: {
778
+ en: "Per-Diem"
779
+ },
780
+ TEMPORARY: {
781
+ en: "Temporary"
782
+ },
783
+ CONTRACT: {
784
+ en: "Contract"
785
+ }
786
+ };
787
+ var unitTextDisplayText = {
788
+ DAY: {
789
+ en: "Day"
790
+ },
791
+ HOUR: {
792
+ en: "Hour"
793
+ },
794
+ MONTH: {
795
+ en: "Month"
796
+ },
797
+ PER_ACTIVITY: {
798
+ en: "Per Activity"
799
+ },
800
+ WEEK: {
801
+ en: "Week"
802
+ },
803
+ YEAR: {
804
+ en: "Year"
805
+ }
806
+ };
807
+ var currencyDisplayText = {
808
+ EUR: {
809
+ en: "\u20AC"
810
+ },
811
+ GBP: {
812
+ en: "\xA3"
813
+ },
814
+ USD: {
815
+ en: "$"
816
+ }
817
+ };
818
+ var employmentLevelDisplayText = {
819
+ DIRECTOR: {
820
+ en: "Director"
821
+ },
822
+ ENTRY_LEVEL: {
823
+ en: "Entry Level"
824
+ },
825
+ EXECUTIVE: {
826
+ en: "Executive"
827
+ },
828
+ EXPERIENCED: {
829
+ en: "Experienced"
830
+ },
831
+ INTERN: {
832
+ en: "Intern"
833
+ },
834
+ MANAGER: {
835
+ en: "Manager"
836
+ }
837
+ };
838
+ var jobFunctionDisplayText = {
839
+ CLINICAL_RESEARCH: {
840
+ en: "Clinical Research"
841
+ },
842
+ CUSTOMER_SUCCESS: {
843
+ en: "Customer Success"
844
+ },
845
+ DATA_ANALYTICS: {
846
+ en: "Data Analytics"
847
+ },
848
+ FINANCE_AND_AUDIT: {
849
+ en: "Finance and Audit"
850
+ },
851
+ MARKETING: {
852
+ en: "Marketing"
853
+ },
854
+ OPERATIONS: {
855
+ en: "Operations"
856
+ },
857
+ PEOPLE_HUMAN_RESOURCES: {
858
+ en: "People Human Resources"
859
+ },
860
+ PRODUCT_AND_TECH: {
861
+ en: "Product and Tech"
862
+ },
863
+ QUALITY_ASSURANCE_AND_OUTCOMES: {
864
+ en: "Quality Assurance and Outcomes"
865
+ },
866
+ SALES_AND_BUSINESS_DEVELOPMENT: {
867
+ en: "Sales and Business Development"
868
+ },
869
+ STRATEGY_AND_CONSULTING: {
870
+ en: "Strategy and Consulting"
871
+ }
872
+ };
873
+ var bestFitDisplayText = {
874
+ DENTIST: {
875
+ en: "Dentist"
876
+ },
877
+ DIETICIAN: {
878
+ en: "Dietician"
879
+ },
880
+ DOULA: {
881
+ en: "Doula"
882
+ },
883
+ MEDICAL_ASSISTANT: {
884
+ en: "Medical Assistant"
885
+ },
886
+ MIDWIFE: {
887
+ en: "Midwife"
888
+ },
889
+ NURSE: {
890
+ en: "Nurse"
891
+ },
892
+ OCCUPATIONAL_THERAPIST: {
893
+ en: "Occupational Therapist"
894
+ },
895
+ PHARMACIST: {
896
+ en: "Pharmacist"
897
+ },
898
+ PHYSICAL_THERAPIST: {
899
+ en: "Physical Therapist"
900
+ },
901
+ PHYSICIAN: {
902
+ en: "Physician"
903
+ },
904
+ PHYSICIAN_ASSISTANT: {
905
+ en: "Physician Assistant"
906
+ },
907
+ PSYCHOLOGIST: {
908
+ en: "Psychologist"
909
+ },
910
+ RADIOLOGIST: {
911
+ en: "Radiologist"
912
+ },
913
+ SOCIAL_WORKER: {
914
+ en: "Social Worker"
915
+ },
916
+ SPEECH_LANGUAGE_PATHOLOGIST: {
917
+ en: "Speech Language Pathologist"
918
+ },
919
+ SURGEON: {
920
+ en: "Surgeon"
921
+ }
922
+ };
923
+ var clinicalSpecialtyDisplayText = {
924
+ ANESTHESIOLOGY: {
925
+ en: "Anesthesiology"
926
+ },
927
+ CARDIOLOGY: {
928
+ en: "Cardiology"
929
+ },
930
+ CARDIOVASCULAR_AND_PULMONARY: {
931
+ en: "Cardiovascular and Pulmonary"
932
+ },
933
+ CASE_MANAGEMENT: {
934
+ en: "Case Management"
935
+ },
936
+ CHRONIC_PAIN: {
937
+ en: "Chronic Pain"
938
+ },
939
+ CLINICAL_ELECTROPHYSIOLOGY: {
940
+ en: "Clinical Electrophysiology"
941
+ },
942
+ CRITICAL_AND_ACUTE_CARE: {
943
+ en: "Critical and Acute Care"
944
+ },
945
+ DERMATOLOGY: {
946
+ en: "Dermatology"
947
+ },
948
+ DIALYSIS: {
949
+ en: "Dialysis"
950
+ },
951
+ EMERGENCY_MEDICINE: {
952
+ en: "Emergency Medicine"
953
+ },
954
+ ENDOCRINOLOGY: {
955
+ en: "Endocrinology"
956
+ },
957
+ ERGONOMICS: {
958
+ en: "Ergonomics"
959
+ },
960
+ FEEDING_EATING_AND_SWALLOWING: {
961
+ en: "Feeding, Eating, and Swallowing"
962
+ },
963
+ GASTROENTEROLOGY: {
964
+ en: "Gastroenterology"
965
+ },
966
+ GERIATRICS: {
967
+ en: "Geriatrics"
968
+ },
969
+ HAND_THERAPY: {
970
+ en: "Hand Therapy"
971
+ },
972
+ HEMATOLOGY: {
973
+ en: "Hematology"
974
+ },
975
+ HOLISTIC_MEDICINE: {
976
+ en: "Holistic Medicine"
977
+ },
978
+ INFORMATICS: {
979
+ en: "Informatics"
980
+ },
981
+ INTERNAL_MEDICINE: {
982
+ en: "Internal Medicine"
983
+ },
984
+ LABOR_AND_DELIVERY: {
985
+ en: "Labor and Delivery"
986
+ },
987
+ MANUAL_THERAPY: {
988
+ en: "Manual Therapy"
989
+ },
990
+ MED_SURG: {
991
+ en: "Medical-Surgical"
992
+ },
993
+ MENTAL_HEALTH: {
994
+ en: "Mental Health"
995
+ },
996
+ NEPHROLOGY: {
997
+ en: "Nephrology"
998
+ },
999
+ NEUROLOGY: {
1000
+ en: "Neurology"
1001
+ },
1002
+ ONCOLOGY: {
1003
+ en: "Oncology"
1004
+ },
1005
+ ORTHOPEDICS: {
1006
+ en: "Orthopedics"
1007
+ },
1008
+ OTOLARYNGOLOGY: {
1009
+ en: "Otolaryngology"
1010
+ },
1011
+ PEDIATRICS: {
1012
+ en: "Pediatrics"
1013
+ },
1014
+ PHYSICAL_AND_REHABILITATION_MEDICINE: {
1015
+ en: "Physical and Rehabilitation Medicine"
1016
+ },
1017
+ PLASTIC_SURGERY: {
1018
+ en: "Plastic Surgery"
1019
+ },
1020
+ PRIMARY_CARE: {
1021
+ en: "Primary Care"
1022
+ },
1023
+ PSYCHIATRY: {
1024
+ en: "Psychiatry"
1025
+ },
1026
+ PULMONOLOGY: {
1027
+ en: "Pulmonology"
1028
+ },
1029
+ RADIOLOGY: {
1030
+ en: "Radiology"
1031
+ },
1032
+ SENSORY: {
1033
+ en: "Sensory"
1034
+ },
1035
+ SPORTS: {
1036
+ en: "Sports"
1037
+ },
1038
+ SURGERY: {
1039
+ en: "Surgery"
1040
+ },
1041
+ TRANSPLANT_SURGERY: {
1042
+ en: "Transplant Surgery"
1043
+ },
1044
+ TRAUMA_MEDICINE: {
1045
+ en: "Trauma Medicine"
1046
+ },
1047
+ URGENT_CARE: {
1048
+ en: "Urgent Care"
1049
+ },
1050
+ UROLOGY: {
1051
+ en: "Urology"
1052
+ },
1053
+ VISION: {
1054
+ en: "Vision"
1055
+ },
1056
+ WOMENS_HEALTH: {
1057
+ en: "Women's Health"
1058
+ },
1059
+ WOUND_AND_BURN_CARE: {
1060
+ en: "Wound and Burn Care"
1061
+ },
1062
+ WOUND_MANAGEMENT: {
1063
+ en: "Wound Management"
1064
+ }
1065
+ };
1066
+ var shiftDisplayText = {
1067
+ TEN_HOUR: {
1068
+ en: "10 Hour"
1069
+ },
1070
+ TWELVE_HOUR: {
1071
+ en: "12 Hour"
1072
+ },
1073
+ EIGHT_HOUR: {
1074
+ en: "8 Hour"
1075
+ },
1076
+ DAY: {
1077
+ en: "Day"
1078
+ },
1079
+ EVENING: {
1080
+ en: "Evening"
1081
+ },
1082
+ FLEXIBLE: {
1083
+ en: "Flexible"
1084
+ },
1085
+ MID_SHIFT: {
1086
+ en: "Mid Shift"
1087
+ },
1088
+ MONDAY_TO_FRIDAY: {
1089
+ en: "Monday to Friday"
1090
+ },
1091
+ NIGHT: {
1092
+ en: "Night"
1093
+ },
1094
+ ON_CALL: {
1095
+ en: "On Call"
1096
+ },
1097
+ WEEKENDS: {
1098
+ en: "Weekends"
1099
+ }
1100
+ };
1101
+ var clinicalSettingDisplayText = {
1102
+ ACUTE_CARE: {
1103
+ en: "Acute Care"
1104
+ },
1105
+ AMBULATORY_SURGERY_CENTER: {
1106
+ en: "Ambulatory Surgery Center"
1107
+ },
1108
+ CLINIC: {
1109
+ en: "Clinic"
1110
+ },
1111
+ HOME_HEALTH: {
1112
+ en: "Home Health"
1113
+ },
1114
+ HOSPITAL: {
1115
+ en: "Hospital"
1116
+ },
1117
+ INPATIENT: {
1118
+ en: "Inpatient"
1119
+ },
1120
+ LONG_TERM_CARE: {
1121
+ en: "Long Term Care"
1122
+ },
1123
+ MED_SPA: {
1124
+ en: "Med Spa"
1125
+ },
1126
+ NURSING_HOME: {
1127
+ en: "Nursing Home"
1128
+ },
1129
+ OFFICE: {
1130
+ en: "Office"
1131
+ },
1132
+ OUTPATIENT: {
1133
+ en: "Outpatient"
1134
+ },
1135
+ PRIVATE_PRACTICE: {
1136
+ en: "Private Practice"
1137
+ },
1138
+ REHAB_CENTER: {
1139
+ en: "Rehab Center"
1140
+ },
1141
+ SCHOOL: {
1142
+ en: "School"
1143
+ },
1144
+ SKILLED_NURSING_FACILITY: {
1145
+ en: "Skilled Nursing Facility"
1146
+ }
1147
+ };
1148
+ var defaultMappings = {
1149
+ employmentType: employmentTypeDisplayText,
1150
+ unitText: unitTextDisplayText,
1151
+ currency: currencyDisplayText,
1152
+ employmentLevel: employmentLevelDisplayText,
1153
+ jobFunction: jobFunctionDisplayText,
1154
+ bestFit: bestFitDisplayText,
1155
+ clinicalSpecialty: clinicalSpecialtyDisplayText,
1156
+ clinicalSetting: clinicalSettingDisplayText,
1157
+ shift: shiftDisplayText
1158
+ };
1159
+
1160
+ // src/types/displayText.errors.tsx
1161
+ var DisplayTextScopeNotFoundError = class extends Error {
1162
+ constructor(scope) {
1163
+ super(`No display text mapping found for scope: ${scope}`);
1164
+ this.name = "DisplayTextScopeNotFoundError";
1165
+ }
1166
+ };
1167
+ var DisplayTextValueNotFoundError = class extends Error {
1168
+ constructor(value, scope) {
1169
+ super(`No display text found for value: '${value}' in scope: '${scope}'`);
1170
+ this.name = "DisplayTextValueNotFoundError";
1171
+ }
1172
+ };
1173
+
1174
+ // src/services/displayText.tsx
1175
+ var DisplayTextService = class {
1176
+ constructor(customMappings) {
1177
+ this.defaultLanguage = "en";
1178
+ this.mappings = {
1179
+ ...defaultMappings,
1180
+ // Use all pre-defined mappings as defaults
1181
+ ...customMappings
1182
+ // Override with any custom mappings if provided
1183
+ };
1184
+ }
1185
+ async getDisplayText(scope, value, language = this.defaultLanguage) {
1186
+ const scopeMapping = this.mappings[scope];
1187
+ if (!scopeMapping) {
1188
+ throw new DisplayTextScopeNotFoundError(scope);
1189
+ }
1190
+ if (Array.isArray(value)) {
1191
+ const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language));
1192
+ const displayTexts2 = await Promise.all(displayTextPromises);
1193
+ return displayTexts2.filter((v) => !!v).join(", ");
1194
+ }
1195
+ const displayTexts = scopeMapping[value];
1196
+ if (!displayTexts) {
1197
+ throw new DisplayTextValueNotFoundError(value, scope);
1198
+ }
1199
+ return displayTexts[language] || displayTexts[this.defaultLanguage] || value;
1200
+ }
1201
+ };
1202
+
1203
+ // src/hooks/useDisplayText.ts
1204
+ var useDisplayText = (scope, value) => {
1205
+ const [displayText, setDisplayText] = (0, import_react6.useState)("");
1206
+ const displayService = (0, import_react6.useMemo)(() => new DisplayTextService(), []);
1207
+ (0, import_react6.useEffect)(() => {
1208
+ if (!displayService || !value) {
1209
+ setDisplayText("");
1210
+ return;
1211
+ }
1212
+ void (async () => {
1213
+ try {
1214
+ const result = await displayService.getDisplayText(scope, value);
1215
+ if (typeof result === "string") {
1216
+ setDisplayText(result);
1217
+ } else {
1218
+ console.error("Expected a string result, but got:", result);
1219
+ }
1220
+ } catch (error) {
1221
+ if (error instanceof DisplayTextValueNotFoundError) {
1222
+ console.warn("Display text value not found:", value);
1223
+ setDisplayText(String(value));
1224
+ } else {
1225
+ console.error("Unexpected error formatting text:", error);
1226
+ setDisplayText(String(value));
1227
+ }
1228
+ }
1229
+ })();
1230
+ }, [scope, value, displayService]);
1231
+ return displayText;
1232
+ };
1233
+
1234
+ // src/lib/locations.ts
1235
+ function formattedAddress(address) {
1236
+ const { addressLocality, addressRegion, addressCountry } = address;
1237
+ if (addressLocality && addressRegion) return `${addressLocality}, ${addressRegion}`;
1238
+ if (addressRegion && addressCountry) return `${addressRegion}, ${addressCountry}`;
1239
+ if (addressRegion) return addressRegion;
1240
+ if (addressCountry) return addressCountry;
1241
+ return null;
1242
+ }
1243
+ function formattedJobLocation(job) {
1244
+ const address = job.jobLocation && formattedAddress(job.jobLocation);
1245
+ const remote = job.isRemote ? "Remote" : "";
1246
+ return [address, remote].filter(Boolean).join(" | ");
1247
+ }
1248
+
1249
+ // src/components/jobPost/JobPost.tsx
1250
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1251
+ function JobPost({
1252
+ job,
1253
+ bannerSrc,
1254
+ avatarSrc,
1255
+ standalone,
1256
+ fallbackHref,
1257
+ actions
1258
+ }) {
1259
+ const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
1260
+ const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
1261
+ const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
1262
+ const formattedLocation = formattedJobLocation(job);
1263
+ const formattedSalary = salaryRange(job.estimatedSalary);
1264
+ const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
1265
+ addSuffix: true
1266
+ });
1267
+ const tags = [
1268
+ !!formattedSalary && {
1269
+ icon: "banknote",
1270
+ name: "salary",
1271
+ label: `${formattedSalary} a year`
1272
+ },
1273
+ !!formattedEmploymentType && {
1274
+ icon: "briefcase-business",
1275
+ name: "employmentType",
1276
+ label: formattedEmploymentType
1277
+ },
1278
+ !!formattedEmploymentLevel && {
1279
+ icon: "circle-user",
1280
+ name: "level",
1281
+ label: formattedEmploymentLevel
1282
+ },
1283
+ !!formattedJobFunction && {
1284
+ icon: "briefcase-business",
1285
+ name: "jobFunction",
1286
+ label: formattedJobFunction
1287
+ },
1288
+ !!formattedLocation && {
1289
+ icon: "map-pin",
1290
+ name: "location",
1291
+ label: formattedLocation
1292
+ }
1293
+ ].filter((t) => !!t);
1294
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1295
+ "div",
1296
+ {
1297
+ className: cn(
1298
+ "flex flex-col gap-10 pb-4",
1299
+ !standalone && "border-1 rounded-3xl border-grey-5"
1300
+ ),
1301
+ children: [
1302
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1303
+ JobHeader,
1304
+ {
1305
+ title: job.title,
1306
+ bannerSrc,
1307
+ avatarName: job.hiringOrganization?.companyName,
1308
+ subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
1309
+ actions,
1310
+ standalone,
1311
+ backFallbackHref: fallbackHref,
1312
+ tags
1313
+ }
1314
+ ),
1315
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col gap-8 px-6", children: [
1316
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(JobDescription, { description: job.description }),
1317
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1318
+ CompanyTake,
1319
+ {
1320
+ avatarSrc,
1321
+ content: job.hiringOrganization?.companyNDG?.companyNDGTake
1322
+ }
1323
+ ),
1324
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1325
+ CompanyInformation,
1326
+ {
1327
+ name: job.hiringOrganization?.companyName ?? "",
1328
+ how: job.hiringOrganization?.companyPhilosophy?.companyHow,
1329
+ mission: job.hiringOrganization?.companyPhilosophy?.mission,
1330
+ wow: job.hiringOrganization?.companyNDG?.companyWow,
1331
+ website: job.hiringOrganization?.companyWebsite
1332
+ }
1333
+ ),
1334
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1335
+ CompanyBenefits,
1336
+ {
1337
+ benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.description).filter((d) => d !== void 0)
1338
+ }
1339
+ )
1340
+ ] })
1341
+ ]
1342
+ }
1343
+ );
1344
+ }
1345
+ // Annotate the CommonJS export names for ESM import in node:
1346
+ 0 && (module.exports = {
1347
+ JobPost
1348
+ });
1349
+ //# sourceMappingURL=JobPost.cjs.map