@agentiffai/design 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1056,8 +1056,10 @@ var Container2 = styled11__default.default.nav`
1056
1056
  right: 0;
1057
1057
  background-color: ${tokens.colors.background.darker};
1058
1058
  border-top: 1px solid ${tokens.colors.border.subtle};
1059
- /* Reserve space for Android nav buttons (80px) below the actual navbar */
1060
- padding-bottom: max(80px, env(safe-area-inset-bottom, 80px));
1059
+ /* Use safe-area-inset-bottom for Android navigation buttons.
1060
+ The env() value will be 0 on devices without soft nav buttons.
1061
+ Fallback to 0 if env() is not supported. */
1062
+ padding-bottom: env(safe-area-inset-bottom, 0px);
1061
1063
  z-index: ${tokens.zIndex.sticky};
1062
1064
 
1063
1065
  /* Dark theme support */
@@ -2944,7 +2946,8 @@ function PaneMenus({
2944
2946
  isOAuthConnecting = false,
2945
2947
  isOAuthLoading = false,
2946
2948
  connectionsSlot,
2947
- workflowsSlot
2949
+ workflowsSlot,
2950
+ usageSlot
2948
2951
  }) {
2949
2952
  const state = tabs.useTabListState({
2950
2953
  selectedKey: activeTab,
@@ -2956,7 +2959,7 @@ function PaneMenus({
2956
2959
  children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2957
2960
  workflowsSlot && /* @__PURE__ */ jsxRuntime.jsx(collections.Item, { title: "Workflows", children: workflowsSlot }, "workflows"),
2958
2961
  /* @__PURE__ */ jsxRuntime.jsx(collections.Item, { title: "Runs", children: /* @__PURE__ */ jsxRuntime.jsx(RunsTabContent, { runs, onRunSelect }) }, "runs"),
2959
- /* @__PURE__ */ jsxRuntime.jsx(collections.Item, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(UsageTabContent, { currentUsage, maxUsage }) }, "usage"),
2962
+ /* @__PURE__ */ jsxRuntime.jsx(collections.Item, { title: "Usage", children: usageSlot || /* @__PURE__ */ jsxRuntime.jsx(UsageTabContent, { currentUsage, maxUsage }) }, "usage"),
2960
2963
  /* @__PURE__ */ jsxRuntime.jsx(collections.Item, { title: "Connections", children: connectionsSlot || /* @__PURE__ */ jsxRuntime.jsx(
2961
2964
  ConnectionsTabContent,
2962
2965
  {
@@ -3729,7 +3732,7 @@ var StyledUserMessage = styled11__default.default.button`
3729
3732
  }
3730
3733
  }
3731
3734
  `;
3732
- function UserMessage({
3735
+ function UserMessageBase({
3733
3736
  children,
3734
3737
  className,
3735
3738
  isPressed = false,
@@ -3760,6 +3763,7 @@ function UserMessage({
3760
3763
  }
3761
3764
  );
3762
3765
  }
3766
+ var UserMessage = react.memo(UserMessageBase);
3763
3767
  UserMessage.displayName = "UserMessage";
3764
3768
 
3765
3769
  // src/theme/darkTheme.ts
@@ -3951,25 +3955,28 @@ var IntegrationCard = ({
3951
3955
  className
3952
3956
  }) => {
3953
3957
  return /* @__PURE__ */ jsxRuntime.jsxs(Card, { className, "data-testid": "integration-card", children: [
3954
- /* @__PURE__ */ jsxRuntime.jsxs(Header, { children: [
3958
+ status && /* @__PURE__ */ jsxRuntime.jsx(StatusRow, { children: status }),
3959
+ /* @__PURE__ */ jsxRuntime.jsxs(ContentHeader, { children: [
3955
3960
  /* @__PURE__ */ jsxRuntime.jsx(IconWrapper3, { children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(IconImage, { src: icon, alt: name }) : icon }),
3956
3961
  /* @__PURE__ */ jsxRuntime.jsxs(Info, { children: [
3957
3962
  /* @__PURE__ */ jsxRuntime.jsx(Name, { children: name }),
3958
3963
  description && /* @__PURE__ */ jsxRuntime.jsx(Description, { children: description })
3959
- ] }),
3960
- status && /* @__PURE__ */ jsxRuntime.jsx(StatusWrapper, { children: status })
3964
+ ] })
3961
3965
  ] }),
3962
- children && /* @__PURE__ */ jsxRuntime.jsx(ContentRow, { children }),
3963
- actions && /* @__PURE__ */ jsxRuntime.jsx(ActionsRow, { children: actions })
3966
+ (children || actions) && /* @__PURE__ */ jsxRuntime.jsxs(ActionsRow, { children: [
3967
+ children,
3968
+ actions
3969
+ ] })
3964
3970
  ] });
3965
3971
  };
3966
3972
  IntegrationCard.displayName = "IntegrationCard";
3967
3973
  var Card = styled11__default.default.div`
