@next-degree/pickle-shared-js 0.13.6 → 0.13.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-KQLHT5UE.js → chunk-3XO3AJR4.js} +3 -3
- package/dist/{chunk-KQLHT5UE.js.map → chunk-3XO3AJR4.js.map} +1 -1
- package/dist/{chunk-OZJZVEF2.js → chunk-4E3ANVRR.js} +3 -3
- package/dist/{chunk-OZJZVEF2.js.map → chunk-4E3ANVRR.js.map} +1 -1
- package/dist/{chunk-OXDKVZZ5.cjs → chunk-567FG76G.cjs} +4 -4
- package/dist/{chunk-OXDKVZZ5.cjs.map → chunk-567FG76G.cjs.map} +1 -1
- package/dist/{chunk-KJ5X2ZKA.js → chunk-5REFGTWO.js} +3 -3
- package/dist/{chunk-KJ5X2ZKA.js.map → chunk-5REFGTWO.js.map} +1 -1
- package/dist/{chunk-WOD47B4V.js → chunk-6Z6T5WWS.js} +4 -4
- package/dist/{chunk-WOD47B4V.js.map → chunk-6Z6T5WWS.js.map} +1 -1
- package/dist/{chunk-54CL72AL.cjs → chunk-7NP3NX67.cjs} +3 -3
- package/dist/{chunk-54CL72AL.cjs.map → chunk-7NP3NX67.cjs.map} +1 -1
- package/dist/{chunk-GKL5KEO4.js → chunk-EV54AFL4.js} +10 -4
- package/dist/chunk-EV54AFL4.js.map +1 -0
- package/dist/{chunk-FAMHC5MQ.cjs → chunk-GHJACW4X.cjs} +10 -4
- package/dist/chunk-GHJACW4X.cjs.map +1 -0
- package/dist/{chunk-CPZFINPG.js → chunk-K76RPF2X.js} +3 -3
- package/dist/{chunk-CPZFINPG.js.map → chunk-K76RPF2X.js.map} +1 -1
- package/dist/{chunk-MLV2TE6H.cjs → chunk-LFWX5GEE.cjs} +11 -11
- package/dist/{chunk-MLV2TE6H.cjs.map → chunk-LFWX5GEE.cjs.map} +1 -1
- package/dist/{chunk-NEIGOAE6.cjs → chunk-LT35HARQ.cjs} +3 -3
- package/dist/{chunk-NEIGOAE6.cjs.map → chunk-LT35HARQ.cjs.map} +1 -1
- package/dist/{chunk-B472HOM3.js → chunk-NCEXSFMC.js} +7 -7
- package/dist/{chunk-B472HOM3.js.map → chunk-NCEXSFMC.js.map} +1 -1
- package/dist/{chunk-RO6NJGYB.cjs → chunk-SPAVM3EE.cjs} +3 -3
- package/dist/{chunk-RO6NJGYB.cjs.map → chunk-SPAVM3EE.cjs.map} +1 -1
- package/dist/{chunk-6CSDTWDX.cjs → chunk-TOEADI6J.cjs} +4 -4
- package/dist/{chunk-6CSDTWDX.cjs.map → chunk-TOEADI6J.cjs.map} +1 -1
- package/dist/{chunk-CEA4U6AR.js → chunk-U27VO642.js} +3 -3
- package/dist/{chunk-CEA4U6AR.js.map → chunk-U27VO642.js.map} +1 -1
- package/dist/{chunk-XC3HIJM3.cjs → chunk-YVKKQOTE.cjs} +3 -3
- package/dist/{chunk-XC3HIJM3.cjs.map → chunk-YVKKQOTE.cjs.map} +1 -1
- package/dist/{chunk-ZCBOREOG.js → chunk-Z5PEOX6F.js} +3 -3
- package/dist/{chunk-ZCBOREOG.js.map → chunk-Z5PEOX6F.js.map} +1 -1
- package/dist/{chunk-2YUUVN7E.cjs → chunk-ZZCTMR2F.cjs} +3 -3
- package/dist/{chunk-2YUUVN7E.cjs.map → chunk-ZZCTMR2F.cjs.map} +1 -1
- package/dist/components/buttons/BackButton.cjs +1 -1
- package/dist/components/buttons/BackButton.js +1 -1
- package/dist/components/jobCard/JobLocation.cjs +1 -1
- package/dist/components/jobCard/JobLocation.js +1 -1
- package/dist/components/jobPost/JobHeader.cjs +5 -5
- package/dist/components/jobPost/JobHeader.js +4 -4
- package/dist/components/jobPost/JobPost.cjs +20 -20
- package/dist/components/jobPost/JobPost.js +19 -19
- package/dist/components/ui/Combobox.cjs +3 -3
- package/dist/components/ui/Combobox.js +2 -2
- package/dist/components/ui/Map/MapComponent.cjs +5 -5
- package/dist/components/ui/Map/MapComponent.js +4 -4
- package/dist/components/ui/Map/MapContent.cjs +1 -1
- package/dist/components/ui/Map/MapContent.js +1 -1
- package/dist/components/ui/Map/index.cjs +5 -5
- package/dist/components/ui/Map/index.js +4 -4
- package/dist/components/ui/PlacesQueryInput.cjs +3 -3
- package/dist/components/ui/PlacesQueryInput.js +2 -2
- package/dist/components/ui/Select.cjs +2 -2
- package/dist/components/ui/Select.d.cts +1 -0
- package/dist/components/ui/Select.d.ts +1 -0
- package/dist/components/ui/Select.js +1 -1
- package/dist/hooks/useDisplayText.cjs +4 -4
- package/dist/hooks/useDisplayText.js +3 -3
- package/dist/index.cjs +91 -91
- package/dist/index.js +37 -37
- package/dist/lib/salaryRange.cjs +2 -2
- package/dist/lib/salaryRange.js +2 -2
- package/dist/services/displayText.cjs +3 -3
- package/dist/services/displayText.js +2 -2
- package/dist/types/index.cjs +7 -7
- package/dist/types/index.js +2 -2
- package/dist/types/latest/custom/job_posting_service_sanity.cjs +12 -12
- package/dist/types/latest/custom/job_posting_service_sanity.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-FAMHC5MQ.cjs.map +0 -1
- package/dist/chunk-GKL5KEO4.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { JobDescription } from './chunk-5NQTYPZG.js';
|
|
2
|
-
import { JobHeader } from './chunk-WOD47B4V.js';
|
|
3
|
-
import { useDisplayText } from './chunk-CPZFINPG.js';
|
|
4
|
-
import { CompanyBenefits } from './chunk-BLMWXMW4.js';
|
|
5
1
|
import { CompanyInformation } from './chunk-J3UEZGEG.js';
|
|
6
2
|
import { CompanyTake } from './chunk-MF24QPA6.js';
|
|
7
|
-
import {
|
|
3
|
+
import { JobDescription } from './chunk-5NQTYPZG.js';
|
|
4
|
+
import { JobHeader } from './chunk-6Z6T5WWS.js';
|
|
8
5
|
import { salaryRange } from './chunk-PLPEZUCB.js';
|
|
9
6
|
import { cn } from './chunk-2FGZQI42.js';
|
|
7
|
+
import { CompanyBenefits } from './chunk-BLMWXMW4.js';
|
|
8
|
+
import { useDisplayText } from './chunk-K76RPF2X.js';
|
|
9
|
+
import { getAddressList } from './chunk-KZBS5RNE.js';
|
|
10
10
|
import * as DateFns from 'date-fns';
|
|
11
11
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
12
12
|
|
|
@@ -111,5 +111,5 @@ function JobPost({
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
export { JobPost };
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-NCEXSFMC.js.map
|
|
115
|
+
//# sourceMappingURL=chunk-NCEXSFMC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":[],"mappings":";;;;;;;;;;;;AA2BO,SAAS,OAAQ,CAAA;AAAA,EACtB,GAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAA2B,EAAA;AACzB,EAAA,MAAM,uBAA0B,GAAA,cAAA,CAAe,gBAAkB,EAAA,GAAA,CAAI,cAAc,CAAA;AACnF,EAAA,MAAM,wBAA2B,GAAA,cAAA,CAAe,iBAAmB,EAAA,GAAA,CAAI,eAAe,CAAA;AACtF,EAAA,MAAM,oBAAuB,GAAA,cAAA,CAAe,aAAe,EAAA,GAAA,CAAI,WAAW,CAAA;AAC1E,EAAM,MAAA,kBAAA,GAAqB,eAAe,GAAG,CAAA;AAC7C,EAAM,MAAA,eAAA,GAAkB,WAAY,CAAA,GAAA,CAAI,eAAe,CAAA;AACvD,EAAA,MAAM,gBAAwB,OAAoB,CAAA,mBAAA,CAAA,IAAI,IAAK,CAAA,GAAA,CAAI,UAAoB,CAAG,EAAA;AAAA,IACpF,SAAW,EAAA;AAAA,GACZ,CAAA;AAED,EAAA,MAAM,IAAO,GAAA;AAAA,IACX,CAAC,CAAC,eAAmB,IAAA;AAAA,MACnB,IAAM,EAAA,UAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA,IACA,CAAC,CAAC,uBAA2B,IAAA;AAAA,MAC3B,IAAM,EAAA,oBAAA;AAAA,MACN,IAAM,EAAA,gBAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA,IACA,CAAC,CAAC,wBAA4B,IAAA;AAAA,MAC5B,IAAM,EAAA,aAAA;AAAA,MACN,IAAM,EAAA,OAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA,IACA,CAAC,CAAC,oBAAwB,IAAA;AAAA,MACxB,IAAM,EAAA,oBAAA;AAAA,MACN,IAAM,EAAA,aAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA,IACA,GAAG,kBAAA,CAAmB,GAAI,CAAA,CAAC,KAAW,MAAA;AAAA,MACpC,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA,UAAA;AAAA,MACN;AAAA,KACA,CAAA;AAAA,IACF,MAAO,CAAA,CAAC,CAAM,KAAA,CAAC,CAAC,CAAC,CAAA;AAEnB,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,EAAA;AAAA,QACT,2BAAA;AAAA,QACA,CAAC,UAAc,IAAA;AAAA,OACjB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,OAAO,GAAI,CAAA,KAAA;AAAA,YACX,SAAA;AAAA,YACA,UAAA,EAAY,IAAI,kBAAoB,EAAA,WAAA;AAAA,YACpC,SAAW,EAAA,GAAA,CAAI,kBAAoB,EAAA,IAAA,EAAM,KAAO,EAAA,GAAA;AAAA,YAChD,SAAA,EAAW,CAAC,GAAI,CAAA,kBAAA,EAAoB,eAAe,EAAI,EAAA,CAAA,OAAA,EAAU,aAAa,CAAE,CAAA,CAAA;AAAA,YAChF,OAAA;AAAA,YACA,UAAA;AAAA,YACA,UAAA;AAAA,YACA,gBAAkB,EAAA,YAAA;AAAA,YAClB,kBAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBAEA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,0BACb,EAAA,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,cAAA,EAAA,EAAe,WAAa,EAAA,GAAA,CAAI,WAAa,EAAA,CAAA;AAAA,0BAE9C,GAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,SAAA;AAAA,cACA,OAAA,EAAS,GAAI,CAAA,kBAAA,EAAoB,UAAY,EAAA;AAAA;AAAA,WAC/C;AAAA,0BAEA,GAAA;AAAA,YAAC,kBAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,GAAI,CAAA,kBAAA,EAAoB,WAAe,IAAA,EAAA;AAAA,cAC7C,GAAA,EAAK,GAAI,CAAA,kBAAA,EAAoB,iBAAmB,EAAA,UAAA;AAAA,cAChD,OAAA,EAAS,GAAI,CAAA,kBAAA,EAAoB,iBAAmB,EAAA,cAAA;AAAA,cACpD,GAAA,EAAK,GAAI,CAAA,kBAAA,EAAoB,UAAY,EAAA,UAAA;AAAA,cACzC,OAAA,EAAS,IAAI,kBAAoB,EAAA;AAAA;AAAA,WACnC;AAAA,0BAEA,GAAA;AAAA,YAAC,eAAA;AAAA,YAAA;AAAA,cACC,QAAU,EAAA,GAAA,CAAI,kBAAoB,EAAA,cAAA,EAAgB,iBAC9C,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,KAAK,CACnB,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,MAAS;AAAA;AAAA;AAClC,SACF,EAAA;AAAA;AAAA;AAAA,GACF;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":[],"mappings":"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","file":"chunk-NCEXSFMC.js","sourcesContent":["'use client'\n\nimport * as DateFns from 'date-fns'\nimport { type ReactNode } from 'react'\n\nimport { CompanyBenefits } from '@/components/company/CompanyBenefits'\nimport { CompanyInformation } from '@/components/company/CompanyInformation'\nimport { CompanyTake } from '@/components/company/CompanyTake'\nimport { JobDescription } from '@/components/jobPost/JobDescription'\nimport { JobHeader } from '@/components/jobPost/JobHeader'\nimport { useDisplayText } from '@/hooks/useDisplayText'\nimport { getAddressList } from '@/lib/locations'\nimport { salaryRange } from '@/lib/salaryRange'\nimport { cn } from '@/lib/utils'\nimport { type JobPostModel } from '@/types/data/job_posting_service_latest'\n\nexport type JobPostProps = {\n job: JobPostModel\n bannerSrc: string\n avatarSrc?: string\n standalone?: boolean\n avatarHref?: string\n fallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n}\n\nexport function JobPost({\n job,\n bannerSrc,\n avatarSrc,\n standalone,\n avatarHref,\n fallbackHref,\n backAcceptedRoutes,\n actions,\n}: Readonly<JobPostProps>) {\n const formattedEmploymentType = useDisplayText('employmentType', job.employmentType)\n const formattedEmploymentLevel = useDisplayText('employmentLevel', job.employmentLevel)\n const formattedJobFunction = useDisplayText('jobFunction', job.jobFunction)\n const formattedLocations = getAddressList(job)\n const formattedSalary = salaryRange(job.estimatedSalary)\n const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted as string), {\n addSuffix: true,\n })\n\n const tags = [\n !!formattedSalary && {\n icon: 'banknote' as const,\n name: 'salary',\n label: formattedSalary,\n },\n !!formattedEmploymentType && {\n icon: 'briefcase-business' as const,\n name: 'employmentType',\n label: formattedEmploymentType,\n },\n !!formattedEmploymentLevel && {\n icon: 'circle-user' as const,\n name: 'level',\n label: formattedEmploymentLevel,\n },\n !!formattedJobFunction && {\n icon: 'briefcase-business' as const,\n name: 'jobFunction',\n label: formattedJobFunction,\n },\n ...formattedLocations.map((label) => ({\n icon: 'map-pin' as const,\n name: 'location',\n label,\n })),\n ].filter((t) => !!t)\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-10 pb-4',\n !standalone && 'border-1 rounded-3xl border-grey-5'\n )}\n >\n <JobHeader\n title={job.title}\n bannerSrc={bannerSrc}\n avatarName={job.hiringOrganization?.companyName}\n avatarSrc={job.hiringOrganization?.logo?.asset?.url}\n subtitles={[job.hiringOrganization?.companyName ?? '', `Posted ${formattedDate}`]}\n actions={actions}\n standalone={standalone}\n avatarHref={avatarHref}\n backFallbackHref={fallbackHref}\n backAcceptedRoutes={backAcceptedRoutes}\n tags={tags}\n />\n\n <div className=\"flex flex-col gap-8 px-6\">\n <JobDescription description={job.description} />\n\n <CompanyTake\n avatarSrc={avatarSrc}\n content={job.hiringOrganization?.companyNDG?.companyNDGTake}\n />\n\n <CompanyInformation\n name={job.hiringOrganization?.companyName ?? ''}\n how={job.hiringOrganization?.companyPhilosophy?.companyHow}\n mission={job.hiringOrganization?.companyPhilosophy?.companyMission}\n wow={job.hiringOrganization?.companyNDG?.companyWow}\n website={job.hiringOrganization?.companyWebsite}\n />\n\n <CompanyBenefits\n benefits={job.hiringOrganization?.companyCareers?.companyBenefits\n ?.map((b) => b.title)\n .filter((d) => d !== undefined)}\n />\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunk3PARXYUI_cjs = require('./chunk-3PARXYUI.cjs');
|
|
4
3
|
var chunkIVPCYGXE_cjs = require('./chunk-IVPCYGXE.cjs');
|
|
4
|
+
var chunk3PARXYUI_cjs = require('./chunk-3PARXYUI.cjs');
|
|
5
5
|
var chunkL4SZQQK6_cjs = require('./chunk-L4SZQQK6.cjs');
|
|
6
6
|
var chunkLUFPA3WC_cjs = require('./chunk-LUFPA3WC.cjs');
|
|
7
7
|
var chunkQ7SFCCGT_cjs = require('./chunk-Q7SFCCGT.cjs');
|
|
@@ -91,5 +91,5 @@ exports.job_posting_service_sanity_exports = job_posting_service_sanity_exports;
|
|
|
91
91
|
exports.monetaryAmountSchema = monetaryAmountSchema2;
|
|
92
92
|
exports.postalAddressSchema = postalAddressSchema2;
|
|
93
93
|
exports.quantitativeValueSchema = quantitativeValueSchema2;
|
|
94
|
-
//# sourceMappingURL=chunk-
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-SPAVM3EE.cjs.map
|
|
95
|
+
//# sourceMappingURL=chunk-SPAVM3EE.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/latest/custom/job_posting_service_sanity.ts"],"names":["__export","BestFitEnum","ClinicalLicenseEnum","ClinicalSettingEnum","ClinicalSpecialtyEnum","CurrencyEnum","DetailLevelEnum","EmploymentLevelEnum","EmploymentTypeEnum","JobFunctionEnum","PublishStatusEnum","ShiftEnum","UnitTextEnum","jobPostSchema","monetaryAmountSchema","postalAddressSchema","quantitativeValueSchema","sanityReferenceSchema","z","companySchema"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/types/latest/custom/job_posting_service_sanity.ts"],"names":["__export","BestFitEnum","ClinicalLicenseEnum","ClinicalSettingEnum","ClinicalSpecialtyEnum","CurrencyEnum","DetailLevelEnum","EmploymentLevelEnum","EmploymentTypeEnum","JobFunctionEnum","PublishStatusEnum","ShiftEnum","UnitTextEnum","jobPostSchema","monetaryAmountSchema","postalAddressSchema","quantitativeValueSchema","sanityReferenceSchema","z","companySchema"],"mappings":"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","file":"chunk-SPAVM3EE.cjs","sourcesContent":["import { companySchema } from '../company_service_latest';\nimport {\n jobPostSchema as contractJobPostSchema,\n } from '../job_posting_service_latest';\n\nimport {\n monetaryAmountSchema as contractMonetaryAmountSchema,\n postalAddressSchema as contractPostalAddressSchema,\n quantitativeValueSchema as contractQuantitativeValueSchema\n} from '../shared_pickle_output_latest';\n\nimport { sanityReferenceSchema } from './custom_sanity_models';\n\nimport { z } from 'zod';\n\n// New Enums\nexport const JobPostTypeEnum = z.enum(['jobPost']);\nexport const MonetaryAmountTypeEnum = z.enum(['monetaryAmount']);\n\nexport const postalAddressSchema = contractPostalAddressSchema.extend({\n _type: z.string().describe(\"Document type used within sanity\").default('address')\n}).omit({ type: true })\n.strict()\n.transform(data => ({\n ...data,\n type: data._type,\n}))\n.transform(({ _type, ...rest }) => rest);\n\nexport const quantitativeValueSchema = contractQuantitativeValueSchema.extend({\n _type: z.string().describe(\"Document type used within sanity\").default('quantitativeValue')\n }).omit({ type: true })\n .strict()\n .transform(data => ({\n ...data,\n type: data._type,\n }))\n .transform(({ _type, ...rest }) => rest);\n\n // 4. MonetaryAmount - Extend and override\n export const monetaryAmountSchema = contractMonetaryAmountSchema.extend({\n _type: z.string().describe(\"Document type used within sanity\").default('monetaryAmount'),\n value: quantitativeValueSchema.optional().describe(\"The quantitative_value for a given salary\")\n }).omit({ type: true })\n .strict()\n .transform(data => ({\n ...data,\n type: data._type,\n }))\n .transform(({ _type, ...rest }) => rest);\n\n // 5. JobPost - Extend and override\n export const jobPostSchema = contractJobPostSchema.extend({\n // Override base fields with Sanity-specific fields\n _id: z.string()\n .describe(\"The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed.\")\n .regex(/^ndg-.*-.*$/),\n _rev: z.string().optional().describe(\"Revision number\"),\n _type: z.string().describe(\"Document type used within sanity\").default('jobPost'),\n _createdAt: z.string().datetime().describe(\"Time document was created. Autoset by Sanity\"),\n _updatedAt: z.string().datetime().describe(\"Time document was created. Autoset by Sanity\"),\n\n // Override fields with new schemas\n estimatedSalary: monetaryAmountSchema.optional()\n .describe(\"Determines the estimated salary for a given job posting\"),\n jobLocation: postalAddressSchema.optional()\n .describe(\"Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements\"),\n\n // Add Sanity-specific fields\n ndgMetadata: z.record(z.any()).optional(),\n ndgID: z.string().optional(),\n hiringOrganization: z.optional(z.union([sanityReferenceSchema, companySchema])),\n raw: z.record(z.any()).optional(),\n isLoaded: z.boolean().default(false),\n isVerified: z.boolean().default(false),\n needsReview: z.boolean().default(false),\n schema_version: z.string().optional(),\n origin: z.string().optional(),\n temp: z.record(z.any()).optional(),\n applicationType: z.string().optional(),\n\n // Override clientId to use Sanity naming convention\n clientID: z.string()\n }).omit({type: true, id:true, createdAt: true, updatedAt: true, clientId:true}).transform(data => ({\n ...data,\n type: data._type,\n id: data._id,\n createdAt: data._createdAt,\n updatedAt: data._updatedAt,\n rev: data._rev\n }))\n .transform(({ _type,_id, _rev, _createdAt, _updatedAt, ...rest }) => rest);;\n\n // Exports\n export type SanityReference = z.infer<typeof sanityReferenceSchema>;\n export type PostalAddress = z.infer<typeof postalAddressSchema>;\n export type QuantitativeValue = z.infer<typeof quantitativeValueSchema>;\n export type MonetaryAmount = z.infer<typeof monetaryAmountSchema>;\n export type JobPost = z.infer<typeof jobPostSchema>;\n\n\n export {\n EmploymentTypeEnum,\n EmploymentLevelEnum,\n JobFunctionEnum,\n PublishStatusEnum,\n BestFitEnum,\n ClinicalLicenseEnum,\n ShiftEnum,\n ClinicalSettingEnum,\n ClinicalSpecialtyEnum,\n } from '../job_posting_service_latest';\n\n export {\n DetailLevelEnum,\n UnitTextEnum,\n CurrencyEnum,\n } from '../shared_pickle_output_latest';\n\n export{\n sanityReferenceSchema\n } from './custom_sanity_models';\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkW2UGL7QI_cjs = require('./chunk-W2UGL7QI.cjs');
|
|
3
4
|
var chunk6BFFHI2V_cjs = require('./chunk-6BFFHI2V.cjs');
|
|
4
5
|
var chunkHD3VN7GE_cjs = require('./chunk-HD3VN7GE.cjs');
|
|
5
|
-
var chunkW2UGL7QI_cjs = require('./chunk-W2UGL7QI.cjs');
|
|
6
|
-
var chunkSMDQTPJE_cjs = require('./chunk-SMDQTPJE.cjs');
|
|
7
6
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
7
|
+
var chunkSMDQTPJE_cjs = require('./chunk-SMDQTPJE.cjs');
|
|
8
8
|
var lucideReact = require('lucide-react');
|
|
9
9
|
var Image = require('next/image');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -156,5 +156,5 @@ function JobHeader({
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
exports.JobHeader = JobHeader;
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
160
|
-
//# sourceMappingURL=chunk-
|
|
159
|
+
//# sourceMappingURL=chunk-TOEADI6J.cjs.map
|
|
160
|
+
//# sourceMappingURL=chunk-TOEADI6J.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/jobPost/JobHeader.tsx"],"names":["iconMap","jsx","jsxs","cn","Image","BackButton","Avatar","Dot","Chip_default"],"mappings":";;;;;;;;;;;;;;;AAgCO,SAAS,SAAU,CAAA;AAAA,EACxB,KAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAA6B,EAAA;AAC3B,EAAM,MAAA,UAAA,GAAa,CAAC,IAA+B,KAAA;AACjD,IAAM,MAAA,IAAA,GAAOA,0BAAQ,IAAI,CAAA;AACzB,IAAO,uBAAAC,cAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA,GACzB;AAEA,EACE,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,iBAAA;AAAA,MACZ,SAAW,EAAAC,oBAAA;AAAA,QACT,wEAAA;AAAA,QACA,CAAC,UAAc,IAAA;AAAA,OACjB;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,CAAC,UACA,oBAAAD,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,6GACb,EAAA,QAAA,EAAA;AAAA,0BAAAD,cAAA;AAAA,YAACG,sBAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,0CAAA;AAAA,cACV,GAAK,EAAA,SAAA;AAAA,cACL,GAAI,EAAA,YAAA;AAAA,cACJ,IAAI,EAAA;AAAA;AAAA,WACN;AAAA,0BACAH,cAAA;AAAA,YAACI,4BAAA;AAAA,YAAA;AAAA,cACC,cAAgB,EAAA,kBAAA;AAAA,cAChB,YAAc,EAAA,gBAAA;AAAA,cACd,SAAU,EAAA,8EAAA;AAAA,cACV,aAAY,EAAA;AAAA;AAAA,WACd;AAAA,0BACAJ,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,qDAAA;AAAA,cACV,aAAY,EAAA,mBAAA;AAAA,cAEZ,QAAA,kBAAAA,cAAA;AAAA,gBAACK,wBAAA;AAAA,gBAAA;AAAA,kBACC,IAAK,EAAA,OAAA;AAAA,kBACL,MAAO,EAAA,QAAA;AAAA,kBACP,IAAM,EAAA,UAAA;AAAA,kBACN,IAAM,EAAA,UAAA;AAAA,kBACN,GAAK,EAAA,SAAA;AAAA,kBACL,GAAI,EAAA;AAAA;AAAA;AACN;AAAA;AACF,SACF,EAAA,CAAA;AAAA,wBAGFJ,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,2DACb,EAAA,QAAA,EAAA;AAAA,0BAACA,eAAA,CAAA,KAAA,EAAA,EAAI,WAAU,2BACZ,EAAA,QAAA,EAAA;AAAA,YAAA,UAAA,oBACED,cAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,oBAAA,EAAqB,eAAY,mBAC9C,EAAA,QAAA,kBAAAA,cAAA;AAAA,cAACK,wBAAA;AAAA,cAAA;AAAA,gBACC,IAAK,EAAA,OAAA;AAAA,gBACL,MAAO,EAAA,QAAA;AAAA,gBACP,IAAM,EAAA,UAAA;AAAA,gBACN,IAAM,EAAA,UAAA;AAAA,gBACN,GAAK,EAAA,SAAA;AAAA,gBACL,GAAI,EAAA;AAAA;AAAA,aAER,EAAA,CAAA;AAAA,4BAGFL,cAAA,CAAC,SAAI,SAAU,EAAA,8DAAA,EACZ,qBAAW,GAAI,CAAA,CAAC,UAAU,CACzB,qBAAAC,eAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,aAAA,EAAa,uBAAuB,CAAC,CAAA,CAAA;AAAA,gBACrC,SAAU,EAAA,mBAAA;AAAA,gBAET,QAAA,EAAA;AAAA,kBAAA,QAAA;AAAA,kBACA,CAAA,GAAI,UAAU,MAAS,GAAA,CAAA,mCAAMK,eAAI,EAAA,EAAA,SAAA,EAAU,eAAgB,EAAA,IAAA,EAAM,EAAI,EAAA;AAAA;AAAA,eAAA;AAAA,cALjE;AAAA,aAOR,CACH,EAAA;AAAA,WACF,EAAA,CAAA;AAAA,0BAEAL,eAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,aAAY,EAAA,oBAAA;AAAA,cACZ,SAAU,EAAA,wEAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAAD,cAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,aAAY,EAAA,kBAAA;AAAA,oBACZ,SAAU,EAAA,8EAAA;AAAA,oBAET,QAAA,EAAA;AAAA;AAAA,iBACH;AAAA,gBAEC,CAAC,CAAC,OACD,oBAAAA,cAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAU,EAAA,yCAAA;AAAA,oBACV,aAAY,EAAA,oBAAA;AAAA,oBAEX,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,WAEJ;AAAA,0BAEAA,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,aAAY,EAAA,iBAAA;AAAA,cACZ,SAAU,EAAA,0DAAA;AAAA,cAET,gBAAM,GAAI,CAAA,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,MACzB,qBAAAC,eAAA;AAAA,gBAACM,8BAAA;AAAA,gBAAA;AAAA,kBAEC,IAAK,EAAA,OAAA;AAAA,kBACL,OAAQ,EAAA,SAAA;AAAA,kBACR,YAAY,EAAA,IAAA;AAAA,kBACZ,aAAA,EAAa,kBAAkB,IAAI,CAAA,CAAA;AAAA,kBAElC,QAAA,EAAA;AAAA,oBAAA,UAAA,CAAW,IAAI,CAAA;AAAA,oCAChBP,cAAA,CAAC,UAAM,QAAM,EAAA,KAAA,EAAA;AAAA;AAAA,iBAAA;AAAA,gBAPR,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,eASxB;AAAA;AAAA;AACH,SACF,EAAA;AAAA;AAAA;AAAA,GACF;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/jobPost/JobHeader.tsx"],"names":["iconMap","jsx","jsxs","cn","Image","BackButton","Avatar","Dot","Chip_default"],"mappings":"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","file":"chunk-TOEADI6J.cjs","sourcesContent":["'use client'\n\nimport { Dot } from 'lucide-react'\nimport Image from 'next/image'\nimport { type ReactNode } from 'react'\n\nimport { BackButton } from '@/components/buttons/BackButton'\nimport { Avatar } from '@/components/ui/Avatar'\nimport Chip from '@/components/ui/Chip'\nimport { iconMap } from '@/lib/icons'\nimport { cn } from '@/lib/utils'\n\nexport type JobHeaderTag = {\n name: string\n label: string\n icon: keyof typeof iconMap\n}\n\nexport type JobHeaderProps = {\n title: string\n bannerSrc: string\n subtitles?: string[]\n standalone?: boolean\n avatarSrc?: string\n avatarName?: string\n avatarHref?: string\n backFallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n tags?: JobHeaderTag[]\n}\n\nexport function JobHeader({\n title,\n subtitles,\n standalone,\n bannerSrc,\n avatarSrc,\n avatarName,\n avatarHref,\n backFallbackHref,\n backAcceptedRoutes,\n actions,\n tags,\n}: Readonly<JobHeaderProps>) {\n const renderIcon = (icon: JobHeaderTag['icon']) => {\n const Icon = iconMap[icon]\n return <Icon size={18} />\n }\n\n return (\n <div\n data-testid=\"job-header-root\"\n className={cn(\n '-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0',\n !standalone && 'rounded-3xl'\n )}\n >\n {!standalone && (\n <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\">\n <Image\n className=\"h-full w-full rounded-t-3xl object-cover\"\n src={bannerSrc}\n alt=\"job banner\"\n fill\n />\n <BackButton\n acceptedRoutes={backAcceptedRoutes}\n fallbackHref={backFallbackHref}\n className=\"absolute right-2 top-2 flex items-center justify-center text-white sm:hidden\"\n data-testid=\"job-header-back-button\"\n />\n <div\n className=\"absolute left-4 top-8 md:left-6 md:top-16 lg:top-24\"\n data-testid=\"job-header-avatar\"\n >\n <Avatar\n size=\"large\"\n target=\"_blank\"\n href={avatarHref}\n name={avatarName}\n src={avatarSrc}\n rel=\"noopener noreferrer\"\n />\n </div>\n </div>\n )}\n\n <div className=\"flex w-full flex-col items-start justify-start gap-4 px-6\">\n <div className=\"flex flex-col md:flex-row\">\n {standalone && (\n <div className=\"-mt-4 mr-4 md:mt-0\" data-testid=\"job-header-avatar\">\n <Avatar\n size=\"large\"\n target=\"_blank\"\n href={avatarHref}\n name={avatarName}\n src={avatarSrc}\n rel=\"noopener noreferrer\"\n />\n </div>\n )}\n\n <div className=\"prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg\">\n {subtitles?.map((subtitle, i) => (\n <div\n key={subtitle}\n data-testid={`job-header-subtitle-${i}`}\n className=\"flex items-center\"\n >\n {subtitle}\n {i < subtitles.length - 1 && <Dot className=\"mx-1 shrink-0\" size={10} />}\n </div>\n ))}\n </div>\n </div>\n\n <div\n data-testid=\"job-header-content\"\n className=\"mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1\"\n >\n <h2\n data-testid=\"job-header-title\"\n className=\"break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg\"\n >\n {title}\n </h2>\n\n {!!actions && (\n <div\n className=\"flex w-full justify-end gap-2 md:w-auto\"\n data-testid=\"job-header-actions\"\n >\n {actions}\n </div>\n )}\n </div>\n\n <div\n data-testid=\"job-header-tags\"\n className=\"flex flex-row flex-wrap items-center justify-start gap-2\"\n >\n {tags?.map(({ name, label, icon }) => (\n <Chip\n key={`${name}-${label}`}\n size=\"small\"\n variant=\"neutral\"\n aria-label={name}\n data-testid={`job-header-tag-${name}`}\n >\n {renderIcon(icon)}\n <span>{label}</span>\n </Chip>\n ))}\n </div>\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from './chunk-62OBBM7T.js';
|
|
2
|
-
import { autocomplete } from './chunk-U3D4LL6T.js';
|
|
3
2
|
import { cn } from './chunk-2FGZQI42.js';
|
|
3
|
+
import { autocomplete } from './chunk-U3D4LL6T.js';
|
|
4
4
|
import { LoaderCircle, CircleX } from 'lucide-react';
|
|
5
5
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
6
6
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -113,5 +113,5 @@ function PlacesQueryInput({
|
|
|
113
113
|
var PlacesQueryInput_default = PlacesQueryInput;
|
|
114
114
|
|
|
115
115
|
export { PlacesQueryInput_default };
|
|
116
|
-
//# sourceMappingURL=chunk-
|
|
117
|
-
//# sourceMappingURL=chunk-
|
|
116
|
+
//# sourceMappingURL=chunk-U27VO642.js.map
|
|
117
|
+
//# sourceMappingURL=chunk-U27VO642.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":[],"mappings":"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","file":"chunk-U27VO642.js","sourcesContent":["'use client'\n\nimport { type PlaceAutocompleteResult } from '@googlemaps/google-maps-services-js'\nimport { CircleX, LoaderCircle } from 'lucide-react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { autocomplete } from '@/lib/google'\nimport { cn } from '@/lib/utils'\n\n/**\n * The idea is of this type is to have a more specific type for the Place object,\n * without the repos that use it having to import the PlaceAutocompleteResult type.\n * 'place_id' can be used to query the Google Places API directly for more information about the place.\n */\nexport type Place = Pick<PlaceAutocompleteResult, 'description' | 'place_id'>\n\ninterface PlacesQueryInputProps {\n apiKey: string\n selected?: Place\n onSelect: (place?: Place) => void\n className?: string\n}\n\nfunction PlacesQueryInput({\n apiKey,\n selected,\n onSelect,\n className,\n}: Readonly<PlacesQueryInputProps>) {\n const [predictions, setPredictions] = useState<PlaceAutocompleteResult[] | null>(null)\n const [input, setInput] = useState(selected?.description ?? '')\n const [isLoadingPredictions, setIsLoadingPredictions] = useState(false)\n const [shouldOpenUpward, setShouldOpenUpward] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const inputRef = useRef<HTMLDivElement | null>(null)\n\n const debouncedAutocomplete = useCallback((value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(async () => {\n try {\n if (value.length > 2) {\n setIsLoadingPredictions(true)\n const fetchedPredictions = await autocomplete(value, apiKey)\n setIsLoadingPredictions(false)\n setPredictions(fetchedPredictions ?? [])\n } else {\n setPredictions(null)\n }\n } catch (error) {\n setIsLoadingPredictions(false)\n setPredictions([])\n console.error('Autocomplete error:', error)\n }\n }, 300)\n }, [])\n\n const handleInputChange = (value: string) => {\n setInput(value)\n debouncedAutocomplete(value)\n }\n\n const handleSelect = (prediction: PlaceAutocompleteResult) => {\n onSelect(prediction)\n setPredictions(null)\n setInput(prediction.description)\n }\n\n const handleClear = () => {\n onSelect()\n setPredictions(null)\n setInput('')\n }\n\n /** Close the dropdown when the input loses focus, with the timeout to allow the user to click on a prediction.\n * */\n const handleBlur = () => setTimeout(() => setPredictions(null), 200)\n\n useEffect(() => {\n const checkDropdownPosition = () => {\n if (inputRef.current) {\n const rect = inputRef.current.getBoundingClientRect()\n const windowHeight = window.innerHeight\n setShouldOpenUpward(rect.bottom + 200 > windowHeight)\n }\n }\n\n checkDropdownPosition()\n window.addEventListener('resize', checkDropdownPosition)\n return () => window.removeEventListener('resize', checkDropdownPosition)\n }, [])\n\n return (\n <div className={cn('relative w-full', className)} ref={inputRef} onBlur={handleBlur}>\n <Command>\n <div className=\"relative w-full\">\n <CommandInput\n placeholder=\"Type an address to search...\"\n value={input}\n onValueChange={handleInputChange}\n className=\"truncate pr-8\"\n />\n {isLoadingPredictions && (\n <LoaderCircle className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100\" />\n )}\n {input && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n {predictions && (\n <CommandList\n className={cn(\n 'absolute z-50 w-full rounded-md border bg-white shadow-lg',\n shouldOpenUpward ? 'bottom-full' : 'top-full'\n )}\n >\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {predictions.map((prediction) => (\n <CommandItem\n key={prediction.place_id}\n onSelect={() => handleSelect(prediction)}\n className=\"truncate\"\n >\n {prediction.description}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n )}\n </Command>\n </div>\n )\n}\n\nexport default PlacesQueryInput\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkXKLOANYB_cjs = require('./chunk-XKLOANYB.cjs');
|
|
4
|
+
var chunkYNREEZ75_cjs = require('./chunk-YNREEZ75.cjs');
|
|
4
5
|
var chunkXWQI5MC3_cjs = require('./chunk-XWQI5MC3.cjs');
|
|
5
6
|
var chunkLTJXX7NG_cjs = require('./chunk-LTJXX7NG.cjs');
|
|
6
7
|
var chunkRKLUMDJB_cjs = require('./chunk-RKLUMDJB.cjs');
|
|
7
8
|
var chunkXO6LO5CU_cjs = require('./chunk-XO6LO5CU.cjs');
|
|
8
|
-
var chunkYNREEZ75_cjs = require('./chunk-YNREEZ75.cjs');
|
|
9
9
|
var chunkC3DCFPJC_cjs = require('./chunk-C3DCFPJC.cjs');
|
|
10
10
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
11
11
|
var cva = require('cva');
|
|
@@ -217,5 +217,5 @@ var triggerVariants = cva.cva(
|
|
|
217
217
|
);
|
|
218
218
|
|
|
219
219
|
exports.Combobox = Combobox;
|
|
220
|
-
//# sourceMappingURL=chunk-
|
|
221
|
-
//# sourceMappingURL=chunk-
|
|
220
|
+
//# sourceMappingURL=chunk-YVKKQOTE.cjs.map
|
|
221
|
+
//# sourceMappingURL=chunk-YVKKQOTE.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/Combobox.tsx"],"names":["forwardRef","useState","useRef","icons","useEffect","value","cn","jsx","Label_default","jsxs","Popover","PopoverTrigger","Badge","ChevronDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","id","CommandItem","ListItem_default","Separator","CircleX","ErrorMessage_default","cva"],"mappings":"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","file":"chunk-XC3HIJM3.cjs","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { type ComponentProps, forwardRef, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\nimport { Badge } from '@/components/ui/Badge'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport ListItem from '@/components/ui/ListItem'\nimport { cn } from '@/lib/utils'\n\ntype Icon = { icon?: keyof typeof icons }\ntype LabelProps = { label?: string; description?: string }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: string; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { options: Option[]; classNames?: ClassNames; placeholder?: string; error?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon & LabelProps\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n id,\n name,\n value,\n label,\n options,\n required,\n description,\n classNames,\n multiselect,\n placeholder,\n error,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const isUserUpdate = useRef(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const isEmpty = selected.length === 0\n const showChevron = isDefault ? isEmpty : true\n const close = () => setOpen(false)\n\n useEffect(() => {\n if (!isUserUpdate.current) {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }\n }, [value, options, multiselect])\n\n useEffect(() => {\n if (isUserUpdate.current) {\n if (multiselect) {\n handleChange?.(selected.map((o) => o.value))\n } else {\n handleChange?.(selected[0]?.value ?? '')\n }\n isUserUpdate.current = false\n }\n }, [selected, multiselect, handleChange])\n\n const updateMultiSelect = (prev: Option[], option: Option) => {\n return prev.some((o) => o.value === option.value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n }\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n\n isUserUpdate.current = true\n if (multiselect) {\n setSelected((prev) => updateMultiSelect(prev, option))\n } else {\n setSelected([option])\n close()\n }\n }\n\n const handleClear = () => {\n isUserUpdate.current = true\n setSelected([])\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-1', className)}>\n {isDefault && (\n <Label\n text={label}\n htmlFor={name}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n asChild\n disabled={options.length === 0}\n data-testid={`${id ?? name}-combobox-trigger`}\n >\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n isDefault && !isEmpty && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && !isEmpty && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && isEmpty && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {showChevron && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem\n key={id}\n value={option.title}\n onSelect={() => handleSelect(option.value)}\n >\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </Command>\n </PopoverContent>\n </Popover>\n\n {isDefault && !isEmpty && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Combobox.tsx"],"names":["forwardRef","useState","useRef","icons","useEffect","value","cn","jsx","Label_default","jsxs","Popover","PopoverTrigger","Badge","ChevronDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","id","CommandItem","ListItem_default","Separator","CircleX","ErrorMessage_default","cva"],"mappings":"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","file":"chunk-YVKKQOTE.cjs","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { type ComponentProps, forwardRef, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\nimport { Badge } from '@/components/ui/Badge'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport ListItem from '@/components/ui/ListItem'\nimport { cn } from '@/lib/utils'\n\ntype Icon = { icon?: keyof typeof icons }\ntype LabelProps = { label?: string; description?: string }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: string; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { options: Option[]; classNames?: ClassNames; placeholder?: string; error?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon & LabelProps\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n id,\n name,\n value,\n label,\n options,\n required,\n description,\n classNames,\n multiselect,\n placeholder,\n error,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const isUserUpdate = useRef(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const isEmpty = selected.length === 0\n const showChevron = isDefault ? isEmpty : true\n const close = () => setOpen(false)\n\n useEffect(() => {\n if (!isUserUpdate.current) {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }\n }, [value, options, multiselect])\n\n useEffect(() => {\n if (isUserUpdate.current) {\n if (multiselect) {\n handleChange?.(selected.map((o) => o.value))\n } else {\n handleChange?.(selected[0]?.value ?? '')\n }\n isUserUpdate.current = false\n }\n }, [selected, multiselect, handleChange])\n\n const updateMultiSelect = (prev: Option[], option: Option) => {\n return prev.some((o) => o.value === option.value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n }\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n\n isUserUpdate.current = true\n if (multiselect) {\n setSelected((prev) => updateMultiSelect(prev, option))\n } else {\n setSelected([option])\n close()\n }\n }\n\n const handleClear = () => {\n isUserUpdate.current = true\n setSelected([])\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-1', className)}>\n {isDefault && (\n <Label\n text={label}\n htmlFor={name}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n asChild\n disabled={options.length === 0}\n data-testid={`${id ?? name}-combobox-trigger`}\n >\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n isDefault && !isEmpty && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && !isEmpty && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && isEmpty && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {showChevron && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem\n key={id}\n value={option.title}\n onSelect={() => handleSelect(option.value)}\n >\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </Command>\n </PopoverContent>\n </Popover>\n\n {isDefault && !isEmpty && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ListItem_default } from './chunk-QURNDLRE.js';
|
|
2
|
+
import { Badge } from './chunk-TVYLTYUK.js';
|
|
2
3
|
import { Label_default } from './chunk-CAGLLWPR.js';
|
|
3
4
|
import { ErrorMessage_default } from './chunk-CWTO3NXW.js';
|
|
4
5
|
import { Popover, PopoverTrigger, PopoverContent } from './chunk-ODHIUBLC.js';
|
|
5
6
|
import { Separator } from './chunk-FNCPK4RH.js';
|
|
6
|
-
import { Badge } from './chunk-TVYLTYUK.js';
|
|
7
7
|
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from './chunk-62OBBM7T.js';
|
|
8
8
|
import { cn } from './chunk-2FGZQI42.js';
|
|
9
9
|
import { cva } from 'cva';
|
|
@@ -215,5 +215,5 @@ var triggerVariants = cva(
|
|
|
215
215
|
);
|
|
216
216
|
|
|
217
217
|
export { Combobox };
|
|
218
|
-
//# sourceMappingURL=chunk-
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
218
|
+
//# sourceMappingURL=chunk-Z5PEOX6F.js.map
|
|
219
|
+
//# sourceMappingURL=chunk-Z5PEOX6F.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/Combobox.tsx"],"names":["value","id"],"mappings":"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","file":"chunk-ZCBOREOG.js","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { type ComponentProps, forwardRef, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\nimport { Badge } from '@/components/ui/Badge'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport ListItem from '@/components/ui/ListItem'\nimport { cn } from '@/lib/utils'\n\ntype Icon = { icon?: keyof typeof icons }\ntype LabelProps = { label?: string; description?: string }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: string; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { options: Option[]; classNames?: ClassNames; placeholder?: string; error?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon & LabelProps\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n id,\n name,\n value,\n label,\n options,\n required,\n description,\n classNames,\n multiselect,\n placeholder,\n error,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const isUserUpdate = useRef(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const isEmpty = selected.length === 0\n const showChevron = isDefault ? isEmpty : true\n const close = () => setOpen(false)\n\n useEffect(() => {\n if (!isUserUpdate.current) {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }\n }, [value, options, multiselect])\n\n useEffect(() => {\n if (isUserUpdate.current) {\n if (multiselect) {\n handleChange?.(selected.map((o) => o.value))\n } else {\n handleChange?.(selected[0]?.value ?? '')\n }\n isUserUpdate.current = false\n }\n }, [selected, multiselect, handleChange])\n\n const updateMultiSelect = (prev: Option[], option: Option) => {\n return prev.some((o) => o.value === option.value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n }\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n\n isUserUpdate.current = true\n if (multiselect) {\n setSelected((prev) => updateMultiSelect(prev, option))\n } else {\n setSelected([option])\n close()\n }\n }\n\n const handleClear = () => {\n isUserUpdate.current = true\n setSelected([])\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-1', className)}>\n {isDefault && (\n <Label\n text={label}\n htmlFor={name}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n asChild\n disabled={options.length === 0}\n data-testid={`${id ?? name}-combobox-trigger`}\n >\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n isDefault && !isEmpty && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && !isEmpty && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && isEmpty && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {showChevron && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem\n key={id}\n value={option.title}\n onSelect={() => handleSelect(option.value)}\n >\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </Command>\n </PopoverContent>\n </Popover>\n\n {isDefault && !isEmpty && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Combobox.tsx"],"names":["value","id"],"mappings":"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","file":"chunk-Z5PEOX6F.js","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { ChevronDownIcon, CircleX, icons } from 'lucide-react'\nimport { type ComponentProps, forwardRef, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Separator } from '@/components/primitives/separator'\nimport { Badge } from '@/components/ui/Badge'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport ListItem from '@/components/ui/ListItem'\nimport { cn } from '@/lib/utils'\n\ntype Icon = { icon?: keyof typeof icons }\ntype LabelProps = { label?: string; description?: string }\ntype Children = { children?: (props: { close: () => void }) => JSX.Element }\ntype Option = { id: string; value: string; title: string; description?: string; icon?: string }\ntype ClassNames = { label?: string; trigger?: string; items?: string; content?: string }\ntype Shared = { options: Option[]; classNames?: ClassNames; placeholder?: string; error?: string }\ntype MultiSelect = { multiselect: true; value?: string[]; onChange?: (v: string[]) => void }\ntype SingleSelect = { multiselect?: false; value?: string; onChange?: (v: string) => void }\ntype TriggerVariants = VariantProps<typeof triggerVariants>\ntype SelectProps = Omit<ComponentProps<'select'>, 'value' | 'onChange' | 'size' | 'children'>\ntype Props = TriggerVariants & SelectProps & Children & Shared & Icon & LabelProps\ntype MultiSelectProps = Props & MultiSelect\ntype SingleSelectProps = Props & SingleSelect\ntype ComboboxProps = MultiSelectProps | SingleSelectProps\n\nexport const Combobox = forwardRef<HTMLDivElement, ComboboxProps>((props, ref) => {\n const {\n id,\n name,\n value,\n label,\n options,\n required,\n description,\n classNames,\n multiselect,\n placeholder,\n error,\n variant = 'default',\n size,\n icon,\n className,\n onChange: handleChange,\n children: footer,\n } = props\n const [selected, setSelected] = useState<Option[]>([])\n const [open, setOpen] = useState(false)\n const isUserUpdate = useRef(false)\n const IconComponent = icon && icons[icon]\n const hideSearchBox = options?.length <= 5\n const isDefault = variant === 'default'\n const isChip = variant === 'chip'\n const isEmpty = selected.length === 0\n const showChevron = isDefault ? isEmpty : true\n const close = () => setOpen(false)\n\n useEffect(() => {\n if (!isUserUpdate.current) {\n const valueArray = multiselect ? (value ?? []) : value ? [value] : []\n setSelected(\n valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== undefined)\n )\n }\n }, [value, options, multiselect])\n\n useEffect(() => {\n if (isUserUpdate.current) {\n if (multiselect) {\n handleChange?.(selected.map((o) => o.value))\n } else {\n handleChange?.(selected[0]?.value ?? '')\n }\n isUserUpdate.current = false\n }\n }, [selected, multiselect, handleChange])\n\n const updateMultiSelect = (prev: Option[], option: Option) => {\n return prev.some((o) => o.value === option.value)\n ? prev.filter((v) => v !== option)\n : [...prev, option]\n }\n\n const handleSelect = (value: string) => {\n const option = options.find((o) => o.value === value)\n if (!option) return\n\n isUserUpdate.current = true\n if (multiselect) {\n setSelected((prev) => updateMultiSelect(prev, option))\n } else {\n setSelected([option])\n close()\n }\n }\n\n const handleClear = () => {\n isUserUpdate.current = true\n setSelected([])\n }\n\n const handleDisplayValue = () => {\n const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(', ') : placeholder\n return isDefault ? defaultLabel : label\n }\n\n return (\n <div className={cn('flex flex-col gap-1', className)}>\n {isDefault && (\n <Label\n text={label}\n htmlFor={name}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n\n <div className=\"relative flex\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n asChild\n disabled={options.length === 0}\n data-testid={`${id ?? name}-combobox-trigger`}\n >\n <div\n ref={ref}\n className={cn(\n triggerVariants({ variant, size }),\n isDefault && !isEmpty && 'pr-10',\n classNames?.trigger\n )}\n aria-expanded={open}\n >\n {isDefault && IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n {isChip && !isEmpty && <Badge variant=\"purple\">{selected.length}</Badge>}\n\n <span\n className={cn(\n 'w-full truncate leading-normal',\n isDefault && isEmpty && 'text-grey-40'\n )}\n >\n {handleDisplayValue()}\n </span>\n\n {showChevron && (\n <ChevronDownIcon\n className=\"shrink-0 transform group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n )}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className={cn(\n 'flex w-full max-w-xs flex-col overflow-hidden p-0',\n 'max-h-[--radix-popover-content-available-height]',\n classNames?.content\n )}\n collisionPadding={8}\n sideOffset={4}\n align=\"start\"\n >\n <Command>\n {!hideSearchBox && <CommandInput placeholder=\"Search...\" />}\n\n <CommandList>\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {options.map(({ id, ...option }) => (\n <CommandItem\n key={id}\n value={option.title}\n onSelect={() => handleSelect(option.value)}\n >\n <ListItem\n className={cn(classNames?.items, 'truncate py-1')}\n isSelected={selected.some((s) => s.value === option.value)}\n hasCheckbox={multiselect}\n {...option}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n\n {!!footer && <Separator />}\n {footer && footer({ close })}\n </Command>\n </PopoverContent>\n </Popover>\n\n {isDefault && !isEmpty && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n})\nCombobox.displayName = 'Combobox'\n\nconst triggerVariants = cva(\n 'group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5',\n {\n variants: {\n variant: {\n default: ['w-full', 'rounded-lg'],\n chip: [\n 'font-bold',\n 'rounded-3xl',\n 'data-[state=open]:bg-black',\n 'data-[state=open]:text-white',\n ],\n },\n size: {\n small: ['h-8', 'py-1', 'px-2', 'text-xs'],\n normal: ['h-9', 'py-2', 'px-3', 'text-sm'],\n large: ['h-10', 'py-3', 'px-4', 'text-base'],\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'normal',\n },\n }\n)\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkXUTLQ573_cjs = require('./chunk-XUTLQ573.cjs');
|
|
4
3
|
var chunkJZVRCP3M_cjs = require('./chunk-JZVRCP3M.cjs');
|
|
4
|
+
var chunkXUTLQ573_cjs = require('./chunk-XUTLQ573.cjs');
|
|
5
5
|
|
|
6
6
|
// src/services/displayText.tsx
|
|
7
7
|
var DisplayTextService = class {
|
|
@@ -33,5 +33,5 @@ var DisplayTextService = class {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
exports.DisplayTextService = DisplayTextService;
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
36
|
+
//# sourceMappingURL=chunk-ZZCTMR2F.cjs.map
|
|
37
|
+
//# sourceMappingURL=chunk-ZZCTMR2F.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/displayText.tsx"],"names":["defaultMappings","DisplayTextScopeNotFoundError","displayTexts","DisplayTextValueNotFoundError"],"mappings":";;;;;;AAiCO,IAAM,qBAAN,MAAwD;AAAA,EAI7D,YAAY,cAA2C,EAAA;AAHvD,IAAA,IAAA,CAAiB,eAAqC,GAAA,IAAA;AAIpD,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAGA,iCAAA;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACL;AAAA;AACF,EAEA,MAAM,cACJ,CAAA,KAAA,EACA,KACA,EAAA,QAAA,GAA8B,KAAK,eAClB,EAAA;AACjB,IAAM,MAAA,YAAA,GAAe,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,gDAA8B,KAAK,CAAA;AAAA;AAG/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,mBAAA,GAAsB,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,cAAe,CAAA,KAAA,EAAO,CAAG,EAAA,QAAQ,CAAC,CAAA;AACpF,MAAA,MAAMC,aAAe,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,mBAAmB,CAAA;AAC1D,MAAOA,OAAAA,aAAAA,CAAa,OAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAGlD,IAAM,MAAA,YAAA,GAAe,aAAa,KAAK,CAAA;AAEvC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,+CAA8B,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA;AAGtD,IAAA,OAAO,aAAa,QAAQ,CAAA,IAAK,YAAa,CAAA,IAAA,CAAK,eAAe,CAAK,IAAA,KAAA;AAAA;AAE3E","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/services/displayText.tsx"],"names":["defaultMappings","DisplayTextScopeNotFoundError","displayTexts","DisplayTextValueNotFoundError"],"mappings":";;;;;;AAiCO,IAAM,qBAAN,MAAwD;AAAA,EAI7D,YAAY,cAA2C,EAAA;AAHvD,IAAA,IAAA,CAAiB,eAAqC,GAAA,IAAA;AAIpD,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAGA,iCAAA;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACL;AAAA;AACF,EAEA,MAAM,cACJ,CAAA,KAAA,EACA,KACA,EAAA,QAAA,GAA8B,KAAK,eAClB,EAAA;AACjB,IAAM,MAAA,YAAA,GAAe,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,gDAA8B,KAAK,CAAA;AAAA;AAG/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,mBAAA,GAAsB,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,cAAe,CAAA,KAAA,EAAO,CAAG,EAAA,QAAQ,CAAC,CAAA;AACpF,MAAA,MAAMC,aAAe,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,mBAAmB,CAAA;AAC1D,MAAOA,OAAAA,aAAAA,CAAa,OAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAGlD,IAAM,MAAA,YAAA,GAAe,aAAa,KAAK,CAAA;AAEvC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,+CAA8B,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA;AAGtD,IAAA,OAAO,aAAa,QAAQ,CAAA,IAAK,YAAa,CAAA,IAAA,CAAK,eAAe,CAAK,IAAA,KAAA;AAAA;AAE3E","file":"chunk-ZZCTMR2F.cjs","sourcesContent":["import { type z } from 'zod'\n\nimport { defaultMappings } from '@/lib/mappings'\nimport {\n DisplayTextScopeNotFoundError,\n DisplayTextValueNotFoundError,\n} from '@/types/displayText.errors'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SUPPORTED_LANGUAGES = ['en'] as const\ntype SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]\n\n// Define the display text configuration type for Zod enums\nexport type ServiceMappings = typeof defaultMappings\n\ntype ZodEnumValue<T> = T extends z.ZodEnum<[string, ...string[]]> ? z.infer<T> : never\n\nexport type DisplayTextConfig<T = string> = {\n [K in T extends z.ZodEnum<[string, ...string[]]> ? ZodEnumValue<T> : string]: {\n [L in SupportedLanguage]: string\n }\n} & Record<string, { [L in SupportedLanguage]: string }>\n\n// Define the expected interface for the service\nexport interface IDisplayTextService {\n getDisplayText: (\n scope: keyof ServiceMappings,\n value: string | string[],\n language?: SupportedLanguage\n ) => Promise<string>\n}\n\n// define the service\nexport class DisplayTextService implements IDisplayTextService {\n private readonly defaultLanguage: SupportedLanguage = 'en'\n private readonly mappings: ServiceMappings\n\n constructor(customMappings?: Partial<ServiceMappings>) {\n this.mappings = {\n ...defaultMappings, // Use all pre-defined mappings as defaults\n ...customMappings, // Override with any custom mappings if provided\n }\n }\n\n async getDisplayText(\n scope: keyof ServiceMappings,\n value: string | string[],\n language: SupportedLanguage = this.defaultLanguage\n ): Promise<string> {\n const scopeMapping = this.mappings[scope]\n\n if (!scopeMapping) {\n throw new DisplayTextScopeNotFoundError(scope)\n }\n\n if (Array.isArray(value)) {\n const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language))\n const displayTexts = await Promise.all(displayTextPromises)\n return displayTexts.filter((v) => !!v).join(', ')\n }\n\n const displayTexts = scopeMapping[value]\n\n if (!displayTexts) {\n throw new DisplayTextValueNotFoundError(value, scope)\n }\n\n return displayTexts[language] || displayTexts[this.defaultLanguage] || value\n }\n}\n"]}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkHD3VN7GE_cjs = require('../../chunk-HD3VN7GE.cjs');
|
|
4
4
|
require('../../chunk-6V7WZMBZ.cjs');
|
|
5
|
+
require('../../chunk-MGWZXPMF.cjs');
|
|
5
6
|
require('../../chunk-QOYVMNQ6.cjs');
|
|
6
7
|
require('../../chunk-IX3GUXML.cjs');
|
|
7
|
-
require('../../chunk-MGWZXPMF.cjs');
|
|
8
8
|
require('../../chunk-Q7SFCCGT.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { BackButton } from '../../chunk-IJQTUD3D.js';
|
|
2
2
|
import '../../chunk-3NDL2JQ7.js';
|
|
3
|
+
import '../../chunk-2FGZQI42.js';
|
|
3
4
|
import '../../chunk-SZ5XKNVG.js';
|
|
4
5
|
import '../../chunk-DXLVRZFU.js';
|
|
5
|
-
import '../../chunk-2FGZQI42.js';
|
|
6
6
|
import '../../chunk-PZ5AY32C.js';
|
|
7
7
|
//# sourceMappingURL=BackButton.js.map
|
|
8
8
|
//# sourceMappingURL=BackButton.js.map
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var chunkZCRWSWPJ_cjs = require('../../chunk-ZCRWSWPJ.cjs');
|
|
4
4
|
require('../../chunk-AEYPJ5YA.cjs');
|
|
5
5
|
require('../../chunk-6BFFHI2V.cjs');
|
|
6
|
-
require('../../chunk-XAPQTBJR.cjs');
|
|
7
6
|
require('../../chunk-MGWZXPMF.cjs');
|
|
7
|
+
require('../../chunk-XAPQTBJR.cjs');
|
|
8
8
|
require('../../chunk-Q7SFCCGT.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { JobLocation } from '../../chunk-3HO3CCXD.js';
|
|
2
2
|
import '../../chunk-53OQ6M2O.js';
|
|
3
3
|
import '../../chunk-LQ4DG6ST.js';
|
|
4
|
-
import '../../chunk-KZBS5RNE.js';
|
|
5
4
|
import '../../chunk-2FGZQI42.js';
|
|
5
|
+
import '../../chunk-KZBS5RNE.js';
|
|
6
6
|
import '../../chunk-PZ5AY32C.js';
|
|
7
7
|
//# sourceMappingURL=JobLocation.js.map
|
|
8
8
|
//# sourceMappingURL=JobLocation.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTOEADI6J_cjs = require('../../chunk-TOEADI6J.cjs');
|
|
4
|
+
require('../../chunk-W2UGL7QI.cjs');
|
|
4
5
|
require('../../chunk-6BFFHI2V.cjs');
|
|
6
|
+
require('../../chunk-IMAHT6W4.cjs');
|
|
5
7
|
require('../../chunk-HD3VN7GE.cjs');
|
|
6
8
|
require('../../chunk-6V7WZMBZ.cjs');
|
|
9
|
+
require('../../chunk-MGWZXPMF.cjs');
|
|
7
10
|
require('../../chunk-QOYVMNQ6.cjs');
|
|
8
|
-
require('../../chunk-W2UGL7QI.cjs');
|
|
9
|
-
require('../../chunk-IMAHT6W4.cjs');
|
|
10
11
|
require('../../chunk-IX3GUXML.cjs');
|
|
11
12
|
require('../../chunk-SMDQTPJE.cjs');
|
|
12
|
-
require('../../chunk-MGWZXPMF.cjs');
|
|
13
13
|
require('../../chunk-Q7SFCCGT.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
Object.defineProperty(exports, "JobHeader", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunkTOEADI6J_cjs.JobHeader; }
|
|
20
20
|
});
|
|
21
21
|
//# sourceMappingURL=JobHeader.cjs.map
|
|
22
22
|
//# sourceMappingURL=JobHeader.cjs.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { JobHeader } from '../../chunk-
|
|
1
|
+
export { JobHeader } from '../../chunk-6Z6T5WWS.js';
|
|
2
|
+
import '../../chunk-2TEFWPFS.js';
|
|
2
3
|
import '../../chunk-LQ4DG6ST.js';
|
|
4
|
+
import '../../chunk-FVJL3PEK.js';
|
|
3
5
|
import '../../chunk-IJQTUD3D.js';
|
|
4
6
|
import '../../chunk-3NDL2JQ7.js';
|
|
7
|
+
import '../../chunk-2FGZQI42.js';
|
|
5
8
|
import '../../chunk-SZ5XKNVG.js';
|
|
6
|
-
import '../../chunk-2TEFWPFS.js';
|
|
7
|
-
import '../../chunk-FVJL3PEK.js';
|
|
8
9
|
import '../../chunk-DXLVRZFU.js';
|
|
9
10
|
import '../../chunk-PONUWUJ7.js';
|
|
10
|
-
import '../../chunk-2FGZQI42.js';
|
|
11
11
|
import '../../chunk-PZ5AY32C.js';
|
|
12
12
|
//# sourceMappingURL=JobHeader.js.map
|
|
13
13
|
//# sourceMappingURL=JobHeader.js.map
|