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