@walkeros/explorer 1.0.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/LICENSE +2 -2
  2. package/dist/{chunk-VWWAIDNX.mjs → chunk-YKT4D7MG.mjs} +201 -53
  3. package/dist/chunk-YKT4D7MG.mjs.map +1 -0
  4. package/dist/components/atoms/alert.d.ts +29 -0
  5. package/dist/components/atoms/alert.d.ts.map +1 -0
  6. package/dist/components/atoms/alert.js +19 -0
  7. package/dist/components/atoms/alert.js.map +1 -0
  8. package/dist/components/atoms/alert.stories.d.ts +7 -0
  9. package/dist/components/atoms/alert.stories.d.ts.map +1 -0
  10. package/dist/components/atoms/alert.stories.js +14 -0
  11. package/dist/components/atoms/alert.stories.js.map +1 -0
  12. package/dist/components/atoms/button.stories.d.ts +14 -0
  13. package/dist/components/atoms/button.stories.d.ts.map +1 -0
  14. package/dist/components/atoms/button.stories.js +25 -0
  15. package/dist/components/atoms/button.stories.js.map +1 -0
  16. package/dist/components/atoms/code.d.ts.map +1 -1
  17. package/dist/components/atoms/code.js +14 -2
  18. package/dist/components/atoms/code.js.map +1 -1
  19. package/dist/components/atoms/footer.stories.d.ts +14 -0
  20. package/dist/components/atoms/footer.stories.d.ts.map +1 -0
  21. package/dist/components/atoms/footer.stories.js +29 -0
  22. package/dist/components/atoms/footer.stories.js.map +1 -0
  23. package/dist/components/atoms/form-field.d.ts +28 -0
  24. package/dist/components/atoms/form-field.d.ts.map +1 -0
  25. package/dist/components/atoms/form-field.js +16 -0
  26. package/dist/components/atoms/form-field.js.map +1 -0
  27. package/dist/components/atoms/form-field.stories.d.ts +7 -0
  28. package/dist/components/atoms/form-field.stories.d.ts.map +1 -0
  29. package/dist/components/atoms/form-field.stories.js +16 -0
  30. package/dist/components/atoms/form-field.stories.js.map +1 -0
  31. package/dist/components/atoms/form-input.d.ts +43 -0
  32. package/dist/components/atoms/form-input.d.ts.map +1 -0
  33. package/dist/components/atoms/form-input.js +26 -0
  34. package/dist/components/atoms/form-input.js.map +1 -0
  35. package/dist/components/atoms/form-input.stories.d.ts +7 -0
  36. package/dist/components/atoms/form-input.stories.d.ts.map +1 -0
  37. package/dist/components/atoms/form-input.stories.js +17 -0
  38. package/dist/components/atoms/form-input.stories.js.map +1 -0
  39. package/dist/components/atoms/form-textarea.d.ts +41 -0
  40. package/dist/components/atoms/form-textarea.d.ts.map +1 -0
  41. package/dist/components/atoms/form-textarea.js +26 -0
  42. package/dist/components/atoms/form-textarea.js.map +1 -0
  43. package/dist/components/atoms/form-textarea.stories.d.ts +7 -0
  44. package/dist/components/atoms/form-textarea.stories.d.ts.map +1 -0
  45. package/dist/components/atoms/form-textarea.stories.js +17 -0
  46. package/dist/components/atoms/form-textarea.stories.js.map +1 -0
  47. package/dist/components/atoms/grid.stories.d.ts +18 -0
  48. package/dist/components/atoms/grid.stories.d.ts.map +1 -0
  49. package/dist/components/atoms/grid.stories.js +60 -0
  50. package/dist/components/atoms/grid.stories.js.map +1 -0
  51. package/dist/components/atoms/header.stories.d.ts +15 -0
  52. package/dist/components/atoms/header.stories.d.ts.map +1 -0
  53. package/dist/components/atoms/header.stories.js +37 -0
  54. package/dist/components/atoms/header.stories.js.map +1 -0
  55. package/dist/components/atoms/icons/icon.stories.d.ts +18 -0
  56. package/dist/components/atoms/icons/icon.stories.d.ts.map +1 -0
  57. package/dist/components/atoms/icons/icon.stories.js +37 -0
  58. package/dist/components/atoms/icons/icon.stories.js.map +1 -0
  59. package/dist/components/atoms/panel-hints.stories.d.ts +14 -0
  60. package/dist/components/atoms/panel-hints.stories.d.ts.map +1 -0
  61. package/dist/components/atoms/panel-hints.stories.js +35 -0
  62. package/dist/components/atoms/panel-hints.stories.js.map +1 -0
  63. package/dist/components/atoms/spinner.d.ts +17 -0
  64. package/dist/components/atoms/spinner.d.ts.map +1 -0
  65. package/dist/components/atoms/spinner.js +14 -0
  66. package/dist/components/atoms/spinner.js.map +1 -0
  67. package/dist/components/atoms/spinner.stories.d.ts +7 -0
  68. package/dist/components/atoms/spinner.stories.d.ts.map +1 -0
  69. package/dist/components/atoms/spinner.stories.js +9 -0
  70. package/dist/components/atoms/spinner.stories.js.map +1 -0
  71. package/dist/components/atoms/submit-button.d.ts +34 -0
  72. package/dist/components/atoms/submit-button.d.ts.map +1 -0
  73. package/dist/components/atoms/submit-button.js +18 -0
  74. package/dist/components/atoms/submit-button.js.map +1 -0
  75. package/dist/components/atoms/submit-button.stories.d.ts +7 -0
  76. package/dist/components/atoms/submit-button.stories.d.ts.map +1 -0
  77. package/dist/components/atoms/submit-button.stories.js +13 -0
  78. package/dist/components/atoms/submit-button.stories.js.map +1 -0
  79. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js +1 -1
  80. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js.map +1 -1
  81. package/dist/components/molecules/code-box.stories.d.ts +8 -0
  82. package/dist/components/molecules/code-box.stories.d.ts.map +1 -1
  83. package/dist/components/molecules/code-box.stories.js +36 -0
  84. package/dist/components/molecules/code-box.stories.js.map +1 -1
  85. package/dist/components/molecules/config-form-card.d.ts +50 -0
  86. package/dist/components/molecules/config-form-card.d.ts.map +1 -0
  87. package/dist/components/molecules/config-form-card.js +30 -0
  88. package/dist/components/molecules/config-form-card.js.map +1 -0
  89. package/dist/components/molecules/config-form-card.stories.d.ts +7 -0
  90. package/dist/components/molecules/config-form-card.stories.d.ts.map +1 -0
  91. package/dist/components/molecules/config-form-card.stories.js +21 -0
  92. package/dist/components/molecules/config-form-card.stories.js.map +1 -0
  93. package/dist/components/molecules/dropdown.d.ts +68 -0
  94. package/dist/components/molecules/dropdown.d.ts.map +1 -0
  95. package/dist/components/molecules/dropdown.js +47 -0
  96. package/dist/components/molecules/dropdown.js.map +1 -0
  97. package/dist/components/molecules/dropdown.stories.d.ts +7 -0
  98. package/dist/components/molecules/dropdown.stories.d.ts.map +1 -0
  99. package/dist/components/molecules/dropdown.stories.js +18 -0
  100. package/dist/components/molecules/dropdown.stories.js.map +1 -0
  101. package/dist/components/molecules/flow-deploy-panel.d.ts +31 -0
  102. package/dist/components/molecules/flow-deploy-panel.d.ts.map +1 -0
  103. package/dist/components/molecules/flow-deploy-panel.js +72 -0
  104. package/dist/components/molecules/flow-deploy-panel.js.map +1 -0
  105. package/dist/components/molecules/flow-deploy-panel.stories.d.ts +40 -0
  106. package/dist/components/molecules/flow-deploy-panel.stories.d.ts.map +1 -0
  107. package/dist/components/molecules/flow-deploy-panel.stories.js +145 -0
  108. package/dist/components/molecules/flow-deploy-panel.stories.js.map +1 -0
  109. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts.map +1 -1
  110. package/dist/components/molecules/flow-map/FlowMap.stories.js +7 -1
  111. package/dist/components/molecules/flow-map/FlowMap.stories.js.map +1 -1
  112. package/dist/components/molecules/flow-selector.d.ts +19 -0
  113. package/dist/components/molecules/flow-selector.d.ts.map +1 -0
  114. package/dist/components/molecules/flow-selector.js +26 -0
  115. package/dist/components/molecules/flow-selector.js.map +1 -0
  116. package/dist/components/molecules/flow-selector.stories.d.ts +28 -0
  117. package/dist/components/molecules/flow-selector.stories.d.ts.map +1 -0
  118. package/dist/components/molecules/flow-selector.stories.js +66 -0
  119. package/dist/components/molecules/flow-selector.stories.js.map +1 -0
  120. package/dist/components/molecules/form-card.d.ts +28 -0
  121. package/dist/components/molecules/form-card.d.ts.map +1 -0
  122. package/dist/components/molecules/form-card.js +16 -0
  123. package/dist/components/molecules/form-card.js.map +1 -0
  124. package/dist/components/molecules/form-card.stories.d.ts +7 -0
  125. package/dist/components/molecules/form-card.stories.d.ts.map +1 -0
  126. package/dist/components/molecules/form-card.stories.js +16 -0
  127. package/dist/components/molecules/form-card.stories.js.map +1 -0
  128. package/dist/components/molecules/preview.d.ts.map +1 -1
  129. package/dist/components/molecules/preview.js +0 -1
  130. package/dist/components/molecules/preview.js.map +1 -1
  131. package/dist/components/molecules/split-button.d.ts +25 -0
  132. package/dist/components/molecules/split-button.d.ts.map +1 -0
  133. package/dist/components/molecules/split-button.js +37 -0
  134. package/dist/components/molecules/split-button.js.map +1 -0
  135. package/dist/components/molecules/split-button.stories.d.ts +32 -0
  136. package/dist/components/molecules/split-button.stories.d.ts.map +1 -0
  137. package/dist/components/molecules/split-button.stories.js +88 -0
  138. package/dist/components/molecules/split-button.stories.js.map +1 -0
  139. package/dist/hooks/useDropdown.d.ts +34 -0
  140. package/dist/hooks/useDropdown.d.ts.map +1 -0
  141. package/dist/hooks/useDropdown.js +66 -0
  142. package/dist/hooks/useDropdown.js.map +1 -0
  143. package/dist/index.d.cts +441 -2
  144. package/dist/index.d.ts +26 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +14 -0
  147. package/dist/index.js.map +1 -1
  148. package/dist/index.mjs +663 -28
  149. package/dist/index.mjs.map +1 -1
  150. package/dist/{monaco-types-4FIH5OVX.mjs → monaco-types-OLSF6MIE.mjs} +2 -2
  151. package/dist/styles.css +579 -0
  152. package/package.json +5 -14
  153. package/dist/chunk-VWWAIDNX.mjs.map +0 -1
  154. /package/dist/{monaco-types-4FIH5OVX.mjs.map → monaco-types-OLSF6MIE.mjs.map} +0 -0
