@agentiffai/design 0.1.10 → 0.1.12

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.
@@ -196,8 +196,9 @@ interface PaneMenusProps {
196
196
  isOAuthLoading?: boolean;
197
197
  connectionsSlot?: React.ReactNode;
198
198
  workflowsSlot?: React.ReactNode;
199
+ usageSlot?: React.ReactNode;
199
200
  }
200
- declare function PaneMenus({ activeTab, onTabChange, runs, onRunSelect, currentUsage, maxUsage, isGoogleConnected, onGoogleConnect, onGoogleDisconnect, oauthConnections, onOAuthConnect, onOAuthDisconnect, isOAuthConnecting, isOAuthLoading, connectionsSlot, workflowsSlot, }: PaneMenusProps): react_jsx_runtime.JSX.Element;
201
+ declare function PaneMenus({ activeTab, onTabChange, runs, onRunSelect, currentUsage, maxUsage, isGoogleConnected, onGoogleConnect, onGoogleDisconnect, oauthConnections, onOAuthConnect, onOAuthDisconnect, isOAuthConnecting, isOAuthLoading, connectionsSlot, workflowsSlot, usageSlot, }: PaneMenusProps): react_jsx_runtime.JSX.Element;
201
202
 
202
203
  type BrandType = 'Google' | 'Microsoft' | 'Slack' | 'YouTube';
203
204
  interface PaneSectionHeaderProps {
@@ -196,8 +196,9 @@ interface PaneMenusProps {
196
196
  isOAuthLoading?: boolean;
197
197
  connectionsSlot?: React.ReactNode;
198
198
  workflowsSlot?: React.ReactNode;
199
+ usageSlot?: React.ReactNode;
199
200
  }
200
- declare function PaneMenus({ activeTab, onTabChange, runs, onRunSelect, currentUsage, maxUsage, isGoogleConnected, onGoogleConnect, onGoogleDisconnect, oauthConnections, onOAuthConnect, onOAuthDisconnect, isOAuthConnecting, isOAuthLoading, connectionsSlot, workflowsSlot, }: PaneMenusProps): react_jsx_runtime.JSX.Element;
201
+ declare function PaneMenus({ activeTab, onTabChange, runs, onRunSelect, currentUsage, maxUsage, isGoogleConnected, onGoogleConnect, onGoogleDisconnect, oauthConnections, onOAuthConnect, onOAuthDisconnect, isOAuthConnecting, isOAuthLoading, connectionsSlot, workflowsSlot, usageSlot, }: PaneMenusProps): react_jsx_runtime.JSX.Element;
201
202
 
202
203
  type BrandType = 'Google' | 'Microsoft' | 'Slack' | 'YouTube';
203
204
  interface PaneSectionHeaderProps {
@@ -138,7 +138,7 @@ var NavigationContainer = styled9.div`
138
138
  display: flex;
139
139
  flex-direction: column;
140
140
  align-items: center;
141
- padding-top: 6px;
141
+ padding-top: ${tokens.spacing.xs};
142
142
  gap: ${tokens.spacing.xs};
143
143
  width: 100%;
144
144
  height: 100%;
@@ -191,7 +191,7 @@ var CategoryButton = styled9.button`
191
191
  var CategoryLabel = styled9.span`
192
192
  font-size: 9px;
193
193
  color: ${tokens.colors.text.tertiary};
194
- margin-top: 2px;
194
+ margin-top: ${tokens.spacing.xs};
195
195
  text-align: center;
196
196
  max-width: 56px;
197
197
  overflow: hidden;
@@ -479,8 +479,10 @@ var Container = styled9.nav`
479
479
  right: 0;
480
480
  background-color: ${tokens.colors.background.darker};
481
481
  border-top: 1px solid ${tokens.colors.border.subtle};
482
- /* Reserve space for Android nav buttons (80px) below the actual navbar */
483
- padding-bottom: max(80px, env(safe-area-inset-bottom, 80px));
482
+ /* Use safe-area-inset-bottom for Android navigation buttons.
483
+ The env() value will be 0 on devices without soft nav buttons.
484
+ Fallback to 0 if env() is not supported. */
485
+ padding-bottom: env(safe-area-inset-bottom, 0px);
484
486
  z-index: ${tokens.zIndex.sticky};
485
487
 
486
488
  /* Dark theme support */
@@ -1038,7 +1040,7 @@ WorkflowStatusCard.displayName = "WorkflowStatusCard";
1038
1040
  var DarkNotificationCardContainer = styled9.div`
1039
1041
  display: flex;
1040
1042
  flex-direction: column;
1041
- padding: 6px;
1043
+ padding: ${tokens.spacing.xs};
1042
1044
  background: ${tokens.colors.surface.base};
1043
1045
  border-radius: ${tokens.borderRadius.md};
1044
1046
  gap: ${tokens.spacing.xs};
@@ -1051,7 +1053,7 @@ var DarkSectionHeader = styled9.button`
1051
1053
  align-items: center;
1052
1054
  justify-content: space-between;
1053
1055
  width: 100%;
1054
- padding: ${tokens.spacing.xs} 2px;
1056
+ padding: ${tokens.spacing.xs} ${tokens.spacing.xs};
1055
1057
  border: none;
1056
1058
  background: transparent;
1057
1059
  font-family: ${tokens.typography.fontFamily.primary};
@@ -1093,18 +1095,18 @@ var DarkChevronIcon = styled9.span`
1093
1095
  var DarkSectionContent = styled9.div`
1094
1096
  display: flex;
1095
1097
  flex-direction: column;
1096
- gap: 2px;
1098
+ gap: ${tokens.spacing.xs};
1097
1099
  padding-left: ${tokens.spacing.xs};
1098
- margin-top: 2px;
1100
+ margin-top: ${tokens.spacing.xs};
1099
1101
  min-width: 0;
1100
1102
  overflow: hidden;
1101
1103
  `;
1102
1104
  var DarkNotificationItemWrapper = styled9.button`
1103
1105
  display: flex;
1104
1106
  align-items: center;
1105
- gap: 6px;
1107
+ gap: ${tokens.spacing.xs};
1106
1108
  width: 100%;
1107
- padding: ${tokens.spacing.xs} 6px;
1109
+ padding: ${tokens.spacing.xs} ${tokens.spacing.xs};
1108
1110
  border: none;
1109
1111
  cursor: pointer;
1110
1112
  text-align: left;
@@ -1160,7 +1162,7 @@ var DarkItemIcon = styled9.span`
1160
1162
 
1161
1163
  /* Custom icon (emoji or colored icon) styling */
1162
1164
  ${(props) => props.$hasCustomIcon && `
1163
- padding: 2px;
1165
+ padding: ${tokens.spacing.xs};
1164
1166
  `}
1165
1167
  `;
1166
1168
  var DarkItemText = styled9.span`
@@ -1438,7 +1440,7 @@ var TabButton = styled9.button`
1438
1440
  flex-shrink: 0;
1439
1441
 
1440
1442
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1441
- padding: 10px ${tokens.spacing.md};
1443
+ padding: ${tokens.spacing.sm} ${tokens.spacing.md};
1442
1444
  font-size: ${tokens.typography.fontSize.xs};
1443
1445
  }
1444
1446
 
@@ -1536,7 +1538,7 @@ styled9.button`
1536
1538
  overflow: hidden;
1537
1539
 
1538
1540
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1539
- padding: 10px ${tokens.spacing.md};
1541
+ padding: ${tokens.spacing.sm} ${tokens.spacing.md};
1540
1542
  font-size: 13px;
1541
1543
  gap: ${tokens.spacing.sm};
1542
1544
  }
@@ -1618,7 +1620,7 @@ var CategoryTitle = styled9.div`
1618
1620
  gap: ${tokens.spacing.sm};
1619
1621
 
1620
1622
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1621
- gap: 6px;
1623
+ gap: ${tokens.spacing.xs};
1622
1624
  }
