@inf-monkeys-tech/monkeys-design 0.4.34 → 0.4.35

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.
Files changed (63) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +226 -226
  3. package/dist/components/base/index.d.mts +2 -2
  4. package/dist/components/base/index.d.ts +2 -2
  5. package/dist/components/base/index.js +2 -445
  6. package/dist/components/base/index.js.map +1 -1
  7. package/dist/components/base/index.mjs +3 -445
  8. package/dist/components/base/index.mjs.map +1 -1
  9. package/dist/components/data-explorer/index.js.map +1 -1
  10. package/dist/components/data-explorer/index.mjs.map +1 -1
  11. package/dist/components/layout/index.js.map +1 -1
  12. package/dist/components/layout/index.mjs.map +1 -1
  13. package/dist/components/login/index.js.map +1 -1
  14. package/dist/components/login/index.mjs.map +1 -1
  15. package/dist/components/toast/index.d.mts +75 -0
  16. package/dist/components/toast/index.d.ts +75 -0
  17. package/dist/components/toast/index.js +283 -0
  18. package/dist/components/toast/index.js.map +1 -0
  19. package/dist/components/toast/index.mjs +273 -0
  20. package/dist/components/toast/index.mjs.map +1 -0
  21. package/dist/components/toolbar/index.js.map +1 -1
  22. package/dist/components/toolbar/index.mjs.map +1 -1
  23. package/dist/components/workbench/index.d.mts +1 -1
  24. package/dist/components/workbench/index.d.ts +1 -1
  25. package/dist/components/workbench/index.js +2 -444
  26. package/dist/components/workbench/index.js.map +1 -1
  27. package/dist/components/workbench/index.mjs +2 -444
  28. package/dist/components/workbench/index.mjs.map +1 -1
  29. package/dist/icons/oauth/index.js.map +1 -1
  30. package/dist/icons/oauth/index.mjs.map +1 -1
  31. package/dist/index.d.mts +4 -2
  32. package/dist/index.d.ts +4 -2
  33. package/dist/index.js +286 -455
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +278 -455
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/palette/index.js.map +1 -1
  38. package/dist/palette/index.mjs.map +1 -1
  39. package/dist/registry/index.js.map +1 -1
  40. package/dist/registry/index.mjs.map +1 -1
  41. package/dist/styles/artist-login.scss +374 -374
  42. package/dist/styles/global.scss +21 -21
  43. package/dist/styles/workflow-board.scss +440 -440
  44. package/dist/styles/workflow-nodes.css +340 -340
  45. package/dist/{theme-sIoU5-YC.d.ts → theme-CoG9vCPT.d.mts} +2 -4
  46. package/dist/{theme-Clm5dVb0.d.mts → theme-Cuy60thu.d.ts} +2 -4
  47. package/dist/theme-system/index.d.mts +1 -1
  48. package/dist/theme-system/index.d.ts +1 -1
  49. package/dist/theme-system/index.js +2 -444
  50. package/dist/theme-system/index.js.map +1 -1
  51. package/dist/theme-system/index.mjs +2 -444
  52. package/dist/theme-system/index.mjs.map +1 -1
  53. package/dist/themes/artist/index.js.map +1 -1
  54. package/dist/themes/artist/index.mjs.map +1 -1
  55. package/dist/themes/bsd/index.js.map +1 -1
  56. package/dist/themes/bsd/index.mjs.map +1 -1
  57. package/dist/themes/concept/index.js.map +1 -1
  58. package/dist/themes/concept/index.mjs.map +1 -1
  59. package/dist/themes/default/index.js.map +1 -1
  60. package/dist/themes/default/index.mjs.map +1 -1
  61. package/dist/{types-Bn6PEDsX.d.mts → types-CZALgtez.d.mts} +1 -43
  62. package/dist/{types-Bn6PEDsX.d.ts → types-CZALgtez.d.ts} +1 -43
  63. package/package.json +146 -139
@@ -2297,448 +2297,6 @@ var BaseInput = react.forwardRef(
2297
2297
  );
2298
2298
  }
2299
2299
  );
