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