@@ -14,7 +14,7 @@ import {
14
14
  removeDestinationType,
15
15
  removeTypeLibrary,
16
16
  updateTypeLibrary
17
- } from "./chunk-VWWAIDNX.mjs";
17
+ } from "./chunk-YKT4D7MG.mjs";
18
18
  export {
19
19
  addDestinationType,
20
20
  addFunctionContextTypes,
@@ -31,4 +31,4 @@ export {
31
31
  removeTypeLibrary,
32
32
  updateTypeLibrary
33
33
  };
34
- //# sourceMappingURL=monaco-types-4FIH5OVX.mjs.map
34
+ //# sourceMappingURL=monaco-types-OLSF6MIE.mjs.map
package/dist/styles.css CHANGED
@@ -40,6 +40,31 @@
40
40
  --color-status-enabled: #22c55e;
41
41
  --color-status-disabled: #9ca3af;
42
42
  --color-status-warning: #f59e0b;
43
+ --color-alert-info-bg: #eff6ff;
44
+ --color-alert-info-border: #bfdbfe;
45
+ --color-alert-info-text: #1e40af;
46
+ --color-alert-success-bg: #f0fdf4;
47
+ --color-alert-success-border: #bbf7d0;
48
+ --color-alert-success-text: #166534;
49
+ --color-alert-warning-bg: #fefce8;
50
+ --color-alert-warning-border: #fde68a;
51
+ --color-alert-warning-text: #854d0e;
52
+ --color-alert-error-bg: #fef2f2;
53
+ --color-alert-error-border: #fecaca;
54
+ --color-alert-error-text: #991b1b;
55
+ --color-focus-ring: rgba(1, 181, 226, 0.2);
56
+ --color-error-ring: rgba(239, 68, 68, 0.2);
57
+ --spacing-xs: 4px;
58
+ --spacing-sm: 8px;
59
+ --spacing-md: 12px;
60
+ --spacing-lg: 16px;
61
+ --spacing-xl: 24px;
62
+ --font-size-xs: 11px;
63
+ --font-size-sm: 12px;
64
+ --line-height-relaxed: 1.6;
65
+ --font-weight-medium: 500;
66
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
67
+ --z-dropdown: 50;
43
68
  --color-highlight-primary: #01b5e2;
44
69
  --radius-box: 4px;
45
70
  --radius-button: 3px;
@@ -1492,6 +1517,208 @@
1492
1517
  font-size: 14px;
1493
1518
  }
