@agentiffai/design 1.2.1 → 1.3.3

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 (45) hide show
  1. package/dist/copilotkit/index.cjs +8 -8
  2. package/dist/copilotkit/index.cjs.map +1 -1
  3. package/dist/copilotkit/index.js +8 -8
  4. package/dist/copilotkit/index.js.map +1 -1
  5. package/dist/icons/index.cjs.map +1 -1
  6. package/dist/icons/index.js.map +1 -1
  7. package/dist/index.cjs +167 -66
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +167 -66
  10. package/dist/index.js.map +1 -1
  11. package/dist/layout/index.cjs +123 -47
  12. package/dist/layout/index.cjs.map +1 -1
  13. package/dist/layout/index.d.cts +14 -9
  14. package/dist/layout/index.d.ts +14 -9
  15. package/dist/layout/index.js +123 -47
  16. package/dist/layout/index.js.map +1 -1
  17. package/dist/theme/index.cjs +12 -11
  18. package/dist/theme/index.cjs.map +1 -1
  19. package/dist/theme/index.d.cts +12 -9
  20. package/dist/theme/index.d.ts +12 -9
  21. package/dist/theme/index.js +12 -11
  22. package/dist/theme/index.js.map +1 -1
  23. package/dist/workflow/index.cjs +21 -6
  24. package/dist/workflow/index.cjs.map +1 -1
  25. package/dist/workflow/index.js +21 -6
  26. package/dist/workflow/index.js.map +1 -1
  27. package/package.json +1 -1
  28. package/public/assets/icon-set/Icon-arrow-up-fill.svg +1 -0
  29. package/public/assets/icon-set/Icon-box-3-fill.svg +1 -0
  30. package/public/assets/icon-set/Icon-briefcase-fill.svg +1 -0
  31. package/public/assets/icon-set/Icon-clipboard-fill.svg +1 -0
  32. package/public/assets/icon-set/Icon-edit-fill.svg +1 -0
  33. package/public/assets/icon-set/Icon-emotion-happy-fill.svg +1 -0
  34. package/public/assets/icon-set/Icon-external-link-fill.svg +1 -0
  35. package/public/assets/icon-set/Icon-flow-chart.svg +1 -0
  36. package/public/assets/icon-set/Icon-git-branch-fill.svg +1 -0
  37. package/public/assets/icon-set/Icon-lightbulb-fill.svg +1 -0
  38. package/public/assets/icon-set/Icon-logout-circle-r-fill.svg +1 -0
  39. package/public/assets/icon-set/Icon-logout-circle-r-line.svg +1 -0
  40. package/public/assets/icon-set/Icon-map-pin-fill.svg +1 -0
  41. package/public/assets/icon-set/Icon-refresh-fill.svg +1 -0
  42. package/public/assets/icon-set/Icon-settings-3-line.svg +1 -0
  43. package/public/assets/icon-set/Icon-side-bar-fill.svg +1 -0
  44. package/public/assets/icon-set/Icon-skip-forward-fill.svg +1 -0
  45. package/public/assets/icon-set/Icon-time-fill.svg +1 -0