3968
- display: grid;
3974
+ display: flex;
3975
+ flex-direction: column;
3969
3976
  gap: ${tokens.spacing.sm};
3970
3977
  padding: ${tokens.spacing.md};
3971
3978
  background: ${tokens.colors.background.dark};
3972
- border-radius: ${tokens.borderRadius.lg};
3979
+ border-radius: ${tokens.borderRadius.xl};
3973
3980
  border: 1px solid ${tokens.colors.border.default};
3974
3981
  font-family: ${tokens.typography.fontFamily.primary};
3975
3982
  transition: border-color ${tokens.transitions.fast};
@@ -3978,10 +3985,13 @@ var Card = styled11__default.default.div`
3978
3985
  border-color: ${tokens.colors.border.hover};
3979
3986
  }
3980
3987
  `;
3981
- var Header = styled11__default.default.div`
3982
- display: grid;
3983
- grid-template-columns: auto 1fr auto;
3984
- align-items: start;
3988
+ var StatusRow = styled11__default.default.div`
3989
+ display: flex;
3990
+ align-items: center;
3991
+ `;
3992
+ var ContentHeader = styled11__default.default.div`
3993
+ display: flex;
3994
+ align-items: flex-start;
3985
3995
  gap: ${tokens.spacing.sm};
3986
3996
  `;
3987
3997
  var IconWrapper3 = styled11__default.default.div`
@@ -4004,7 +4014,7 @@ var Info = styled11__default.default.div`
4004
4014
  flex-direction: column;
4005
4015
  gap: 2px;
4006
4016
  min-width: 0;
4007
- padding-top: 2px;
4017
+ flex: 1;
4008
4018
  `;
4009
4019
  var Name = styled11__default.default.h3`
4010
4020
  margin: 0;
@@ -4019,21 +4029,10 @@ var Description = styled11__default.default.p`
4019
4029
  color: ${tokens.colors.text.tertiary};
4020
4030
  line-height: ${tokens.typography.lineHeight.normal};
4021
4031
  `;
4022
- var StatusWrapper = styled11__default.default.div`
4023
- flex-shrink: 0;
4024
- padding-top: 2px;
4025
- `;
4026
- var ContentRow = styled11__default.default.div`
4027
- display: flex;
4028
- gap: ${tokens.spacing.sm};
4029
- align-items: center;
4030
- padding-left: calc(40px + ${tokens.spacing.sm});
4031
- `;
4032
4032
  var ActionsRow = styled11__default.default.div`
4033
4033
  display: flex;
4034
+ flex-direction: column;
4034
4035
  gap: ${tokens.spacing.sm};
4035
- justify-content: flex-end;
4036
- padding-top: ${tokens.spacing.xs};
4037
4036
  `;
4038
4037
  var EyeIcon = () => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
4039
4038
  /* @__PURE__ */ jsxRuntime.jsx("title", { children: "Show" }),
@@ -4951,7 +4950,7 @@ var ActionButton2 = styled11__default.default.button`
4951
4950
  display: block;
4952
4951
  }
4953
4952
  `;
4954
- var Header2 = ({
4953
+ var Header = ({
4955
4954
  title,
4956
4955
  subtitle,
4957
4956
  streamStatus,
@@ -5028,7 +5027,7 @@ var Header2 = ({
5028
5027
  ] })
5029
5028
  ] });
5030
5029
  };
5031
- Header2.displayName = "Header";
5030
+ Header.displayName = "Header";
5032
5031
  var InputContainer = styled11__default.default.div`
