@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,161 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/components/buttons/BackButton.tsx
22
+ var BackButton_exports = {};
23
+ __export(BackButton_exports, {
24
+ BackButton: () => BackButton
25
+ });
26
+ module.exports = __toCommonJS(BackButton_exports);
27
+ var import_lucide_react = require("lucide-react");
28
+ var import_navigation2 = require("next/navigation");
29
+
30
+ // src/components/ui/Icon.tsx
31
+ var import_react_slot = require("@radix-ui/react-slot");
32
+ var import_cva = require("cva");
33
+ var import_react = require("react");
34
+ var import_tailwind_merge2 = require("tailwind-merge");
35
+
36
+ // src/lib/utils.ts
37
+ var import_clsx = require("clsx");
38
+ var import_tailwind_merge = require("tailwind-merge");
39
+ function cn(...inputs) {
40
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
41
+ }
42
+
43
+ // src/components/ui/Icon.tsx
44
+ var import_jsx_runtime = require("react/jsx-runtime");
45
+ var Icon = (0, import_react.forwardRef)(
46
+ ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
47
+ const Component = readonly ? import_react_slot.Slot : "button";
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
49
+ Component,
50
+ {
51
+ className: cn(
52
+ (0, import_tailwind_merge2.twMerge)(iconVariants({ variant: active ? "active" : variant, size })),
53
+ className
54
+ ),
55
+ ...props,
56
+ ref
57
+ }
58
+ );
59
+ }
60
+ );
61
+ Icon.displayName = "Icon";
62
+ var iconVariants = (0, import_cva.cva)(
63
+ [
64
+ "inline-flex",
65
+ "items-center",
66
+ "rounded-full",
67
+ "outline-2",
68
+ "outline-offset-2",
69
+ "outline-dashed",
70
+ "outline-transparent",
71
+ "disabled:text-grey-40",
72
+ "disabled:bg-transparent",
73
+ "disabled:pointer-events-none"
74
+ ],
75
+ {
76
+ variants: {
77
+ variant: {
78
+ filled: [
79
+ "border",
80
+ "border-green-80",
81
+ "bg-green-90",
82
+ "text-white",
83
+ "hover:bg-green-80",
84
+ "active:bg-green-80",
85
+ "focus:outline-pickle-100",
86
+ "disabled:bg-green-70"
87
+ ],
88
+ transparent: [
89
+ "text-black",
90
+ "hover:bg-grey-5",
91
+ "active:bg-grey-10",
92
+ "focus:outline-purple-100"
93
+ ],
94
+ tonal: [
95
+ "border",
96
+ "border-grey-5",
97
+ "hover:border-grey-10",
98
+ "active:border-grey-20",
99
+ "focus:outline-purple-100"
100
+ ],
101
+ active: ["text-black", "bg-pickle-100"]
102
+ },
103
+ size: {
104
+ small: ["h-10", "w-10", "p-3"],
105
+ medium: ["h-12", "w-12", "p-4"],
106
+ large: ["h-14", "w-14", "p-4"]
107
+ }
108
+ },
109
+ defaultVariants: {
110
+ variant: "filled",
111
+ size: "medium"
112
+ }
113
+ }
114
+ );
115
+
116
+ // src/hooks/useWindowHistory.ts
117
+ var import_react3 = require("react");
118
+
119
+ // src/contexts/WindowHistoryProvider.tsx
120
+ var import_navigation = require("next/navigation");
121
+ var import_react2 = require("react");
122
+ var import_jsx_runtime2 = require("react/jsx-runtime");
123
+ var WindowHistoryContext = (0, import_react2.createContext)({});
124
+
125
+ // src/hooks/useWindowHistory.ts
126
+ function useWindowHistory() {
127
+ const windowHistoryContext = (0, import_react3.useContext)(WindowHistoryContext);
128
+ if (Object.keys(windowHistoryContext).length === 0) {
129
+ throw new Error("useWindowHistory was used outside of its WindowHistoryContext");
130
+ }
131
+ return windowHistoryContext;
132
+ }
133
+
134
+ // src/components/buttons/BackButton.tsx
135
+ var import_jsx_runtime3 = require("react/jsx-runtime");
136
+ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
137
+ const { history } = useWindowHistory();
138
+ const router = (0, import_navigation2.useRouter)();
139
+ const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
140
+ const goBack = () => {
141
+ const previous = history[history.length - 2];
142
+ history.length > 1 && isAcceptedRoute(previous) ? router.back() : router.push(fallbackHref ?? "/");
143
+ };
144
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
145
+ Icon,
146
+ {
147
+ "aria-label": "back button",
148
+ variant: "transparent",
149
+ size: "small",
150
+ onClick: goBack,
151
+ className,
152
+ ...props,
153
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.X, {})
154
+ }
155
+ );
156
+ }
157
+ // Annotate the CommonJS export names for ESM import in node:
158
+ 0 && (module.exports = {
159
+ BackButton
160
+ });
161
+ //# sourceMappingURL=BackButton.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/buttons/BackButton.tsx","../../../src/components/ui/Icon.tsx","../../../src/lib/utils.ts","../../../src/hooks/useWindowHistory.ts","../../../src/contexts/WindowHistoryProvider.tsx"],"sourcesContent":["'use client'\n\nimport { X } from 'lucide-react'\nimport { useRouter } from 'next/navigation'\n\nimport { Icon } from '@/components/ui/Icon'\nimport { useWindowHistory } from '@/hooks/useWindowHistory'\n\ninterface Props extends React.HTMLAttributes<HTMLButtonElement> {\n acceptedRoutes?: string[]\n fallbackHref?: string\n}\n\nexport function BackButton({ acceptedRoutes, fallbackHref, className, ...props }: Readonly<Props>) {\n const { history } = useWindowHistory()\n const router = useRouter()\n\n const isAcceptedRoute = (r: string) =>\n !!acceptedRoutes?.find((route) => new RegExp('^' + route + '$', 'i').test(r))\n\n const goBack = () => {\n const previous = history[history.length - 2]\n history.length > 1 && isAcceptedRoute(previous)\n ? router.back()\n : router.push(fallbackHref ?? '/')\n }\n\n return (\n <Icon\n aria-label=\"back button\"\n variant=\"transparent\"\n size=\"small\"\n onClick={goBack}\n className={className}\n {...props}\n >\n <X />\n </Icon>\n )\n}\n","import { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'cva'\nimport { forwardRef } from 'react'\nimport { twMerge } from 'tailwind-merge'\n\nimport { cn } from '@/lib/utils'\n\ninterface IconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof iconVariants> {\n active?: boolean\n readonly?: boolean\n}\n\nexport const Icon = forwardRef<HTMLButtonElement, IconProps>(\n ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {\n const Component = readonly ? Slot : 'button'\n return (\n <Component\n className={cn(\n twMerge(iconVariants({ variant: active ? 'active' : variant, size })),\n className\n )}\n {...props}\n ref={ref}\n />\n )\n }\n)\n\nIcon.displayName = 'Icon'\n\nconst iconVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'rounded-full',\n 'outline-2',\n 'outline-offset-2',\n 'outline-dashed',\n 'outline-transparent',\n 'disabled:text-grey-40',\n 'disabled:bg-transparent',\n 'disabled:pointer-events-none',\n ],\n {\n variants: {\n variant: {\n filled: [\n 'border',\n 'border-green-80',\n 'bg-green-90',\n 'text-white',\n 'hover:bg-green-80',\n 'active:bg-green-80',\n 'focus:outline-pickle-100',\n 'disabled:bg-green-70',\n ],\n transparent: [\n 'text-black',\n 'hover:bg-grey-5',\n 'active:bg-grey-10',\n 'focus:outline-purple-100',\n ],\n tonal: [\n 'border',\n 'border-grey-5',\n 'hover:border-grey-10',\n 'active:border-grey-20',\n 'focus:outline-purple-100',\n ],\n active: ['text-black', 'bg-pickle-100'],\n },\n size: {\n small: ['h-10', 'w-10', 'p-3'],\n medium: ['h-12', 'w-12', 'p-4'],\n large: ['h-14', 'w-14', 'p-4'],\n },\n },\n defaultVariants: {\n variant: 'filled',\n size: 'medium',\n },\n }\n)\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { useContext } from 'react'\n\nimport {\n WindowHistoryContext,\n type WindowHistoryContextProps,\n} from '@/contexts/WindowHistoryProvider'\n\nexport function useWindowHistory(): WindowHistoryContextProps {\n const windowHistoryContext = useContext(WindowHistoryContext)\n\n if (Object.keys(windowHistoryContext).length === 0) {\n throw new Error('useWindowHistory was used outside of its WindowHistoryContext')\n }\n\n return windowHistoryContext\n}\n","'use client'\n\nimport { useSearchParams } from 'next/navigation'\nimport { createContext, type PropsWithChildren, useEffect, useMemo, useState } from 'react'\n\nexport interface WindowHistoryContextProps {\n history: string[]\n}\n\nexport const WindowHistoryContext = createContext({} as WindowHistoryContextProps)\n\nexport function WindowHistoryProvider({ children }: Readonly<PropsWithChildren>) {\n const [history, setHistory] = useState<string[]>([])\n const searchParams = useSearchParams()\n\n useEffect(() => {\n setHistory((prev) =>\n prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]\n )\n }, [searchParams])\n\n const contextValue = useMemo(() => ({ history }), [history])\n\n return (\n <WindowHistoryContext.Provider value={contextValue}>{children}</WindowHistoryContext.Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAAkB;AAClB,IAAAA,qBAA0B;;;ACH1B,wBAAqB;AACrB,iBAAuC;AACvC,mBAA2B;AAC3B,IAAAC,yBAAwB;;;ACHxB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADaM;AAJC,IAAM,WAAO;AAAA,EAClB,CAAC,EAAE,SAAS,MAAM,SAAS,OAAO,WAAW,OAAO,WAAW,GAAG,MAAM,GAAG,QAAQ;AACjF,UAAM,YAAY,WAAW,yBAAO;AACpC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,cACT,gCAAQ,aAAa,EAAE,SAAS,SAAS,WAAW,SAAS,KAAK,CAAC,CAAC;AAAA,UACpE;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QACJ;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,KAAK,cAAc;AAEnB,IAAM,mBAAe;AAAA,EACnB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,QAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,QAAQ,CAAC,cAAc,eAAe;AAAA,MACxC;AAAA,MACA,MAAM;AAAA,QACJ,OAAO,CAAC,QAAQ,QAAQ,KAAK;AAAA,QAC7B,QAAQ,CAAC,QAAQ,QAAQ,KAAK;AAAA,QAC9B,OAAO,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC/B;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;;;AEpFA,IAAAC,gBAA2B;;;ACE3B,wBAAgC;AAChC,IAAAC,gBAAoF;AAqBhF,IAAAC,sBAAA;AAfG,IAAM,2BAAuB,6BAAc,CAAC,CAA8B;;;ADF1E,SAAS,mBAA8C;AAC5D,QAAM,2BAAuB,0BAAW,oBAAoB;AAE5D,MAAI,OAAO,KAAK,oBAAoB,EAAE,WAAW,GAAG;AAClD,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACjF;AAEA,SAAO;AACT;;;AHqBM,IAAAC,sBAAA;AAvBC,SAAS,WAAW,EAAE,gBAAgB,cAAc,WAAW,GAAG,MAAM,GAAoB;AACjG,QAAM,EAAE,QAAQ,IAAI,iBAAiB;AACrC,QAAM,aAAS,8BAAU;AAEzB,QAAM,kBAAkB,CAAC,MACvB,CAAC,CAAC,gBAAgB,KAAK,CAAC,UAAU,IAAI,OAAO,MAAM,QAAQ,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;AAE9E,QAAM,SAAS,MAAM;AACnB,UAAM,WAAW,QAAQ,QAAQ,SAAS,CAAC;AAC3C,YAAQ,SAAS,KAAK,gBAAgB,QAAQ,IAC1C,OAAO,KAAK,IACZ,OAAO,KAAK,gBAAgB,GAAG;AAAA,EACrC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,SAAS;AAAA,MACT;AAAA,MACC,GAAG;AAAA,MAEJ,uDAAC,yBAAE;AAAA;AAAA,EACL;AAEJ;","names":["import_navigation","import_tailwind_merge","import_react","import_react","import_jsx_runtime","import_jsx_runtime"]}
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface Props extends React.HTMLAttributes<HTMLButtonElement> {
4
+ acceptedRoutes?: string[];
5
+ fallbackHref?: string;
6
+ }
7
+ declare function BackButton({ acceptedRoutes, fallbackHref, className, ...props }: Readonly<Props>): react_jsx_runtime.JSX.Element;
8
+
9
+ export { BackButton };
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface Props extends React.HTMLAttributes<HTMLButtonElement> {
4
+ acceptedRoutes?: string[];
5
+ fallbackHref?: string;
6
+ }
7
+ declare function BackButton({ acceptedRoutes, fallbackHref, className, ...props }: Readonly<Props>): react_jsx_runtime.JSX.Element;
8
+
9
+ export { BackButton };
@@ -0,0 +1,137 @@
1
+ "use client";
2
+
3
+ // src/components/buttons/BackButton.tsx
4
+ import { X } from "lucide-react";
5
+ import { useRouter } from "next/navigation";
6
+
7
+ // src/components/ui/Icon.tsx
8
+ import { Slot } from "@radix-ui/react-slot";
9
+ import { cva } from "cva";
10
+ import { forwardRef } from "react";
11
+ import { twMerge as twMerge2 } from "tailwind-merge";
12
+
13
+ // src/lib/utils.ts
14
+ import { clsx } from "clsx";
15
+ import { twMerge } from "tailwind-merge";
16
+ function cn(...inputs) {
17
+ return twMerge(clsx(inputs));
18
+ }
19
+
20
+ // src/components/ui/Icon.tsx
21
+ import { jsx } from "react/jsx-runtime";
22
+ var Icon = forwardRef(
23
+ ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
24
+ const Component = readonly ? Slot : "button";
25
+ return /* @__PURE__ */ jsx(
26
+ Component,
27
+ {
28
+ className: cn(
29
+ twMerge2(iconVariants({ variant: active ? "active" : variant, size })),
30
+ className
31
+ ),
32
+ ...props,
33
+ ref
34
+ }
35
+ );
36
+ }
37
+ );
38
+ Icon.displayName = "Icon";
39
+ var iconVariants = cva(
40
+ [
41
+ "inline-flex",
42
+ "items-center",
43
+ "rounded-full",
44
+ "outline-2",
45
+ "outline-offset-2",
46
+ "outline-dashed",
47
+ "outline-transparent",
48
+ "disabled:text-grey-40",
49
+ "disabled:bg-transparent",
50
+ "disabled:pointer-events-none"
51
+ ],
52
+ {
53
+ variants: {
54
+ variant: {
55
+ filled: [
56
+ "border",
57
+ "border-green-80",
58
+ "bg-green-90",
59
+ "text-white",
60
+ "hover:bg-green-80",
61
+ "active:bg-green-80",
62
+ "focus:outline-pickle-100",
63
+ "disabled:bg-green-70"
64
+ ],
65
+ transparent: [
66
+ "text-black",
67
+ "hover:bg-grey-5",
68
+ "active:bg-grey-10",
69
+ "focus:outline-purple-100"
70
+ ],
71
+ tonal: [
72
+ "border",
73
+ "border-grey-5",
74
+ "hover:border-grey-10",
75
+ "active:border-grey-20",
76
+ "focus:outline-purple-100"
77
+ ],
78
+ active: ["text-black", "bg-pickle-100"]
79
+ },
80
+ size: {
81
+ small: ["h-10", "w-10", "p-3"],
82
+ medium: ["h-12", "w-12", "p-4"],
83
+ large: ["h-14", "w-14", "p-4"]
84
+ }
85
+ },
86
+ defaultVariants: {
87
+ variant: "filled",
88
+ size: "medium"
89
+ }
90
+ }
91
+ );
92
+
93
+ // src/hooks/useWindowHistory.ts
94
+ import { useContext } from "react";
95
+
96
+ // src/contexts/WindowHistoryProvider.tsx
97
+ import { useSearchParams } from "next/navigation";
98
+ import { createContext, useEffect, useMemo, useState } from "react";
99
+ import { jsx as jsx2 } from "react/jsx-runtime";
100
+ var WindowHistoryContext = createContext({});
101
+
102
+ // src/hooks/useWindowHistory.ts
103
+ function useWindowHistory() {
104
+ const windowHistoryContext = useContext(WindowHistoryContext);
105
+ if (Object.keys(windowHistoryContext).length === 0) {
106
+ throw new Error("useWindowHistory was used outside of its WindowHistoryContext");
107
+ }
108
+ return windowHistoryContext;
109
+ }
110
+
111
+ // src/components/buttons/BackButton.tsx
112
+ import { jsx as jsx3 } from "react/jsx-runtime";
113
+ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
114
+ const { history } = useWindowHistory();
115
+ const router = useRouter();
116
+ const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
117
+ const goBack = () => {
118
+ const previous = history[history.length - 2];
119
+ history.length > 1 && isAcceptedRoute(previous) ? router.back() : router.push(fallbackHref ?? "/");
120
+ };
121
+ return /* @__PURE__ */ jsx3(
122
+ Icon,
123
+ {
124
+ "aria-label": "back button",
125
+ variant: "transparent",
126
+ size: "small",
127
+ onClick: goBack,
128
+ className,
129
+ ...props,
130
+ children: /* @__PURE__ */ jsx3(X, {})
131
+ }
132
+ );
133
+ }
134
+ export {
135
+ BackButton
136
+ };
137
+ //# sourceMappingURL=BackButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/buttons/BackButton.tsx","../../../src/components/ui/Icon.tsx","../../../src/lib/utils.ts","../../../src/hooks/useWindowHistory.ts","../../../src/contexts/WindowHistoryProvider.tsx"],"sourcesContent":["'use client'\n\nimport { X } from 'lucide-react'\nimport { useRouter } from 'next/navigation'\n\nimport { Icon } from '@/components/ui/Icon'\nimport { useWindowHistory } from '@/hooks/useWindowHistory'\n\ninterface Props extends React.HTMLAttributes<HTMLButtonElement> {\n acceptedRoutes?: string[]\n fallbackHref?: string\n}\n\nexport function BackButton({ acceptedRoutes, fallbackHref, className, ...props }: Readonly<Props>) {\n const { history } = useWindowHistory()\n const router = useRouter()\n\n const isAcceptedRoute = (r: string) =>\n !!acceptedRoutes?.find((route) => new RegExp('^' + route + '$', 'i').test(r))\n\n const goBack = () => {\n const previous = history[history.length - 2]\n history.length > 1 && isAcceptedRoute(previous)\n ? router.back()\n : router.push(fallbackHref ?? '/')\n }\n\n return (\n <Icon\n aria-label=\"back button\"\n variant=\"transparent\"\n size=\"small\"\n onClick={goBack}\n className={className}\n {...props}\n >\n <X />\n </Icon>\n )\n}\n","import { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'cva'\nimport { forwardRef } from 'react'\nimport { twMerge } from 'tailwind-merge'\n\nimport { cn } from '@/lib/utils'\n\ninterface IconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof iconVariants> {\n active?: boolean\n readonly?: boolean\n}\n\nexport const Icon = forwardRef<HTMLButtonElement, IconProps>(\n ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {\n const Component = readonly ? Slot : 'button'\n return (\n <Component\n className={cn(\n twMerge(iconVariants({ variant: active ? 'active' : variant, size })),\n className\n )}\n {...props}\n ref={ref}\n />\n )\n }\n)\n\nIcon.displayName = 'Icon'\n\nconst iconVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'rounded-full',\n 'outline-2',\n 'outline-offset-2',\n 'outline-dashed',\n 'outline-transparent',\n 'disabled:text-grey-40',\n 'disabled:bg-transparent',\n 'disabled:pointer-events-none',\n ],\n {\n variants: {\n variant: {\n filled: [\n 'border',\n 'border-green-80',\n 'bg-green-90',\n 'text-white',\n 'hover:bg-green-80',\n 'active:bg-green-80',\n 'focus:outline-pickle-100',\n 'disabled:bg-green-70',\n ],\n transparent: [\n 'text-black',\n 'hover:bg-grey-5',\n 'active:bg-grey-10',\n 'focus:outline-purple-100',\n ],\n tonal: [\n 'border',\n 'border-grey-5',\n 'hover:border-grey-10',\n 'active:border-grey-20',\n 'focus:outline-purple-100',\n ],\n active: ['text-black', 'bg-pickle-100'],\n },\n size: {\n small: ['h-10', 'w-10', 'p-3'],\n medium: ['h-12', 'w-12', 'p-4'],\n large: ['h-14', 'w-14', 'p-4'],\n },\n },\n defaultVariants: {\n variant: 'filled',\n size: 'medium',\n },\n }\n)\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { useContext } from 'react'\n\nimport {\n WindowHistoryContext,\n type WindowHistoryContextProps,\n} from '@/contexts/WindowHistoryProvider'\n\nexport function useWindowHistory(): WindowHistoryContextProps {\n const windowHistoryContext = useContext(WindowHistoryContext)\n\n if (Object.keys(windowHistoryContext).length === 0) {\n throw new Error('useWindowHistory was used outside of its WindowHistoryContext')\n }\n\n return windowHistoryContext\n}\n","'use client'\n\nimport { useSearchParams } from 'next/navigation'\nimport { createContext, type PropsWithChildren, useEffect, useMemo, useState } from 'react'\n\nexport interface WindowHistoryContextProps {\n history: string[]\n}\n\nexport const WindowHistoryContext = createContext({} as WindowHistoryContextProps)\n\nexport function WindowHistoryProvider({ children }: Readonly<PropsWithChildren>) {\n const [history, setHistory] = useState<string[]>([])\n const searchParams = useSearchParams()\n\n useEffect(() => {\n setHistory((prev) =>\n prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]\n )\n }, [searchParams])\n\n const contextValue = useMemo(() => ({ history }), [history])\n\n return (\n <WindowHistoryContext.Provider value={contextValue}>{children}</WindowHistoryContext.Provider>\n )\n}\n"],"mappings":"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","names":["twMerge","twMerge","jsx","jsx"]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/company/CompanyBenefits.tsx
21
+ var CompanyBenefits_exports = {};
22
+ __export(CompanyBenefits_exports, {
23
+ CompanyBenefits: () => CompanyBenefits
24
+ });
25
+ module.exports = __toCommonJS(CompanyBenefits_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ function CompanyBenefits({ benefits }) {
28
+ if (!benefits) return null;
29
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
30
+ /* @__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" }),
31
+ /* @__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}`)) })
32
+ ] });
33
+ }
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ CompanyBenefits
37
+ });
38
+ //# sourceMappingURL=CompanyBenefits.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/company/CompanyBenefits.tsx"],"sourcesContent":["export type CompanyBenefitsProps = {\n benefits?: string[]\n}\n\nexport function CompanyBenefits({ benefits }: Readonly<CompanyBenefitsProps>) {\n if (!benefits) return null\n\n return (\n <div className=\"flex flex-col gap-2\" data-testid=\"company-benefits\">\n <h2 className=\"break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg\">\n Company benefits\n </h2>\n <ul className=\"flex flex-col gap-3\">\n {benefits.map((benefit, i) => (\n <li key={`${benefit}-${i}`} className=\"text-base text-grey-80\">\n {benefit}\n </li>\n ))}\n </ul>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQI;AAJG,SAAS,gBAAgB,EAAE,SAAS,GAAmC;AAC5E,MAAI,CAAC,SAAU,QAAO;AAEtB,SACE,6CAAC,SAAI,WAAU,uBAAsB,eAAY,oBAC/C;AAAA,gDAAC,QAAG,WAAU,+EAA8E,8BAE5F;AAAA,IACA,4CAAC,QAAG,WAAU,uBACX,mBAAS,IAAI,CAAC,SAAS,MACtB,4CAAC,QAA2B,WAAU,0BACnC,qBADM,GAAG,OAAO,IAAI,CAAC,EAExB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type CompanyBenefitsProps = {
4
+ benefits?: string[];
5
+ };
6
+ declare function CompanyBenefits({ benefits }: Readonly<CompanyBenefitsProps>): react_jsx_runtime.JSX.Element | null;
7
+
8
+ export { CompanyBenefits, type CompanyBenefitsProps };
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type CompanyBenefitsProps = {
4
+ benefits?: string[];
5
+ };
6
+ declare function CompanyBenefits({ benefits }: Readonly<CompanyBenefitsProps>): react_jsx_runtime.JSX.Element | null;
7
+
8
+ export { CompanyBenefits, type CompanyBenefitsProps };
@@ -0,0 +1,13 @@
1
+ // src/components/company/CompanyBenefits.tsx
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ function CompanyBenefits({ benefits }) {
4
+ if (!benefits) return null;
5
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
6
+ /* @__PURE__ */ 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" }),
7
+ /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ jsx("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
8
+ ] });
9
+ }
10
+ export {
11
+ CompanyBenefits
12
+ };
13
+ //# sourceMappingURL=CompanyBenefits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/company/CompanyBenefits.tsx"],"sourcesContent":["export type CompanyBenefitsProps = {\n benefits?: string[]\n}\n\nexport function CompanyBenefits({ benefits }: Readonly<CompanyBenefitsProps>) {\n if (!benefits) return null\n\n return (\n <div className=\"flex flex-col gap-2\" data-testid=\"company-benefits\">\n <h2 className=\"break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg\">\n Company benefits\n </h2>\n <ul className=\"flex flex-col gap-3\">\n {benefits.map((benefit, i) => (\n <li key={`${benefit}-${i}`} className=\"text-base text-grey-80\">\n {benefit}\n </li>\n ))}\n </ul>\n </div>\n )\n}\n"],"mappings":";AAQI,SACE,KADF;AAJG,SAAS,gBAAgB,EAAE,SAAS,GAAmC;AAC5E,MAAI,CAAC,SAAU,QAAO;AAEtB,SACE,qBAAC,SAAI,WAAU,uBAAsB,eAAY,oBAC/C;AAAA,wBAAC,QAAG,WAAU,+EAA8E,8BAE5F;AAAA,IACA,oBAAC,QAAG,WAAU,uBACX,mBAAS,IAAI,CAAC,SAAS,MACtB,oBAAC,QAA2B,WAAU,0BACnC,qBADM,GAAG,OAAO,IAAI,CAAC,EAExB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/company/CompanyInformation.tsx
31
+ var CompanyInformation_exports = {};
32
+ __export(CompanyInformation_exports, {
33
+ CompanyInformation: () => CompanyInformation
34
+ });
35
+ module.exports = __toCommonJS(CompanyInformation_exports);
36
+
37
+ // src/components/ui/LinkButton.tsx
38
+ var import_link = __toESM(require("next/link"), 1);
39
+ var import_jsx_runtime = require("react/jsx-runtime");
40
+ var LinkButton = ({
41
+ disabled = false,
42
+ useAnchor = false,
43
+ children,
44
+ href,
45
+ ...props
46
+ }) => {
47
+ const Component = useAnchor ? "a" : import_link.default;
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
49
+ Component,
50
+ {
51
+ href,
52
+ 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" : ""} `,
53
+ ...disabled && { "aria-disabled": true, tabIndex: -1 },
54
+ ...props,
55
+ children
56
+ }
57
+ );
58
+ };
59
+
60
+ // src/components/company/CompanyInformation.tsx
61
+ var import_jsx_runtime2 = require("react/jsx-runtime");
62
+ function CompanyInformation({
63
+ name,
64
+ how,
65
+ mission,
66
+ wow,
67
+ website
68
+ }) {
69
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex flex-col gap-2", children: [
70
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
71
+ "h2",
72
+ {
73
+ "data-testid": "company-name",
74
+ className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
75
+ children: [
76
+ "About ",
77
+ name
78
+ ]
79
+ }
80
+ ),
81
+ how && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
82
+ mission && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex gap-2", children: [
83
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: "\u{1F680}" }),
84
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("p", { className: "text-base text-grey-80", children: [
85
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "pr-1 font-bold", children: "Mission" }),
86
+ mission
87
+ ] })
88
+ ] }),
89
+ wow && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex gap-2", children: [
90
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: "\u{1F31F}" }),
91
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("p", { className: "text-base text-grey-80", children: [
92
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
93
+ wow
94
+ ] })
95
+ ] }),
96
+ website && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
97
+ LinkButton,
98
+ {
99
+ "data-testid": "company-website-link",
100
+ href: website,
101
+ target: "_blank",
102
+ rel: "noopener noreferrer",
103
+ children: "Website"
104
+ }
105
+ ) })
106
+ ] });
107
+ }
108
+ // Annotate the CommonJS export names for ESM import in node:
109
+ 0 && (module.exports = {
110
+ CompanyInformation
111
+ });
112
+ //# sourceMappingURL=CompanyInformation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/company/CompanyInformation.tsx","../../../src/components/ui/LinkButton.tsx"],"sourcesContent":["import { LinkButton } from '@/components/ui/LinkButton'\n\nexport type CompanyInformationProps = {\n name: string\n how?: string\n mission?: string\n wow?: string\n website?: string\n}\n\nexport function CompanyInformation({\n name,\n how,\n mission,\n wow,\n website,\n}: Readonly<CompanyInformationProps>) {\n return (\n <div className=\"flex flex-col gap-2\">\n <h2\n data-testid=\"company-name\"\n className=\"break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg\"\n >\n About {name}\n </h2>\n\n {how && (\n <p data-testid=\"company-information\" className=\"text-base text-grey-80\">\n {how}\n </p>\n )}\n\n {mission && (\n <div className=\"flex gap-2\">\n <span>🚀</span>\n <p className=\"text-base text-grey-80\">\n <span className=\"pr-1 font-bold\">Mission</span>\n {mission}\n </p>\n </div>\n )}\n\n {wow && (\n <div className=\"flex gap-2\">\n <span>🌟</span>\n <p className=\"text-base text-grey-80\">\n <span className=\"pr-1 font-bold\">Wow Factor</span>\n {wow}\n </p>\n </div>\n )}\n\n {website && (\n <div className=\"pt-2\">\n <LinkButton\n data-testid=\"company-website-link\"\n href={website}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Website\n </LinkButton>\n </div>\n )}\n </div>\n )\n}\n","import Link from 'next/link'\nimport React from 'react'\n\nexport interface LinkButtonProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>,\n Omit<React.ComponentProps<typeof Link>, 'href'> {\n disabled?: boolean\n href: string // Ensures href is always required and compatible with both\n useAnchor?: boolean // New prop to decide between <a> and <Link>\n}\n\n/**\n * A custom button component that can render a link using either\n * Next.js's Link component or a regular <a> tag based on a prop.\n *\n * @component\n * @example\n * ```tsx\n * <LinkButton href=\"/about\">About</LinkButton>\n * ```\n *\n * @param {object} props - The component props.\n * @param {boolean} [props.disabled=false] - Determines if the button is disabled.\n * @param {boolean} [props.useAnchor=false] - Whether to render a regular <a> instead of Next.js Link.\n * @param {React.ReactNode} props.children - The content of the button.\n * @param {string} props.href - The URL the button points to.\n * @returns {JSX.Element} The rendered LinkButton component.\n */\nexport const LinkButton = ({\n disabled = false,\n useAnchor = false,\n children,\n href,\n ...props\n}: LinkButtonProps) => {\n const Component = useAnchor ? 'a' : Link\n\n return (\n <Component\n href={href}\n 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' : ''} `}\n {...(disabled && { 'aria-disabled': true, tabIndex: -1 })}\n {...props}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,kBAAiB;AAsCb;AAVG,IAAM,aAAa,CAAC;AAAA,EACzB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAuB;AACrB,QAAM,YAAY,YAAY,MAAM,YAAAA;AAEpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,uQAAuQ,WAAW,qCAAqC,EAAE;AAAA,MACnU,GAAI,YAAY,EAAE,iBAAiB,MAAM,UAAU,GAAG;AAAA,MACtD,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;;;AD5BM,IAAAC,sBAAA;AATC,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,SACE,8CAAC,SAAI,WAAU,uBACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAU;AAAA,QACX;AAAA;AAAA,UACQ;AAAA;AAAA;AAAA,IACT;AAAA,IAEC,OACC,6CAAC,OAAE,eAAY,uBAAsB,WAAU,0BAC5C,eACH;AAAA,IAGD,WACC,8CAAC,SAAI,WAAU,cACb;AAAA,mDAAC,UAAK,uBAAE;AAAA,MACR,8CAAC,OAAE,WAAU,0BACX;AAAA,qDAAC,UAAK,WAAU,kBAAiB,qBAAO;AAAA,QACvC;AAAA,SACH;AAAA,OACF;AAAA,IAGD,OACC,8CAAC,SAAI,WAAU,cACb;AAAA,mDAAC,UAAK,uBAAE;AAAA,MACR,8CAAC,OAAE,WAAU,0BACX;AAAA,qDAAC,UAAK,WAAU,kBAAiB,wBAAU;AAAA,QAC1C;AAAA,SACH;AAAA,OACF;AAAA,IAGD,WACC,6CAAC,SAAI,WAAU,QACb;AAAA,MAAC;AAAA;AAAA,QACC,eAAY;AAAA,QACZ,MAAM;AAAA,QACN,QAAO;AAAA,QACP,KAAI;AAAA,QACL;AAAA;AAAA,IAED,GACF;AAAA,KAEJ;AAEJ;","names":["Link","import_jsx_runtime"]}
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type CompanyInformationProps = {
4
+ name: string;
5
+ how?: string;
6
+ mission?: string;
7
+ wow?: string;
8
+ website?: string;
9
+ };
10
+ declare function CompanyInformation({ name, how, mission, wow, website, }: Readonly<CompanyInformationProps>): react_jsx_runtime.JSX.Element;
11
+
12
+ export { CompanyInformation, type CompanyInformationProps };
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type CompanyInformationProps = {
4
+ name: string;
5
+ how?: string;
6
+ mission?: string;
7
+ wow?: string;
8
+ website?: string;
9
+ };
10
+ declare function CompanyInformation({ name, how, mission, wow, website, }: Readonly<CompanyInformationProps>): react_jsx_runtime.JSX.Element;
11
+
12
+ export { CompanyInformation, type CompanyInformationProps };