1494
1519
  }
1520
+ .elb-spinner {
1521
+ display: inline-block;
1522
+ border: 2px solid var(--border-input);
1523
+ border-top-color: var(--color-button-primary);
1524
+ border-radius: 50%;
1525
+ animation: elb-spin 0.6s linear infinite;
1526
+ }
1527
+ .elb-spinner--sm {
1528
+ width: 1rem;
1529
+ height: 1rem;
1530
+ }
1531
+ .elb-spinner--md {
1532
+ width: 1.5rem;
1533
+ height: 1.5rem;
1534
+ }
1535
+ .elb-spinner--lg {
1536
+ width: 2rem;
1537
+ height: 2rem;
1538
+ }
1539
+ @keyframes elb-spin {
1540
+ to {
1541
+ transform: rotate(360deg);
1542
+ }
1543
+ }
1544
+ .elb-alert {
1545
+ padding: var(--spacing-md);
1546
+ border-radius: var(--radius-box);
1547
+ border: 1px solid transparent;
1548
+ }
1549
+ .elb-alert__title {
1550
+ font-weight: var(--font-weight-semibold);
1551
+ margin-bottom: var(--spacing-xs);
1552
+ }
1553
+ .elb-alert__content {
1554
+ font-size: var(--font-size-sm);
1555
+ line-height: var(--line-height-relaxed);
1556
+ }
1557
+ .elb-alert__note {
1558
+ margin-top: var(--spacing-sm);
1559
+ font-size: var(--font-size-xs);
1560
+ opacity: 0.8;
1561
+ }
1562
+ .elb-alert--info {
1563
+ background-color: var(--color-alert-info-bg);
1564
+ border-color: var(--color-alert-info-border);
1565
+ color: var(--color-alert-info-text);
1566
+ }
1567
+ .elb-alert--success {
1568
+ background-color: var(--color-alert-success-bg);
1569
+ border-color: var(--color-alert-success-border);
1570
+ color: var(--color-alert-success-text);
1571
+ }
1572
+ .elb-alert--warning {
1573
+ background-color: var(--color-alert-warning-bg);
1574
+ border-color: var(--color-alert-warning-border);
1575
+ color: var(--color-alert-warning-text);
1576
+ }
1577
+ .elb-alert--error {
1578
+ background-color: var(--color-alert-error-bg);
1579
+ border-color: var(--color-alert-error-border);
1580
+ color: var(--color-alert-error-text);
1581
+ }
1582
+ .elb-form-field {
1583
+ margin-bottom: var(--spacing-md);
1584
+ }
1585
+ .elb-form-field__label {
1586
+ display: block;
1587
+ margin-bottom: var(--spacing-xs);
1588
+ font-size: var(--font-size-sm);
1589
+ font-weight: var(--font-weight-medium);
1590
+ color: var(--color-text);
1591
+ }
1592
+ .elb-form-field__required {
1593
+ color: var(--color-button-danger);
1594
+ margin-left: var(--spacing-xs);
1595
+ }
1596
+ .elb-form-field__input {
1597
+ width: 100%;
1598
+ }
1599
+ .elb-form-field__error {
1600
+ margin-top: var(--spacing-xs);
1601
+ font-size: var(--font-size-xs);
1602
+ color: var(--color-button-danger);
1603
+ }
1604
+ .elb-form-field--error .elb-form-field__label {
1605
+ color: var(--color-button-danger);
1606
+ }
1607
+ .elb-form-input {
1608
+ width: 100%;
1609
+ padding: var(--spacing-sm) var(--spacing-md);
1610
+ font-size: var(--font-size-base);
1611
+ font-family: inherit;
1612
+ color: var(--color-text-input);
1613
+ background-color: var(--bg-input);
1614
+ border: 1px solid var(--border-input);
1615
+ border-radius: var(--radius-box);
1616
+ outline: none;
1617
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
1618
+ }
1619
+ .elb-form-input::placeholder {
1620
+ color: var(--color-text-placeholder);
1621
+ }
1622
+ .elb-form-input:focus {
1623
+ border-color: var(--border-input-focus);
1624
+ box-shadow: 0 0 0 2px var(--color-focus-ring);
1625
+ }
1626
+ .elb-form-input:disabled {
1627
+ opacity: 0.6;
1628
+ cursor: not-allowed;
1629
+ background-color: var(--bg-input-hover);
1630
+ }
1631
+ .elb-form-input--error {
1632
+ border-color: var(--color-button-danger);
1633
+ }
1634
+ .elb-form-input--error:focus {
1635
+ border-color: var(--color-button-danger);
1636
+ box-shadow: 0 0 0 2px var(--color-error-ring);
1637
+ }
1638
+ .elb-form-textarea {
1639
+ width: 100%;
1640
+ padding: var(--spacing-sm) var(--spacing-md);
1641
+ font-size: var(--font-size-base);
1642
+ font-family: var(--font-mono);
1643
+ color: var(--color-text-input);
1644
+ background-color: var(--bg-input);
1645
+ border: 1px solid var(--border-input);
1646
+ border-radius: var(--radius-box);
1647
+ outline: none;
1648
+ resize: vertical;
1649
+ min-height: 6rem;
1650
+ line-height: var(--line-height-relaxed);
1651
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
1652
+ }
1653
+ .elb-form-textarea::placeholder {
1654
+ color: var(--color-text-placeholder);
1655
+ }
1656
+ .elb-form-textarea:focus {
1657
+ border-color: var(--border-input-focus);
1658
+ box-shadow: 0 0 0 2px var(--color-focus-ring);
1659
+ }
1660
+ .elb-form-textarea:disabled {
1661
+ opacity: 0.6;
1662
+ cursor: not-allowed;
1663
+ background-color: var(--bg-input-hover);
1664
+ resize: none;
1665
+ }
1666
+ .elb-form-textarea--error {
1667
+ border-color: var(--color-button-danger);
1668
+ }
1669
+ .elb-form-textarea--error:focus {
1670
+ border-color: var(--color-button-danger);
1671
+ box-shadow: 0 0 0 2px var(--color-error-ring);
1672
+ }
1673
+ .elb-submit-button {
1674
+ display: inline-flex;
1675
+ align-items: center;
1676
+ justify-content: center;
1677
+ gap: var(--spacing-sm);
1678
+ padding: var(--spacing-sm) var(--spacing-lg);
1679
+ font-size: var(--font-size-base);
1680
+ font-weight: var(--font-weight-medium);
1681
+ font-family: inherit;
1682
+ border: none;
1683
+ border-radius: var(--radius-box);
1684
+ cursor: pointer;
1685
+ transition: background-color 0.15s ease, opacity 0.15s ease;
1686
+ }
1687
+ .elb-submit-button:disabled {
1688
+ opacity: 0.6;
1689
+ cursor: not-allowed;
1690
+ }
1691
+ .elb-submit-button--primary {
1692
+ background-color: var(--color-button-primary);
1693
+ color: var(--color-button-primary-text);
1694
+ }
1695
+ .elb-submit-button--primary:hover:not(:disabled) {
1696
+ background-color: var(--color-button-primary-hover);
1697
+ }
1698
+ .elb-submit-button--default {
1699
+ background-color: var(--bg-button-group);
1700
+ color: var(--color-text);
1701
+ border: 1px solid var(--border-input);
1702
+ }
1703
+ .elb-submit-button--default:hover:not(:disabled) {
1704
+ background-color: var(--bg-button-hover);
1705
+ }
1706
+ .elb-submit-button--danger {
1707
+ background-color: var(--color-button-danger);
1708
+ color: var(--color-button-danger-text);
1709
+ }
1710
+ .elb-submit-button--danger:hover:not(:disabled) {
1711
+ background-color: var(--color-button-danger-hover);
1712
+ }
1713
+ .elb-submit-button--full-width {
1714
+ width: 100%;
1715
+ }
1716
+ .elb-submit-button--loading {
1717
+ cursor: wait;
1718
+ }
1719
+ .elb-submit-button__spinner {
1720
+ flex-shrink: 0;
1721
+ }
1495
1722
  .elb-auto-select {
1496
1723
  position: relative;
1497
1724
  width: 100%;
@@ -1596,6 +1823,114 @@
1596
1823
  font-style: italic;
1597
1824
  font-size: 0.9em;
1598
1825
  }
