@keboola/design 3.0.0 → 3.1.0
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/README.md +2 -4
- package/dist/index.cjs +1065 -803
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +379 -389
- package/dist/index.d.ts +379 -389
- package/dist/index.js +1046 -785
- package/dist/index.js.map +1 -1
- package/dist/markdown-editor.cjs +200 -143
- package/dist/markdown-editor.cjs.map +1 -1
- package/dist/markdown-editor.js +199 -143
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.cjs +75 -44
- package/dist/mermaid.cjs.map +1 -1
- package/dist/mermaid.js +75 -45
- package/dist/mermaid.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing.cjs +11 -28
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +11 -28
- package/dist/testing.js.map +1 -1
- package/package.json +13 -3
- package/src/styles.css +19 -18
package/dist/markdown-editor.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { extendTailwindMerge } from 'tailwind-merge';
|
|
3
|
+
import { createContext, lazy, Suspense, use, useId, useState, useRef, useEffect, forwardRef, useCallback, useMemo } from 'react';
|
|
4
|
+
import { keboolaLegacy } from '@keboola/brand-registry';
|
|
3
5
|
import { Portal, Content, Root, Trigger } from '@radix-ui/react-tooltip';
|
|
4
6
|
import { cva } from 'class-variance-authority';
|
|
5
7
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
6
|
-
import { createContext, lazy, Suspense, use, useId, useState, useRef, useEffect, forwardRef, useCallback, useMemo } from 'react';
|
|
7
8
|
import * as lucide_react_star from 'lucide-react';
|
|
8
9
|
import { Root as Root$2, Slottable } from '@radix-ui/react-slot';
|
|
10
|
+
import DOMPurify from 'dompurify';
|
|
9
11
|
import { renderMermaidSVG } from 'beautiful-mermaid';
|
|
10
12
|
import colors from '@keboola/tailwind-config/colors';
|
|
11
13
|
import { CodeNode, $isCodeNode, $createCodeNode } from '@lexical/code';
|
|
@@ -126,20 +128,62 @@ var init_keyCodes = __esm({
|
|
|
126
128
|
};
|
|
127
129
|
}
|
|
128
130
|
});
|
|
131
|
+
var ThemeContext;
|
|
132
|
+
var init_themeContext = __esm({
|
|
133
|
+
"src/components/ThemeProvider/themeContext.ts"() {
|
|
134
|
+
ThemeContext = createContext(null);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
var useIsLegacyBrand;
|
|
138
|
+
var init_useIsLegacyBrand = __esm({
|
|
139
|
+
"src/components/internal/useIsLegacyBrand.ts"() {
|
|
140
|
+
init_themeContext();
|
|
141
|
+
useIsLegacyBrand = () => {
|
|
142
|
+
const context = use(ThemeContext);
|
|
143
|
+
return context === null || context.brand.id === keboolaLegacy.id;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
129
147
|
var tooltipVariants, TooltipContent;
|
|
130
148
|
var init_TooltipContent = __esm({
|
|
131
149
|
"src/components/Tooltip/TooltipContent.tsx"() {
|
|
150
|
+
init_useIsLegacyBrand();
|
|
132
151
|
tooltipVariants = cva(
|
|
133
152
|
[
|
|
134
153
|
"tailwindcss-preflight",
|
|
135
154
|
"tw-inline-block",
|
|
136
|
-
"tw-rounded",
|
|
137
|
-
"tw-bg-neutral-800",
|
|
138
|
-
"tw-text-white",
|
|
139
155
|
"tw-break-anywhere",
|
|
140
156
|
"tw-max-h-96",
|
|
141
157
|
"tw-overflow-y-auto",
|
|
142
|
-
"tw-z-[1060]"
|
|
158
|
+
"tw-z-[1060]",
|
|
159
|
+
// legacy (dark) chrome — default
|
|
160
|
+
"tw-rounded",
|
|
161
|
+
"tw-bg-neutral-800",
|
|
162
|
+
"tw-text-white",
|
|
163
|
+
// argo chrome overrides — semantic floating-panel tokens
|
|
164
|
+
"data-[argo=true]:tw-rounded-2xl",
|
|
165
|
+
"data-[argo=true]:tw-border",
|
|
166
|
+
"data-[argo=true]:tw-border-solid",
|
|
167
|
+
"data-[argo=true]:tw-border-border",
|
|
168
|
+
"data-[argo=true]:tw-bg-popover",
|
|
169
|
+
"data-[argo=true]:tw-text-popover-foreground",
|
|
170
|
+
"data-[argo=true]:tw-shadow-md",
|
|
171
|
+
// argo open animation
|
|
172
|
+
"data-[argo=true]:data-[state=delayed-open]:tw-animate-in",
|
|
173
|
+
"data-[argo=true]:data-[state=instant-open]:tw-animate-in",
|
|
174
|
+
"data-[argo=true]:data-[state=delayed-open]:tw-fade-in-0",
|
|
175
|
+
"data-[argo=true]:data-[state=instant-open]:tw-fade-in-0",
|
|
176
|
+
"data-[argo=true]:data-[state=delayed-open]:tw-zoom-in-95",
|
|
177
|
+
"data-[argo=true]:data-[state=instant-open]:tw-zoom-in-95",
|
|
178
|
+
// argo closed animation
|
|
179
|
+
"data-[argo=true]:data-[state=closed]:tw-animate-out",
|
|
180
|
+
"data-[argo=true]:data-[state=closed]:tw-fade-out-0",
|
|
181
|
+
"data-[argo=true]:data-[state=closed]:tw-zoom-out-95",
|
|
182
|
+
// argo position animation
|
|
183
|
+
"data-[argo=true]:data-[side=bottom]:tw-slide-in-from-top-2",
|
|
184
|
+
"data-[argo=true]:data-[side=left]:tw-slide-in-from-right-2",
|
|
185
|
+
"data-[argo=true]:data-[side=right]:tw-slide-in-from-left-2",
|
|
186
|
+
"data-[argo=true]:data-[side=top]:tw-slide-in-from-bottom-2"
|
|
143
187
|
],
|
|
144
188
|
{
|
|
145
189
|
defaultVariants: {
|
|
@@ -172,6 +216,7 @@ var init_TooltipContent = __esm({
|
|
|
172
216
|
TooltipContent = ({
|
|
173
217
|
className,
|
|
174
218
|
variant,
|
|
219
|
+
argo,
|
|
175
220
|
keepOpenOnPointerDownOutside = false,
|
|
176
221
|
children,
|
|
177
222
|
onPointerDownOutside,
|
|
@@ -181,6 +226,8 @@ var init_TooltipContent = __esm({
|
|
|
181
226
|
placement = "right",
|
|
182
227
|
...rest
|
|
183
228
|
}) => {
|
|
229
|
+
const isLegacy = useIsLegacyBrand();
|
|
230
|
+
const renderArgo = !isLegacy || argo === true;
|
|
184
231
|
const handlePointerDownOutside = (event) => {
|
|
185
232
|
if (keepOpenOnPointerDownOutside) event.preventDefault();
|
|
186
233
|
onPointerDownOutside?.(event);
|
|
@@ -189,7 +236,8 @@ var init_TooltipContent = __esm({
|
|
|
189
236
|
Content,
|
|
190
237
|
{
|
|
191
238
|
...rest,
|
|
192
|
-
"data-tooltip-content": true,
|
|
239
|
+
"data-tooltip-content": renderArgo ? void 0 : true,
|
|
240
|
+
"data-argo": renderArgo,
|
|
193
241
|
sideOffset,
|
|
194
242
|
collisionPadding,
|
|
195
243
|
onPointerDownOutside: handlePointerDownOutside,
|
|
@@ -268,6 +316,7 @@ var init_Tooltip = __esm({
|
|
|
268
316
|
className,
|
|
269
317
|
keepOpenOnTriggerClick = false,
|
|
270
318
|
variant,
|
|
319
|
+
argo,
|
|
271
320
|
placement = "right",
|
|
272
321
|
forceHide = false,
|
|
273
322
|
forceShow = false,
|
|
@@ -306,6 +355,7 @@ var init_Tooltip = __esm({
|
|
|
306
355
|
{
|
|
307
356
|
className,
|
|
308
357
|
variant: resolvedVariant,
|
|
358
|
+
argo,
|
|
309
359
|
placement,
|
|
310
360
|
keepOpenOnPointerDownOutside: keepOpenOnTriggerClick,
|
|
311
361
|
children: tooltip
|
|
@@ -394,28 +444,6 @@ var init_isMac = __esm({
|
|
|
394
444
|
getIsMac();
|
|
395
445
|
}
|
|
396
446
|
});
|
|
397
|
-
|
|
398
|
-
// src/utils/legacyIcon.tsx
|
|
399
|
-
var isFAIconValue, registeredRenderer, warnedOnce, renderLegacyIcon;
|
|
400
|
-
var init_legacyIcon = __esm({
|
|
401
|
-
"src/utils/legacyIcon.tsx"() {
|
|
402
|
-
isFAIconValue = (value) => typeof value === "string" || Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && typeof value[1] === "string";
|
|
403
|
-
registeredRenderer = null;
|
|
404
|
-
warnedOnce = false;
|
|
405
|
-
renderLegacyIcon = (value) => {
|
|
406
|
-
if (!isFAIconValue(value)) return value;
|
|
407
|
-
if (registeredRenderer) return registeredRenderer(value);
|
|
408
|
-
if (!warnedOnce) {
|
|
409
|
-
warnedOnce = true;
|
|
410
|
-
console.warn(
|
|
411
|
-
"[@keboola/design] renderLegacyIcon received a legacy FontAwesome icon value but no renderer is registered. Call setLegacyIconRenderer at app boot. Returning null.",
|
|
412
|
-
value
|
|
413
|
-
);
|
|
414
|
-
}
|
|
415
|
-
return null;
|
|
416
|
-
};
|
|
417
|
-
}
|
|
418
|
-
});
|
|
419
447
|
var init_useSHA256 = __esm({
|
|
420
448
|
"src/utils/useSHA256.ts"() {
|
|
421
449
|
}
|
|
@@ -455,7 +483,7 @@ var init_Skeleton = __esm({
|
|
|
455
483
|
"tw-relative",
|
|
456
484
|
"tw-overflow-hidden",
|
|
457
485
|
"tw-pointer-events-none",
|
|
458
|
-
"tw-bg-
|
|
486
|
+
"tw-bg-muted",
|
|
459
487
|
// before
|
|
460
488
|
'before:tw-content-[""]',
|
|
461
489
|
"before:tw-opacity-100",
|
|
@@ -710,6 +738,8 @@ var init_styles = __esm({
|
|
|
710
738
|
"tw-bg-clip-padding",
|
|
711
739
|
// anchor support
|
|
712
740
|
"!tw-no-underline",
|
|
741
|
+
"aria-disabled:tw-cursor-not-allowed",
|
|
742
|
+
"aria-disabled:tw-opacity-50",
|
|
713
743
|
// icon
|
|
714
744
|
"tw-shrink-0",
|
|
715
745
|
"[&_svg]:tw-pointer-events-none",
|
|
@@ -804,6 +834,7 @@ var init_Button = __esm({
|
|
|
804
834
|
"src/components/Button/Button.tsx"() {
|
|
805
835
|
init_icons();
|
|
806
836
|
init_utils();
|
|
837
|
+
init_useIsLegacyBrand();
|
|
807
838
|
init_styles();
|
|
808
839
|
Button = ({
|
|
809
840
|
ref,
|
|
@@ -820,14 +851,11 @@ var init_Button = __esm({
|
|
|
820
851
|
block = false,
|
|
821
852
|
...buttonProps
|
|
822
853
|
}) => {
|
|
854
|
+
const isLegacy = useIsLegacyBrand();
|
|
855
|
+
const renderArgo = !isLegacy || argo;
|
|
823
856
|
const Comp = asChild ? Root$2 : "button";
|
|
824
857
|
const isIconOnly = String(size).startsWith("icon");
|
|
825
|
-
const classNames =
|
|
826
|
-
size,
|
|
827
|
-
variant,
|
|
828
|
-
block,
|
|
829
|
-
className
|
|
830
|
-
});
|
|
858
|
+
const classNames = renderArgo ? argoVariants({ variant, size, block, className }) : variants({ size, variant, block, className });
|
|
831
859
|
const handleClick = (event) => {
|
|
832
860
|
const isAnchor = event.currentTarget.tagName === "A";
|
|
833
861
|
if (isAnchor && disabled) {
|
|
@@ -882,11 +910,7 @@ var init_ButtonInline = __esm({
|
|
|
882
910
|
},
|
|
883
911
|
variants: {
|
|
884
912
|
color: {
|
|
885
|
-
link: [
|
|
886
|
-
"tw-text-secondary-500",
|
|
887
|
-
"hover:tw-text-secondary-600",
|
|
888
|
-
"[&_svg]:tw-text-secondary-500"
|
|
889
|
-
],
|
|
913
|
+
link: ["tw-text-primary", "hover:tw-text-primary/90", "[&_svg]:tw-text-primary"],
|
|
890
914
|
dark: ["tw-text-neutral-800 [&_svg]:tw-text-neutral-400"],
|
|
891
915
|
danger: ["tw-text-error-500 [&_svg]:tw-text-error-500"],
|
|
892
916
|
muted: ["tw-text-muted-foreground [&_svg]:tw-text-muted-foreground"],
|
|
@@ -1040,6 +1064,10 @@ var init_ZoomableSvg = __esm({
|
|
|
1040
1064
|
MAX_SCALE = 3;
|
|
1041
1065
|
ZOOM_STEP = 0.1;
|
|
1042
1066
|
ZoomableSvg = ({ html, copyText, className }) => {
|
|
1067
|
+
const safeHtml = useMemo(
|
|
1068
|
+
() => DOMPurify.sanitize(html, { USE_PROFILES: { svg: true, svgFilters: true } }),
|
|
1069
|
+
[html]
|
|
1070
|
+
);
|
|
1043
1071
|
const containerRef = useRef(null);
|
|
1044
1072
|
const [scale, setScale] = useState(1);
|
|
1045
1073
|
const [translate, setTranslate] = useState({ x: 0, y: 0 });
|
|
@@ -1135,7 +1163,7 @@ var init_ZoomableSvg = __esm({
|
|
|
1135
1163
|
isFullscreen && "tw-h-full [&>svg]:tw-h-full"
|
|
1136
1164
|
),
|
|
1137
1165
|
style: { transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})` },
|
|
1138
|
-
dangerouslySetInnerHTML: { __html:
|
|
1166
|
+
dangerouslySetInnerHTML: { __html: safeHtml }
|
|
1139
1167
|
}
|
|
1140
1168
|
)
|
|
1141
1169
|
}
|
|
@@ -1188,7 +1216,7 @@ var init_ZoomableSvg = __esm({
|
|
|
1188
1216
|
"div",
|
|
1189
1217
|
{
|
|
1190
1218
|
role: "presentation",
|
|
1191
|
-
className: "tw-fixed tw-inset-0 tw-z-[1060] tw-bg-
|
|
1219
|
+
className: "tw-fixed tw-inset-0 tw-z-[1060] tw-bg-muted tw-p-4",
|
|
1192
1220
|
onClick: stopPropagation,
|
|
1193
1221
|
children: diagramContent
|
|
1194
1222
|
}
|
|
@@ -1198,7 +1226,7 @@ var init_ZoomableSvg = __esm({
|
|
|
1198
1226
|
"div",
|
|
1199
1227
|
{
|
|
1200
1228
|
className: cn(
|
|
1201
|
-
"tw-overflow-hidden tw-rounded-md tw-border tw-border-
|
|
1229
|
+
"tw-overflow-hidden tw-rounded-md tw-border tw-border-border tw-bg-muted",
|
|
1202
1230
|
className
|
|
1203
1231
|
),
|
|
1204
1232
|
children: diagramContent
|
|
@@ -1220,12 +1248,17 @@ var MermaidDiagram_exports = {};
|
|
|
1220
1248
|
__export(MermaidDiagram_exports, {
|
|
1221
1249
|
MermaidDiagram: () => MermaidDiagram
|
|
1222
1250
|
});
|
|
1223
|
-
var mermaidPromise, getMermaid, stripFontImports, tryFastRender, makeResponsive, RENDER_DEBOUNCE_MS, svgCache, MermaidDiagram;
|
|
1251
|
+
var PRIMARY_FALLBACK_CHANNELS, resolvePrimary, mermaidPromise, getMermaid, stripFontImports, tryFastRender, makeResponsive, RENDER_DEBOUNCE_MS, svgCache, resolveSyncSvg, MermaidDiagram;
|
|
1224
1252
|
var init_MermaidDiagram = __esm({
|
|
1225
1253
|
"src/blocks/MermaidDiagram/MermaidDiagram.tsx"() {
|
|
1226
1254
|
init_Skeleton();
|
|
1227
1255
|
init_ZoomableSvg2();
|
|
1228
1256
|
init_utils();
|
|
1257
|
+
PRIMARY_FALLBACK_CHANNELS = "31 143 255";
|
|
1258
|
+
resolvePrimary = () => {
|
|
1259
|
+
const channels = typeof document === "undefined" ? PRIMARY_FALLBACK_CHANNELS : getComputedStyle(document.documentElement).getPropertyValue("--color-primary").trim() || PRIMARY_FALLBACK_CHANNELS;
|
|
1260
|
+
return `rgb(${channels})`;
|
|
1261
|
+
};
|
|
1229
1262
|
mermaidPromise = null;
|
|
1230
1263
|
getMermaid = () => {
|
|
1231
1264
|
if (!mermaidPromise) {
|
|
@@ -1274,7 +1307,7 @@ var init_MermaidDiagram = __esm({
|
|
|
1274
1307
|
taskTextColor: colors.neutral[800],
|
|
1275
1308
|
taskTextDarkColor: colors.neutral[800],
|
|
1276
1309
|
taskTextLightColor: colors.neutral[800],
|
|
1277
|
-
activeTaskBorderColor:
|
|
1310
|
+
activeTaskBorderColor: resolvePrimary(),
|
|
1278
1311
|
activeTaskBkgColor: colors.secondary[200],
|
|
1279
1312
|
doneTaskBorderColor: colors.primary[600],
|
|
1280
1313
|
doneTaskBkgColor: colors.primary[100],
|
|
@@ -1326,46 +1359,28 @@ var init_MermaidDiagram = __esm({
|
|
|
1326
1359
|
};
|
|
1327
1360
|
RENDER_DEBOUNCE_MS = 300;
|
|
1328
1361
|
svgCache = /* @__PURE__ */ new Map();
|
|
1362
|
+
resolveSyncSvg = (code) => {
|
|
1363
|
+
const cached = svgCache.get(code);
|
|
1364
|
+
if (cached) return cached;
|
|
1365
|
+
const fast = tryFastRender(code);
|
|
1366
|
+
if (fast) svgCache.set(code, fast);
|
|
1367
|
+
return fast;
|
|
1368
|
+
};
|
|
1329
1369
|
MermaidDiagram = ({ code }) => {
|
|
1330
1370
|
const id = useId();
|
|
1331
|
-
const [svg, setSvg] = useState(() =>
|
|
1332
|
-
const cached = svgCache.get(code);
|
|
1333
|
-
if (cached) return cached;
|
|
1334
|
-
const fast = tryFastRender(code);
|
|
1335
|
-
if (fast) {
|
|
1336
|
-
svgCache.set(code, fast);
|
|
1337
|
-
return fast;
|
|
1338
|
-
}
|
|
1339
|
-
return null;
|
|
1340
|
-
});
|
|
1371
|
+
const [svg, setSvg] = useState(() => resolveSyncSvg(code));
|
|
1341
1372
|
const [renderFailed, setRenderFailed] = useState(false);
|
|
1342
1373
|
const debounceRef = useRef(null);
|
|
1343
1374
|
const renderIdRef = useRef(0);
|
|
1344
1375
|
const [prevCode, setPrevCode] = useState(code);
|
|
1345
1376
|
if (code !== prevCode) {
|
|
1346
1377
|
setPrevCode(code);
|
|
1347
|
-
|
|
1348
|
-
const fast = cached ?? tryFastRender(code);
|
|
1349
|
-
if (fast && !cached) svgCache.set(code, fast);
|
|
1350
|
-
setSvg(fast);
|
|
1378
|
+
setSvg(resolveSyncSvg(code));
|
|
1351
1379
|
setRenderFailed(false);
|
|
1352
1380
|
}
|
|
1353
1381
|
useEffect(() => {
|
|
1354
|
-
if (svgCache.has(code))
|
|
1355
|
-
setSvg(svgCache.get(code));
|
|
1356
|
-
setRenderFailed(false);
|
|
1357
|
-
return;
|
|
1358
|
-
}
|
|
1359
|
-
const fastResult = tryFastRender(code);
|
|
1360
|
-
if (fastResult) {
|
|
1361
|
-
svgCache.set(code, fastResult);
|
|
1362
|
-
setSvg(fastResult);
|
|
1363
|
-
setRenderFailed(false);
|
|
1364
|
-
return;
|
|
1365
|
-
}
|
|
1366
|
-
setSvg(null);
|
|
1382
|
+
if (svgCache.has(code)) return;
|
|
1367
1383
|
const currentRenderId = ++renderIdRef.current;
|
|
1368
|
-
setRenderFailed(false);
|
|
1369
1384
|
if (debounceRef.current) {
|
|
1370
1385
|
clearTimeout(debounceRef.current);
|
|
1371
1386
|
}
|
|
@@ -1615,7 +1630,7 @@ init_utils();
|
|
|
1615
1630
|
// src/components/Toast/ToastRoot.tsx
|
|
1616
1631
|
init_icons();
|
|
1617
1632
|
init_utils();
|
|
1618
|
-
|
|
1633
|
+
init_useIsLegacyBrand();
|
|
1619
1634
|
|
|
1620
1635
|
// src/components/Toast/ToastAction.tsx
|
|
1621
1636
|
init_utils();
|
|
@@ -1700,6 +1715,7 @@ var ToastDismiss = ({
|
|
|
1700
1715
|
"[&_svg]:tw-m-1",
|
|
1701
1716
|
"tw-text-white",
|
|
1702
1717
|
"group-data-[variant=default]/toast:[&_svg]:tw-text-popover-foreground",
|
|
1718
|
+
"group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:tw-text-foreground",
|
|
1703
1719
|
className
|
|
1704
1720
|
),
|
|
1705
1721
|
type: "button",
|
|
@@ -1727,6 +1743,7 @@ var ToastDuration = ({
|
|
|
1727
1743
|
className: cn(
|
|
1728
1744
|
"tw-bg-white/30",
|
|
1729
1745
|
"group-data-[variant=default]/toast:tw-bg-popover-foreground/20",
|
|
1746
|
+
"group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-bg-foreground/20",
|
|
1730
1747
|
"tw-rounded-bl-lg",
|
|
1731
1748
|
"tw-mx-px",
|
|
1732
1749
|
// positioning
|
|
@@ -1767,6 +1784,7 @@ var ToastTitle = ({
|
|
|
1767
1784
|
"tw-self-center",
|
|
1768
1785
|
"tw-text-white",
|
|
1769
1786
|
"group-data-[variant=default]/toast:tw-text-popover-foreground",
|
|
1787
|
+
"group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground",
|
|
1770
1788
|
"tw-break-words",
|
|
1771
1789
|
"tw-font-medium",
|
|
1772
1790
|
className
|
|
@@ -1826,11 +1844,14 @@ var ToastRoot = ({
|
|
|
1826
1844
|
duration = Infinity,
|
|
1827
1845
|
variant = "info",
|
|
1828
1846
|
loading = false,
|
|
1829
|
-
icon: iconProp
|
|
1847
|
+
icon: iconProp,
|
|
1848
|
+
argo
|
|
1830
1849
|
}) => {
|
|
1850
|
+
const isLegacy = useIsLegacyBrand();
|
|
1851
|
+
const renderArgo = !isLegacy || argo;
|
|
1831
1852
|
const icon = (() => {
|
|
1832
1853
|
if (loading) return /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" });
|
|
1833
|
-
if (iconProp) return
|
|
1854
|
+
if (iconProp) return iconProp;
|
|
1834
1855
|
if (variant === "default" || variant === null) return null;
|
|
1835
1856
|
return DEFAULT_VARIANT_ICON[variant];
|
|
1836
1857
|
})();
|
|
@@ -1838,35 +1859,44 @@ var ToastRoot = ({
|
|
|
1838
1859
|
toast$1.dismiss(id);
|
|
1839
1860
|
action?.onClick(event);
|
|
1840
1861
|
};
|
|
1841
|
-
return /* @__PURE__ */ jsxs(
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1862
|
+
return /* @__PURE__ */ jsxs(
|
|
1863
|
+
"div",
|
|
1864
|
+
{
|
|
1865
|
+
"data-variant": variant,
|
|
1866
|
+
"data-argo": renderArgo,
|
|
1867
|
+
className: cn(
|
|
1868
|
+
variants2({ variant }),
|
|
1869
|
+
"data-[variant=default]:data-[argo=true]:tw-bg-background"
|
|
1870
|
+
),
|
|
1871
|
+
children: [
|
|
1872
|
+
icon && /* @__PURE__ */ jsx(
|
|
1873
|
+
"span",
|
|
1874
|
+
{
|
|
1875
|
+
"data-slot": "toast-icon",
|
|
1876
|
+
className: cn(
|
|
1877
|
+
"tw-inline-flex",
|
|
1878
|
+
"tw-items-center",
|
|
1879
|
+
"tw-justify-center",
|
|
1880
|
+
"tw-self-center",
|
|
1881
|
+
"tw-aspect-square",
|
|
1882
|
+
"tw-size-5",
|
|
1883
|
+
"tw-shrink-0",
|
|
1884
|
+
'[&_svg:not([class*="tw-size-"])]:tw-size-5',
|
|
1885
|
+
"tw-text-white",
|
|
1886
|
+
"group-data-[variant=default]/toast:tw-text-popover-foreground",
|
|
1887
|
+
"group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground"
|
|
1888
|
+
),
|
|
1889
|
+
children: icon
|
|
1890
|
+
}
|
|
1860
1891
|
),
|
|
1861
|
-
children:
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
] });
|
|
1892
|
+
/* @__PURE__ */ jsx(ToastTitle, { children: title }),
|
|
1893
|
+
description && /* @__PURE__ */ jsx(ToastDescription, { children: description }),
|
|
1894
|
+
action && /* @__PURE__ */ jsx(ToastAction, { style: action?.actionButtonStyle, onClick: handleActionClick, children: action.label }),
|
|
1895
|
+
/* @__PURE__ */ jsx(ToastDismiss, { onClick: () => toast$1.dismiss(id) }),
|
|
1896
|
+
duration !== Infinity && /* @__PURE__ */ jsx(ToastDuration, { duration })
|
|
1897
|
+
]
|
|
1898
|
+
}
|
|
1899
|
+
);
|
|
1870
1900
|
};
|
|
1871
1901
|
var toast = ({
|
|
1872
1902
|
onAutoClose,
|
|
@@ -2257,6 +2287,9 @@ init_icons();
|
|
|
2257
2287
|
init_icons();
|
|
2258
2288
|
init_utils();
|
|
2259
2289
|
|
|
2290
|
+
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2291
|
+
init_useIsLegacyBrand();
|
|
2292
|
+
|
|
2260
2293
|
// src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx
|
|
2261
2294
|
init_icons();
|
|
2262
2295
|
init_utils();
|
|
@@ -2405,17 +2438,16 @@ var itemVariants = cn(
|
|
|
2405
2438
|
"group-data-[variant=default]/dropdown-menu-content:hover:tw-bg-neutral-100",
|
|
2406
2439
|
"group-data-[variant=default]/dropdown-menu-content:hover:tw-text-neutral-900",
|
|
2407
2440
|
"group-data-[variant=argo]/dropdown-menu-content:tw-rounded-md",
|
|
2408
|
-
"group-data-[variant=argo]/dropdown-menu-content:tw-text-
|
|
2409
|
-
"group-data-[variant=argo]/dropdown-menu-content:focus:tw-text-
|
|
2410
|
-
"group-data-[variant=argo]/dropdown-menu-content:focus:tw-bg-
|
|
2411
|
-
"group-data-[variant=argo]/dropdown-menu-content:hover:tw-text-
|
|
2412
|
-
"group-data-[variant=argo]/dropdown-menu-content:hover:tw-bg-
|
|
2441
|
+
"group-data-[variant=argo]/dropdown-menu-content:tw-text-popover-foreground",
|
|
2442
|
+
"group-data-[variant=argo]/dropdown-menu-content:focus:tw-text-accent-foreground",
|
|
2443
|
+
"group-data-[variant=argo]/dropdown-menu-content:focus:tw-bg-accent",
|
|
2444
|
+
"group-data-[variant=argo]/dropdown-menu-content:hover:tw-text-accent-foreground",
|
|
2445
|
+
"group-data-[variant=argo]/dropdown-menu-content:hover:tw-bg-accent"
|
|
2413
2446
|
);
|
|
2414
2447
|
var contentVariants = cn(
|
|
2415
2448
|
"tailwindcss-preflight",
|
|
2416
2449
|
"tw-group/dropdown-menu-content",
|
|
2417
2450
|
"tw-z-[1040]",
|
|
2418
|
-
"tw-bg-white",
|
|
2419
2451
|
// positioning
|
|
2420
2452
|
"tw-flex",
|
|
2421
2453
|
"tw-flex-col",
|
|
@@ -2426,8 +2458,16 @@ var contentVariants = cn(
|
|
|
2426
2458
|
// border
|
|
2427
2459
|
"tw-border",
|
|
2428
2460
|
"tw-shadow-md",
|
|
2461
|
+
// Legacy surface — fixed white panel.
|
|
2429
2462
|
"data-[variant=default]:tw-rounded-md",
|
|
2463
|
+
"data-[variant=default]:tw-bg-white",
|
|
2464
|
+
"data-[variant=default]:tw-border-neutral-100",
|
|
2465
|
+
"data-[variant=default]:tw-text-neutral-800",
|
|
2466
|
+
// Argo surface — semantic popover tokens (brand + dark aware).
|
|
2430
2467
|
"data-[variant=argo]:tw-rounded-2xl",
|
|
2468
|
+
"data-[variant=argo]:tw-bg-popover",
|
|
2469
|
+
"data-[variant=argo]:tw-text-popover-foreground",
|
|
2470
|
+
"data-[variant=argo]:tw-border-border",
|
|
2431
2471
|
// animations
|
|
2432
2472
|
"data-[state=open]:tw-animate-in",
|
|
2433
2473
|
"data-[state=open]:tw-fade-in-0",
|
|
@@ -2487,7 +2527,6 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
|
|
|
2487
2527
|
orientation,
|
|
2488
2528
|
className: cn(
|
|
2489
2529
|
"tw-flex tw-touch-none tw-select-none tw-transition-color",
|
|
2490
|
-
'[data-state="hidden"]:tw-bg-pink-500',
|
|
2491
2530
|
{
|
|
2492
2531
|
"tw-h-full tw-w-2.5 tw-p-px": orientation === "vertical",
|
|
2493
2532
|
"tw-h-2.5 tw-flex-col tw-p-px": orientation === "horizontal"
|
|
@@ -2502,8 +2541,8 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
|
|
|
2502
2541
|
"tw-relative",
|
|
2503
2542
|
"tw-flex-1",
|
|
2504
2543
|
"tw-rounded-full",
|
|
2505
|
-
"tw-bg-
|
|
2506
|
-
"hover:tw-bg-
|
|
2544
|
+
"tw-bg-border",
|
|
2545
|
+
"hover:tw-bg-muted-foreground"
|
|
2507
2546
|
)
|
|
2508
2547
|
}
|
|
2509
2548
|
)
|
|
@@ -2587,7 +2626,6 @@ var DropdownMenuContent = ({
|
|
|
2587
2626
|
// src/components/DropdownMenu/DropdownMenuItem.tsx
|
|
2588
2627
|
init_icons();
|
|
2589
2628
|
init_utils();
|
|
2590
|
-
init_legacyIcon();
|
|
2591
2629
|
var DropdownMenuItem = ({
|
|
2592
2630
|
ref,
|
|
2593
2631
|
className,
|
|
@@ -2603,7 +2641,7 @@ var DropdownMenuItem = ({
|
|
|
2603
2641
|
...props
|
|
2604
2642
|
}) => {
|
|
2605
2643
|
const Comp = asChild ? Root$2 : "div";
|
|
2606
|
-
const adornment = isLoading ? /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) :
|
|
2644
|
+
const adornment = isLoading ? /* @__PURE__ */ jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) : icon;
|
|
2607
2645
|
const handleOnSelect = (event) => {
|
|
2608
2646
|
if (asModalTrigger) event.preventDefault();
|
|
2609
2647
|
onSelect?.(event);
|
|
@@ -2705,7 +2743,6 @@ var DropdownMenuRadioGroup = ({
|
|
|
2705
2743
|
// src/components/DropdownMenu/DropdownMenuRadioGroup/DropdownMenuRadioItem.tsx
|
|
2706
2744
|
init_icons();
|
|
2707
2745
|
init_utils();
|
|
2708
|
-
init_legacyIcon();
|
|
2709
2746
|
var DropdownMenuRadioItem = ({
|
|
2710
2747
|
className,
|
|
2711
2748
|
children,
|
|
@@ -2740,7 +2777,7 @@ var DropdownMenuRadioItem = ({
|
|
|
2740
2777
|
...props,
|
|
2741
2778
|
children: [
|
|
2742
2779
|
isAtStart && indicatorEle,
|
|
2743
|
-
icon && /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children:
|
|
2780
|
+
icon && /* @__PURE__ */ jsx(ItemIcon, { className: iconClassName, children: icon }),
|
|
2744
2781
|
/* @__PURE__ */ jsx("span", { className: "tw-flex tw-min-w-0 tw-flex-1 tw-items-center tw-gap-2", children }),
|
|
2745
2782
|
!isAtStart && indicatorEle
|
|
2746
2783
|
]
|
|
@@ -2818,10 +2855,12 @@ var DropdownMenuTrigger = ({
|
|
|
2818
2855
|
var DropdownMenu = ({
|
|
2819
2856
|
// change a default value to false, for modal property, as it is not used in most cases
|
|
2820
2857
|
modal = false,
|
|
2821
|
-
variant
|
|
2858
|
+
variant,
|
|
2822
2859
|
...props
|
|
2823
2860
|
}) => {
|
|
2824
|
-
const
|
|
2861
|
+
const isLegacy = useIsLegacyBrand();
|
|
2862
|
+
const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : "default";
|
|
2863
|
+
const contextValue = useMemo(() => ({ variant: effectiveVariant }), [effectiveVariant]);
|
|
2825
2864
|
return /* @__PURE__ */ jsx(DropdownMenuContext, { value: contextValue, children: /* @__PURE__ */ jsx(Root$1, { ...props, modal }) });
|
|
2826
2865
|
};
|
|
2827
2866
|
DropdownMenu.Trigger = DropdownMenuTrigger;
|
|
@@ -3070,6 +3109,7 @@ var useFormGroupContext = () => use(FormGroupContext);
|
|
|
3070
3109
|
|
|
3071
3110
|
// src/components/InputGroup/InputGroup.tsx
|
|
3072
3111
|
init_utils();
|
|
3112
|
+
init_useIsLegacyBrand();
|
|
3073
3113
|
|
|
3074
3114
|
// src/components/InputGroup/InputGroupAddon.tsx
|
|
3075
3115
|
init_utils();
|
|
@@ -3368,7 +3408,8 @@ var inputGroupVariants = cva(
|
|
|
3368
3408
|
"has-[:is(input,textarea):disabled]:tw-opacity-40"
|
|
3369
3409
|
],
|
|
3370
3410
|
argo: [
|
|
3371
|
-
|
|
3411
|
+
// muted filled input surface — gray, distinct from white containers; not the app-background token
|
|
3412
|
+
"tw-bg-muted",
|
|
3372
3413
|
"tw-border-input",
|
|
3373
3414
|
"tw-rounded-lg",
|
|
3374
3415
|
"tw-text-foreground",
|
|
@@ -3422,15 +3463,28 @@ var InputGroupRoot = ({
|
|
|
3422
3463
|
focusVariant,
|
|
3423
3464
|
className,
|
|
3424
3465
|
...props
|
|
3425
|
-
}) =>
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3466
|
+
}) => {
|
|
3467
|
+
const isLegacy = useIsLegacyBrand();
|
|
3468
|
+
const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : variant;
|
|
3469
|
+
const effectiveSizing = effectiveVariant === "argo" ? "medium" : sizing;
|
|
3470
|
+
return /* @__PURE__ */ jsx(
|
|
3471
|
+
"div",
|
|
3472
|
+
{
|
|
3473
|
+
...props,
|
|
3474
|
+
ref,
|
|
3475
|
+
className: cn(
|
|
3476
|
+
inputGroupVariants({
|
|
3477
|
+
state,
|
|
3478
|
+
variant: effectiveVariant,
|
|
3479
|
+
sizing: effectiveSizing,
|
|
3480
|
+
focusVariant,
|
|
3481
|
+
className
|
|
3482
|
+
})
|
|
3483
|
+
),
|
|
3484
|
+
children
|
|
3485
|
+
}
|
|
3486
|
+
);
|
|
3487
|
+
};
|
|
3434
3488
|
var InputGroup = InputGroupRoot;
|
|
3435
3489
|
InputGroup.Input = InputGroupInput;
|
|
3436
3490
|
InputGroup.Addon = InputGroupAddon;
|
|
@@ -3655,8 +3709,8 @@ var helpVariants = cva(["tw-m-0", "tw-text-xs"], {
|
|
|
3655
3709
|
},
|
|
3656
3710
|
variants: {
|
|
3657
3711
|
state: {
|
|
3658
|
-
default: ["tw-text-
|
|
3659
|
-
error: ["tw-text-
|
|
3712
|
+
default: ["tw-text-muted-foreground"],
|
|
3713
|
+
error: ["tw-text-destructive"],
|
|
3660
3714
|
warning: ["tw-text-warning-500"]
|
|
3661
3715
|
}
|
|
3662
3716
|
}
|
|
@@ -3735,7 +3789,7 @@ var Textarea = ({
|
|
|
3735
3789
|
containerClassName,
|
|
3736
3790
|
// group props
|
|
3737
3791
|
state = "default",
|
|
3738
|
-
variant
|
|
3792
|
+
variant,
|
|
3739
3793
|
sizing,
|
|
3740
3794
|
focusVariant,
|
|
3741
3795
|
...rest
|
|
@@ -3867,7 +3921,7 @@ var Input = ({
|
|
|
3867
3921
|
"div",
|
|
3868
3922
|
{
|
|
3869
3923
|
className: cn({
|
|
3870
|
-
"tw-whitespace-nowrap tw-bg-
|
|
3924
|
+
"tw-whitespace-nowrap tw-bg-muted tw-px-4 -tw-mr-4 tw-py-2.5": rightSuffixVariant === "addon"
|
|
3871
3925
|
}),
|
|
3872
3926
|
children: rightSuffix
|
|
3873
3927
|
}
|
|
@@ -3886,6 +3940,7 @@ var TextInput = ({
|
|
|
3886
3940
|
value,
|
|
3887
3941
|
defaultValue,
|
|
3888
3942
|
type = "text",
|
|
3943
|
+
variant,
|
|
3889
3944
|
onValueChange,
|
|
3890
3945
|
onChange,
|
|
3891
3946
|
onValueBlur,
|
|
@@ -3908,6 +3963,7 @@ var TextInput = ({
|
|
|
3908
3963
|
onChange: handleChange,
|
|
3909
3964
|
onBlur: handleBlur,
|
|
3910
3965
|
type,
|
|
3966
|
+
variant,
|
|
3911
3967
|
value: sanitizeTextInputValue(value),
|
|
3912
3968
|
defaultValue: sanitizeTextInputValue(defaultValue)
|
|
3913
3969
|
}
|
|
@@ -3931,7 +3987,7 @@ FormGroup.Textarea = FormGroupTextarea;
|
|
|
3931
3987
|
|
|
3932
3988
|
// src/components/Label/Label.tsx
|
|
3933
3989
|
init_utils();
|
|
3934
|
-
var Optional = ({ className }) => /* @__PURE__ */ jsx("span", { className: cn("tw-text-
|
|
3990
|
+
var Optional = ({ className }) => /* @__PURE__ */ jsx("span", { className: cn("tw-text-muted-foreground", className), children: "(optional)" });
|
|
3935
3991
|
var Label2 = ({ className, children, id, htmlFor, ...rest }) => {
|
|
3936
3992
|
return /* @__PURE__ */ jsx(
|
|
3937
3993
|
RLabel.Root,
|
|
@@ -3940,7 +3996,7 @@ var Label2 = ({ className, children, id, htmlFor, ...rest }) => {
|
|
|
3940
3996
|
id: id?.toString(),
|
|
3941
3997
|
htmlFor: htmlFor?.toString(),
|
|
3942
3998
|
className: cn(
|
|
3943
|
-
"tw-m-0 tw-text-
|
|
3999
|
+
"tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
|
|
3944
4000
|
className
|
|
3945
4001
|
),
|
|
3946
4002
|
children
|
|
@@ -4331,25 +4387,25 @@ var ToolbarPlugin = () => {
|
|
|
4331
4387
|
|
|
4332
4388
|
// src/components/MarkdownEditor/theme.ts
|
|
4333
4389
|
var editorTheme = {
|
|
4334
|
-
link: "tw-cursor-pointer !tw-text-
|
|
4390
|
+
link: "tw-cursor-pointer !tw-text-primary tw-underline",
|
|
4335
4391
|
text: {
|
|
4336
4392
|
bold: "tw-font-bold",
|
|
4337
4393
|
italic: "tw-italic",
|
|
4338
4394
|
strikethrough: "tw-line-through",
|
|
4339
4395
|
underline: "tw-underline",
|
|
4340
|
-
code: "tw-rounded tw-bg-
|
|
4396
|
+
code: "tw-rounded tw-bg-muted tw-px-1 tw-py-0.5 tw-font-mono tw-text-[0.85em]"
|
|
4341
4397
|
},
|
|
4342
4398
|
list: {
|
|
4343
4399
|
ol: "!tw-list-decimal",
|
|
4344
4400
|
ul: "!tw-list-disc",
|
|
4345
4401
|
checklist: "!tw-list-none !tw-pl-0",
|
|
4346
4402
|
listitemChecked: [
|
|
4347
|
-
"tw-relative !tw-pl-6 tw-list-none tw-outline-none tw-line-through tw-text-
|
|
4403
|
+
"tw-relative !tw-pl-6 tw-list-none tw-outline-none tw-line-through tw-text-muted-foreground",
|
|
4348
4404
|
'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
|
|
4349
4405
|
"before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid",
|
|
4350
|
-
"before:tw-bg-
|
|
4406
|
+
"before:tw-bg-primary before:tw-border-primary before:tw-cursor-pointer",
|
|
4351
4407
|
'after:tw-content-[""] after:tw-absolute after:tw-left-[5.5px] after:tw-top-[5.5px]',
|
|
4352
|
-
"after:tw-w-1 after:tw-h-2 after:tw-border-
|
|
4408
|
+
"after:tw-w-1 after:tw-h-2 after:tw-border-primary-foreground after:tw-border-solid",
|
|
4353
4409
|
"after:tw-border-r-[1.5px] after:tw-border-b-[1.5px] after:tw-border-t-0 after:tw-border-l-0",
|
|
4354
4410
|
"after:tw-rotate-45"
|
|
4355
4411
|
].join(" "),
|
|
@@ -4357,7 +4413,7 @@ var editorTheme = {
|
|
|
4357
4413
|
"tw-relative !tw-pl-6 tw-list-none tw-outline-none",
|
|
4358
4414
|
'before:tw-content-[""] before:tw-absolute before:tw-left-0 before:tw-top-[3px]',
|
|
4359
4415
|
"before:tw-size-4 before:tw-rounded before:tw-border before:tw-border-solid",
|
|
4360
|
-
"before:tw-border-
|
|
4416
|
+
"before:tw-border-input before:tw-bg-background before:tw-cursor-pointer"
|
|
4361
4417
|
].join(" ")
|
|
4362
4418
|
}
|
|
4363
4419
|
};
|
|
@@ -4445,7 +4501,7 @@ var MarkdownEditor = ({
|
|
|
4445
4501
|
// but a matching negative margin shifts the wrapper outward so the text itself stays
|
|
4446
4502
|
// aligned with the parent's content edge (i.e. with where static text would render).
|
|
4447
4503
|
compact ? "tw-px-1.5 tw-py-0.5 -tw-mx-1.5 -tw-my-0.5" : "tw-p-2",
|
|
4448
|
-
editable && "tw-cursor-text hover:tw-bg-
|
|
4504
|
+
editable && "tw-cursor-text hover:tw-bg-muted focus-within:tw-ring-2 focus-within:tw-ring-primary/40"
|
|
4449
4505
|
),
|
|
4450
4506
|
children: /* @__PURE__ */ jsx(
|
|
4451
4507
|
RichTextPlugin,
|
|
@@ -4460,7 +4516,7 @@ var MarkdownEditor = ({
|
|
|
4460
4516
|
"div",
|
|
4461
4517
|
{
|
|
4462
4518
|
className: cn(
|
|
4463
|
-
"tw-pointer-events-none tw-absolute tw-select-none tw-text-
|
|
4519
|
+
"tw-pointer-events-none tw-absolute tw-select-none tw-text-muted-foreground",
|
|
4464
4520
|
compact ? "tw-left-1.5 tw-top-0.5" : "tw-left-2 tw-top-[calc(0.5rem+0.35em)]"
|
|
4465
4521
|
),
|
|
4466
4522
|
children: placeholder
|