5033
5032
  display: flex;
5034
5033
  flex-direction: column;
@@ -5257,7 +5256,7 @@ var Cursor = styled11__default.default.span`
5257
5256
  }
5258
5257
  }
5259
5258
  `;
5260
- var StreamingText2 = ({
5259
+ var StreamingTextBase = ({
5261
5260
  content,
5262
5261
  isStreaming = false,
5263
5262
  typingSpeed: _typingSpeed = 50,
@@ -5267,25 +5266,27 @@ var StreamingText2 = ({
5267
5266
  onStreamComplete,
5268
5267
  className
5269
5268
  }) => {
5270
- const [displayedText, setDisplayedText] = react.useState("");
5269
+ const [displayedText, setDisplayedText] = react.useState(content);
5270
+ const wasStreamingRef = react.useRef(isStreaming);
5271
+ const completionCalledRef = react.useRef(false);
5271
5272
  react.useEffect(() => {
5272
- if (isStreaming) {
5273
- setDisplayedText(content);
5274
- return;
5273
+ setDisplayedText(content);
5274
+ if (wasStreamingRef.current && !isStreaming && !completionCalledRef.current) {
5275
+ completionCalledRef.current = true;
5276
+ onStreamComplete?.();
5275
5277
  }
5276
- if (!isStreaming && displayedText !== content) {
5277
- setDisplayedText(content);
5278
- if (onStreamComplete) {
5279
- onStreamComplete();
5280
- }
5278
+ if (isStreaming) {
5279
+ completionCalledRef.current = false;
5281
5280
  }
5282
- }, [content, isStreaming, onStreamComplete, displayedText]);
5281
+ wasStreamingRef.current = isStreaming;
5282
+ }, [content, isStreaming, onStreamComplete]);
5283
5283
  const showCursor = isStreaming && cursor;
5284
5284
  return /* @__PURE__ */ jsxRuntime.jsxs(Container12, { variant, className, children: [
5285
5285
  displayedText,
5286
5286
  showCursor && /* @__PURE__ */ jsxRuntime.jsx(Cursor, {})
5287
5287
  ] });
5288
5288
  };
5289
+ var StreamingText2 = react.memo(StreamingTextBase);
5289
5290
  StreamingText2.displayName = "StreamingText";
5290
5291
  var MessageContainer = styled11__default.default.div`
5291
5292
  display: flex;
@@ -5573,7 +5574,7 @@ var StreamingIndicator = styled11__default.default.span`
5573
5574
  }
5574
5575
  }
5575
5576
  `;
5576
- var AssistantMessage = ({
5577
+ var AssistantMessageBase = ({
5577
5578
  content = "",
5578
5579
  avatarUrl,
5579
5580
  avatarInitials: _avatarInitials = "AI",
@@ -5620,6 +5621,8 @@ var AssistantMessage = ({
5620
5621
  /* @__PURE__ */ jsxRuntime.jsx(ContentContainer, { children: renderContent() })
5621
5622
  ] });
5622
5623
  };
5624
+ var AssistantMessage = react.memo(AssistantMessageBase);
5625
+ AssistantMessage.displayName = "AssistantMessage";
5623
5626
  var MessagesContainer = styled11__default.default.div`
5624
5627
  display: flex;
5625
5628
  flex-direction: column;
@@ -7575,7 +7578,7 @@ var PostApprovalControls = ({
7575
7578
  setIsEditing(false);
7576
7579
  };
7577
7580
  return /* @__PURE__ */ jsxRuntime.jsxs(Container13, { "data-testid": "post-approval-controls", children: [
7578
- /* @__PURE__ */ jsxRuntime.jsxs(Header3, { onClick: () => !isEditing && setIsCollapsed(!isCollapsed), children: [
7581
+ /* @__PURE__ */ jsxRuntime.jsxs(Header2, { onClick: () => !isEditing && setIsCollapsed(!isCollapsed), children: [
7579
7582
  /* @__PURE__ */ jsxRuntime.jsx(StatusBadge, { $color: statusConfig.color, children: statusConfig.label }),
7580
7583
  /* @__PURE__ */ jsxRuntime.jsxs(MetaInfo, { children: [
7581
7584
  postId && /* @__PURE__ */ jsxRuntime.jsxs(PostId, { children: [
@@ -7644,7 +7647,7 @@ var Container13 = styled11__default.default.div`
7644
7647
  font-family: ${tokens.typography.fontFamily.primary};
7645
7648
  transition: border-color ${tokens.transitions.fast};
7646
7649
  `;
7647
- var Header3 = styled11__default.default.div`
7650
+ var Header2 = styled11__default.default.div`
7648
7651
  display: grid;
7649
7652
  grid-template-columns: auto 1fr auto;
7650
7653
  align-items: center;
@@ -7899,6 +7902,16 @@ var PostPreviewCard = ({
7899
7902
  );
7900
7903
  };
7901
7904
  PostPreviewCard.displayName = "PostPreviewCard";
7905
+ var fadeIn2 = styled11.keyframes`
7906
+ from {
7907
+ opacity: 0;
7908
+ transform: translateY(4px);
7909
+ }
7910
+ to {
7911
+ opacity: 1;
7912
+ transform: translateY(0);
7913
+ }
7914
+ `;
7902
7915
  var CardContainer = styled11__default.default.div`
7903
7916
  background: ${tokens.colors.background.dark};
7904
7917
  border-radius: ${tokens.borderRadius.lg};
@@ -7962,6 +7975,8 @@ var PostContent = styled11__default.default.div`
7962
7975
  word-break: break-word;
7963
7976
  margin-bottom: ${tokens.spacing.sm};
7964
7977
  letter-spacing: 0.01em;
7978
+ /* Smooth fade-in animation when content appears */
7979
+ animation: ${fadeIn2} 0.4s ease-out;
7965
7980
  `;
7966
7981
  var PostContentEditable = styled11__default.default.textarea`
7967
7982
  width: 100%;
@@ -8256,23 +8271,46 @@ var PlatformGrid = ({
8256
8271
  editingIndex,
8257
8272
  editContent,
8258
8273
  onEditContentChange,
8259
- isLoading = false
8274
+ isLoading = false,
8275
+ activeIndex = 0,
8276
+ onActiveChange
8260
8277
  }) => {
8261
8278
  if (posts.length === 0) {
8262
8279
  return /* @__PURE__ */ jsxRuntime.jsx(EmptyState2, { children: /* @__PURE__ */ jsxRuntime.jsx(EmptyStateText, { children: "No posts to display" }) });
8263
8280
  }
8281
+ const handlePostClick = (index) => {
8282
+ onActiveChange?.(index);
8283
+ };
8264
8284
  return /* @__PURE__ */ jsxRuntime.jsx(Grid, { "data-testid": "platform-grid", children: posts.map((post, index) => {
8265
8285
  const isEditing = editingIndex === index;
8266
- return /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(
8267
- PostPreviewCard,
8286
+ const isActive = activeIndex === index;
8287
+ return /* @__PURE__ */ jsxRuntime.jsx(
8288
+ GridCell,
8268
8289
  {
8269
- post,
8270
- isEditing,
8271
- editContent: isEditing ? editContent : void 0,
8272
- onContentChange: isEditing ? onEditContentChange : void 0,
8273
- isLoading
8274
- }
8275
- ) }, post.platform);
8290
+ $isActive: isActive,
8291
+ onClick: () => handlePostClick(index),
8292
+ role: "button",
8293
+ tabIndex: 0,
8294
+ onKeyDown: (e) => {
8295
+ if (e.key === "Enter" || e.key === " ") {
8296
+ e.preventDefault();
8297
+ handlePostClick(index);
8298
+ }
8299
+ },
8300
+ children: /* @__PURE__ */ jsxRuntime.jsx(
8301
+ PostPreviewCard,
8302
+ {
8303
+ post,
8304
+ isActive,
8305
+ isEditing,
8306
+ editContent: isEditing ? editContent : void 0,
8307
+ onContentChange: isEditing ? onEditContentChange : void 0,
8308
+ isLoading
8309
+ }
8310
+ )
8311
+ },
8312
+ post.platform
8313
+ );
8276
8314
  }) });
8277
8315
  };
8278
8316
  PlatformGrid.displayName = "PlatformGrid";
@@ -8296,6 +8334,13 @@ var Grid = styled11__default.default.div`
8296
8334
  `;
8297
8335
  var GridCell = styled11__default.default.div`
8298
8336
  min-width: 0; /* Prevent grid blowout with long content */
8337
+ cursor: pointer;
8338
+ border-radius: ${tokens.borderRadius.lg};
8339
+ transition: transform ${tokens.transitions.fast};
8340
+
8341
+ &:hover {
8342
+ transform: translateY(-2px);
8343
+ }
8299
8344
  `;
8300
8345
  var EmptyState2 = styled11__default.default.div`
8301
8346
  display: flex;
@@ -8316,7 +8361,7 @@ var Container14 = styled11__default.default.div`
8316
8361
  flex-direction: column;
8317
8362
  height: 100%;
8318
8363
  width: 100%;
8319
- padding: ${tokens.spacing.md};
8364
+ padding: ${tokens.spacing.md} ${tokens.spacing.md} 0 ${tokens.spacing.md};
8320
8365
  box-sizing: border-box;
8321
8366
  background: linear-gradient(
8322
8367
  180deg,
@@ -8325,7 +8370,7 @@ var Container14 = styled11__default.default.div`
8325
8370
  );
8326
8371
  overflow: auto;
8327
8372
  `;
8328
- var Header4 = styled11__default.default.div`
8373
+ var Header3 = styled11__default.default.div`
8329
8374
  display: flex;
8330
8375
  justify-content: space-between;
8331
8376
  align-items: center;
@@ -8414,7 +8459,8 @@ var SocialMediaCanvas = ({
8414
8459
  editingIndex,
8415
8460
  editContent,
8416
8461
  onEditContentChange,
8417
- isLoading = false
8462
+ isLoading = false,
8463
+ activeIndex = 0
8418
8464
  }) => {
8419
8465
  const [viewMode, setViewMode] = react.useState(initialViewMode);
8420
8466
  const handleActiveChange = (index) => {
@@ -8428,7 +8474,7 @@ var SocialMediaCanvas = ({
8428
8474
  ] }) });
8429
8475
  }
8430
8476
  return /* @__PURE__ */ jsxRuntime.jsxs(Container14, { children: [
8431
- /* @__PURE__ */ jsxRuntime.jsxs(Header4, { children: [
8477
+ /* @__PURE__ */ jsxRuntime.jsxs(Header3, { children: [
8432
8478
  /* @__PURE__ */ jsxRuntime.jsxs(Title, { children: [
8433
8479
  title,
8434
8480
  " ",
@@ -8476,7 +8522,9 @@ var SocialMediaCanvas = ({
8476
8522
  editingIndex,
8477
8523
  editContent,
8478
8524
  onEditContentChange,
8479
- isLoading
8525
+ isLoading,
8526
+ activeIndex,
8527
+ onActiveChange: handleActiveChange
8480
8528
  }
8481
8529
  ) })
8482
8530
  ] });
@@ -8539,7 +8587,7 @@ function TokenUsageCard({
8539
8587
  );
8540
8588
  const usageLevel = react.useMemo(() => getUsageLevel(percentage), [percentage]);
8541
8589
  return /* @__PURE__ */ jsxRuntime.jsxs(Card2, { className, "data-testid": "token-usage-card", children: [
8542
- /* @__PURE__ */ jsxRuntime.jsxs(Header5, { children: [
8590
+ /* @__PURE__ */ jsxRuntime.jsxs(Header4, { children: [
8543
8591
  /* @__PURE__ */ jsxRuntime.jsx(Title2, { children: "Token Usage" }),
8544
8592
  /* @__PURE__ */ jsxRuntime.jsx(Period, { children: periodLabel })
8545
8593
  ] }),
@@ -8582,10 +8630,10 @@ var Card2 = styled11__default.default.div`
8582
8630
  gap: ${tokens.spacing.md};
8583
8631
  padding: ${tokens.spacing.lg};
8584
8632
  background: ${tokens.colors.background.dark};
8585
- border-radius: ${tokens.borderRadius.lg};
8633
+ border-radius: ${tokens.borderRadius.xl};
8586
8634
  border: 1px solid ${tokens.colors.border.default};
8587
8635
  `;
8588
- var Header5 = styled11__default.default.div`
8636
+ var Header4 = styled11__default.default.div`
8589
8637
  display: flex;
8590
8638
  justify-content: space-between;
8591
8639
  align-items: center;
@@ -8805,7 +8853,7 @@ var Card3 = styled11__default.default.button`
8805
8853
  gap: ${tokens.spacing.sm};
8806
8854
  padding: ${tokens.spacing.md};
8807
8855
  background: ${tokens.colors.background.dark};
8808
- border-radius: ${tokens.borderRadius.lg};
8856
+ border-radius: ${tokens.borderRadius.xl};
8809
8857
  border: 1px solid ${tokens.colors.border.default};
8810
8858
  cursor: pointer;
8811
8859
  text-align: left;
@@ -8955,7 +9003,7 @@ var ModalContent = styled11__default.default.div`
8955
9003
  width: 100%;
8956
9004
  box-shadow: ${tokens.shadows.xl};
8957
9005
  `;
8958
- var Header6 = styled11__default.default.div`
9006
+ var Header5 = styled11__default.default.div`
8959
9007
  display: flex;
8960
9008
  align-items: flex-start;
8961
9009
  gap: ${tokens.spacing.md};
@@ -9180,7 +9228,7 @@ var WorkflowErrorAlert = ({
9180
9228
  return /* @__PURE__ */ jsxRuntime.jsx(InfoIcon, {});
9181
9229
  }
9182
9230
  };
9183
- const alertContent = /* @__PURE__ */ jsxRuntime.jsx(AlertContainer, { variant, severity, className, role: "alert", children: /* @__PURE__ */ jsxRuntime.jsxs(Header6, { children: [
9231
+ const alertContent = /* @__PURE__ */ jsxRuntime.jsx(AlertContainer, { variant, severity, className, role: "alert", children: /* @__PURE__ */ jsxRuntime.jsxs(Header5, { children: [
9184
9232
  /* @__PURE__ */ jsxRuntime.jsx(IconContainer2, { severity, "aria-hidden": "true", children: getIcon() }),
9185
9233
  /* @__PURE__ */ jsxRuntime.jsxs(Content5, { children: [
9186
9234
  /* @__PURE__ */ jsxRuntime.jsx(Title3, { children: displayTitle }),
@@ -9489,7 +9537,7 @@ var Panel = styled11__default.default.div`
9489
9537
  overflow: hidden;
9490
9538
  font-family: ${tokens.typography.fontFamily.primary};
9491
9539
  `;
9492
- var Header7 = styled11__default.default.div`
9540
+ var Header6 = styled11__default.default.div`
9493
9541
  display: flex;
9494
9542
  justify-content: space-between;
9495
9543
  align-items: center;
@@ -9682,7 +9730,7 @@ var WorkflowResultPanel = ({
9682
9730
  }
9683
9731
  };
9684
9732
  return /* @__PURE__ */ jsxRuntime.jsxs(Panel, { collapsible, expanded, className, children: [
9685
- /* @__PURE__ */ jsxRuntime.jsxs(Header7, { collapsible, onClick: handleToggle, children: [
9733
+ /* @__PURE__ */ jsxRuntime.jsxs(Header6, { collapsible, onClick: handleToggle, children: [
9686
9734
  /* @__PURE__ */ jsxRuntime.jsxs(Title4, { children: [
9687
9735
  title,
9688
9736
  collapsible && /* @__PURE__ */ jsxRuntime.jsx(CollapseIcon2, { expanded, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronIcon4, {}) })
@@ -9927,7 +9975,7 @@ exports.FileAttachment = FileAttachment;
9927
9975
  exports.Footer = Footer;
9928
9976
  exports.GlobalStyle = GlobalStyle;
9929
9977
  exports.GmailIcon = GmailIcon;
9930
- exports.Header = Header2;
9978
+ exports.Header = Header;
9931
9979
  exports.Icon = Icon;
9932
9980
  exports.IconNames = IconNames;
9933
9981
  exports.Input = Input2;