@youngonesworks/ui 1.0.4 → 1.0.6
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/components/filters/index.d.ts +1 -1
- package/dist/components/modal/index.d.ts +2 -1
- package/dist/components/pageUnavailable/index.d.ts +1 -1
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/radioButton/index.d.ts +2 -2
- package/dist/hooks/phone/usePhoneNumberPrefix.d.ts +2 -1
- package/dist/index.cjs +370 -496
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +281 -422
- package/dist/index.js.map +1 -1
- package/dist/jsx-runtime-shim.d.ts +1 -3
- package/dist/styles/utilities.css +1 -1
- package/dist/styles/variables.css +6 -0
- package/dist/utils/formatIcon.d.ts +1 -1
- package/package.json +22 -24
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#region rolldown:runtime
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
//#region \0rolldown/runtime.js
|
|
5
4
|
var __create = Object.create;
|
|
6
5
|
var __defProp = Object.defineProperty;
|
|
7
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -22,40 +21,39 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
21
|
value: mod,
|
|
23
22
|
enumerable: true
|
|
24
23
|
}) : target, mod));
|
|
25
|
-
|
|
26
24
|
//#endregion
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
25
|
+
let react = require("react");
|
|
26
|
+
react = __toESM(react);
|
|
27
|
+
let _tabler_icons_react = require("@tabler/icons-react");
|
|
28
|
+
let clsx = require("clsx");
|
|
29
|
+
clsx = __toESM(clsx);
|
|
30
|
+
let tailwind_merge = require("tailwind-merge");
|
|
31
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
+
let _floating_ui_react = require("@floating-ui/react");
|
|
33
|
+
let react_day_picker = require("react-day-picker");
|
|
34
|
+
let date_fns = require("date-fns");
|
|
35
|
+
let date_fns_locale = require("date-fns/locale");
|
|
36
|
+
let react_dom = require("react-dom");
|
|
37
|
+
let react_tooltip = require("react-tooltip");
|
|
38
|
+
let phone = require("phone");
|
|
39
|
+
phone = __toESM(phone);
|
|
40
|
+
let country_list_with_dial_code_and_flag = require("country-list-with-dial-code-and-flag");
|
|
41
|
+
country_list_with_dial_code_and_flag = __toESM(country_list_with_dial_code_and_flag);
|
|
42
|
+
let _tiptap_extension_placeholder = require("@tiptap/extension-placeholder");
|
|
43
|
+
let _tiptap_extension_underline = require("@tiptap/extension-underline");
|
|
44
|
+
let _tiptap_react = require("@tiptap/react");
|
|
45
|
+
let _tiptap_starter_kit = require("@tiptap/starter-kit");
|
|
46
|
+
react.createElement;
|
|
47
|
+
react.createElement;
|
|
48
|
+
react.Fragment;
|
|
50
49
|
//#endregion
|
|
51
50
|
//#region src/utils/cn.ts
|
|
52
51
|
function cn(...inputs) {
|
|
53
52
|
return (0, tailwind_merge.twMerge)((0, clsx.default)(inputs));
|
|
54
53
|
}
|
|
55
|
-
|
|
56
54
|
//#endregion
|
|
57
55
|
//#region src/components/unstyledButton/index.tsx
|
|
58
|
-
const UnstyledButton = (0, react.forwardRef)(({ className
|
|
56
|
+
const UnstyledButton = (0, react.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
59
57
|
type: "button",
|
|
60
58
|
"data-component": "unstyledButton",
|
|
61
59
|
className: cn("appearance-none", className),
|
|
@@ -63,7 +61,6 @@ const UnstyledButton = (0, react.forwardRef)(({ className,...props }, ref) => /*
|
|
|
63
61
|
...props
|
|
64
62
|
}));
|
|
65
63
|
UnstyledButton.displayName = "UnstyledButton";
|
|
66
|
-
|
|
67
64
|
//#endregion
|
|
68
65
|
//#region src/components/accordion/AccordionItem.tsx
|
|
69
66
|
const AccordionItem = ({ controlContent, panelContent, style = "light", border = false, chevronPosition = "left", disabled = false, active = false, endContent, className }) => {
|
|
@@ -88,20 +85,20 @@ const AccordionItem = ({ controlContent, panelContent, style = "light", border =
|
|
|
88
85
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
89
86
|
onClick: () => setIsActive(!isActive),
|
|
90
87
|
className: `duration-300${isActive ? "rotate-180" : ""}`,
|
|
91
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
88
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconChevronDown, {
|
|
92
89
|
size: 18,
|
|
93
90
|
color: style === "dark" ? "white" : "black"
|
|
94
91
|
})
|
|
95
92
|
}),
|
|
96
93
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
97
94
|
onClick: () => setIsActive(!isActive),
|
|
98
|
-
className: `flex w-full flex-row justify-between ${style === "dark" && "text-white"} leading-8 text-
|
|
95
|
+
className: `flex w-full flex-row justify-between ${style === "dark" && "text-white"} leading-8 yo-text-h4`,
|
|
99
96
|
children: controlContent
|
|
100
97
|
}),
|
|
101
98
|
endContent
|
|
102
99
|
]
|
|
103
100
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
104
|
-
className: `transition-max-height overflow-hidden duration-500 ease-in-out ${isActive ? "max-h-1000" : "max-h-0"} leading-6 text-
|
|
101
|
+
className: `transition-max-height overflow-hidden duration-500 ease-in-out ${isActive ? "max-h-1000" : "max-h-0"} leading-6 yo-text-body`,
|
|
105
102
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
106
103
|
className: "px-4 py-3",
|
|
107
104
|
children: panelContent
|
|
@@ -109,7 +106,6 @@ const AccordionItem = ({ controlContent, panelContent, style = "light", border =
|
|
|
109
106
|
})]
|
|
110
107
|
}) });
|
|
111
108
|
};
|
|
112
|
-
|
|
113
109
|
//#endregion
|
|
114
110
|
//#region src/components/accordion/AccordionWrapper.tsx
|
|
115
111
|
const AccordionWrapper = ({ children, className }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -118,21 +114,16 @@ const AccordionWrapper = ({ children, className }) => /* @__PURE__ */ (0, react_
|
|
|
118
114
|
className: cn(className, "flex flex-col gap-2"),
|
|
119
115
|
children
|
|
120
116
|
});
|
|
121
|
-
|
|
122
117
|
//#endregion
|
|
123
118
|
//#region src/hooks/useMergeRefs.ts
|
|
124
119
|
function useMergeRefs(...refs) {
|
|
125
120
|
return (0, react.useCallback)((value) => {
|
|
126
121
|
refs.forEach((ref) => {
|
|
127
|
-
if (typeof ref === "function")
|
|
128
|
-
|
|
129
|
-
} else if (ref) {
|
|
130
|
-
ref.current = value;
|
|
131
|
-
}
|
|
122
|
+
if (typeof ref === "function") ref(value);
|
|
123
|
+
else if (ref) ref.current = value;
|
|
132
124
|
});
|
|
133
125
|
}, [refs]);
|
|
134
126
|
}
|
|
135
|
-
|
|
136
127
|
//#endregion
|
|
137
128
|
//#region src/components/tooltip/index.tsx
|
|
138
129
|
const sizeClasses = {
|
|
@@ -144,23 +135,23 @@ const sizeClasses = {
|
|
|
144
135
|
const Tooltip = ({ content, children, passedOpen = false, size = "md", variant = "default" }) => {
|
|
145
136
|
const [isOpen, setIsOpen] = (0, react.useState)(passedOpen);
|
|
146
137
|
const arrowRef = (0, react.useRef)(null);
|
|
147
|
-
const { refs, floatingStyles, context } = (0,
|
|
138
|
+
const { refs, floatingStyles, context } = (0, _floating_ui_react.useFloating)({
|
|
148
139
|
open: isOpen,
|
|
149
140
|
onOpenChange: setIsOpen,
|
|
150
141
|
placement: "top",
|
|
151
142
|
middleware: [
|
|
152
|
-
variant === "default" ? (0,
|
|
153
|
-
(0,
|
|
154
|
-
(0,
|
|
155
|
-
(0,
|
|
143
|
+
variant === "default" ? (0, _floating_ui_react.offset)(20) : (0, _floating_ui_react.offset)(25),
|
|
144
|
+
(0, _floating_ui_react.flip)(),
|
|
145
|
+
(0, _floating_ui_react.shift)(),
|
|
146
|
+
(0, _floating_ui_react.arrow)({ element: arrowRef })
|
|
156
147
|
],
|
|
157
|
-
whileElementsMounted:
|
|
148
|
+
whileElementsMounted: _floating_ui_react.autoUpdate
|
|
158
149
|
});
|
|
159
|
-
const hover = (0,
|
|
160
|
-
const focus = (0,
|
|
161
|
-
const dismiss = (0,
|
|
162
|
-
const role = (0,
|
|
163
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
150
|
+
const hover = (0, _floating_ui_react.useHover)(context, { move: false });
|
|
151
|
+
const focus = (0, _floating_ui_react.useFocus)(context);
|
|
152
|
+
const dismiss = (0, _floating_ui_react.useDismiss)(context);
|
|
153
|
+
const role = (0, _floating_ui_react.useRole)(context, { role: "tooltip" });
|
|
154
|
+
const { getReferenceProps, getFloatingProps } = (0, _floating_ui_react.useInteractions)([
|
|
164
155
|
hover,
|
|
165
156
|
focus,
|
|
166
157
|
dismiss,
|
|
@@ -184,9 +175,9 @@ const Tooltip = ({ content, children, passedOpen = false, size = "md", variant =
|
|
|
184
175
|
className: "w-full rounded bg-gray-800 pt-[3px] text-white",
|
|
185
176
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
186
177
|
"data-testid": "tooltip-content",
|
|
187
|
-
className: `${sizeClasses[size]} px-2 py-1
|
|
178
|
+
className: `${sizeClasses[size]} px-2 py-1 yo-text-small text-white`,
|
|
188
179
|
children: content
|
|
189
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
180
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingArrow, {
|
|
190
181
|
ref: arrowRef,
|
|
191
182
|
context,
|
|
192
183
|
width: 10,
|
|
@@ -197,12 +188,12 @@ const Tooltip = ({ content, children, passedOpen = false, size = "md", variant =
|
|
|
197
188
|
})]
|
|
198
189
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
199
190
|
"data-testid": "tooltip-container",
|
|
200
|
-
className: "
|
|
191
|
+
className: "pt-[3px]",
|
|
201
192
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
202
193
|
"data-testid": "tooltip-content",
|
|
203
|
-
className: `${sizeClasses[size]} overflow-hidden bg-white p-5 px-2 py-1 text-start text-
|
|
194
|
+
className: `${sizeClasses[size]} overflow-hidden bg-white p-5 px-2 py-1 text-start yo-text-small text-white`,
|
|
204
195
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: content })
|
|
205
|
-
}), size === "md" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
196
|
+
}), size === "md" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingArrow, {
|
|
206
197
|
ref: arrowRef,
|
|
207
198
|
context,
|
|
208
199
|
width: 25,
|
|
@@ -211,7 +202,7 @@ const Tooltip = ({ content, children, passedOpen = false, size = "md", variant =
|
|
|
211
202
|
fill: "white",
|
|
212
203
|
className: "drop-shadow-xl",
|
|
213
204
|
"data-testid": "tooltip-arrow"
|
|
214
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
205
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingArrow, {
|
|
215
206
|
ref: arrowRef,
|
|
216
207
|
context,
|
|
217
208
|
width: 10,
|
|
@@ -225,65 +216,52 @@ const Tooltip = ({ content, children, passedOpen = false, size = "md", variant =
|
|
|
225
216
|
})] });
|
|
226
217
|
};
|
|
227
218
|
Tooltip.displayName = "Tooltip";
|
|
228
|
-
|
|
229
219
|
//#endregion
|
|
230
220
|
//#region src/utils/enums.ts
|
|
231
|
-
let ACTION_ICON_STYLE_VARIANT = /* @__PURE__ */ function(ACTION_ICON_STYLE_VARIANT
|
|
232
|
-
ACTION_ICON_STYLE_VARIANT
|
|
233
|
-
ACTION_ICON_STYLE_VARIANT
|
|
234
|
-
ACTION_ICON_STYLE_VARIANT
|
|
235
|
-
ACTION_ICON_STYLE_VARIANT
|
|
236
|
-
return ACTION_ICON_STYLE_VARIANT
|
|
221
|
+
let ACTION_ICON_STYLE_VARIANT = /* @__PURE__ */ function(ACTION_ICON_STYLE_VARIANT) {
|
|
222
|
+
ACTION_ICON_STYLE_VARIANT["DEFAULT"] = "default";
|
|
223
|
+
ACTION_ICON_STYLE_VARIANT["TRANSPARENT"] = "transparent";
|
|
224
|
+
ACTION_ICON_STYLE_VARIANT["SMALL"] = "small";
|
|
225
|
+
ACTION_ICON_STYLE_VARIANT["ROUND"] = "round";
|
|
226
|
+
return ACTION_ICON_STYLE_VARIANT;
|
|
237
227
|
}({});
|
|
238
|
-
let THEME_ICON_STYLE_VARIANT = /* @__PURE__ */ function(THEME_ICON_STYLE_VARIANT
|
|
239
|
-
THEME_ICON_STYLE_VARIANT
|
|
240
|
-
return THEME_ICON_STYLE_VARIANT
|
|
228
|
+
let THEME_ICON_STYLE_VARIANT = /* @__PURE__ */ function(THEME_ICON_STYLE_VARIANT) {
|
|
229
|
+
THEME_ICON_STYLE_VARIANT["SECONDARY_WITH_BACKGROUND"] = "secondary-with-background";
|
|
230
|
+
return THEME_ICON_STYLE_VARIANT;
|
|
241
231
|
}({});
|
|
242
|
-
let COLOR = /* @__PURE__ */ function(COLOR
|
|
243
|
-
COLOR
|
|
244
|
-
COLOR
|
|
245
|
-
COLOR
|
|
246
|
-
COLOR
|
|
247
|
-
COLOR
|
|
248
|
-
COLOR
|
|
249
|
-
COLOR
|
|
250
|
-
COLOR
|
|
251
|
-
COLOR
|
|
252
|
-
COLOR
|
|
253
|
-
COLOR
|
|
254
|
-
COLOR
|
|
255
|
-
COLOR
|
|
256
|
-
COLOR
|
|
257
|
-
COLOR
|
|
258
|
-
COLOR
|
|
259
|
-
COLOR
|
|
260
|
-
COLOR
|
|
261
|
-
COLOR
|
|
262
|
-
COLOR
|
|
263
|
-
COLOR
|
|
264
|
-
COLOR
|
|
265
|
-
COLOR
|
|
266
|
-
COLOR
|
|
267
|
-
COLOR
|
|
268
|
-
COLOR
|
|
269
|
-
COLOR
|
|
270
|
-
COLOR
|
|
271
|
-
COLOR
|
|
272
|
-
COLOR
|
|
273
|
-
return COLOR
|
|
232
|
+
let COLOR = /* @__PURE__ */ function(COLOR) {
|
|
233
|
+
COLOR["PRIMARY"] = "primary";
|
|
234
|
+
COLOR["BLACK"] = "black";
|
|
235
|
+
COLOR["NAVY_BLUE"] = "navy-blue";
|
|
236
|
+
COLOR["LIGHT_BLUE"] = "light-blue";
|
|
237
|
+
COLOR["LIGHT_BLUE_DISABLED"] = "light-blue-disabled";
|
|
238
|
+
COLOR["GREEN"] = "green";
|
|
239
|
+
COLOR["GREEN_LIGHT"] = "green-light";
|
|
240
|
+
COLOR["SECONDARY"] = "secondary";
|
|
241
|
+
COLOR["SECONDARY_LIGHT"] = "secondary-light";
|
|
242
|
+
COLOR["ORANGE"] = "orange";
|
|
243
|
+
COLOR["ORANGE_LIGHT"] = "orange-light";
|
|
244
|
+
COLOR["ACCENT_BLUE"] = "accent-blue";
|
|
245
|
+
COLOR["ACCENT_BLUE_LIGHT"] = "accent-blue-light";
|
|
246
|
+
COLOR["YELLOW"] = "yellow";
|
|
247
|
+
COLOR["CHECK"] = "check";
|
|
248
|
+
COLOR["WARNING"] = "warning";
|
|
249
|
+
COLOR["ERROR"] = "error";
|
|
250
|
+
COLOR["SUCCESS"] = "success";
|
|
251
|
+
COLOR["WARNING_LIGHT"] = "warning-light";
|
|
252
|
+
COLOR["ULTRA_LIGHT_BLUE"] = "ultra-light-blue";
|
|
253
|
+
COLOR["ULTRA_LIGHT_GRAY"] = "ultra-light-gray";
|
|
254
|
+
COLOR["ULTRA_LIGHT_BLUE_GRAY"] = "ultra-light-blue-gray";
|
|
255
|
+
COLOR["TURQUOISE"] = "turquoise";
|
|
256
|
+
COLOR["RED"] = "red";
|
|
257
|
+
COLOR["DARK_GRAY"] = "dark-gray";
|
|
258
|
+
COLOR["GRAY"] = "gray";
|
|
259
|
+
COLOR["WHITE"] = "white";
|
|
260
|
+
COLOR["PURPLE"] = "purple";
|
|
261
|
+
COLOR["PURPLE_LIGHT"] = "purple-light";
|
|
262
|
+
COLOR["NAVY_BLUE_SHADES"] = "navy-blue-shades";
|
|
263
|
+
return COLOR;
|
|
274
264
|
}({});
|
|
275
|
-
let REGION = /* @__PURE__ */ function(REGION$1) {
|
|
276
|
-
REGION$1["NETHERLANDS"] = "nl";
|
|
277
|
-
REGION$1["BELGIUM"] = "nl-BE";
|
|
278
|
-
REGION$1["UNITED_KINGDOM"] = "gb";
|
|
279
|
-
return REGION$1;
|
|
280
|
-
}({});
|
|
281
|
-
let TOOLTIP_COLOR = /* @__PURE__ */ function(TOOLTIP_COLOR$1) {
|
|
282
|
-
TOOLTIP_COLOR$1["DEFAULT"] = "default";
|
|
283
|
-
TOOLTIP_COLOR$1["WHITE"] = "white";
|
|
284
|
-
return TOOLTIP_COLOR$1;
|
|
285
|
-
}({});
|
|
286
|
-
|
|
287
265
|
//#endregion
|
|
288
266
|
//#region src/utils/formatIcon.ts
|
|
289
267
|
const globalDefaultFormatAttributes = {};
|
|
@@ -298,13 +276,12 @@ function formatIcon(icon, defaultFormatAttributes) {
|
|
|
298
276
|
...globalDefaultFormatAttributes,
|
|
299
277
|
...defaultFormatAttributes,
|
|
300
278
|
...icon.props,
|
|
301
|
-
|
|
279
|
+
className: (0, clsx.default)(globalDefaultFormatAttributes.className, defaultFormatAttributes.className, icon.props.className)
|
|
302
280
|
});
|
|
303
281
|
}
|
|
304
|
-
|
|
305
282
|
//#endregion
|
|
306
283
|
//#region src/components/actionIcon/index.tsx
|
|
307
|
-
const ActionIcon = ({ ref, title, disabled = false, styleVariant = "default", icon, type = "button", "data-testid": testId, iconSize = 20, strokeWidth = 1, onClick, className
|
|
284
|
+
const ActionIcon = ({ ref, title, disabled = false, styleVariant = "default", icon, type = "button", "data-testid": testId, iconSize = 20, strokeWidth = 1, onClick, className, ...props }) => {
|
|
308
285
|
const variantClassNames = (0, clsx.default)({
|
|
309
286
|
"active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500": styleVariant === ACTION_ICON_STYLE_VARIANT.DEFAULT,
|
|
310
287
|
"active:translate-y-[1px] border-none content-center flex items-center justify-center rounded-[4px] border text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500": styleVariant === ACTION_ICON_STYLE_VARIANT.TRANSPARENT,
|
|
@@ -334,37 +311,34 @@ const ActionIcon = ({ ref, title, disabled = false, styleVariant = "default", ic
|
|
|
334
311
|
}) });
|
|
335
312
|
};
|
|
336
313
|
ActionIcon.displayName = "ActionIcon";
|
|
337
|
-
|
|
338
314
|
//#endregion
|
|
339
315
|
//#region src/components/alert/index.tsx
|
|
340
|
-
const Alert = ({ show, title, description, type = "warning", button, plain = false, closable = false, className, icon, onClose
|
|
316
|
+
const Alert = ({ show, title, description, type = "warning", button, plain = false, closable = false, className, icon, onClose, ...props }) => {
|
|
341
317
|
if (!show || !title) return null;
|
|
342
|
-
const
|
|
318
|
+
const { bg, iconColor, Icon } = {
|
|
343
319
|
success: {
|
|
344
320
|
bg: "bg-green-light",
|
|
345
321
|
iconColor: "text-green",
|
|
346
|
-
Icon:
|
|
322
|
+
Icon: _tabler_icons_react.IconCircleCheck
|
|
347
323
|
},
|
|
348
324
|
warning: {
|
|
349
325
|
bg: "bg-warning-light",
|
|
350
326
|
iconColor: "text-warning",
|
|
351
|
-
Icon:
|
|
327
|
+
Icon: _tabler_icons_react.IconAlertTriangle
|
|
352
328
|
},
|
|
353
329
|
error: {
|
|
354
330
|
bg: "bg-red-50",
|
|
355
331
|
iconColor: "text-red-500",
|
|
356
|
-
Icon:
|
|
332
|
+
Icon: _tabler_icons_react.IconAlertCircle
|
|
357
333
|
}
|
|
358
|
-
};
|
|
359
|
-
const
|
|
360
|
-
const { bg, iconColor, Icon } = config;
|
|
361
|
-
const descriptionId = description ? "alert-desc" : undefined;
|
|
334
|
+
}[type];
|
|
335
|
+
const descriptionId = description ? "alert-desc" : void 0;
|
|
362
336
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
363
337
|
role: "alert",
|
|
364
338
|
"aria-live": "assertive",
|
|
365
339
|
"aria-atomic": "true",
|
|
366
340
|
"aria-describedby": descriptionId,
|
|
367
|
-
className: cn("flex justify-between items-start rounded-md px-5 py-3", bg, plain && "border-none py-4 text-
|
|
341
|
+
className: cn("flex justify-between items-start rounded-md px-5 py-3", bg, plain && "border-none py-4 yo-text-small-medium", className),
|
|
368
342
|
"data-component": "Alert",
|
|
369
343
|
"data-testid": "alert",
|
|
370
344
|
...props,
|
|
@@ -383,17 +357,17 @@ const Alert = ({ show, title, description, type = "warning", button, plain = fal
|
|
|
383
357
|
"data-testid": "alert-icon",
|
|
384
358
|
"aria-hidden": "true"
|
|
385
359
|
})), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
386
|
-
className: "yo-text-
|
|
360
|
+
className: "yo-text-body",
|
|
387
361
|
children: title
|
|
388
362
|
})]
|
|
389
363
|
}),
|
|
390
364
|
description && (typeof description === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
391
365
|
id: descriptionId,
|
|
392
|
-
className: "text-
|
|
366
|
+
className: "yo-text-small text-color-gray-900",
|
|
393
367
|
children: description
|
|
394
368
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
395
369
|
id: descriptionId,
|
|
396
|
-
className: "text-
|
|
370
|
+
className: "yo-text-small text-color-gray-900",
|
|
397
371
|
children: description
|
|
398
372
|
})),
|
|
399
373
|
button && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: button })
|
|
@@ -404,7 +378,7 @@ const Alert = ({ show, title, description, type = "warning", button, plain = fal
|
|
|
404
378
|
onClick: onClose,
|
|
405
379
|
"aria-label": "Dismiss alert",
|
|
406
380
|
"data-testid": "alert-close",
|
|
407
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
381
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconX, {
|
|
408
382
|
size: 18,
|
|
409
383
|
"aria-hidden": "true"
|
|
410
384
|
})
|
|
@@ -412,7 +386,6 @@ const Alert = ({ show, title, description, type = "warning", button, plain = fal
|
|
|
412
386
|
});
|
|
413
387
|
};
|
|
414
388
|
Alert.displayName = "Alert";
|
|
415
|
-
|
|
416
389
|
//#endregion
|
|
417
390
|
//#region src/components/appleAppButtonIcon/index.tsx
|
|
418
391
|
const AppleAppButtonIcon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
@@ -553,10 +526,9 @@ const AppleAppButtonIcon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs
|
|
|
553
526
|
})
|
|
554
527
|
}) })]
|
|
555
528
|
});
|
|
556
|
-
|
|
557
529
|
//#endregion
|
|
558
530
|
//#region src/icons/IconLoading.tsx
|
|
559
|
-
const IconLoading = ({ className
|
|
531
|
+
const IconLoading = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
560
532
|
"data-component": "button",
|
|
561
533
|
"data-testid": "loading-svg-button",
|
|
562
534
|
viewBox: "0 0 256 256",
|
|
@@ -640,10 +612,9 @@ const IconLoading = ({ className,...props }) => /* @__PURE__ */ (0, react_jsx_ru
|
|
|
640
612
|
})
|
|
641
613
|
]
|
|
642
614
|
});
|
|
643
|
-
|
|
644
615
|
//#endregion
|
|
645
616
|
//#region src/components/textInput/index.tsx
|
|
646
|
-
const TextInput = react.default.forwardRef(({ rightSection, leftSection, className, error, autoFocus, label, maxLength, enablePasswordManagerAutofill = false, onBlur, disabled, loadingState, onKeyDown, min = "0", max, autoComplete, showRightSection = true, step, wrapperClassName, password = false
|
|
617
|
+
const TextInput = react.default.forwardRef(({ rightSection, leftSection, className, error, autoFocus, label, maxLength, enablePasswordManagerAutofill = false, onBlur, disabled, loadingState, onKeyDown, min = "0", max, autoComplete, showRightSection = true, step, wrapperClassName, password = false, ...props }, ref) => {
|
|
647
618
|
const [showPassword, setShowPassword] = react.default.useState(false);
|
|
648
619
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
649
620
|
"data-component": "TextInput",
|
|
@@ -652,14 +623,14 @@ const TextInput = react.default.forwardRef(({ rightSection, leftSection, classNa
|
|
|
652
623
|
children: [
|
|
653
624
|
typeof label === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
654
625
|
htmlFor: props.id,
|
|
655
|
-
className: "mb-2 flex items-center gap-1
|
|
626
|
+
className: "mb-2 flex items-center gap-1 yo-text-label",
|
|
656
627
|
children: label
|
|
657
628
|
}) : label,
|
|
658
629
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
659
630
|
className: "relative",
|
|
660
631
|
children: [
|
|
661
632
|
leftSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
662
|
-
className: (0, clsx.default)("absolute top-0 left-0 flex h-10 w-12 content-center items-center justify-center align-middle text-
|
|
633
|
+
className: (0, clsx.default)("absolute top-0 left-0 flex h-10 w-12 content-center items-center justify-center align-middle yo-text-small font-medium text-black"),
|
|
663
634
|
children: leftSection
|
|
664
635
|
}),
|
|
665
636
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
@@ -673,31 +644,31 @@ const TextInput = react.default.forwardRef(({ rightSection, leftSection, classNa
|
|
|
673
644
|
step,
|
|
674
645
|
maxLength,
|
|
675
646
|
className: (0, clsx.default)(`${loadingState ? "cursor-not-allowed" : ""}`, `${disabled ? "text-gray-500" : "text-gray-900"} selection:bg-turquoise-200 focus:border-turquoise-500 focus:ring-turquoise-500 active:border-turquoise-500 active:ring-turquoise-500 h-10 w-full rounded-[4px] border border-gray-200 bg-ultra-light-gray px-3 text-sm font-normal outline-hidden ${rightSection && "pr-12"} ${leftSection && "pl-12"} ${error && "border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500"}`, className),
|
|
676
|
-
"aria-busy": loadingState ||
|
|
677
|
-
"data-lpignore": enablePasswordManagerAutofill ?
|
|
678
|
-
"data-1p-ignore": enablePasswordManagerAutofill ?
|
|
647
|
+
"aria-busy": loadingState || void 0,
|
|
648
|
+
"data-lpignore": enablePasswordManagerAutofill ? void 0 : "true",
|
|
649
|
+
"data-1p-ignore": enablePasswordManagerAutofill ? void 0 : "true",
|
|
679
650
|
ref,
|
|
680
651
|
...props,
|
|
681
652
|
type: password ? showPassword ? "text" : "password" : "text"
|
|
682
653
|
}),
|
|
683
654
|
loadingState ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
684
|
-
className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-
|
|
655
|
+
className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle yo-text-small-medium text-black",
|
|
685
656
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconLoading, {
|
|
686
657
|
className: "h-4 w-4 animate-spin text-gray-500",
|
|
687
658
|
"aria-label": "Loading"
|
|
688
659
|
})
|
|
689
660
|
}) : rightSection && showRightSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
690
|
-
className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-
|
|
661
|
+
className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle yo-text-small-medium text-black",
|
|
691
662
|
children: rightSection
|
|
692
663
|
}),
|
|
693
664
|
password && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
694
|
-
className: "absolute inset-y-0 right-4 flex content-center items-center justify-center align-middle text-
|
|
695
|
-
children: showPassword ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
665
|
+
className: "absolute inset-y-0 right-4 flex content-center items-center justify-center align-middle yo-text-small-medium text-black",
|
|
666
|
+
children: showPassword ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconEyeCheck, {
|
|
696
667
|
"data-testid": "password-visibility-toggle",
|
|
697
668
|
className: "cursor-pointer text-gray-500",
|
|
698
669
|
size: 15,
|
|
699
670
|
onClick: () => setShowPassword(false)
|
|
700
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
671
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconEyeOff, {
|
|
701
672
|
"data-testid": "password-visibility-toggle",
|
|
702
673
|
className: "cursor-pointer text-gray-500",
|
|
703
674
|
size: 15,
|
|
@@ -707,13 +678,12 @@ const TextInput = react.default.forwardRef(({ rightSection, leftSection, classNa
|
|
|
707
678
|
]
|
|
708
679
|
}),
|
|
709
680
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
710
|
-
className: "mt-2 text-
|
|
681
|
+
className: "mt-2 yo-text-caption text-red-500",
|
|
711
682
|
children: error
|
|
712
683
|
})
|
|
713
684
|
]
|
|
714
685
|
});
|
|
715
686
|
});
|
|
716
|
-
|
|
717
687
|
//#endregion
|
|
718
688
|
//#region src/components/autoCompleteInput/index.tsx
|
|
719
689
|
const AutoCompleteInput = ({ label, onChange, onFocus, inputValue, showSuggestions, handleOnKeyDown, children, error, rightSection, inputRef }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -734,7 +704,6 @@ const AutoCompleteInput = ({ label, onChange, onFocus, inputValue, showSuggestio
|
|
|
734
704
|
"aria-controls": "suggestions-googlemaps-location-list"
|
|
735
705
|
}), showSuggestions && inputValue && children]
|
|
736
706
|
});
|
|
737
|
-
|
|
738
707
|
//#endregion
|
|
739
708
|
//#region src/components/avatar/index.tsx
|
|
740
709
|
const radiusFormatter = {
|
|
@@ -760,10 +729,9 @@ const Avatar = ({ src, alt = "", size = 50, radius = 100, "data-testid": dataTes
|
|
|
760
729
|
})
|
|
761
730
|
});
|
|
762
731
|
Avatar.displayName = "Avatar";
|
|
763
|
-
|
|
764
732
|
//#endregion
|
|
765
733
|
//#region src/components/avatarIndicator/index.tsx
|
|
766
|
-
const AvatarIndicator = ({ indicatorCount, className
|
|
734
|
+
const AvatarIndicator = ({ indicatorCount, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
767
735
|
className: cn("grid h-5 min-w-5 w-fit flex-col place-content-center items-center justify-center rounded-full bg-white px-0.5", className),
|
|
768
736
|
"data-component": "AvatarIndicator",
|
|
769
737
|
"data-testid": "AvatarIndicator",
|
|
@@ -773,15 +741,14 @@ const AvatarIndicator = ({ indicatorCount, className,...props }) => /* @__PURE__
|
|
|
773
741
|
children: `+${indicatorCount}`
|
|
774
742
|
})
|
|
775
743
|
});
|
|
776
|
-
|
|
777
744
|
//#endregion
|
|
778
745
|
//#region src/components/badge/index.tsx
|
|
779
|
-
const Badge = ({ styleVariant = COLOR.ACCENT_BLUE, className, favorite, children
|
|
746
|
+
const Badge = ({ styleVariant = COLOR.ACCENT_BLUE, className, favorite, children, ...props }) => {
|
|
780
747
|
if (!children) return null;
|
|
781
748
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
782
749
|
"data-testid": "badge",
|
|
783
750
|
"data-component": "Badge",
|
|
784
|
-
className: cn("inline-flex max-w-full place-content-center items-center px-2.5 align-middle text-
|
|
751
|
+
className: cn("inline-flex max-w-full place-content-center items-center px-2.5 align-middle yo-text-label leading-[20px] tracking-wide text-wrap whitespace-normal normal-case rounded-sm", {
|
|
785
752
|
"bg-accent-blue-light text-accent-blue": styleVariant === COLOR.ACCENT_BLUE,
|
|
786
753
|
"bg-green-light text-green": styleVariant === COLOR.GREEN_LIGHT,
|
|
787
754
|
"bg-red-50 text-red-500": styleVariant === COLOR.RED,
|
|
@@ -803,13 +770,12 @@ const Badge = ({ styleVariant = COLOR.ACCENT_BLUE, className, favorite, children
|
|
|
803
770
|
});
|
|
804
771
|
};
|
|
805
772
|
Badge.displayName = "Badge";
|
|
806
|
-
|
|
807
773
|
//#endregion
|
|
808
774
|
//#region src/components/bigBadge/index.tsx
|
|
809
|
-
const BigBadge = ({ styleVariant = COLOR.GREEN, className, children
|
|
775
|
+
const BigBadge = ({ styleVariant = COLOR.GREEN, className, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
810
776
|
"data-component": "BigBadge",
|
|
811
777
|
"data-testid": "big-badge",
|
|
812
|
-
className: cn("grid h-9 max-w-full min-w-[140px] place-content-center rounded-full border border-solid px-6 py-1 text-
|
|
778
|
+
className: cn("grid h-9 max-w-full min-w-[140px] place-content-center rounded-full border border-solid px-6 py-1 yo-text-small-medium whitespace-nowrap lowercase", {
|
|
813
779
|
"border-green text-green bg-white": styleVariant === COLOR.GREEN,
|
|
814
780
|
"border-accent-blue text-accent-blue bg-white": styleVariant === COLOR.ACCENT_BLUE,
|
|
815
781
|
"border-orange text-orange bg-white": styleVariant === COLOR.ORANGE,
|
|
@@ -822,19 +788,17 @@ const BigBadge = ({ styleVariant = COLOR.GREEN, className, children,...props })
|
|
|
822
788
|
...props,
|
|
823
789
|
children
|
|
824
790
|
});
|
|
825
|
-
|
|
826
791
|
//#endregion
|
|
827
792
|
//#region src/components/breadCrumb/index.tsx
|
|
828
793
|
const BreadCrumb = ({ children, LinkText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkText, {
|
|
829
794
|
"data-component": "BreadCrumb",
|
|
830
795
|
classNames: "flex items-center",
|
|
831
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
796
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconArrowNarrowLeft, { size: 20 }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
832
797
|
className: "flex items-center gap-5",
|
|
833
798
|
children
|
|
834
799
|
})] })
|
|
835
800
|
});
|
|
836
801
|
BreadCrumb.displayName = "BreadCrumb";
|
|
837
|
-
|
|
838
802
|
//#endregion
|
|
839
803
|
//#region src/components/button/buttonVariants.ts
|
|
840
804
|
const defaultButtonStyling = "justify-center group relative flex items-center gap-2 cursor-pointer border rounded py-2 px-5 text-sx md:text-sm md:font-medium font-medium hover:outline-hidden focus:outline-hidden disabled:cursor-not-allowed transition-colors duration-100 ease-in-out";
|
|
@@ -843,16 +807,15 @@ const buttonVariants = {
|
|
|
843
807
|
secondary: (0, clsx.default)(defaultButtonStyling, "border-solid border-gray-200 bg-white text-black hover:border-gray-800 hover:bg-gray-50 hover:fill-white disabled:text-gray-800 disabled:hover:border-gray-200 disabled:hover:bg-white"),
|
|
844
808
|
danger: (0, clsx.default)(defaultButtonStyling, "border-transparent bg-red-500 text-white hover:bg-red-700 disabled:bg-red-100 disabled:hover:bg-red-100"),
|
|
845
809
|
link: (0, clsx.default)(defaultButtonStyling, "border-transparent bg-transparent text-accent-blue hover:bg-gray-50 disabled:bg-transparent disabled:text-gray-800 disabled:hover:bg-transparent"),
|
|
846
|
-
outline: (0, clsx.default)(defaultButtonStyling, "border-solid border-gray-200 bg-transparent
|
|
810
|
+
outline: (0, clsx.default)(defaultButtonStyling, "border-solid border-gray-200 bg-transparent hover:border-gray-800 hover:bg-[rgba(255,255,255,0.1)] disabled:text-gray-800 disabled:hover:border-gray-200 disabled:hover:bg-white"),
|
|
847
811
|
search: (0, clsx.default)(defaultButtonStyling, "absolute top-0 right-0 h-full w-[50px] border-0 bg-transparent bg-no-repeat"),
|
|
848
812
|
icon__primary: (0, clsx.default)(defaultButtonStyling, "flex! items-center justify-center"),
|
|
849
813
|
icon__danger: (0, clsx.default)(defaultButtonStyling, "flex! items-center justify-center"),
|
|
850
814
|
action: (0, clsx.default)(defaultButtonStyling, "w-full bg-transparent border border-gray-200 whitespace-nowrap", "lg:w-[36px] lg:h-[36px]", "lg:p-0 lg:gap-0", "lg:hover:bg-transparent lg:hover:border-black", "lg:[&_svg]:-ml-2 lg:[&_svg]:-mr-2")
|
|
851
815
|
};
|
|
852
|
-
|
|
853
816
|
//#endregion
|
|
854
817
|
//#region src/components/button/index.tsx
|
|
855
|
-
function Button({ type = "button", variant = "primary", ariaLabel, block = false, isLoading = false, icon: iconFromProps = null, iconRight = false, onClick, className, children, dataTestId
|
|
818
|
+
function Button({ type = "button", variant = "primary", ariaLabel, block = false, isLoading = false, icon: iconFromProps = null, iconRight = false, onClick, className, children, dataTestId, ...props }) {
|
|
856
819
|
const loadingIcon = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconLoading, { className: "animate-spin-slow mr-2 stroke-current" });
|
|
857
820
|
const icon = isLoading ? loadingIcon : iconFromProps;
|
|
858
821
|
const formattedIcon = icon ? formatIcon(icon, { className: (0, clsx.default)({
|
|
@@ -866,7 +829,7 @@ function Button({ type = "button", variant = "primary", ariaLabel, block = false
|
|
|
866
829
|
type,
|
|
867
830
|
"aria-label": ariaLabel,
|
|
868
831
|
"data-testid": dataTestId,
|
|
869
|
-
className: cn(buttonVariants[variant], className, block && "w-full text-
|
|
832
|
+
className: cn(buttonVariants[variant], className, block && "w-full yo-text-small"),
|
|
870
833
|
onClick: handleOnClick,
|
|
871
834
|
...props,
|
|
872
835
|
children: [
|
|
@@ -877,10 +840,9 @@ function Button({ type = "button", variant = "primary", ariaLabel, block = false
|
|
|
877
840
|
});
|
|
878
841
|
}
|
|
879
842
|
Button.displayName = "Button";
|
|
880
|
-
|
|
881
843
|
//#endregion
|
|
882
844
|
//#region src/components/checkbox/index.tsx
|
|
883
|
-
const CheckboxComponent = ({ size = "md", className, error, mediumBoldText, label, labelClassName, indeterminate = false, disabled = false
|
|
845
|
+
const CheckboxComponent = ({ size = "md", className, error, mediumBoldText, label, labelClassName, indeterminate = false, disabled = false, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
884
846
|
"data-testid": "checkbox-wrapper",
|
|
885
847
|
className: cn("relative grid gap-2", className),
|
|
886
848
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
@@ -929,51 +891,48 @@ const CheckboxComponent = ({ size = "md", className, error, mediumBoldText, labe
|
|
|
929
891
|
]
|
|
930
892
|
}), label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
931
893
|
"data-testid": "checkbox-label",
|
|
932
|
-
className: cn("grow text-
|
|
894
|
+
className: cn("grow yo-text-small", labelClassName, { "font-medium": mediumBoldText }),
|
|
933
895
|
children: label
|
|
934
896
|
})]
|
|
935
897
|
}), error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
|
|
936
|
-
className: "text-
|
|
898
|
+
className: "yo-text-caption text-red-500",
|
|
937
899
|
children: error
|
|
938
900
|
})]
|
|
939
901
|
});
|
|
940
902
|
const Checkbox = (0, react.forwardRef)(CheckboxComponent);
|
|
941
|
-
|
|
942
903
|
//#endregion
|
|
943
904
|
//#region src/components/popover/index.tsx
|
|
944
|
-
const Popover = (0, react.forwardRef)(({ content, children, hoverEnabled = false, passedOpen = false, placement = "right", style = "card", isMobile = false, className }, ref) => {
|
|
905
|
+
const Popover = (0, react.forwardRef)(({ content, children, hoverEnabled = false, passedOpen = false, placement = "right", style = "card", isMobile = false, className, gradientVariant = "client" }, ref) => {
|
|
945
906
|
const [isOpen, setIsOpen] = (0, react.useState)(passedOpen);
|
|
946
907
|
const mobileStyles = { width: `${style === "card" && "100%"}` };
|
|
947
|
-
const { refs, floatingStyles, context } = (0,
|
|
908
|
+
const { refs, floatingStyles, context } = (0, _floating_ui_react.useFloating)({
|
|
948
909
|
open: isOpen,
|
|
949
910
|
onOpenChange: setIsOpen,
|
|
950
911
|
placement: !isMobile ? placement : "bottom-start",
|
|
951
912
|
middleware: [
|
|
952
|
-
!isMobile && (0,
|
|
953
|
-
!isMobile && (0,
|
|
954
|
-
(0,
|
|
913
|
+
!isMobile && (0, _floating_ui_react.flip)(),
|
|
914
|
+
!isMobile && (0, _floating_ui_react.shift)(),
|
|
915
|
+
(0, _floating_ui_react.offset)(() => ({
|
|
955
916
|
mainAxis: 15,
|
|
956
917
|
crossAxis: !isMobile ? 0 : 78
|
|
957
918
|
}))
|
|
958
919
|
],
|
|
959
|
-
whileElementsMounted:
|
|
920
|
+
whileElementsMounted: _floating_ui_react.autoUpdate
|
|
960
921
|
});
|
|
961
|
-
const click = (0,
|
|
922
|
+
const click = (0, _floating_ui_react.useClick)(context, {
|
|
962
923
|
event: "click",
|
|
963
924
|
keyboardHandlers: true
|
|
964
925
|
});
|
|
965
|
-
const focus = (0,
|
|
966
|
-
const hover = (0,
|
|
967
|
-
const dismiss = (0, __floating_ui_react.useDismiss)(context);
|
|
968
|
-
const role = (0, __floating_ui_react.useRole)(context, { role: "tooltip" });
|
|
926
|
+
const focus = (0, _floating_ui_react.useFocus)(context);
|
|
927
|
+
const hover = (0, _floating_ui_react.useHover)(context, { enabled: hoverEnabled });
|
|
969
928
|
const interactions = [
|
|
970
929
|
click,
|
|
971
930
|
focus,
|
|
972
|
-
|
|
973
|
-
role,
|
|
931
|
+
(0, _floating_ui_react.useDismiss)(context),
|
|
932
|
+
(0, _floating_ui_react.useRole)(context, { role: "tooltip" }),
|
|
974
933
|
hover
|
|
975
934
|
];
|
|
976
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
935
|
+
const { getReferenceProps, getFloatingProps } = (0, _floating_ui_react.useInteractions)(interactions);
|
|
977
936
|
(0, react.useImperativeHandle)(ref, () => ({
|
|
978
937
|
closePopover: () => setIsOpen(false),
|
|
979
938
|
openPopover: () => setIsOpen(true),
|
|
@@ -999,13 +958,13 @@ const Popover = (0, react.forwardRef)(({ content, children, hoverEnabled = false
|
|
|
999
958
|
"data-testid": "popover-container",
|
|
1000
959
|
"data-component": "Popover",
|
|
1001
960
|
children: [style === "minimal" && content, style === "card" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1002
|
-
className: "bg-
|
|
961
|
+
className: cn("pt-[3px]", gradientVariant === "client" && "bg-gradient-blue-turquoise", gradientVariant === "agency" && "bg-gradient-blue-purple"),
|
|
1003
962
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1004
963
|
className: "relative overflow-hidden bg-white p-5",
|
|
1005
964
|
children: [!hoverEnabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActionIcon, {
|
|
1006
965
|
onClick: () => setIsOpen(false),
|
|
1007
966
|
title: "",
|
|
1008
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
967
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconX, {}),
|
|
1009
968
|
styleVariant: "small",
|
|
1010
969
|
className: "absolute top-5 right-5"
|
|
1011
970
|
}), content]
|
|
@@ -1014,12 +973,11 @@ const Popover = (0, react.forwardRef)(({ content, children, hoverEnabled = false
|
|
|
1014
973
|
})]
|
|
1015
974
|
});
|
|
1016
975
|
});
|
|
1017
|
-
|
|
1018
976
|
//#endregion
|
|
1019
977
|
//#region src/components/datePickerInput/index.tsx
|
|
1020
978
|
const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil, className, error, onChange, placeholder, label, disabled, minimalDropdownYears = 4 }) => {
|
|
1021
979
|
const [selected, setSelected] = (0, react.useState)(value);
|
|
1022
|
-
const today = new Date();
|
|
980
|
+
const today = /* @__PURE__ */ new Date();
|
|
1023
981
|
const [newMonth, setNewMonth] = (0, react.useState)(selected || today);
|
|
1024
982
|
const [dropdownOpened, setDropdownOpened] = (0, react.useState)({
|
|
1025
983
|
month: false,
|
|
@@ -1098,23 +1056,23 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1098
1056
|
fixedWeeks: true,
|
|
1099
1057
|
endMonth: (0, date_fns.addMonths)(today, 13),
|
|
1100
1058
|
captionLayout: "dropdown",
|
|
1101
|
-
onMonthChange: (newMonth
|
|
1059
|
+
onMonthChange: (newMonth) => setNewMonth(newMonth),
|
|
1102
1060
|
showOutsideDays: true,
|
|
1103
|
-
disabled: disabledFrom ? { before: disabledFrom } : disabledUntil ? { after: disabledUntil } :
|
|
1061
|
+
disabled: disabledFrom ? { before: disabledFrom } : disabledUntil ? { after: disabledUntil } : void 0,
|
|
1104
1062
|
className,
|
|
1105
1063
|
classNames: {
|
|
1106
1064
|
month_grid: "mt-3 max-w-[400px] border-t border-gray-100",
|
|
1107
|
-
month_caption: "text-
|
|
1065
|
+
month_caption: "yo-text-small font-bold",
|
|
1108
1066
|
dropdowns: "flex items-center w-[190px] gap-1 left-0 justify-center h-8",
|
|
1109
|
-
caption_label: "text-
|
|
1067
|
+
caption_label: "yo-text-small-medium flex items-center justify-center w-[190px]",
|
|
1110
1068
|
chevron: "w-4 h-4 z-50",
|
|
1111
1069
|
nav: "absolute w-[190px] justify-between flex h-8 items-center",
|
|
1112
1070
|
nav_button: "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 cursor-pointer",
|
|
1113
1071
|
nav_button_previous: "absolute left-1",
|
|
1114
1072
|
nav_button_next: "absolute right-1",
|
|
1115
|
-
day: "h-8 w-8 p-0 aria-selected:opacity-100 font-normal text-
|
|
1073
|
+
day: "h-8 w-8 p-0 aria-selected:opacity-100 font-normal yo-text-small",
|
|
1116
1074
|
weekdays: "pt-12",
|
|
1117
|
-
weekday: "text-gray-300 text-
|
|
1075
|
+
weekday: "text-gray-300 yo-text-small pt-4 pb-2",
|
|
1118
1076
|
day_today: "bg-accent text-accent-foreground",
|
|
1119
1077
|
day_outside: "day-outside text-gray-800 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
|
|
1120
1078
|
day_disabled: "text-gray-800",
|
|
@@ -1123,12 +1081,12 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1123
1081
|
},
|
|
1124
1082
|
components: {
|
|
1125
1083
|
DayButton: (props) => {
|
|
1126
|
-
const { day
|
|
1084
|
+
const { day, ...buttonProps } = props;
|
|
1127
1085
|
const { goToMonth } = (0, react_day_picker.useDayPicker)();
|
|
1128
1086
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
1129
1087
|
type: "button",
|
|
1130
1088
|
...buttonProps,
|
|
1131
|
-
className: (0, clsx.default)("m-1 size-8 text-black transition-all duration-100 ease-in-out", "md:hover:bg-gradient-calendar hover:rounded md:hover:text-white", isDateSelected(day) && "bg-gradient-calendar rounded text-
|
|
1089
|
+
className: (0, clsx.default)("m-1 size-8 text-black transition-all duration-100 ease-in-out", "md:hover:bg-gradient-calendar hover:rounded md:hover:text-white", isDateSelected(day) && "bg-gradient-calendar rounded yo-text-small text-white", isDateToday(day) && "border-b-primary border border-transparent", "translate-y-0 active:translate-y-0.5"),
|
|
1132
1090
|
onClick: () => {
|
|
1133
1091
|
goToMonth(day.date);
|
|
1134
1092
|
handleDayClick(day.date);
|
|
@@ -1138,7 +1096,7 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1138
1096
|
Dropdown: (props) => {
|
|
1139
1097
|
const { goToMonth, months } = (0, react_day_picker.useDayPicker)();
|
|
1140
1098
|
const { className: dropdownClassName } = props;
|
|
1141
|
-
const today
|
|
1099
|
+
const today = /* @__PURE__ */ new Date();
|
|
1142
1100
|
/* istanbul ignore next - react-day-picker may not pass this className in our test env */
|
|
1143
1101
|
if (dropdownClassName === "rdp-months_dropdown") {
|
|
1144
1102
|
const selectedYear = newMonth.getFullYear();
|
|
@@ -1164,8 +1122,7 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1164
1122
|
className: "shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white",
|
|
1165
1123
|
children: selectItems.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1166
1124
|
onClick: () => {
|
|
1167
|
-
|
|
1168
|
-
goToMonth(newDate);
|
|
1125
|
+
goToMonth(new Date(selectedYear, parseInt(item.value)));
|
|
1169
1126
|
setDropdownOpened({
|
|
1170
1127
|
month: false,
|
|
1171
1128
|
year: false
|
|
@@ -1178,16 +1135,16 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1178
1135
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
1179
1136
|
variant: "secondary",
|
|
1180
1137
|
type: "button",
|
|
1181
|
-
className: "absolute top-4 right-4 z-10 h-8 px-3 text-
|
|
1138
|
+
className: "absolute top-4 right-4 z-10 h-8 px-3 yo-text-small",
|
|
1182
1139
|
onClick: () => {
|
|
1183
|
-
goToMonth(today
|
|
1184
|
-
handleDayClick(today
|
|
1140
|
+
goToMonth(today);
|
|
1141
|
+
handleDayClick(today);
|
|
1185
1142
|
},
|
|
1186
1143
|
children: todayText
|
|
1187
1144
|
})] });
|
|
1188
1145
|
} else if (dropdownClassName === "rdp-years_dropdown") {
|
|
1189
|
-
const earliestYear = new Date().getFullYear() - minimalDropdownYears;
|
|
1190
|
-
const latestYear = new Date().getFullYear() + 1;
|
|
1146
|
+
const earliestYear = (/* @__PURE__ */ new Date()).getFullYear() - minimalDropdownYears;
|
|
1147
|
+
const latestYear = (/* @__PURE__ */ new Date()).getFullYear() + 1;
|
|
1191
1148
|
/* istanbul ignore else - defensive guard will always be truthy */
|
|
1192
1149
|
if (earliestYear && latestYear) {
|
|
1193
1150
|
const years = Array.from({ length: latestYear - earliestYear + 1 }, (_, i) => earliestYear + i).reverse();
|
|
@@ -1206,7 +1163,7 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1206
1163
|
className: "shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white max-h-64 overflow-y-auto",
|
|
1207
1164
|
children: years.map((year) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1208
1165
|
onClick: () => {
|
|
1209
|
-
const newDate = months?.[0].date || new Date();
|
|
1166
|
+
const newDate = months?.[0].date || /* @__PURE__ */ new Date();
|
|
1210
1167
|
newDate.setFullYear(year);
|
|
1211
1168
|
goToMonth(newDate);
|
|
1212
1169
|
setDropdownOpened({
|
|
@@ -1232,7 +1189,7 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1232
1189
|
className: cn("relative", className),
|
|
1233
1190
|
children: [
|
|
1234
1191
|
label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
1235
|
-
className: "mb-2 flex items-center gap-1 text-
|
|
1192
|
+
className: "mb-2 flex items-center gap-1 yo-text-label",
|
|
1236
1193
|
children: label
|
|
1237
1194
|
}),
|
|
1238
1195
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Button, {
|
|
@@ -1246,52 +1203,50 @@ const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil,
|
|
|
1246
1203
|
),
|
|
1247
1204
|
onClick: () => setNewMonth(today),
|
|
1248
1205
|
children: [
|
|
1249
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1206
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconCalendar, {}),
|
|
1250
1207
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1251
|
-
className: "text-
|
|
1208
|
+
className: "yo-text-small text-nowrap text-black",
|
|
1252
1209
|
children: selected ? selected.toLocaleDateString() : placeholder
|
|
1253
1210
|
}),
|
|
1254
|
-
selected !==
|
|
1255
|
-
className: "cursor-pointer text-
|
|
1211
|
+
selected !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1212
|
+
className: "cursor-pointer yo-text-small text-gray-800",
|
|
1256
1213
|
role: "button",
|
|
1257
1214
|
"aria-label": "Clear date",
|
|
1258
1215
|
tabIndex: 0,
|
|
1259
1216
|
onClick: () => {
|
|
1260
|
-
setSelected(
|
|
1261
|
-
onChange?.(
|
|
1217
|
+
setSelected(void 0);
|
|
1218
|
+
onChange?.(void 0);
|
|
1262
1219
|
},
|
|
1263
1220
|
onKeyDown: (e) => {
|
|
1264
1221
|
if (e.key === "Enter" || e.key === " ") {
|
|
1265
1222
|
e.preventDefault();
|
|
1266
|
-
setSelected(
|
|
1267
|
-
onChange?.(
|
|
1223
|
+
setSelected(void 0);
|
|
1224
|
+
onChange?.(void 0);
|
|
1268
1225
|
}
|
|
1269
1226
|
},
|
|
1270
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1227
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconX, { size: 15 })
|
|
1271
1228
|
}) })
|
|
1272
1229
|
]
|
|
1273
1230
|
}),
|
|
1274
1231
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
|
|
1275
|
-
className: "text-
|
|
1232
|
+
className: "yo-text-caption text-red-500",
|
|
1276
1233
|
children: error
|
|
1277
1234
|
})
|
|
1278
1235
|
]
|
|
1279
1236
|
})
|
|
1280
1237
|
});
|
|
1281
1238
|
};
|
|
1282
|
-
|
|
1283
1239
|
//#endregion
|
|
1284
1240
|
//#region src/components/divider/index.tsx
|
|
1285
|
-
const Divider = ({ className
|
|
1241
|
+
const Divider = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1286
1242
|
"data-component": "divider",
|
|
1287
1243
|
className: (0, clsx.default)("block h-px w-full bg-gray-200", className),
|
|
1288
1244
|
...props
|
|
1289
1245
|
});
|
|
1290
|
-
|
|
1291
1246
|
//#endregion
|
|
1292
1247
|
//#region src/components/favouriteButton/index.tsx
|
|
1293
1248
|
const FavouriteButton = (0, react.forwardRef)((props, ref) => {
|
|
1294
|
-
const { onClick, favourite, iconFilled, iconOutline, favouriteTitle, iconColorSelected = "text-secondary", iconColor = "text-gray-800", iconSize, className = "", styleVariant = "transparent", children
|
|
1249
|
+
const { onClick, favourite, iconFilled, iconOutline, favouriteTitle, iconColorSelected = "text-secondary", iconColor = "text-gray-800", iconSize, className = "", styleVariant = "transparent", children, ...rest } = props;
|
|
1295
1250
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActionIcon, {
|
|
1296
1251
|
onClick,
|
|
1297
1252
|
"data-component": "favouriteButton",
|
|
@@ -1300,12 +1255,11 @@ const FavouriteButton = (0, react.forwardRef)((props, ref) => {
|
|
|
1300
1255
|
className: `${favourite ? iconColorSelected : iconColor} ${className}`.trim(),
|
|
1301
1256
|
iconSize,
|
|
1302
1257
|
ref,
|
|
1303
|
-
icon: favourite ? iconFilled ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1258
|
+
icon: favourite ? iconFilled ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconHeartFilled, {}) : iconOutline ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconHeart, {}),
|
|
1304
1259
|
...rest,
|
|
1305
1260
|
children
|
|
1306
1261
|
});
|
|
1307
1262
|
});
|
|
1308
|
-
|
|
1309
1263
|
//#endregion
|
|
1310
1264
|
//#region src/components/filters/FilterButton.tsx
|
|
1311
1265
|
const FilterButton = ({ onClick, hasFilters, reset, filtersText, resetText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -1315,20 +1269,19 @@ const FilterButton = ({ onClick, hasFilters, reset, filtersText, resetText }) =>
|
|
|
1315
1269
|
onClick,
|
|
1316
1270
|
variant: "secondary",
|
|
1317
1271
|
className: "font-normal md:font-normal",
|
|
1318
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1272
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconFilter, { stroke: 1 }),
|
|
1319
1273
|
children: filtersText
|
|
1320
1274
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(UnstyledButton, {
|
|
1321
|
-
className: "text-
|
|
1275
|
+
className: "yo-text-small disabled:text-gray-500",
|
|
1322
1276
|
onClick: reset,
|
|
1323
1277
|
disabled: !hasFilters,
|
|
1324
1278
|
children: resetText
|
|
1325
1279
|
})]
|
|
1326
1280
|
});
|
|
1327
|
-
|
|
1328
1281
|
//#endregion
|
|
1329
1282
|
//#region src/components/filters/FilterItem.tsx
|
|
1330
1283
|
const FilterItem = ({ title, isActive = false, onClick }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
1331
|
-
className: cn("has-checked:border-primary has-checked:bg-turquoise-100 flex cursor-pointer items-center gap-3 rounded-full border border-gray-200 px-7 py-1.5 text-
|
|
1284
|
+
className: cn("has-checked:border-primary has-checked:bg-turquoise-100 flex cursor-pointer items-center gap-3 rounded-full border border-gray-200 px-7 py-1.5 yo-text-small leading-6 transition-all duration-300 ease-in-out hover:bg-gray-50"),
|
|
1332
1285
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
1333
1286
|
type: "checkbox",
|
|
1334
1287
|
className: "hidden",
|
|
@@ -1336,7 +1289,6 @@ const FilterItem = ({ title, isActive = false, onClick }) => /* @__PURE__ */ (0,
|
|
|
1336
1289
|
checked: isActive
|
|
1337
1290
|
}), title]
|
|
1338
1291
|
});
|
|
1339
|
-
|
|
1340
1292
|
//#endregion
|
|
1341
1293
|
//#region src/components/filters/index.tsx
|
|
1342
1294
|
const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, filtersText, resetText }) => {
|
|
@@ -1358,7 +1310,7 @@ const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, fi
|
|
|
1358
1310
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1359
1311
|
className: "flex items-center justify-end gap-3",
|
|
1360
1312
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1361
|
-
className: "text-
|
|
1313
|
+
className: "yo-text-small-medium",
|
|
1362
1314
|
"data-testid": "filters-title",
|
|
1363
1315
|
children: selectedFiltersText
|
|
1364
1316
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterButton, {
|
|
@@ -1382,7 +1334,6 @@ const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, fi
|
|
|
1382
1334
|
})]
|
|
1383
1335
|
});
|
|
1384
1336
|
};
|
|
1385
|
-
|
|
1386
1337
|
//#endregion
|
|
1387
1338
|
//#region src/components/googleAppButtonIcon/index.tsx
|
|
1388
1339
|
const GoogleAppButtonIcon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
@@ -1574,7 +1525,6 @@ const GoogleAppButtonIcon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx
|
|
|
1574
1525
|
]
|
|
1575
1526
|
})]
|
|
1576
1527
|
});
|
|
1577
|
-
|
|
1578
1528
|
//#endregion
|
|
1579
1529
|
//#region src/components/hamburgerMenuButton/index.tsx
|
|
1580
1530
|
const HamburgerMenuButton = (0, react.forwardRef)(({ menuState, setMenuState }, ref) => {
|
|
@@ -1603,7 +1553,6 @@ const HamburgerMenuButton = (0, react.forwardRef)(({ menuState, setMenuState },
|
|
|
1603
1553
|
});
|
|
1604
1554
|
});
|
|
1605
1555
|
HamburgerMenuButton.displayName = "HamburgerMenuButton";
|
|
1606
|
-
|
|
1607
1556
|
//#endregion
|
|
1608
1557
|
//#region src/components/hr/index.tsx
|
|
1609
1558
|
const HR = ({ className }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
|
|
@@ -1611,10 +1560,9 @@ const HR = ({ className }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
|
|
|
1611
1560
|
className: `h-px w-full border-none bg-gray-200 ${className}`
|
|
1612
1561
|
});
|
|
1613
1562
|
HR.displayName = "HR";
|
|
1614
|
-
|
|
1615
1563
|
//#endregion
|
|
1616
1564
|
//#region src/components/island/index.tsx
|
|
1617
|
-
const Island = ({ children, className, noShadow = false, noPadding = false
|
|
1565
|
+
const Island = ({ children, className, noShadow = false, noPadding = false, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1618
1566
|
"data-testid": "island",
|
|
1619
1567
|
"data-component": "island",
|
|
1620
1568
|
className: cn("relative bg-white px-5 py-5 md:px-10 md:py-9", {
|
|
@@ -1626,7 +1574,6 @@ const Island = ({ children, className, noShadow = false, noPadding = false,...pr
|
|
|
1626
1574
|
children
|
|
1627
1575
|
});
|
|
1628
1576
|
Island.displayName = "Island";
|
|
1629
|
-
|
|
1630
1577
|
//#endregion
|
|
1631
1578
|
//#region src/components/kebabMenu/index.tsx
|
|
1632
1579
|
const KebabMenu = ({ title, tooltip, content, disabled = false, styleVariant = "default" }) => {
|
|
@@ -1662,7 +1609,7 @@ const KebabMenu = ({ title, tooltip, content, disabled = false, styleVariant = "
|
|
|
1662
1609
|
children: [title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1663
1610
|
className: "yo-text-small hidden md:block",
|
|
1664
1611
|
children: title
|
|
1665
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1612
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconDotsVertical, {
|
|
1666
1613
|
size: 20,
|
|
1667
1614
|
stroke: 1,
|
|
1668
1615
|
fill: "black"
|
|
@@ -1689,9 +1636,9 @@ const KebabMenu = ({ title, tooltip, content, disabled = false, styleVariant = "
|
|
|
1689
1636
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1690
1637
|
className: "absolute right-0 z-10 mt-2 w-auto min-w-[200px] rounded-md border-[0.0625rem] border-gray-200 bg-white p-1 shadow-md",
|
|
1691
1638
|
children: content.map((c, index) => {
|
|
1692
|
-
const button
|
|
1639
|
+
const button = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(UnstyledButton, {
|
|
1693
1640
|
onClick: () => handleItemClick(c.onClick),
|
|
1694
|
-
className: "w-full rounded-md px-4 py-2 text-left text-
|
|
1641
|
+
className: "w-full rounded-md px-4 py-2 text-left yo-text-small whitespace-nowrap hover:bg-gray-50",
|
|
1695
1642
|
"aria-label": "Options Menu Item",
|
|
1696
1643
|
disabled: c.disabled,
|
|
1697
1644
|
children: c.title
|
|
@@ -1700,25 +1647,23 @@ const KebabMenu = ({ title, tooltip, content, disabled = false, styleVariant = "
|
|
|
1700
1647
|
passedOpen: false,
|
|
1701
1648
|
size: "sm",
|
|
1702
1649
|
content: c.tooltip,
|
|
1703
|
-
children: button
|
|
1704
|
-
}, index) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: button
|
|
1650
|
+
children: button
|
|
1651
|
+
}, index) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: button }, index);
|
|
1705
1652
|
})
|
|
1706
1653
|
})
|
|
1707
1654
|
})]
|
|
1708
1655
|
}) });
|
|
1709
1656
|
};
|
|
1710
1657
|
KebabMenu.displayName = "KebabMenu";
|
|
1711
|
-
|
|
1712
1658
|
//#endregion
|
|
1713
1659
|
//#region src/components/label/index.tsx
|
|
1714
|
-
const Label = ({ children, className
|
|
1660
|
+
const Label = ({ children, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
1715
1661
|
"data-component": "label",
|
|
1716
1662
|
"data-testid": "label",
|
|
1717
|
-
className: cn("flex items-center gap-1 text-
|
|
1663
|
+
className: cn("flex items-center gap-1 yo-text-label text-black", className),
|
|
1718
1664
|
...props,
|
|
1719
1665
|
children
|
|
1720
1666
|
});
|
|
1721
|
-
|
|
1722
1667
|
//#endregion
|
|
1723
1668
|
//#region src/components/loader/index.tsx
|
|
1724
1669
|
const Loader = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -1730,7 +1675,6 @@ const Loader = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
|
1730
1675
|
})
|
|
1731
1676
|
});
|
|
1732
1677
|
Loader.displayName = "Loader";
|
|
1733
|
-
|
|
1734
1678
|
//#endregion
|
|
1735
1679
|
//#region src/components/logo/index.tsx
|
|
1736
1680
|
const LogoBlack = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
@@ -1800,10 +1744,9 @@ const LogoBlack = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg",
|
|
|
1800
1744
|
})
|
|
1801
1745
|
}) })]
|
|
1802
1746
|
});
|
|
1803
|
-
|
|
1804
1747
|
//#endregion
|
|
1805
1748
|
//#region src/components/modal/index.tsx
|
|
1806
|
-
const Modal = ({ title, children, withCloseButton = true, opened, additionalClassNames, closeModalWithConfirmation = false, gradient = true, uncloseAble = false, confirmText = "Are you sure you want to close this modal?", dataTestId, onClose, size }) => {
|
|
1749
|
+
const Modal = ({ title, children, withCloseButton = true, opened, additionalClassNames, closeModalWithConfirmation = false, gradient = true, uncloseAble = false, confirmText = "Are you sure you want to close this modal?", dataTestId, onClose, size, gradientVariant = "client" }) => {
|
|
1807
1750
|
const ref = (0, react.useRef)(null);
|
|
1808
1751
|
const refContainer = (0, react.useRef)(null);
|
|
1809
1752
|
const [isOpen, setIsOpen] = (0, react.useState)(false);
|
|
@@ -1878,22 +1821,21 @@ const Modal = ({ title, children, withCloseButton = true, opened, additionalClas
|
|
|
1878
1821
|
"aria-label": "close modal",
|
|
1879
1822
|
className: "absolute top-0 right-0",
|
|
1880
1823
|
"data-testid": "close-modal",
|
|
1881
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1824
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconX, {}),
|
|
1882
1825
|
title: "Close modal"
|
|
1883
1826
|
})
|
|
1884
1827
|
}),
|
|
1885
1828
|
title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1886
1829
|
className: "relative w-full pt-14",
|
|
1887
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("
|
|
1888
|
-
className: "mt-0 mb-8 text-left
|
|
1830
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
|
|
1831
|
+
className: "yo-text-h1 mt-0 mb-8 text-left",
|
|
1889
1832
|
children: title
|
|
1890
1833
|
})
|
|
1891
1834
|
}),
|
|
1892
1835
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children }),
|
|
1893
1836
|
gradient && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
|
|
1894
1837
|
"data-testid": "modal-gradient",
|
|
1895
|
-
className: "absolute bottom-0 left-0 mt-8 mb-0 h-2! w-full border-none",
|
|
1896
|
-
style: { backgroundImage: "linear-gradient(90deg, var(--color-light-blue) 0%, var(--color-primary) 50.52%, var(--color-secondary) 100%)" }
|
|
1838
|
+
className: cn("absolute bottom-0 left-0 mt-8 mb-0 h-2! w-full border-none", gradientVariant === "client" && "bg-gradient-blue-turquoise", gradientVariant === "agency" && "bg-gradient-blue-purple")
|
|
1897
1839
|
})
|
|
1898
1840
|
]
|
|
1899
1841
|
})
|
|
@@ -1901,7 +1843,6 @@ const Modal = ({ title, children, withCloseButton = true, opened, additionalClas
|
|
|
1901
1843
|
}), document.body);
|
|
1902
1844
|
};
|
|
1903
1845
|
Modal.displayName = "Modal";
|
|
1904
|
-
|
|
1905
1846
|
//#endregion
|
|
1906
1847
|
//#region src/components/navButtons/index.tsx
|
|
1907
1848
|
const NavButtons = ({ onNext, onPrev }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -1911,7 +1852,7 @@ const NavButtons = ({ onNext, onPrev }) => /* @__PURE__ */ (0, react_jsx_runtime
|
|
|
1911
1852
|
"data-testid": "chevron-left",
|
|
1912
1853
|
className: `flex ${onPrev ? "cursor-pointer hover:bg-gray-50" : "cursor-not-allowed"} h-full items-center px-2`,
|
|
1913
1854
|
onClick: onPrev,
|
|
1914
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1855
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconChevronLeft, {
|
|
1915
1856
|
size: 20,
|
|
1916
1857
|
className: onPrev ? "text-gray-500" : "text-gray-200"
|
|
1917
1858
|
})
|
|
@@ -1921,14 +1862,13 @@ const NavButtons = ({ onNext, onPrev }) => /* @__PURE__ */ (0, react_jsx_runtime
|
|
|
1921
1862
|
"data-testid": "chevron-right",
|
|
1922
1863
|
className: `flex ${onNext ? "cursor-pointer hover:bg-gray-50" : "cursor-not-allowed"} h-full items-center px-2 hover:bg-gray-50`,
|
|
1923
1864
|
onClick: onNext,
|
|
1924
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1865
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconChevronRight, {
|
|
1925
1866
|
size: 20,
|
|
1926
1867
|
className: onNext ? "text-gray-500" : "text-gray-200"
|
|
1927
1868
|
})
|
|
1928
1869
|
})
|
|
1929
1870
|
]
|
|
1930
1871
|
});
|
|
1931
|
-
|
|
1932
1872
|
//#endregion
|
|
1933
1873
|
//#region src/components/numberField/index.tsx
|
|
1934
1874
|
const NumberField = ({ name, value = 0, max, min = 0, isDisabled, id, className = "", label, error, onChange }) => {
|
|
@@ -1948,7 +1888,7 @@ const NumberField = ({ name, value = 0, max, min = 0, isDisabled, id, className
|
|
|
1948
1888
|
children: [
|
|
1949
1889
|
label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
1950
1890
|
htmlFor: id,
|
|
1951
|
-
className: "mb-1
|
|
1891
|
+
className: "mb-1 yo-text-label",
|
|
1952
1892
|
children: label
|
|
1953
1893
|
}),
|
|
1954
1894
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -1982,27 +1922,25 @@ const NumberField = ({ name, value = 0, max, min = 0, isDisabled, id, className
|
|
|
1982
1922
|
]
|
|
1983
1923
|
}),
|
|
1984
1924
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1985
|
-
className: "mt-1 text-
|
|
1925
|
+
className: "mt-1 yo-text-small text-red-600",
|
|
1986
1926
|
children: error
|
|
1987
1927
|
})
|
|
1988
1928
|
]
|
|
1989
1929
|
});
|
|
1990
1930
|
};
|
|
1991
|
-
|
|
1992
1931
|
//#endregion
|
|
1993
1932
|
//#region src/components/pageUnavailable/index.tsx
|
|
1994
1933
|
const PageUnavailable = ({ notAvailableButton, notAvailableDescription, notAvailableHeaderText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Island, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1995
1934
|
className: "mx-auto grid max-w-[900px] justify-items-center gap-8 text-center",
|
|
1996
1935
|
children: [
|
|
1997
1936
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
|
|
1998
|
-
className: "text-
|
|
1937
|
+
className: "yo-text-h1",
|
|
1999
1938
|
children: notAvailableHeaderText
|
|
2000
1939
|
}),
|
|
2001
1940
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: notAvailableDescription }),
|
|
2002
1941
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: notAvailableButton })
|
|
2003
1942
|
]
|
|
2004
1943
|
}) });
|
|
2005
|
-
|
|
2006
1944
|
//#endregion
|
|
2007
1945
|
//#region src/components/passwordInput/index.tsx
|
|
2008
1946
|
const PasswordInput = react.default.forwardRef((props, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TextInput, {
|
|
@@ -2013,7 +1951,6 @@ const PasswordInput = react.default.forwardRef((props, ref) => /* @__PURE__ */ (
|
|
|
2013
1951
|
ref
|
|
2014
1952
|
}));
|
|
2015
1953
|
PasswordInput.displayName = "PasswordInput";
|
|
2016
|
-
|
|
2017
1954
|
//#endregion
|
|
2018
1955
|
//#region src/components/progressBar/index.tsx
|
|
2019
1956
|
const ProgressBar = ({ value, maxValue = 100, className }) => {
|
|
@@ -2037,10 +1974,9 @@ const ProgressBar = ({ value, maxValue = 100, className }) => {
|
|
|
2037
1974
|
})
|
|
2038
1975
|
});
|
|
2039
1976
|
};
|
|
2040
|
-
|
|
2041
1977
|
//#endregion
|
|
2042
1978
|
//#region src/components/radioButton/index.tsx
|
|
2043
|
-
const RadioButton = ({ id, name, value, label, onChange, checked, dataTestId, className, containerClassName, labelClassName
|
|
1979
|
+
const RadioButton = ({ id, name, value, label, onChange, checked, dataTestId, className, containerClassName, labelClassName, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2044
1980
|
"data-testid": "radio-button-container",
|
|
2045
1981
|
className: `${containerClassName || "radio-button-container"} relative flex items-start`,
|
|
2046
1982
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2050,7 +1986,7 @@ const RadioButton = ({ id, name, value, label, onChange, checked, dataTestId, cl
|
|
|
2050
1986
|
id,
|
|
2051
1987
|
name,
|
|
2052
1988
|
value,
|
|
2053
|
-
onChange: props.disabled ?
|
|
1989
|
+
onChange: props.disabled ? void 0 : onChange,
|
|
2054
1990
|
checked,
|
|
2055
1991
|
"data-testid": dataTestId,
|
|
2056
1992
|
className: `${(0, clsx.default)(className, "ease checked:border-navyBlue checked:bg-navy-blue relative m-0 flex size-5 cursor-pointer appearance-none items-center justify-center rounded-full border border-gray-400 bg-white transition-colors duration-100 focus:ring-0 focus:outline-hidden focus-visible:ring-0", { "cursor-not-allowed opacity-50": props.disabled })}`,
|
|
@@ -2068,12 +2004,11 @@ const RadioButton = ({ id, name, value, label, onChange, checked, dataTestId, cl
|
|
|
2068
2004
|
})]
|
|
2069
2005
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
2070
2006
|
htmlFor: id,
|
|
2071
|
-
className: ` ${(0, clsx.default)(labelClassName, "mb-0 cursor-pointer pl-3 text-
|
|
2007
|
+
className: ` ${(0, clsx.default)(labelClassName, "mb-0 cursor-pointer pl-3 yo-text-small font-normal", { "text-gray-400": props.disabled })}`,
|
|
2072
2008
|
children: label
|
|
2073
2009
|
})]
|
|
2074
2010
|
});
|
|
2075
2011
|
RadioButton.displayName = "RadioButton";
|
|
2076
|
-
|
|
2077
2012
|
//#endregion
|
|
2078
2013
|
//#region src/icons/IconStarEmpty.tsx
|
|
2079
2014
|
const IconStarEmpty = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
@@ -2090,7 +2025,6 @@ const IconStarEmpty = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg
|
|
|
2090
2025
|
fill: "#E0E0E0"
|
|
2091
2026
|
})
|
|
2092
2027
|
});
|
|
2093
|
-
|
|
2094
2028
|
//#endregion
|
|
2095
2029
|
//#region src/icons/IconStarFilled.tsx
|
|
2096
2030
|
const IconStarFilled = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
@@ -2107,7 +2041,6 @@ const IconStarFilled = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("sv
|
|
|
2107
2041
|
fill: "currentColor"
|
|
2108
2042
|
})
|
|
2109
2043
|
});
|
|
2110
|
-
|
|
2111
2044
|
//#endregion
|
|
2112
2045
|
//#region src/icons/IconStarHalfFilled.tsx
|
|
2113
2046
|
const IconStarHalfFilled = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
@@ -2127,7 +2060,6 @@ const IconStarHalfFilled = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs
|
|
|
2127
2060
|
fill: "currentColor"
|
|
2128
2061
|
})]
|
|
2129
2062
|
});
|
|
2130
|
-
|
|
2131
2063
|
//#endregion
|
|
2132
2064
|
//#region src/components/rating/index.tsx
|
|
2133
2065
|
const Rating = ({ rating, ratings, size = "normal", setReview, className, setReviewError, error }) => {
|
|
@@ -2136,7 +2068,7 @@ const Rating = ({ rating, ratings, size = "normal", setReview, className, setRev
|
|
|
2136
2068
|
const [reviewIsSet, setReviewIsSet] = (0, react.useState)(false);
|
|
2137
2069
|
const currentRating = hoveredStars || Math.round(rating * 2) / 2;
|
|
2138
2070
|
const currentSmallRating = hoveredSmallStars;
|
|
2139
|
-
const sizeClasses
|
|
2071
|
+
const sizeClasses = {
|
|
2140
2072
|
small: "h-4 w-4",
|
|
2141
2073
|
normal: "h-[22px] w-[22px]",
|
|
2142
2074
|
large: "h-[32px] w-[32px]"
|
|
@@ -2150,29 +2082,26 @@ const Rating = ({ rating, ratings, size = "normal", setReview, className, setRev
|
|
|
2150
2082
|
const handleHover = (value) => setReview && setHoveredStars(value);
|
|
2151
2083
|
const StarIcon = ({ index }) => {
|
|
2152
2084
|
if (!setReview) {
|
|
2153
|
-
const roundedRating
|
|
2154
|
-
const hasHalf
|
|
2155
|
-
const effectiveRating
|
|
2156
|
-
|
|
2157
|
-
if (index
|
|
2158
|
-
|
|
2159
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarEmpty, { className: `text-yellow ${sizeClasses$1[size]}` });
|
|
2085
|
+
const roundedRating = Math.round(rating * 2) / 2;
|
|
2086
|
+
const hasHalf = roundedRating % 1 === .5;
|
|
2087
|
+
const effectiveRating = roundedRating;
|
|
2088
|
+
if (index <= Math.floor(effectiveRating)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarFilled, { className: `text-navy-blue ${sizeClasses[size]}` });
|
|
2089
|
+
if (hasHalf && index === Math.ceil(effectiveRating)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarHalfFilled, { className: `text-navy-blue ${sizeClasses[size]}` });
|
|
2090
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarEmpty, { className: `text-navy-blue ${sizeClasses[size]}` });
|
|
2160
2091
|
}
|
|
2161
2092
|
const displayRating = reviewIsSet ? Number(reviewIsSet) : currentRating;
|
|
2162
2093
|
const roundedRating = Math.round(displayRating * 2) / 2;
|
|
2163
2094
|
const hasHalf = roundedRating % 1 === .5;
|
|
2164
2095
|
const effectiveRating = roundedRating;
|
|
2165
|
-
|
|
2166
|
-
if (index
|
|
2167
|
-
|
|
2168
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarEmpty, { className: `text-yellow ${sizeClasses$1[size]} ` });
|
|
2096
|
+
if (index <= Math.floor(effectiveRating)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarFilled, { className: `text-navy-blue ${sizeClasses[size]}` });
|
|
2097
|
+
if (hasHalf && index === Math.ceil(effectiveRating)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarHalfFilled, { className: `text-navy-blue ${sizeClasses[size]}` });
|
|
2098
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarEmpty, { className: `text-navy-blue ${sizeClasses[size]} ` });
|
|
2169
2099
|
};
|
|
2170
|
-
const StarSmallIcon = ({ index, className
|
|
2171
|
-
const
|
|
2172
|
-
|
|
2173
|
-
if (index ===
|
|
2174
|
-
|
|
2175
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarEmpty, { className: cn(className$1, "text-yellow") });
|
|
2100
|
+
const StarSmallIcon = ({ index, className }) => {
|
|
2101
|
+
const roundedRating = Math.round(currentSmallRating * 2) / 2;
|
|
2102
|
+
if (index === roundedRating) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarFilled, { className: cn(className, "text-navy-blue") });
|
|
2103
|
+
if (index - roundedRating === .5) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarHalfFilled, { className: cn(className, "text-navy-blue") });
|
|
2104
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconStarEmpty, { className: cn(className, "text-navy-blue") });
|
|
2176
2105
|
};
|
|
2177
2106
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
2178
2107
|
className: cn("flex flex-col", className),
|
|
@@ -2201,7 +2130,7 @@ const Rating = ({ rating, ratings, size = "normal", setReview, className, setRev
|
|
|
2201
2130
|
onClick: () => handleStarClick(value),
|
|
2202
2131
|
children: [Array.from({ length: value }).map((_, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StarSmallIcon, {
|
|
2203
2132
|
index: value,
|
|
2204
|
-
className: "text-
|
|
2133
|
+
className: "text-navy-blue size-5"
|
|
2205
2134
|
}, i)), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2206
2135
|
className: "mt-[5px] flex items-center pl-2 text-[12px] text-gray-800",
|
|
2207
2136
|
children: label
|
|
@@ -2215,17 +2144,16 @@ const Rating = ({ rating, ratings, size = "normal", setReview, className, setRev
|
|
|
2215
2144
|
]
|
|
2216
2145
|
});
|
|
2217
2146
|
};
|
|
2218
|
-
|
|
2219
2147
|
//#endregion
|
|
2220
2148
|
//#region src/components/regionSelector/index.tsx
|
|
2221
|
-
const RegionSelector = ({ title, regions
|
|
2149
|
+
const RegionSelector = ({ title, regions, ...props }) => {
|
|
2222
2150
|
if (regions?.length === 0) return null;
|
|
2223
2151
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2224
2152
|
"data-component": "regionSelector",
|
|
2225
2153
|
className: "flex w-full flex-col items-center justify-center gap-11 break-words lg:gap-14",
|
|
2226
2154
|
...props,
|
|
2227
2155
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
|
|
2228
|
-
className: "w-full text-
|
|
2156
|
+
className: "w-full yo-text-h2 leading-10 font-bold md:text-3xl",
|
|
2229
2157
|
children: title
|
|
2230
2158
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
2231
2159
|
className: "mx-auto flex w-full max-w-[415px] list-none flex-col items-start justify-start gap-3.5 pl-0 hover:cursor-pointer",
|
|
@@ -2235,7 +2163,6 @@ const RegionSelector = ({ title, regions,...props }) => {
|
|
|
2235
2163
|
});
|
|
2236
2164
|
};
|
|
2237
2165
|
RegionSelector.displayName = "RegionSelector";
|
|
2238
|
-
|
|
2239
2166
|
//#endregion
|
|
2240
2167
|
//#region src/components/reviews/index.tsx
|
|
2241
2168
|
const ReviewsLine = ({ maxValue, amount, countStarsText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2297,7 +2224,6 @@ const Reviews = ({ totalRatings, ratings, averageRating, aggregatedRating, count
|
|
|
2297
2224
|
})
|
|
2298
2225
|
})]
|
|
2299
2226
|
});
|
|
2300
|
-
|
|
2301
2227
|
//#endregion
|
|
2302
2228
|
//#region src/components/scrollToTop/index.tsx
|
|
2303
2229
|
const ScrollToTop = ({ scrollToTopTitle }) => {
|
|
@@ -2331,16 +2257,15 @@ const ScrollToTop = ({ scrollToTopTitle }) => {
|
|
|
2331
2257
|
onClick: scrollToTop,
|
|
2332
2258
|
"data-tooltip-id": scrollToTopTitle,
|
|
2333
2259
|
"data-tooltip-content": scrollToTopTitle,
|
|
2334
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2260
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconChevronUp, {})
|
|
2335
2261
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_tooltip.Tooltip, {
|
|
2336
2262
|
id: scrollToTopTitle,
|
|
2337
2263
|
className: "z-[99]"
|
|
2338
2264
|
})] });
|
|
2339
2265
|
};
|
|
2340
|
-
|
|
2341
2266
|
//#endregion
|
|
2342
2267
|
//#region src/components/searchInput/index.tsx
|
|
2343
|
-
const SearchInput = ({ placeholder, value, onChange, className, rightSection
|
|
2268
|
+
const SearchInput = ({ placeholder, value, onChange, className, rightSection, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TextInput, {
|
|
2344
2269
|
placeholder,
|
|
2345
2270
|
className: className || "w-full lg:w-auto lg:min-w-[23.75rem]",
|
|
2346
2271
|
rightSection: rightSection || /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {}),
|
|
@@ -2348,7 +2273,6 @@ const SearchInput = ({ placeholder, value, onChange, className, rightSection,...
|
|
|
2348
2273
|
onChange,
|
|
2349
2274
|
...props
|
|
2350
2275
|
});
|
|
2351
|
-
|
|
2352
2276
|
//#endregion
|
|
2353
2277
|
//#region src/hooks/useDebouncedValue.ts
|
|
2354
2278
|
function useDebouncedValue(value, delay = 200) {
|
|
@@ -2359,10 +2283,9 @@ function useDebouncedValue(value, delay = 200) {
|
|
|
2359
2283
|
}, [value, delay]);
|
|
2360
2284
|
return debouncedValue;
|
|
2361
2285
|
}
|
|
2362
|
-
|
|
2363
2286
|
//#endregion
|
|
2364
2287
|
//#region src/components/select/index.tsx
|
|
2365
|
-
function Select({ id, options, placeholder, label, errorText, hideError = false, isClearable = false, disabled = false, multiSelect = false, searchable = false, value, defaultValue, onValueChange, className, searchPlaceholder, noResultsText
|
|
2288
|
+
function Select({ id, options, placeholder, label, errorText, hideError = false, isClearable = false, disabled = false, multiSelect = false, searchable = false, value, defaultValue, onValueChange, className, searchPlaceholder, noResultsText, ...props }) {
|
|
2366
2289
|
const innerRef = (0, react.useRef)(null);
|
|
2367
2290
|
const buttonRef = (0, react.useRef)(null);
|
|
2368
2291
|
const optionRefs = (0, react.useRef)([]);
|
|
@@ -2372,29 +2295,27 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2372
2295
|
const [searchTerm, setSearchTerm] = (0, react.useState)("");
|
|
2373
2296
|
const [focusedIndex, setFocusedIndex] = (0, react.useState)(-1);
|
|
2374
2297
|
const debouncedSearch = useDebouncedValue(searchTerm);
|
|
2375
|
-
const isControlled = value !==
|
|
2298
|
+
const isControlled = value !== void 0;
|
|
2376
2299
|
const currentValue = isControlled ? value : internalValue;
|
|
2377
2300
|
const selectedLabels = (0, react.useMemo)(() => {
|
|
2378
|
-
if (Array.isArray(currentValue))
|
|
2379
|
-
return options.filter((o) => currentValue.includes(o.value)).map((o) => o.label).join(", ");
|
|
2380
|
-
}
|
|
2301
|
+
if (Array.isArray(currentValue)) return options.filter((o) => currentValue.includes(o.value)).map((o) => o.label).join(", ");
|
|
2381
2302
|
return options.find((o) => o.value === currentValue)?.label;
|
|
2382
2303
|
}, [currentValue, options]);
|
|
2383
|
-
const { refs, floatingStyles, context } = (0,
|
|
2304
|
+
const { refs, floatingStyles, context } = (0, _floating_ui_react.useFloating)({
|
|
2384
2305
|
open,
|
|
2385
2306
|
onOpenChange: setOpen,
|
|
2386
2307
|
middleware: [
|
|
2387
|
-
(0,
|
|
2388
|
-
(0,
|
|
2389
|
-
(0,
|
|
2308
|
+
(0, _floating_ui_react.offset)(4),
|
|
2309
|
+
(0, _floating_ui_react.flip)(),
|
|
2310
|
+
(0, _floating_ui_react.shift)()
|
|
2390
2311
|
],
|
|
2391
|
-
whileElementsMounted:
|
|
2312
|
+
whileElementsMounted: _floating_ui_react.autoUpdate,
|
|
2392
2313
|
placement: "bottom-start"
|
|
2393
2314
|
});
|
|
2394
|
-
const click = (0,
|
|
2395
|
-
const dismiss = (0,
|
|
2396
|
-
const role = (0,
|
|
2397
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
2315
|
+
const click = (0, _floating_ui_react.useClick)(context);
|
|
2316
|
+
const dismiss = (0, _floating_ui_react.useDismiss)(context);
|
|
2317
|
+
const role = (0, _floating_ui_react.useRole)(context, { role: "combobox" });
|
|
2318
|
+
const { getReferenceProps, getFloatingProps } = (0, _floating_ui_react.useInteractions)([
|
|
2398
2319
|
click,
|
|
2399
2320
|
dismiss,
|
|
2400
2321
|
role
|
|
@@ -2420,8 +2341,8 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2420
2341
|
const handleClear = (0, react.useCallback)((e) => {
|
|
2421
2342
|
e.preventDefault();
|
|
2422
2343
|
e.stopPropagation();
|
|
2423
|
-
if (!isControlled) setInternalValue(
|
|
2424
|
-
onValueChange?.(
|
|
2344
|
+
if (!isControlled) setInternalValue(void 0);
|
|
2345
|
+
onValueChange?.(void 0);
|
|
2425
2346
|
setSearchTerm("");
|
|
2426
2347
|
}, [isControlled, onValueChange]);
|
|
2427
2348
|
const showPlaceholder = !currentValue || Array.isArray(currentValue) && currentValue.length === 0;
|
|
@@ -2525,7 +2446,7 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2525
2446
|
},
|
|
2526
2447
|
...getReferenceProps(),
|
|
2527
2448
|
disabled,
|
|
2528
|
-
className: cn("flex h-10 w-full items-center justify-between rounded-md border px-3 text-
|
|
2449
|
+
className: cn("flex h-10 w-full items-center justify-between rounded-md border px-3 yo-text-small transition-colors bg-gray-20", "border-gray-200 hover:border-gray-300 focus:border-gray-300 outline-none", !hideError && errorText && "border-red-500 hover:border-red-500 focus:border-red-500", disabled && "opacity-50 cursor-not-allowed"),
|
|
2529
2450
|
"aria-haspopup": "listbox",
|
|
2530
2451
|
"aria-expanded": open,
|
|
2531
2452
|
"aria-disabled": disabled,
|
|
@@ -2541,7 +2462,7 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2541
2462
|
className: "truncate",
|
|
2542
2463
|
children: selectedLabels
|
|
2543
2464
|
})
|
|
2544
|
-
}), isClearable && !showPlaceholder ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2465
|
+
}), isClearable && !showPlaceholder ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconX, {
|
|
2545
2466
|
size: 16,
|
|
2546
2467
|
color: "black",
|
|
2547
2468
|
className: "cursor-pointer",
|
|
@@ -2549,13 +2470,13 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2549
2470
|
onPointerDown: handleClear,
|
|
2550
2471
|
role: "button",
|
|
2551
2472
|
"aria-label": "Clear selection"
|
|
2552
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2473
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconSelector, {
|
|
2553
2474
|
size: 16,
|
|
2554
2475
|
color: "black",
|
|
2555
2476
|
"aria-hidden": "true"
|
|
2556
2477
|
})]
|
|
2557
2478
|
}),
|
|
2558
|
-
open && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2479
|
+
open && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingPortal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingFocusManager, {
|
|
2559
2480
|
context,
|
|
2560
2481
|
modal: false,
|
|
2561
2482
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2570,11 +2491,11 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2570
2491
|
"aria-labelledby": `${id}-label`,
|
|
2571
2492
|
className: cn("z-[99999] mt-2 rounded-md border border-gray-200 bg-white shadow-md", "overflow-hidden animate-in fade-in"),
|
|
2572
2493
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2573
|
-
className: "p-1 text-
|
|
2494
|
+
className: "p-1 yo-text-small max-h-[250px] overflow-auto",
|
|
2574
2495
|
children: [searchable && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2575
2496
|
className: "flex items-center gap-2 px-2 py-1 border-b border-gray-100 sticky top-0 bg-white",
|
|
2576
2497
|
role: "search",
|
|
2577
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2498
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconSearch, {
|
|
2578
2499
|
size: 14,
|
|
2579
2500
|
className: "text-gray-400",
|
|
2580
2501
|
"aria-hidden": "true"
|
|
@@ -2584,7 +2505,7 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2584
2505
|
value: searchTerm,
|
|
2585
2506
|
onChange: (e) => setSearchTerm(e.target.value),
|
|
2586
2507
|
placeholder: searchPlaceholder,
|
|
2587
|
-
className: "w-full text-
|
|
2508
|
+
className: "w-full yo-text-small outline-none bg-transparent placeholder-gray-300",
|
|
2588
2509
|
"aria-label": "Search options"
|
|
2589
2510
|
})]
|
|
2590
2511
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2592,17 +2513,19 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2592
2513
|
children: filteredOptions.length ? filteredOptions.map((opt, index) => {
|
|
2593
2514
|
const isSelected = Array.isArray(currentValue) ? currentValue.includes(opt.value) : currentValue === opt.value;
|
|
2594
2515
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
2595
|
-
ref: (el) =>
|
|
2516
|
+
ref: (el) => {
|
|
2517
|
+
optionRefs.current[index] = el;
|
|
2518
|
+
},
|
|
2596
2519
|
type: "button",
|
|
2597
2520
|
onClick: () => handleSelect(opt.value),
|
|
2598
2521
|
role: "option",
|
|
2599
2522
|
"aria-selected": isSelected,
|
|
2600
2523
|
tabIndex: -1,
|
|
2601
|
-
className: cn("relative flex w-full items-center gap-2 rounded px-3 py-2 text-
|
|
2524
|
+
className: cn("relative flex w-full items-center gap-2 rounded px-3 py-2 yo-text-small text-black select-none", "hover:bg-gray-50 mx-1 my-[2px]", isSelected && "bg-gray-50", focusedIndex === index && "bg-gray-50 ring-1 ring-primary"),
|
|
2602
2525
|
children: [multiSelect && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2603
2526
|
className: cn("flex h-4 w-4 items-center justify-center rounded-sm border", isSelected ? "border-light-blue bg-light-blue" : "border-gray-400 bg-white"),
|
|
2604
2527
|
"aria-hidden": "true",
|
|
2605
|
-
children: isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2528
|
+
children: isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconCheck, {
|
|
2606
2529
|
size: 12,
|
|
2607
2530
|
color: "white",
|
|
2608
2531
|
stroke: 2,
|
|
@@ -2623,7 +2546,7 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2623
2546
|
})
|
|
2624
2547
|
}) }),
|
|
2625
2548
|
!hideError && errorText && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2626
|
-
className: "text-
|
|
2549
|
+
className: "yo-text-caption text-red-500",
|
|
2627
2550
|
role: "alert",
|
|
2628
2551
|
children: errorText
|
|
2629
2552
|
})
|
|
@@ -2631,7 +2554,6 @@ function Select({ id, options, placeholder, label, errorText, hideError = false,
|
|
|
2631
2554
|
});
|
|
2632
2555
|
}
|
|
2633
2556
|
Select.displayName = "Select";
|
|
2634
|
-
|
|
2635
2557
|
//#endregion
|
|
2636
2558
|
//#region src/components/settingsCard/index.tsx
|
|
2637
2559
|
const SettingsCard = ({ icon, title, link, ManageText, LinkComponent }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2641,16 +2563,15 @@ const SettingsCard = ({ icon, title, link, ManageText, LinkComponent }) => /* @_
|
|
|
2641
2563
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2642
2564
|
className: "flex items-center gap-4",
|
|
2643
2565
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: icon }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2644
|
-
className: "text-
|
|
2566
|
+
className: "yo-text-body",
|
|
2645
2567
|
children: title
|
|
2646
2568
|
})]
|
|
2647
2569
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
|
|
2648
|
-
className: "text-
|
|
2570
|
+
className: "yo-text-link text-sky-600 no-underline hover:underline",
|
|
2649
2571
|
href: link,
|
|
2650
2572
|
children: ManageText
|
|
2651
2573
|
})]
|
|
2652
2574
|
});
|
|
2653
|
-
|
|
2654
2575
|
//#endregion
|
|
2655
2576
|
//#region src/components/skeleton/index.tsx
|
|
2656
2577
|
const Skeleton = ({ className, "data-testid": dataTestId }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -2658,7 +2579,6 @@ const Skeleton = ({ className, "data-testid": dataTestId }) => /* @__PURE__ */ (
|
|
|
2658
2579
|
"data-testid": dataTestId || "skeleton",
|
|
2659
2580
|
className: cn("inline-block rounded-md", "animate-pulse bg-gray-100/50", className)
|
|
2660
2581
|
});
|
|
2661
|
-
|
|
2662
2582
|
//#endregion
|
|
2663
2583
|
//#region src/components/skillPill/index.tsx
|
|
2664
2584
|
const SkillPill = ({ name, number }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2673,7 +2593,6 @@ const SkillPill = ({ name, number }) => /* @__PURE__ */ (0, react_jsx_runtime.js
|
|
|
2673
2593
|
children: number
|
|
2674
2594
|
})]
|
|
2675
2595
|
});
|
|
2676
|
-
|
|
2677
2596
|
//#endregion
|
|
2678
2597
|
//#region src/components/stepper/NumberedStepper.tsx
|
|
2679
2598
|
const NumberedStepper = ({ steps, active, className, stepsCompleted, completedLabel, onStepClick }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2696,14 +2615,14 @@ const NumberedStepper = ({ steps, active, className, stepsCompleted, completedLa
|
|
|
2696
2615
|
className: "flex flex-auto flex-col justify-center",
|
|
2697
2616
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2698
2617
|
"data-testid": `stepper-label-${index}`,
|
|
2699
|
-
className: `content-center text-
|
|
2618
|
+
className: `content-center yo-text-small font-medium! whitespace-nowrap md:text-lg md:font-bold ${index <= active ? "text-gray-900" : "text-gray-500"}`,
|
|
2700
2619
|
children: step.label
|
|
2701
2620
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [completedLabel && active === 1 && index === 0 && stepsCompleted.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
2702
|
-
className: "text-green flex items-center text-
|
|
2621
|
+
className: "text-green flex items-center yo-text-caption",
|
|
2703
2622
|
children: [
|
|
2704
2623
|
completedLabel,
|
|
2705
2624
|
" ",
|
|
2706
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2625
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconCheck, {
|
|
2707
2626
|
className: "align-middle",
|
|
2708
2627
|
size: 12
|
|
2709
2628
|
})
|
|
@@ -2713,7 +2632,6 @@ const NumberedStepper = ({ steps, active, className, stepsCompleted, completedLa
|
|
|
2713
2632
|
})
|
|
2714
2633
|
}), index < steps.length - 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: `my-2 ml-6 flex h-[24px] w-px align-middle md:ml-0 md:h-px md:w-auto md:flex-1 ${active === 1 ? "bg-light-blue" : "bg-[#CCCCCC]"}` })] }, index))
|
|
2715
2634
|
});
|
|
2716
|
-
|
|
2717
2635
|
//#endregion
|
|
2718
2636
|
//#region src/components/stepper/Stepper.tsx
|
|
2719
2637
|
const Stepper = ({ steps, setStep = () => {}, variant = "default", clickableSteps, completedSteps, activeStep, isMobile, className }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2744,7 +2662,7 @@ const Stepper = ({ steps, setStep = () => {}, variant = "default", clickableStep
|
|
|
2744
2662
|
}),
|
|
2745
2663
|
children: [(index < activeStep || isCompleted) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2746
2664
|
className: "flex items-center justify-center text-white",
|
|
2747
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2665
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconCheck, { size: variant === "small" || isMobile ? 7 : 12 })
|
|
2748
2666
|
}), index === activeStep && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2749
2667
|
"data-testid": "active-step-indicator",
|
|
2750
2668
|
className: `${variant === "small" || isMobile ? "size-1" : "size-2"} bg-light-blue rounded-full`
|
|
@@ -2753,7 +2671,7 @@ const Stepper = ({ steps, setStep = () => {}, variant = "default", clickableStep
|
|
|
2753
2671
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2754
2672
|
className: "flex flex-wrap items-center justify-center",
|
|
2755
2673
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2756
|
-
className: `text-center ${variant === "small" || isMobile ? "text-xs-fields" : "text-
|
|
2674
|
+
className: `text-center ${variant === "small" || isMobile ? "text-xs-fields" : "yo-text-small"} ${index <= activeStep ? "text-gray-900" : "text-gray-500"}`,
|
|
2757
2675
|
children: step.label
|
|
2758
2676
|
})
|
|
2759
2677
|
}),
|
|
@@ -2764,7 +2682,6 @@ const Stepper = ({ steps, setStep = () => {}, variant = "default", clickableStep
|
|
|
2764
2682
|
}, index);
|
|
2765
2683
|
})
|
|
2766
2684
|
});
|
|
2767
|
-
|
|
2768
2685
|
//#endregion
|
|
2769
2686
|
//#region src/components/stickyMobileButton/index.tsx
|
|
2770
2687
|
const StickyMobileButtonWrapper = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2776,26 +2693,23 @@ const StickyMobileButtonWrapper = ({ children }) => /* @__PURE__ */ (0, react_js
|
|
|
2776
2693
|
children
|
|
2777
2694
|
})
|
|
2778
2695
|
});
|
|
2779
|
-
|
|
2780
2696
|
//#endregion
|
|
2781
2697
|
//#region src/components/table/index.tsx
|
|
2782
|
-
const Table = ({ children, className
|
|
2698
|
+
const Table = ({ children, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2783
2699
|
"data-testid": "table",
|
|
2784
2700
|
"data-component": "table",
|
|
2785
2701
|
className: cn("table w-full table-fixed border-collapse overflow-auto", className),
|
|
2786
2702
|
...props,
|
|
2787
2703
|
children
|
|
2788
2704
|
});
|
|
2789
|
-
|
|
2790
2705
|
//#endregion
|
|
2791
2706
|
//#region src/components/table/tableCell/index.tsx
|
|
2792
2707
|
const TableCell = ({ children, smallPadding, className }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2793
2708
|
"data-testid": "tableCell",
|
|
2794
2709
|
"data-component": "tableCell",
|
|
2795
|
-
className: `${cn("table-cell py-2 align-middle text-
|
|
2710
|
+
className: `${cn("table-cell py-2 align-middle yo-text-small first:pl-2 last:pr-2 md:py-0 md:xl:first:pl-10 md:xl:last:pr-10", { "md:xl:first:pl-5 md:xl:last:pr-5": smallPadding }, className)}`,
|
|
2796
2711
|
children
|
|
2797
2712
|
});
|
|
2798
|
-
|
|
2799
2713
|
//#endregion
|
|
2800
2714
|
//#region src/components/table/tableHeader/index.tsx
|
|
2801
2715
|
const TableHeader = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -2804,30 +2718,27 @@ const TableHeader = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)
|
|
|
2804
2718
|
className: "table-header-group border-b border-gray-200",
|
|
2805
2719
|
children
|
|
2806
2720
|
});
|
|
2807
|
-
|
|
2808
2721
|
//#endregion
|
|
2809
2722
|
//#region src/components/table/tableHeaderItem/index.tsx
|
|
2810
|
-
const TableHeaderItem = ({ children, smallPadding, className
|
|
2723
|
+
const TableHeaderItem = ({ children, smallPadding, className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2811
2724
|
"data-testid": "tableHeaderItem",
|
|
2812
2725
|
"data-component": "tableHeaderItem",
|
|
2813
|
-
className: cn("hidden h-10 align-middle text-
|
|
2726
|
+
className: cn("hidden h-10 align-middle yo-text-caption first:pl-10 last:pr-10 xl:table-cell", { "xl:first:pl-5 xl:last:pr-5": smallPadding }, className),
|
|
2814
2727
|
...props,
|
|
2815
2728
|
children
|
|
2816
2729
|
});
|
|
2817
|
-
|
|
2818
2730
|
//#endregion
|
|
2819
2731
|
//#region src/components/table/tableHeaderRow/index.tsx
|
|
2820
|
-
const TableHeaderRow = ({ children
|
|
2732
|
+
const TableHeaderRow = ({ children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2821
2733
|
"data-testid": "tableHeaderRow",
|
|
2822
2734
|
"data-component": "tableHeaderRow",
|
|
2823
2735
|
className: "table-row xl:border-0 xl:border-b xl:border-solid xl:border-gray-200",
|
|
2824
2736
|
...props,
|
|
2825
2737
|
children
|
|
2826
2738
|
});
|
|
2827
|
-
|
|
2828
2739
|
//#endregion
|
|
2829
2740
|
//#region src/components/table/tableRow/index.tsx
|
|
2830
|
-
function TableRow({ children, className, header
|
|
2741
|
+
function TableRow({ children, className, header, ...props }) {
|
|
2831
2742
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2832
2743
|
"data-testid": "tableRow",
|
|
2833
2744
|
"data-component": "tableRow",
|
|
@@ -2836,27 +2747,25 @@ function TableRow({ children, className, header,...props }) {
|
|
|
2836
2747
|
children
|
|
2837
2748
|
});
|
|
2838
2749
|
}
|
|
2839
|
-
|
|
2840
2750
|
//#endregion
|
|
2841
2751
|
//#region src/components/tabs/Tab.tsx
|
|
2842
2752
|
const Tab = (0, react.forwardRef)(({ tabId, activeTab, tabContent, clickFnc, rightSection }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
2843
2753
|
ref,
|
|
2844
2754
|
"data-testid": `tab-${tabId}`,
|
|
2845
|
-
className: `${activeTab && "text-light-blue bg-[#F0F0F6]"} bg-ultra-light-blue px-5 py-[10px] text-
|
|
2755
|
+
className: `${activeTab && "text-light-blue bg-[#F0F0F6]"} bg-ultra-light-blue px-5 py-[10px] yo-text-caption whitespace-nowrap text-black transition-colors duration-100 hover:border-black hover:bg-[#F0F0F6] data-active:border-black data-active:bg-[#F0F0F6] data-active:font-medium data-active:text-black`,
|
|
2846
2756
|
onClick: () => clickFnc(tabId),
|
|
2847
2757
|
children: [tabContent, rightSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2848
2758
|
className: "ml-2 inline-flex",
|
|
2849
2759
|
children: rightSection
|
|
2850
2760
|
})]
|
|
2851
2761
|
}));
|
|
2852
|
-
|
|
2853
2762
|
//#endregion
|
|
2854
2763
|
//#region src/components/tabs/TabsBadge.tsx
|
|
2855
2764
|
const TabsBadge = ({ children }) => {
|
|
2856
2765
|
const isCircular = typeof children === "number" && children <= 9 || typeof children === "string" && children.length === 1 || false;
|
|
2857
2766
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2858
2767
|
"data-testid": "tabs-badge",
|
|
2859
|
-
className: (0, clsx.default)("bg-secondary h-5 rounded-full text-
|
|
2768
|
+
className: (0, clsx.default)("bg-secondary h-5 rounded-full yo-text-caption leading-5 text-white", {
|
|
2860
2769
|
"w-5 text-center": isCircular,
|
|
2861
2770
|
"px-2": !isCircular
|
|
2862
2771
|
}),
|
|
@@ -2864,7 +2773,6 @@ const TabsBadge = ({ children }) => {
|
|
|
2864
2773
|
});
|
|
2865
2774
|
};
|
|
2866
2775
|
TabsBadge.displayName = "TabsBadge";
|
|
2867
|
-
|
|
2868
2776
|
//#endregion
|
|
2869
2777
|
//#region src/components/tabs/TabsWrapper.tsx
|
|
2870
2778
|
const TabsWrapper = ({ setActiveTab, activeTab, tabs }) => {
|
|
@@ -2922,40 +2830,38 @@ const TabContent = (0, react.forwardRef)(({ tab, setActiveTab, activeTab }, ref)
|
|
|
2922
2830
|
setActiveTab,
|
|
2923
2831
|
activeTab: activeTab === tab.value,
|
|
2924
2832
|
tabContent: tab.name,
|
|
2925
|
-
rightSection: tab?.rightSection ||
|
|
2833
|
+
rightSection: tab?.rightSection || void 0,
|
|
2926
2834
|
clickFnc: () => {
|
|
2927
2835
|
tab.clickFnc && tab.clickFnc(tab.value);
|
|
2928
2836
|
setActiveTab(tab.value);
|
|
2929
2837
|
}
|
|
2930
2838
|
}));
|
|
2931
2839
|
TabContent.displayName = "TabContent";
|
|
2932
|
-
|
|
2933
2840
|
//#endregion
|
|
2934
2841
|
//#region src/components/textArea/index.tsx
|
|
2935
|
-
const Textarea = (0, react.forwardRef)(({ className, label, error, rows = 8
|
|
2842
|
+
const Textarea = (0, react.forwardRef)(({ className, label, error, rows = 8, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2936
2843
|
className: "relative grid gap-2",
|
|
2937
2844
|
children: [
|
|
2938
2845
|
label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
2939
|
-
className: "flex items-center gap-1
|
|
2846
|
+
className: "flex items-center gap-1 yo-text-label",
|
|
2940
2847
|
children: label
|
|
2941
2848
|
}),
|
|
2942
2849
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
2943
2850
|
"data-component": "TextArea",
|
|
2944
2851
|
rows,
|
|
2945
2852
|
ref,
|
|
2946
|
-
className: cn("disabled:bg-grey-100 bg-ultra-light-gray w-full rounded border border-gray-200 p-3 text-
|
|
2853
|
+
className: cn("disabled:bg-grey-100 bg-ultra-light-gray w-full rounded border border-gray-200 p-3 yo-text-small text-black placeholder:text-gray-800 focus:ring-0 focus:outline-hidden disabled:cursor-not-allowed disabled:border-gray-300", { "border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500": !!error }, className),
|
|
2947
2854
|
...props
|
|
2948
2855
|
}),
|
|
2949
2856
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
|
|
2950
|
-
className: "text-
|
|
2857
|
+
className: "yo-text-caption text-red-500",
|
|
2951
2858
|
children: error
|
|
2952
2859
|
})
|
|
2953
2860
|
]
|
|
2954
2861
|
}));
|
|
2955
|
-
|
|
2956
2862
|
//#endregion
|
|
2957
2863
|
//#region src/components/themeIcon/index.tsx
|
|
2958
|
-
function ThemeIcon({ styleVariant = "black", className, icon, adjustedSize, title
|
|
2864
|
+
function ThemeIcon({ styleVariant = "black", className, icon, adjustedSize, title, ...props }) {
|
|
2959
2865
|
const classNames = cn("bg-transparent h-9 w-9 rounded-[5px] grid place-content-center", {
|
|
2960
2866
|
"text-black": styleVariant === COLOR.BLACK,
|
|
2961
2867
|
"text-gray-500": styleVariant === COLOR.GRAY,
|
|
@@ -2980,10 +2886,9 @@ function ThemeIcon({ styleVariant = "black", className, icon, adjustedSize, titl
|
|
|
2980
2886
|
})
|
|
2981
2887
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_tooltip.Tooltip, { id: title })] });
|
|
2982
2888
|
}
|
|
2983
|
-
|
|
2984
2889
|
//#endregion
|
|
2985
2890
|
//#region src/components/timeInput/index.tsx
|
|
2986
|
-
const TimeInput = (0, react.forwardRef)(({ label, error, withSeconds, className = ""
|
|
2891
|
+
const TimeInput = (0, react.forwardRef)(({ label, error, withSeconds, className = "", ...props }, ref) => {
|
|
2987
2892
|
const handleTimeChange = (e) => {
|
|
2988
2893
|
if (props.onChange) props.onChange(e);
|
|
2989
2894
|
};
|
|
@@ -2992,7 +2897,7 @@ const TimeInput = (0, react.forwardRef)(({ label, error, withSeconds, className
|
|
|
2992
2897
|
"data-component": "timeInput",
|
|
2993
2898
|
children: [
|
|
2994
2899
|
label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
2995
|
-
className: "mb-2 block text-
|
|
2900
|
+
className: "mb-2 block yo-text-label",
|
|
2996
2901
|
htmlFor: props.id,
|
|
2997
2902
|
children: label
|
|
2998
2903
|
}),
|
|
@@ -3002,16 +2907,15 @@ const TimeInput = (0, react.forwardRef)(({ label, error, withSeconds, className
|
|
|
3002
2907
|
type: "time",
|
|
3003
2908
|
step: withSeconds ? "1" : "60",
|
|
3004
2909
|
onChange: handleTimeChange,
|
|
3005
|
-
className: `bg-ultra-light-gray focus:border-primary flex h-10 min-h-[36px] w-full items-center rounded-[5px] border border-solid border-gray-200 px-3 text-
|
|
2910
|
+
className: `bg-ultra-light-gray focus:border-primary flex h-10 min-h-[36px] w-full items-center rounded-[5px] border border-solid border-gray-200 px-3 yo-text-small focus:outline-hidden ${error ? "border-red-500" : ""} ${className}`
|
|
3006
2911
|
}),
|
|
3007
2912
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
3008
|
-
className: "pt-2 text-
|
|
2913
|
+
className: "pt-2 yo-text-caption text-red-500",
|
|
3009
2914
|
children: error
|
|
3010
2915
|
})
|
|
3011
2916
|
]
|
|
3012
2917
|
});
|
|
3013
2918
|
});
|
|
3014
|
-
|
|
3015
2919
|
//#endregion
|
|
3016
2920
|
//#region src/components/toggle/index.tsx
|
|
3017
2921
|
const Toggle = ({ onClick, value, disabled = false }) => {
|
|
@@ -3033,7 +2937,6 @@ const Toggle = ({ onClick, value, disabled = false }) => {
|
|
|
3033
2937
|
})
|
|
3034
2938
|
});
|
|
3035
2939
|
};
|
|
3036
|
-
|
|
3037
2940
|
//#endregion
|
|
3038
2941
|
//#region src/components/truncatedText/index.tsx
|
|
3039
2942
|
const TruncatedText = ({ text, limit = 20 }) => {
|
|
@@ -3045,22 +2948,21 @@ const TruncatedText = ({ text, limit = 20 }) => {
|
|
|
3045
2948
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3046
2949
|
className: "flex items-center gap-2",
|
|
3047
2950
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3048
|
-
className: "text-
|
|
2951
|
+
className: "yo-text-small",
|
|
3049
2952
|
children: truncatedText
|
|
3050
2953
|
}), text.length > limit && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tooltip, {
|
|
3051
2954
|
content: text,
|
|
3052
2955
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3053
2956
|
className: "text-secondary",
|
|
3054
2957
|
"data-testid": "truncated-text-icon",
|
|
3055
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2958
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconMessageDots, { stroke: 1 })
|
|
3056
2959
|
})
|
|
3057
2960
|
})]
|
|
3058
2961
|
});
|
|
3059
2962
|
};
|
|
3060
|
-
|
|
3061
2963
|
//#endregion
|
|
3062
2964
|
//#region src/components/unorderedList/index.tsx
|
|
3063
|
-
const UnorderedList = ({ children, className, actionItem
|
|
2965
|
+
const UnorderedList = ({ children, className, actionItem, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ul", {
|
|
3064
2966
|
className: cn("m-0 last:border-none", className),
|
|
3065
2967
|
"data-component": "unorderedList",
|
|
3066
2968
|
"data-testid": "unorderedList",
|
|
@@ -3070,72 +2972,55 @@ const UnorderedList = ({ children, className, actionItem,...props }) => /* @__PU
|
|
|
3070
2972
|
children: actionItem
|
|
3071
2973
|
})]
|
|
3072
2974
|
});
|
|
3073
|
-
|
|
3074
2975
|
//#endregion
|
|
3075
2976
|
//#region src/components/unorderedListItem/index.tsx
|
|
3076
|
-
const UnorderedListItem = ({ children, actionItem, className, header = false
|
|
2977
|
+
const UnorderedListItem = ({ children, actionItem, className, header = false, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
3077
2978
|
...props,
|
|
3078
2979
|
"data-component": "unorderedListItem",
|
|
3079
|
-
className: cn("grid min-h-[74px] list-none items-center border-b border-solid border-b-gray-200 py-5 text-
|
|
2980
|
+
className: cn("grid min-h-[74px] list-none items-center border-b border-solid border-b-gray-200 py-5 yo-text-small last:border-none md:flex md:py-4 md:pr-10 md:pl-10", header ? "md:items-end" : "hover:bg-ultra-light-blue-gray", { "grid-cols-2": actionItem }, className),
|
|
3080
2981
|
children: [children, actionItem && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3081
2982
|
className: "flex justify-end gap-2 md:absolute md:right-8 md:items-center",
|
|
3082
2983
|
children: actionItem
|
|
3083
2984
|
})]
|
|
3084
2985
|
});
|
|
3085
|
-
|
|
3086
2986
|
//#endregion
|
|
3087
2987
|
//#region src/hooks/phone/usePhoneNumber.ts
|
|
3088
2988
|
function usePhoneNumber() {
|
|
3089
|
-
/**
|
|
3090
|
-
* Validates a phone number and returns parsing results
|
|
3091
|
-
*/
|
|
3092
|
-
const validatePhone = (0, react.useCallback)((phoneNumber, options) => (0, phone.default)(phoneNumber, options), []);
|
|
3093
|
-
/**
|
|
3094
|
-
* Strips the country code from a phone number
|
|
3095
|
-
* Example: +85265698900 -> 65698900
|
|
3096
|
-
*/
|
|
3097
|
-
const stripCountryCode = (0, react.useCallback)((phoneNumber) => {
|
|
3098
|
-
const result = (0, phone.default)(phoneNumber);
|
|
3099
|
-
if (!result.isValid) return phoneNumber;
|
|
3100
|
-
return result.phoneNumber.replace(result.countryCode, "");
|
|
3101
|
-
}, []);
|
|
3102
|
-
/**
|
|
3103
|
-
* Returns the country code from a phone number
|
|
3104
|
-
* Example: +85265698900 -> +852
|
|
3105
|
-
*/
|
|
3106
|
-
const getCountryCode = (0, react.useCallback)((phoneNumber) => {
|
|
3107
|
-
const result = (0, phone.default)(phoneNumber);
|
|
3108
|
-
if (!result.isValid) return phoneNumber;
|
|
3109
|
-
return result.countryCode;
|
|
3110
|
-
}, []);
|
|
3111
|
-
/**
|
|
3112
|
-
* Formats a phone number to international format with country code
|
|
3113
|
-
* Example: 0648711212 (with country: 'NL') -> +31648711212
|
|
3114
|
-
*/
|
|
3115
|
-
const formatToInternational = (0, react.useCallback)((phoneNumber, options) => {
|
|
3116
|
-
const result = (0, phone.default)(phoneNumber, options);
|
|
3117
|
-
if (!result.isValid) return phoneNumber;
|
|
3118
|
-
return result.phoneNumber;
|
|
3119
|
-
}, []);
|
|
3120
2989
|
return {
|
|
3121
|
-
validatePhone,
|
|
3122
|
-
stripCountryCode,
|
|
3123
|
-
|
|
3124
|
-
|
|
2990
|
+
validatePhone: (0, react.useCallback)((phoneNumber, options) => (0, phone.default)(phoneNumber, options), []),
|
|
2991
|
+
stripCountryCode: (0, react.useCallback)((phoneNumber) => {
|
|
2992
|
+
const result = (0, phone.default)(phoneNumber);
|
|
2993
|
+
if (!result.isValid) return phoneNumber;
|
|
2994
|
+
return result.phoneNumber.replace(result.countryCode, "");
|
|
2995
|
+
}, []),
|
|
2996
|
+
getCountryCode: (0, react.useCallback)((phoneNumber) => {
|
|
2997
|
+
const result = (0, phone.default)(phoneNumber);
|
|
2998
|
+
if (!result.isValid) return phoneNumber;
|
|
2999
|
+
return result.countryCode;
|
|
3000
|
+
}, []),
|
|
3001
|
+
formatToInternational: (0, react.useCallback)((phoneNumber, options) => {
|
|
3002
|
+
const result = (0, phone.default)(phoneNumber, options);
|
|
3003
|
+
if (!result.isValid) return phoneNumber;
|
|
3004
|
+
return result.phoneNumber;
|
|
3005
|
+
}, [])
|
|
3125
3006
|
};
|
|
3126
3007
|
}
|
|
3127
|
-
|
|
3128
3008
|
//#endregion
|
|
3129
3009
|
//#region src/hooks/phone/usePhoneNumberPrefix.ts
|
|
3010
|
+
/** CJS package often exposes `{ Country, default: api }`; Vite/Node ESM may not unwrap `.default`. */
|
|
3011
|
+
const countryListApi = (() => {
|
|
3012
|
+
const mod = country_list_with_dial_code_and_flag.default;
|
|
3013
|
+
if (typeof mod.getAll === "function") return mod;
|
|
3014
|
+
if (mod.default && typeof mod.default.getAll === "function") return mod.default;
|
|
3015
|
+
throw new Error("country-list-with-dial-code-and-flag: expected getAll()");
|
|
3016
|
+
})();
|
|
3130
3017
|
const usePhoneNumberPrefix = (defaultCountry) => {
|
|
3131
|
-
|
|
3132
|
-
return countryList.filter((country) => country.dial_code).sort((a, b) => {
|
|
3018
|
+
return countryListApi.getAll().filter((country) => country.dial_code).sort((a, b) => {
|
|
3133
3019
|
if (a?.code === defaultCountry) return -1;
|
|
3134
3020
|
if (b?.code === defaultCountry) return 1;
|
|
3135
3021
|
return a.name.localeCompare(b.name);
|
|
3136
3022
|
});
|
|
3137
3023
|
};
|
|
3138
|
-
|
|
3139
3024
|
//#endregion
|
|
3140
3025
|
//#region src/components/phoneInput/index.tsx
|
|
3141
3026
|
const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
@@ -3146,24 +3031,24 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3146
3031
|
const [filteredCountries, setFilteredCountries] = (0, react.useState)(phoneNumberPrefixes);
|
|
3147
3032
|
const [highlightedIndex, setHighlightedIndex] = (0, react.useState)(-1);
|
|
3148
3033
|
const optionRefs = (0, react.useRef)([]);
|
|
3149
|
-
const { refs, floatingStyles, context } = (0,
|
|
3034
|
+
const { refs, floatingStyles, context } = (0, _floating_ui_react.useFloating)({
|
|
3150
3035
|
open: openDropdown,
|
|
3151
3036
|
onOpenChange: (isOpen) => {
|
|
3152
3037
|
setOpenDropdown(isOpen);
|
|
3153
3038
|
if (isOpen) setHighlightedIndex(-1);
|
|
3154
3039
|
},
|
|
3155
3040
|
middleware: [
|
|
3156
|
-
(0,
|
|
3157
|
-
(0,
|
|
3158
|
-
(0,
|
|
3041
|
+
(0, _floating_ui_react.offset)(4),
|
|
3042
|
+
(0, _floating_ui_react.flip)(),
|
|
3043
|
+
(0, _floating_ui_react.shift)()
|
|
3159
3044
|
],
|
|
3160
|
-
whileElementsMounted:
|
|
3045
|
+
whileElementsMounted: _floating_ui_react.autoUpdate,
|
|
3161
3046
|
placement: "bottom-start"
|
|
3162
3047
|
});
|
|
3163
|
-
const click = (0,
|
|
3164
|
-
const dismiss = (0,
|
|
3165
|
-
const role = (0,
|
|
3166
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
3048
|
+
const click = (0, _floating_ui_react.useClick)(context);
|
|
3049
|
+
const dismiss = (0, _floating_ui_react.useDismiss)(context);
|
|
3050
|
+
const role = (0, _floating_ui_react.useRole)(context, { role: "combobox" });
|
|
3051
|
+
const { getReferenceProps, getFloatingProps } = (0, _floating_ui_react.useInteractions)([
|
|
3167
3052
|
click,
|
|
3168
3053
|
dismiss,
|
|
3169
3054
|
role
|
|
@@ -3174,20 +3059,17 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3174
3059
|
return phoneNumberPrefixes.filter((country) => country.name.toLowerCase().includes(lowerQuery) || country.dial_code.toLowerCase().includes(lowerQuery) || country.code.toLowerCase().includes(lowerQuery));
|
|
3175
3060
|
}, [phoneNumberPrefixes]);
|
|
3176
3061
|
(0, react.useEffect)(() => {
|
|
3177
|
-
|
|
3178
|
-
setFilteredCountries(results);
|
|
3062
|
+
setFilteredCountries(performSearch(searchQuery));
|
|
3179
3063
|
setHighlightedIndex(-1);
|
|
3180
3064
|
}, [searchQuery]);
|
|
3181
3065
|
(0, react.useEffect)(() => {
|
|
3182
3066
|
optionRefs.current = optionRefs.current.slice(0, filteredCountries.length);
|
|
3183
3067
|
}, [filteredCountries]);
|
|
3184
3068
|
(0, react.useEffect)(() => {
|
|
3185
|
-
if (highlightedIndex >= 0 && optionRefs.current[highlightedIndex]) {
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
});
|
|
3190
|
-
}
|
|
3069
|
+
if (highlightedIndex >= 0 && optionRefs.current[highlightedIndex]) optionRefs.current[highlightedIndex]?.scrollIntoView({
|
|
3070
|
+
behavior: "auto",
|
|
3071
|
+
block: "nearest"
|
|
3072
|
+
});
|
|
3191
3073
|
}, [highlightedIndex]);
|
|
3192
3074
|
const handleSelect = (country) => {
|
|
3193
3075
|
setSelectedCountry(country);
|
|
@@ -3204,11 +3086,10 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3204
3086
|
e.preventDefault();
|
|
3205
3087
|
setHighlightedIndex((prev) => prev > 0 ? prev - 1 : filteredCountries.length - 1);
|
|
3206
3088
|
break;
|
|
3207
|
-
case "Enter":
|
|
3089
|
+
case "Enter":
|
|
3208
3090
|
e.preventDefault();
|
|
3209
3091
|
if (highlightedIndex >= 0) handleSelect(filteredCountries[highlightedIndex]);
|
|
3210
3092
|
break;
|
|
3211
|
-
}
|
|
3212
3093
|
case "Escape":
|
|
3213
3094
|
e.preventDefault();
|
|
3214
3095
|
setOpenDropdown(false);
|
|
@@ -3235,11 +3116,11 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3235
3116
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3236
3117
|
className: "flex items-center gap-1",
|
|
3237
3118
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3238
|
-
className: "text-
|
|
3119
|
+
className: "yo-text-label",
|
|
3239
3120
|
children: selectedCountry?.dial_code
|
|
3240
3121
|
})
|
|
3241
3122
|
})
|
|
3242
|
-
}), openDropdown && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3123
|
+
}), openDropdown && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingPortal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_floating_ui_react.FloatingFocusManager, {
|
|
3243
3124
|
context,
|
|
3244
3125
|
modal: false,
|
|
3245
3126
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -3266,15 +3147,17 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3266
3147
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3267
3148
|
className: "max-h-[200px] overflow-auto p-1",
|
|
3268
3149
|
children: filteredCountries.length > 0 ? filteredCountries.map((country, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
3269
|
-
ref: (el) =>
|
|
3150
|
+
ref: (el) => {
|
|
3151
|
+
optionRefs.current[index] = el;
|
|
3152
|
+
},
|
|
3270
3153
|
type: "button",
|
|
3271
3154
|
role: "option",
|
|
3272
3155
|
"aria-selected": selectedCountry?.code === country.code,
|
|
3273
3156
|
onClick: () => handleSelect(country),
|
|
3274
|
-
className: cn("flex w-full items-center gap-3 rounded px-3 py-2 text-
|
|
3157
|
+
className: cn("flex w-full items-center gap-3 rounded px-3 py-2 yo-text-small hover:bg-gray-50", selectedCountry?.code === country.code && "bg-gray-50", highlightedIndex === index && "bg-gray-50 border border-gray-100"),
|
|
3275
3158
|
children: [
|
|
3276
3159
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3277
|
-
className: "text-
|
|
3160
|
+
className: "yo-text-body",
|
|
3278
3161
|
children: country.flag
|
|
3279
3162
|
}),
|
|
3280
3163
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -3282,12 +3165,12 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3282
3165
|
children: country.name
|
|
3283
3166
|
}),
|
|
3284
3167
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3285
|
-
className: "text-
|
|
3168
|
+
className: "yo-text-label text-gray-600",
|
|
3286
3169
|
children: country.dial_code
|
|
3287
3170
|
})
|
|
3288
3171
|
]
|
|
3289
3172
|
}, country.code + country.name + country.dial_code)) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
3290
|
-
className: "px-3 py-2 text-
|
|
3173
|
+
className: "px-3 py-2 yo-text-small text-gray-500 text-center",
|
|
3291
3174
|
children: "No countries found"
|
|
3292
3175
|
})
|
|
3293
3176
|
})]
|
|
@@ -3295,7 +3178,7 @@ const CountrySelector = ({ searchPlaceholder, defaultCountry, ref }) => {
|
|
|
3295
3178
|
}) })]
|
|
3296
3179
|
});
|
|
3297
3180
|
};
|
|
3298
|
-
const PhoneInput = ({ placeholder, searchPlaceHolder, defaultCountry = "NL", invalidMessage, defaultValue, onChange, ref
|
|
3181
|
+
const PhoneInput = ({ placeholder, searchPlaceHolder, defaultCountry = "NL", invalidMessage, defaultValue, onChange, ref, ...rest }) => {
|
|
3299
3182
|
const inputRef = (0, react.useRef)(null);
|
|
3300
3183
|
const [phoneNumber, setPhoneNumber] = (0, react.useState)(defaultValue || "");
|
|
3301
3184
|
const { validatePhone, stripCountryCode, getCountryCode, formatToInternational } = usePhoneNumber();
|
|
@@ -3308,18 +3191,15 @@ const PhoneInput = ({ placeholder, searchPlaceHolder, defaultCountry = "NL", inv
|
|
|
3308
3191
|
if (filteredValue.startsWith("+") && filteredValue.length > 1) {
|
|
3309
3192
|
const countryCode = getCountryCode(filteredValue);
|
|
3310
3193
|
if (countryCode) countrySelectorRef.current?.updateCountry(countryCode);
|
|
3311
|
-
|
|
3312
|
-
setPhoneNumber(strippedNumber);
|
|
3194
|
+
setPhoneNumber(stripCountryCode(filteredValue));
|
|
3313
3195
|
return;
|
|
3314
3196
|
} else setPhoneNumber(filteredValue);
|
|
3315
3197
|
};
|
|
3316
3198
|
const handleBlur = () => {
|
|
3317
3199
|
if (phoneNumber.trim()) {
|
|
3318
3200
|
const selectedCountry = countrySelectorRef.current?.getSelectedCountry();
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
const formattedNumber = formatToInternational(phoneNumber, { country: selectedCountry?.code });
|
|
3322
|
-
const displayNumber = stripCountryCode(formattedNumber);
|
|
3201
|
+
if (validatePhone(phoneNumber, { country: selectedCountry?.code }).isValid) {
|
|
3202
|
+
const displayNumber = stripCountryCode(formatToInternational(phoneNumber, { country: selectedCountry?.code }));
|
|
3323
3203
|
const fullNumber = selectedCountry?.dial_code + displayNumber;
|
|
3324
3204
|
setPhoneNumber(displayNumber);
|
|
3325
3205
|
onChange(fullNumber);
|
|
@@ -3345,7 +3225,6 @@ const PhoneInput = ({ placeholder, searchPlaceHolder, defaultCountry = "NL", inv
|
|
|
3345
3225
|
});
|
|
3346
3226
|
};
|
|
3347
3227
|
PhoneInput.displayName = "PhoneInput";
|
|
3348
|
-
|
|
3349
3228
|
//#endregion
|
|
3350
3229
|
//#region src/components/profileMenu/index.tsx
|
|
3351
3230
|
const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classNames }) => {
|
|
@@ -3360,26 +3239,23 @@ const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classN
|
|
|
3360
3239
|
const buttonId = `${menuId}-button`;
|
|
3361
3240
|
const defaultStyling = "text-black flex items-center gap-1 bg-transparent py-1 px-2.5 h-9 min-w-9 cursor-pointer border-gray-200 focus:bg-gray-50 focus:ring focus:ring-primary focus:outline-none focus:border-0 focus:ring-inset";
|
|
3362
3241
|
const handleToggle = () => {
|
|
3363
|
-
if (!disabled) {
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
return newIsOpen;
|
|
3381
|
-
});
|
|
3382
|
-
}
|
|
3242
|
+
if (!disabled) setIsOpen((prev) => {
|
|
3243
|
+
const newIsOpen = !prev;
|
|
3244
|
+
/* istanbul ignore next - branch depends on async DOM focus */
|
|
3245
|
+
if (newIsOpen) setTimeout(() => {
|
|
3246
|
+
/* istanbul ignore next - async focus behavior depends on DOM/timing */
|
|
3247
|
+
setFocusedIndex(0);
|
|
3248
|
+
/* istanbul ignore next - async focus behavior depends on DOM/timing */
|
|
3249
|
+
menuItemRefs.current[0]?.focus();
|
|
3250
|
+
}, 0);
|
|
3251
|
+
else {
|
|
3252
|
+
/* istanbul ignore next - focus reset depends on DOM/timing */
|
|
3253
|
+
setFocusedIndex(-1);
|
|
3254
|
+
/* istanbul ignore next - focus reset depends on DOM/timing */
|
|
3255
|
+
buttonRef.current?.focus();
|
|
3256
|
+
}
|
|
3257
|
+
return newIsOpen;
|
|
3258
|
+
});
|
|
3383
3259
|
};
|
|
3384
3260
|
/* istanbul ignore next - click handler behavior covered via integration; unit env flaky */
|
|
3385
3261
|
const handleItemClick = (onClick) => {
|
|
@@ -3461,7 +3337,7 @@ const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classN
|
|
|
3461
3337
|
"aria-label": "Toggle profile menu",
|
|
3462
3338
|
"aria-expanded": isOpen,
|
|
3463
3339
|
"aria-haspopup": "menu",
|
|
3464
|
-
"aria-controls": isOpen ? menuId :
|
|
3340
|
+
"aria-controls": isOpen ? menuId : void 0,
|
|
3465
3341
|
className: cn(buttonVariants["secondary"], defaultStyling, classNames?.button),
|
|
3466
3342
|
disabled,
|
|
3467
3343
|
onClick: handleToggle,
|
|
@@ -3483,7 +3359,7 @@ const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classN
|
|
|
3483
3359
|
role: "menuitem",
|
|
3484
3360
|
tabIndex: -1,
|
|
3485
3361
|
onClick: () => handleItemClick(c.onClick),
|
|
3486
|
-
className: cn("w-full rounded-md px-4 py-2 text-left text-
|
|
3362
|
+
className: cn("w-full rounded-md px-4 py-2 text-left yo-text-small whitespace-nowrap transition-colors", "focus:ring-primary hover:bg-gray-50 focus:bg-gray-50 focus:ring focus:outline-none focus:ring-inset", c.disabled && "cursor-not-allowed opacity-50", focusedIndex === index && "bg-gray-50"),
|
|
3487
3363
|
"aria-label": c.title,
|
|
3488
3364
|
disabled: c.disabled,
|
|
3489
3365
|
children: c.title
|
|
@@ -3492,50 +3368,48 @@ const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classN
|
|
|
3492
3368
|
})]
|
|
3493
3369
|
}) });
|
|
3494
3370
|
};
|
|
3495
|
-
|
|
3496
3371
|
//#endregion
|
|
3497
3372
|
//#region src/utils/ssr.ts
|
|
3498
3373
|
const isSSR = () => typeof window === "undefined" || typeof document === "undefined";
|
|
3499
|
-
|
|
3500
3374
|
//#endregion
|
|
3501
3375
|
//#region src/components/wysiwygEditor/index.tsx
|
|
3502
|
-
const BoldIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3376
|
+
const BoldIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconBold, {
|
|
3503
3377
|
size: 18,
|
|
3504
3378
|
stroke: 1.5
|
|
3505
3379
|
});
|
|
3506
|
-
const ItalicIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3380
|
+
const ItalicIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconItalic, {
|
|
3507
3381
|
size: 18,
|
|
3508
3382
|
stroke: 1.5
|
|
3509
3383
|
});
|
|
3510
|
-
const UnderlineIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3384
|
+
const UnderlineIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconUnderline, {
|
|
3511
3385
|
size: 18,
|
|
3512
3386
|
stroke: 1.5
|
|
3513
3387
|
});
|
|
3514
|
-
const ClearFormattingIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3388
|
+
const ClearFormattingIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconClearFormatting, {
|
|
3515
3389
|
size: 18,
|
|
3516
3390
|
stroke: 1.5
|
|
3517
3391
|
});
|
|
3518
|
-
const ListIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3392
|
+
const ListIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconList, {
|
|
3519
3393
|
size: 18,
|
|
3520
3394
|
stroke: 1.5
|
|
3521
3395
|
});
|
|
3522
|
-
const ListNumbersIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3396
|
+
const ListNumbersIcon = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconListNumbers, {
|
|
3523
3397
|
size: 18,
|
|
3524
3398
|
stroke: 1.5
|
|
3525
3399
|
});
|
|
3526
3400
|
const WysiwygEditor = (0, react.forwardRef)(({ id, content, className, placeholder, onChange, readOnly, error }, ref) => {
|
|
3527
|
-
const editor = (0,
|
|
3401
|
+
const editor = (0, _tiptap_react.useEditor)({
|
|
3528
3402
|
extensions: [
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3403
|
+
_tiptap_starter_kit.StarterKit,
|
|
3404
|
+
_tiptap_extension_underline.Underline,
|
|
3405
|
+
_tiptap_extension_placeholder.Placeholder.configure({ placeholder })
|
|
3532
3406
|
],
|
|
3533
|
-
editorProps: { attributes: { class: "min-h-[190px] md:min-h-[150px] bg-ultra-light-gray text-
|
|
3407
|
+
editorProps: { attributes: { class: "min-h-[190px] md:min-h-[150px] bg-ultra-light-gray yo-text-small p-4 prose prose-sm sm:prose-base lg:prose-lg xl:prose-2xl focus:outline-hidden" } },
|
|
3534
3408
|
content,
|
|
3535
3409
|
immediatelyRender: false,
|
|
3536
3410
|
editable: !readOnly,
|
|
3537
|
-
onUpdate({ editor
|
|
3538
|
-
let sanitizedOutput = editor
|
|
3411
|
+
onUpdate({ editor }) {
|
|
3412
|
+
let sanitizedOutput = editor.getHTML().replaceAll(/<li><p>(.*?)<\/p><(\/?)(ol|li|ul)>/gi, "<li>$1<$2$3>");
|
|
3539
3413
|
sanitizedOutput = sanitizedOutput.replace(/(<p><\/p>\s*)+/gi, "<p></p>");
|
|
3540
3414
|
sanitizedOutput = sanitizedOutput.replace(/^(<p><\/p>\s*)+/gi, "");
|
|
3541
3415
|
sanitizedOutput = sanitizedOutput.replace(/(<p><\/p>\s*)+$/gi, "");
|
|
@@ -3567,28 +3441,28 @@ const WysiwygEditor = (0, react.forwardRef)(({ id, content, className, placehold
|
|
|
3567
3441
|
type: "button",
|
|
3568
3442
|
"data-testid": "bold-button",
|
|
3569
3443
|
onClick: () => editor.chain().focus().toggleBold().run(),
|
|
3570
|
-
className: `${editor.isActive("bold") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 text-
|
|
3444
|
+
className: `${editor.isActive("bold") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 yo-text-small hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`,
|
|
3571
3445
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BoldIcon, {})
|
|
3572
3446
|
}),
|
|
3573
3447
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3574
3448
|
type: "button",
|
|
3575
3449
|
"data-testid": "italic-button",
|
|
3576
3450
|
onClick: () => editor.chain().focus().toggleItalic().run(),
|
|
3577
|
-
className: `${editor.isActive("italic") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center border-gray-400 text-
|
|
3451
|
+
className: `${editor.isActive("italic") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center border-gray-400 yo-text-small hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`,
|
|
3578
3452
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ItalicIcon, {})
|
|
3579
3453
|
}),
|
|
3580
3454
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3581
3455
|
type: "button",
|
|
3582
3456
|
"data-testid": "underline-button",
|
|
3583
3457
|
onClick: () => editor.chain().focus().toggleUnderline().run(),
|
|
3584
|
-
className: `${editor.isActive("underline") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center border-gray-400 text-
|
|
3458
|
+
className: `${editor.isActive("underline") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center border-gray-400 yo-text-small hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`,
|
|
3585
3459
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(UnderlineIcon, {})
|
|
3586
3460
|
}),
|
|
3587
3461
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3588
3462
|
type: "button",
|
|
3589
3463
|
"data-testid": "clear-formatting-button",
|
|
3590
3464
|
onClick: () => editor.chain().focus().clearNodes().unsetAllMarks().run(),
|
|
3591
|
-
className: "flex size-[26px] items-center justify-center rounded-r-md border-gray-400 bg-white text-
|
|
3465
|
+
className: "flex size-[26px] items-center justify-center rounded-r-md border-gray-400 bg-white yo-text-small hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden",
|
|
3592
3466
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ClearFormattingIcon, {})
|
|
3593
3467
|
})
|
|
3594
3468
|
]
|
|
@@ -3598,17 +3472,17 @@ const WysiwygEditor = (0, react.forwardRef)(({ id, content, className, placehold
|
|
|
3598
3472
|
type: "button",
|
|
3599
3473
|
"data-testid": "bullet-list-button",
|
|
3600
3474
|
onClick: () => editor.chain().focus().toggleBulletList().run(),
|
|
3601
|
-
className: `${editor.isActive("bulletList") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 text-
|
|
3475
|
+
className: `${editor.isActive("bulletList") ? "bg-primary/20" : "bg-white"} flex size-[26px] items-center justify-center rounded-l-md border-gray-400 yo-text-small hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`,
|
|
3602
3476
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListIcon, {})
|
|
3603
3477
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3604
3478
|
type: "button",
|
|
3605
3479
|
"data-testid": "ordered-list-button",
|
|
3606
3480
|
onClick: () => editor.chain().focus().toggleOrderedList().run(),
|
|
3607
|
-
className: `${editor.isActive("orderedList") ? "bg-primary/20 text-primary" : "bg-white"} flex size-[26px] items-center justify-center rounded-r-md border-gray-400 text-
|
|
3481
|
+
className: `${editor.isActive("orderedList") ? "bg-primary/20 text-primary" : "bg-white"} flex size-[26px] items-center justify-center rounded-r-md border-gray-400 yo-text-small hover:bg-gray-100 focus:ring-2 focus:ring-teal-500 focus:outline-hidden`,
|
|
3608
3482
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListNumbersIcon, {})
|
|
3609
3483
|
})]
|
|
3610
3484
|
})]
|
|
3611
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3485
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_tiptap_react.EditorContent, {
|
|
3612
3486
|
editor,
|
|
3613
3487
|
"data-component": "wysiwygEditor",
|
|
3614
3488
|
"data-testid": id,
|
|
@@ -3616,11 +3490,10 @@ const WysiwygEditor = (0, react.forwardRef)(({ id, content, className, placehold
|
|
|
3616
3490
|
className: cn("overflow-hidden rounded-[inherit]")
|
|
3617
3491
|
})]
|
|
3618
3492
|
}), error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3619
|
-
className: "mt-1 text-
|
|
3493
|
+
className: "mt-1 yo-text-small text-red-600",
|
|
3620
3494
|
children: error
|
|
3621
3495
|
})] });
|
|
3622
3496
|
});
|
|
3623
|
-
|
|
3624
3497
|
//#endregion
|
|
3625
3498
|
exports.AccordionItem = AccordionItem;
|
|
3626
3499
|
exports.AccordionWrapper = AccordionWrapper;
|
|
@@ -3689,4 +3562,5 @@ exports.UnorderedListItem = UnorderedListItem;
|
|
|
3689
3562
|
exports.UnstyledButton = UnstyledButton;
|
|
3690
3563
|
exports.WysiwygEditor = WysiwygEditor;
|
|
3691
3564
|
exports.buttonVariants = buttonVariants;
|
|
3565
|
+
|
|
3692
3566
|
//# sourceMappingURL=index.cjs.map
|