@@ -84,12 +84,12 @@ var tokens = {
84
84
  fontFamily: {
85
85
  primary: "'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', sans-serif"},
86
86
  fontSize: {
87
- xs: "0.75rem",
88
- // 12px
89
- sm: "0.875rem",
90
- // 14px
91
- base: "1rem",
92
- // 18px
87
+ xs: "0.875rem",
88
+ // 14px (was 12px, increased for better readability)
89
+ sm: "1rem",
90
+ // 16px (was 14px, increased for better readability)
91
+ base: "1.125rem",
92
+ // 18px (heading size, unchanged)
93
93
  xl: "1.25rem"},
94
94
  fontWeight: {
95
95
  regular: 400,
@@ -437,32 +437,36 @@ var IconNames = {
437
437
  MIC_OFF: "mic-off-fill",
438
438
  HEADPHONE: "headphone-fill",
439
439
  VOLUME_MUTE: "volume-mute-fill",
440
- SETTINGS: "settings-3-fill",
441
- SETTINGS_FILL: "settings-fill",
442
- SETTINGS_LINE: "settings-line",
440
+ SETTINGS_3_LINE: "settings-3-line",
443
441
  HOME: "home-fill",
444
442
  ADD_CIRCLE: "add-circle-fill",
445
443
  COMPASS_DISCOVER: "compass-discover-fill",
446
444
  DOWNLOAD: "download-2-fill",
447
445
  ARROW_LEFT: "arrow-left-fill",
448
446
  CALENDAR: "calendar-fill",
449
- CHAT: "chat-1-fill"
447
+ CHAT: "chat-1-fill",
448
+ FLOW_CHART: "flow-chart",
449
+ LOGOUT_CIRCLE_R_FILL: "logout-circle-r-fill",
450
+ LOGOUT_CIRCLE_R_LINE: "logout-circle-r-line",
451
+ SIDE_BAR_FILL: "side-bar-fill"
450
452
  };
451
453
  var iconFiles = {
452
454
  "mic-fill": "Icon-mic-fill.svg",
453
455
  "mic-off-fill": "Icon-mic-off-fill.svg",
454
456
  "headphone-fill": "Icon-headphone-fill.svg",
455
457
  "volume-mute-fill": "Icon-volume-mute-fill.svg",
456
- "settings-3-fill": "Icon-settings-3-fill.svg",
457
- "settings-fill": "Icon-settings-fill.svg",
458
- "settings-line": "Icon-settings-line.svg",
458
+ "settings-3-line": "Icon-settings-3-line.svg",
459
459
  "home-fill": "Icon-home-fill.svg",
460
460
  "add-circle-fill": "Icon-add-circle-fill.svg",
461
461
  "compass-discover-fill": "Icon-compass-discover-fill.svg",
462
462
  "download-2-fill": "Icon-download-2-fill.svg",
463
463
  "arrow-left-fill": "Icon-arrow-left-fill.svg",
464
464
  "calendar-fill": "Icon-calendar-fill.svg",
465
- "chat-1-fill": "Icon-chat-1-fill.svg"
465
+ "chat-1-fill": "Icon-chat-1-fill.svg",
466
+ "flow-chart": "Icon-flow-chart.svg",
467
+ "logout-circle-r-fill": "Icon-logout-circle-r-fill.svg",
468
+ "logout-circle-r-line": "Icon-logout-circle-r-line.svg",
469
+ "side-bar-fill": "Icon-side-bar-fill.svg"
466
470
  };
467
471
  function getIconPath(name) {
468
472
  return `${ICON_BASE_PATH}/${iconFiles[name]}`;
@@ -485,6 +489,8 @@ var Container = styled9__default.default.nav`
485
489
  right: 0;
486
490
  background-color: ${tokens.colors.background.darker};
487
491
  border-top: 1px solid ${tokens.colors.border.subtle};
492
+ /* Add vertical padding to prevent content overlap */
493
+ padding-top: 4px;
488
494
  /* Use safe-area-inset-bottom for Android navigation buttons.
489
495
  The env() value will be 0 on devices without soft nav buttons.
490
496
  Fallback to 0 if env() is not supported. */
@@ -514,7 +520,7 @@ var UserStatusSlot = styled9__default.default.div`
514
520
  display: flex;
515
521
  align-items: center;
516
522
  min-width: 0; /* Allow flex item to shrink */
517
- flex: 0 1 auto;
523
+ flex: 1 1 auto; /* Allow slot to grow and take available space */
518
524
 
519
525
  /* Handle overflow for long usernames */
520
526
  > * {
@@ -642,6 +648,7 @@ var FolderGroupsSlot = styled9__default.default.div`
642
648
  gap: ${tokens.spacing.sm};
643
649
  padding: 0 ${tokens.spacing.md} ${tokens.spacing.md};
644
650
  flex: 1;
651
+ padding-bottom: 120px; /* Prevent overlap with bottom section (2 buttons @ 40px + 1 gap @ 8px + padding @ 32px) */
645
652
 
646
653
  /* Server/workspace icons styling */
647
654
  > * {
@@ -658,18 +665,68 @@ var FolderGroupsSlot = styled9__default.default.div`
658
665
 
659
666
  /* Responsive adjustments */
660
667
  @media (max-width: ${tokens.breakpoints.tablet}px) {
661
- padding: 0 6px ${tokens.spacing.md}; /* Reduce horizontal padding on mobile */
668
+ padding: 0 6px ${tokens.spacing.md} 96px; /* Reduce horizontal padding on mobile */
669
+ }
670
+ `;
671
+ var BottomSection = styled9__default.default.div`
672
+ position: absolute;
673
+ bottom: 0; /* At the bottom of the nav container */
674
+ left: 0;
675
+ right: 0;
676
+ display: flex;
677
+ flex-direction: column;
678
+ align-items: center;
679
+ gap: ${tokens.spacing.sm};
680
+ padding: ${tokens.spacing.md} 0;
681
+ background-color: ${tokens.colors.background.darker};
682
+
683
+ @media (prefers-color-scheme: dark) {
684
+ background-color: ${tokens.colors.background.darkest};
685
+ }
686
+ `;
687
+ var BottomButton = styled9__default.default.button`
688
+ width: 40px;
689
+ height: 40px;
690
+ border-radius: 0;
691
+ border: none;
692
+ background-color: transparent;
693
+ color: white;
694
+ cursor: pointer;
695
+ display: flex;
696
+ align-items: center;
697
+ justify-content: center;
698
+ transition: all ${tokens.transitions.normal};
699
+
700
+ &:hover {
701
+ opacity: 0.7;
702
+ }
703
+
704
+ &:active {
705
+ transform: scale(0.95);
706
+ }
707
+
708
+ &:focus {
709
+ outline: none;
710
+ }
711
+
712
+ &:focus-visible {
713
+ outline: 2px solid ${tokens.colors.border.focus};
714
+ outline-offset: 2px;
662
715
  }
663
716
  `;
664
717
  function NavVertical({
665
718
  onBackClick,
666
719
  onHomeClick,
720
+ onSettingsClick,
721
+ onLogoutClick,
667
722
  folderGroupsSlot,
668
723
  className,
669
724
  "aria-label": ariaLabel = "Vertical navigation sidebar"
670
725
  }) {
671
726
  const backButtonRef = react.useRef(null);
672
727
  const homeButtonRef = react.useRef(null);
728
+ const settingsButtonRef = react.useRef(null);
729
+ const logoutButtonRef = react.useRef(null);
673
730
  const { buttonProps: backButtonProps } = button.useButton(
674
731
  {
675
732
  onPress: onBackClick,
@@ -684,10 +741,28 @@ function NavVertical({
684
741
  },
685
742
  homeButtonRef
686
743
  );
744
+ const { buttonProps: settingsButtonProps } = button.useButton(
745
+ {
746
+ onPress: onSettingsClick,
747
+ "aria-label": "Settings"
748
+ },
749
+ settingsButtonRef
750
+ );
751
+ const { buttonProps: logoutButtonProps } = button.useButton(
752
+ {
753
+ onPress: onLogoutClick,
754
+ "aria-label": "Logout"
755
+ },
756
+ logoutButtonRef
757
+ );
687
758
  return /* @__PURE__ */ jsxRuntime.jsxs(Container2, { className, role: "navigation", "aria-label": ariaLabel, children: [
688
- /* @__PURE__ */ jsxRuntime.jsx(TopSection, { children: onBackClick ? /* @__PURE__ */ jsxRuntime.jsx(BackButton, { ...backButtonProps, ref: backButtonRef, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "arrow-left-fill", size: 20, color: "white" }) }) : onHomeClick ? /* @__PURE__ */ jsxRuntime.jsx(BackButton, { ...homeButtonProps, ref: homeButtonRef, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "home-fill", size: 24, color: "white" }) }) : null }),
759
+ /* @__PURE__ */ jsxRuntime.jsx(TopSection, { children: onBackClick ? /* @__PURE__ */ jsxRuntime.jsx(BackButton, { ...backButtonProps, ref: backButtonRef, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "side-bar-fill", size: 20, color: "white" }) }) : onHomeClick ? /* @__PURE__ */ jsxRuntime.jsx(BackButton, { ...homeButtonProps, ref: homeButtonRef, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "side-bar-fill", size: 24, color: "white" }) }) : null }),
689
760
  /* @__PURE__ */ jsxRuntime.jsx(Separator, {}),
690
- /* @__PURE__ */ jsxRuntime.jsx(FolderGroupsSlot, { children: folderGroupsSlot })
761
+ /* @__PURE__ */ jsxRuntime.jsx(FolderGroupsSlot, { children: folderGroupsSlot }),
762
+ (onSettingsClick || onLogoutClick) && /* @__PURE__ */ jsxRuntime.jsxs(BottomSection, { children: [
763
+ onSettingsClick && /* @__PURE__ */ jsxRuntime.jsx(BottomButton, { ...settingsButtonProps, ref: settingsButtonRef, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "settings-3-line", size: 24, color: "white" }) }),
764
+ onLogoutClick && /* @__PURE__ */ jsxRuntime.jsx(BottomButton, { ...logoutButtonProps, ref: logoutButtonRef, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "logout-circle-r-line", size: 24, color: "white" }) })
765
+ ] })
691
766
  ] });
692
767
  }
693
768
  NavVertical.displayName = "NavVertical";
@@ -787,10 +862,22 @@ function Layout({
787
862
  navHorizontalUserSlot,
788
863
  navHorizontalActionsSlot,
789
864
  onNavBackClick,
865
+ onNavHomeClick,
866
+ onNavSettingsClick,
867
+ onNavLogoutClick,
790
868
  className
791
869
  }) {
792
870
  return /* @__PURE__ */ jsxRuntime.jsxs(Container3, { className, children: [
793
- /* @__PURE__ */ jsxRuntime.jsx(NavVertical, { folderGroupsSlot: navVerticalSlot, onBackClick: onNavBackClick }),
871
+ /* @__PURE__ */ jsxRuntime.jsx(
872
+ NavVertical,
873
+ {
874
+ folderGroupsSlot: navVerticalSlot,
875
+ onBackClick: onNavBackClick,
876
+ onHomeClick: onNavHomeClick,
877
+ onSettingsClick: onNavSettingsClick,
878
+ onLogoutClick: onNavLogoutClick
879
+ }
880
+ ),
794
881
  backgroundSlot && /* @__PURE__ */ jsxRuntime.jsx(BackgroundPane, { children: backgroundSlot }),
795
882
  /* @__PURE__ */ jsxRuntime.jsx(MainPane, { children: mainPaneSlot }),
796
883
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -877,10 +964,8 @@ function ActionButtonItem({ icon, label, onClick, isActive, size, isPrimary }) {
877
964
  }
878
965
  function ActionButtons({
879
966
  onCalendarClick,
880
- onSettingsClick,
881
967
  onChatClick,
882
968
  isCalendarActive = false,
883
- isSettingsActive = false,
884
969
  isChatActive = false,
885
970
  className
886
971
  }) {
@@ -895,16 +980,6 @@ function ActionButtons({
895
980
  size: 32
896
981
  }
897
982
  ),
898
- /* @__PURE__ */ jsxRuntime.jsx(
899
- ActionButtonItem,
900
- {
901
- icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "settings-3-fill", size: 16, color: tokens.colors.text.secondary }),
902
- label: "Settings",
903
- onClick: onSettingsClick,
904
- isActive: isSettingsActive,
905
- size: 32
906
- }
907
- ),
908
983
  /* @__PURE__ */ jsxRuntime.jsx(
909
984
  ActionButtonItem,
910
985
  {
@@ -928,30 +1003,31 @@ var Container5 = styled9__default.default.button`
928
1003
  display: grid;
929
1004
  grid-template-columns: auto 1fr;
930
1005
  align-items: center;
931
- gap: ${tokens.spacing.sm};
932
- padding: ${tokens.spacing.sm};
1006
+ gap: ${tokens.spacing.xs};
1007
+ padding: 6px;
1008
+ margin: ${tokens.spacing.sm};
933
1009
  border-radius: ${tokens.borderRadius.md};
934
1010
  border: none;
935
1011
  background: ${tokens.colors.surface.subtle};
936
1012
  color: inherit;
937
1013
  font-family: ${tokens.typography.fontFamily.primary};
938
1014
  transition: background-color ${tokens.transitions.fast}, opacity ${tokens.transitions.fast};
939
- cursor: ${(props) => props.$isDisabled ? "not-allowed" : "pointer"};
940
- opacity: ${(props) => props.$isDisabled ? 0.5 : 1};
1015
+ cursor: ${(props) => props.$isDisabled ? "default" : "pointer"};
1016
+ opacity: ${(props) => props.$isDisabled ? 0.7 : 1};
941
1017
  text-align: left;
942
- width: 100%;
1018
+ width: calc(100% - ${tokens.spacing.lg});
943
1019
 
944
1020
  &:hover:not(:disabled) {
945
- background-color: ${tokens.colors.surface.overlay};
1021
+ background-color: ${(props) => props.$isDisabled ? tokens.colors.surface.subtle : tokens.colors.surface.overlay};
946
1022
  }
947
1023
 
948
1024
  &:focus-visible {
949
- outline: 2px solid ${tokens.colors.border.focus};
1025
+ outline: ${(props) => props.$isDisabled ? "none" : `2px solid ${tokens.colors.border.focus}`};
950
1026
  outline-offset: 2px;
951
1027
  }
952
1028
 
953
1029
  &:active:not(:disabled) {
954
- background-color: ${tokens.colors.surface.overlayActive};
1030
+ background-color: ${(props) => props.$isDisabled ? tokens.colors.surface.subtle : tokens.colors.surface.overlayActive};
955
1031
  }
956
1032
  `;
957
1033
  var IconWrapper2 = styled9__default.default.div`
@@ -1545,7 +1621,7 @@ styled9__default.default.button`
1545
1621
 
1546
1622
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1547
1623
  padding: ${tokens.spacing.sm} ${tokens.spacing.md};
1548
- font-size: 13px;
1624
+ font-size: ${tokens.typography.fontSize.sm};
1549
1625
  gap: ${tokens.spacing.sm};
1550
1626
  }
1551
1627
 
@@ -1806,7 +1882,7 @@ var ItemName = styled9__default.default.span`
1806
1882
  min-width: 0;
1807
1883
 
1808
1884
  @media (max-width: ${tokens.breakpoints.mobile}px) {
1809
- font-size: 13px;
1885
+ font-size: ${tokens.typography.fontSize.sm};
1810
1886
  }
1811
1887
 
1812
1888
  ${ItemContainer}:hover & {
@@ -1898,7 +1974,7 @@ styled9__default.default.div`
1898
1974
  padding-top: 0;
1899
1975
  background-color: ${tokens.colors.overlay};
1900
1976
  color: ${tokens.colors.text.secondary};
1901
- font-size: 13px;
1977
+ font-size: ${tokens.typography.fontSize.sm};
1902
1978
  line-height: ${tokens.typography.lineHeight.relaxed};
1903
1979
  animation: slideDown ${tokens.transitions.normal};
1904
1980
 
@@ -1985,7 +2061,7 @@ var ConnectionDescription = styled9__default.default.p`
1985
2061
  var GoogleButton = styled9__default.default.button`
1986
2062
  width: 100%;
1987
2063
  padding: ${tokens.spacing.md} ${tokens.spacing.lg};
1988
- font-size: 15px;
2064
+ font-size: ${tokens.typography.fontSize.sm};
1989
2065
  font-weight: ${tokens.typography.fontWeight.semibold};
1990
2066
  color: ${(props) => props.$isConnected ? tokens.colors.text.primary : tokens.colors.text.primary};
1991
2067
  background: ${(props) => props.$isConnected ? tokens.colors.background.light : `linear-gradient(135deg, ${tokens.colors.platform.facebook}, ${tokens.colors.platform.whatsapp})`};
@@ -2121,8 +2197,8 @@ function WorkflowGroupItem({
2121
2197
  return /* @__PURE__ */ jsxRuntime.jsxs(CategoryDisclosure, { id: groupId, children: [
2122
2198
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { level: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(CategoryHeader, { slot: "trigger", style: { paddingLeft: "8px" }, children: [
2123
2199
  /* @__PURE__ */ jsxRuntime.jsxs(CategoryTitle, { children: [
2124
- /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "13px", fontWeight: 500 }, children: group.workflowName }),
2125
- /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "11px", color: tokens.colors.text.tertiary, marginLeft: "8px" }, children: [
2200
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: tokens.typography.fontSize.base, fontWeight: 500 }, children: group.workflowName }),
2201
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: tokens.typography.fontSize.sm, color: tokens.colors.text.tertiary, marginLeft: "8px" }, children: [
2126
2202
  "(",
2127
2203
  group.runs.length,
2128
2204
  ")"
@@ -2599,7 +2675,7 @@ function PaneSectionHeader({
2599
2675
  brand = "Google",
2600
2676
  onBackClick,
2601
2677
  onSettingsClick,
2602
- settingsIcon = "settings-fill",
2678
+ settingsIcon = "flow-chart",
2603
2679
  className,
2604
2680
  "aria-label": ariaLabel = "Pane section header"
2605
2681
  }) {
@@ -2617,7 +2693,7 @@ function PaneSectionHeader({
2617
2693
  const { buttonProps: settingsButtonProps } = button.useButton(
2618
2694
  {
2619
2695
  onPress: onSettingsClick,
2620
- "aria-label": "Settings"
2696
+ "aria-label": "Workflow configuration"
2621
2697
  },
2622
2698
  settingsButtonRef
2623
2699
  );