1826
+ .elb-form-card {
1827
+ background-color: var(--bg-box);
1828
+ border: 1px solid var(--border-box);
1829
+ border-radius: var(--radius-box);
1830
+ padding: var(--spacing-xl);
1831
+ margin: 0 auto;
1832
+ }
1833
+ .elb-form-card--sm {
1834
+ max-width: 24rem;
1835
+ }
1836
+ .elb-form-card--md {
1837
+ max-width: 32rem;
1838
+ }
1839
+ .elb-form-card--lg {
1840
+ max-width: 48rem;
1841
+ }
1842
+ .elb-form-card--full {
1843
+ max-width: none;
1844
+ }
1845
+ .elb-form-card__header {
1846
+ margin-bottom: var(--spacing-lg);
1847
+ text-align: center;
1848
+ }
1849
+ .elb-form-card__title {
1850
+ font-size: var(--font-size-xl);
1851
+ font-weight: var(--font-weight-semibold);
1852
+ color: var(--color-text);
1853
+ margin: 0;
1854
+ }
1855
+ .elb-form-card__subtitle {
1856
+ margin-top: var(--spacing-xs);
1857
+ font-size: var(--font-size-sm);
1858
+ color: var(--color-text-muted);
1859
+ }
1860
+ .elb-form-card__footer {
1861
+ margin-top: var(--spacing-lg);
1862
+ padding-top: var(--spacing-lg);
1863
+ border-top: 1px solid var(--border-box);
1864
+ text-align: center;
1865
+ font-size: var(--font-size-sm);
1866
+ color: var(--color-text-muted);
1867
+ }
1868
+ .elb-dropdown {
1869
+ position: relative;
1870
+ display: inline-block;
1871
+ }
1872
+ .elb-dropdown__trigger {
1873
+ cursor: pointer;
1874
+ user-select: none;
1875
+ }
1876
+ .elb-dropdown__trigger:focus {
1877
+ outline: 2px solid var(--border-input-focus);
1878
+ outline-offset: 2px;
1879
+ border-radius: var(--radius-button);
1880
+ }
1881
+ .elb-dropdown__panel {
1882
+ position: absolute;
1883
+ top: 100%;
1884
+ margin-top: var(--spacing-xs);
1885
+ min-width: 12rem;
1886
+ background-color: var(--bg-dropdown);
1887
+ border: 1px solid var(--border-box);
1888
+ border-radius: var(--radius-box);
1889
+ box-shadow: var(--shadow-lg);
1890
+ z-index: var(--z-dropdown);
1891
+ padding: var(--spacing-xs) 0;
1892
+ }
1893
+ .elb-dropdown__panel--left {
1894
+ left: 0;
1895
+ }
1896
+ .elb-dropdown__panel--right {
1897
+ right: 0;
1898
+ }
1899
+ .elb-dropdown__item {
1900
+ display: block;
1901
+ width: 100%;
1902
+ padding: var(--spacing-sm) var(--spacing-md);
1903
+ font-size: var(--font-size-sm);
1904
+ font-family: inherit;
1905
+ text-align: left;
1906
+ color: var(--color-text);
1907
+ background: none;
1908
+ border: none;
1909
+ cursor: pointer;
1910
+ transition: background-color 0.1s ease;
1911
+ }
1912
+ .elb-dropdown__item:hover:not(:disabled) {
1913
+ background-color: var(--bg-dropdown-option-hover);
1914
+ }
1915
+ .elb-dropdown__item:focus {
1916
+ outline: none;
1917
+ background-color: var(--bg-dropdown-option-hover);
1918
+ }
1919
+ .elb-dropdown__item--danger {
1920
+ color: var(--color-button-danger);
1921
+ }
1922
+ .elb-dropdown__item--danger:hover:not(:disabled) {
1923
+ background-color: var(--color-alert-error-bg);
1924
+ }
1925
+ .elb-dropdown__item--disabled {
1926
+ opacity: 0.5;
1927
+ cursor: not-allowed;
1928
+ }
1929
+ .elb-dropdown__divider {
1930
+ height: 1px;
1931
+ margin: var(--spacing-xs) 0;
1932
+ background-color: var(--border-box);
1933
+ }
1599
1934
  .elb-code-box {
1600
1935
  display: flex;
1601
1936
  flex-direction: column;
@@ -3461,6 +3796,97 @@
3461
3796
  align-items: center;
3462
3797
  justify-content: center;
3463
3798
  }