1623
1625
  `;
1624
1626
  styled9.img`
@@ -1675,7 +1677,7 @@ var CategoryDisclosurePanel = styled9(DisclosurePanel)`
1675
1677
  overflow: hidden;
1676
1678
 
1677
1679
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1678
- padding-left: 2px;
1680
+ padding-left: ${tokens.spacing.xs};
1679
1681
  }
1680
1682
 
1681
1683
  &[data-entering] {
@@ -1697,7 +1699,7 @@ var ItemContainer = styled9.div`
1697
1699
  display: flex;
1698
1700
  align-items: center;
1699
1701
  gap: ${tokens.spacing.sm};
1700
- padding: 10px ${tokens.spacing.sm}; // Increased vertical padding from 4px to 10px for better breathing room
1702
+ padding: ${tokens.spacing.sm} ${tokens.spacing.sm}; // Increased vertical padding from 4px to 8px for better breathing room
1701
1703
  border-radius: ${tokens.borderRadius.sm};
1702
1704
  cursor: pointer;
1703
1705
  transition: background-color ${tokens.transitions.fast};
@@ -1705,8 +1707,8 @@ var ItemContainer = styled9.div`
1705
1707
  overflow: hidden;
1706
1708
 
1707
1709
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1708
- gap: 6px;
1709
- padding: ${tokens.spacing.sm} 6px; // Increased vertical padding from 4px to 8px for mobile
1710
+ gap: ${tokens.spacing.xs};
1711
+ padding: ${tokens.spacing.sm} ${tokens.spacing.xs}; // Increased vertical padding from 4px to 8px for mobile
1710
1712
  }
1711
1713
 
1712
1714
  &:hover {
@@ -1747,7 +1749,7 @@ var ItemHeader = styled9(Button)`
1747
1749
  }
1748
1750
  `;
1749
1751
  var ItemDisclosurePanel = styled9(DisclosurePanel)`
1750
- padding: 6px;
1752
+ padding: ${tokens.spacing.xs};
1751
1753
  background-color: ${tokens.colors.overlay};
