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