3799
+ .elb-flow-deploy-panel {
3800
+ display: flex;
3801
+ flex-direction: column;
3802
+ gap: 0.75rem;
3803
+ padding: 1rem;
3804
+ background: var(--bg-box);
3805
+ border: 1px solid var(--border-box);
3806
+ border-radius: var(--radius-box);
3807
+ }
3808
+ .elb-flow-deploy-panel__status {
3809
+ display: flex;
3810
+ align-items: center;
3811
+ gap: 0.5rem;
3812
+ }
3813
+ .elb-flow-deploy-panel__dot {
3814
+ width: 8px;
3815
+ height: 8px;
3816
+ border-radius: 50%;
3817
+ background: var(--color-text-muted);
3818
+ flex-shrink: 0;
3819
+ }
3820
+ .elb-flow-deploy-panel__dot--active {
3821
+ background: #22c55e;
3822
+ }
3823
+ .elb-flow-deploy-panel__dot--deploying {
3824
+ background: #eab308;
3825
+ animation: elb-flow-deploy-panel-pulse 1.5s ease-in-out infinite;
3826
+ }
3827
+ .elb-flow-deploy-panel__dot--failed {
3828
+ background: #ef4444;
3829
+ }
3830
+ .elb-flow-deploy-panel__status-text {
3831
+ font-weight: var(--font-weight-semibold);
3832
+ color: var(--color-text);
3833
+ }
3834
+ .elb-flow-deploy-panel__time {
3835
+ color: var(--color-text-muted);
3836
+ font-size: calc(var(--font-size-base) - 2px);
3837
+ }
3838
+ .elb-flow-deploy-panel__warning {
3839
+ padding: 0.4rem 0.6rem;
3840
+ background: rgba(234, 179, 8, 0.1);
3841
+ border: 1px solid rgba(234, 179, 8, 0.3);
3842
+ border-radius: var(--radius-box);
3843
+ color: #eab308;
3844
+ font-size: calc(var(--font-size-base) - 1px);
3845
+ }
3846
+ .elb-flow-deploy-panel__endpoint {
3847
+ padding: 0.4rem 0.6rem;
3848
+ background: var(--bg-header);
3849
+ border-radius: var(--radius-box);
3850
+ overflow-x: auto;
3851
+ }
3852
+ .elb-flow-deploy-panel__url {
3853
+ font-family: var(--font-mono);
3854
+ font-size: calc(var(--font-size-base) - 2px);
3855
+ color: var(--color-text-label);
3856
+ word-break: break-all;
3857
+ }
3858
+ .elb-flow-deploy-panel__error {
3859
+ padding: 0.4rem 0.6rem;
3860
+ background: rgba(239, 68, 68, 0.1);
3861
+ border: 1px solid rgba(239, 68, 68, 0.3);
3862
+ border-radius: var(--radius-box);
3863
+ color: #ef4444;
3864
+ font-size: calc(var(--font-size-base) - 1px);
3865
+ }
3866
+ .elb-flow-deploy-panel__actions {
3867
+ display: flex;
3868
+ align-items: center;
3869
+ gap: 0.75rem;
3870
+ }
3871
+ .elb-flow-deploy-panel__delete {
3872
+ border: none;
3873
+ background: none;
3874
+ color: var(--color-text-muted);
3875
+ font-size: calc(var(--font-size-base) - 1px);
3876
+ cursor: pointer;
3877
+ padding: 0.25rem 0;
3878
+ }
3879
+ .elb-flow-deploy-panel__delete:hover {
3880
+ color: var(--color-button-danger);
3881
+ }
3882
+ @keyframes elb-flow-deploy-panel-pulse {
3883
+ 0%, 100% {
3884
+ opacity: 1;
3885
+ }
3886
+ 50% {
3887
+ opacity: 0.4;
3888
+ }
3889
+ }
3464
3890
  .elb-flow-map {
3465
3891
  display: inline-block;
3466
3892
  padding: 8px 0;
@@ -3468,6 +3894,65 @@
3468
3894
  .elb-flow-map canvas {
3469
3895
  display: block;
3470
3896
  }
3897
+ .elb-flow-selector {
3898
+ display: flex;
3899
+ gap: 2px;
3900
+ border-bottom: 1px solid var(--border-box);
3901
+ padding: 0 0.25rem;
3902
+ }
3903
+ .elb-flow-selector__tab {
3904
+ display: flex;
3905
+ align-items: center;
3906
+ gap: 0.4rem;
3907
+ padding: 0.5rem 0.75rem;
3908
+ border: none;
3909
+ background: none;
3910
+ color: var(--color-text-muted);
3911
+ font-size: calc(var(--font-size-base) - 1px);
3912
+ cursor: pointer;
3913
+ border-bottom: 2px solid transparent;
3914
+ margin-bottom: -1px;
3915
+ transition: color 0.15s ease, border-color 0.15s ease;
3916
+ }
3917
+ .elb-flow-selector__tab:hover {
3918
+ color: var(--color-text);
3919
+ }
3920
+ .elb-flow-selector__tab--selected {
3921
+ color: var(--color-text);
3922
+ border-bottom-color: var(--color-button-primary);
3923
+ }
3924
+ .elb-flow-selector__dot {
3925
+ width: 8px;
3926
+ height: 8px;
3927
+ border-radius: 50%;
3928
+ background: var(--color-text-muted);
3929
+ flex-shrink: 0;
3930
+ }
3931
+ .elb-flow-selector__dot--active {
3932
+ background: #22c55e;
3933
+ }
3934
+ .elb-flow-selector__dot--deploying {
3935
+ background: #eab308;
3936
+ animation: elb-flow-selector-pulse 1.5s ease-in-out infinite;
3937
+ }
3938
+ .elb-flow-selector__dot--failed {
3939
+ background: #ef4444;
3940
+ }
3941
+ .elb-flow-selector__name {
3942
+ font-weight: var(--font-weight-semibold);
3943
+ }
3944
+ .elb-flow-selector__platform {
3945
+ color: var(--color-text-label);
3946
+ font-size: calc(var(--font-size-base) - 2px);
3947
+ }
3948
+ @keyframes elb-flow-selector-pulse {
3949
+ 0%, 100% {
3950
+ opacity: 1;
3951
+ }
3952
+ 50% {
3953
+ opacity: 0.4;
3954
+ }
3955
+ }
3471
3956
  .elb-collapsible {
3472
3957
  padding: 12px;
3473
3958
  border: 1px solid var(--border-input);
@@ -4117,6 +4602,100 @@
4117
4602
  padding: 16px 20px 20px;
4118
4603
  }
4119
4604
  }