1752
1754
  border-radius: 0 0 ${tokens.borderRadius.md} ${tokens.borderRadius.md};
1753
1755
  margin-top: -${tokens.spacing.xs};
@@ -1758,7 +1760,7 @@ var ItemDisclosurePanel = styled9(DisclosurePanel)`
1758
1760
  overflow: hidden;
1759
1761
 
1760
1762
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1761
- padding: 6px;
1763
+ padding: ${tokens.spacing.xs};
1762
1764
  }
1763
1765
 
1764
1766
  &[data-entering] {
@@ -2079,7 +2081,7 @@ function ItemWithLogs({
2079
2081
  isExpanded && /* @__PURE__ */ jsx(ItemDisclosurePanel, { children: run.customContent ? (
2080
2082
  // Render custom content directly
2081
2083
  /* @__PURE__ */ jsx("div", { style: { padding: "16px" }, children: run.customContent })
2082
- ) : run.logs && run.logs.length > 0 ? /* @__PURE__ */ jsx(DarkNotificationCard, { sections: logSections }) : /* @__PURE__ */ jsx("div", { style: { color: "#72767D", fontSize: "13px", padding: "8px" }, children: "No action logs available" }) })
2084
+ ) : run.logs && run.logs.length > 0 ? /* @__PURE__ */ jsx(DarkNotificationCard, { sections: logSections }) : /* @__PURE__ */ jsx("div", { style: { color: tokens.colors.text.tertiary, fontSize: "13px", padding: "8px" }, children: "No action logs available" }) })
2083
2085
  ] });
2084
2086
  }
2085
2087
  function normalizeCategory(category) {
@@ -2114,7 +2116,7 @@ function WorkflowGroupItem({
2114
2116
  /* @__PURE__ */ jsx(Heading, { level: 4, children: /* @__PURE__ */ jsxs(CategoryHeader, { slot: "trigger", style: { paddingLeft: "8px" }, children: [
2115
2117
  /* @__PURE__ */ jsxs(CategoryTitle, { children: [
2116
2118
  /* @__PURE__ */ jsx("span", { style: { fontSize: "13px", fontWeight: 500 }, children: group.workflowName }),
2117
- /* @__PURE__ */ jsxs("span", { style: { fontSize: "11px", color: "#72767D", marginLeft: "8px" }, children: [
2119
+ /* @__PURE__ */ jsxs("span", { style: { fontSize: "11px", color: tokens.colors.text.tertiary, marginLeft: "8px" }, children: [
2118
2120
  "(",
2119
2121
  group.runs.length,
2120
2122
  ")"
@@ -2324,7 +2326,7 @@ function ConnectionsTabContent({
2324
2326
  return /* @__PURE__ */ jsxs(ConnectionsContainer, { children: [
2325
2327
  /* @__PURE__ */ jsx(ConnectionDescription, { children: descriptionText }),
2326
2328
  /* @__PURE__ */ jsx(GoogleButton, { ...buttonProps, ref, $isConnected: isConnected, children: buttonText }),
2327
- isConnected && googleConnection?.scopes && googleConnection.scopes.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginTop: "16px", fontSize: "13px", color: "#B9BBBE" }, children: [
2329
+ isConnected && googleConnection?.scopes && googleConnection.scopes.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginTop: "16px", fontSize: "13px", color: tokens.colors.text.secondary }, children: [
2328
2330
  "Connected services: ",
2329
2331
  googleConnection.scopes.join(", ")
2330
2332
  ] })
@@ -2367,7 +2369,8 @@ function PaneMenus({
2367
2369
  isOAuthConnecting = false,
2368
2370
  isOAuthLoading = false,
2369
2371
  connectionsSlot,
2370
- workflowsSlot
2372
+ workflowsSlot,
2373
+ usageSlot
2371
2374
  }) {
2372
2375
  const state = useTabListState({
2373
2376
  selectedKey: activeTab,
@@ -2379,7 +2382,7 @@ function PaneMenus({
2379
2382
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
2380
2383
  workflowsSlot && /* @__PURE__ */ jsx(Item, { title: "Workflows", children: workflowsSlot }, "workflows"),
2381
2384
  /* @__PURE__ */ jsx(Item, { title: "Runs", children: /* @__PURE__ */ jsx(RunsTabContent, { runs, onRunSelect }) }, "runs"),
2382
- /* @__PURE__ */ jsx(Item, { title: "Usage", children: /* @__PURE__ */ jsx(UsageTabContent, { currentUsage, maxUsage }) }, "usage"),
2385
+ /* @__PURE__ */ jsx(Item, { title: "Usage", children: usageSlot || /* @__PURE__ */ jsx(UsageTabContent, { currentUsage, maxUsage }) }, "usage"),
2383
2386
  /* @__PURE__ */ jsx(Item, { title: "Connections", children: connectionsSlot || /* @__PURE__ */ jsx(
2384
2387
  ConnectionsTabContent,
2385
2388
  {