@inploi/plugin-job-search 0.1.4 → 0.1.5

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.
@@ -512,6 +512,126 @@ function C$1(t2, l2, c2, p2, u2) {
512
512
  return B2 || ("string" == typeof H2 ? B2 = s$1(H2) : null != H2 && false !== H2 && true !== H2 && (B2 = C$1(H2, l2, "svg" === E2 || "foreignObject" !== E2 && c2, p2, t2))), d$1 && d$1(t2), t2.__ = void 0, m$1 && m$1(t2), !B2 && S.has(E2) ? q2 + "/>" : q2 + ">" + B2 + "</" + E2 + ">";
513
513
  }
514
514
  var S = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
515
+ function r$1(e2) {
516
+ var t2, f2, n2 = "";
517
+ if ("string" == typeof e2 || "number" == typeof e2)
518
+ n2 += e2;
519
+ else if ("object" == typeof e2)
520
+ if (Array.isArray(e2))
521
+ for (t2 = 0; t2 < e2.length; t2++)
522
+ e2[t2] && (f2 = r$1(e2[t2])) && (n2 && (n2 += " "), n2 += f2);
523
+ else
524
+ for (t2 in e2)
525
+ e2[t2] && (n2 && (n2 += " "), n2 += t2);
526
+ return n2;
527
+ }
528
+ function clsx() {
529
+ for (var e2, t2, f2 = 0, n2 = ""; f2 < arguments.length; )
530
+ (e2 = arguments[f2++]) && (t2 = r$1(e2)) && (n2 && (n2 += " "), n2 += t2);
531
+ return n2;
532
+ }
533
+ const falsyToString = (value) => typeof value === "boolean" ? "".concat(value) : value === 0 ? "0" : value;
534
+ const defineConfig = (options) => {
535
+ const cx1 = function() {
536
+ for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {
537
+ inputs[_key] = arguments[_key];
538
+ }
539
+ var ref, ref1;
540
+ if (typeof (options === null || options === void 0 ? void 0 : (ref = options.hooks) === null || ref === void 0 ? void 0 : ref["cx:done"]) !== "undefined")
541
+ return options === null || options === void 0 ? void 0 : options.hooks["cx:done"](clsx(inputs));
542
+ if (typeof (options === null || options === void 0 ? void 0 : (ref1 = options.hooks) === null || ref1 === void 0 ? void 0 : ref1.onComplete) !== "undefined")
543
+ return options === null || options === void 0 ? void 0 : options.hooks.onComplete(clsx(inputs));
544
+ return clsx(inputs);
545
+ };
546
+ const cva1 = (config) => {
547
+ return (props) => {
548
+ var ref;
549
+ if ((config === null || config === void 0 ? void 0 : config.variants) == null)
550
+ return cx1(config === null || config === void 0 ? void 0 : config.base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
551
+ const { variants, defaultVariants } = config;
552
+ const getVariantClassNames = Object.keys(variants).map((variant) => {
553
+ const variantProp = props === null || props === void 0 ? void 0 : props[variant];
554
+ const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
555
+ const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
556
+ return variants[variant][variantKey];
557
+ });
558
+ const defaultsAndProps = { ...defaultVariants, ...props && Object.entries(props).reduce((acc, param) => {
559
+ let [key, value] = param;
560
+ return typeof value === "undefined" ? acc : { ...acc, [key]: value };
561
+ }, {}) };
562
+ const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1) => {
563
+ let { class: cvClass, className: cvClassName, ...cvConfig } = param1;
564
+ return Object.entries(cvConfig).every((param) => {
565
+ let [cvKey, cvSelector] = param;
566
+ const selector = defaultsAndProps[cvKey];
567
+ return Array.isArray(cvSelector) ? cvSelector.includes(selector) : selector === cvSelector;
568
+ }) ? [...acc, cvClass, cvClassName] : acc;
569
+ }, []);
570
+ return cx1(config === null || config === void 0 ? void 0 : config.base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
571
+ };
572
+ };
573
+ const compose1 = function() {
574
+ for (var _len = arguments.length, components = new Array(_len), _key = 0; _key < _len; _key++) {
575
+ components[_key] = arguments[_key];
576
+ }
577
+ return (props) => {
578
+ const propsWithoutClass = Object.fromEntries(Object.entries(props || {}).filter((param) => {
579
+ let [key] = param;
580
+ return !["class", "className"].includes(key);
581
+ }));
582
+ return cx1(components.map((component) => component(propsWithoutClass)), props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
583
+ };
584
+ };
585
+ return { compose: compose1, cva: cva1, cx: cx1 };
586
+ };
587
+ const { compose, cva, cx } = defineConfig();
588
+ const btnClass = cva({
589
+ base: "fr animate-selected-tag justify-center touch-hitbox text-style-filter ease-expo-out rounded-interactive relative flex cursor-pointer items-center py-1 transition-all duration-snappy active:scale-95",
590
+ variants: {
591
+ variant: {
592
+ neutral: "bg-interactive-neutral-bg pointer-fine:hover:bg-interactive-neutral-bg-hover text-interactive-neutral-text",
593
+ accent: "bg-interactive-accent-bg pointer-fine:hover:bg-interactive-accent-bg-hover text-interactive-accent-text"
594
+ },
595
+ icon: {
596
+ none: "",
597
+ right: "",
598
+ left: ""
599
+ },
600
+ size: {
601
+ sm: "py-1",
602
+ lg: "py-2"
603
+ }
604
+ },
605
+ compoundVariants: [
606
+ {
607
+ size: "sm",
608
+ icon: "right",
609
+ class: "pl-3 pr-1"
610
+ },
611
+ {
612
+ size: "sm",
613
+ icon: "left",
614
+ class: "pl-1 pr-3"
615
+ },
616
+ {
617
+ size: "sm",
618
+ icon: "none",
619
+ class: "px-3"
620
+ },
621
+ {
622
+ size: "lg",
623
+ icon: "right",
624
+ class: "pl-5 pr-3"
625
+ }
626
+ // { size: 'lg', icon: 'left', class: 'pl-3 pr-5' },
627
+ // { size: 'lg', icon: 'none', class: 'px-5' },
628
+ ],
629
+ defaultVariants: {
630
+ variant: "neutral",
631
+ icon: "none",
632
+ size: "sm"
633
+ }
634
+ });
515
635
  var f$1 = 0;
516
636
  function u$1(e2, t2, n2, o2, i2, u2) {
517
637
  var a2, c2, p2 = {};
@@ -523,7 +643,7 @@ function u$1(e2, t2, n2, o2, i2, u2) {
523
643
  void 0 === p2[c2] && (p2[c2] = a2[c2]);
524
644
  return l$2.vnode && l$2.vnode(l2), l2;
525
645
  }
526
- const Fallback = ({
646
+ const UnstyledErrorView = ({
527
647
  error,
528
648
  resetError
529
649
  }) => {
@@ -554,6 +674,26 @@ const Fallback = ({
554
674
  })]
555
675
  });
556
676
  };
677
+ const ErrorView = ({
678
+ error,
679
+ resetError
680
+ }) => {
681
+ return u$1("div", {
682
+ class: "bg-section-strong-bg ring-section-weak-stroke rounded-section ring-px lg:ring-width-section flex flex-col gap-4 p-4",
683
+ children: [u$1("p", {
684
+ class: "text-neutral-11",
685
+ children: ["An error occured: ", error.message]
686
+ }), u$1("button", {
687
+ class: btnClass({
688
+ variant: "neutral",
689
+ size: "lg",
690
+ class: "border-px flex flex-none flex-nowrap justify-center truncate border-transparent"
691
+ }),
692
+ onClick: resetError,
693
+ children: "Retry"
694
+ })]
695
+ });
696
+ };
557
697
  class ErrorBoundary extends b$2 {
558
698
  constructor() {
559
699
  super(...arguments);
@@ -574,9 +714,9 @@ class ErrorBoundary extends b$2 {
574
714
  render() {
575
715
  if (this.state.error) {
576
716
  const {
577
- Fallback: Fallback2
717
+ Fallback
578
718
  } = this.props;
579
- return u$1(Fallback2, {
719
+ return u$1(Fallback, {
580
720
  error: this.state.error,
581
721
  resetError: () => {
582
722
  this.setState({
@@ -751,10 +891,10 @@ const Icon = ({
751
891
  })
752
892
  });
753
893
  };
754
- var t, r$1, u, i, o = 0, f = [], c = [], e = l$2.__b, a = l$2.__r, v = l$2.diffed, l = l$2.__c, m = l$2.unmount;
894
+ var t, r, u, i, o = 0, f = [], c = [], e = l$2.__b, a = l$2.__r, v = l$2.diffed, l = l$2.__c, m = l$2.unmount;
755
895
  function d(t2, u2) {
756
- l$2.__h && l$2.__h(r$1, t2, o || u2), o = 0;
757
- var i2 = r$1.__H || (r$1.__H = { __: [], __h: [] });
896
+ l$2.__h && l$2.__h(r, t2, o || u2), o = 0;
897
+ var i2 = r.__H || (r.__H = { __: [], __h: [] });
758
898
  return t2 >= i2.__.length && i2.__.push({ __V: c }), i2.__[t2];
759
899
  }
760
900
  function h(n2) {
@@ -765,7 +905,7 @@ function s(n2, u2, i2) {
765
905
  if (o2.t = n2, !o2.__c && (o2.__ = [i2 ? i2(u2) : B$1(void 0, u2), function(n3) {
766
906
  var t2 = o2.__N ? o2.__N[0] : o2.__[0], r2 = o2.t(t2, n3);
767
907
  t2 !== r2 && (o2.__N = [r2, o2.__[1]], o2.__c.setState({}));
768
- }], o2.__c = r$1, !r$1.u)) {
908
+ }], o2.__c = r, !r.u)) {
769
909
  var f2 = function(n3, t2, r2) {
770
910
  if (!o2.__c.__H)
771
911
  return true;
@@ -784,25 +924,25 @@ function s(n2, u2, i2) {
784
924
  }
785
925
  }), !(!i3 && o2.__c.props === n3) && (!c2 || c2.call(this, n3, t2, r2));
786
926
  };
787
- r$1.u = true;
788
- var c2 = r$1.shouldComponentUpdate, e2 = r$1.componentWillUpdate;
789
- r$1.componentWillUpdate = function(n3, t2, r2) {
927
+ r.u = true;
928
+ var c2 = r.shouldComponentUpdate, e2 = r.componentWillUpdate;
929
+ r.componentWillUpdate = function(n3, t2, r2) {
790
930
  if (this.__e) {
791
931
  var u3 = c2;
792
932
  c2 = void 0, f2(n3, t2, r2), c2 = u3;
793
933
  }
794
934
  e2 && e2.call(this, n3, t2, r2);
795
- }, r$1.shouldComponentUpdate = f2;
935
+ }, r.shouldComponentUpdate = f2;
796
936
  }
797
937
  return o2.__N || o2.__;
798
938
  }
799
939
  function p(u2, i2) {
800
940
  var o2 = d(t++, 3);
801
- !l$2.__s && z$1(o2.__H, i2) && (o2.__ = u2, o2.i = i2, r$1.__H.__h.push(o2));
941
+ !l$2.__s && z$1(o2.__H, i2) && (o2.__ = u2, o2.i = i2, r.__H.__h.push(o2));
802
942
  }
803
943
  function y(u2, i2) {
804
944
  var o2 = d(t++, 4);
805
- !l$2.__s && z$1(o2.__H, i2) && (o2.__ = u2, o2.i = i2, r$1.__h.push(o2));
945
+ !l$2.__s && z$1(o2.__H, i2) && (o2.__ = u2, o2.i = i2, r.__h.push(o2));
806
946
  }
807
947
  function _(n2) {
808
948
  return o = 5, F$1(function() {
@@ -828,15 +968,15 @@ function T$1(n2, t2) {
828
968
  }, t2);
829
969
  }
830
970
  function q$1(n2) {
831
- var u2 = r$1.context[n2.__c], i2 = d(t++, 9);
832
- return i2.c = n2, u2 ? (null == i2.__ && (i2.__ = true, u2.sub(r$1)), u2.props.value) : n2.__;
971
+ var u2 = r.context[n2.__c], i2 = d(t++, 9);
972
+ return i2.c = n2, u2 ? (null == i2.__ && (i2.__ = true, u2.sub(r)), u2.props.value) : n2.__;
833
973
  }
834
974
  function x$1(t2, r2) {
835
975
  l$2.useDebugValue && l$2.useDebugValue(r2 ? r2(t2) : t2);
836
976
  }
837
977
  function P$1(n2) {
838
978
  var u2 = d(t++, 10), i2 = h();
839
- return u2.__ = n2, r$1.componentDidCatch || (r$1.componentDidCatch = function(n3, t2) {
979
+ return u2.__ = n2, r.componentDidCatch || (r.componentDidCatch = function(n3, t2) {
840
980
  u2.__ && u2.__(n3, t2), i2[1](n3);
841
981
  }), [i2[0], function() {
842
982
  i2[1](void 0);
@@ -845,7 +985,7 @@ function P$1(n2) {
845
985
  function V$1() {
846
986
  var n2 = d(t++, 11);
847
987
  if (!n2.__) {
848
- for (var u2 = r$1.__v; null !== u2 && !u2.__m && null !== u2.__; )
988
+ for (var u2 = r.__v; null !== u2 && !u2.__m && null !== u2.__; )
849
989
  u2 = u2.__;
850
990
  var i2 = u2.__m || (u2.__m = [0, 0]);
851
991
  n2.__ = "P" + i2[0] + "-" + i2[1]++;
@@ -862,19 +1002,19 @@ function b() {
862
1002
  }
863
1003
  }
864
1004
  l$2.__b = function(n2) {
865
- r$1 = null, e && e(n2);
1005
+ r = null, e && e(n2);
866
1006
  }, l$2.__r = function(n2) {
867
1007
  a && a(n2), t = 0;
868
- var i2 = (r$1 = n2.__c).__H;
869
- i2 && (u === r$1 ? (i2.__h = [], r$1.__h = [], i2.__.forEach(function(n3) {
1008
+ var i2 = (r = n2.__c).__H;
1009
+ i2 && (u === r ? (i2.__h = [], r.__h = [], i2.__.forEach(function(n3) {
870
1010
  n3.__N && (n3.__ = n3.__N), n3.__V = c, n3.__N = n3.i = void 0;
871
- })) : (i2.__h.forEach(k$1), i2.__h.forEach(w$1), i2.__h = [], t = 0)), u = r$1;
1011
+ })) : (i2.__h.forEach(k$1), i2.__h.forEach(w$1), i2.__h = [], t = 0)), u = r;
872
1012
  }, l$2.diffed = function(t2) {
873
1013
  v && v(t2);
874
1014
  var o2 = t2.__c;
875
1015
  o2 && o2.__H && (o2.__H.__h.length && (1 !== f.push(o2) && i === l$2.requestAnimationFrame || ((i = l$2.requestAnimationFrame) || j$1)(b)), o2.__H.__.forEach(function(n2) {
876
1016
  n2.i && (n2.__H = n2.i), n2.__V !== c && (n2.__ = n2.__V), n2.i = void 0, n2.__V = c;
877
- })), u = r$1 = null;
1017
+ })), u = r = null;
878
1018
  }, l$2.__c = function(t2, r2) {
879
1019
  r2.some(function(t3) {
880
1020
  try {
@@ -906,12 +1046,12 @@ function j$1(n2) {
906
1046
  g$1 && (t2 = requestAnimationFrame(r2));
907
1047
  }
908
1048
  function k$1(n2) {
909
- var t2 = r$1, u2 = n2.__c;
910
- "function" == typeof u2 && (n2.__c = void 0, u2()), r$1 = t2;
1049
+ var t2 = r, u2 = n2.__c;
1050
+ "function" == typeof u2 && (n2.__c = void 0, u2()), r = t2;
911
1051
  }
912
1052
  function w$1(n2) {
913
- var t2 = r$1;
914
- n2.__c = n2.__(), r$1 = t2;
1053
+ var t2 = r;
1054
+ n2.__c = n2.__(), r = t2;
915
1055
  }
916
1056
  function z$1(n2, t2) {
917
1057
  return !n2 || n2.length !== t2.length || t2.some(function(t3, r2) {
@@ -924,6 +1064,7 @@ function B$1(n2, t2) {
924
1064
  const JOB_SEARCH_ELEMENT_ID = "inploi-job-search";
925
1065
  const JOB_SEARCH_SCOPE_ELEMENT_ID = "ijs";
926
1066
  const PAGE_SIZE = 10;
1067
+ const cacheKey = (value) => JSON.stringify(value);
927
1068
  function g(n2, t2) {
928
1069
  for (var e2 in t2)
929
1070
  n2[e2] = t2[e2];
@@ -1963,16 +2104,6 @@ const subscribeCallback = (key, callbacks, callback) => {
1963
2104
  }
1964
2105
  };
1965
2106
  };
1966
- const withMiddleware = (useSWR2, middleware2) => {
1967
- return (...args) => {
1968
- const [key, fn2, config] = normalize(args);
1969
- const uses = (config.use || []).concat(middleware2);
1970
- return useSWR2(key, fn2, {
1971
- ...config,
1972
- use: uses
1973
- });
1974
- };
1975
- };
1976
2107
  setupDevTools();
1977
2108
  const use = wn.use || ((promise) => {
1978
2109
  if (promise.status === "pending") {
@@ -2871,10 +3002,10 @@ const getRelativeTimeDifference = ({
2871
3002
  return diffIn.months < 0 ? "a long time ago" : "in a long time";
2872
3003
  };
2873
3004
  const SEVEN_DAYS_MS = 1e3 * 60 * 60 * 24 * 7;
2874
- const AvailablePropertiesSchema = record(transform(array(coerce(string(), String)), (schema) => schema.map((s2) => ({
2875
- value: s2,
2876
- label: s2
2877
- }))));
3005
+ const AvailablePropertiesSchema = record(array(object({
3006
+ label: coerce(string(), String),
3007
+ value: coerce(string(), String)
3008
+ })));
2878
3009
  const PaginationSchema = object({
2879
3010
  total: number(),
2880
3011
  current_page: number(),
@@ -2891,7 +3022,7 @@ const payPeriods = {
2891
3022
  const JobPayloadSchema = object({
2892
3023
  id: number(),
2893
3024
  company_name: string(),
2894
- employment_type: union([literal("FULL_TIME"), literal("PART_TIME"), literal("TEMPORARY"), literal("CONTRACTOR"), literal("INTERN"), literal("VOLUNTEER"), literal("OTHER")]),
3025
+ employment_type: string(),
2895
3026
  location_type: union([literal("LOCATION"), literal("REMOTE"), literal("HYBRID")]),
2896
3027
  pay_type: union([literal("ANNUALLY"), literal("HOURLY"), literal("MONTHLY"), literal("WEEKLY"), literal("DAILY")]),
2897
3028
  pay_currency: string(),
@@ -2907,10 +3038,6 @@ const JobPayloadSchema = object({
2907
3038
  pay_max: nullable(string()),
2908
3039
  description: string(),
2909
3040
  title: string(),
2910
- coordinates: object({
2911
- lat: number(),
2912
- lng: number()
2913
- }),
2914
3041
  // E.g.: Any varchar, e.g.: "Permanent contract"
2915
3042
  contract_type: nullable(string()),
2916
3043
  created_at: nullable(string()),
@@ -2949,7 +3076,6 @@ const JobSchema = transform(JobPayloadSchema, (schema) => {
2949
3076
  pay,
2950
3077
  description: schema.description,
2951
3078
  title: schema.title,
2952
- coordinates: schema.coordinates,
2953
3079
  contractType: schema.contract_type,
2954
3080
  href: schema.href,
2955
3081
  relativePostedDate: schema.created_at ? getRelativeTimeDifference({
@@ -3046,80 +3172,6 @@ const SWR_SETTINGS = {
3046
3172
  revalidateIfStale: false,
3047
3173
  revalidateFirstPage: false
3048
3174
  };
3049
- const cacheKey = (value) => JSON.stringify(value);
3050
- function r(e2) {
3051
- var t2, f2, n2 = "";
3052
- if ("string" == typeof e2 || "number" == typeof e2)
3053
- n2 += e2;
3054
- else if ("object" == typeof e2)
3055
- if (Array.isArray(e2))
3056
- for (t2 = 0; t2 < e2.length; t2++)
3057
- e2[t2] && (f2 = r(e2[t2])) && (n2 && (n2 += " "), n2 += f2);
3058
- else
3059
- for (t2 in e2)
3060
- e2[t2] && (n2 && (n2 += " "), n2 += t2);
3061
- return n2;
3062
- }
3063
- function clsx() {
3064
- for (var e2, t2, f2 = 0, n2 = ""; f2 < arguments.length; )
3065
- (e2 = arguments[f2++]) && (t2 = r(e2)) && (n2 && (n2 += " "), n2 += t2);
3066
- return n2;
3067
- }
3068
- const falsyToString = (value) => typeof value === "boolean" ? "".concat(value) : value === 0 ? "0" : value;
3069
- const defineConfig = (options) => {
3070
- const cx1 = function() {
3071
- for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {
3072
- inputs[_key] = arguments[_key];
3073
- }
3074
- var ref, ref1;
3075
- if (typeof (options === null || options === void 0 ? void 0 : (ref = options.hooks) === null || ref === void 0 ? void 0 : ref["cx:done"]) !== "undefined")
3076
- return options === null || options === void 0 ? void 0 : options.hooks["cx:done"](clsx(inputs));
3077
- if (typeof (options === null || options === void 0 ? void 0 : (ref1 = options.hooks) === null || ref1 === void 0 ? void 0 : ref1.onComplete) !== "undefined")
3078
- return options === null || options === void 0 ? void 0 : options.hooks.onComplete(clsx(inputs));
3079
- return clsx(inputs);
3080
- };
3081
- const cva1 = (config) => {
3082
- return (props) => {
3083
- var ref;
3084
- if ((config === null || config === void 0 ? void 0 : config.variants) == null)
3085
- return cx1(config === null || config === void 0 ? void 0 : config.base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
3086
- const { variants, defaultVariants } = config;
3087
- const getVariantClassNames = Object.keys(variants).map((variant) => {
3088
- const variantProp = props === null || props === void 0 ? void 0 : props[variant];
3089
- const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
3090
- const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
3091
- return variants[variant][variantKey];
3092
- });
3093
- const defaultsAndProps = { ...defaultVariants, ...props && Object.entries(props).reduce((acc, param) => {
3094
- let [key, value] = param;
3095
- return typeof value === "undefined" ? acc : { ...acc, [key]: value };
3096
- }, {}) };
3097
- const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1) => {
3098
- let { class: cvClass, className: cvClassName, ...cvConfig } = param1;
3099
- return Object.entries(cvConfig).every((param) => {
3100
- let [cvKey, cvSelector] = param;
3101
- const selector = defaultsAndProps[cvKey];
3102
- return Array.isArray(cvSelector) ? cvSelector.includes(selector) : selector === cvSelector;
3103
- }) ? [...acc, cvClass, cvClassName] : acc;
3104
- }, []);
3105
- return cx1(config === null || config === void 0 ? void 0 : config.base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
3106
- };
3107
- };
3108
- const compose1 = function() {
3109
- for (var _len = arguments.length, components = new Array(_len), _key = 0; _key < _len; _key++) {
3110
- components[_key] = arguments[_key];
3111
- }
3112
- return (props) => {
3113
- const propsWithoutClass = Object.fromEntries(Object.entries(props || {}).filter((param) => {
3114
- let [key] = param;
3115
- return !["class", "className"].includes(key);
3116
- }));
3117
- return cx1(components.map((component) => component(propsWithoutClass)), props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
3118
- };
3119
- };
3120
- return { compose: compose1, cva: cva1, cx: cx1 };
3121
- };
3122
- const { compose, cva, cx } = defineConfig();
3123
3175
  const tagClass = cva({
3124
3176
  base: "truncate max-w-full block fr font-style-tag font-family-tag font-weight-tag text-style-tag",
3125
3177
  variants: {
@@ -3191,7 +3243,7 @@ const CurrentValueTag = ({
3191
3243
  size: "sm",
3192
3244
  variant: "accentStrong",
3193
3245
  interactive: true,
3194
- class: "truncate tabular-nums"
3246
+ class: "ijs-filter-current truncate tabular-nums"
3195
3247
  }),
3196
3248
  children: selectedSuggestions.length
3197
3249
  });
@@ -3201,53 +3253,6 @@ const CurrentValueTag = ({
3201
3253
  exhaustive(query);
3202
3254
  }
3203
3255
  };
3204
- const btnClass = cva({
3205
- base: "fr animate-selected-tag justify-center touch-hitbox text-style-filter ease-expo-out rounded-interactive relative flex cursor-pointer items-center py-1 transition-all duration-snappy active:scale-95",
3206
- variants: {
3207
- variant: {
3208
- neutral: "bg-interactive-neutral-bg pointer-fine:hover:bg-interactive-neutral-bg-hover text-interactive-neutral-text",
3209
- accent: "bg-interactive-accent-bg pointer-fine:hover:bg-interactive-accent-bg-hover text-interactive-accent-text"
3210
- },
3211
- icon: {
3212
- none: "",
3213
- right: "",
3214
- left: ""
3215
- },
3216
- size: {
3217
- sm: "py-1",
3218
- lg: "py-2"
3219
- }
3220
- },
3221
- compoundVariants: [
3222
- {
3223
- size: "sm",
3224
- icon: "right",
3225
- class: "pl-3 pr-1"
3226
- },
3227
- {
3228
- size: "sm",
3229
- icon: "left",
3230
- class: "pl-1 pr-3"
3231
- },
3232
- {
3233
- size: "sm",
3234
- icon: "none",
3235
- class: "px-3"
3236
- },
3237
- {
3238
- size: "lg",
3239
- icon: "right",
3240
- class: "pl-5 pr-3"
3241
- }
3242
- // { size: 'lg', icon: 'left', class: 'pl-3 pr-5' },
3243
- // { size: 'lg', icon: 'none', class: 'px-5' },
3244
- ],
3245
- defaultVariants: {
3246
- variant: "neutral",
3247
- icon: "none",
3248
- size: "sm"
3249
- }
3250
- });
3251
3256
  const SUGGESTION_COUNT = 8;
3252
3257
  const TAG_HEIGHT = 42;
3253
3258
  const GAP = 8;
@@ -3386,7 +3391,8 @@ const FilterContentActive = ({
3386
3391
  size: "lg",
3387
3392
  variant: active ? "accentStrong" : "neutralStrong",
3388
3393
  interactive: true,
3389
- disabled: suggestion.disabled
3394
+ disabled: suggestion.disabled,
3395
+ class: "ijs-filter-tag"
3390
3396
  }),
3391
3397
  children: suggestion.label
3392
3398
  })
@@ -3407,6 +3413,7 @@ const FilterContentActive = ({
3407
3413
  class: "font-style-tag font-family-tag font-weight-tag text-style-tag",
3408
3414
  children: "Show More"
3409
3415
  }), u$1(Icon, {
3416
+ "aria-hidden": true,
3410
3417
  name: "plus"
3411
3418
  })]
3412
3419
  })
@@ -3430,6 +3437,7 @@ const FilterContentActive = ({
3430
3437
  onValueChange(void 0);
3431
3438
  },
3432
3439
  children: [u$1(Icon, {
3440
+ "aria-hidden": true,
3433
3441
  name: "x"
3434
3442
  }), " Clear"]
3435
3443
  })
@@ -3468,7 +3476,7 @@ const filterIcons = {
3468
3476
  category: "briefcase"
3469
3477
  };
3470
3478
  const wrapperClass$1 = cva({
3471
- base: "group flex min-w-0 fr overflow-hidden rounded-section text-copy-neutral-lowcontrast ring-width-section transition-all duration-medium ease-expo-out fr-parent [&:has(.fr-child:active)]:scale-[0.975] origin-[50%_1.75rem]",
3479
+ base: "group ijs-filter flex min-w-0 fr overflow-hidden rounded-section text-copy-neutral-lowcontrast ring-width-section transition-all duration-medium ease-expo-out fr-parent [&:has(.fr-child:active)]:scale-[0.975] origin-[50%_1.75rem]",
3472
3480
  variants: {
3473
3481
  hasValue: {
3474
3482
  false: "bg-section-weak-bg ring-section-weak-stroke",
@@ -3541,10 +3549,11 @@ const Filter = ({
3541
3549
  "aria-label": active ? "Close filter" : "Open filter",
3542
3550
  class: headerClass({
3543
3551
  state: active ? "active" : hasValue ? "filled" : "default",
3544
- class: "rounded-section fr-child flex w-full cursor-pointer select-none items-center gap-2 py-4 pl-4"
3552
+ class: "ijs-filter-heading rounded-section fr-child flex w-full cursor-pointer select-none items-center gap-2 py-4 pl-4"
3545
3553
  }),
3546
3554
  onClick: () => onActiveChange(!active),
3547
3555
  children: [u$1(Icon, {
3556
+ "aria-hidden": true,
3548
3557
  class: "flex-none",
3549
3558
  name: icon
3550
3559
  }), u$1("p", {
@@ -3582,8 +3591,8 @@ const Filter = ({
3582
3591
  selectedValues
3583
3592
  })
3584
3593
  }), u$1(Icon, {
3585
- class: chevronClass(),
3586
3594
  "aria-hidden": true,
3595
+ class: chevronClass(),
3587
3596
  name: "chevron-right"
3588
3597
  })]
3589
3598
  })]
@@ -3664,7 +3673,10 @@ const FilterSection = ({
3664
3673
  const [activeKey, setActiveKey] = h((_a = properties[0]) == null ? void 0 : _a.key);
3665
3674
  useFilterKeyboardFocus(activeKey, parentRef);
3666
3675
  const defaultFilters = F$1(() => getFilterDefaults(properties), [properties]);
3667
- const unfilteredQuery = getQueryState(useSWR(cacheKey(defaultFilters), () => getAvailableFilters({
3676
+ const unfilteredQuery = getQueryState(useSWR(cacheKey({
3677
+ filter: defaultFilters,
3678
+ baseKey: "filters"
3679
+ }), () => getAvailableFilters({
3668
3680
  apiClient,
3669
3681
  logger,
3670
3682
  filters: defaultFilters
@@ -3676,7 +3688,10 @@ const FilterSection = ({
3676
3688
  ...appliedFilters,
3677
3689
  [keyToExclude]: defaultFilters[keyToExclude]
3678
3690
  };
3679
- return useSWR(cacheKey(filters), () => getAvailableFilters({
3691
+ return useSWR(cacheKey({
3692
+ filter: filters,
3693
+ baseKey: "filters"
3694
+ }), () => getAvailableFilters({
3680
3695
  apiClient,
3681
3696
  logger,
3682
3697
  filters
@@ -3685,7 +3700,7 @@ const FilterSection = ({
3685
3700
  return u$1("aside", {
3686
3701
  children: u$1("div", {
3687
3702
  role: "tablist",
3688
- class: "top-filters sticky flex flex-col gap-2 px-4 md:px-0",
3703
+ class: "top-filters ijs-filters-section sticky flex flex-col gap-2 px-4 md:px-0",
3689
3704
  children: properties.map((property) => {
3690
3705
  const active = activeKey === property.key;
3691
3706
  const value = appliedFilters[property.key] ?? {
@@ -3709,7 +3724,7 @@ const FilterSection = ({
3709
3724
  const onActiveChange = (active2) => setActiveKey(active2 ? property.key : void 0);
3710
3725
  const useQuery = makeQueryWithoutFilter(property.key);
3711
3726
  return u$1(ErrorBoundary, {
3712
- Fallback,
3727
+ Fallback: ErrorView,
3713
3728
  children: u$1(Filter, {
3714
3729
  unfilteredQuery,
3715
3730
  active,
@@ -3730,212 +3745,6 @@ const FilterSection = ({
3730
3745
  })
3731
3746
  });
3732
3747
  };
3733
- const getFirstPageKey = (getKey) => {
3734
- return serialize(getKey ? getKey(0, null) : null)[0];
3735
- };
3736
- const EMPTY_PROMISE = Promise.resolve();
3737
- const infinite = (useSWRNext) => (getKey, fn2, config) => {
3738
- const didMountRef = _(false);
3739
- const { cache: cache$1, initialSize = 1, revalidateAll = false, persistSize = false, revalidateFirstPage = true, revalidateOnMount = false, parallel = false } = config;
3740
- const [, , , PRELOAD] = SWRGlobalState.get(cache);
3741
- let infiniteKey;
3742
- try {
3743
- infiniteKey = getFirstPageKey(getKey);
3744
- if (infiniteKey)
3745
- infiniteKey = INFINITE_PREFIX + infiniteKey;
3746
- } catch (err) {
3747
- }
3748
- const [get, set, subscribeCache] = createCacheHelper(cache$1, infiniteKey);
3749
- const getSnapshot = T$1(() => {
3750
- const size = isUndefined(get()._l) ? initialSize : get()._l;
3751
- return size;
3752
- }, [
3753
- cache$1,
3754
- infiniteKey,
3755
- initialSize
3756
- ]);
3757
- shimExports.useSyncExternalStore(T$1(
3758
- (callback) => {
3759
- if (infiniteKey)
3760
- return subscribeCache(infiniteKey, () => {
3761
- callback();
3762
- });
3763
- return () => {
3764
- };
3765
- },
3766
- // eslint-disable-next-line react-hooks/exhaustive-deps
3767
- [
3768
- cache$1,
3769
- infiniteKey
3770
- ]
3771
- ), getSnapshot, getSnapshot);
3772
- const resolvePageSize = T$1(() => {
3773
- const cachedPageSize = get()._l;
3774
- return isUndefined(cachedPageSize) ? initialSize : cachedPageSize;
3775
- }, [
3776
- infiniteKey,
3777
- initialSize
3778
- ]);
3779
- const lastPageSizeRef = _(resolvePageSize());
3780
- useIsomorphicLayoutEffect(() => {
3781
- if (!didMountRef.current) {
3782
- didMountRef.current = true;
3783
- return;
3784
- }
3785
- if (infiniteKey) {
3786
- set({
3787
- _l: persistSize ? lastPageSizeRef.current : resolvePageSize()
3788
- });
3789
- }
3790
- }, [
3791
- infiniteKey,
3792
- cache$1
3793
- ]);
3794
- const shouldRevalidateOnMount = revalidateOnMount && !didMountRef.current;
3795
- const swr = useSWRNext(infiniteKey, async (key) => {
3796
- const forceRevalidateAll = get()._i;
3797
- const data = [];
3798
- const pageSize = resolvePageSize();
3799
- const [getCache] = createCacheHelper(cache$1, key);
3800
- const cacheData = getCache().data;
3801
- const revalidators = [];
3802
- let previousPageData = null;
3803
- for (let i2 = 0; i2 < pageSize; ++i2) {
3804
- const [pageKey, pageArg] = serialize(getKey(i2, parallel ? null : previousPageData));
3805
- if (!pageKey) {
3806
- break;
3807
- }
3808
- const [getSWRCache, setSWRCache] = createCacheHelper(cache$1, pageKey);
3809
- let pageData = getSWRCache().data;
3810
- const shouldFetchPage = revalidateAll || forceRevalidateAll || isUndefined(pageData) || revalidateFirstPage && !i2 && !isUndefined(cacheData) || shouldRevalidateOnMount || cacheData && !isUndefined(cacheData[i2]) && !config.compare(cacheData[i2], pageData);
3811
- if (fn2 && shouldFetchPage) {
3812
- const revalidate = async () => {
3813
- const hasPreloadedRequest = pageKey in PRELOAD;
3814
- if (!hasPreloadedRequest) {
3815
- pageData = await fn2(pageArg);
3816
- } else {
3817
- const req = PRELOAD[pageKey];
3818
- delete PRELOAD[pageKey];
3819
- pageData = await req;
3820
- }
3821
- setSWRCache({
3822
- data: pageData,
3823
- _k: pageArg
3824
- });
3825
- data[i2] = pageData;
3826
- };
3827
- if (parallel) {
3828
- revalidators.push(revalidate);
3829
- } else {
3830
- await revalidate();
3831
- }
3832
- } else {
3833
- data[i2] = pageData;
3834
- }
3835
- if (!parallel) {
3836
- previousPageData = pageData;
3837
- }
3838
- }
3839
- if (parallel) {
3840
- await Promise.all(revalidators.map((r2) => r2()));
3841
- }
3842
- set({
3843
- _i: UNDEFINED
3844
- });
3845
- return data;
3846
- }, config);
3847
- const mutate2 = T$1(
3848
- // eslint-disable-next-line func-names
3849
- function(data, opts) {
3850
- const options = typeof opts === "boolean" ? {
3851
- revalidate: opts
3852
- } : opts || {};
3853
- const shouldRevalidate = options.revalidate !== false;
3854
- if (!infiniteKey)
3855
- return EMPTY_PROMISE;
3856
- if (shouldRevalidate) {
3857
- if (!isUndefined(data)) {
3858
- set({
3859
- _i: false
3860
- });
3861
- } else {
3862
- set({
3863
- _i: true
3864
- });
3865
- }
3866
- }
3867
- return arguments.length ? swr.mutate(data, {
3868
- ...options,
3869
- revalidate: shouldRevalidate
3870
- }) : swr.mutate();
3871
- },
3872
- // swr.mutate is always the same reference
3873
- // eslint-disable-next-line react-hooks/exhaustive-deps
3874
- [
3875
- infiniteKey,
3876
- cache$1
3877
- ]
3878
- );
3879
- const setSize = T$1(
3880
- (arg) => {
3881
- if (!infiniteKey)
3882
- return EMPTY_PROMISE;
3883
- const [, changeSize] = createCacheHelper(cache$1, infiniteKey);
3884
- let size;
3885
- if (isFunction(arg)) {
3886
- size = arg(resolvePageSize());
3887
- } else if (typeof arg == "number") {
3888
- size = arg;
3889
- }
3890
- if (typeof size != "number")
3891
- return EMPTY_PROMISE;
3892
- changeSize({
3893
- _l: size
3894
- });
3895
- lastPageSizeRef.current = size;
3896
- const data = [];
3897
- const [getInfiniteCache] = createCacheHelper(cache$1, infiniteKey);
3898
- let previousPageData = null;
3899
- for (let i2 = 0; i2 < size; ++i2) {
3900
- const [pageKey] = serialize(getKey(i2, previousPageData));
3901
- const [getCache] = createCacheHelper(cache$1, pageKey);
3902
- const pageData = pageKey ? getCache().data : UNDEFINED;
3903
- if (isUndefined(pageData)) {
3904
- return mutate2(getInfiniteCache().data);
3905
- }
3906
- data.push(pageData);
3907
- previousPageData = pageData;
3908
- }
3909
- return mutate2(data);
3910
- },
3911
- // exclude getKey from the dependencies, which isn't allowed to change during the lifecycle
3912
- // eslint-disable-next-line react-hooks/exhaustive-deps
3913
- [
3914
- infiniteKey,
3915
- cache$1,
3916
- mutate2,
3917
- resolvePageSize
3918
- ]
3919
- );
3920
- return {
3921
- size: resolvePageSize(),
3922
- setSize,
3923
- mutate: mutate2,
3924
- get data() {
3925
- return swr.data;
3926
- },
3927
- get error() {
3928
- return swr.error;
3929
- },
3930
- get isValidating() {
3931
- return swr.isValidating;
3932
- },
3933
- get isLoading() {
3934
- return swr.isLoading;
3935
- }
3936
- };
3937
- };
3938
- const useSWRInfinite = withMiddleware(useSWR, infinite);
3939
3748
  const SkeletonText = ({
3940
3749
  chars
3941
3750
  }) => {
@@ -3947,14 +3756,16 @@ const SkeletonText = ({
3947
3756
  });
3948
3757
  };
3949
3758
  const wrapperClass = cva({
3950
- base: "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"
3759
+ 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"
3951
3760
  });
3952
3761
  const badgeClass = cva({
3953
3762
  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"
3954
3763
  });
3764
+ const infoTagKeys = ["contractType", "employmentType"];
3955
3765
  const JobCard = ({
3956
3766
  job
3957
3767
  }) => {
3768
+ const tags = infoTagKeys.map((key) => job[key]).filter(Boolean);
3958
3769
  return u$1("a", {
3959
3770
  href: job.href,
3960
3771
  class: wrapperClass(),
@@ -3962,14 +3773,8 @@ const JobCard = ({
3962
3773
  class: "flex flex-1 flex-col gap-4",
3963
3774
  children: [u$1("div", {
3964
3775
  class: "flex flex-col items-start gap-1",
3965
- children: [job.isNew ? u$1("span", {
3966
- class: badgeClass(),
3967
- children: "NEW"
3968
- }) : u$1("p", {
3969
- class: "text-style-job-card-info text-copy-job-info",
3970
- children: ["Posted ", job.relativePostedDate]
3971
- }), u$1("div", {
3972
- class: "flex flex-col gap-1",
3776
+ children: [u$1("div", {
3777
+ class: "order-2 flex flex-col gap-1",
3973
3778
  children: [u$1("p", {
3974
3779
  class: "text-style-job-heading font-style-job-heading font-weight-job-heading text-copy-neutral font-family-job-heading",
3975
3780
  children: job.title
@@ -3977,6 +3782,14 @@ const JobCard = ({
3977
3782
  class: "text-style-job-card text-copy-neutral-lowcontrast",
3978
3783
  children: job.company.name
3979
3784
  })]
3785
+ }), job.isNew ? u$1("span", {
3786
+ class: badgeClass({
3787
+ class: "order-1"
3788
+ }),
3789
+ children: "NEW"
3790
+ }) : u$1("p", {
3791
+ class: "text-style-job-card-info text-copy-job-info order-1",
3792
+ children: ["Posted ", job.relativePostedDate]
3980
3793
  })]
3981
3794
  }), u$1("div", {
3982
3795
  class: "flex flex-col items-start gap-2",
@@ -3986,17 +3799,18 @@ const JobCard = ({
3986
3799
  size: "xs"
3987
3800
  }),
3988
3801
  children: job.pay
3989
- }), job.contractType && u$1("div", {
3802
+ }), tags.length > 0 && u$1("div", {
3990
3803
  class: "flex items-center gap-2",
3991
- children: u$1("span", {
3804
+ children: tags.map((tag) => u$1("span", {
3992
3805
  class: tagClass({
3993
3806
  size: "xs"
3994
3807
  }),
3995
- children: job.contractType
3996
- })
3808
+ children: tag
3809
+ }, tag))
3997
3810
  })]
3998
3811
  })]
3999
3812
  }), u$1("div", {
3813
+ "aria-hidden": true,
4000
3814
  class: "flex items-center",
4001
3815
  children: u$1(Icon, {
4002
3816
  name: "chevron-right",
@@ -4066,6 +3880,7 @@ const JobCardSkeleton = ({
4066
3880
  })]
4067
3881
  })]
4068
3882
  }), u$1("div", {
3883
+ "aria-hidden": true,
4069
3884
  class: "flex items-center",
4070
3885
  children: u$1(Icon, {
4071
3886
  name: "chevron-right",
@@ -4102,70 +3917,66 @@ const LoadMore = ({
4102
3917
  });
4103
3918
  }
4104
3919
  };
4105
- const useResultsFocus = (data) => {
4106
- const resultsRef = _(null);
4107
- p(() => {
4108
- var _a;
4109
- if (!data)
4110
- return;
4111
- if (data.length <= 1)
4112
- return;
4113
- const firstNewJob = (_a = resultsRef.current) == null ? void 0 : _a.querySelector(`li[data-page="${data.length}"] > *:is(a, button)`);
4114
- if (firstNewJob instanceof HTMLElement)
4115
- firstNewJob.focus();
4116
- }, [data]);
4117
- return resultsRef;
4118
- };
4119
3920
  const getResultsCount = ({
4120
3921
  pagination
4121
3922
  }) => {
4122
3923
  invariant(pagination.total >= 0);
4123
3924
  if (pagination.total === 1)
4124
3925
  return "1 job found";
4125
- if (pagination.total < pagination.per_page)
4126
- return pagination.total + " jobs found";
4127
- if (pagination.total > pagination.per_page * pagination.current_page)
4128
- return "Showing " + pagination.per_page * pagination.current_page + " of " + pagination.total + " jobs";
4129
- return "Showing all " + pagination.total + " jobs";
3926
+ return `${pagination.total} jobs found`;
4130
3927
  };
4131
3928
  const ResultsSection = ({
4132
3929
  appliedFilters,
4133
3930
  apiClient,
4134
3931
  logger
4135
3932
  }) => {
4136
- const {
4137
- setSize,
4138
- size,
4139
- ...swr
4140
- } = useSWRInfinite((index, prevPageData) => {
4141
- if (prevPageData === null)
4142
- return index + 1 + "/" + cacheKey(appliedFilters);
4143
- if (prevPageData.pagination.last_page === prevPageData.pagination.current_page)
4144
- return null;
4145
- return index + 1 + "/" + JSON.stringify(appliedFilters);
4146
- }, (key) => {
4147
- const page = Number(key.split("/")[0]);
4148
- invariant(!Number.isNaN(page));
4149
- return getJobSearchResults({
4150
- apiClient,
4151
- logger,
4152
- filters: appliedFilters,
4153
- page
4154
- });
4155
- }, SWR_SETTINGS);
3933
+ const [page, setPage] = h(1);
3934
+ return u$1(g$3, {
3935
+ children: Array.from({
3936
+ length: page
3937
+ }).map((a2, index) => {
3938
+ const isLast = index === page - 1;
3939
+ return u$1(ErrorBoundary, {
3940
+ Fallback: ErrorView,
3941
+ children: u$1(ResultsPage, {
3942
+ appliedFilters,
3943
+ apiClient,
3944
+ logger,
3945
+ page: index + 1,
3946
+ isFirst: index === 0,
3947
+ isLast,
3948
+ fetchNextPage: () => setPage(page + 1)
3949
+ }, index)
3950
+ }, index);
3951
+ })
3952
+ });
3953
+ };
3954
+ const ResultsPage = ({
3955
+ appliedFilters,
3956
+ apiClient,
3957
+ logger,
3958
+ page,
3959
+ isFirst,
3960
+ isLast,
3961
+ fetchNextPage
3962
+ }) => {
4156
3963
  const {
4157
3964
  data,
4158
3965
  error,
4159
3966
  state
4160
- } = getQueryState(swr);
4161
- const fetchNextPage = () => {
4162
- setSize((size2) => size2 + 1);
4163
- };
4164
- const resultsRef = useResultsFocus(data);
3967
+ } = getQueryState(useSWR(cacheKey({
3968
+ filter: appliedFilters,
3969
+ baseKey: page.toString()
3970
+ }), () => getJobSearchResults({
3971
+ apiClient,
3972
+ logger,
3973
+ filters: appliedFilters,
3974
+ page
3975
+ }), SWR_SETTINGS));
4165
3976
  switch (state) {
4166
3977
  case "loading":
4167
3978
  return u$1(g$3, {
4168
- children: [u$1("p", {
3979
+ children: [isFirst && u$1("p", {
4169
3980
  class: "text-style-tag text-copy-job-info animate-skeleton m-0 self-center p-0",
4170
3981
  children: u$1(SkeletonText, {
4171
3982
  chars: 8
@@ -4187,12 +3998,12 @@ const ResultsSection = ({
4187
3998
  throw error;
4188
3999
  case "revalidating":
4189
4000
  case "loaded": {
4190
- const firstPage = data[0];
4191
- invariant(firstPage);
4192
- if (firstPage.pagination.total === 0)
4001
+ invariant(data.pagination.current_page === page);
4002
+ if (data.pagination.total === 0)
4193
4003
  return u$1("div", {
4194
4004
  class: "mx-auto flex flex-col items-center gap-2 px-2 py-4 text-center",
4195
4005
  children: [u$1(Icon, {
4006
+ "aria-hidden": true,
4196
4007
  name: "magnifier",
4197
4008
  class: "text-copy-neutral-lowcontrast"
4198
4009
  }), u$1("div", {
@@ -4206,33 +4017,28 @@ const ResultsSection = ({
4206
4017
  })]
4207
4018
  })]
4208
4019
  });
4209
- const lastPage = data[data.length - 1];
4210
- invariant(lastPage);
4211
- const hasMore = lastPage.pagination.last_page !== lastPage.pagination.current_page;
4020
+ const hasMore = data.pagination.last_page !== data.pagination.current_page;
4212
4021
  return u$1(g$3, {
4213
- children: [u$1("p", {
4022
+ children: [isFirst && u$1("p", {
4214
4023
  class: "text-copy-neutral-lowcontrast text-style-tag m-0 p-0 text-center",
4215
4024
  children: getResultsCount({
4216
- pagination: lastPage.pagination
4025
+ pagination: data.pagination
4217
4026
  })
4218
4027
  }), u$1("ul", {
4028
+ "aria-label": `Page ${page}`,
4219
4029
  class: "flex flex-col gap-3",
4220
- ref: resultsRef,
4221
- children: data.map((page) => {
4222
- return page.results.map((job) => {
4223
- return u$1("li", {
4224
- "data-page": page.pagination.current_page,
4225
- class: "ease-expo-out duration-slow transition-opacity",
4226
- style: {
4227
- opacity: state === "revalidating" && size === 1 ? 0.33 : 1
4228
- },
4229
- children: u$1(JobCard, {
4230
- job
4231
- })
4232
- }, job.id);
4233
- });
4030
+ children: data.results.map((job) => {
4031
+ return u$1("li", {
4032
+ class: "ease-expo-out duration-slow transition-opacity",
4033
+ style: {
4034
+ opacity: state === "revalidating" ? 0.33 : 1
4035
+ },
4036
+ children: u$1(JobCard, {
4037
+ job
4038
+ })
4039
+ }, job.id);
4234
4040
  })
4235
- }), hasMore && LoadMore({
4041
+ }), hasMore && isLast && u$1(LoadMore, {
4236
4042
  state,
4237
4043
  fetchNextPage
4238
4044
  })]
@@ -4274,9 +4080,9 @@ const JobSearch = ({
4274
4080
  class: className,
4275
4081
  id: JOB_SEARCH_SCOPE_ELEMENT_ID,
4276
4082
  children: u$1("div", {
4277
- class: "bg-app rounded-app font-family-default font-weight-default font-style-default mx-auto flex min-h-screen max-w-screen-lg flex-col gap-4 py-4 md:grid md:grid-cols-3 md:px-4",
4083
+ class: "ijs-app bg-app rounded-app font-family-default font-weight-default font-style-default mx-auto flex min-h-screen max-w-screen-lg flex-col gap-4 py-4 md:grid md:grid-cols-3 md:px-4",
4278
4084
  children: [u$1(ErrorBoundary, {
4279
- Fallback,
4085
+ Fallback: ErrorView,
4280
4086
  children: u$1(FilterSection, {
4281
4087
  appliedFilters,
4282
4088
  onFilterValueChange: (key, value) => {
@@ -4295,19 +4101,22 @@ const JobSearch = ({
4295
4101
  children: u$1("section", {
4296
4102
  class: "bg-section-strong-bg ring-section-weak-stroke rounded-section ring-px lg:ring-width-section flex flex-col gap-4 p-4",
4297
4103
  children: u$1(ErrorBoundary, {
4298
- Fallback,
4104
+ Fallback: ErrorView,
4299
4105
  children: u$1(ResultsSection, {
4300
4106
  appliedFilters,
4301
4107
  logger,
4302
4108
  apiClient
4303
- })
4109
+ }, cacheKey({
4110
+ filter: appliedFilters,
4111
+ baseKey: "resultsSection"
4112
+ }))
4304
4113
  })
4305
4114
  })
4306
4115
  })]
4307
4116
  })
4308
4117
  });
4309
4118
  };
4310
- 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 .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-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";
4119
+ 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";
4311
4120
  const match = (m2) => {
4312
4121
  const patterns = [];
4313
4122
  const i2 = (m22) => ({
@@ -4648,7 +4457,7 @@ const jobSearchPlugin = (params) => createPlugin(({
4648
4457
  id: "inploi-job-search-theme"
4649
4458
  }, generateColorThemeCss(params.theme))];
4650
4459
  const App = y$2(ErrorBoundary, {
4651
- Fallback
4460
+ Fallback: UnstyledErrorView
4652
4461
  }, [styleElements, y$2(IconSpritesheet, {
4653
4462
  theme: params.theme
4654
4463
  }), y$2(JobSearch, {