4605
+ .elb-split-button {
4606
+ display: inline-flex;
4607
+ position: relative;
4608
+ }
4609
+ .elb-split-button__primary,
4610
+ .elb-split-button__toggle {
4611
+ border: none;
4612
+ cursor: pointer;
4613
+ font-size: var(--font-size-base);
4614
+ font-weight: var(--font-weight-semibold);
4615
+ transition: background-color 0.15s ease;
4616
+ }
4617
+ .elb-split-button__primary:disabled,
4618
+ .elb-split-button__toggle:disabled {
4619
+ opacity: 0.5;
4620
+ cursor: not-allowed;
4621
+ }
4622
+ .elb-split-button__primary {
4623
+ padding: 0.5rem 1rem;
4624
+ border-radius: var(--radius-button) 0 0 var(--radius-button);
4625
+ }
4626
+ .elb-split-button__toggle {
4627
+ display: flex;
4628
+ align-items: center;
4629
+ justify-content: center;
4630
+ padding: 0.5rem 0.6rem;
4631
+ border-left: 1px solid rgba(255, 255, 255, 0.2);
4632
+ border-radius: 0 var(--radius-button) var(--radius-button) 0;
4633
+ }
4634
+ .elb-split-button__arrow {
4635
+ width: 10px;
4636
+ height: 6px;
4637
+ }
4638
+ .elb-split-button--primary .elb-split-button__primary,
4639
+ .elb-split-button--primary .elb-split-button__toggle {
4640
+ background: var(--color-button-primary);
4641
+ color: #fff;
4642
+ }
4643
+ .elb-split-button--primary .elb-split-button__primary:hover:not(:disabled),
4644
+ .elb-split-button--primary .elb-split-button__toggle:hover:not(:disabled) {
4645
+ filter: brightness(1.1);
4646
+ }
4647
+ .elb-split-button--default .elb-split-button__primary,
4648
+ .elb-split-button--default .elb-split-button__toggle {
4649
+ background: var(--bg-button-hover);
4650
+ color: var(--color-text);
4651
+ }
4652
+ .elb-split-button--default .elb-split-button__primary:hover:not(:disabled),
4653
+ .elb-split-button--default .elb-split-button__toggle:hover:not(:disabled) {
4654
+ filter: brightness(1.1);
4655
+ }
4656
+ .elb-split-button--default .elb-split-button__toggle {
4657
+ border-left-color: var(--border-box);
4658
+ }
4659
+ .elb-split-button--danger .elb-split-button__primary,
4660
+ .elb-split-button--danger .elb-split-button__toggle {
4661
+ background: var(--color-button-danger);
4662
+ color: #fff;
4663
+ }
4664
+ .elb-split-button--danger .elb-split-button__primary:hover:not(:disabled),
4665
+ .elb-split-button--danger .elb-split-button__toggle:hover:not(:disabled) {
4666
+ filter: brightness(1.1);
4667
+ }
4668
+ .elb-split-button__dropdown {
4669
+ position: absolute;
4670
+ top: calc(100% + 4px);
4671
+ right: 0;
4672
+ min-width: 180px;
4673
+ background: var(--bg-box);
4674
+ border: 1px solid var(--border-box);
4675
+ border-radius: var(--radius-box);
4676
+ box-shadow: var(--shadow-dropdown);
4677
+ z-index: 10;
4678
+ overflow: hidden;
4679
+ }
4680
+ .elb-split-button__action {
4681
+ display: block;
4682
+ width: 100%;
4683
+ padding: 0.5rem 0.75rem;
4684
+ border: none;
4685
+ background: none;
4686
+ color: var(--color-text);
4687
+ font-size: calc(var(--font-size-base) - 1px);
4688
+ text-align: left;
4689
+ cursor: pointer;
4690
+ transition: background-color 0.1s ease;
4691
+ }
4692
+ .elb-split-button__action:hover:not(:disabled) {
4693
+ background: var(--bg-button-hover);
4694
+ }
4695
+ .elb-split-button__action:disabled {
4696
+ opacity: 0.5;
4697
+ cursor: not-allowed;
4698
+ }
4120
4699
  .elb-validation-errors-list {
4121
4700
  display: flex;
4122
4701
  flex-direction: column;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/explorer",
3
- "version": "1.0.1",
3
+ "version": "2.0.1",
4
4
  "description": "Interactive React components for walkerOS documentation and exploration",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -44,21 +44,15 @@
44
44
  "monaco-editor": "^0.55.1",
45
45
  "prettier": "^3.7.4",
46
46
  "roughjs": "^4.6.6",
47
+ "@walkeros/collector": "^2.0.1",
48
+ "@walkeros/core": "^2.0.1",
49
+ "@walkeros/web-source-browser": "^2.0.1",
47
50
  "tailwind-merge": "^3.4.0"
48
51
  },
