@inploi/plugin-job-search 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -514,7 +514,75 @@ function C$1(t2, l2, c4, 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 && c4, 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
- var t, r$2, u$1, i, o = 0, f$3 = [], c$1 = [], e$2 = l$2.__b, a = l$2.__r, v = l$2.diffed, l = l$2.__c, m = l$2.unmount;
517
+ var f$3 = 0;
518
+ function u$1(e2, t2, n2, o2, i2, u2) {
519
+ var a2, c4, p2 = {};
520
+ for (c4 in t2)
521
+ "ref" == c4 ? a2 = t2[c4] : p2[c4] = t2[c4];
522
+ var l2 = { type: e2, props: p2, key: n2, ref: a2, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: --f$3, __i: -1, __u: 0, __source: i2, __self: u2 };
523
+ if ("function" == typeof e2 && (a2 = e2.defaultProps))
524
+ for (c4 in a2)
525
+ void 0 === p2[c4] && (p2[c4] = a2[c4]);
526
+ return l$2.vnode && l$2.vnode(l2), l2;
527
+ }
528
+ const Fallback = ({
529
+ error,
530
+ resetError
531
+ }) => {
532
+ return u$1("div", {
533
+ style: {
534
+ padding: "0 1rem",
535
+ fontSize: "1rem",
536
+ color: "#333333",
537
+ fontFamily: "'system-ui' 'Helvetica'"
538
+ },
539
+ children: ["Something went wrong.", u$1("br", {}), ' Error Message: "', error.message, '"', u$1("button", {
540
+ onClick: resetError,
541
+ style: {
542
+ background: "#efefef",
543
+ border: "none",
544
+ cursor: "pointer",
545
+ padding: "0.5rem 1rem"
546
+ },
547
+ children: "Retry"
548
+ })]
549
+ });
550
+ };
551
+ class ErrorBoundary extends b$2 {
552
+ constructor() {
553
+ super(...arguments);
554
+ __publicField(this, "state", {
555
+ error: null
556
+ });
557
+ }
558
+ static getDerivedStateFromError(error) {
559
+ return {
560
+ error: error.message
561
+ };
562
+ }
563
+ componentDidCatch(error) {
564
+ this.setState({
565
+ error
566
+ });
567
+ }
568
+ render() {
569
+ if (this.state.error) {
570
+ const {
571
+ Fallback: Fallback2
572
+ } = this.props;
573
+ return u$1(Fallback2, {
574
+ error: this.state.error,
575
+ resetError: () => {
576
+ this.setState({
577
+ error: null
578
+ });
579
+ }
580
+ });
581
+ }
582
+ return this.props.children;
583
+ }
584
+ }
585
+ var t, r$2, u, i, o = 0, f$2 = [], c$1 = [], e$2 = l$2.__b, a = l$2.__r, v = l$2.diffed, l = l$2.__c, m = l$2.unmount;
518
586
  function d(t2, u2) {
519
587
  l$2.__h && l$2.__h(r$2, t2, o || u2), o = 0;
520
588
  var i2 = r$2.__H || (r$2.__H = { __: [], __h: [] });
@@ -616,7 +684,7 @@ function V$1() {
616
684
  return n2.__;
617
685
  }
618
686
  function b() {
619
- for (var t2; t2 = f$3.shift(); )
687
+ for (var t2; t2 = f$2.shift(); )
620
688
  if (t2.__P && t2.__H)
621
689
  try {
622
690
  t2.__H.__h.forEach(k$3), t2.__H.__h.forEach(w$1), t2.__H.__h = [];
@@ -629,15 +697,15 @@ l$2.__b = function(n2) {
629
697
  }, l$2.__r = function(n2) {
630
698
  a && a(n2), t = 0;
631
699
  var i2 = (r$2 = n2.__c).__H;
632
- i2 && (u$1 === r$2 ? (i2.__h = [], r$2.__h = [], i2.__.forEach(function(n3) {
700
+ i2 && (u === r$2 ? (i2.__h = [], r$2.__h = [], i2.__.forEach(function(n3) {
633
701
  n3.__N && (n3.__ = n3.__N), n3.__V = c$1, n3.__N = n3.i = void 0;
634
- })) : (i2.__h.forEach(k$3), i2.__h.forEach(w$1), i2.__h = [], t = 0)), u$1 = r$2;
702
+ })) : (i2.__h.forEach(k$3), i2.__h.forEach(w$1), i2.__h = [], t = 0)), u = r$2;
635
703
  }, l$2.diffed = function(t2) {
636
704
  v && v(t2);
637
705
  var o2 = t2.__c;
638
- o2 && o2.__H && (o2.__H.__h.length && (1 !== f$3.push(o2) && i === l$2.requestAnimationFrame || ((i = l$2.requestAnimationFrame) || j$1)(b)), o2.__H.__.forEach(function(n2) {
706
+ o2 && o2.__H && (o2.__H.__h.length && (1 !== f$2.push(o2) && i === l$2.requestAnimationFrame || ((i = l$2.requestAnimationFrame) || j$1)(b)), o2.__H.__.forEach(function(n2) {
639
707
  n2.i && (n2.__H = n2.i), n2.__V !== c$1 && (n2.__ = n2.__V), n2.i = void 0, n2.__V = c$1;
640
- })), u$1 = r$2 = null;
708
+ })), u = r$2 = null;
641
709
  }, l$2.__c = function(t2, r2) {
642
710
  r2.some(function(t3) {
643
711
  try {
@@ -2629,7 +2697,7 @@ const PaginationSchema = object({
2629
2697
  last_page: number()
2630
2698
  });
2631
2699
  const payPeriods = {
2632
- ANNUALY: "per year",
2700
+ ANNUALLY: "per year",
2633
2701
  DAILY: "per day",
2634
2702
  HOURLY: "per hour",
2635
2703
  MONTHLY: "per month",
@@ -2641,14 +2709,14 @@ const JobPayloadSchema = object({
2641
2709
  company_logo: string(),
2642
2710
  employment_type: union([literal("FULL_TIME"), literal("PART_TIME"), literal("TEMPORARY"), literal("CONTRACTOR"), literal("INTERN"), literal("VOLUNTEER"), literal("OTHER")]),
2643
2711
  location_type: union([literal("LOCATION"), literal("REMOTE"), literal("HYBRID")]),
2644
- pay_type: union([literal("ANNUALY"), literal("HOURLY"), literal("MONTHLY"), literal("WEEKLY"), literal("DAILY")]),
2712
+ pay_type: union([literal("ANNUALLY"), literal("HOURLY"), literal("MONTHLY"), literal("WEEKLY"), literal("DAILY")]),
2645
2713
  pay_currency: string(),
2646
2714
  // Whether to mask the pay and show as "competitive"
2647
2715
  pay_mask: boolean(),
2648
2716
  // Whether to display pay at all
2649
2717
  pay_display: boolean(),
2650
2718
  // Decimal numeric string e.g. "12.70"
2651
- pay: string(),
2719
+ pay: nullable(string()),
2652
2720
  // Decimal numeric string e.g. "12.70"
2653
2721
  pay_min: nullable(string()),
2654
2722
  // Decimal numeric string e.g. "12.70"
@@ -2662,7 +2730,7 @@ const JobPayloadSchema = object({
2662
2730
  // E.g.: Any varchar, e.g.: "Permanent contract"
2663
2731
  contract_type: nullable(string()),
2664
2732
  created_at: string(),
2665
- custom_data: record(any())
2733
+ custom_data: nullable(record(any()))
2666
2734
  });
2667
2735
  const JobSchema = transform(JobPayloadSchema, (schema) => {
2668
2736
  const isNew = new Date(schema.created_at).getTime() > Date.now() - SEVEN_DAYS_MS;
@@ -2670,6 +2738,17 @@ const JobSchema = transform(JobPayloadSchema, (schema) => {
2670
2738
  style: "currency",
2671
2739
  currency: schema.pay_currency
2672
2740
  });
2741
+ const pay = (() => {
2742
+ if (schema.pay_display === false)
2743
+ return void 0;
2744
+ if (schema.pay_mask)
2745
+ return "Competitive";
2746
+ if (schema.pay_max && schema.pay_min)
2747
+ return numberFormatter.formatRange(+schema.pay_min, +schema.pay_max);
2748
+ if (schema.pay)
2749
+ return [numberFormatter.format(+schema.pay), payPeriods[schema.pay_type]].join(" ");
2750
+ throw new Error("Invalid pay data");
2751
+ })();
2673
2752
  return {
2674
2753
  id: schema.id,
2675
2754
  isNew,
@@ -2679,7 +2758,7 @@ const JobSchema = transform(JobPayloadSchema, (schema) => {
2679
2758
  },
2680
2759
  employmentType: schema.employment_type,
2681
2760
  locationType: schema.location_type,
2682
- pay: !schema.pay_display ? void 0 : schema.pay_mask ? "Competitive" : schema.pay_max && schema.pay_min ? [numberFormatter.formatRange(+schema.pay_min, +schema.pay_max), payPeriods[schema.pay_type]].join(" ") : [numberFormatter.format(+schema.pay), payPeriods[schema.pay_type]].join(" "),
2761
+ pay,
2683
2762
  description: schema.description,
2684
2763
  title: schema.title,
2685
2764
  coordinates: schema.coordinates,
@@ -2797,149 +2876,138 @@ const defineConfig = (options) => {
2797
2876
  return { compose: compose1, cva: cva1, cx: cx1 };
2798
2877
  };
2799
2878
  const { compose, cva, cx } = defineConfig();
2800
- var f$2 = 0;
2801
- function u(e2, t2, n2, o2, i2, u2) {
2802
- var a2, c4, p2 = {};
2803
- for (c4 in t2)
2804
- "ref" == c4 ? a2 = t2[c4] : p2[c4] = t2[c4];
2805
- var l2 = { type: e2, props: p2, key: n2, ref: a2, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: --f$2, __i: -1, __u: 0, __source: i2, __self: u2 };
2806
- if ("function" == typeof e2 && (a2 = e2.defaultProps))
2807
- for (c4 in a2)
2808
- void 0 === p2[c4] && (p2[c4] = a2[c4]);
2809
- return l$2.vnode && l$2.vnode(l2), l2;
2810
- }
2811
2879
  const icons = {
2812
- briefcase: u(g$3, {
2813
- children: [u("path", {
2880
+ briefcase: u$1(g$3, {
2881
+ children: [u$1("path", {
2814
2882
  d: "M17.25 7.75H6.75C5.64543 7.75 4.75 8.64543 4.75 9.75V16.25C4.75 17.3546 5.64543 18.25 6.75 18.25H17.25C18.3546 18.25 19.25 17.3546 19.25 16.25V9.75C19.25 8.64543 18.3546 7.75 17.25 7.75Z"
2815
- }), u("path", {
2883
+ }), u$1("path", {
2816
2884
  d: "M4.75 11.75H19.25"
2817
- }), u("path", {
2885
+ }), u$1("path", {
2818
2886
  d: "M13.25 12.25V13.25H10.75V12.25H13.25Z"
2819
- }), u("path", {
2887
+ }), u$1("path", {
2820
2888
  d: "M9.25 7.5V6.25C9.25 5.42157 9.92157 4.75 10.75 4.75H13.25C14.0784 4.75 14.75 5.42157 14.75 6.25V7.5"
2821
2889
  })]
2822
2890
  }),
2823
- brand: u(g$3, {
2824
- children: [u("path", {
2891
+ brand: u$1(g$3, {
2892
+ children: [u$1("path", {
2825
2893
  d: "M18.45 13.9901C18.1288 15.031 17.5574 15.9886 16.773 16.773C15.5071 18.0388 13.7902 18.75 12 18.75C10.2098 18.75 8.49289 18.0388 7.22702 16.773C6.44262 15.9886 5.87122 15.031 5.55003 13.9901"
2826
- }), u("path", {
2894
+ }), u$1("path", {
2827
2895
  d: "M9.87868 14.8713C10.1573 15.1499 10.488 15.3709 10.8519 15.5216C11.2159 15.6724 11.606 15.75 12 15.75C12.394 15.75 12.7841 15.6724 13.1481 15.5216C13.512 15.3709 13.8427 15.1499 14.1213 14.8713"
2828
- }), u("path", {
2896
+ }), u$1("path", {
2829
2897
  d: "M17.0791 7.55413C16.7038 7.12546 16.2758 6.74602 15.8053 6.42486"
2830
- }), u("path", {
2898
+ }), u$1("path", {
2831
2899
  d: "M12.8451 5.30311C12.2799 5.23179 11.7079 5.2323 11.1428 5.30465"
2832
- }), u("path", {
2900
+ }), u$1("path", {
2833
2901
  d: "M8.25666 6.38307C7.78259 6.69901 7.35043 7.07369 6.97047 7.49818"
2834
- }), u("circle", {
2902
+ }), u$1("circle", {
2835
2903
  cx: "18.75",
2836
2904
  cy: "12",
2837
2905
  r: "2"
2838
- }), u("circle", {
2906
+ }), u$1("circle", {
2839
2907
  cx: "5.25",
2840
2908
  cy: "12",
2841
2909
  r: "2"
2842
2910
  })]
2843
2911
  }),
2844
- building: u(g$3, {
2845
- children: [u("path", {
2912
+ building: u$1(g$3, {
2913
+ children: [u$1("path", {
2846
2914
  d: "M16.75 10.25H13.75"
2847
- }), u("path", {
2915
+ }), u$1("path", {
2848
2916
  d: "M16.75 13.25H13.75"
2849
- }), u("path", {
2917
+ }), u$1("path", {
2850
2918
  d: "M3 18.25H5.25006M5.25006 18.25V14.25C5.25006 13.1454 6.14549 12.25 7.25006 12.25H10.2501L10.25 8.25003C10.25 6.59316 11.5932 5.25 13.25 5.25H17.25C18.9069 5.25 20.25 6.59315 20.25 8.25V18.25H5.25006Z"
2851
- }), u("path", {
2919
+ }), u$1("path", {
2852
2920
  d: "M10.25 12.25V18.25"
2853
2921
  })]
2854
2922
  }),
2855
- circles: u(g$3, {
2856
- children: [u("path", {
2923
+ circles: u$1(g$3, {
2924
+ children: [u$1("path", {
2857
2925
  d: "M16.773 16.773C15.829 17.717 14.6262 18.3599 13.3169 18.6203C12.0075 18.8808 10.6503 18.7471 9.41689 18.2362C8.18349 17.7253 7.12928 16.8601 6.38758 15.7501C5.64588 14.6401 5.25 13.335 5.25 12C5.25 10.665 5.64588 9.35993 6.38758 8.2499C7.12928 7.13987 8.18349 6.27471 9.41689 5.76381C10.6503 5.25292 12.0075 5.11925 13.3169 5.3797C14.6262 5.64015 15.829 6.28302 16.773 7.22703"
2858
- }), u("path", {
2926
+ }), u$1("path", {
2859
2927
  d: "M9.34835 9.34835C9.8728 8.8239 10.541 8.46675 11.2684 8.32206C11.9958 8.17736 12.7498 8.25162 13.4351 8.53545C14.1203 8.81928 14.706 9.29993 15.118 9.91661C15.5301 10.5333 15.75 11.2583 15.75 12C15.75 12.7417 15.5301 13.4667 15.118 14.0834C14.706 14.7001 14.1203 15.1807 13.4351 15.4645C12.7498 15.7484 11.9958 15.8226 11.2684 15.6779C10.541 15.5333 9.8728 15.1761 9.34835 14.6517"
2860
2928
  })]
2861
2929
  }),
2862
- clock: u(g$3, {
2863
- children: [u("path", {
2930
+ clock: u$1(g$3, {
2931
+ children: [u$1("path", {
2864
2932
  d: "M14 9L12 13L9.5 12"
2865
- }), u("path", {
2933
+ }), u$1("path", {
2866
2934
  d: "M18.75 12C18.75 15.7279 15.7279 18.75 12 18.75C8.27208 18.75 5.25 15.7279 5.25 12C5.25 8.27208 8.27208 5.25 12 5.25C15.7279 5.25 18.75 8.27208 18.75 12Z"
2867
2935
  })]
2868
2936
  }),
2869
- filter: u(g$3, {
2870
- children: u("path", {
2937
+ filter: u$1(g$3, {
2938
+ children: u$1("path", {
2871
2939
  d: "M19.25 7H4.75V8.5L10.25 12.25V17.5H13.75V12.25L19.25 8.5V7Z"
2872
2940
  })
2873
2941
  }),
2874
- globe: u(g$3, {
2875
- children: [u("path", {
2942
+ globe: u$1(g$3, {
2943
+ children: [u$1("path", {
2876
2944
  d: "M5 13.75H19"
2877
- }), u("path", {
2945
+ }), u$1("path", {
2878
2946
  d: "M5 10.25H19"
2879
- }), u("path", {
2947
+ }), u$1("path", {
2880
2948
  d: "M12 4.75C15.5 9.25 15.5 14.75 12.0001 19.25C8.50012 14.75 8.50005 9.25 12 4.75Z"
2881
- }), u("circle", {
2949
+ }), u$1("circle", {
2882
2950
  cx: "12",
2883
2951
  cy: "12",
2884
2952
  r: "7.25"
2885
2953
  })]
2886
2954
  }),
2887
- magnifier: u(g$3, {
2888
- children: [u("path", {
2955
+ magnifier: u$1(g$3, {
2956
+ children: [u$1("path", {
2889
2957
  d: "M15.5659 15.5659C14.4875 16.6442 13.025 17.25 11.5 17.25C9.97501 17.25 8.51247 16.6442 7.43414 15.5659C6.3558 14.4875 5.75 13.025 5.75 11.5C5.75 9.97501 6.3558 8.51247 7.43414 7.43414C8.51247 6.3558 9.97501 5.75 11.5 5.75C13.025 5.75 14.4875 6.3558 15.5659 7.43414C16.6442 8.51247 17.25 9.97501 17.25 11.5C17.25 13.025 16.6442 14.4875 15.5659 15.5659L15.5659 15.5659Z"
2890
- }), u("path", {
2958
+ }), u$1("path", {
2891
2959
  d: "M11.5 8.75C11.8611 8.75 12.2187 8.82113 12.5524 8.95933C12.886 9.09753 13.1892 9.3001 13.4445 9.55546C13.6999 9.81082 13.9025 10.114 14.0407 10.4476C14.1789 10.7813 14.25 11.1389 14.25 11.5"
2892
- }), u("path", {
2960
+ }), u$1("path", {
2893
2961
  d: "M16 16L19 19"
2894
2962
  })]
2895
2963
  }),
2896
- mapPin: u(g$3, {
2897
- children: u(g$3, {
2898
- children: [u("circle", {
2964
+ mapPin: u$1(g$3, {
2965
+ children: u$1(g$3, {
2966
+ children: [u$1("circle", {
2899
2967
  cx: "12",
2900
2968
  cy: "9",
2901
2969
  r: "2"
2902
- }), u("path", {
2970
+ }), u$1("path", {
2903
2971
  d: "M16.2426 16.8358C17.0818 17.1155 17.6532 17.4719 17.8847 17.8598C18.1162 18.2478 17.9974 18.6499 17.5433 19.0154C17.0892 19.3808 16.3201 19.6932 15.3334 19.9129C14.3467 20.1327 13.1867 20.25 12 20.25C10.8133 20.25 9.65327 20.1327 8.66658 19.9129C7.67988 19.6932 6.91085 19.3808 6.45672 19.0154C6.0026 18.6499 5.88378 18.2478 6.11529 17.8598C6.3468 17.4719 6.91825 17.1155 7.75736 16.8358"
2904
- }), u("path", {
2972
+ }), u$1("path", {
2905
2973
  d: "M17.25 9C17.25 13.3995 12 16.75 12 16.75C12 16.75 6.75 13.3995 6.75 9C6.75 6.10051 9.10051 3.75 12 3.75C14.8995 3.75 17.25 6.10051 17.25 9Z"
2906
2974
  })]
2907
2975
  })
2908
2976
  }),
2909
- sunset: u(g$3, {
2910
- children: [u("path", {
2977
+ sunset: u$1(g$3, {
2978
+ children: [u$1("path", {
2911
2979
  d: "M18.5 8.5L17.5 9.5"
2912
- }), u("path", {
2980
+ }), u$1("path", {
2913
2981
  d: "M5.5 8.5L6.5 9.5"
2914
- }), u("path", {
2982
+ }), u$1("path", {
2915
2983
  d: "M12 6L12 7.5"
2916
- }), u("path", {
2984
+ }), u$1("path", {
2917
2985
  d: "M7.5 15.25L7.5 14.25C7.5 13.6591 7.6164 13.0739 7.84254 12.5279C8.06869 11.982 8.40016 11.4859 8.81802 11.068C9.23588 10.6502 9.73196 10.3187 10.2779 10.0925C10.8239 9.8664 11.4091 9.75 12 9.75C12.5909 9.75 13.1761 9.8664 13.7221 10.0925C14.268 10.3187 14.7641 10.6502 15.182 11.068C15.5998 11.4859 15.9313 11.982 16.1575 12.5279C16.3836 13.0739 16.5 13.6591 16.5 14.25V15.25"
2918
- }), u("path", {
2986
+ }), u$1("path", {
2919
2987
  d: "M20.25 15.25H12H3.75"
2920
- }), u("path", {
2988
+ }), u$1("path", {
2921
2989
  d: "M16.25 18.25H12L7.75 18.25"
2922
2990
  })]
2923
2991
  }),
2924
- x: u("path", {
2992
+ x: u$1("path", {
2925
2993
  d: "M8 8l8 8M8 16l8 -8"
2926
2994
  }),
2927
- "chevron-right": u("path", {
2995
+ "chevron-right": u$1("path", {
2928
2996
  d: "M11 8L15 12L11 16"
2929
2997
  })
2930
2998
  };
2931
2999
  const IconSpritesheet = ({
2932
3000
  theme
2933
3001
  }) => {
2934
- return u("svg", {
3002
+ return u$1("svg", {
2935
3003
  xmlns: "http://www.w3.org/2000/svg",
2936
3004
  style: {
2937
3005
  display: "none"
2938
3006
  },
2939
- children: u("defs", {
2940
- children: Object.entries(icons).map(([name, icon]) => u("symbol", {
3007
+ children: u$1("defs", {
3008
+ children: Object.entries(icons).map(([name, icon]) => u$1("symbol", {
2941
3009
  id: `i-icon-${name}`,
2942
- children: u("g", {
3010
+ children: u$1("g", {
2943
3011
  fill: "none",
2944
3012
  "stroke-width": theme.mode === "dark" && theme.highcontrast != true ? "1" : "1.5",
2945
3013
  "stroke-linecap": "round",
@@ -2955,12 +3023,12 @@ const Icon = ({
2955
3023
  name,
2956
3024
  ...props
2957
3025
  }) => {
2958
- return u("svg", {
3026
+ return u$1("svg", {
2959
3027
  viewBox: "0 0 24 24",
2960
3028
  width: 24,
2961
3029
  height: 24,
2962
3030
  ...props,
2963
- children: u("use", {
3031
+ children: u$1("use", {
2964
3032
  href: `#i-icon-${name}`
2965
3033
  })
2966
3034
  });
@@ -3030,7 +3098,7 @@ const Filter = ({
3030
3098
  const selectedValues = getSelectedValues(current);
3031
3099
  const hasValue = selectedValues.length > 0;
3032
3100
  const showClearButton = hasValue && active == false;
3033
- return u("section", {
3101
+ return u$1("section", {
3034
3102
  "data-filter-key": filterKey,
3035
3103
  role: "tab",
3036
3104
  "aria-label": title,
@@ -3038,24 +3106,24 @@ const Filter = ({
3038
3106
  class: wrapperClass$1({
3039
3107
  hasValue
3040
3108
  }),
3041
- children: [u("div", {
3109
+ children: [u$1("div", {
3042
3110
  class: "w-full min-w-0 flex-1",
3043
- children: [u("button", {
3111
+ children: [u$1("button", {
3044
3112
  "aria-label": active ? "Close filter" : "Open filter",
3045
3113
  class: "ease-expo-out fr rounded-section flex w-full items-center gap-2 px-4 py-4 transition-all duration-300",
3046
3114
  onClick: () => onActiveChange(!active),
3047
- children: [u(Icon, {
3115
+ children: [u$1(Icon, {
3048
3116
  class: iconClass({
3049
3117
  hasValue
3050
3118
  }),
3051
3119
  name: icon
3052
- }), u("p", {
3120
+ }), u$1("p", {
3053
3121
  class: textClass({
3054
3122
  hasValue
3055
3123
  }),
3056
3124
  children: title
3057
3125
  })]
3058
- }), u(FilterInner, {
3126
+ }), u$1(FilterInner, {
3059
3127
  active,
3060
3128
  current,
3061
3129
  onValueChange,
@@ -3064,13 +3132,13 @@ const Filter = ({
3064
3132
  onSkip,
3065
3133
  state
3066
3134
  })]
3067
- }), showClearButton && u("div", {
3135
+ }), showClearButton && u$1("div", {
3068
3136
  class: "flex flex-none items-center justify-center p-4",
3069
- children: u("button", {
3137
+ children: u$1("button", {
3070
3138
  "aria-label": "Clear",
3071
3139
  class: "fr touch-hitbox ease-expo-out hover:bg-interactive-accent-bg-hover text-interactive-accent-text rounded-interactive relative cursor-pointer p-1 transition-all duration-300 active:scale-95",
3072
3140
  onClick: () => onValueChange(void 0),
3073
- children: u(Icon, {
3141
+ children: u$1(Icon, {
3074
3142
  name: "x"
3075
3143
  })
3076
3144
  })
@@ -3100,32 +3168,32 @@ const FilterInner = ({
3100
3168
  const selectedValues = getSelectedValues(internalValue);
3101
3169
  const hasValue = selectedValues.length > 0;
3102
3170
  if (active)
3103
- return u("div", {
3171
+ return u$1("div", {
3104
3172
  class: "-mt-4 pt-2",
3105
- children: [state === "loading" ? u("div", {
3173
+ children: [state === "loading" ? u$1("div", {
3106
3174
  class: "flex px-4 pb-1 pt-2",
3107
- children: u("div", {
3175
+ children: u$1("div", {
3108
3176
  "aria-hidden": true,
3109
3177
  class: tagClass$1({
3110
3178
  size: "lg",
3111
3179
  active: false,
3112
3180
  class: "animate-skeleton"
3113
3181
  }),
3114
- children: u("span", {
3182
+ children: u$1("span", {
3115
3183
  class: "inline-block w-[10ch]"
3116
3184
  })
3117
3185
  })
3118
- }) : u("ul", {
3186
+ }) : u$1("ul", {
3119
3187
  "aria-label": "Filter options",
3120
3188
  class: "hide-scrollbars flex select-none gap-1.5 overflow-x-auto px-4 pb-1 pt-2",
3121
3189
  children: suggestions.map((suggestion, k2) => {
3122
3190
  const active2 = selectedValues.includes(suggestion.value);
3123
- return u("li", {
3191
+ return u$1("li", {
3124
3192
  style: {
3125
3193
  animationDelay: k2 * 0.01 + "s"
3126
3194
  },
3127
3195
  class: "animate-appear-tag origin-top",
3128
- children: u("button", {
3196
+ children: u$1("button", {
3129
3197
  "data-filter": true,
3130
3198
  "data-current-value": active2 ? "true" : void 0,
3131
3199
  onClick: () => {
@@ -3160,9 +3228,9 @@ const FilterInner = ({
3160
3228
  })
3161
3229
  }, suggestion.value);
3162
3230
  })
3163
- }), u("div", {
3231
+ }), u$1("div", {
3164
3232
  class: "flex justify-end p-2",
3165
- children: u("button", {
3233
+ children: u$1("button", {
3166
3234
  class: btnNextClass({
3167
3235
  hasValue
3168
3236
  }),
@@ -3172,26 +3240,26 @@ const FilterInner = ({
3172
3240
  }
3173
3241
  onSkip();
3174
3242
  },
3175
- children: [hasValue ? "Done" : "Skip", " ", u(Icon, {
3243
+ children: [hasValue ? "Done" : "Skip", " ", u$1(Icon, {
3176
3244
  name: "chevron-right"
3177
3245
  })]
3178
3246
  }, hasValue ? "done" : "skip")
3179
3247
  })]
3180
3248
  });
3181
3249
  if (hasValue)
3182
- return u("button", {
3250
+ return u$1("button", {
3183
3251
  "aria-label": "Current value",
3184
3252
  tabIndex: -1,
3185
3253
  "data-current-value": "true",
3186
3254
  ref: currentRef,
3187
3255
  class: "fr -mt-4 w-full select-none overflow-hidden px-4 pb-4 pt-2 focus:outline-none",
3188
3256
  onClick: () => onActiveChange(true),
3189
- children: u("ul", {
3257
+ children: u$1("ul", {
3190
3258
  class: "flex flex-wrap gap-1",
3191
3259
  children: suggestions.filter((s2) => selectedValues.includes(s2.value)).map((suggestion) => {
3192
- return u("li", {
3260
+ return u$1("li", {
3193
3261
  class: "animate-selected-tag block max-w-full",
3194
- children: u("span", {
3262
+ children: u$1("span", {
3195
3263
  class: tagClass$1({
3196
3264
  size: "sm",
3197
3265
  active: true
@@ -3230,6 +3298,75 @@ const useFilterKeyboardFocus = (activeKey, ref) => {
3230
3298
  focusFirstAvailableOption(keyToFocus, ref);
3231
3299
  }, [activeKey, previousActiveKey, ref]);
3232
3300
  };
3301
+ const filterIcons = {
3302
+ contract_type: "clock",
3303
+ title: "magnifier",
3304
+ city: "mapPin",
3305
+ town: "mapPin",
3306
+ address_1: "mapPin",
3307
+ address_2: "mapPin",
3308
+ country: "mapPin",
3309
+ company_name: "briefcase",
3310
+ category: "briefcase"
3311
+ };
3312
+ const FilterSection = ({
3313
+ properties,
3314
+ values,
3315
+ availableProperties,
3316
+ onFilterValueChange,
3317
+ state,
3318
+ parentRef
3319
+ }) => {
3320
+ var _a;
3321
+ const [activeKey, setActiveKey] = h((_a = properties[0]) == null ? void 0 : _a.key);
3322
+ useFilterKeyboardFocus(activeKey, parentRef);
3323
+ return u$1("div", {
3324
+ role: "tablist",
3325
+ class: "grid items-stretch gap-2 px-4 md:flex md:flex-col md:px-0",
3326
+ children: properties.map((property) => {
3327
+ var _a2;
3328
+ return u$1(ErrorBoundary, {
3329
+ Fallback,
3330
+ children: u$1(Filter, {
3331
+ icon: property.icon ?? filterIcons[property.key] ?? "filter",
3332
+ filterKey: property.key,
3333
+ title: property.label,
3334
+ suggestions: ((_a2 = availableProperties == null ? void 0 : availableProperties[property.key]) == null ? void 0 : _a2.map((property2) => ({
3335
+ label: property2,
3336
+ value: property2
3337
+ }))) ?? [],
3338
+ onActiveChange: (active) => setActiveKey(active ? property.key : void 0),
3339
+ active: activeKey === property.key,
3340
+ current: values[property.key] ?? {
3341
+ select: property.select,
3342
+ value: void 0
3343
+ },
3344
+ state,
3345
+ onValueChange: (value) => {
3346
+ const newState = onFilterValueChange(property, value, activeKey);
3347
+ setActiveKey(newState.newActiveKey);
3348
+ },
3349
+ onSkip: () => {
3350
+ var _a3;
3351
+ const currentIndex = properties.findIndex((p2) => p2.key === activeKey);
3352
+ const nextPropertyKey = currentIndex !== -1 ? (_a3 = properties[currentIndex + 1]) == null ? void 0 : _a3.key : void 0;
3353
+ setActiveKey(nextPropertyKey);
3354
+ }
3355
+ })
3356
+ }, property.key);
3357
+ })
3358
+ });
3359
+ };
3360
+ const SkeletonText = ({
3361
+ chars
3362
+ }) => {
3363
+ return u$1("span", {
3364
+ style: {
3365
+ width: chars + "ch"
3366
+ },
3367
+ class: "rounded-job-tag block h-[1lh] bg-[currentColor] opacity-25"
3368
+ });
3369
+ };
3233
3370
  const wrapperClass = cva({
3234
3371
  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-500"
3235
3372
  });
@@ -3251,63 +3388,118 @@ const tagClass = cva({
3251
3388
  const JobCard = ({
3252
3389
  job
3253
3390
  }) => {
3254
- return u("a", {
3391
+ return u$1("a", {
3255
3392
  href: "",
3256
3393
  class: wrapperClass(),
3257
- children: [u("div", {
3394
+ children: [u$1("div", {
3258
3395
  class: "flex flex-1 flex-col gap-4",
3259
- children: [u("div", {
3396
+ children: [u$1("div", {
3260
3397
  class: "flex flex-col items-start gap-1",
3261
- children: [job.isNew ? u("span", {
3398
+ children: [job.isNew ? u$1("span", {
3262
3399
  class: badgeClass(),
3263
3400
  children: "NEW"
3264
- }) : u("p", {
3401
+ }) : u$1("p", {
3265
3402
  class: "text-style-job-card-info text-copy-job-info",
3266
3403
  children: ["Posted ", job.relativePostedDate]
3267
- }), u("div", {
3404
+ }), u$1("div", {
3268
3405
  class: "flex flex-col gap-1",
3269
- children: [u("p", {
3270
- class: "text-style-job-card-title text-copy-neutral",
3406
+ children: [u$1("p", {
3407
+ class: "text-style-job-heading font-style-job-heading font-weight-job-heading text-copy-neutral font-family-job-heading",
3271
3408
  children: job.title
3272
- }), u("p", {
3409
+ }), u$1("p", {
3273
3410
  class: "text-style-job-card text-copy-neutral-lowcontrast",
3274
3411
  children: job.company.name
3275
3412
  })]
3276
3413
  })]
3277
- }), u("div", {
3414
+ }), u$1("div", {
3278
3415
  class: "flex flex-col items-start gap-2",
3279
- children: [job.pay && u("span", {
3416
+ children: [job.pay && u$1("span", {
3280
3417
  class: tagClass({
3281
3418
  colorScheme: "monetary"
3282
3419
  }),
3283
3420
  children: job.pay
3284
- }), u("div", {
3421
+ }), u$1("div", {
3285
3422
  class: "flex items-center gap-2",
3286
- children: job.contractType && u("span", {
3423
+ children: job.contractType && u$1("span", {
3287
3424
  class: tagClass(),
3288
3425
  children: job.contractType
3289
3426
  })
3290
3427
  })]
3291
3428
  })]
3292
- }), u("div", {
3429
+ }), u$1("div", {
3293
3430
  class: "flex items-center",
3294
- children: u(Icon, {
3431
+ children: u$1(Icon, {
3295
3432
  name: "chevron-right",
3296
3433
  class: "text-copy-neutral-icon"
3297
3434
  })
3298
3435
  })]
3299
3436
  });
3300
3437
  };
3301
- const filterIcons = {
3302
- contract_type: "clock",
3303
- title: "magnifier",
3304
- city: "mapPin",
3305
- town: "mapPin",
3306
- address_1: "mapPin",
3307
- address_2: "mapPin",
3308
- country: "mapPin",
3309
- company_name: "briefcase",
3310
- category: "briefcase"
3438
+ const JobCardSkeleton = ({
3439
+ animationDelay,
3440
+ seed
3441
+ }) => {
3442
+ return u$1("div", {
3443
+ "aria-hidden": true,
3444
+ style: {
3445
+ animationDelay: animationDelay + "s"
3446
+ },
3447
+ class: wrapperClass({
3448
+ class: "animate-skeleton"
3449
+ }),
3450
+ children: [u$1("div", {
3451
+ class: "flex flex-1 flex-col gap-4",
3452
+ children: [u$1("div", {
3453
+ class: "flex flex-col items-start gap-1",
3454
+ children: [u$1("p", {
3455
+ class: "text-style-job-card-info text-copy-job-info",
3456
+ children: u$1(SkeletonText, {
3457
+ chars: 12
3458
+ })
3459
+ }), u$1("div", {
3460
+ class: "flex flex-col gap-1",
3461
+ children: [u$1("p", {
3462
+ class: "text-style-job-heading font-style-job-heading font-weight-job-heading text-copy-neutral font-family-job-heading",
3463
+ children: u$1(SkeletonText, {
3464
+ chars: 13 + (seed + 5) * seed % 7
3465
+ })
3466
+ }), u$1("p", {
3467
+ class: "text-style-job-card text-copy-neutral-lowcontrast",
3468
+ children: u$1(SkeletonText, {
3469
+ chars: 7 + seed * seed % 3
3470
+ })
3471
+ })]
3472
+ })]
3473
+ }), u$1("div", {
3474
+ class: "flex flex-col items-start gap-2",
3475
+ children: [seed % 2 === 0 && u$1("span", {
3476
+ class: tagClass({
3477
+ colorScheme: "default",
3478
+ class: "h-[1lh] w-[10ch]"
3479
+ })
3480
+ }), u$1("div", {
3481
+ class: "flex items-center gap-2",
3482
+ children: [u$1("span", {
3483
+ class: tagClass({
3484
+ colorScheme: "default",
3485
+ class: "h-[1lh] w-[6ch]"
3486
+ })
3487
+ }), u$1("span", {
3488
+ class: tagClass({
3489
+ colorScheme: "default",
3490
+ class: "h-[1lh] w-[8ch]"
3491
+ })
3492
+ })]
3493
+ })]
3494
+ })]
3495
+ }), u$1("div", {
3496
+ class: "flex items-center",
3497
+ children: u$1(Icon, {
3498
+ name: "chevron-right",
3499
+ class: "text-copy-neutral-icon"
3500
+ })
3501
+ })]
3502
+ });
3311
3503
  };
3312
3504
  const propertiesToDefaultValues = (properties) => properties.reduce((acc, property) => {
3313
3505
  switch (property.select) {
@@ -3378,12 +3570,12 @@ const JobSearch = ({
3378
3570
  logger,
3379
3571
  params
3380
3572
  }) => {
3381
- var _a;
3382
3573
  const appRef = _(null);
3383
3574
  const [values, setValues] = h(() => propertiesToDefaultValues(params.properties));
3384
3575
  const {
3385
3576
  data,
3386
- isLoading
3577
+ isLoading,
3578
+ error
3387
3579
  } = useSWR(JSON.stringify(values), () => getJobSearchResults({
3388
3580
  apiClient,
3389
3581
  logger,
@@ -3394,81 +3586,119 @@ const JobSearch = ({
3394
3586
  revalidateOnReconnect: false,
3395
3587
  revalidateIfStale: false
3396
3588
  });
3589
+ if (error) {
3590
+ console.log(error.message);
3591
+ }
3397
3592
  const availableProperties = data == null ? void 0 : data.data.available_properties;
3398
- const [activeKey, setActiveKey] = h((_a = params.properties[0]) == null ? void 0 : _a.key);
3399
- useFilterKeyboardFocus(activeKey, appRef);
3400
- return u(g$3, {
3401
- children: [u(IconSpritesheet, {
3593
+ const dataState = (() => {
3594
+ if (isLoading && !data)
3595
+ return {
3596
+ state: "loading",
3597
+ data: void 0
3598
+ };
3599
+ if (!isLoading && data && data.pagination.total === 0)
3600
+ return {
3601
+ state: "loadedEmpty",
3602
+ data
3603
+ };
3604
+ if (!isLoading && data)
3605
+ return {
3606
+ state: "loaded",
3607
+ data
3608
+ };
3609
+ return {
3610
+ state: "idle",
3611
+ data: void 0
3612
+ };
3613
+ })();
3614
+ return u$1(g$3, {
3615
+ children: [u$1(IconSpritesheet, {
3402
3616
  theme: params.theme
3403
- }), u("div", {
3617
+ }), u$1("div", {
3404
3618
  ref: appRef,
3405
3619
  id: JOB_SEARCH_SCOPE_ELEMENT_ID,
3406
- children: u("div", {
3407
- class: "bg-app 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",
3408
- children: [u("div", {
3409
- role: "tablist",
3410
- class: "grid items-stretch gap-2 px-4 md:flex md:flex-col md:px-0",
3411
- children: params.properties.filter((p2) => !p2.hidden).map((property) => {
3412
- var _a2;
3413
- return u(Filter, {
3414
- icon: property.icon ?? filterIcons[property.key] ?? "filter",
3415
- filterKey: property.key,
3416
- title: property.label,
3417
- suggestions: ((_a2 = availableProperties == null ? void 0 : availableProperties[property.key]) == null ? void 0 : _a2.map((property2) => ({
3418
- label: property2,
3419
- value: property2
3420
- }))) ?? [],
3421
- onActiveChange: (active) => setActiveKey(active ? property.key : void 0),
3422
- active: activeKey === property.key,
3423
- current: values[property.key] ?? {
3424
- select: property.select,
3425
- value: void 0
3426
- },
3427
- state: isLoading && !(data == null ? void 0 : data.data.available_properties) ? "loading" : "loaded",
3428
- onValueChange: (value) => {
3429
- const {
3430
- newActiveKey,
3431
- newValue
3432
- } = nextStateFromValue({
3433
- property,
3434
- activeKey,
3435
- value,
3436
- properties: params.properties,
3437
- values
3438
- });
3439
- setActiveKey(newActiveKey);
3440
- setValues({
3441
- ...values,
3442
- [property.key]: newValue
3443
- });
3444
- },
3445
- onSkip: () => {
3446
- var _a3;
3447
- const currentIndex = params.properties.findIndex((p2) => p2.key === activeKey);
3448
- const nextPropertyKey = currentIndex !== -1 ? (_a3 = params.properties[currentIndex + 1]) == null ? void 0 : _a3.key : void 0;
3449
- setActiveKey(nextPropertyKey);
3450
- }
3451
- }, property.key);
3620
+ children: u$1("div", {
3621
+ 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",
3622
+ children: [u$1(ErrorBoundary, {
3623
+ Fallback,
3624
+ children: u$1(FilterSection, {
3625
+ onFilterValueChange: (property, value, activeKey) => {
3626
+ const {
3627
+ newActiveKey,
3628
+ newValue
3629
+ } = nextStateFromValue({
3630
+ property,
3631
+ activeKey,
3632
+ value,
3633
+ properties: params.properties,
3634
+ values
3635
+ });
3636
+ setValues({
3637
+ ...values,
3638
+ [property.key]: newValue
3639
+ });
3640
+ return {
3641
+ newActiveKey,
3642
+ newValue
3643
+ };
3644
+ },
3645
+ availableProperties,
3646
+ values,
3647
+ properties: params.properties,
3648
+ state: isLoading && !(data == null ? void 0 : data.data.available_properties) ? "loading" : "loaded",
3649
+ parentRef: appRef
3452
3650
  })
3453
- }), u("section", {
3651
+ }), u$1("div", {
3454
3652
  class: "md:col-span-2",
3455
- children: u("div", {
3653
+ children: u$1("section", {
3456
3654
  class: "bg-section-strong-bg ring-section-weak-stroke rounded-section ring-px lg:ring-width-section flex flex-col gap-4 p-4",
3457
- children: [data && u("p", {
3458
- class: "text-copy-accent-lowcontrast text-center",
3459
- children: resultCountString(data.pagination.total)
3460
- }), u("ul", {
3461
- class: "flex flex-col gap-3",
3462
- children: data == null ? void 0 : data.data.results.map((job) => {
3463
- return u("li", {
3464
- children: u(JobCard, {
3465
- job
3655
+ children: [dataState.state === "loading" && u$1(g$3, {
3656
+ children: [u$1("p", {
3657
+ class: "text-copy-accent-lowcontrast text-style-tag text-copy-job-info animate-skeleton m-0 self-center p-0",
3658
+ children: u$1(SkeletonText, {
3659
+ chars: 8
3660
+ })
3661
+ }), u$1("ul", {
3662
+ class: "flex flex-col gap-3",
3663
+ "aria-hidden": true,
3664
+ children: Array.from({
3665
+ length: 4
3666
+ }).map((_2, i2) => u$1("li", {
3667
+ children: u$1(JobCardSkeleton, {
3668
+ seed: i2,
3669
+ animationDelay: (i2 - 4) * 0.1
3466
3670
  })
3467
- }, job.id);
3468
- })
3469
- }), u("p", {
3470
- class: "text-copy-accent-lowcontrast text-style-job-card-info text-center",
3471
- children: "You've reached the end of the list."
3671
+ }, i2))
3672
+ })]
3673
+ }), dataState.state === "loadedEmpty" && u$1("div", {
3674
+ class: "mx-auto flex max-w-[70%] flex-col items-center gap-2 py-4 text-center",
3675
+ children: [u$1(Icon, {
3676
+ name: "magnifier",
3677
+ class: "text-copy-accent-lowcontrast"
3678
+ }), u$1("div", {
3679
+ class: "flex flex-col items-center gap-1",
3680
+ children: [u$1("p", {
3681
+ class: "text-copy-accent",
3682
+ children: "No jobs found"
3683
+ }), u$1("p", {
3684
+ class: "text-copy-accent-lowcontrast text-style-tag",
3685
+ children: "We could not find any jobs matching your filtering criteria."
3686
+ })]
3687
+ })]
3688
+ }), dataState.state === "loaded" && u$1(g$3, {
3689
+ children: [u$1("p", {
3690
+ class: "text-copy-accent-lowcontrast text-style-tag m-0 p-0 text-center",
3691
+ children: resultCountString(dataState.data.pagination.total)
3692
+ }), u$1("ul", {
3693
+ class: "flex flex-col gap-3",
3694
+ children: dataState.data.data.results.map((job) => {
3695
+ return u$1("li", {
3696
+ children: u$1(JobCard, {
3697
+ job
3698
+ })
3699
+ }, job.id);
3700
+ })
3701
+ })]
3472
3702
  })]
3473
3703
  })
3474
3704
  })]
@@ -3476,7 +3706,7 @@ const JobSearch = ({
3476
3706
  })]
3477
3707
  });
3478
3708
  };
3479
- const tailwind = "#ijs {\n font-size: 16px;\n font-family: sans-serif;\n --tw-content: '';\n font-family:\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n Segoe UI,\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n Open Sans,\n Helvetica Neue,\n sans-serif;\n}\n\n #ijs * {\n box-sizing: border-box;\n border-style: solid;\n border-width: 0;\n -webkit-tap-highlight-color: transparent;\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 display: block;\n margin: 0;\n padding: 0;\n border: unset;\n background: unset;\n text-align: unset;\n }\n\n #ijs :is(svg) {\n display: block;\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 .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 .isolate {\n isolation: isolate;\n}\n\n #ijs .m-2 {\n margin: 0.5rem;\n}\n\n #ijs .m-9 {\n margin: 2.25rem;\n}\n\n #ijs .mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n #ijs .-mt-4 {\n margin-top: -1rem;\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 .min-h-screen {\n min-height: 100vh;\n}\n\n #ijs .w-\\[10ch\\] {\n width: 10ch;\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 .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-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 0.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 0.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 #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 .items-start {\n align-items: flex-start;\n}\n\n #ijs .items-center {\n align-items: center;\n}\n\n #ijs .items-stretch {\n align-items: stretch;\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-1\\.5 {\n gap: 0.375rem;\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 .overflow-hidden {\n overflow: hidden;\n}\n\n #ijs .overflow-x-auto {\n overflow-x: auto;\n}\n\n #ijs .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n #ijs .whitespace-nowrap {\n white-space: nowrap;\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 {\n border-width: 1px;\n}\n\n #ijs .bg-app {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-app-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-job-card-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-job-card-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-section-strong-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-section-strong-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-section-weak-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-section-weak-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-accent-strong-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-accent-strong-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-monetary-weak-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-monetary-weak-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-neutral-strong-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-neutral-strong-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-neutral-weak-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-neutral-weak-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .p-1 {\n padding: 0.25rem;\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 .pb-1 {\n padding-bottom: 0.25rem;\n}\n\n #ijs .pb-4 {\n padding-bottom: 1rem;\n}\n\n #ijs .pl-3 {\n padding-left: 0.75rem;\n}\n\n #ijs .pr-1 {\n padding-right: 0.25rem;\n}\n\n #ijs .pt-2 {\n padding-top: 0.5rem;\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-filter {\n font-family: var(--i-font-filter);\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-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-card-title {\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-filter {\n font-weight: var(--i-weight-filter);\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 .text-copy-accent {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-accent) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-accent-icon {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-accent-icon) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-accent-lowcontrast {\n color: oklch(var(--i-copy-accent-lowcontrast) / 0.67);\n}\n\n #ijs .text-copy-job-info {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-info) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-neutral {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-neutral-icon {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-icon) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-neutral-lowcontrast {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-lowcontrast) / var(--tw-text-opacity));\n}\n\n #ijs .text-interactive-accent-text {\n --tw-text-opacity: 1;\n color: oklch(var(--i-interactive-accent-text) / var(--tw-text-opacity));\n}\n\n #ijs .text-interactive-neutral-text {\n --tw-text-opacity: 1;\n color: oklch(var(--i-interactive-neutral-text) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-accent-strong-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-accent-strong-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-monetary-weak-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-monetary-weak-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-neutral-strong-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-neutral-strong-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-neutral-weak-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-neutral-weak-copy) / var(--tw-text-opacity));\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 {\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-opacity: 1;\n --tw-ring-color: oklch(var(--i-job-card-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-section-strong-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-section-strong-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-section-weak-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-section-weak-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-tag-accent-strong-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-tag-accent-strong-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-tag-neutral-strong-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-tag-neutral-strong-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-tag-neutral-weak-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-tag-neutral-weak-stroke-color) / var(--tw-ring-opacity));\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 .duration-1000 {\n transition-duration: 1000ms;\n}\n\n #ijs .duration-300 {\n transition-duration: 300ms;\n}\n\n #ijs .duration-500 {\n transition-duration: 500ms;\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-filter {\n font-style: var(--i-style-filter);\n}\n\n #ijs .font-style-tag {\n font-style: var(--i-style-filter);\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-opacity: 1;\n --tw-ring-color: oklch(var(--i-a-7) / 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 .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 .hover\\:bg-interactive-accent-bg-hover:hover {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-interactive-accent-bg-hover) / var(--tw-bg-opacity));\n}\n\n #ijs .hover\\:bg-interactive-neutral-bg-hover:hover {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-interactive-neutral-bg-hover) / var(--tw-bg-opacity));\n}\n\n #ijs .focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\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\\:bg-job-card-bg-active:active {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-job-card-bg-active) / var(--tw-bg-opacity));\n}\n\n #ijs .active\\:ring-job-card-stroke-active:active {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-job-card-stroke-color-active) / var(--tw-ring-opacity));\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\\:flex {\n display: flex;\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\\:flex-col {\n flex-direction: column;\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";
3709
+ 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(svg) {\n display: block;\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 .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 .isolate {\n isolation: isolate;\n}\n\n #ijs .m-0 {\n margin: 0px;\n}\n\n #ijs .m-2 {\n margin: 0.5rem;\n}\n\n #ijs .m-9 {\n margin: 2.25rem;\n}\n\n #ijs .mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n #ijs .-mt-4 {\n margin-top: -1rem;\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-\\[70\\%\\] {\n max-width: 70%;\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 .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-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 0.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 0.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 #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 .items-start {\n align-items: flex-start;\n}\n\n #ijs .items-center {\n align-items: center;\n}\n\n #ijs .items-stretch {\n align-items: stretch;\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-1\\.5 {\n gap: 0.375rem;\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-x-auto {\n overflow-x: auto;\n}\n\n #ijs .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n #ijs .whitespace-nowrap {\n white-space: nowrap;\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 {\n border-width: 1px;\n}\n\n #ijs .bg-\\[currentColor\\] {\n background-color: currentColor;\n}\n\n #ijs .bg-app {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-app-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-job-card-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-job-card-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-section-strong-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-section-strong-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-section-weak-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-section-weak-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-accent-strong-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-accent-strong-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-monetary-weak-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-monetary-weak-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-neutral-strong-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-neutral-strong-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .bg-tag-neutral-weak-bg {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-tag-neutral-weak-bg) / var(--tw-bg-opacity));\n}\n\n #ijs .p-0 {\n padding: 0px;\n}\n\n #ijs .p-1 {\n padding: 0.25rem;\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 .pb-1 {\n padding-bottom: 0.25rem;\n}\n\n #ijs .pb-4 {\n padding-bottom: 1rem;\n}\n\n #ijs .pl-3 {\n padding-left: 0.75rem;\n}\n\n #ijs .pr-1 {\n padding-right: 0.25rem;\n}\n\n #ijs .pt-2 {\n padding-top: 0.5rem;\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-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-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 .text-copy-accent {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-accent) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-accent-icon {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-accent-icon) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-accent-lowcontrast {\n color: oklch(var(--i-copy-accent-lowcontrast) / 0.67);\n}\n\n #ijs .text-copy-job-info {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-info) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-neutral {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-neutral-icon {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-icon) / var(--tw-text-opacity));\n}\n\n #ijs .text-copy-neutral-lowcontrast {\n --tw-text-opacity: 1;\n color: oklch(var(--i-copy-lowcontrast) / var(--tw-text-opacity));\n}\n\n #ijs .text-interactive-accent-text {\n --tw-text-opacity: 1;\n color: oklch(var(--i-interactive-accent-text) / var(--tw-text-opacity));\n}\n\n #ijs .text-interactive-neutral-text {\n --tw-text-opacity: 1;\n color: oklch(var(--i-interactive-neutral-text) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-accent-strong-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-accent-strong-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-monetary-weak-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-monetary-weak-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-neutral-strong-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-neutral-strong-copy) / var(--tw-text-opacity));\n}\n\n #ijs .text-tag-neutral-weak-copy {\n --tw-text-opacity: 1;\n color: oklch(var(--i-tag-neutral-weak-copy) / var(--tw-text-opacity));\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 {\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-opacity: 1;\n --tw-ring-color: oklch(var(--i-job-card-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-section-strong-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-section-strong-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-section-weak-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-section-weak-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-tag-accent-strong-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-tag-accent-strong-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-tag-neutral-strong-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-tag-neutral-strong-stroke-color) / var(--tw-ring-opacity));\n}\n\n #ijs .ring-tag-neutral-weak-stroke {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-tag-neutral-weak-stroke-color) / var(--tw-ring-opacity));\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 .duration-1000 {\n transition-duration: 1000ms;\n}\n\n #ijs .duration-300 {\n transition-duration: 300ms;\n}\n\n #ijs .duration-500 {\n transition-duration: 500ms;\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-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 .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-opacity: 1;\n --tw-ring-color: oklch(var(--i-a-7) / 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 .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 .hover\\:bg-interactive-accent-bg-hover:hover {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-interactive-accent-bg-hover) / var(--tw-bg-opacity));\n}\n\n #ijs .hover\\:bg-interactive-neutral-bg-hover:hover {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-interactive-neutral-bg-hover) / var(--tw-bg-opacity));\n}\n\n #ijs .focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\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\\:bg-job-card-bg-active:active {\n --tw-bg-opacity: 1;\n background-color: oklch(var(--i-job-card-bg-active) / var(--tw-bg-opacity));\n}\n\n #ijs .active\\:ring-job-card-stroke-active:active {\n --tw-ring-opacity: 1;\n --tw-ring-color: oklch(var(--i-job-card-stroke-color-active) / var(--tw-ring-opacity));\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\\:flex {\n display: flex;\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\\:flex-col {\n flex-direction: column;\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";
3480
3710
  const match = (m2) => {
3481
3711
  const patterns = [];
3482
3712
  const i2 = (m22) => ({
@@ -6730,7 +6960,7 @@ const generateColorThemeVars = (theme) => {
6730
6960
  };
6731
6961
  const transparent = "transparent";
6732
6962
  const generateTokenVars = (theme, color) => {
6733
- var _a, _b, _c, _d, _e, _f, _g, _h, _i2;
6963
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i2, _j, _k;
6734
6964
  const {
6735
6965
  typography,
6736
6966
  highcontrast,
@@ -6738,16 +6968,19 @@ const generateTokenVars = (theme, color) => {
6738
6968
  } = theme;
6739
6969
  return {
6740
6970
  font: typography.font_family ?? "inherit",
6741
- "font-style": typography.style ?? "normal",
6971
+ "font-style": typography.style ?? "inherit",
6742
6972
  "font-filter": ((_a = typography.filter) == null ? void 0 : _a.font_family) ?? typography.font_family ?? "inherit",
6743
6973
  "font-job-heading": ((_b = theme.typography.job_heading) == null ? void 0 : _b.font_family) ?? theme.typography.font_family ?? "inherit",
6744
6974
  "font-tag": ((_c = typography.tag) == null ? void 0 : _c.font_family) ?? typography.font_family ?? "inherit",
6745
- "style-filter": ((_d = typography.filter) == null ? void 0 : _d.style) ?? typography.style ?? "normal",
6746
- "weight-filter": ((_e = typography.filter) == null ? void 0 : _e.weight) ?? typography.weight ?? "normal",
6747
- "style-tag": ((_f = typography.tag) == null ? void 0 : _f.style) ?? typography.style ?? "normal",
6748
- "weight-tag": ((_g = typography.tag) == null ? void 0 : _g.weight) ?? typography.weight ?? "normal",
6749
- "style-input": ((_h = typography.input) == null ? void 0 : _h.style) ?? typography.style ?? "normal",
6750
- "weight-input": ((_i2 = typography.input) == null ? void 0 : _i2.weight) ?? typography.weight ?? "normal",
6975
+ "weight-default": typography.weight ?? "inherit",
6976
+ "style-filter": ((_d = typography.filter) == null ? void 0 : _d.style) ?? typography.style ?? "inherit",
6977
+ "weight-filter": ((_e = typography.filter) == null ? void 0 : _e.weight) ?? typography.weight ?? "inherit",
6978
+ "style-tag": ((_f = typography.tag) == null ? void 0 : _f.style) ?? typography.style ?? "inherit",
6979
+ "style-job-heading": ((_g = typography.job_heading) == null ? void 0 : _g.style) ?? typography.style ?? "inherit",
6980
+ "weight-tag": ((_h = typography.tag) == null ? void 0 : _h.weight) ?? typography.weight ?? "inherit",
6981
+ "weight-job-heading": ((_i2 = typography.job_heading) == null ? void 0 : _i2.weight) ?? typography.weight ?? "inherit",
6982
+ "style-input": ((_j = typography.input) == null ? void 0 : _j.style) ?? typography.style ?? "inherit",
6983
+ "weight-input": ((_k = typography.input) == null ? void 0 : _k.weight) ?? typography.weight ?? "inherit",
6751
6984
  "app-bg": color.lowest,
6752
6985
  copy: highcontrast ? color["n-12"] : color["n-11"],
6753
6986
  "copy-lowcontrast": highcontrast ? color["n-9"] : color["n-8"],
@@ -6894,7 +7127,9 @@ const jobSearchPlugin = (params) => sdk.createPlugin(({
6894
7127
  }, tailwind), y$2("style", {
6895
7128
  id: "inploi-job-search-theme"
6896
7129
  }, generateColorThemeCss(params.theme))];
6897
- const App = y$2(g$3, {}, [styleElements, y$2(JobSearch, {
7130
+ const App = y$2(ErrorBoundary, {
7131
+ Fallback
7132
+ }, [styleElements, y$2(JobSearch, {
6898
7133
  params,
6899
7134
  apiClient,
6900
7135
  logger,
@@ -6905,7 +7140,7 @@ const jobSearchPlugin = (params) => sdk.createPlugin(({
6905
7140
  * Useful when server-side rendering to avoid CLS.
6906
7141
  */
6907
7142
  renderToString: () => {
6908
- return b$1(App);
7143
+ return b$1(y$2(g$3, {}, App));
6909
7144
  },
6910
7145
  /** Renders the Job Search Plugin inside the container element. */
6911
7146
  render: async () => {