@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.
@@ -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) => JSON.stringify(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 active:bg-job-card-bg-active active:ring-job-card-stroke-active flex gap-4 fr ease-expo-out min-w-0 p-4 transition-all duration-medium"
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 infoTagKeys = ["contractType", "employmentType"];
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 tags = infoTagKeys.map((key) => job[key]).filter(Boolean);
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: job.company.name
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
- class: "animate-skeleton"
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 - 4) * 0.1
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 colorLevels = {
4150
- "1": true,
4151
- "2": true,
4152
- "3": true,
4153
- "4": true,
4154
- "5": true,
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
- const oklch = (color, opacity) => `oklch(${color} / ${opacity ?? 1})`;
4311
- const transparent = oklch(black, 0);
4312
- const generateTokenVars = (theme, color) => {
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": oklch(color.lowest),
4336
- copy: oklch(highContrast ? color.highest : color["n-12"]),
4337
- "copy-lowcontrast": oklch(color["n-11"]),
4338
- "copy-info": oklch(highContrast ? color["n-11"] : color["n-10"]),
4339
- "copy-icon": oklch(highContrast ? color["n-12"] : color["n-11"]),
4340
- "copy-accent": oklch(highContrast ? color.highest : color["a-12"]),
4341
- "copy-accent-lowcontrast": oklch(highContrast ? color["a-12"] : color["a-11"]),
4342
- "copy-accent-icon": oklch(highContrast ? color["a-12"] : color["a-11"]),
4343
- "copy-inverted": oklch(color.lowest),
4344
- "copy-inverted-lowcontrast": oklch(color["n-4"]),
4345
- "copy-inverted-icon": oklch(color["n-3"]),
4346
- "tag-neutral-weak-bg": highlights === "fill" ? oklch(color["n-2"]) : transparent,
4347
- "tag-neutral-weak-copy": oklch(color["n-12"]),
4348
- "tag-neutral-weak-stroke-color": highlights === "stroke" ? oklch(color["n-8"]) : transparent,
4349
- "tag-neutral-strong-bg": highlights === "fill" ? oklch(color["n-12"]) : transparent,
4350
- "tag-neutral-strong-copy": oklch(highlights === "fill" ? color.white : color["n-12"]),
4351
- "tag-neutral-strong-stroke-color": oklch(highContrast ? color["n-12"] : color["n-4"], highlights === "stroke" ? 1 : 0),
4352
- "tag-monetary-weak-bg": oklch(color["m-3"]),
4353
- "tag-monetary-weak-copy": oklch(color["m-11"]),
4354
- "tag-accent-strong-bg": oklch(theme.mode === "dark" ? color["a-9"] : color["a-11"]),
4355
- "tag-accent-strong-copy": oklch(color.white),
4356
- "tag-accent-strong-stroke-color": oklch(black, 0),
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": oklch(highContrast ? color["n-5"] : color["n-4"], 0.01),
4391
- "interactive-neutral-bg-hover": oklch(highContrast ? color["n-5"] : color["n-4"]),
4392
- "interactive-neutral-text": oklch(color["n-12"]),
4393
- "interactive-accent-bg": oklch(highlights === "fill" ? color["a-4"] : color["a-3"], 0.01),
4394
- "interactive-accent-bg-hover": oklch(highlights === "fill" ? color["a-4"] : color["a-3"]),
4395
- "interactive-accent-text": oklch(color["a-11"]),
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" ? oklch(color["n-2"]) : transparent,
4404
- "section-strong-bg": highlights === "fill" ? highContrast ? oklch(color["n-3"]) : oklch(color["n-2"]) : transparent,
4405
- "section-weak-stroke-color": highlights === "fill" ? transparent : highContrast ? oklch(color["n-7"]) : oklch(color["n-3"]),
4406
- "section-strong-stroke-color": highlights === "fill" ? transparent : highContrast ? oklch(color["n-11"]) : oklch(color["n-4"]),
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
- }, () => oklch(color.lowest)).otherwise(() => transparent),
4468
+ }, () => core("color.lowest")).otherwise(() => transparent),
4414
4469
  "job-card-bg-active": match(theme).with({
4415
4470
  highlights: "fill"
4416
- }, () => oklch(color.lowest)).otherwise(() => transparent),
4417
- "job-card-stroke-color": highContrast ? oklch(color["n-10"]) : oklch(color["n-4"]),
4418
- "job-card-stroke-color-active": oklch(color["a-9"]),
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 generated = generateColorThemeVars(theme);
4427
- const prefixedVars = new Proxy(generated, {
4428
- get: (_2, prop) => prefixVar(prop)
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
- ${colorsCss.concat(tokenCss).join("\n")}
4490
+ ${tokenCss.concat(tokenCss).join("\n")}
4437
4491
  }`;
4438
4492
  };
4439
- const FILTER_KEYS = ["company_id", "company_name", "industry", "employment_type", "location_type", "pay_type", "pay_currency", "pay_mask", "pay", "pay_min", "pay_max", "title", "category", "skills", "address_1", "address_2", "town", "city", "postcode", "country", "contract_type", "pay_display"];
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.