49
52
  "peerDependencies": {
50
- "@walkeros/core": "^0.8.0",
51
53
  "react": ">=18.0.0",
52
54
  "react-dom": ">=18.0.0"
53
55
  },
54
- "peerDependenciesMeta": {
55
- "@walkeros/collector": {
56
- "optional": true
57
- },
58
- "@walkeros/web-source-browser": {
59
- "optional": true
60
- }
61
- },
62
56
  "devDependencies": {
63
57
  "@changesets/cli": "^2.29.8",
64
58
  "@storybook/addon-docs": "^10.1.11",
@@ -74,10 +68,7 @@
74
68
  "@typescript-eslint/eslint-plugin": "^8.28.0",
75
69
  "@typescript-eslint/parser": "^8.28.0",
76
70
  "@vitejs/plugin-react": "^5.1.2",
77
- "@walkeros/collector": "^0.9.0",
78
- "@walkeros/core": "^0.8.0",
79
- "@walkeros/web-destination-gtag": "^0.8.0",
80
- "@walkeros/web-source-browser": "^0.8.0",
71
+ "@walkeros/web-destination-gtag": "^2.0.1",
81
72
  "baseline-browser-mapping": "^2.9.14",
82
73
  "eslint": "^9.23.0",
83
74
  "eslint-plugin-jest": "^28.11.0",