@inploi/plugin-job-search 0.1.5 → 0.2.0
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/cdn/index.js +6 -6
- package/dist/job-search.api.d.ts +149 -2
- package/dist/job-search.d.ts +11 -2
- package/dist/job-search.schemas.d.ts +41 -2
- package/dist/plugin-job-search.cjs +271 -216
- package/dist/plugin-job-search.js +271 -216
- package/package.json +14 -8
|
@@ -1066,7 +1066,13 @@ function B$1(n2, t2) {
|
|
|
1066
1066
|
const JOB_SEARCH_ELEMENT_ID = "inploi-job-search";
|
|
1067
1067
|
const JOB_SEARCH_SCOPE_ELEMENT_ID = "ijs";
|
|
1068
1068
|
const PAGE_SIZE = 10;
|
|
1069
|
-
const cacheKey = (value) =>
|
|
1069
|
+
const cacheKey = (value) => {
|
|
1070
|
+
const filterString = Object.entries(value.filter).sort(([key1], [key2]) => key1.localeCompare(key2)).map(([key, value2]) => {
|
|
1071
|
+
var _a;
|
|
1072
|
+
return (value2 == null ? void 0 : value2.select) === "many" ? `${key}=${(_a = value2.value) == null ? void 0 : _a.sort().join("|")}` : `${key}=${value2 == null ? void 0 : value2.value}`;
|
|
1073
|
+
}).join("&");
|
|
1074
|
+
return `${value.baseKey}::${filterString}`;
|
|
1075
|
+
};
|
|
1070
1076
|
function g(n2, t2) {
|
|
1071
1077
|
for (var e2 in t2)
|
|
1072
1078
|
n2[e2] = t2[e2];
|
|
@@ -2824,6 +2830,24 @@ function object(entries, arg2, arg3, arg4) {
|
|
|
2824
2830
|
}
|
|
2825
2831
|
};
|
|
2826
2832
|
}
|
|
2833
|
+
function optional(wrapped, default_) {
|
|
2834
|
+
return {
|
|
2835
|
+
type: "optional",
|
|
2836
|
+
async: false,
|
|
2837
|
+
wrapped,
|
|
2838
|
+
default: default_,
|
|
2839
|
+
_parse(input, info) {
|
|
2840
|
+
if (input === void 0) {
|
|
2841
|
+
const override = getDefault(this);
|
|
2842
|
+
if (override === void 0) {
|
|
2843
|
+
return getOutput(input);
|
|
2844
|
+
}
|
|
2845
|
+
input = override;
|
|
2846
|
+
}
|
|
2847
|
+
return this.wrapped._parse(input, info);
|
|
2848
|
+
}
|
|
2849
|
+
};
|
|
2850
|
+
}
|
|
2827
2851
|
function string(arg1, arg2) {
|
|
2828
2852
|
const [message = "Invalid type", pipe] = getDefaultArgs(arg1, arg2);
|
|
2829
2853
|
return {
|
|
@@ -3044,7 +3068,13 @@ const JobPayloadSchema = object({
|
|
|
3044
3068
|
contract_type: nullable(string()),
|
|
3045
3069
|
created_at: nullable(string()),
|
|
3046
3070
|
custom_data: nullable(record(any())),
|
|
3047
|
-
href: string()
|
|
3071
|
+
href: string(),
|
|
3072
|
+
industry: optional(string()),
|
|
3073
|
+
category: optional(string()),
|
|
3074
|
+
skills: optional(string()),
|
|
3075
|
+
town: optional(string()),
|
|
3076
|
+
city: optional(string()),
|
|
3077
|
+
country: optional(string())
|
|
3048
3078
|
});
|
|
3049
3079
|
const JobSchema = transform(JobPayloadSchema, (schema) => {
|
|
3050
3080
|
const isNew = schema.created_at ? new Date(schema.created_at).getTime() > Date.now() - SEVEN_DAYS_MS : false;
|
|
@@ -3068,6 +3098,7 @@ const JobSchema = transform(JobPayloadSchema, (schema) => {
|
|
|
3068
3098
|
throw new Error("Invalid pay data");
|
|
3069
3099
|
})();
|
|
3070
3100
|
return {
|
|
3101
|
+
raw: schema,
|
|
3071
3102
|
id: schema.id,
|
|
3072
3103
|
isNew,
|
|
3073
3104
|
company: {
|
|
@@ -3220,8 +3251,7 @@ const CurrentValueTag = ({
|
|
|
3220
3251
|
return null;
|
|
3221
3252
|
case "loaded":
|
|
3222
3253
|
case "revalidating": {
|
|
3223
|
-
const suggestions = query.data[property.key];
|
|
3224
|
-
invariant(suggestions, `API error: no available properties for key “${property.key}”`);
|
|
3254
|
+
const suggestions = query.data[property.key] ?? [];
|
|
3225
3255
|
const selectedSuggestions = suggestions.filter((s2) => selectedValues.includes(s2.value));
|
|
3226
3256
|
switch (selectedSuggestions.length) {
|
|
3227
3257
|
case 0:
|
|
@@ -3342,8 +3372,7 @@ const FilterContentActive = ({
|
|
|
3342
3372
|
});
|
|
3343
3373
|
case "revalidating":
|
|
3344
3374
|
case "loaded": {
|
|
3345
|
-
const allSuggestions = unfilteredQuery.data[property.key];
|
|
3346
|
-
invariant(allSuggestions, `API error: no available properties for key “${property.key}”`);
|
|
3375
|
+
const allSuggestions = unfilteredQuery.data[property.key] ?? [];
|
|
3347
3376
|
const filteredSuggestions = search && search.length > 1 ? allSuggestions.filter((s2) => s2.label.toLowerCase().includes(search.toLowerCase())) : allSuggestions;
|
|
3348
3377
|
const suggestions = filteredSuggestions.map((s2) => ({
|
|
3349
3378
|
...s2,
|
|
@@ -3747,6 +3776,9 @@ const FilterSection = ({
|
|
|
3747
3776
|
})
|
|
3748
3777
|
});
|
|
3749
3778
|
};
|
|
3779
|
+
function isKeyInObj(key, obj) {
|
|
3780
|
+
return key in obj;
|
|
3781
|
+
}
|
|
3750
3782
|
const SkeletonText = ({
|
|
3751
3783
|
chars
|
|
3752
3784
|
}) => {
|
|
@@ -3754,20 +3786,51 @@ const SkeletonText = ({
|
|
|
3754
3786
|
style: {
|
|
3755
3787
|
width: chars + "ch"
|
|
3756
3788
|
},
|
|
3757
|
-
class: "rounded-job-tag block h-[1lh] bg-[currentColor] opacity-25"
|
|
3789
|
+
class: "rounded-job-tag block h-[1lh] min-h-[1em] bg-[currentColor] opacity-25"
|
|
3758
3790
|
});
|
|
3759
3791
|
};
|
|
3760
3792
|
const wrapperClass = cva({
|
|
3761
|
-
base: "ijs-job rounded-job-card bg-job-card-bg ring-width-job-card ring-job-card-stroke
|
|
3793
|
+
base: "ijs-job rounded-job-card bg-job-card-bg ring-width-job-card ring-job-card-stroke flex gap-4 fr ease-expo-out min-w-0 p-4 transition-all duration-medium",
|
|
3794
|
+
variants: {
|
|
3795
|
+
interactive: {
|
|
3796
|
+
true: "active:bg-job-card-bg-active active:ring-job-card-stroke-active",
|
|
3797
|
+
false: "animate-skeleton"
|
|
3798
|
+
}
|
|
3799
|
+
},
|
|
3800
|
+
defaultVariants: {
|
|
3801
|
+
interactive: true
|
|
3802
|
+
}
|
|
3762
3803
|
});
|
|
3763
3804
|
const badgeClass = cva({
|
|
3764
3805
|
base: "bg-tag-accent-strong-bg rounded-job-tag text-style-tag text-tag-accent-strong-copy font-weight-tag flex items-center justify-center px-2"
|
|
3765
3806
|
});
|
|
3766
|
-
const
|
|
3807
|
+
const getDisplayableFilterProperty = ({
|
|
3808
|
+
job,
|
|
3809
|
+
property
|
|
3810
|
+
}) => {
|
|
3811
|
+
switch (typeof property) {
|
|
3812
|
+
case "string":
|
|
3813
|
+
if (isKeyInObj(property, job.raw))
|
|
3814
|
+
return job.raw[property];
|
|
3815
|
+
return null;
|
|
3816
|
+
case "object":
|
|
3817
|
+
return job.customData && property.transform(job.customData[property.key]);
|
|
3818
|
+
default:
|
|
3819
|
+
exhaustive(property);
|
|
3820
|
+
}
|
|
3821
|
+
};
|
|
3767
3822
|
const JobCard = ({
|
|
3768
|
-
job
|
|
3823
|
+
job,
|
|
3824
|
+
config
|
|
3769
3825
|
}) => {
|
|
3770
|
-
const
|
|
3826
|
+
const subheading = getDisplayableFilterProperty({
|
|
3827
|
+
job,
|
|
3828
|
+
property: config.subheading
|
|
3829
|
+
});
|
|
3830
|
+
const tags = config.infoTags.map((infoTag) => getDisplayableFilterProperty({
|
|
3831
|
+
job,
|
|
3832
|
+
property: infoTag
|
|
3833
|
+
})).filter(Boolean);
|
|
3771
3834
|
return u$1("a", {
|
|
3772
3835
|
href: job.href,
|
|
3773
3836
|
class: wrapperClass(),
|
|
@@ -3780,10 +3843,10 @@ const JobCard = ({
|
|
|
3780
3843
|
children: [u$1("p", {
|
|
3781
3844
|
class: "text-style-job-heading font-style-job-heading font-weight-job-heading text-copy-neutral font-family-job-heading",
|
|
3782
3845
|
children: job.title
|
|
3783
|
-
}), u$1("p", {
|
|
3846
|
+
}), subheading ? u$1("p", {
|
|
3784
3847
|
class: "text-style-job-card text-copy-neutral-lowcontrast",
|
|
3785
|
-
children:
|
|
3786
|
-
})]
|
|
3848
|
+
children: subheading
|
|
3849
|
+
}) : null]
|
|
3787
3850
|
}), job.isNew ? u$1("span", {
|
|
3788
3851
|
class: badgeClass({
|
|
3789
3852
|
class: "order-1"
|
|
@@ -3831,7 +3894,7 @@ const JobCardSkeleton = ({
|
|
|
3831
3894
|
animationDelay: animationDelay + "s"
|
|
3832
3895
|
},
|
|
3833
3896
|
class: wrapperClass({
|
|
3834
|
-
|
|
3897
|
+
interactive: false
|
|
3835
3898
|
}),
|
|
3836
3899
|
children: [u$1("div", {
|
|
3837
3900
|
class: "flex flex-1 flex-col gap-4",
|
|
@@ -3862,7 +3925,7 @@ const JobCardSkeleton = ({
|
|
|
3862
3925
|
class: tagClass({
|
|
3863
3926
|
variant: "neutralWeak",
|
|
3864
3927
|
size: "xs",
|
|
3865
|
-
class: "h-[1lh] w-[10ch]"
|
|
3928
|
+
class: "h-[1lh] min-h-[1em] w-[10ch]"
|
|
3866
3929
|
})
|
|
3867
3930
|
}), u$1("div", {
|
|
3868
3931
|
class: "flex items-center gap-2",
|
|
@@ -3870,13 +3933,13 @@ const JobCardSkeleton = ({
|
|
|
3870
3933
|
class: tagClass({
|
|
3871
3934
|
variant: "neutralWeak",
|
|
3872
3935
|
size: "xs",
|
|
3873
|
-
class: "h-[1lh] w-[6ch]"
|
|
3936
|
+
class: "h-[1lh] min-h-[1em] w-[6ch]"
|
|
3874
3937
|
})
|
|
3875
3938
|
}), u$1("span", {
|
|
3876
3939
|
class: tagClass({
|
|
3877
3940
|
variant: "neutralWeak",
|
|
3878
3941
|
size: "xs",
|
|
3879
|
-
class: "h-[1lh] w-[8ch]"
|
|
3942
|
+
class: "h-[1lh] min-h-[1em] w-[8ch]"
|
|
3880
3943
|
})
|
|
3881
3944
|
})]
|
|
3882
3945
|
})]
|
|
@@ -3930,7 +3993,8 @@ const getResultsCount = ({
|
|
|
3930
3993
|
const ResultsSection = ({
|
|
3931
3994
|
appliedFilters,
|
|
3932
3995
|
apiClient,
|
|
3933
|
-
logger
|
|
3996
|
+
logger,
|
|
3997
|
+
jobCardConfig
|
|
3934
3998
|
}) => {
|
|
3935
3999
|
const [page, setPage] = h(1);
|
|
3936
4000
|
return u$1(g$3, {
|
|
@@ -3947,7 +4011,8 @@ const ResultsSection = ({
|
|
|
3947
4011
|
page: index + 1,
|
|
3948
4012
|
isFirst: index === 0,
|
|
3949
4013
|
isLast,
|
|
3950
|
-
fetchNextPage: () => setPage(page + 1)
|
|
4014
|
+
fetchNextPage: () => setPage(page + 1),
|
|
4015
|
+
jobCardConfig
|
|
3951
4016
|
}, index)
|
|
3952
4017
|
}, index);
|
|
3953
4018
|
})
|
|
@@ -3960,7 +4025,8 @@ const ResultsPage = ({
|
|
|
3960
4025
|
page,
|
|
3961
4026
|
isFirst,
|
|
3962
4027
|
isLast,
|
|
3963
|
-
fetchNextPage
|
|
4028
|
+
fetchNextPage,
|
|
4029
|
+
jobCardConfig
|
|
3964
4030
|
}) => {
|
|
3965
4031
|
const {
|
|
3966
4032
|
data,
|
|
@@ -3991,7 +4057,7 @@ const ResultsPage = ({
|
|
|
3991
4057
|
}).map((_2, i2) => u$1("li", {
|
|
3992
4058
|
children: u$1(JobCardSkeleton, {
|
|
3993
4059
|
seed: i2,
|
|
3994
|
-
animationDelay: (i2 -
|
|
4060
|
+
animationDelay: (i2 - PAGE_SIZE) * 0.1
|
|
3995
4061
|
})
|
|
3996
4062
|
}, i2))
|
|
3997
4063
|
})]
|
|
@@ -4036,7 +4102,8 @@ const ResultsPage = ({
|
|
|
4036
4102
|
opacity: state === "revalidating" ? 0.33 : 1
|
|
4037
4103
|
},
|
|
4038
4104
|
children: u$1(JobCard, {
|
|
4039
|
-
job
|
|
4105
|
+
job,
|
|
4106
|
+
config: jobCardConfig
|
|
4040
4107
|
})
|
|
4041
4108
|
}, job.id);
|
|
4042
4109
|
})
|
|
@@ -4073,7 +4140,8 @@ const JobSearch = ({
|
|
|
4073
4140
|
apiClient,
|
|
4074
4141
|
logger,
|
|
4075
4142
|
properties,
|
|
4076
|
-
class: className
|
|
4143
|
+
class: className,
|
|
4144
|
+
jobCardConfig
|
|
4077
4145
|
}) => {
|
|
4078
4146
|
const appRef = _(null);
|
|
4079
4147
|
const [appliedFilters, setAppliedFilters] = h(() => getFilterDefaults(properties));
|
|
@@ -4107,7 +4175,8 @@ const JobSearch = ({
|
|
|
4107
4175
|
children: u$1(ResultsSection, {
|
|
4108
4176
|
appliedFilters,
|
|
4109
4177
|
logger,
|
|
4110
|
-
apiClient
|
|
4178
|
+
apiClient,
|
|
4179
|
+
jobCardConfig
|
|
4111
4180
|
}, cacheKey({
|
|
4112
4181
|
filter: appliedFilters,
|
|
4113
4182
|
baseKey: "resultsSection"
|
|
@@ -4118,7 +4187,122 @@ const JobSearch = ({
|
|
|
4118
4187
|
})
|
|
4119
4188
|
});
|
|
4120
4189
|
};
|
|
4121
|
-
const tailwind = "#ijs {\n font-size: 16px;\n --tw-content: '';\n}\n\n #ijs * {\n box-sizing: border-box;\n border-style: solid;\n border-width: 0;\n -webkit-tap-highlight-color: transparent;\n font-family: inherit;\n font-style: inherit;\n font-weight: inherit;\n }\n\n #ijs ::before,\n #ijs ::after {\n box-sizing: border-box;\n }\n\n #ijs :is(a) {\n text-decoration: none;\n }\n\n #ijs :is(ul, ol) {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n\n #ijs :is(p) {\n margin: 0;\n padding: 0;\n }\n\n #ijs :is(li) {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n #ijs :is(button),\n #ijs :is(a) {\n display: block;\n margin: 0;\n padding: 0;\n border: unset;\n background: unset;\n text-align: unset;\n }\n\n #ijs :is(input),\n #ijs :is(textarea) {\n display: block;\n margin: 0;\n padding: 0;\n min-width: 0;\n max-width: unset;\n width: 100%;\n }\n\n #ijs :is(svg) {\n display: block;\n }\n\n #ijs.reduced-motion * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n animation-delay: 0s !important;\n }\n\n @media (prefers-reduced-motion) {\n #ijs * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n animation-delay: 0s !important;\n }\n }\n\n #ijs *, #ijs ::before, #ijs ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n #ijs ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n #ijs .container {\n width: 100%;\n}\n\n @media (min-width: 640px) {\n\n #ijs .container {\n max-width: 640px;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .container {\n max-width: 768px;\n }\n}\n\n @media (min-width: 1024px) {\n\n #ijs .container {\n max-width: 1024px;\n }\n}\n\n @media (min-width: 1280px) {\n\n #ijs .container {\n max-width: 1280px;\n }\n}\n\n @media (min-width: 1536px) {\n\n #ijs .container {\n max-width: 1536px;\n }\n}\n\n #ijs .pointer-events-none {\n pointer-events: none;\n}\n\n #ijs .visible {\n visibility: visible;\n}\n\n #ijs .invisible {\n visibility: hidden;\n}\n\n #ijs .collapse {\n visibility: collapse;\n}\n\n #ijs .static {\n position: static;\n}\n\n #ijs .fixed {\n position: fixed;\n}\n\n #ijs .absolute {\n position: absolute;\n}\n\n #ijs .relative {\n position: relative;\n}\n\n #ijs .sticky {\n position: sticky;\n}\n\n #ijs .top-0 {\n top: 0px;\n}\n\n #ijs .isolate {\n isolation: isolate;\n}\n\n #ijs .order-1 {\n order: 1;\n}\n\n #ijs .order-2 {\n order: 2;\n}\n\n #ijs .m-0 {\n margin: 0px;\n}\n\n #ijs .m-11 {\n margin: 2.75rem;\n}\n\n #ijs .m-3 {\n margin: 0.75rem;\n}\n\n #ijs .mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n #ijs .ml-auto {\n margin-left: auto;\n}\n\n #ijs .block {\n display: block;\n}\n\n #ijs .inline-block {\n display: inline-block;\n}\n\n #ijs .inline {\n display: inline;\n}\n\n #ijs .flex {\n display: flex;\n}\n\n #ijs .inline-flex {\n display: inline-flex;\n}\n\n #ijs .table {\n display: table;\n}\n\n #ijs .table-row {\n display: table-row;\n}\n\n #ijs .flow-root {\n display: flow-root;\n}\n\n #ijs .grid {\n display: grid;\n}\n\n #ijs .inline-grid {\n display: inline-grid;\n}\n\n #ijs .contents {\n display: contents;\n}\n\n #ijs .list-item {\n display: list-item;\n}\n\n #ijs .\\!hidden {\n display: none !important;\n}\n\n #ijs .hidden {\n display: none;\n}\n\n #ijs .h-8 {\n height: 2rem;\n}\n\n #ijs .h-\\[1lh\\] {\n height: 1lh;\n}\n\n #ijs .min-h-screen {\n min-height: 100vh;\n}\n\n #ijs .w-\\[10ch\\] {\n width: 10ch;\n}\n\n #ijs .w-\\[6ch\\] {\n width: 6ch;\n}\n\n #ijs .w-\\[8ch\\] {\n width: 8ch;\n}\n\n #ijs .w-full {\n width: 100%;\n}\n\n #ijs .min-w-0 {\n min-width: 0px;\n}\n\n #ijs .max-w-full {\n max-width: 100%;\n}\n\n #ijs .max-w-screen-lg {\n max-width: 1024px;\n}\n\n #ijs .flex-1 {\n flex: 1 1 0%;\n}\n\n #ijs .flex-none {\n flex: none;\n}\n\n #ijs .flex-shrink {\n flex-shrink: 1;\n}\n\n #ijs .shrink {\n flex-shrink: 1;\n}\n\n #ijs .shrink-0 {\n flex-shrink: 0;\n}\n\n #ijs .flex-grow {\n flex-grow: 1;\n}\n\n #ijs .grow {\n flex-grow: 1;\n}\n\n #ijs .border-collapse {\n border-collapse: collapse;\n}\n\n #ijs .origin-\\[50\\%_1\\.75rem\\] {\n transform-origin: 50% 1.75rem;\n}\n\n #ijs .origin-top {\n transform-origin: top;\n}\n\n #ijs .transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n @keyframes appear-tag {\n\n 0% {\n transform: scale(0.9);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n #ijs .animate-appear-tag {\n animation: appear-tag .6s cubic-bezier(0.16, 1, 0.3, 1) both;\n}\n\n @keyframes selected-tag {\n\n 0% {\n transform: scale(1.11);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n #ijs .animate-selected-tag {\n animation: selected-tag .9s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n @keyframes skeleton {\n\n 0% {\n opacity: 0.2;\n }\n\n 50% {\n opacity: 0.5;\n }\n\n 100% {\n opacity: 0.3;\n }\n}\n\n #ijs .animate-skeleton {\n animation: skeleton 1s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n @keyframes slide-in-bottom {\n\n 0% {\n transform: translateY(-50%);\n }\n\n 100% {\n transform: translateY(0);\n }\n}\n\n #ijs .animate-slide-in-bottom {\n animation: slide-in-bottom .4s cubic-bezier(0.16, 1, 0.3, 1) both;\n}\n\n #ijs .cursor-default {\n cursor: default;\n}\n\n #ijs .cursor-pointer {\n cursor: pointer;\n}\n\n #ijs .select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n #ijs .resize {\n resize: both;\n}\n\n #ijs .flex-col {\n flex-direction: column;\n}\n\n #ijs .flex-wrap {\n flex-wrap: wrap;\n}\n\n #ijs .flex-nowrap {\n flex-wrap: nowrap;\n}\n\n #ijs .items-start {\n align-items: flex-start;\n}\n\n #ijs .items-center {\n align-items: center;\n}\n\n #ijs .justify-end {\n justify-content: flex-end;\n}\n\n #ijs .justify-center {\n justify-content: center;\n}\n\n #ijs .gap-1 {\n gap: 0.25rem;\n}\n\n #ijs .gap-2 {\n gap: 0.5rem;\n}\n\n #ijs .gap-3 {\n gap: 0.75rem;\n}\n\n #ijs .gap-4 {\n gap: 1rem;\n}\n\n #ijs .self-center {\n align-self: center;\n}\n\n #ijs .overflow-hidden {\n overflow: hidden;\n}\n\n #ijs .overflow-y-auto {\n overflow-y: auto;\n}\n\n #ijs .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n #ijs .rounded-app {\n border-radius: var(--i-radius-app);\n}\n\n #ijs .rounded-input {\n border-radius: var(--i-radius-input);\n}\n\n #ijs .rounded-interactive {\n border-radius: var(--i-radius-interactive);\n}\n\n #ijs .rounded-job-card {\n border-radius: var(--i-radius-job-card);\n}\n\n #ijs .rounded-job-tag {\n border-radius: var(--i-radius-job-tag);\n}\n\n #ijs .rounded-section {\n border-radius: var(--i-radius-section);\n}\n\n #ijs .rounded-tag {\n border-radius: var(--i-radius-job-tag);\n}\n\n #ijs .border-px {\n border-width: 1px;\n}\n\n #ijs .border-solid {\n border-style: solid;\n}\n\n #ijs .border-none {\n border-style: none;\n}\n\n #ijs .border-tag-accent-strong-stroke {\n border-color: var(--i-tag-accent-strong-stroke-color);\n}\n\n #ijs .border-tag-neutral-strong-stroke {\n border-color: var(--i-tag-neutral-strong-stroke-color);\n}\n\n #ijs .border-tag-neutral-weak-stroke {\n border-color: var(--i-tag-neutral-weak-stroke-color);\n}\n\n #ijs .border-transparent {\n border-color: transparent;\n}\n\n #ijs .bg-\\[currentColor\\] {\n background-color: currentColor;\n}\n\n #ijs .bg-app {\n background-color: var(--i-app-bg);\n}\n\n #ijs .bg-interactive-accent-bg {\n background-color: var(--i-interactive-accent-bg);\n}\n\n #ijs .bg-interactive-neutral-bg {\n background-color: var(--i-interactive-neutral-bg);\n}\n\n #ijs .bg-job-card-bg {\n background-color: var(--i-job-card-bg);\n}\n\n #ijs .bg-lowest {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-lowest) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-section-strong-bg {\n background-color: var(--i-section-strong-bg);\n}\n\n #ijs .bg-section-weak-bg {\n background-color: var(--i-section-weak-bg);\n}\n\n #ijs .bg-tag-accent-strong-bg {\n background-color: var(--i-tag-accent-strong-bg);\n}\n\n #ijs .bg-tag-monetary-weak-bg {\n background-color: var(--i-tag-monetary-weak-bg);\n}\n\n #ijs .bg-tag-neutral-strong-bg {\n background-color: var(--i-tag-neutral-strong-bg);\n}\n\n #ijs .bg-tag-neutral-weak-bg {\n background-color: var(--i-tag-neutral-weak-bg);\n}\n\n #ijs .p-0 {\n padding: 0px;\n}\n\n #ijs .p-2 {\n padding: 0.5rem;\n}\n\n #ijs .p-4 {\n padding: 1rem;\n}\n\n #ijs .px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n #ijs .px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n #ijs .px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n #ijs .px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n\n #ijs .py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n #ijs .py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n #ijs .py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n #ijs .pl-1 {\n padding-left: 0.25rem;\n}\n\n #ijs .pl-2 {\n padding-left: 0.5rem;\n}\n\n #ijs .pl-3 {\n padding-left: 0.75rem;\n}\n\n #ijs .pl-4 {\n padding-left: 1rem;\n}\n\n #ijs .pl-5 {\n padding-left: 1.25rem;\n}\n\n #ijs .pr-1 {\n padding-right: 0.25rem;\n}\n\n #ijs .pr-3 {\n padding-right: 0.75rem;\n}\n\n #ijs .pr-5 {\n padding-right: 1.25rem;\n}\n\n #ijs .pt-1 {\n padding-top: 0.25rem;\n}\n\n #ijs .text-center {\n text-align: center;\n}\n\n #ijs .text-justify {\n text-align: justify;\n}\n\n #ijs .font-family-default {\n font-family: var(--i-font);\n}\n\n #ijs .font-family-filter {\n font-family: var(--i-font-filter);\n}\n\n #ijs .font-family-job-heading {\n font-family: var(--i-font-job-heading);\n}\n\n #ijs .font-family-tag {\n font-family: var(--i-font-tag);\n}\n\n #ijs .text-style-filter {\n font-size: 1rem;\n line-height: 1.5rem;\n letter-spacing: -0.01em;\n}\n\n #ijs .text-style-input {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n #ijs .text-style-job-card {\n font-size: 0.875rem;\n line-height: 1.125rem;\n}\n\n #ijs .text-style-job-card-info {\n font-size: 0.75rem;\n line-height: 1.125rem;\n}\n\n #ijs .text-style-job-heading {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n #ijs .text-style-tag {\n font-size: 0.875rem;\n line-height: 1.5rem;\n}\n\n #ijs .font-weight-default {\n font-weight: var(--i-weight-default);\n}\n\n #ijs .font-weight-filter {\n font-weight: var(--i-weight-filter);\n}\n\n #ijs .font-weight-input {\n font-weight: var(--i-weight-input);\n}\n\n #ijs .font-weight-job-heading {\n font-weight: var(--i-weight-job-heading);\n}\n\n #ijs .font-weight-tag {\n font-weight: var(--i-weight-tag);\n}\n\n #ijs .uppercase {\n text-transform: uppercase;\n}\n\n #ijs .lowercase {\n text-transform: lowercase;\n}\n\n #ijs .capitalize {\n text-transform: capitalize;\n}\n\n #ijs .italic {\n font-style: italic;\n}\n\n #ijs .ordinal {\n --tw-ordinal: ordinal;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);\n}\n\n #ijs .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);\n}\n\n #ijs .text-copy-accent {\n color: var(--i-copy-accent);\n}\n\n #ijs .text-copy-job-info {\n color: var(--i-copy-info);\n}\n\n #ijs .text-copy-neutral {\n color: var(--i-copy);\n}\n\n #ijs .text-copy-neutral-icon {\n color: var(--i-copy-icon);\n}\n\n #ijs .text-copy-neutral-lowcontrast {\n color: var(--i-copy-lowcontrast);\n}\n\n #ijs .text-interactive-accent-text {\n color: var(--i-interactive-accent-text);\n}\n\n #ijs .text-interactive-neutral-text {\n color: var(--i-interactive-neutral-text);\n}\n\n #ijs .text-neutral-11 {\n --tw-text-opacity: 1;\n color: oklch(var(--i-n-11) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-accent-strong-copy {\n color: var(--i-tag-accent-strong-copy);\n}\n\n #ijs .text-tag-monetary-weak-copy {\n color: var(--i-tag-monetary-weak-copy);\n}\n\n #ijs .text-tag-neutral-strong-copy {\n color: var(--i-tag-neutral-strong-copy);\n}\n\n #ijs .text-tag-neutral-weak-copy {\n color: var(--i-tag-neutral-weak-copy);\n}\n\n #ijs .caret-accent-11 {\n caret-color: oklch(var(--i-a-11) / 1);\n}\n\n #ijs .opacity-20 {\n opacity: 0.2;\n}\n\n #ijs .opacity-25 {\n opacity: 0.25;\n}\n\n #ijs .shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n #ijs .outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n #ijs .outline {\n outline-style: solid;\n}\n\n #ijs .ring-px {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .ring-width-job-card {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-job-card-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .ring-width-section {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-section-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .ring-job-card-stroke {\n --tw-ring-color: var(--i-job-card-stroke-color);\n}\n\n #ijs .ring-section-strong-stroke {\n --tw-ring-color: var(--i-section-strong-stroke-color);\n}\n\n #ijs .ring-section-weak-stroke {\n --tw-ring-color: var(--i-section-weak-stroke-color);\n}\n\n #ijs .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .invert {\n --tw-invert: invert(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .sepia {\n --tw-sepia: sepia(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .backdrop-filter {\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n\n #ijs .transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n #ijs .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n #ijs .transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n #ijs .duration-medium {\n transition-duration: .6s;\n}\n\n #ijs .duration-slow {\n transition-duration: .9s;\n}\n\n #ijs .duration-snappy {\n transition-duration: .4s;\n}\n\n #ijs .ease-expo-out {\n transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n #ijs .font-style-default {\n font-style: var(--i-font-style);\n}\n\n #ijs .font-style-filter {\n font-style: var(--i-style-filter);\n}\n\n #ijs .font-style-input {\n font-style: var(--i-style-input);\n}\n\n #ijs .font-style-job-heading {\n font-style: var(--i-style-job-heading);\n}\n\n #ijs .font-style-tag {\n font-style: var(--i-style-tag);\n}\n\n #ijs .top-filters {\n top: var(--i-filters-offset-top);\n}\n\n #ijs .fr {\n outline: none;\n}\n\n #ijs .fr:focus {\n outline: none;\n}\n\n #ijs .fr:focus-visible {\n outline: none;\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-color: oklch(var(--i-lowest) / 1);\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-a-9) / 1);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .fr-parent:has(.fr-child:focus-visible) {\n outline: none;\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-color: oklch(var(--i-lowest) / 1);\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-a-9) / 1);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .fr-child {}\n\n #ijs .hide-scrollbars::-webkit-scrollbar {\n display: none;\n}\n\n #ijs .hide-scrollbars {\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n #ijs .touch-hitbox::before {\n content: '';\n position: absolute;\n display: block;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n min-height: 44px;\n min-width: 44px;\n z-index: 9999;\n}\n\n #ijs .\\[a-zA-Z0-9-_\\:\\.\\$\\@\\?\\] {\n a-z-a--z0-9-_: .$@?;\n}\n\n #ijs .\\[text-wrap\\:pretty\\] {\n text-wrap: pretty;\n}\n\n #ijs .placeholder\\:text-neutral-10::-moz-placeholder {\n --tw-text-opacity: 1;\n color: oklch(var(--i-n-10) / var(--tw-text-opacity));\n}\n\n #ijs .placeholder\\:text-neutral-10::placeholder {\n --tw-text-opacity: 1;\n color: oklch(var(--i-n-10) / var(--tw-text-opacity));\n}\n\n #ijs .focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n #ijs .active\\:-scale-100:active {\n --tw-scale-x: -1;\n --tw-scale-y: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n #ijs .active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n #ijs .active\\:scale-\\[0\\.975\\]:active {\n --tw-scale-x: 0.975;\n --tw-scale-y: 0.975;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n #ijs .active\\:bg-job-card-bg-active:active {\n background-color: var(--i-job-card-bg-active);\n}\n\n #ijs .active\\:ring-job-card-stroke-active:active {\n --tw-ring-color: var(--i-job-card-stroke-color-active);\n}\n\n @media (pointer: coarse) {\n\n #ijs .pointer-coarse\\:overflow-x-auto {\n overflow-x: auto;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:w-full {\n width: 100%;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:flex-wrap {\n flex-wrap: wrap;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:rounded-section {\n border-radius: var(--i-radius-section);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:bg-app {\n background-color: var(--i-app-bg);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:p-2 {\n padding: 0.5rem;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:ring-width-section {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-section-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:hover\\:bg-interactive-accent-bg-hover:hover {\n background-color: var(--i-interactive-accent-bg-hover);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:hover\\:bg-interactive-neutral-bg-hover:hover {\n background-color: var(--i-interactive-neutral-bg-hover);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .group:hover .pointer-fine\\:group-hover\\:text-copy-neutral {\n color: var(--i-copy);\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:grid {\n display: grid;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:px-0 {\n padding-left: 0px;\n padding-right: 0px;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n}\n\n @media (min-width: 1024px) {\n\n #ijs .lg\\:ring-width-section {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-section-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n }\n}\n\n #ijs .\\[\\&\\:has\\(\\.fr-child\\:active\\)\\]\\:scale-\\[0\\.975\\]:has(.fr-child:active) {\n --tw-scale-x: 0.975;\n --tw-scale-y: 0.975;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n";
|
|
4190
|
+
const tailwind = "#ijs {\n font-size: 16px;\n --tw-content: '';\n}\n\n #ijs * {\n box-sizing: border-box;\n border-style: solid;\n border-width: 0;\n -webkit-tap-highlight-color: transparent;\n font-family: inherit;\n font-style: inherit;\n font-weight: inherit;\n }\n\n #ijs ::before,\n #ijs ::after {\n box-sizing: border-box;\n }\n\n #ijs :is(a) {\n text-decoration: none;\n }\n\n #ijs :is(ul, ol) {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n\n #ijs :is(p) {\n margin: 0;\n padding: 0;\n }\n\n #ijs :is(li) {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n #ijs :is(button),\n #ijs :is(a) {\n display: block;\n margin: 0;\n padding: 0;\n border: unset;\n background: unset;\n text-align: unset;\n }\n\n #ijs :is(input),\n #ijs :is(textarea) {\n display: block;\n margin: 0;\n padding: 0;\n min-width: 0;\n max-width: unset;\n width: 100%;\n }\n\n #ijs :is(svg) {\n display: block;\n }\n\n #ijs.reduced-motion * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n animation-delay: 0s !important;\n }\n\n @media (prefers-reduced-motion) {\n #ijs * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n animation-delay: 0s !important;\n }\n }\n\n #ijs *, #ijs ::before, #ijs ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n #ijs ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n #ijs .container {\n width: 100%;\n}\n\n @media (min-width: 640px) {\n\n #ijs .container {\n max-width: 640px;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .container {\n max-width: 768px;\n }\n}\n\n @media (min-width: 1024px) {\n\n #ijs .container {\n max-width: 1024px;\n }\n}\n\n @media (min-width: 1280px) {\n\n #ijs .container {\n max-width: 1280px;\n }\n}\n\n @media (min-width: 1536px) {\n\n #ijs .container {\n max-width: 1536px;\n }\n}\n\n #ijs .pointer-events-none {\n pointer-events: none;\n}\n\n #ijs .visible {\n visibility: visible;\n}\n\n #ijs .invisible {\n visibility: hidden;\n}\n\n #ijs .collapse {\n visibility: collapse;\n}\n\n #ijs .static {\n position: static;\n}\n\n #ijs .fixed {\n position: fixed;\n}\n\n #ijs .absolute {\n position: absolute;\n}\n\n #ijs .relative {\n position: relative;\n}\n\n #ijs .sticky {\n position: sticky;\n}\n\n #ijs .top-0 {\n top: 0px;\n}\n\n #ijs .isolate {\n isolation: isolate;\n}\n\n #ijs .order-1 {\n order: 1;\n}\n\n #ijs .order-2 {\n order: 2;\n}\n\n #ijs .m-0 {\n margin: 0px;\n}\n\n #ijs .m-11 {\n margin: 2.75rem;\n}\n\n #ijs .m-3 {\n margin: 0.75rem;\n}\n\n #ijs .mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n #ijs .ml-auto {\n margin-left: auto;\n}\n\n #ijs .block {\n display: block;\n}\n\n #ijs .inline-block {\n display: inline-block;\n}\n\n #ijs .inline {\n display: inline;\n}\n\n #ijs .flex {\n display: flex;\n}\n\n #ijs .inline-flex {\n display: inline-flex;\n}\n\n #ijs .table {\n display: table;\n}\n\n #ijs .table-row {\n display: table-row;\n}\n\n #ijs .flow-root {\n display: flow-root;\n}\n\n #ijs .grid {\n display: grid;\n}\n\n #ijs .inline-grid {\n display: inline-grid;\n}\n\n #ijs .contents {\n display: contents;\n}\n\n #ijs .list-item {\n display: list-item;\n}\n\n #ijs .\\!hidden {\n display: none !important;\n}\n\n #ijs .hidden {\n display: none;\n}\n\n #ijs .h-8 {\n height: 2rem;\n}\n\n #ijs .h-\\[1lh\\] {\n height: 1lh;\n}\n\n #ijs .min-h-\\[1em\\] {\n min-height: 1em;\n}\n\n #ijs .min-h-screen {\n min-height: 100vh;\n}\n\n #ijs .w-\\[10ch\\] {\n width: 10ch;\n}\n\n #ijs .w-\\[6ch\\] {\n width: 6ch;\n}\n\n #ijs .w-\\[8ch\\] {\n width: 8ch;\n}\n\n #ijs .w-full {\n width: 100%;\n}\n\n #ijs .min-w-0 {\n min-width: 0px;\n}\n\n #ijs .max-w-full {\n max-width: 100%;\n}\n\n #ijs .max-w-screen-lg {\n max-width: 1024px;\n}\n\n #ijs .flex-1 {\n flex: 1 1 0%;\n}\n\n #ijs .flex-none {\n flex: none;\n}\n\n #ijs .flex-shrink {\n flex-shrink: 1;\n}\n\n #ijs .shrink {\n flex-shrink: 1;\n}\n\n #ijs .shrink-0 {\n flex-shrink: 0;\n}\n\n #ijs .flex-grow {\n flex-grow: 1;\n}\n\n #ijs .grow {\n flex-grow: 1;\n}\n\n #ijs .border-collapse {\n border-collapse: collapse;\n}\n\n #ijs .origin-\\[50\\%_1\\.75rem\\] {\n transform-origin: 50% 1.75rem;\n}\n\n #ijs .origin-top {\n transform-origin: top;\n}\n\n #ijs .transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n @keyframes appear-tag {\n\n 0% {\n transform: scale(0.9);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n #ijs .animate-appear-tag {\n animation: appear-tag .6s cubic-bezier(0.16, 1, 0.3, 1) both;\n}\n\n @keyframes selected-tag {\n\n 0% {\n transform: scale(1.11);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n #ijs .animate-selected-tag {\n animation: selected-tag .9s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n @keyframes skeleton {\n\n 0% {\n opacity: 0.2;\n }\n\n 50% {\n opacity: 0.6;\n }\n\n 100% {\n opacity: 0.25;\n }\n}\n\n #ijs .animate-skeleton {\n animation: skeleton 1.2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n @keyframes slide-in-bottom {\n\n 0% {\n transform: translateY(-50%);\n }\n\n 100% {\n transform: translateY(0);\n }\n}\n\n #ijs .animate-slide-in-bottom {\n animation: slide-in-bottom .4s cubic-bezier(0.16, 1, 0.3, 1) both;\n}\n\n #ijs .cursor-default {\n cursor: default;\n}\n\n #ijs .cursor-pointer {\n cursor: pointer;\n}\n\n #ijs .select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n #ijs .resize {\n resize: both;\n}\n\n #ijs .flex-col {\n flex-direction: column;\n}\n\n #ijs .flex-wrap {\n flex-wrap: wrap;\n}\n\n #ijs .flex-nowrap {\n flex-wrap: nowrap;\n}\n\n #ijs .items-start {\n align-items: flex-start;\n}\n\n #ijs .items-center {\n align-items: center;\n}\n\n #ijs .justify-end {\n justify-content: flex-end;\n}\n\n #ijs .justify-center {\n justify-content: center;\n}\n\n #ijs .gap-1 {\n gap: 0.25rem;\n}\n\n #ijs .gap-2 {\n gap: 0.5rem;\n}\n\n #ijs .gap-3 {\n gap: 0.75rem;\n}\n\n #ijs .gap-4 {\n gap: 1rem;\n}\n\n #ijs .self-center {\n align-self: center;\n}\n\n #ijs .overflow-hidden {\n overflow: hidden;\n}\n\n #ijs .overflow-y-auto {\n overflow-y: auto;\n}\n\n #ijs .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n #ijs .rounded-app {\n border-radius: var(--i-radius-app);\n}\n\n #ijs .rounded-input {\n border-radius: var(--i-radius-input);\n}\n\n #ijs .rounded-interactive {\n border-radius: var(--i-radius-interactive);\n}\n\n #ijs .rounded-job-card {\n border-radius: var(--i-radius-job-card);\n}\n\n #ijs .rounded-job-tag {\n border-radius: var(--i-radius-job-tag);\n}\n\n #ijs .rounded-section {\n border-radius: var(--i-radius-section);\n}\n\n #ijs .rounded-tag {\n border-radius: var(--i-radius-job-tag);\n}\n\n #ijs .border-px {\n border-width: 1px;\n}\n\n #ijs .border-solid {\n border-style: solid;\n}\n\n #ijs .border-none {\n border-style: none;\n}\n\n #ijs .border-tag-accent-strong-stroke {\n border-color: var(--i-tag-accent-strong-stroke-color);\n}\n\n #ijs .border-tag-neutral-strong-stroke {\n border-color: var(--i-tag-neutral-strong-stroke-color);\n}\n\n #ijs .border-tag-neutral-weak-stroke {\n border-color: var(--i-tag-neutral-weak-stroke-color);\n}\n\n #ijs .border-transparent {\n border-color: transparent;\n}\n\n #ijs .bg-\\[currentColor\\] {\n background-color: currentColor;\n}\n\n #ijs .bg-app {\n background-color: var(--i-app-bg);\n}\n\n #ijs .bg-interactive-accent-bg {\n background-color: var(--i-interactive-accent-bg);\n}\n\n #ijs .bg-interactive-neutral-bg {\n background-color: var(--i-interactive-neutral-bg);\n}\n\n #ijs .bg-job-card-bg {\n background-color: var(--i-job-card-bg);\n}\n\n #ijs .bg-lowest {\n background-color: var(--i-color-lowest);\n}\n\n #ijs .bg-section-strong-bg {\n background-color: var(--i-section-strong-bg);\n}\n\n #ijs .bg-section-weak-bg {\n background-color: var(--i-section-weak-bg);\n}\n\n #ijs .bg-tag-accent-strong-bg {\n background-color: var(--i-tag-accent-strong-bg);\n}\n\n #ijs .bg-tag-monetary-weak-bg {\n background-color: var(--i-tag-monetary-weak-bg);\n}\n\n #ijs .bg-tag-neutral-strong-bg {\n background-color: var(--i-tag-neutral-strong-bg);\n}\n\n #ijs .bg-tag-neutral-weak-bg {\n background-color: var(--i-tag-neutral-weak-bg);\n}\n\n #ijs .p-0 {\n padding: 0px;\n}\n\n #ijs .p-2 {\n padding: 0.5rem;\n}\n\n #ijs .p-4 {\n padding: 1rem;\n}\n\n #ijs .px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n #ijs .px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n #ijs .px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n #ijs .px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n\n #ijs .py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n #ijs .py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n #ijs .py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n #ijs .pl-1 {\n padding-left: 0.25rem;\n}\n\n #ijs .pl-2 {\n padding-left: 0.5rem;\n}\n\n #ijs .pl-3 {\n padding-left: 0.75rem;\n}\n\n #ijs .pl-4 {\n padding-left: 1rem;\n}\n\n #ijs .pl-5 {\n padding-left: 1.25rem;\n}\n\n #ijs .pr-1 {\n padding-right: 0.25rem;\n}\n\n #ijs .pr-3 {\n padding-right: 0.75rem;\n}\n\n #ijs .pr-5 {\n padding-right: 1.25rem;\n}\n\n #ijs .pt-1 {\n padding-top: 0.25rem;\n}\n\n #ijs .text-center {\n text-align: center;\n}\n\n #ijs .text-justify {\n text-align: justify;\n}\n\n #ijs .font-family-default {\n font-family: var(--i-font);\n}\n\n #ijs .font-family-filter {\n font-family: var(--i-font-filter);\n}\n\n #ijs .font-family-job-heading {\n font-family: var(--i-font-job-heading);\n}\n\n #ijs .font-family-tag {\n font-family: var(--i-font-tag);\n}\n\n #ijs .text-style-filter {\n font-size: 1rem;\n line-height: 1.5rem;\n letter-spacing: -0.01em;\n}\n\n #ijs .text-style-input {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n #ijs .text-style-job-card {\n font-size: 0.875rem;\n line-height: 1.125rem;\n}\n\n #ijs .text-style-job-card-info {\n font-size: 0.75rem;\n line-height: 1.125rem;\n}\n\n #ijs .text-style-job-heading {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n #ijs .text-style-tag {\n font-size: 0.875rem;\n line-height: 1.5rem;\n}\n\n #ijs .font-weight-default {\n font-weight: var(--i-weight-default);\n}\n\n #ijs .font-weight-filter {\n font-weight: var(--i-weight-filter);\n}\n\n #ijs .font-weight-input {\n font-weight: var(--i-weight-input);\n}\n\n #ijs .font-weight-job-heading {\n font-weight: var(--i-weight-job-heading);\n}\n\n #ijs .font-weight-tag {\n font-weight: var(--i-weight-tag);\n}\n\n #ijs .uppercase {\n text-transform: uppercase;\n}\n\n #ijs .lowercase {\n text-transform: lowercase;\n}\n\n #ijs .capitalize {\n text-transform: capitalize;\n}\n\n #ijs .italic {\n font-style: italic;\n}\n\n #ijs .ordinal {\n --tw-ordinal: ordinal;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);\n}\n\n #ijs .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);\n}\n\n #ijs .text-copy-accent {\n color: var(--i-copy-accent);\n}\n\n #ijs .text-copy-job-info {\n color: var(--i-copy-info);\n}\n\n #ijs .text-copy-neutral {\n color: var(--i-copy);\n}\n\n #ijs .text-copy-neutral-icon {\n color: var(--i-copy-icon);\n}\n\n #ijs .text-copy-neutral-lowcontrast {\n color: var(--i-copy-lowcontrast);\n}\n\n #ijs .text-interactive-accent-text {\n color: var(--i-interactive-accent-text);\n}\n\n #ijs .text-interactive-neutral-text {\n color: var(--i-interactive-neutral-text);\n}\n\n #ijs .text-neutral-11 {\n color: var(--i-color-n-11);\n}\n\n #ijs .text-tag-accent-strong-copy {\n color: var(--i-tag-accent-strong-copy);\n}\n\n #ijs .text-tag-monetary-weak-copy {\n color: var(--i-tag-monetary-weak-copy);\n}\n\n #ijs .text-tag-neutral-strong-copy {\n color: var(--i-tag-neutral-strong-copy);\n}\n\n #ijs .text-tag-neutral-weak-copy {\n color: var(--i-tag-neutral-weak-copy);\n}\n\n #ijs .caret-accent-11 {\n caret-color: var(--i-color-a-11);\n}\n\n #ijs .opacity-20 {\n opacity: 0.2;\n}\n\n #ijs .opacity-25 {\n opacity: 0.25;\n}\n\n #ijs .shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n #ijs .outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n #ijs .outline {\n outline-style: solid;\n}\n\n #ijs .ring-px {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .ring-width-job-card {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-job-card-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .ring-width-section {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-section-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .ring-job-card-stroke {\n --tw-ring-color: var(--i-job-card-stroke-color);\n}\n\n #ijs .ring-section-strong-stroke {\n --tw-ring-color: var(--i-section-strong-stroke-color);\n}\n\n #ijs .ring-section-weak-stroke {\n --tw-ring-color: var(--i-section-weak-stroke-color);\n}\n\n #ijs .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .invert {\n --tw-invert: invert(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .sepia {\n --tw-sepia: sepia(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n #ijs .backdrop-filter {\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n\n #ijs .transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n #ijs .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n #ijs .transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n #ijs .duration-medium {\n transition-duration: .6s;\n}\n\n #ijs .duration-slow {\n transition-duration: .9s;\n}\n\n #ijs .duration-snappy {\n transition-duration: .4s;\n}\n\n #ijs .ease-expo-out {\n transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n #ijs .font-style-default {\n font-style: var(--i-font-style);\n}\n\n #ijs .font-style-filter {\n font-style: var(--i-style-filter);\n}\n\n #ijs .font-style-input {\n font-style: var(--i-style-input);\n}\n\n #ijs .font-style-job-heading {\n font-style: var(--i-style-job-heading);\n}\n\n #ijs .font-style-tag {\n font-style: var(--i-style-tag);\n}\n\n #ijs .top-filters {\n top: var(--i-filters-offset-top);\n}\n\n #ijs .fr {\n outline: none;\n}\n\n #ijs .fr:focus {\n outline: none;\n}\n\n #ijs .fr:focus-visible {\n outline: none;\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-color: var(--i-color-lowest);\n --tw-ring-opacity: 1;\n --tw-ring-color: var(--i-color-a-9);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .fr-parent:has(.fr-child:focus-visible) {\n outline: none;\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-color: var(--i-color-lowest);\n --tw-ring-opacity: 1;\n --tw-ring-color: var(--i-color-a-9);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n #ijs .fr-child {}\n\n #ijs .hide-scrollbars::-webkit-scrollbar {\n display: none;\n}\n\n #ijs .hide-scrollbars {\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n #ijs .touch-hitbox::before {\n content: '';\n position: absolute;\n display: block;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n min-height: 44px;\n min-width: 44px;\n z-index: 9999;\n}\n\n #ijs .\\[a-zA-Z0-9-_\\:\\.\\$\\@\\?\\] {\n a-z-a--z0-9-_: .$@?;\n}\n\n #ijs .\\[text-wrap\\:pretty\\] {\n text-wrap: pretty;\n}\n\n #ijs .placeholder\\:text-neutral-10::-moz-placeholder {\n color: var(--i-color-n-10);\n}\n\n #ijs .placeholder\\:text-neutral-10::placeholder {\n color: var(--i-color-n-10);\n}\n\n #ijs .focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n #ijs .active\\:-scale-100:active {\n --tw-scale-x: -1;\n --tw-scale-y: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n #ijs .active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n #ijs .active\\:scale-\\[0\\.975\\]:active {\n --tw-scale-x: 0.975;\n --tw-scale-y: 0.975;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n #ijs .active\\:bg-job-card-bg-active:active {\n background-color: var(--i-job-card-bg-active);\n}\n\n #ijs .active\\:ring-job-card-stroke-active:active {\n --tw-ring-color: var(--i-job-card-stroke-color-active);\n}\n\n @media (pointer: coarse) {\n\n #ijs .pointer-coarse\\:overflow-x-auto {\n overflow-x: auto;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:w-full {\n width: 100%;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:flex-wrap {\n flex-wrap: wrap;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:rounded-section {\n border-radius: var(--i-radius-section);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:bg-app {\n background-color: var(--i-app-bg);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:p-2 {\n padding: 0.5rem;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:ring-width-section {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-section-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:hover\\:bg-interactive-accent-bg-hover:hover {\n background-color: var(--i-interactive-accent-bg-hover);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .pointer-fine\\:hover\\:bg-interactive-neutral-bg-hover:hover {\n background-color: var(--i-interactive-neutral-bg-hover);\n }\n}\n\n @media (pointer: fine) {\n\n #ijs .group:hover .pointer-fine\\:group-hover\\:text-copy-neutral {\n color: var(--i-copy);\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:col-span-2 {\n grid-column: span 2 / span 2;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:grid {\n display: grid;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:px-0 {\n padding-left: 0px;\n padding-right: 0px;\n }\n}\n\n @media (min-width: 768px) {\n\n #ijs .md\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n}\n\n @media (min-width: 1024px) {\n\n #ijs .lg\\:ring-width-section {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(var(--i-section-stroke-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n }\n}\n\n #ijs .\\[\\&\\:has\\(\\.fr-child\\:active\\)\\]\\:scale-\\[0\\.975\\]:has(.fr-child:active) {\n --tw-scale-x: 0.975;\n --tw-scale-y: 0.975;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n";
|
|
4191
|
+
var __defProp2 = Object.defineProperty;
|
|
4192
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4193
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4194
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
4195
|
+
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4196
|
+
var __spreadValues = (a2, b2) => {
|
|
4197
|
+
for (var prop in b2 || (b2 = {}))
|
|
4198
|
+
if (__hasOwnProp.call(b2, prop))
|
|
4199
|
+
__defNormalProp2(a2, prop, b2[prop]);
|
|
4200
|
+
if (__getOwnPropSymbols)
|
|
4201
|
+
for (var prop of __getOwnPropSymbols(b2)) {
|
|
4202
|
+
if (__propIsEnum.call(b2, prop))
|
|
4203
|
+
__defNormalProp2(a2, prop, b2[prop]);
|
|
4204
|
+
}
|
|
4205
|
+
return a2;
|
|
4206
|
+
};
|
|
4207
|
+
var COLOR_SHADES = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
|
|
4208
|
+
var OKLCH_PRESETS = {
|
|
4209
|
+
light: {
|
|
4210
|
+
"1": [98.8, 0.015],
|
|
4211
|
+
"2": [97.8, 0.018],
|
|
4212
|
+
"3": [95.8, 0.025],
|
|
4213
|
+
"4": [92, 0.04],
|
|
4214
|
+
"5": [89, 0.05],
|
|
4215
|
+
"6": [85, 0.07],
|
|
4216
|
+
"7": [80.5, 0.08],
|
|
4217
|
+
"8": [74, 0.11],
|
|
4218
|
+
"9": [60, 0.22],
|
|
4219
|
+
"10": [60.5, 0.2],
|
|
4220
|
+
"11": [50, 0.19],
|
|
4221
|
+
"12": [25, 0.18]
|
|
4222
|
+
},
|
|
4223
|
+
dark: {
|
|
4224
|
+
"1": [19, 0.015],
|
|
4225
|
+
"2": [21, 0.018],
|
|
4226
|
+
"3": [25.5, 0.055],
|
|
4227
|
+
"4": [29.3, 0.084],
|
|
4228
|
+
"5": [33.5, 0.098],
|
|
4229
|
+
"6": [39.05, 0.107],
|
|
4230
|
+
"7": [45, 0.11],
|
|
4231
|
+
"8": [55, 0.13],
|
|
4232
|
+
"9": [60, 0.22],
|
|
4233
|
+
"10": [67, 0.18],
|
|
4234
|
+
"11": [79.3, 0.12],
|
|
4235
|
+
"12": [95, 0.04]
|
|
4236
|
+
}
|
|
4237
|
+
};
|
|
4238
|
+
var getPaletteColor = (hueAngle, chromaMultipler = 1, mode) => (i2) => {
|
|
4239
|
+
const [l2, c2] = OKLCH_PRESETS[mode][i2];
|
|
4240
|
+
const color = "oklch(" + l2 + "% " + c2 * chromaMultipler + " " + hueAngle + ")";
|
|
4241
|
+
return color;
|
|
4242
|
+
};
|
|
4243
|
+
var generatePalette = (params) => {
|
|
4244
|
+
const getColor = getPaletteColor(params.hue, params.chroma, params.mode);
|
|
4245
|
+
return Object.fromEntries(
|
|
4246
|
+
COLOR_SHADES.map(
|
|
4247
|
+
(level) => [params.prefix + level, params.transform ? params.transform(getColor(level)) : getColor(level)]
|
|
4248
|
+
)
|
|
4249
|
+
);
|
|
4250
|
+
};
|
|
4251
|
+
var flatten = (obj) => {
|
|
4252
|
+
const entries = Object.keys(obj).flatMap((key) => {
|
|
4253
|
+
const current = obj[key];
|
|
4254
|
+
if (typeof current === "object" && current !== null) {
|
|
4255
|
+
return Object.keys(current).map((childKey) => {
|
|
4256
|
+
const shade = current[childKey];
|
|
4257
|
+
return [`${String(key)}.${childKey}`, shade];
|
|
4258
|
+
});
|
|
4259
|
+
}
|
|
4260
|
+
return [[key, current]];
|
|
4261
|
+
});
|
|
4262
|
+
return Object.fromEntries(entries);
|
|
4263
|
+
};
|
|
4264
|
+
var asCssVar = (params) => {
|
|
4265
|
+
function genRef(target, path) {
|
|
4266
|
+
const varName = [params.prefix, path.toString().replace(/\./g, "-")].join("");
|
|
4267
|
+
return target === "declaration" ? `--${varName}` : `var(--${varName})`;
|
|
4268
|
+
}
|
|
4269
|
+
return genRef;
|
|
4270
|
+
};
|
|
4271
|
+
var designTokens = () => {
|
|
4272
|
+
return {
|
|
4273
|
+
core: (coreFn) => ({
|
|
4274
|
+
semantic: (semanticFn) => ({
|
|
4275
|
+
component: (componentFn) => ({
|
|
4276
|
+
from: (config) => {
|
|
4277
|
+
const { theme, getToken } = config;
|
|
4278
|
+
const getRef = (path) => getToken("reference", path.toString());
|
|
4279
|
+
const core = coreFn({ theme });
|
|
4280
|
+
const semantic = semanticFn({ theme, core: getRef, raw: { core } });
|
|
4281
|
+
const component = componentFn({
|
|
4282
|
+
theme,
|
|
4283
|
+
core: getRef,
|
|
4284
|
+
semantic: getRef,
|
|
4285
|
+
raw: { core, semantic }
|
|
4286
|
+
});
|
|
4287
|
+
const values = flatten(__spreadValues(__spreadValues(__spreadValues({}, core), semantic), component));
|
|
4288
|
+
return {
|
|
4289
|
+
values,
|
|
4290
|
+
declarations: Object.fromEntries(
|
|
4291
|
+
Object.entries(values).map(([key, value]) => {
|
|
4292
|
+
return [
|
|
4293
|
+
config.getToken("declaration", key),
|
|
4294
|
+
value
|
|
4295
|
+
];
|
|
4296
|
+
})
|
|
4297
|
+
),
|
|
4298
|
+
ref: (path) => getToken("reference", path.toString())
|
|
4299
|
+
};
|
|
4300
|
+
}
|
|
4301
|
+
})
|
|
4302
|
+
})
|
|
4303
|
+
})
|
|
4304
|
+
};
|
|
4305
|
+
};
|
|
4122
4306
|
const match = (m2) => {
|
|
4123
4307
|
const patterns = [];
|
|
4124
4308
|
const i2 = (m22) => ({
|
|
@@ -4146,143 +4330,12 @@ const match = (m2) => {
|
|
|
4146
4330
|
});
|
|
4147
4331
|
return i2(m2);
|
|
4148
4332
|
};
|
|
4149
|
-
const
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
"6": true,
|
|
4156
|
-
"7": true,
|
|
4157
|
-
"8": true,
|
|
4158
|
-
"9": true,
|
|
4159
|
-
"10": true,
|
|
4160
|
-
"11": true,
|
|
4161
|
-
"12": true
|
|
4162
|
-
};
|
|
4163
|
-
const COLOR_LEVELS = Object.keys(colorLevels);
|
|
4164
|
-
const colorPresets = {
|
|
4165
|
-
light: {
|
|
4166
|
-
"1": {
|
|
4167
|
-
l: 98.8,
|
|
4168
|
-
c: 0.015
|
|
4169
|
-
},
|
|
4170
|
-
"2": {
|
|
4171
|
-
l: 97.8,
|
|
4172
|
-
c: 0.018
|
|
4173
|
-
},
|
|
4174
|
-
"3": {
|
|
4175
|
-
l: 95.8,
|
|
4176
|
-
c: 0.025
|
|
4177
|
-
},
|
|
4178
|
-
"4": {
|
|
4179
|
-
l: 92,
|
|
4180
|
-
c: 0.04
|
|
4181
|
-
},
|
|
4182
|
-
"5": {
|
|
4183
|
-
l: 89,
|
|
4184
|
-
c: 0.05
|
|
4185
|
-
},
|
|
4186
|
-
"6": {
|
|
4187
|
-
l: 85,
|
|
4188
|
-
c: 0.07
|
|
4189
|
-
},
|
|
4190
|
-
"7": {
|
|
4191
|
-
l: 80.5,
|
|
4192
|
-
c: 0.08
|
|
4193
|
-
},
|
|
4194
|
-
"8": {
|
|
4195
|
-
l: 74,
|
|
4196
|
-
c: 0.11
|
|
4197
|
-
},
|
|
4198
|
-
"9": {
|
|
4199
|
-
l: 60,
|
|
4200
|
-
c: 0.22
|
|
4201
|
-
},
|
|
4202
|
-
"10": {
|
|
4203
|
-
l: 60.5,
|
|
4204
|
-
c: 0.2
|
|
4205
|
-
},
|
|
4206
|
-
"11": {
|
|
4207
|
-
l: 50,
|
|
4208
|
-
c: 0.19
|
|
4209
|
-
},
|
|
4210
|
-
"12": {
|
|
4211
|
-
l: 25,
|
|
4212
|
-
c: 0.18
|
|
4213
|
-
}
|
|
4214
|
-
},
|
|
4215
|
-
dark: {
|
|
4216
|
-
"1": {
|
|
4217
|
-
l: 19,
|
|
4218
|
-
c: 0.015
|
|
4219
|
-
},
|
|
4220
|
-
"2": {
|
|
4221
|
-
l: 21,
|
|
4222
|
-
c: 0.018
|
|
4223
|
-
},
|
|
4224
|
-
"3": {
|
|
4225
|
-
l: 25.5,
|
|
4226
|
-
c: 0.055
|
|
4227
|
-
},
|
|
4228
|
-
"4": {
|
|
4229
|
-
l: 29.3,
|
|
4230
|
-
c: 0.084
|
|
4231
|
-
},
|
|
4232
|
-
"5": {
|
|
4233
|
-
l: 33.5,
|
|
4234
|
-
c: 0.098
|
|
4235
|
-
},
|
|
4236
|
-
"6": {
|
|
4237
|
-
l: 39.05,
|
|
4238
|
-
c: 0.107
|
|
4239
|
-
},
|
|
4240
|
-
"7": {
|
|
4241
|
-
l: 45,
|
|
4242
|
-
c: 0.11
|
|
4243
|
-
},
|
|
4244
|
-
"8": {
|
|
4245
|
-
l: 55,
|
|
4246
|
-
c: 0.13
|
|
4247
|
-
},
|
|
4248
|
-
"9": {
|
|
4249
|
-
l: 60,
|
|
4250
|
-
c: 0.22
|
|
4251
|
-
},
|
|
4252
|
-
"10": {
|
|
4253
|
-
l: 67,
|
|
4254
|
-
c: 0.18
|
|
4255
|
-
},
|
|
4256
|
-
"11": {
|
|
4257
|
-
l: 79.3,
|
|
4258
|
-
c: 0.12
|
|
4259
|
-
},
|
|
4260
|
-
"12": {
|
|
4261
|
-
l: 95,
|
|
4262
|
-
c: 0.04
|
|
4263
|
-
}
|
|
4264
|
-
}
|
|
4265
|
-
};
|
|
4266
|
-
const getPaletteColor = (hueAngle, chromaMultipler = 1, mode) => (i2) => {
|
|
4267
|
-
const {
|
|
4268
|
-
c: c2,
|
|
4269
|
-
l: l2
|
|
4270
|
-
} = colorPresets[mode][i2];
|
|
4271
|
-
const color = "oklch(" + l2 + "% " + c2 * chromaMultipler + " " + hueAngle + ")";
|
|
4272
|
-
return color;
|
|
4273
|
-
};
|
|
4274
|
-
const generatePalette = (params) => {
|
|
4275
|
-
const getColor = getPaletteColor(params.hue, params.chroma, params.mode);
|
|
4276
|
-
return Object.fromEntries(COLOR_LEVELS.map((level) => [params.prefix + level, extractOklch(getColor(level))]));
|
|
4277
|
-
};
|
|
4278
|
-
const extractOklch = (color) => {
|
|
4279
|
-
return color.replace("oklch(", "").replace(")", "");
|
|
4280
|
-
};
|
|
4281
|
-
const prefixInploi = (v2) => `--i-${v2}`;
|
|
4282
|
-
const prefixVar = (v2) => `var(${prefixInploi(v2)})`;
|
|
4283
|
-
const [black, white] = ["0 0 0", "100 0 0"];
|
|
4284
|
-
const generateColorThemeVars = (theme) => {
|
|
4285
|
-
return {
|
|
4333
|
+
const [black, white] = ["oklch(0 0 0)", "oklch(100 0 0)"];
|
|
4334
|
+
const transparent = "transparent";
|
|
4335
|
+
const tokens = designTokens().core(({
|
|
4336
|
+
theme
|
|
4337
|
+
}) => ({
|
|
4338
|
+
color: {
|
|
4286
4339
|
black,
|
|
4287
4340
|
white,
|
|
4288
4341
|
lowest: theme.mode === "light" ? white : black,
|
|
@@ -4305,12 +4358,14 @@ const generateColorThemeVars = (theme) => {
|
|
|
4305
4358
|
chroma: theme.accent.chroma,
|
|
4306
4359
|
mode: theme.mode
|
|
4307
4360
|
})
|
|
4308
|
-
}
|
|
4309
|
-
}
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4361
|
+
}
|
|
4362
|
+
})).semantic(({
|
|
4363
|
+
core,
|
|
4364
|
+
theme,
|
|
4365
|
+
raw
|
|
4366
|
+
}) => {
|
|
4313
4367
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
4368
|
+
const withOpacity = (token, opacity) => raw.core.color[token].replace(")", ` / ${opacity})`);
|
|
4314
4369
|
const {
|
|
4315
4370
|
typography,
|
|
4316
4371
|
highlights
|
|
@@ -4332,28 +4387,28 @@ const generateTokenVars = (theme, color) => {
|
|
|
4332
4387
|
"weight-job-heading": ((_j = typography.jobHeading) == null ? void 0 : _j.weight) ?? typography.weight ?? "inherit",
|
|
4333
4388
|
"style-input": ((_k = typography.input) == null ? void 0 : _k.style) ?? typography.style ?? "inherit",
|
|
4334
4389
|
"weight-input": ((_l = typography.input) == null ? void 0 : _l.weight) ?? typography.weight ?? "inherit",
|
|
4335
|
-
"app-bg":
|
|
4336
|
-
copy:
|
|
4337
|
-
"copy-lowcontrast":
|
|
4338
|
-
"copy-info":
|
|
4339
|
-
"copy-icon":
|
|
4340
|
-
"copy-accent":
|
|
4341
|
-
"copy-accent-lowcontrast":
|
|
4342
|
-
"copy-accent-icon":
|
|
4343
|
-
"copy-inverted":
|
|
4344
|
-
"copy-inverted-lowcontrast":
|
|
4345
|
-
"copy-inverted-icon":
|
|
4346
|
-
"tag-neutral-weak-bg": highlights === "fill" ?
|
|
4347
|
-
"tag-neutral-weak-copy":
|
|
4348
|
-
"tag-neutral-weak-stroke-color": highlights === "stroke" ?
|
|
4349
|
-
"tag-neutral-strong-bg": highlights === "fill" ?
|
|
4350
|
-
"tag-neutral-strong-copy":
|
|
4351
|
-
"tag-neutral-strong-stroke-color":
|
|
4352
|
-
"tag-monetary-weak-bg":
|
|
4353
|
-
"tag-monetary-weak-copy":
|
|
4354
|
-
"tag-accent-strong-bg":
|
|
4355
|
-
"tag-accent-strong-copy":
|
|
4356
|
-
"tag-accent-strong-stroke-color":
|
|
4390
|
+
"app-bg": core("color.lowest"),
|
|
4391
|
+
copy: highContrast ? core("color.highest") : core("color.n-12"),
|
|
4392
|
+
"copy-lowcontrast": core("color.n-11"),
|
|
4393
|
+
"copy-info": highContrast ? core("color.n-11") : core("color.n-10"),
|
|
4394
|
+
"copy-icon": highContrast ? core("color.n-12") : core("color.n-11"),
|
|
4395
|
+
"copy-accent": highContrast ? core("color.highest") : core("color.a-12"),
|
|
4396
|
+
"copy-accent-lowcontrast": highContrast ? core("color.a-12") : core("color.a-11"),
|
|
4397
|
+
"copy-accent-icon": highContrast ? core("color.a-12") : core("color.a-11"),
|
|
4398
|
+
"copy-inverted": core("color.lowest"),
|
|
4399
|
+
"copy-inverted-lowcontrast": core("color.n-4"),
|
|
4400
|
+
"copy-inverted-icon": core("color.n-3"),
|
|
4401
|
+
"tag-neutral-weak-bg": highlights === "fill" ? core("color.n-2") : transparent,
|
|
4402
|
+
"tag-neutral-weak-copy": core("color.n-12"),
|
|
4403
|
+
"tag-neutral-weak-stroke-color": highlights === "stroke" ? core("color.n-8") : transparent,
|
|
4404
|
+
"tag-neutral-strong-bg": highlights === "fill" ? core("color.n-12") : transparent,
|
|
4405
|
+
"tag-neutral-strong-copy": highlights === "fill" ? core("color.white") : core("color.n-12"),
|
|
4406
|
+
"tag-neutral-strong-stroke-color": withOpacity(highContrast ? "n-12" : "n-4", highlights === "stroke" ? 1 : 0),
|
|
4407
|
+
"tag-monetary-weak-bg": core("color.m-3"),
|
|
4408
|
+
"tag-monetary-weak-copy": core("color.m-11"),
|
|
4409
|
+
"tag-accent-strong-bg": theme.mode === "dark" ? core("color.a-9") : core("color.a-11"),
|
|
4410
|
+
"tag-accent-strong-copy": core("color.white"),
|
|
4411
|
+
"tag-accent-strong-stroke-color": transparent,
|
|
4357
4412
|
"radius-app": match(theme).with({
|
|
4358
4413
|
corners: "rounded"
|
|
4359
4414
|
}, () => "2rem").with({
|
|
@@ -4387,12 +4442,12 @@ const generateTokenVars = (theme, color) => {
|
|
|
4387
4442
|
}, () => "0.25rem").with({
|
|
4388
4443
|
corners: "sharp"
|
|
4389
4444
|
}, () => "0").otherwise(),
|
|
4390
|
-
"interactive-neutral-bg":
|
|
4391
|
-
"interactive-neutral-bg-hover":
|
|
4392
|
-
"interactive-neutral-text":
|
|
4393
|
-
"interactive-accent-bg":
|
|
4394
|
-
"interactive-accent-bg-hover":
|
|
4395
|
-
"interactive-accent-text":
|
|
4445
|
+
"interactive-neutral-bg": withOpacity(highContrast ? "n-5" : "n-4", 0.01),
|
|
4446
|
+
"interactive-neutral-bg-hover": highContrast ? core("color.n-5") : core("color.n-4"),
|
|
4447
|
+
"interactive-neutral-text": core("color.n-12"),
|
|
4448
|
+
"interactive-accent-bg": withOpacity(highlights === "fill" ? "a-4" : "a-3", 0.01),
|
|
4449
|
+
"interactive-accent-bg-hover": highlights === "fill" ? core("color.a-4") : core("color.a-3"),
|
|
4450
|
+
"interactive-accent-text": core("color.a-11"),
|
|
4396
4451
|
"radius-interactive": match(theme).with({
|
|
4397
4452
|
corners: "rounded"
|
|
4398
4453
|
}, () => "1.5rem").with({
|
|
@@ -4400,43 +4455,42 @@ const generateTokenVars = (theme, color) => {
|
|
|
4400
4455
|
}, () => ".5rem").with({
|
|
4401
4456
|
corners: "sharp"
|
|
4402
4457
|
}, () => "0").otherwise(),
|
|
4403
|
-
"section-weak-bg": highlights === "fill" ?
|
|
4404
|
-
"section-strong-bg": highlights === "fill" ? highContrast ?
|
|
4405
|
-
"section-weak-stroke-color": highlights === "fill" ? transparent : highContrast ?
|
|
4406
|
-
"section-strong-stroke-color": highlights === "fill" ? transparent : highContrast ?
|
|
4458
|
+
"section-weak-bg": highlights === "fill" ? core("color.n-2") : transparent,
|
|
4459
|
+
"section-strong-bg": highlights === "fill" ? highContrast ? core("color.n-3") : core("color.n-2") : transparent,
|
|
4460
|
+
"section-weak-stroke-color": highlights === "fill" ? transparent : highContrast ? core("color.n-7") : core("color.n-3"),
|
|
4461
|
+
"section-strong-stroke-color": highlights === "fill" ? transparent : highContrast ? core("color.n-11") : core("color.n-4"),
|
|
4407
4462
|
"section-stroke-width": match(theme).with({
|
|
4408
4463
|
highlights: "stroke",
|
|
4409
4464
|
highcontrast: true
|
|
4410
4465
|
}, () => "1.5px").otherwise(() => "1px"),
|
|
4411
4466
|
"job-card-bg": match(theme).with({
|
|
4412
4467
|
highlights: "fill"
|
|
4413
|
-
}, () =>
|
|
4468
|
+
}, () => core("color.lowest")).otherwise(() => transparent),
|
|
4414
4469
|
"job-card-bg-active": match(theme).with({
|
|
4415
4470
|
highlights: "fill"
|
|
4416
|
-
}, () =>
|
|
4417
|
-
"job-card-stroke-color": highContrast ?
|
|
4418
|
-
"job-card-stroke-color-active":
|
|
4471
|
+
}, () => core("color.lowest")).otherwise(() => transparent),
|
|
4472
|
+
"job-card-stroke-color": highContrast ? core("color.n-10") : core("color.n-4"),
|
|
4473
|
+
"job-card-stroke-color-active": core("color.a-9"),
|
|
4419
4474
|
"job-card-stroke-width": match(theme).with({
|
|
4420
4475
|
highlights: "stroke",
|
|
4421
4476
|
highcontrast: true
|
|
4422
4477
|
}, () => "1.5px").otherwise(() => "1px")
|
|
4423
4478
|
};
|
|
4424
|
-
};
|
|
4479
|
+
}).component(() => ({}));
|
|
4480
|
+
const asInploiVar = asCssVar({
|
|
4481
|
+
prefix: "i-"
|
|
4482
|
+
});
|
|
4425
4483
|
const generateColorThemeCss = (theme) => {
|
|
4426
|
-
const
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
});
|
|
4430
|
-
const tokenCss = Object.entries(generateTokenVars(theme, prefixedVars)).map(([key, value]) => `${prefixInploi(key)}: ${value};`);
|
|
4431
|
-
const colorsCss = Object.entries(generated).map(([key, value]) => {
|
|
4432
|
-
invariant(key);
|
|
4433
|
-
return `${prefixInploi(key)}: ${value};`;
|
|
4484
|
+
const core = tokens.from({
|
|
4485
|
+
theme,
|
|
4486
|
+
getToken: asInploiVar
|
|
4434
4487
|
});
|
|
4488
|
+
const tokenCss = Object.entries(core.declarations).map(([key, value]) => `${key}: ${value};`);
|
|
4435
4489
|
return `#${JOB_SEARCH_SCOPE_ELEMENT_ID} {
|
|
4436
|
-
${
|
|
4490
|
+
${tokenCss.concat(tokenCss).join("\n")}
|
|
4437
4491
|
}`;
|
|
4438
4492
|
};
|
|
4439
|
-
const FILTER_KEYS = ["
|
|
4493
|
+
const FILTER_KEYS = ["company_name", "employment_type", "location_type", "pay_type", "pay_currency", "pay_mask", "pay", "pay_min", "pay_max", "title", "industry", "category", "skills", "town", "city", "country", "contract_type", "pay_display"];
|
|
4440
4494
|
const createJobSearchDomManager = () => {
|
|
4441
4495
|
return {
|
|
4442
4496
|
getRenderTargetElement: () => {
|
|
@@ -4467,7 +4521,8 @@ const jobSearchPlugin = (params) => sdk.createPlugin(({
|
|
|
4467
4521
|
apiClient,
|
|
4468
4522
|
logger,
|
|
4469
4523
|
analytics,
|
|
4470
|
-
class: ((_a = params.theme.accessibility) == null ? void 0 : _a.reducedMotion) ? "reduced-motion" : void 0
|
|
4524
|
+
class: ((_a = params.theme.accessibility) == null ? void 0 : _a.reducedMotion) ? "reduced-motion" : void 0,
|
|
4525
|
+
jobCardConfig: params.jobCard
|
|
4471
4526
|
})]);
|
|
4472
4527
|
return {
|
|
4473
4528
|
/** Returns a string with the initial rendering state of the UI.
|