2300
- function normalizeValues(values) {
2301
- const nextValues = [];
2302
- const seen = /* @__PURE__ */ new Set();
2303
- values?.forEach((value) => {
2304
- if (seen.has(value)) return;
2305
- seen.add(value);
2306
- nextValues.push(value);
2307
- });
2308
- return nextValues;
2309
- }
2310
- function getNextEnabledIndex(options, currentIndex, direction) {
2311
- if (!options.length) return -1;
2312
- const startIndex = currentIndex >= 0 ? currentIndex : 0;
2313
- for (let offset = 1; offset <= options.length; offset += 1) {
2314
- const nextIndex = (startIndex + offset * direction + options.length) % options.length;
2315
- if (!options[nextIndex]?.disabled) {
2316
- return nextIndex;
2317
- }
2318
- }
2319
- return -1;
2320
- }
2321
- function getFirstEnabledIndex(options) {
2322
- return options.findIndex((option) => !option.disabled);
2323
- }
2324
- function getSafeTagCount(maxTagCount, total) {
2325
- if (maxTagCount === void 0) return total;
2326
- if (!Number.isFinite(maxTagCount)) return total;
2327
- return Math.max(0, Math.min(total, Math.floor(maxTagCount)));
2328
- }
2329
- function getDefaultRemoveLabel(option) {
2330
- return `Remove ${option.value}`;
2331
- }
2332
- react.forwardRef(
2333
- function BaseMultiSelect2({
2334
- options,
2335
- value,
2336
- defaultValue,
2337
- name,
2338
- placeholder = "Select options",
2339
- icon,
2340
- invalid = false,
2341
- disabled = false,
2342
- required = false,
2343
- openForPreview = false,
2344
- maxTagCount,
2345
- removeLabel = getDefaultRemoveLabel,
2346
- emptyLabel = "No options",
2347
- appearance,
2348
- className,
2349
- classNames,
2350
- style,
2351
- id,
2352
- "aria-invalid": nativeAriaInvalid,
2353
- "aria-label": nativeAriaLabel,
2354
- "aria-labelledby": nativeAriaLabelledBy,
2355
- onValueChange,
2356
- ...rootProps
2357
- }, ref) {
2358
- const theme = resolveBaseAppearance(appearance);
2359
- const generatedId = react.useId();
2360
- const multiSelectId = id ?? generatedId;
2361
- const controlId = `${multiSelectId}-control`;
2362
- const listboxId = `${multiSelectId}-listbox`;
2363
- const rootRef = react.useRef(null);
2364
- const optionList = options ?? [];
2365
- const forceOpen = openForPreview;
2366
- const [uncontrolledOpen, setUncontrolledOpen] = react.useState(false);
2367
- const open = forceOpen || uncontrolledOpen;
2368
- const [uncontrolledValue, setUncontrolledValue] = react.useState(
2369
- () => normalizeValues(defaultValue)
2370
- );
2371
- const [activeIndex, setActiveIndex] = react.useState(
2372
- () => getFirstEnabledIndex(optionList)
2373
- );
2374
- const isControlled = value !== void 0;
2375
- const selectedValues = react.useMemo(
2376
- () => normalizeValues(isControlled ? value : uncontrolledValue),
2377
- [isControlled, uncontrolledValue, value]
2378
- );
2379
- const selectedValueSet = react.useMemo(
2380
- () => new Set(selectedValues),
2381
- [selectedValues]
2382
- );
2383
- const optionByValue = react.useMemo(() => {
2384
- const map = /* @__PURE__ */ new Map();
2385
- optionList.forEach((option) => {
2386
- if (!map.has(option.value)) {
2387
- map.set(option.value, option);
2388
- }
2389
- });
2390
- return map;
2391
- }, [optionList]);
2392
- const selectedOptions = react.useMemo(
2393
- () => selectedValues.map((selectedValue) => optionByValue.get(selectedValue)).filter(
2394
- (option) => option !== void 0
2395
- ),
2396
- [optionByValue, selectedValues]
2397
- );
2398
- const firstEnabledIndex = react.useMemo(
2399
- () => getFirstEnabledIndex(optionList),
2400
- [optionList]
2401
- );
2402
- const resolvedActiveIndex = activeIndex >= 0 && !optionList[activeIndex]?.disabled ? activeIndex : firstEnabledIndex;
2403
- const visibleTagCount = getSafeTagCount(
2404
- maxTagCount,
2405
- selectedOptions.length
2406
- );
2407
- const visibleOptions = selectedOptions.slice(0, visibleTagCount);
2408
- const overflowCount = selectedOptions.length - visibleOptions.length;
2409
- const isPlaceholder = selectedOptions.length === 0;
2410
- const setRootRef = (node) => {
2411
- rootRef.current = node;
2412
- if (typeof ref === "function") {
2413
- ref(node);
2414
- } else if (ref) {
2415
- ref.current = node;
2416
- }
2417
- };
2418
- const setOpen = (nextOpen) => {
2419
- if (disabled || forceOpen) return;
2420
- setUncontrolledOpen(nextOpen);
2421
- if (nextOpen) {
2422
- setActiveIndex(resolvedActiveIndex);
2423
- }
2424
- };
2425
- react.useEffect(() => {
2426
- if (!open || forceOpen) return void 0;
2427
- const handlePointerDown = (event) => {
2428
- if (!rootRef.current?.contains(event.target)) {
2429
- setUncontrolledOpen(false);
2430
- }
2431
- };
2432
- document.addEventListener("pointerdown", handlePointerDown);
2433
- return () => {
2434
- document.removeEventListener("pointerdown", handlePointerDown);
2435
- };
2436
- }, [forceOpen, open]);
2437
- react.useEffect(() => {
2438
- if (resolvedActiveIndex >= 0 && resolvedActiveIndex !== activeIndex) {
2439
- setActiveIndex(resolvedActiveIndex);
2440
- }
2441
- }, [activeIndex, resolvedActiveIndex]);
2442
- const commitValues = (nextValues) => {
2443
- const normalizedValues = normalizeValues(nextValues);
2444
- if (!isControlled) {
2445
- setUncontrolledValue(normalizedValues);
2446
- }
2447
- onValueChange?.(normalizedValues);
2448
- };
2449
- const toggleOption = (option) => {
2450
- if (!option || option.disabled || disabled) return;
2451
- const nextValues = selectedValueSet.has(option.value) ? selectedValues.filter((selectedValue) => selectedValue !== option.value) : [...selectedValues, option.value];
2452
- commitValues(nextValues);
2453
- };
2454
- const removeOption = (option) => {
2455
- if (disabled) return;
2456
- commitValues(
2457
- selectedValues.filter((selectedValue) => selectedValue !== option.value)
2458
- );
2459
- };
2460
- const focusOption = (direction) => {
2461
- const nextIndex = getNextEnabledIndex(
2462
- optionList,
2463
- resolvedActiveIndex,
2464
- direction
2465
- );
2466
- if (nextIndex >= 0) {
2467
- setActiveIndex(nextIndex);
2468
- }
2469
- };
2470
- const handleKeyDown = (event) => {
2471
- if (disabled) return;
2472
- if (event.key === "ArrowDown" || event.key === "ArrowUp") {
2473
- event.preventDefault();
2474
- if (!open) {
2475
- setOpen(true);
2476
- setActiveIndex(firstEnabledIndex);
2477
- return;
2478
- }
2479
- focusOption(event.key === "ArrowDown" ? 1 : -1);
2480
- return;
2481
- }
2482
- if (event.key === "Home") {
2483
- event.preventDefault();
2484
- setOpen(true);
2485
- setActiveIndex(firstEnabledIndex);
2486
- return;
2487
- }
2488
- if (event.key === "End") {
2489
- event.preventDefault();
2490
- setOpen(true);
2491
- for (let index = optionList.length - 1; index >= 0; index -= 1) {
2492
- if (!optionList[index]?.disabled) {
2493
- setActiveIndex(index);
2494
- break;
2495
- }
2496
- }
2497
- return;
2498
- }
2499
- if (event.key === "Enter" || event.key === " ") {
2500
- event.preventDefault();
2501
- if (!open) {
2502
- setOpen(true);
2503
- return;
2504
- }
2505
- toggleOption(optionList[resolvedActiveIndex]);
2506
- return;
2507
- }
2508
- if (event.key === "Escape") {
2509
- setOpen(false);
2510
- }
2511
- };
2512
- return /* @__PURE__ */ jsxRuntime.jsxs(
2513
- "div",
2514
- {
2515
- ...rootProps,
2516
- id,
2517
- ref: setRootRef,
2518
- className: cn(
2519
- theme.slots.controlWrapper,
2520
- "overflow-visible",
2521
- open && "z-50",
2522
- invalid && theme.slots.controlInvalid,
2523
- disabled && theme.slots.controlDisabled,
2524
- classNames?.root,
2525
- className
2526
- ),
2527
- style: {
2528
- ...theme.styles.control,
2529
- ...invalid ? theme.styles.controlInvalid : void 0,
2530
- ...disabled ? theme.styles.controlDisabled : void 0,
2531
- ...style
2532
- },
2533
- children: [
2534
- hasRenderableNode(icon) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(theme.slots.controlIcon, classNames?.icon), children: icon }) : null,
2535
- /* @__PURE__ */ jsxRuntime.jsx(
2536
- "div",
2537
- {
2538
- id: controlId,
2539
- role: "combobox",
2540
- tabIndex: disabled ? -1 : 0,
2541
- "aria-haspopup": "listbox",
2542
- "aria-expanded": open,
2543
- "aria-controls": listboxId,
2544
- "aria-disabled": disabled || void 0,
2545
- "aria-required": required || void 0,
2546
- "aria-invalid": nativeAriaInvalid ?? (invalid || void 0),
2547
- "aria-label": nativeAriaLabel,
2548
- "aria-labelledby": nativeAriaLabelledBy,
2549
- className: cn(
2550
- theme.slots.controlBase,
2551
- "flex min-h-9 cursor-pointer flex-wrap items-center gap-1.5 py-1.5 pr-9 text-left",
2552
- disabled && "!cursor-not-allowed",
2553
- classNames?.control
2554
- ),
2555
- onClick: () => setOpen(!open),
2556
- onKeyDown: handleKeyDown,
2557
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2558
- "span",
2559
- {
2560
- className: cn(
2561
- "flex min-w-0 flex-1 flex-wrap items-center gap-1.5",
2562
- classNames?.tagList
2563
- ),
2564
- children: [
2565
- visibleOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
2566
- "span",
2567
- {
2568
- className: cn(
2569
- "inline-flex max-w-full items-center gap-1 rounded-full border border-border/70 bg-muted/65 px-2 py-0.5 text-xs font-medium text-foreground",
2570
- classNames?.tag
2571
- ),
2572
- children: [
2573
- /* @__PURE__ */ jsxRuntime.jsx(
2574
- "span",
2575
- {
2576
- className: cn(
2577
- "max-w-40 truncate",
2578
- classNames?.tagLabel
2579
- ),
2580
- children: option.label
2581
- }
2582
- ),
2583
- /* @__PURE__ */ jsxRuntime.jsx(
2584
- "button",
2585
- {
2586
- type: "button",
2587
- "aria-label": removeLabel(option),
2588
- disabled,
2589
- className: cn(
2590
- "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-background/80 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed",
2591
- classNames?.tagRemove
2592
- ),
2593
- onClick: (event) => {
2594
- event.preventDefault();
2595
- event.stopPropagation();
2596
- removeOption(option);
2597
- },
2598
- onMouseDown: (event) => {
2599
- event.preventDefault();
2600
- event.stopPropagation();
2601
- },
2602
- onKeyDown: (event) => event.stopPropagation(),
2603
- children: /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: "x" })
2604
- }
2605
- )
2606
- ]
2607
- },
2608
- option.value
2609
- )),
2610
- overflowCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
2611
- "span",
2612
- {
2613
- className: cn(
2614
- "inline-flex max-w-full items-center rounded-full border border-border/70 bg-muted/45 px-2 py-0.5 text-xs font-medium text-muted-foreground",
2615
- classNames?.tag
2616
- ),
2617
- children: [
2618
- "+",
2619
- overflowCount
2620
- ]
2621
- }
2622
- ) : null,
2623
- isPlaceholder ? /* @__PURE__ */ jsxRuntime.jsx(
2624
- "span",
2625
- {
2626
- className: cn(
2627
- "min-w-0 truncate",
2628
- theme.slots.selectPlaceholder,
2629
- classNames?.placeholder
2630
- ),
2631
- children: placeholder
2632
- }
2633
- ) : null
2634
- ]
2635
- }
2636
- )
2637
- }
2638
- ),
2639
- /* @__PURE__ */ jsxRuntime.jsx(
2640
- "span",
2641
- {
2642
- className: cn(
2643
- theme.slots.selectChevron,
2644
- open && "rotate-[225deg]",
2645
- classNames?.chevron
2646
- )
2647
- }
2648
- ),
2649
- name ? selectedValues.map((selectedValue) => /* @__PURE__ */ jsxRuntime.jsx(
2650
- "input",
2651
- {
2652
- type: "hidden",
2653
- name,
2654
- value: selectedValue,
2655
- className: classNames?.hiddenInput
2656
- },
2657
- selectedValue
2658
- )) : null,
2659
- open ? /* @__PURE__ */ jsxRuntime.jsx(
2660
- "div",
2661
- {
2662
- id: listboxId,
2663
- role: "listbox",
2664
- "aria-multiselectable": "true",
2665
- "aria-labelledby": controlId,
2666
- className: cn(theme.slots.selectMenu, classNames?.menu),
2667
- style: theme.styles.selectMenu,
2668
- children: optionList.length > 0 ? optionList.map((option, index) => {
2669
- const selected = selectedValueSet.has(option.value);
2670
- const active = index === resolvedActiveIndex;
2671
- return /* @__PURE__ */ jsxRuntime.jsxs(
2672
- "button",
2673
- {
2674
- type: "button",
2675
- role: "option",
2676
- "aria-selected": selected,
2677
- disabled: option.disabled,
2678
- className: cn(
2679
- theme.slots.selectOption,
2680
- "gap-2",
2681
- active && theme.slots.selectOptionActive,
2682
- selected && theme.slots.selectOptionSelected,
2683
- option.disabled && theme.slots.selectOptionDisabled,
2684
- classNames?.option
2685
- ),
2686
- style: {
2687
- ...theme.styles.selectOption,
2688
- ...active ? theme.styles.selectOptionActive : void 0,
2689
- ...selected ? theme.styles.selectOptionSelected : void 0
2690
- },
2691
- onMouseEnter: () => {
2692
- if (!option.disabled) {
2693
- setActiveIndex(index);
2694
- }
2695
- },
2696
- onMouseDown: (event) => event.preventDefault(),
2697
- onClick: () => toggleOption(option),
2698
- children: [
2699
- /* @__PURE__ */ jsxRuntime.jsx(
2700
- "span",
2701
- {
2702
- "aria-hidden": "true",
2703
- className: cn(
2704
- "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-border/70 text-[10px]",
2705
- selected && "border-primary/40 bg-primary text-primary-foreground",
2706
- classNames?.optionIndicator
2707
- ),
2708
- children: selected ? "\u2713" : null
2709
- }
2710
- ),
2711
- /* @__PURE__ */ jsxRuntime.jsx(
2712
- "span",
2713
- {
2714
- className: cn(
2715
- "min-w-0 flex-1 truncate",
2716
- classNames?.optionLabel
2717
- ),
2718
- children: option.label
2719
- }
2720
- )
2721
- ]
2722
- },
2723
- option.value
2724
- );
2725
- }) : /* @__PURE__ */ jsxRuntime.jsx(
2726
- "div",
2727
- {
2728
- className: cn(
2729
- "px-2.5 py-2 text-sm text-muted-foreground",
2730
- classNames?.empty
2731
- ),
2732
- children: emptyLabel
2733
- }
2734
- )
2735
- }
2736
- ) : null
2737
- ]
2738
- }
2739
- );
2740
- }
2741
- );
2742
2300
  function findOption(options, value) {
2743
2301
  if (value === void 0) return void 0;
2744
2302
  return options.find((option) => option.value === value);
@@ -2749,7 +2307,7 @@ function getInitialValue(options, defaultValue) {
2749
2307
  }
2750
2308
  return "";
2751
2309
  }
2752
- function getNextEnabledIndex2(options, currentIndex, direction) {
2310
+ function getNextEnabledIndex(options, currentIndex, direction) {
2753
2311
  if (!options.length) return -1;
2754
2312
  for (let offset = 1; offset <= options.length; offset += 1) {
2755
2313
  const nextIndex = (currentIndex + offset * direction + options.length) % options.length;
@@ -2851,7 +2409,7 @@ var BaseSelect = react.forwardRef(
2851
2409
  };
2852
2410
  const focusOption = (direction) => {
2853
2411
  const currentIndex = activeIndex >= 0 ? activeIndex : 0;
2854
- const nextIndex = getNextEnabledIndex2(optionList, currentIndex, direction);
2412
+ const nextIndex = getNextEnabledIndex(optionList, currentIndex, direction);
2855
2413
  if (nextIndex >= 0) {
2856
2414
  commitValue(optionList[nextIndex].value, optionList[nextIndex].disabled);
2857
2415
  }