@next-degree/pickle-shared-js 0.13.7 → 0.14.1
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/dist/{chunk-ZZCTMR2F.cjs → chunk-2YUUVN7E.cjs} +3 -3
- package/dist/{chunk-ZZCTMR2F.cjs.map → chunk-2YUUVN7E.cjs.map} +1 -1
- package/dist/{chunk-IJV66D4K.cjs → chunk-46EFOSND.cjs} +2 -11
- package/dist/chunk-46EFOSND.cjs.map +1 -0
- package/dist/{chunk-7NP3NX67.cjs → chunk-4BGH2D62.cjs} +10 -10
- package/dist/chunk-4BGH2D62.cjs.map +1 -0
- package/dist/{chunk-YVKKQOTE.cjs → chunk-4FETL23S.cjs} +17 -14
- package/dist/chunk-4FETL23S.cjs.map +1 -0
- package/dist/chunk-5GODYRZA.js +138 -0
- package/dist/chunk-5GODYRZA.js.map +1 -0
- package/dist/{chunk-U27VO642.js → chunk-62HL22CD.js} +12 -5
- package/dist/chunk-62HL22CD.js.map +1 -0
- package/dist/chunk-6KGXXX6X.cjs +140 -0
- package/dist/chunk-6KGXXX6X.cjs.map +1 -0
- package/dist/chunk-73JL5O6N.cjs +95 -0
- package/dist/chunk-73JL5O6N.cjs.map +1 -0
- package/dist/{chunk-6EW2D7K7.cjs → chunk-7TFFAGVB.cjs} +33 -8
- package/dist/chunk-7TFFAGVB.cjs.map +1 -0
- package/dist/{chunk-SKMP4FO7.cjs → chunk-ASPUIRWU.cjs} +22 -4
- package/dist/chunk-ASPUIRWU.cjs.map +1 -0
- package/dist/{chunk-KM5XDOAL.js → chunk-AZ4V3ZLU.js} +2 -11
- package/dist/chunk-AZ4V3ZLU.js.map +1 -0
- package/dist/{chunk-LFWX5GEE.cjs → chunk-CGCGALTZ.cjs} +6 -6
- package/dist/{chunk-LFWX5GEE.cjs.map → chunk-CGCGALTZ.cjs.map} +1 -1
- package/dist/{chunk-K76RPF2X.js → chunk-CPZFINPG.js} +3 -3
- package/dist/{chunk-K76RPF2X.js.map → chunk-CPZFINPG.js.map} +1 -1
- package/dist/{chunk-LT35HARQ.cjs → chunk-EYN3RHOF.cjs} +18 -11
- package/dist/chunk-EYN3RHOF.cjs.map +1 -0
- package/dist/{chunk-3FQTSGHL.cjs → chunk-F567WG2X.cjs} +47 -35
- package/dist/chunk-F567WG2X.cjs.map +1 -0
- package/dist/{chunk-GHJACW4X.cjs → chunk-FDGHWRRP.cjs} +27 -8
- package/dist/chunk-FDGHWRRP.cjs.map +1 -0
- package/dist/{chunk-DUVGFEGU.js → chunk-G4KDEQIL.js} +28 -18
- package/dist/chunk-G4KDEQIL.js.map +1 -0
- package/dist/chunk-IPP5X4TY.js +53 -0
- package/dist/chunk-IPP5X4TY.js.map +1 -0
- package/dist/{chunk-XGQU7BQK.js → chunk-JZLJVA4I.js} +47 -35
- package/dist/chunk-JZLJVA4I.js.map +1 -0
- package/dist/{chunk-C3DCFPJC.cjs → chunk-KBAY4F7D.cjs} +23 -16
- package/dist/chunk-KBAY4F7D.cjs.map +1 -0
- package/dist/{chunk-3XO3AJR4.js → chunk-N2DDL726.js} +6 -6
- package/dist/chunk-N2DDL726.js.map +1 -0
- package/dist/{chunk-VB32IBQC.cjs → chunk-N7GS4DZD.cjs} +8 -6
- package/dist/chunk-N7GS4DZD.cjs.map +1 -0
- package/dist/{chunk-567FG76G.cjs → chunk-OXDKVZZ5.cjs} +4 -4
- package/dist/{chunk-567FG76G.cjs.map → chunk-OXDKVZZ5.cjs.map} +1 -1
- package/dist/{chunk-4E3ANVRR.js → chunk-OZJZVEF2.js} +3 -3
- package/dist/{chunk-4E3ANVRR.js.map → chunk-OZJZVEF2.js.map} +1 -1
- package/dist/{chunk-Z5PEOX6F.js → chunk-PU4O76IS.js} +12 -9
- package/dist/chunk-PU4O76IS.js.map +1 -0
- package/dist/chunk-PVW2B7IC.js +73 -0
- package/dist/chunk-PVW2B7IC.js.map +1 -0
- package/dist/{chunk-NCEXSFMC.js → chunk-QYSTBZXD.js} +3 -3
- package/dist/{chunk-NCEXSFMC.js.map → chunk-QYSTBZXD.js.map} +1 -1
- package/dist/{chunk-62OBBM7T.js → chunk-SNHRG4TY.js} +23 -16
- package/dist/chunk-SNHRG4TY.js.map +1 -0
- package/dist/{chunk-DURKKV2E.js → chunk-TXSLKNR3.js} +6 -4
- package/dist/chunk-TXSLKNR3.js.map +1 -0
- package/dist/{chunk-EV54AFL4.js → chunk-YJICO3OG.js} +27 -8
- package/dist/chunk-YJICO3OG.js.map +1 -0
- package/dist/chunk-Z77KENZ6.js +52 -0
- package/dist/chunk-Z77KENZ6.js.map +1 -0
- package/dist/{chunk-UW6NEKBF.cjs → chunk-ZLANEWSF.cjs} +28 -18
- package/dist/chunk-ZLANEWSF.cjs.map +1 -0
- package/dist/components/jobPost/JobPost.cjs +6 -6
- package/dist/components/jobPost/JobPost.js +5 -5
- package/dist/components/primitives/command.cjs +10 -10
- package/dist/components/primitives/command.js +1 -1
- package/dist/components/primitives/radio-group.cjs +3 -3
- package/dist/components/primitives/radio-group.d.cts +9 -1
- package/dist/components/primitives/radio-group.d.ts +9 -1
- package/dist/components/primitives/radio-group.js +1 -1
- package/dist/components/ui/Combobox.cjs +4 -4
- package/dist/components/ui/Combobox.d.cts +2 -1
- package/dist/components/ui/Combobox.d.ts +2 -1
- package/dist/components/ui/Combobox.js +3 -3
- package/dist/components/ui/Counter.cjs +2 -2
- package/dist/components/ui/Counter.d.cts +2 -2
- package/dist/components/ui/Counter.d.ts +2 -2
- package/dist/components/ui/Counter.js +1 -1
- package/dist/components/ui/DatePicker.cjs +2 -2
- package/dist/components/ui/DatePicker.d.cts +8 -3
- package/dist/components/ui/DatePicker.d.ts +8 -3
- package/dist/components/ui/DatePicker.js +1 -1
- package/dist/components/ui/Input.cjs +2 -2
- package/dist/components/ui/Input.d.cts +2 -1
- package/dist/components/ui/Input.d.ts +2 -1
- package/dist/components/ui/Input.js +1 -1
- package/dist/components/ui/Map/MapComponent.cjs +4 -4
- package/dist/components/ui/Map/MapComponent.js +3 -3
- package/dist/components/ui/Map/MapContent.cjs +2 -2
- package/dist/components/ui/Map/MapContent.js +1 -1
- package/dist/components/ui/Map/hooks.cjs +4 -4
- package/dist/components/ui/Map/hooks.js +1 -1
- package/dist/components/ui/Map/index.cjs +4 -4
- package/dist/components/ui/Map/index.js +3 -3
- package/dist/components/ui/PlacesQueryInput.cjs +3 -3
- package/dist/components/ui/PlacesQueryInput.d.cts +3 -1
- package/dist/components/ui/PlacesQueryInput.d.ts +3 -1
- package/dist/components/ui/PlacesQueryInput.js +2 -2
- package/dist/components/ui/Radio.cjs +3 -3
- package/dist/components/ui/Radio.d.cts +4 -1
- package/dist/components/ui/Radio.d.ts +4 -1
- package/dist/components/ui/Radio.js +2 -2
- package/dist/components/ui/Select.cjs +2 -2
- package/dist/components/ui/Select.d.cts +8 -1
- package/dist/components/ui/Select.d.ts +8 -1
- package/dist/components/ui/Select.js +1 -1
- package/dist/components/ui/Switch.cjs +2 -2
- package/dist/components/ui/Switch.d.cts +7 -1
- package/dist/components/ui/Switch.d.ts +7 -1
- package/dist/components/ui/Switch.js +1 -1
- package/dist/hooks/useDisplayText.cjs +4 -4
- package/dist/hooks/useDisplayText.js +3 -3
- package/dist/index.cjs +57 -57
- package/dist/index.js +25 -25
- package/dist/services/displayText.cjs +3 -3
- package/dist/services/displayText.js +2 -2
- package/dist/styles/globals.css +53 -26
- package/dist/styles/globals.css.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2I2TWTPC.js +0 -115
- package/dist/chunk-2I2TWTPC.js.map +0 -1
- package/dist/chunk-3FQTSGHL.cjs.map +0 -1
- package/dist/chunk-3XO3AJR4.js.map +0 -1
- package/dist/chunk-62OBBM7T.js.map +0 -1
- package/dist/chunk-6EW2D7K7.cjs.map +0 -1
- package/dist/chunk-7NP3NX67.cjs.map +0 -1
- package/dist/chunk-B7NHA4GE.js +0 -33
- package/dist/chunk-B7NHA4GE.js.map +0 -1
- package/dist/chunk-C3DCFPJC.cjs.map +0 -1
- package/dist/chunk-DURKKV2E.js.map +0 -1
- package/dist/chunk-DUVGFEGU.js.map +0 -1
- package/dist/chunk-EV54AFL4.js.map +0 -1
- package/dist/chunk-FSMBDLNU.js +0 -34
- package/dist/chunk-FSMBDLNU.js.map +0 -1
- package/dist/chunk-GHJACW4X.cjs.map +0 -1
- package/dist/chunk-IJV66D4K.cjs.map +0 -1
- package/dist/chunk-KM5XDOAL.js.map +0 -1
- package/dist/chunk-LT35HARQ.cjs.map +0 -1
- package/dist/chunk-ORVF255B.cjs +0 -55
- package/dist/chunk-ORVF255B.cjs.map +0 -1
- package/dist/chunk-SKMP4FO7.cjs.map +0 -1
- package/dist/chunk-U27VO642.js.map +0 -1
- package/dist/chunk-U7LTIWUS.js +0 -28
- package/dist/chunk-U7LTIWUS.js.map +0 -1
- package/dist/chunk-UW6NEKBF.cjs.map +0 -1
- package/dist/chunk-VAHZQJTA.cjs +0 -117
- package/dist/chunk-VAHZQJTA.cjs.map +0 -1
- package/dist/chunk-VB32IBQC.cjs.map +0 -1
- package/dist/chunk-XGQU7BQK.js.map +0 -1
- package/dist/chunk-YVKKQOTE.cjs.map +0 -1
- package/dist/chunk-Z5PEOX6F.js.map +0 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkLTJXX7NG_cjs = require('./chunk-LTJXX7NG.cjs');
|
|
4
|
+
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
5
|
+
var SwitchPrimitive = require('@radix-ui/react-switch');
|
|
6
|
+
var cva = require('cva');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
|
|
29
|
+
|
|
30
|
+
var switchRootVariants = cva.cva(
|
|
31
|
+
"relative cursor-default rounded-full bg-grey-20 shadow-md outline-none focus:outline-purple-100 data-[state=checked]:bg-green-90",
|
|
32
|
+
{
|
|
33
|
+
variants: {
|
|
34
|
+
size: {
|
|
35
|
+
small: "h-[20px] w-[34px]",
|
|
36
|
+
normal: "h-[25px] w-[42px]",
|
|
37
|
+
large: "h-[30px] w-[50px]"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
size: "normal"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
var switchThumbVariants = cva.cva(
|
|
46
|
+
"block rounded-full bg-white shadow-[0_2px_2px] transition-transform duration-100 will-change-transform",
|
|
47
|
+
{
|
|
48
|
+
variants: {
|
|
49
|
+
size: {
|
|
50
|
+
small: "h-[16px] w-[16px] translate-x-0.5 data-[state=checked]:translate-x-[15px]",
|
|
51
|
+
normal: "h-[21px] w-[21px] translate-x-0.5 data-[state=checked]:translate-x-[19px]",
|
|
52
|
+
large: "h-[26px] w-[26px] translate-x-0.5 data-[state=checked]:translate-x-[22px]"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
defaultVariants: {
|
|
56
|
+
size: "normal"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
var switchLabelVariants = cva.cva("leading-none text-grey-80", {
|
|
61
|
+
variants: {
|
|
62
|
+
size: {
|
|
63
|
+
small: "pl-3 text-xs",
|
|
64
|
+
normal: "pl-4 text-sm",
|
|
65
|
+
large: "pl-4 text-base"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
defaultVariants: {
|
|
69
|
+
size: "normal"
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
var Switch = react.forwardRef(
|
|
73
|
+
({ label, error, className, size, ...props }, ref) => {
|
|
74
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkMGWZXPMF_cjs.cn("flex items-center", props.disabled && "opacity-50"), children: [
|
|
75
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
76
|
+
SwitchPrimitive__namespace.Root,
|
|
77
|
+
{
|
|
78
|
+
className: chunkMGWZXPMF_cjs.cn(switchRootVariants({ size }), className),
|
|
79
|
+
ref,
|
|
80
|
+
...props,
|
|
81
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SwitchPrimitive__namespace.Thumb, { className: switchThumbVariants({ size }) })
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
label && /* @__PURE__ */ jsxRuntime.jsxs("label", { className: switchLabelVariants({ size }), htmlFor: props.name, children: [
|
|
85
|
+
label,
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkLTJXX7NG_cjs.ErrorMessage_default, { message: error, className: "mt-1" })
|
|
87
|
+
] })
|
|
88
|
+
] });
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
Switch.displayName = "Switch";
|
|
92
|
+
|
|
93
|
+
exports.Switch = Switch;
|
|
94
|
+
//# sourceMappingURL=chunk-73JL5O6N.cjs.map
|
|
95
|
+
//# sourceMappingURL=chunk-73JL5O6N.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Switch.tsx"],"names":["cva","forwardRef","jsxs","cn","jsx","SwitchPrimitive","ErrorMessage_default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAM,kBAAqB,GAAAA,OAAA;AAAA,EACzB,kIAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,KAAO,EAAA,mBAAA;AAAA,QACP,MAAQ,EAAA,mBAAA;AAAA,QACR,KAAO,EAAA;AAAA;AACT,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,IAAM,EAAA;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,mBAAsB,GAAAA,OAAA;AAAA,EAC1B,wGAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,KAAO,EAAA,2EAAA;AAAA,QACP,MAAQ,EAAA,2EAAA;AAAA,QACR,KAAO,EAAA;AAAA;AACT,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,IAAM,EAAA;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,mBAAA,GAAsBA,QAAI,2BAA6B,EAAA;AAAA,EAC3D,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,cAAA;AAAA,MACP,MAAQ,EAAA,cAAA;AAAA,MACR,KAAO,EAAA;AAAA;AACT,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA;AAAA;AAEV,CAAC,CAAA;AASM,IAAM,MAAS,GAAAC,gBAAA;AAAA,EACpB,CAAC,EAAE,KAAO,EAAA,KAAA,EAAO,WAAW,IAAM,EAAA,GAAG,KAAM,EAAA,EAAG,GAAQ,KAAA;AACpD,IACE,uBAAAC,eAAA,CAAC,SAAI,SAAW,EAAAC,oBAAA,CAAG,qBAAqB,KAAM,CAAA,QAAA,IAAY,YAAY,CACpE,EAAA,QAAA,EAAA;AAAA,sBAAAC,cAAA;AAAA,QAAiBC,0BAAA,CAAA,IAAA;AAAA,QAAhB;AAAA,UACC,WAAWF,oBAAG,CAAA,kBAAA,CAAmB,EAAE,IAAK,EAAC,GAAG,SAAS,CAAA;AAAA,UACrD,GAAA;AAAA,UACC,GAAG,KAAA;AAAA,UAEJ,QAAA,kBAAAC,cAAA,CAAiBC,kCAAhB,EAAsB,SAAA,EAAW,oBAAoB,EAAE,IAAA,EAAM,CAAG,EAAA;AAAA;AAAA,OACnE;AAAA,MACC,KAAA,oBACEH,eAAA,CAAA,OAAA,EAAA,EAAM,SAAW,EAAA,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAA,EAAG,OAAS,EAAA,KAAA,CAAM,IAC7D,EAAA,QAAA,EAAA;AAAA,QAAA,KAAA;AAAA,wBAEAE,cAAA,CAAAE,sCAAA,EAAA,EAAa,OAAS,EAAA,KAAA,EAAO,WAAU,MAAO,EAAA;AAAA,OACjD,EAAA;AAAA,KAEJ,EAAA,CAAA;AAAA;AAGN;AACA,MAAA,CAAO,WAAc,GAAA,QAAA","file":"chunk-73JL5O6N.cjs","sourcesContent":["import * as SwitchPrimitive from '@radix-ui/react-switch'\nimport { cva, type VariantProps } from 'cva'\nimport { forwardRef } from 'react'\n\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport { cn } from '@/lib/utils'\n\nconst switchRootVariants = cva(\n 'relative cursor-default rounded-full bg-grey-20 shadow-md outline-none focus:outline-purple-100 data-[state=checked]:bg-green-90',\n {\n variants: {\n size: {\n small: 'h-[20px] w-[34px]',\n normal: 'h-[25px] w-[42px]',\n large: 'h-[30px] w-[50px]',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n\nconst switchThumbVariants = cva(\n 'block rounded-full bg-white shadow-[0_2px_2px] transition-transform duration-100 will-change-transform',\n {\n variants: {\n size: {\n small: 'h-[16px] w-[16px] translate-x-0.5 data-[state=checked]:translate-x-[15px]',\n normal: 'h-[21px] w-[21px] translate-x-0.5 data-[state=checked]:translate-x-[19px]',\n large: 'h-[26px] w-[26px] translate-x-0.5 data-[state=checked]:translate-x-[22px]',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n\nconst switchLabelVariants = cva('leading-none text-grey-80', {\n variants: {\n size: {\n small: 'pl-3 text-xs',\n normal: 'pl-4 text-sm',\n large: 'pl-4 text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n})\n\ntype SwitchVariants = VariantProps<typeof switchRootVariants>\n\ninterface Props extends SwitchPrimitive.SwitchProps, SwitchVariants {\n label?: string\n error?: string\n}\n\nexport const Switch = forwardRef<HTMLButtonElement, Props>(\n ({ label, error, className, size, ...props }, ref) => {\n return (\n <div className={cn('flex items-center', props.disabled && 'opacity-50')}>\n <SwitchPrimitive.Root\n className={cn(switchRootVariants({ size }), className)}\n ref={ref}\n {...props}\n >\n <SwitchPrimitive.Thumb className={switchThumbVariants({ size })} />\n </SwitchPrimitive.Root>\n {label && (\n <label className={switchLabelVariants({ size })} htmlFor={props.name}>\n {label}\n\n <ErrorMessage message={error} className=\"mt-1\" />\n </label>\n )}\n </div>\n )\n }\n)\nSwitch.displayName = 'Switch'\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
4
4
|
var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
|
|
5
|
+
var cva = require('cva');
|
|
5
6
|
var react = require('react');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
8
|
|
|
@@ -25,27 +26,51 @@ function _interopNamespace(e) {
|
|
|
25
26
|
|
|
26
27
|
var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
|
|
27
28
|
|
|
29
|
+
var radioItemVariants = cva.cva(
|
|
30
|
+
"peer aspect-square rounded-full border border-grey-20 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 focus-visible:ring-ring active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-30 data-[state=checked]:border-4 data-[disabled]:border-grey-20 data-[state=checked]:border-green-90 data-[disabled]:bg-grey-10 data-[state=checked]:group-hover:border-green-80",
|
|
31
|
+
{
|
|
32
|
+
variants: {
|
|
33
|
+
size: {
|
|
34
|
+
small: "h-3",
|
|
35
|
+
normal: "h-4",
|
|
36
|
+
large: "h-5"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
defaultVariants: {
|
|
40
|
+
size: "normal"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
var radioLabelVariants = cva.cva("text-grey-80 peer-data-[disabled]:text-grey-40", {
|
|
45
|
+
variants: {
|
|
46
|
+
size: {
|
|
47
|
+
small: "text-xs",
|
|
48
|
+
normal: "text-sm",
|
|
49
|
+
large: "text-base"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
defaultVariants: {
|
|
53
|
+
size: "normal"
|
|
54
|
+
}
|
|
55
|
+
});
|
|
28
56
|
var RadioGroup = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Root, { className, ...props, ref }));
|
|
29
57
|
RadioGroup.displayName = RadioGroupPrimitive__namespace.Root.displayName;
|
|
30
|
-
var RadioGroupItem = react.forwardRef(({ className, children, ...props }, ref) => {
|
|
58
|
+
var RadioGroupItem = react.forwardRef(({ className, children, size, ...props }, ref) => {
|
|
31
59
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group flex flex-row items-center gap-2", children: [
|
|
32
60
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
33
61
|
RadioGroupPrimitive__namespace.Item,
|
|
34
62
|
{
|
|
35
63
|
ref,
|
|
36
|
-
className: chunkMGWZXPMF_cjs.cn(
|
|
37
|
-
"peer aspect-square h-4 rounded-full border border-grey-10 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 focus-visible:ring-ring active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-20 data-[state=checked]:border-4 data-[disabled]:border-grey-20 data-[state=checked]:border-green-90 data-[disabled]:bg-grey-10 data-[state=checked]:group-hover:border-green-80",
|
|
38
|
-
className
|
|
39
|
-
),
|
|
64
|
+
className: chunkMGWZXPMF_cjs.cn(radioItemVariants({ size }), className),
|
|
40
65
|
...props
|
|
41
66
|
}
|
|
42
67
|
),
|
|
43
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: props.id, className:
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: props.id, className: radioLabelVariants({ size }), children })
|
|
44
69
|
] });
|
|
45
70
|
});
|
|
46
71
|
RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
|
|
47
72
|
|
|
48
73
|
exports.RadioGroup = RadioGroup;
|
|
49
74
|
exports.RadioGroupItem = RadioGroupItem;
|
|
50
|
-
//# sourceMappingURL=chunk-
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-7TFFAGVB.cjs.map
|
|
76
|
+
//# sourceMappingURL=chunk-7TFFAGVB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/radio-group.tsx"],"names":["cva","forwardRef","jsx","RadioGroupPrimitive","jsxs","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAM,iBAAoB,GAAAA,OAAA;AAAA,EACxB,8dAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,IAAM,EAAA;AAAA,QACJ,KAAO,EAAA,KAAA;AAAA,QACP,MAAQ,EAAA,KAAA;AAAA,QACR,KAAO,EAAA;AAAA;AACT,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,IAAM,EAAA;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,kBAAA,GAAqBA,QAAI,gDAAkD,EAAA;AAAA,EAC/E,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,SAAA;AAAA,MACP,MAAQ,EAAA,SAAA;AAAA,MACR,KAAO,EAAA;AAAA;AACT,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA;AAAA;AAEV,CAAC,CAAA;AAIM,IAAM,aAAaC,gBAGxB,CAAA,CAAC,EAAE,SAAA,EAAW,GAAG,KAAM,EAAA,EAAG,GAC1B,qBAAAC,cAAA,CAAqBC,qCAApB,EAAyB,SAAA,EAAuB,GAAG,KAAA,EAAO,KAAU,CACtE;AACD,UAAA,CAAW,cAAkCA,8BAAK,CAAA,IAAA,CAAA,WAAA;AAQrC,IAAA,cAAA,GAAiBF,gBAG5B,CAAA,CAAC,EAAE,SAAA,EAAW,UAAU,IAAM,EAAA,GAAG,KAAM,EAAA,EAAG,GAAQ,KAAA;AAClD,EACE,uBAAAG,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,wCACb,EAAA,QAAA,EAAA;AAAA,oBAAAF,cAAA;AAAA,MAAqBC,8BAAA,CAAA,IAAA;AAAA,MAApB;AAAA,QACC,GAAA;AAAA,QACA,WAAWE,oBAAG,CAAA,iBAAA,CAAkB,EAAE,IAAK,EAAC,GAAG,SAAS,CAAA;AAAA,QACnD,GAAG;AAAA;AAAA,KACN;AAAA,oBACAH,cAAA,CAAC,OAAM,EAAA,EAAA,OAAA,EAAS,KAAM,CAAA,EAAA,EAAI,SAAW,EAAA,kBAAA,CAAmB,EAAE,IAAA,EAAM,CAAA,EAC7D,QACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,cAAkCC,8BAAK,CAAA,IAAA,CAAA,WAAA","file":"chunk-7TFFAGVB.cjs","sourcesContent":["'use client'\n\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { cva, type VariantProps } from 'cva'\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n type PropsWithChildren,\n} from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst radioItemVariants = cva(\n 'peer aspect-square rounded-full border border-grey-20 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 focus-visible:ring-ring active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-30 data-[state=checked]:border-4 data-[disabled]:border-grey-20 data-[state=checked]:border-green-90 data-[disabled]:bg-grey-10 data-[state=checked]:group-hover:border-green-80',\n {\n variants: {\n size: {\n small: 'h-3',\n normal: 'h-4',\n large: 'h-5',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n\nconst radioLabelVariants = cva('text-grey-80 peer-data-[disabled]:text-grey-40', {\n variants: {\n size: {\n small: 'text-xs',\n normal: 'text-sm',\n large: 'text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n})\n\nexport type RadioSize = VariantProps<typeof radioItemVariants>['size']\n\nexport const RadioGroup = forwardRef<\n ElementRef<typeof RadioGroupPrimitive.Root>,\n ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Root className={className} {...props} ref={ref} />\n))\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\ntype RadioGroupItemProps = PropsWithChildren<\n ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> & {\n size?: RadioSize\n }\n>\n\nexport const RadioGroupItem = forwardRef<\n ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, children, size, ...props }, ref) => {\n return (\n <div className=\"group flex flex-row items-center gap-2\">\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(radioItemVariants({ size }), className)}\n {...props}\n />\n <label htmlFor={props.id} className={radioLabelVariants({ size })}>\n {children}\n </label>\n </div>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n"]}
|
|
@@ -25,10 +25,28 @@ function useClusters(coordinates, bounds, zoomLevel) {
|
|
|
25
25
|
if (!coordinates) return [];
|
|
26
26
|
return chunkEBKY3MJH_cjs.convertCoordinatesToGeoJSON(coordinates);
|
|
27
27
|
}, [coordinates]);
|
|
28
|
+
const superclusterBounds = react.useMemo(() => {
|
|
29
|
+
const isInitialBounds = bounds && bounds[0][0] === -180 && bounds[0][1] === -85 && bounds[1][0] === 180 && bounds[1][1] === 85;
|
|
30
|
+
if (!bounds || isInitialBounds) {
|
|
31
|
+
return [-180, -85, 180, 85];
|
|
32
|
+
}
|
|
33
|
+
const [[south, west], [north, east]] = bounds;
|
|
34
|
+
if (!isFinite(south) || !isFinite(west) || !isFinite(north) || !isFinite(east) || south >= north || west >= east) {
|
|
35
|
+
return [-180, -85, 180, 85];
|
|
36
|
+
}
|
|
37
|
+
const latRange = north - south;
|
|
38
|
+
const lngRange = east - west;
|
|
39
|
+
const latBuffer = latRange * 0.1;
|
|
40
|
+
const lngBuffer = lngRange * 0.1;
|
|
41
|
+
const bufferedSouth = Math.max(-85, south - latBuffer);
|
|
42
|
+
const bufferedWest = Math.max(-180, west - lngBuffer);
|
|
43
|
+
const bufferedNorth = Math.min(85, north + latBuffer);
|
|
44
|
+
const bufferedEast = Math.min(180, east + lngBuffer);
|
|
45
|
+
return [bufferedWest, bufferedSouth, bufferedEast, bufferedNorth];
|
|
46
|
+
}, [bounds]);
|
|
28
47
|
const { clusters, supercluster } = useSupercluster__default.default({
|
|
29
48
|
points,
|
|
30
|
-
bounds:
|
|
31
|
-
// Use global bounds for consistency
|
|
49
|
+
bounds: superclusterBounds,
|
|
32
50
|
zoom: zoomLevel || 10,
|
|
33
51
|
options: chunkNLGWU2KI_cjs.CLUSTERING_CONFIG
|
|
34
52
|
});
|
|
@@ -38,5 +56,5 @@ function useClusters(coordinates, bounds, zoomLevel) {
|
|
|
38
56
|
exports.useClusters = useClusters;
|
|
39
57
|
exports.useMapBounds = useMapBounds;
|
|
40
58
|
exports.useZoomLevel = useZoomLevel;
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-ASPUIRWU.cjs.map
|
|
60
|
+
//# sourceMappingURL=chunk-ASPUIRWU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Map/hooks.ts"],"names":["useState","useMemo","convertCoordinatesToGeoJSON","useSupercluster","CLUSTERING_CONFIG"],"mappings":";;;;;;;;;;;AAOO,SAAS,aAA0B,YAAgC,EAAA;AACxE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,cAA+C,CAAA;AAAA,IACzE,CAAC,MAAM,GAAG,CAAA;AAAA,IACV,CAAC,KAAK,EAAE;AAAA,GACT,CAAA;AAID,EAAO,OAAA,EAAE,QAAQ,SAAU,EAAA;AAC7B;AAEO,SAAS,aAAa,WAAqB,EAAA;AAChD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,eAAS,WAAW,CAAA;AACtD,EAAO,OAAA,EAAE,WAAW,YAAa,EAAA;AACnC;AAEO,SAAS,WAAA,CACd,WACA,EAAA,MAAA,EACA,SACA,EAAA;AACA,EAAM,MAAA,MAAA,GAASC,cAAQ,MAAM;AAC3B,IAAI,IAAA,CAAC,WAAa,EAAA,OAAO,EAAC;AAC1B,IAAA,OAAOC,8CAA+B,WAAW,CAAA;AAAA,GACnD,EAAG,CAAC,WAAW,CAAC,CAAA;AAGhB,EAAM,MAAA,kBAAA,GAAqBD,cAAQ,MAAM;AAEvC,IAAM,MAAA,eAAA,GACJ,MACA,IAAA,MAAA,CAAO,CAAC,CAAA,CAAE,CAAC,CAAM,KAAA,IAAA,IACjB,MAAO,CAAA,CAAC,CAAE,CAAA,CAAC,MAAM,GACjB,IAAA,MAAA,CAAO,CAAC,CAAA,CAAE,CAAC,CAAA,KAAM,OACjB,MAAO,CAAA,CAAC,CAAE,CAAA,CAAC,CAAM,KAAA,EAAA;AAGnB,IAAI,IAAA,CAAC,UAAU,eAAiB,EAAA;AAC9B,MAAA,OAAO,CAAC,IAAA,EAAM,GAAK,EAAA,GAAA,EAAK,EAAE,CAAA;AAAA;AAI5B,IAAM,MAAA,CAAC,CAAC,KAAO,EAAA,IAAI,GAAG,CAAC,KAAA,EAAO,IAAI,CAAC,CAAI,GAAA,MAAA;AAGvC,IAAA,IACE,CAAC,QAAS,CAAA,KAAK,KACf,CAAC,QAAA,CAAS,IAAI,CACd,IAAA,CAAC,SAAS,KAAK,CAAA,IACf,CAAC,QAAS,CAAA,IAAI,KACd,KAAS,IAAA,KAAA,IACT,QAAQ,IACR,EAAA;AACA,MAAA,OAAO,CAAC,IAAA,EAAM,GAAK,EAAA,GAAA,EAAK,EAAE,CAAA;AAAA;AAI5B,IAAA,MAAM,WAAW,KAAQ,GAAA,KAAA;AACzB,IAAA,MAAM,WAAW,IAAO,GAAA,IAAA;AACxB,IAAA,MAAM,YAAY,QAAW,GAAA,GAAA;AAC7B,IAAA,MAAM,YAAY,QAAW,GAAA,GAAA;AAG7B,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,GAAI,CAAA,GAAA,EAAK,QAAQ,SAAS,CAAA;AACrD,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,GAAI,CAAA,IAAA,EAAM,OAAO,SAAS,CAAA;AACpD,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,QAAQ,SAAS,CAAA;AACpD,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,GAAI,CAAA,GAAA,EAAK,OAAO,SAAS,CAAA;AAGnD,IAAA,OAAO,CAAC,YAAA,EAAc,aAAe,EAAA,YAAA,EAAc,aAAa,CAAA;AAAA,GAClE,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,EAAE,QAAA,EAAU,YAAa,EAAA,GAAIE,gCAAgB,CAAA;AAAA,IACjD,MAAA;AAAA,IACA,MAAQ,EAAA,kBAAA;AAAA,IACR,MAAM,SAAa,IAAA,EAAA;AAAA,IACnB,OAAS,EAAAC;AAAA,GACV,CAAA;AAED,EAAO,OAAA,EAAE,UAAU,YAAa,EAAA;AAClC","file":"chunk-ASPUIRWU.cjs","sourcesContent":["import { useMemo, useState } from 'react'\nimport useSupercluster from 'use-supercluster'\n\nimport { convertCoordinatesToGeoJSON } from '@/components/ui/Map/clustering'\nimport { CLUSTERING_CONFIG } from '@/components/ui/Map/constants'\nimport type { Coordinate, PinData } from '@/components/ui/Map/types'\n\nexport function useMapBounds<T = PinData>(_coordinates?: Coordinate<T>[]) {\n const [bounds, setBounds] = useState<[[number, number], [number, number]]>([\n [-180, -85],\n [180, 85],\n ])\n\n // Use global bounds for stability - let the map handle the actual bounds\n // This prevents constant recalculation that causes clustering instability\n return { bounds, setBounds }\n}\n\nexport function useZoomLevel(initialZoom: number) {\n const [zoomLevel, setZoomLevel] = useState(initialZoom)\n return { zoomLevel, setZoomLevel }\n}\n\nexport function useClusters<T = PinData>(\n coordinates?: Coordinate<T>[],\n bounds?: [[number, number], [number, number]],\n zoomLevel?: number\n) {\n const points = useMemo(() => {\n if (!coordinates) return []\n return convertCoordinatesToGeoJSON<T>(coordinates)\n }, [coordinates])\n\n // Convert bounds format and add buffer for smoother panning\n const superclusterBounds = useMemo(() => {\n // Check if bounds are still in initial global state\n const isInitialBounds =\n bounds &&\n bounds[0][0] === -180 &&\n bounds[0][1] === -85 &&\n bounds[1][0] === 180 &&\n bounds[1][1] === 85\n\n // If bounds are not set or still initial, use global bounds\n if (!bounds || isInitialBounds) {\n return [-180, -85, 180, 85]\n }\n\n // Extract bounds: [[south, west], [north, east]]\n const [[south, west], [north, east]] = bounds\n\n // Validate bounds\n if (\n !isFinite(south) ||\n !isFinite(west) ||\n !isFinite(north) ||\n !isFinite(east) ||\n south >= north ||\n west >= east\n ) {\n return [-180, -85, 180, 85]\n }\n\n // Calculate buffer (10% of the range in each direction)\n const latRange = north - south\n const lngRange = east - west\n const latBuffer = latRange * 0.1\n const lngBuffer = lngRange * 0.1\n\n // Apply buffer and clamp to valid geographic bounds\n const bufferedSouth = Math.max(-85, south - latBuffer)\n const bufferedWest = Math.max(-180, west - lngBuffer)\n const bufferedNorth = Math.min(85, north + latBuffer)\n const bufferedEast = Math.min(180, east + lngBuffer)\n\n // Convert to useSupercluster format: [west, south, east, north]\n return [bufferedWest, bufferedSouth, bufferedEast, bufferedNorth]\n }, [bounds])\n\n const { clusters, supercluster } = useSupercluster({\n points,\n bounds: superclusterBounds,\n zoom: zoomLevel || 10,\n options: CLUSTERING_CONFIG,\n })\n\n return { clusters, supercluster }\n}\n"]}
|
|
@@ -93,15 +93,6 @@ function MapContent({
|
|
|
93
93
|
`marker-${cluster.properties.pointId}`
|
|
94
94
|
);
|
|
95
95
|
}),
|
|
96
|
-
coordinates && clusters.length === 0 && coordinates.map((coord, index) => /* @__PURE__ */ jsx(
|
|
97
|
-
IndividualMarker,
|
|
98
|
-
{
|
|
99
|
-
coordinate: coord,
|
|
100
|
-
onPinClick,
|
|
101
|
-
onPinHover
|
|
102
|
-
},
|
|
103
|
-
`fallback-${index}`
|
|
104
|
-
)),
|
|
105
96
|
focusPoint && radiusMiles && /* @__PURE__ */ jsx(
|
|
106
97
|
FocusCircle,
|
|
107
98
|
{
|
|
@@ -117,5 +108,5 @@ function MapContent({
|
|
|
117
108
|
}
|
|
118
109
|
|
|
119
110
|
export { MapContent };
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
111
|
+
//# sourceMappingURL=chunk-AZ4V3ZLU.js.map
|
|
112
|
+
//# sourceMappingURL=chunk-AZ4V3ZLU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Map/MapContent.tsx"],"names":[],"mappings":"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","file":"chunk-AZ4V3ZLU.js","sourcesContent":["'use client'\n\nimport { AdvancedMarker, Map, Pin, useMap, useMapsLibrary } from '@vis.gl/react-google-maps'\nimport { useCallback } from 'react'\n\nimport { ClusterMarker } from '@/components/ui/Map/ClusterMarker'\nimport { PIN_COLORS } from '@/components/ui/Map/constants'\nimport { FocusCircle } from '@/components/ui/Map/FocusCircle'\nimport { IndividualMarker } from '@/components/ui/Map/IndividualMarker'\nimport type { MapContentProps, PinData } from '@/components/ui/Map/types'\nimport { cn } from '@/lib/utils'\n\nexport function MapContent<T = PinData>({\n mapId,\n mapCenter,\n mapZoom,\n position,\n coordinates,\n clusters,\n supercluster,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n setBounds,\n setZoomLevel,\n}: MapContentProps<T>) {\n const map = useMap()\n const mapsLibrary = useMapsLibrary('maps')\n\n const zoomToLevel = useCallback(\n (newZoom: number) => {\n if (map) {\n map.setZoom(newZoom)\n }\n },\n [map]\n )\n\n const handleBoundsChanged = (e: {\n detail: { bounds: { south: number; west: number; north: number; east: number } }\n }) => {\n if (e.detail.bounds) {\n const bounds = e.detail.bounds\n setBounds([\n [bounds.south, bounds.west],\n [bounds.north, bounds.east],\n ])\n }\n }\n\n const handleZoomChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n const handleCameraChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n return (\n <div className={cn('relative h-screen max-w-full', className)}>\n <Map\n defaultZoom={mapZoom}\n defaultCenter={mapCenter}\n mapId={mapId}\n keyboardShortcuts={true}\n disableDefaultUI={true}\n zoomControl={true}\n onBoundsChanged={handleBoundsChanged}\n onZoomChanged={handleZoomChanged}\n onCameraChanged={handleCameraChanged}\n >\n {position && !coordinates && (\n <AdvancedMarker position={position}>\n <Pin {...PIN_COLORS} />\n </AdvancedMarker>\n )}\n\n {coordinates &&\n clusters.map((cluster) => {\n const { cluster: isCluster } = cluster.properties\n\n if (isCluster) {\n return (\n <ClusterMarker\n key={`cluster-${cluster.id}`}\n cluster={cluster}\n coordinates={coordinates}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n zoomToLevel={zoomToLevel}\n supercluster={supercluster}\n />\n )\n }\n\n const originalPoint = coordinates[cluster.properties.pointId!]\n return (\n <IndividualMarker\n key={`marker-${cluster.properties.pointId}`}\n coordinate={originalPoint}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n />\n )\n })}\n\n {focusPoint && radiusMiles && (\n <FocusCircle\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n map={map}\n mapsLibrary={mapsLibrary}\n />\n )}\n </Map>\n </div>\n )\n}\n"]}
|
|
@@ -7,7 +7,7 @@ var chunkTOEADI6J_cjs = require('./chunk-TOEADI6J.cjs');
|
|
|
7
7
|
var chunkGQNVPLSG_cjs = require('./chunk-GQNVPLSG.cjs');
|
|
8
8
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
9
9
|
var chunk4LUPQO4R_cjs = require('./chunk-4LUPQO4R.cjs');
|
|
10
|
-
var
|
|
10
|
+
var chunkOXDKVZZ5_cjs = require('./chunk-OXDKVZZ5.cjs');
|
|
11
11
|
var chunkXAPQTBJR_cjs = require('./chunk-XAPQTBJR.cjs');
|
|
12
12
|
var DateFns = require('date-fns');
|
|
13
13
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -42,9 +42,9 @@ function JobPost({
|
|
|
42
42
|
backAcceptedRoutes,
|
|
43
43
|
actions
|
|
44
44
|
}) {
|
|
45
|
-
const formattedEmploymentType =
|
|
46
|
-
const formattedEmploymentLevel =
|
|
47
|
-
const formattedJobFunction =
|
|
45
|
+
const formattedEmploymentType = chunkOXDKVZZ5_cjs.useDisplayText("employmentType", job.employmentType);
|
|
46
|
+
const formattedEmploymentLevel = chunkOXDKVZZ5_cjs.useDisplayText("employmentLevel", job.employmentLevel);
|
|
47
|
+
const formattedJobFunction = chunkOXDKVZZ5_cjs.useDisplayText("jobFunction", job.jobFunction);
|
|
48
48
|
const formattedLocations = chunkXAPQTBJR_cjs.getAddressList(job);
|
|
49
49
|
const formattedSalary = chunkGQNVPLSG_cjs.salaryRange(job.estimatedSalary);
|
|
50
50
|
const formattedDate = DateFns__namespace.formatDistanceToNow(new Date(job.datePosted), {
|
|
@@ -133,5 +133,5 @@ function JobPost({
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
exports.JobPost = JobPost;
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-CGCGALTZ.cjs.map
|
|
137
|
+
//# sourceMappingURL=chunk-CGCGALTZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":["useDisplayText","getAddressList","salaryRange","DateFns","jsxs","cn","jsx","JobHeader","JobDescription","CompanyTake","CompanyInformation","CompanyBenefits"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":["useDisplayText","getAddressList","salaryRange","DateFns","jsxs","cn","jsx","JobHeader","JobDescription","CompanyTake","CompanyInformation","CompanyBenefits"],"mappings":"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","file":"chunk-CGCGALTZ.cjs","sourcesContent":["'use client'\n\nimport * as DateFns from 'date-fns'\nimport { type ReactNode } from 'react'\n\nimport { CompanyBenefits } from '@/components/company/CompanyBenefits'\nimport { CompanyInformation } from '@/components/company/CompanyInformation'\nimport { CompanyTake } from '@/components/company/CompanyTake'\nimport { JobDescription } from '@/components/jobPost/JobDescription'\nimport { JobHeader } from '@/components/jobPost/JobHeader'\nimport { useDisplayText } from '@/hooks/useDisplayText'\nimport { getAddressList } from '@/lib/locations'\nimport { salaryRange } from '@/lib/salaryRange'\nimport { cn } from '@/lib/utils'\nimport { type JobPostModel } from '@/types/data/job_posting_service_latest'\n\nexport type JobPostProps = {\n job: JobPostModel\n bannerSrc: string\n avatarSrc?: string\n standalone?: boolean\n avatarHref?: string\n fallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n}\n\nexport function JobPost({\n job,\n bannerSrc,\n avatarSrc,\n standalone,\n avatarHref,\n fallbackHref,\n backAcceptedRoutes,\n actions,\n}: Readonly<JobPostProps>) {\n const formattedEmploymentType = useDisplayText('employmentType', job.employmentType)\n const formattedEmploymentLevel = useDisplayText('employmentLevel', job.employmentLevel)\n const formattedJobFunction = useDisplayText('jobFunction', job.jobFunction)\n const formattedLocations = getAddressList(job)\n const formattedSalary = salaryRange(job.estimatedSalary)\n const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted as string), {\n addSuffix: true,\n })\n\n const tags = [\n !!formattedSalary && {\n icon: 'banknote' as const,\n name: 'salary',\n label: formattedSalary,\n },\n !!formattedEmploymentType && {\n icon: 'briefcase-business' as const,\n name: 'employmentType',\n label: formattedEmploymentType,\n },\n !!formattedEmploymentLevel && {\n icon: 'circle-user' as const,\n name: 'level',\n label: formattedEmploymentLevel,\n },\n !!formattedJobFunction && {\n icon: 'briefcase-business' as const,\n name: 'jobFunction',\n label: formattedJobFunction,\n },\n ...formattedLocations.map((label) => ({\n icon: 'map-pin' as const,\n name: 'location',\n label,\n })),\n ].filter((t) => !!t)\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-10 pb-4',\n !standalone && 'border-1 rounded-3xl border-grey-5'\n )}\n >\n <JobHeader\n title={job.title}\n bannerSrc={bannerSrc}\n avatarName={job.hiringOrganization?.companyName}\n avatarSrc={job.hiringOrganization?.logo?.asset?.url}\n subtitles={[job.hiringOrganization?.companyName ?? '', `Posted ${formattedDate}`]}\n actions={actions}\n standalone={standalone}\n avatarHref={avatarHref}\n backFallbackHref={fallbackHref}\n backAcceptedRoutes={backAcceptedRoutes}\n tags={tags}\n />\n\n <div className=\"flex flex-col gap-8 px-6\">\n <JobDescription description={job.description} />\n\n <CompanyTake\n avatarSrc={avatarSrc}\n content={job.hiringOrganization?.companyNDG?.companyNDGTake}\n />\n\n <CompanyInformation\n name={job.hiringOrganization?.companyName ?? ''}\n how={job.hiringOrganization?.companyPhilosophy?.companyHow}\n mission={job.hiringOrganization?.companyPhilosophy?.companyMission}\n wow={job.hiringOrganization?.companyNDG?.companyWow}\n website={job.hiringOrganization?.companyWebsite}\n />\n\n <CompanyBenefits\n benefits={job.hiringOrganization?.companyCareers?.companyBenefits\n ?.map((b) => b.title)\n .filter((d) => d !== undefined)}\n />\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DisplayTextService } from './chunk-
|
|
1
|
+
import { DisplayTextService } from './chunk-OZJZVEF2.js';
|
|
2
2
|
import { DisplayTextValueNotFoundError } from './chunk-YB2USB4M.js';
|
|
3
3
|
import { useState, useMemo, useEffect } from 'react';
|
|
4
4
|
|
|
@@ -33,5 +33,5 @@ var useDisplayText = (scope, value) => {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export { useDisplayText };
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
36
|
+
//# sourceMappingURL=chunk-CPZFINPG.js.map
|
|
37
|
+
//# sourceMappingURL=chunk-CPZFINPG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useDisplayText.ts"],"names":[],"mappings":";;;;AAKa,IAAA,cAAA,GAAiB,CAC5B,KAAA,EACA,KACG,KAAA;AACH,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,iBAAiB,OAAQ,CAAA,MAAM,IAAI,kBAAmB,EAAA,EAAG,EAAE,CAAA;AAEjE,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,cAAkB,IAAA,CAAC,KAAO,EAAA;AAC7B,MAAA,cAAA,CAAe,EAAE,CAAA;AACjB,MAAA;AAAA;AAEF,IAAA,KAAA,CAAM,YAAY;AAChB,MAAI,IAAA;AACF,QAAA,MAAM,MAAS,GAAA,MAAM,cAAe,CAAA,cAAA,CAAe,OAAO,KAAK,CAAA;AAC/D,QAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,UAAA,cAAA,CAAe,MAAM,CAAA;AAAA,SAChB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,sCAAsC,MAAM,CAAA;AAAA;AAC5D,eACO,KAAO,EAAA;AACd,QAAA,IAAI,iBAAiB,6BAA+B,EAAA;AAClD,UAAQ,OAAA,CAAA,IAAA,CAAK,iCAAiC,KAAK,CAAA;AACnD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AACxD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAC9B;AACF,KACC,GAAA;AAAA,GACF,EAAA,CAAC,KAAO,EAAA,KAAA,EAAO,cAAc,CAAC,CAAA;AAEjC,EAAO,OAAA,WAAA;AACT","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useDisplayText.ts"],"names":[],"mappings":";;;;AAKa,IAAA,cAAA,GAAiB,CAC5B,KAAA,EACA,KACG,KAAA;AACH,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,iBAAiB,OAAQ,CAAA,MAAM,IAAI,kBAAmB,EAAA,EAAG,EAAE,CAAA;AAEjE,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,cAAkB,IAAA,CAAC,KAAO,EAAA;AAC7B,MAAA,cAAA,CAAe,EAAE,CAAA;AACjB,MAAA;AAAA;AAEF,IAAA,KAAA,CAAM,YAAY;AAChB,MAAI,IAAA;AACF,QAAA,MAAM,MAAS,GAAA,MAAM,cAAe,CAAA,cAAA,CAAe,OAAO,KAAK,CAAA;AAC/D,QAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,UAAA,cAAA,CAAe,MAAM,CAAA;AAAA,SAChB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,sCAAsC,MAAM,CAAA;AAAA;AAC5D,eACO,KAAO,EAAA;AACd,QAAA,IAAI,iBAAiB,6BAA+B,EAAA;AAClD,UAAQ,OAAA,CAAA,IAAA,CAAK,iCAAiC,KAAK,CAAA;AACnD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvB,MAAA;AACL,UAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AACxD,UAAe,cAAA,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAC9B;AACF,KACC,GAAA;AAAA,GACF,EAAA,CAAC,KAAO,EAAA,KAAA,EAAO,cAAc,CAAC,CAAA;AAEjC,EAAO,OAAA,WAAA;AACT","file":"chunk-CPZFINPG.js","sourcesContent":["import { useEffect, useMemo, useState } from 'react'\n\nimport { DisplayTextService, type ServiceMappings } from '@/services/displayText'\nimport { DisplayTextValueNotFoundError } from '@/types/displayText.errors'\n\nexport const useDisplayText = (\n scope: keyof ServiceMappings,\n value: string | string[] | undefined | null\n) => {\n const [displayText, setDisplayText] = useState('')\n const displayService = useMemo(() => new DisplayTextService(), [])\n\n useEffect(() => {\n if (!displayService || !value) {\n setDisplayText('')\n return\n }\n void (async () => {\n try {\n const result = await displayService.getDisplayText(scope, value)\n if (typeof result === 'string') {\n setDisplayText(result)\n } else {\n console.error('Expected a string result, but got:', result)\n }\n } catch (error) {\n if (error instanceof DisplayTextValueNotFoundError) {\n console.warn('Display text value not found:', value)\n setDisplayText(String(value))\n } else {\n console.error('Unexpected error formatting text:', error)\n setDisplayText(String(value))\n }\n }\n })()\n }, [scope, value, displayService])\n\n return displayText\n}\n"]}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkKBAY4F7D_cjs = require('./chunk-KBAY4F7D.cjs');
|
|
4
4
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
5
5
|
var chunkAMNEAWA7_cjs = require('./chunk-AMNEAWA7.cjs');
|
|
6
6
|
var lucideReact = require('lucide-react');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
|
|
10
|
+
var sizeClasses = {
|
|
11
|
+
small: "h-8 text-xs",
|
|
12
|
+
normal: "h-9 text-sm",
|
|
13
|
+
large: "h-10 text-base",
|
|
14
|
+
xlarge: "h-11 text-base"
|
|
15
|
+
};
|
|
10
16
|
function PlacesQueryInput({
|
|
11
17
|
apiKey,
|
|
12
18
|
selected,
|
|
13
19
|
onSelect,
|
|
14
|
-
className
|
|
20
|
+
className,
|
|
21
|
+
size = "normal"
|
|
15
22
|
}) {
|
|
16
23
|
const [predictions, setPredictions] = react.useState(null);
|
|
17
24
|
const [input, setInput] = react.useState(selected?.description ?? "");
|
|
@@ -67,15 +74,15 @@ function PlacesQueryInput({
|
|
|
67
74
|
window.addEventListener("resize", checkDropdownPosition);
|
|
68
75
|
return () => window.removeEventListener("resize", checkDropdownPosition);
|
|
69
76
|
}, []);
|
|
70
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkMGWZXPMF_cjs.cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
77
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkMGWZXPMF_cjs.cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkKBAY4F7D_cjs.Command, { children: [
|
|
71
78
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full", children: [
|
|
72
79
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
73
|
-
|
|
80
|
+
chunkKBAY4F7D_cjs.CommandInput,
|
|
74
81
|
{
|
|
75
82
|
placeholder: "Type an address to search...",
|
|
76
83
|
value: input,
|
|
77
84
|
onValueChange: handleInputChange,
|
|
78
|
-
className: "truncate pr-8"
|
|
85
|
+
className: chunkMGWZXPMF_cjs.cn("truncate pr-8", sizeClasses[size])
|
|
79
86
|
}
|
|
80
87
|
),
|
|
81
88
|
isLoadingPredictions && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LoaderCircle, { className: "absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100" }),
|
|
@@ -90,16 +97,16 @@ function PlacesQueryInput({
|
|
|
90
97
|
)
|
|
91
98
|
] }),
|
|
92
99
|
predictions && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
93
|
-
|
|
100
|
+
chunkKBAY4F7D_cjs.CommandList,
|
|
94
101
|
{
|
|
95
102
|
className: chunkMGWZXPMF_cjs.cn(
|
|
96
103
|
"absolute z-50 w-full rounded-md border bg-white shadow-lg",
|
|
97
104
|
shouldOpenUpward ? "bottom-full" : "top-full"
|
|
98
105
|
),
|
|
99
106
|
children: [
|
|
100
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
101
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
102
|
-
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkKBAY4F7D_cjs.CommandEmpty, { children: "No results" }),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkKBAY4F7D_cjs.CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
chunkKBAY4F7D_cjs.CommandItem,
|
|
103
110
|
{
|
|
104
111
|
onSelect: () => handleSelect(prediction),
|
|
105
112
|
className: "truncate",
|
|
@@ -115,5 +122,5 @@ function PlacesQueryInput({
|
|
|
115
122
|
var PlacesQueryInput_default = PlacesQueryInput;
|
|
116
123
|
|
|
117
124
|
exports.PlacesQueryInput_default = PlacesQueryInput_default;
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-EYN3RHOF.cjs.map
|
|
126
|
+
//# sourceMappingURL=chunk-EYN3RHOF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/PlacesQueryInput.tsx"],"names":["useState","useRef","useCallback","autocomplete","useEffect","jsx","cn","jsxs","Command","CommandInput","LoaderCircle","CircleX","CommandList","CommandEmpty","CommandGroup","CommandItem"],"mappings":"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","file":"chunk-EYN3RHOF.cjs","sourcesContent":["'use client'\n\nimport { type PlaceAutocompleteResult } from '@googlemaps/google-maps-services-js'\nimport { CircleX, LoaderCircle } from 'lucide-react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/primitives/command'\nimport { autocomplete } from '@/lib/google'\nimport { cn } from '@/lib/utils'\n\n/**\n * The idea is of this type is to have a more specific type for the Place object,\n * without the repos that use it having to import the PlaceAutocompleteResult type.\n * 'place_id' can be used to query the Google Places API directly for more information about the place.\n */\nexport type Place = Pick<PlaceAutocompleteResult, 'description' | 'place_id'>\n\ntype Size = 'small' | 'normal' | 'large' | 'xlarge'\n\ninterface PlacesQueryInputProps {\n apiKey: string\n selected?: Place\n onSelect: (place?: Place) => void\n className?: string\n size?: Size\n}\n\nconst sizeClasses: Record<Size, string> = {\n small: 'h-8 text-xs',\n normal: 'h-9 text-sm',\n large: 'h-10 text-base',\n xlarge: 'h-11 text-base',\n}\n\nfunction PlacesQueryInput({\n apiKey,\n selected,\n onSelect,\n className,\n size = 'normal',\n}: Readonly<PlacesQueryInputProps>) {\n const [predictions, setPredictions] = useState<PlaceAutocompleteResult[] | null>(null)\n const [input, setInput] = useState(selected?.description ?? '')\n const [isLoadingPredictions, setIsLoadingPredictions] = useState(false)\n const [shouldOpenUpward, setShouldOpenUpward] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const inputRef = useRef<HTMLDivElement | null>(null)\n\n const debouncedAutocomplete = useCallback((value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(async () => {\n try {\n if (value.length > 2) {\n setIsLoadingPredictions(true)\n const fetchedPredictions = await autocomplete(value, apiKey)\n setIsLoadingPredictions(false)\n setPredictions(fetchedPredictions ?? [])\n } else {\n setPredictions(null)\n }\n } catch (error) {\n setIsLoadingPredictions(false)\n setPredictions([])\n console.error('Autocomplete error:', error)\n }\n }, 300)\n }, [])\n\n const handleInputChange = (value: string) => {\n setInput(value)\n debouncedAutocomplete(value)\n }\n\n const handleSelect = (prediction: PlaceAutocompleteResult) => {\n onSelect(prediction)\n setPredictions(null)\n setInput(prediction.description)\n }\n\n const handleClear = () => {\n onSelect()\n setPredictions(null)\n setInput('')\n }\n\n /** Close the dropdown when the input loses focus, with the timeout to allow the user to click on a prediction.\n * */\n const handleBlur = () => setTimeout(() => setPredictions(null), 200)\n\n useEffect(() => {\n const checkDropdownPosition = () => {\n if (inputRef.current) {\n const rect = inputRef.current.getBoundingClientRect()\n const windowHeight = window.innerHeight\n setShouldOpenUpward(rect.bottom + 200 > windowHeight)\n }\n }\n\n checkDropdownPosition()\n window.addEventListener('resize', checkDropdownPosition)\n return () => window.removeEventListener('resize', checkDropdownPosition)\n }, [])\n\n return (\n <div className={cn('relative w-full', className)} ref={inputRef} onBlur={handleBlur}>\n <Command>\n <div className=\"relative w-full\">\n <CommandInput\n placeholder=\"Type an address to search...\"\n value={input}\n onValueChange={handleInputChange}\n className={cn('truncate pr-8', sizeClasses[size])}\n />\n {isLoadingPredictions && (\n <LoaderCircle className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100\" />\n )}\n {input && (\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20\"\n onClick={handleClear}\n >\n <CircleX className=\"h-4 w-4 text-green-100\" />\n </button>\n )}\n </div>\n {predictions && (\n <CommandList\n className={cn(\n 'absolute z-50 w-full rounded-md border bg-white shadow-lg',\n shouldOpenUpward ? 'bottom-full' : 'top-full'\n )}\n >\n <CommandEmpty>No results</CommandEmpty>\n <CommandGroup>\n {predictions.map((prediction) => (\n <CommandItem\n key={prediction.place_id}\n onSelect={() => handleSelect(prediction)}\n className=\"truncate\"\n >\n {prediction.description}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n )}\n </Command>\n </div>\n )\n}\n\nexport default PlacesQueryInput\n"]}
|
|
@@ -12,7 +12,7 @@ var react = require('react');
|
|
|
12
12
|
var jsxRuntime = require('react/jsx-runtime');
|
|
13
13
|
|
|
14
14
|
var DatePicker = react.forwardRef(
|
|
15
|
-
({ label, description, required, classNames, value, onChange, error, id, testId }, ref) => {
|
|
15
|
+
({ label, description, required, classNames, value, onChange, error, id, testId, size }, ref) => {
|
|
16
16
|
const [date, setDate] = react.useState(null);
|
|
17
17
|
react.useEffect(() => {
|
|
18
18
|
setDate(value ?? null);
|
|
@@ -33,7 +33,7 @@ var DatePicker = react.forwardRef(
|
|
|
33
33
|
}
|
|
34
34
|
),
|
|
35
35
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkRKLUMDJB_cjs.Popover, { children: [
|
|
36
|
-
/* @__PURE__ */ jsxRuntime.jsx(chunkRKLUMDJB_cjs.PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkMGWZXPMF_cjs.cn(datePickerStyle(), classNames?.input), children: [
|
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRKLUMDJB_cjs.PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkMGWZXPMF_cjs.cn(datePickerStyle({ size }), classNames?.input), children: [
|
|
37
37
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Calendar, { size: 16 }),
|
|
38
38
|
date ? dateFns.format(date, "MM/dd/yyyy") : "Select a date"
|
|
39
39
|
] }) }),
|
|
@@ -53,38 +53,50 @@ var DatePicker = react.forwardRef(
|
|
|
53
53
|
] });
|
|
54
54
|
}
|
|
55
55
|
);
|
|
56
|
-
var datePickerStyle = cva.cva(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
56
|
+
var datePickerStyle = cva.cva(
|
|
57
|
+
[
|
|
58
|
+
"placeholder:text-grey-50",
|
|
59
|
+
"focus-visible:ring-ring",
|
|
60
|
+
"inline-flex",
|
|
61
|
+
"w-full",
|
|
62
|
+
"items-center",
|
|
63
|
+
"justify-start",
|
|
64
|
+
"gap-3",
|
|
65
|
+
"rounded-lg",
|
|
66
|
+
"bg-transparent",
|
|
67
|
+
"shadow-sm",
|
|
68
|
+
"transition-colors",
|
|
69
|
+
"focus-visible:outline-none",
|
|
70
|
+
"focus-visible:ring-1",
|
|
71
|
+
"disabled:cursor-not-allowed",
|
|
72
|
+
"disabled:opacity-50",
|
|
73
|
+
"appearance-none",
|
|
74
|
+
"[&::-webkit-search-cancel-button]:appearance-none",
|
|
75
|
+
"[&::-webkit-search-decoration]:appearance-none",
|
|
76
|
+
"[&::-webkit-search-results-button]:appearance-none",
|
|
77
|
+
"[&::-webkit-search-results-decoration]:appearance-none",
|
|
78
|
+
"[&::-ms-clear]:display-none",
|
|
79
|
+
"[&::-ms-reveal]:display-none",
|
|
80
|
+
"text-grey-80",
|
|
81
|
+
"border",
|
|
82
|
+
"border-grey-20",
|
|
83
|
+
"font-normal"
|
|
84
|
+
],
|
|
85
|
+
{
|
|
86
|
+
variants: {
|
|
87
|
+
size: {
|
|
88
|
+
small: "h-8 px-3 py-1 text-xs",
|
|
89
|
+
normal: "h-9 px-3 py-2 text-sm",
|
|
90
|
+
large: "h-10 px-4 py-2 text-base",
|
|
91
|
+
xlarge: "h-11 px-4 py-3 text-base"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
defaultVariants: {
|
|
95
|
+
size: "normal"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
);
|
|
87
99
|
|
|
88
100
|
exports.DatePicker = DatePicker;
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-F567WG2X.cjs.map
|
|
102
|
+
//# sourceMappingURL=chunk-F567WG2X.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/DatePicker.tsx"],"names":["forwardRef","useState","useEffect","cn","jsx","Label_default","Popover","PopoverTrigger","jsxs","CalendarIcon","format","PopoverContent","Calendar","ErrorMessage_default","cva"],"mappings":"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","file":"chunk-F567WG2X.cjs","sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'cva'\nimport { format } from 'date-fns'\nimport { Calendar as CalendarIcon } from 'lucide-react'\nimport { forwardRef, useEffect, useState } from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/primitives/popover'\nimport { Calendar } from '@/components/ui/calendar'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ntype DatePickerVariants = VariantProps<typeof datePickerStyle>\n\ntype Props = DatePickerVariants & {\n label?: string\n description?: string\n required?: boolean\n id?: string\n classNames?: {\n label?: string\n input?: string\n calendar?: string\n }\n value?: Date | null\n onChange?: (date: Date) => void\n error?: string\n testId?: string\n}\n\nexport const DatePicker = forwardRef<HTMLInputElement, Props>(\n ({ label, description, required, classNames, value, onChange, error, id, testId, size }, ref) => {\n const [date, setDate] = useState<Date | null>(null)\n\n useEffect(() => {\n setDate(value ?? null)\n }, [value])\n\n const handleDateSelect = (dateSelected: Date | undefined) => {\n if (!dateSelected) return\n onChange?.(dateSelected)\n setDate(dateSelected)\n }\n\n return (\n <div id={id} className={cn('flex w-auto flex-col gap-1')}>\n {label && (\n <Label\n text={label}\n required={required}\n description={description}\n className={classNames?.label}\n />\n )}\n <Popover>\n <PopoverTrigger data-testid={testId}>\n <div className={cn(datePickerStyle({ size }), classNames?.input)}>\n <CalendarIcon size={16} />\n {date ? format(date, 'MM/dd/yyyy') : 'Select a date'}\n </div>\n </PopoverTrigger>\n <PopoverContent ref={ref}>\n <Calendar\n mode=\"single\"\n selected={date || undefined}\n onSelect={handleDateSelect}\n captionLayout=\"dropdown\"\n showOutsideDays={true}\n className={classNames?.calendar}\n />\n </PopoverContent>\n </Popover>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\n\nconst datePickerStyle = cva(\n [\n 'placeholder:text-grey-50',\n 'focus-visible:ring-ring',\n 'inline-flex',\n 'w-full',\n 'items-center',\n 'justify-start',\n 'gap-3',\n 'rounded-lg',\n 'bg-transparent',\n 'shadow-sm',\n 'transition-colors',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'appearance-none',\n '[&::-webkit-search-cancel-button]:appearance-none',\n '[&::-webkit-search-decoration]:appearance-none',\n '[&::-webkit-search-results-button]:appearance-none',\n '[&::-webkit-search-results-decoration]:appearance-none',\n '[&::-ms-clear]:display-none',\n '[&::-ms-reveal]:display-none',\n 'text-grey-80',\n 'border',\n 'border-grey-20',\n 'font-normal',\n ],\n {\n variants: {\n size: {\n small: 'h-8 px-3 py-1 text-xs',\n normal: 'h-9 px-3 py-2 text-sm',\n large: 'h-10 px-4 py-2 text-base',\n xlarge: 'h-11 px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n"]}
|