aidos-ui 5.0.4 → 5.0.6

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.js CHANGED
@@ -1,4 +1,4 @@
1
- import React34, { useState, useId, useContext, useMemo, cloneElement, useRef, useEffect, useCallback, useSyncExternalStore, createContext, startTransition } from 'react';
1
+ import React35, { useState, Children, useId, useContext, useMemo, cloneElement, useRef, useEffect, useCallback, useSyncExternalStore, createContext, startTransition } from 'react';
2
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
3
  import { Icon as Icon$1 } from '@iconify/react';
4
4
 
@@ -231,6 +231,11 @@ function getMaterial(material) {
231
231
  };
232
232
  }
233
233
  }
234
+ function getSurface(surface) {
235
+ return {
236
+ backgroundColor: surface === "primary" ? cssVar("--primary-background") : surface === "secondary" ? cssVar("--secondary-background") : cssVar("--overlay-background")
237
+ };
238
+ }
234
239
  var sizes = {
235
240
  xsmall: cssVar("--spacing-xs"),
236
241
  small: cssVar("--spacing-s"),
@@ -296,7 +301,7 @@ var lightTheme = {
296
301
  ["--material-mist"]: "radial-gradient(120% 100% at 50% 0%, rgba(255, 255, 255, 0.55), transparent 65%), linear-gradient(145deg, rgba(247, 248, 250, 0.82), rgba(235, 237, 241, 0.78))",
297
302
  ["--material-twilight"]: "radial-gradient(115% 95% at 0% 10%, rgba(103, 91, 214, 0.1), transparent 60%), radial-gradient(110% 90% at 100% 100%, rgba(196, 105, 151, 0.07), transparent 62%), linear-gradient(145deg, rgba(243, 242, 249, 0.97), rgba(229, 231, 241, 0.93))",
298
303
  /* Effects */
299
- ["--warning"]: "rgb(255, 204, 0)",
304
+ ["--warning"]: "rgb(166, 107, 0)",
300
305
  ["--highlight"]: "rgb(0, 122, 255)",
301
306
  ["--outline"]: "rgb(103, 176, 255)",
302
307
  ["--light-highlight"]: "rgb(220, 232, 245)",
@@ -525,9 +530,9 @@ var getBackground = (color) => {
525
530
  var MOBILE = 750;
526
531
  var TABLET = 1e3;
527
532
  var LAPTOP = 1200;
528
- var MOBILE_MEDIA = `@media (min-width: 0px) and (max-width: ${MOBILE}px)`;
529
- var TABLET_MEDIA = `@media (min-width: ${MOBILE}px) and (max-width: ${TABLET}px)`;
530
- var LAPTOP_MEDIA = `@media (min-width: ${TABLET}px) and (max-width: ${LAPTOP}px)`;
533
+ var MOBILE_MEDIA = `@media (min-width: 0px) and (max-width: ${MOBILE - 1}px)`;
534
+ var TABLET_MEDIA = `@media (min-width: ${MOBILE}px) and (max-width: ${TABLET - 1}px)`;
535
+ var LAPTOP_MEDIA = `@media (min-width: ${TABLET}px) and (max-width: ${LAPTOP - 1}px)`;
531
536
  var DESKTOP_MEDIA = `@media (min-width: ${LAPTOP}px)`;
532
537
  function mobile(jss) {
533
538
  return {
@@ -559,6 +564,9 @@ var textColorStyles = {
559
564
  highlight: {
560
565
  color: cssVar("--highlight-text")
561
566
  },
567
+ warning: {
568
+ color: cssVar("--warning")
569
+ },
562
570
  negative: {
563
571
  color: cssVar("--negative-text")
564
572
  },
@@ -604,9 +612,9 @@ var styles = {
604
612
  flexShrink: 1
605
613
  }
606
614
  };
607
- var BaseView = React34.forwardRef(function BaseView2({ jss, children, tag, grow, shrink, relative, ...otherProps }, ref) {
615
+ var BaseView = React35.forwardRef(function BaseView2({ jss, children, tag, grow, shrink, relative, ...otherProps }, ref) {
608
616
  const Tag = tag ?? "div";
609
- return React34.createElement(
617
+ return React35.createElement(
610
618
  Tag,
611
619
  {
612
620
  ...otherProps,
@@ -660,12 +668,7 @@ var styles2 = {
660
668
  width: 64
661
669
  }
662
670
  };
663
- function Icon({
664
- icon,
665
- size,
666
- color,
667
- ariaLabel
668
- }) {
671
+ function Icon({ icon, size, color, ariaLabel, jss }) {
669
672
  return /* @__PURE__ */ jsx(
670
673
  BaseView,
671
674
  {
@@ -679,7 +682,8 @@ function Icon({
679
682
  size === "xlarge" && styles2.xlarge,
680
683
  size === "xxlarge" && styles2.xxlarge,
681
684
  size === "xxxlarge" && styles2.xxxlarge,
682
- getTextColor(color)
685
+ getTextColor(color),
686
+ jss
683
687
  ],
684
688
  children: /* @__PURE__ */ jsx(Icon$1, { icon: `lucide:${icon}`, width: "100%", height: "100%" })
685
689
  }
@@ -788,13 +792,24 @@ function getInitial(name) {
788
792
  const character = meaningfulCharacter ?? Array.from(normalized)[0];
789
793
  return Array.from(character.toLocaleUpperCase())[0] ?? null;
790
794
  }
795
+ var avatarPalettes = [
796
+ ["#eed1cf", "#baa1cf"],
797
+ ["#efd5bd", "#9ebbd2"],
798
+ ["#e6d9b9", "#c4a0b6"],
799
+ ["#ceddc5", "#a7abd1"],
800
+ ["#c6ded8", "#d6aaa9"],
801
+ ["#c9dbea", "#d8ae8c"],
802
+ ["#d0d2ea", "#a8c09d"],
803
+ ["#ddcde9", "#c8b887"],
804
+ ["#e6ccdc", "#97bdb4"]
805
+ ];
806
+ var avatarTextColor = "rgb(42, 45, 52)";
791
807
  function getGradient(name) {
792
808
  const seed = hash(normalizeName(name).toLocaleLowerCase());
793
- const firstHue = seed % 360;
794
- const secondHue = (firstHue + 35 + seed % 55) % 360;
795
- return `radial-gradient(circle at 24% 18%, hsl(${secondHue} 68% 58%), transparent 54%), linear-gradient(145deg, hsl(${firstHue} 62% 48%), hsl(${secondHue} 58% 38%))`;
809
+ const palette = avatarPalettes[seed % avatarPalettes.length];
810
+ return `radial-gradient(circle at 24% 20%, ${palette[0]} 0%, transparent 68%), radial-gradient(circle at 82% 80%, ${palette[1]} 0%, transparent 72%), linear-gradient(145deg, #e5e1e6, #c9c5ce)`;
796
811
  }
797
- var Avatar = React34.forwardRef(function Avatar2({ name, src, size = "medium", badge, jss }, ref) {
812
+ var Avatar = React35.forwardRef(function Avatar2({ name, src, size = "medium", badge, jss }, ref) {
798
813
  const [failedSrc, setFailedSrc] = useState();
799
814
  const dimension = dimensions[size];
800
815
  const initial = getInitial(name);
@@ -832,18 +847,26 @@ var Avatar = React34.forwardRef(function Avatar2({ name, src, size = "medium", b
832
847
  overflow: "hidden",
833
848
  borderRadius: "50%",
834
849
  background: getGradient(name),
835
- color: cssVar("--light-text"),
850
+ color: avatarTextColor,
836
851
  userSelect: "none"
837
852
  },
838
853
  children: [
839
- initial == null ? /* @__PURE__ */ jsx(Icon, { icon: "user", size: textSizes[size], color: "light" }) : /* @__PURE__ */ jsx(
854
+ initial == null ? /* @__PURE__ */ jsx(
855
+ Icon,
856
+ {
857
+ icon: "user",
858
+ size: textSizes[size],
859
+ color: "light",
860
+ jss: { color: avatarTextColor }
861
+ }
862
+ ) : /* @__PURE__ */ jsx(
840
863
  Span,
841
864
  {
842
865
  size: textSizes[size],
843
866
  color: "light",
844
867
  bold: true,
845
868
  "aria-hidden": "true",
846
- jss: { lineHeight: 1, textShadow: "0 1px 2px rgba(0, 0, 0, 0.2)" },
869
+ jss: { color: avatarTextColor, lineHeight: 1 },
847
870
  children: initial
848
871
  }
849
872
  ),
@@ -879,12 +902,13 @@ var Avatar = React34.forwardRef(function Avatar2({ name, src, size = "medium", b
879
902
  "aria-hidden": "true",
880
903
  jss: {
881
904
  position: "absolute",
882
- right: 0,
883
- bottom: 0,
905
+ right: "14.65%",
906
+ bottom: "14.65%",
884
907
  display: "flex",
885
908
  borderRadius: "50%",
886
909
  boxShadow: `0 0 0 2px ${cssVar("--overlay-background")}`,
887
- pointerEvents: "none"
910
+ pointerEvents: "none",
911
+ transform: "translate(50%, 50%)"
888
912
  },
889
913
  children: badge
890
914
  }
@@ -894,6 +918,84 @@ var Avatar = React34.forwardRef(function Avatar2({ name, src, size = "medium", b
894
918
  );
895
919
  });
896
920
  Avatar.displayName = "Avatar";
921
+ var FlexLayout = React35.forwardRef(function FlexLayout2({
922
+ jss,
923
+ gap = "none",
924
+ justify = "none",
925
+ align = "none",
926
+ padding = "none",
927
+ direction = "column",
928
+ surface,
929
+ basis,
930
+ ...otherProps
931
+ }, ref) {
932
+ return /* @__PURE__ */ jsx(
933
+ BaseView,
934
+ {
935
+ ref,
936
+ jss: [
937
+ {
938
+ display: "flex",
939
+ flexDirection: direction,
940
+ gap: getSpacing(gap),
941
+ justifyContent: justify,
942
+ alignItems: align,
943
+ minWidth: 0,
944
+ ...basis != null ? { flexBasis: typeof basis === "number" ? `${basis}px` : basis } : {}
945
+ },
946
+ getPadding(padding),
947
+ surface && getSurface(surface),
948
+ jss
949
+ ],
950
+ ...otherProps
951
+ }
952
+ );
953
+ });
954
+ var Row = React35.forwardRef(function Row2({ wrap = false, jss, ...otherProps }, ref) {
955
+ return /* @__PURE__ */ jsx(
956
+ FlexLayout,
957
+ {
958
+ ref,
959
+ direction: "row",
960
+ jss: [wrap && { flexWrap: "wrap" }, jss],
961
+ ...otherProps
962
+ }
963
+ );
964
+ });
965
+ var AvatarStack = React35.forwardRef(function AvatarStack2({ children, overlap = 8, jss, ...otherProps }, ref) {
966
+ const items = Children.toArray(children);
967
+ return /* @__PURE__ */ jsx(
968
+ Row,
969
+ {
970
+ ...otherProps,
971
+ ref,
972
+ align: "center",
973
+ gap: "none",
974
+ jss: [
975
+ {
976
+ isolation: "isolate",
977
+ width: "fit-content"
978
+ },
979
+ jss
980
+ ],
981
+ children: items.map((child, index) => /* @__PURE__ */ jsx(
982
+ BaseView,
983
+ {
984
+ tag: "span",
985
+ jss: {
986
+ position: "relative",
987
+ zIndex: items.length - index,
988
+ display: "inline-flex",
989
+ marginLeft: index === 0 ? 0 : -overlap
990
+ },
991
+ children: child
992
+ },
993
+ index
994
+ ))
995
+ }
996
+ );
997
+ });
998
+ AvatarStack.displayName = "AvatarStack";
897
999
  var sizes2 = {
898
1000
  xsmall: 4,
899
1001
  small: 6,
@@ -1090,7 +1192,7 @@ var getInteractableListItemJSS = ({
1090
1192
  }
1091
1193
  ];
1092
1194
  };
1093
- var BaseButton = React34.forwardRef(function BaseButton2({
1195
+ var BaseButton = React35.forwardRef(function BaseButton2({
1094
1196
  onClick,
1095
1197
  children,
1096
1198
  jss,
@@ -1131,7 +1233,7 @@ var BaseButton = React34.forwardRef(function BaseButton2({
1131
1233
  }
1132
1234
  );
1133
1235
  });
1134
- var BaseInput = React34.forwardRef(function BaseInput2({
1236
+ var BaseInput = React35.forwardRef(function BaseInput2({
1135
1237
  jss,
1136
1238
  label,
1137
1239
  labelPosition = "end",
@@ -1164,8 +1266,8 @@ var BaseInput = React34.forwardRef(function BaseInput2({
1164
1266
  label && labelPosition === "end" && labelElement
1165
1267
  ] });
1166
1268
  });
1167
- var BaseLinkComponentOverrideContext = React34.createContext((props) => /* @__PURE__ */ jsx("a", { ...props }));
1168
- var BaseLink = React34.forwardRef(function BaseLink2({
1269
+ var BaseLinkComponentOverrideContext = React35.createContext((props) => /* @__PURE__ */ jsx("a", { ...props }));
1270
+ var BaseLink = React35.forwardRef(function BaseLink2({
1169
1271
  onClick,
1170
1272
  children,
1171
1273
  jss,
@@ -1210,51 +1312,39 @@ var BaseLink = React34.forwardRef(function BaseLink2({
1210
1312
  }
1211
1313
  );
1212
1314
  });
1213
- var FlexLayout = React34.forwardRef(function FlexLayout2({
1214
- jss,
1215
- gap = "none",
1216
- justify = "none",
1217
- align = "none",
1218
- padding = "none",
1219
- direction = "column",
1220
- ...otherProps
1221
- }, ref) {
1315
+ var Column = React35.forwardRef(function Column2(props, ref) {
1316
+ return /* @__PURE__ */ jsx(FlexLayout, { ref, direction: "column", ...props });
1317
+ });
1318
+ var BaseList = React35.forwardRef(function BaseList2({ jss, ...otherProps }, ref) {
1222
1319
  return /* @__PURE__ */ jsx(
1223
- BaseView,
1320
+ Column,
1224
1321
  {
1225
- ref,
1322
+ ...otherProps,
1323
+ tag: "ul",
1226
1324
  jss: [
1227
1325
  {
1228
- display: "flex",
1229
- flexDirection: direction,
1230
- gap: getSpacing(gap),
1231
- justifyContent: justify,
1232
- alignItems: align
1326
+ listStyle: "none",
1327
+ margin: 0
1233
1328
  },
1234
- getPadding(padding),
1235
1329
  jss
1236
1330
  ],
1237
- ...otherProps
1331
+ ref
1238
1332
  }
1239
1333
  );
1240
1334
  });
1241
- var Column = React34.forwardRef(function Column2(props, ref) {
1242
- return /* @__PURE__ */ jsx(FlexLayout, { ref, direction: "column", ...props });
1243
- });
1244
- var BaseList = React34.forwardRef(function BaseList2({ jss, ...otherProps }, ref) {
1335
+ var BaseListAddOn = React35.forwardRef(function BaseListAddOn2({ jss, ...otherProps }, ref) {
1245
1336
  return /* @__PURE__ */ jsx(
1246
- Column,
1337
+ BaseView,
1247
1338
  {
1248
1339
  ...otherProps,
1249
- tag: "ul",
1250
1340
  jss: [
1251
1341
  {
1252
- listStyle: "none",
1253
- margin: 0,
1254
- paddingTop: 0,
1255
- paddingRight: 0,
1256
- paddingBottom: 0,
1257
- paddingLeft: 0
1342
+ display: "flex",
1343
+ width: 34,
1344
+ height: 34,
1345
+ flex: "0 0 34px",
1346
+ alignItems: "center",
1347
+ justifyContent: "center"
1258
1348
  },
1259
1349
  jss
1260
1350
  ],
@@ -1262,12 +1352,6 @@ var BaseList = React34.forwardRef(function BaseList2({ jss, ...otherProps }, ref
1262
1352
  }
1263
1353
  );
1264
1354
  });
1265
- var BaseListAddOn = React34.forwardRef(function BaseListAddOn2(props, ref) {
1266
- return /* @__PURE__ */ jsx(BaseView, { ...props, ref });
1267
- });
1268
- var Row = React34.forwardRef(function Row2(props, ref) {
1269
- return /* @__PURE__ */ jsx(FlexLayout, { ref, direction: "row", ...props });
1270
- });
1271
1355
  function TextPairing({
1272
1356
  headline,
1273
1357
  body,
@@ -1276,10 +1360,10 @@ function TextPairing({
1276
1360
  headlineAddOn,
1277
1361
  bodyColor = "secondary",
1278
1362
  bodySize = "medium",
1279
- bodyEllipsis = true,
1363
+ bodyEllipsis = false,
1280
1364
  addOn,
1281
1365
  addOnPosition = "start",
1282
- gap = "small",
1366
+ gap = "medium",
1283
1367
  align = "stretch",
1284
1368
  grow,
1285
1369
  shrink,
@@ -1305,12 +1389,14 @@ function TextPairing({
1305
1389
  Row,
1306
1390
  {
1307
1391
  align: "center",
1392
+ gap: "small",
1308
1393
  jss: {
1309
- textAlign: "start"
1394
+ textAlign: "start",
1395
+ minWidth: 0
1310
1396
  },
1311
1397
  children: [
1312
1398
  /* @__PURE__ */ jsx(Text, { bold: headlineBold, color: headlineColor, size: headlineSize, children: headline }),
1313
- headlineAddOn && /* @__PURE__ */ jsx(BaseView, { children: headlineAddOn })
1399
+ headlineAddOn && /* @__PURE__ */ jsx(BaseView, { jss: { flexShrink: 0 }, children: headlineAddOn })
1314
1400
  ]
1315
1401
  }
1316
1402
  ),
@@ -1350,7 +1436,7 @@ function TextPairing({
1350
1436
  }
1351
1437
  return textElement;
1352
1438
  }
1353
- var BaseListItem = React34.forwardRef(function BaseListItem2({
1439
+ var BaseListItem = React35.forwardRef(function BaseListItem2({
1354
1440
  children,
1355
1441
  jss,
1356
1442
  headline,
@@ -1360,6 +1446,7 @@ var BaseListItem = React34.forwardRef(function BaseListItem2({
1360
1446
  body,
1361
1447
  bodySize = "small",
1362
1448
  bodyColor = "secondary",
1449
+ bodyEllipsis = true,
1363
1450
  addOn,
1364
1451
  addOnPosition,
1365
1452
  outerAddOn,
@@ -1385,6 +1472,7 @@ var BaseListItem = React34.forwardRef(function BaseListItem2({
1385
1472
  body,
1386
1473
  bodySize,
1387
1474
  bodyColor: disabled ? "subtle" : bodyColor,
1475
+ bodyEllipsis,
1388
1476
  grow: true,
1389
1477
  shrink: false
1390
1478
  }
@@ -1401,7 +1489,7 @@ var BaseListItem = React34.forwardRef(function BaseListItem2({
1401
1489
  children: children({ content })
1402
1490
  }
1403
1491
  ),
1404
- outerAddOn && /* @__PURE__ */ jsx(BaseView, { role: "gridcell", children: outerAddOn })
1492
+ outerAddOn && /* @__PURE__ */ jsx(BaseListAddOn, { role: "gridcell", children: outerAddOn })
1405
1493
  ] });
1406
1494
  });
1407
1495
  function Box({
@@ -1420,7 +1508,7 @@ function Box({
1420
1508
  }
1421
1509
  );
1422
1510
  }
1423
- var Button = React34.forwardRef(function Button2({
1511
+ var Button = React35.forwardRef(function Button2({
1424
1512
  children,
1425
1513
  color,
1426
1514
  bare,
@@ -1690,7 +1778,7 @@ var THU = dateFormatter.format(new Date(2e3, 1, 10));
1690
1778
  var FRI = dateFormatter.format(new Date(2e3, 1, 11));
1691
1779
  var SAT = dateFormatter.format(new Date(2e3, 1, 12));
1692
1780
  var SUN = dateFormatter.format(new Date(2e3, 1, 13));
1693
- var Calendar = React34.forwardRef(function Calendar2({
1781
+ var Calendar = React35.forwardRef(function Calendar2({
1694
1782
  date,
1695
1783
  cell,
1696
1784
  header,
@@ -1783,6 +1871,11 @@ var variantStyles = {
1783
1871
  backgroundColor: cssVar("--overlay-background"),
1784
1872
  borderRadius: cssVar("--border-radius-xl"),
1785
1873
  boxShadow: cssVar("--shadow-lg")
1874
+ },
1875
+ flat: {
1876
+ backgroundColor: cssVar("--overlay-background"),
1877
+ borderRadius: 0,
1878
+ boxShadow: "none"
1786
1879
  }
1787
1880
  };
1788
1881
  function Card({
@@ -1943,7 +2036,7 @@ function Circle({
1943
2036
  }
1944
2037
  );
1945
2038
  }
1946
- var IconButton = React34.forwardRef(function IconButton2({ icon, color, bare, disabled, jss, label, ...buttonProps }, ref) {
2039
+ var IconButton = React35.forwardRef(function IconButton2({ icon, color, bare, disabled, jss, label, ...buttonProps }, ref) {
1947
2040
  return /* @__PURE__ */ jsxs(
1948
2041
  BaseButton,
1949
2042
  {
@@ -2000,7 +2093,7 @@ function Toggle({
2000
2093
  }
2001
2094
  );
2002
2095
  }
2003
- var DarkModeContext = React34.createContext({
2096
+ var DarkModeContext = React35.createContext({
2004
2097
  enabled: false,
2005
2098
  toggle: () => {
2006
2099
  }
@@ -2067,7 +2160,7 @@ function DarkModeToggle() {
2067
2160
  }
2068
2161
  );
2069
2162
  }
2070
- var InputFrame = React34.forwardRef(function InputFrame2({ children, jss, ...rowProps }, ref) {
2163
+ var InputFrame = React35.forwardRef(function InputFrame2({ children, jss, ...rowProps }, ref) {
2071
2164
  return /* @__PURE__ */ jsx(
2072
2165
  Row,
2073
2166
  {
@@ -2106,7 +2199,7 @@ var InputFrame = React34.forwardRef(function InputFrame2({ children, jss, ...row
2106
2199
  }
2107
2200
  );
2108
2201
  });
2109
- var NumericInputSegment = React34.forwardRef(
2202
+ var NumericInputSegment = React35.forwardRef(
2110
2203
  function NumericInputSegment2({
2111
2204
  value,
2112
2205
  label,
@@ -2663,7 +2756,7 @@ function DateCalendar({
2663
2756
  )
2664
2757
  ] });
2665
2758
  }
2666
- var DateInput = React34.forwardRef(function DateInput2({
2759
+ var DateInput = React35.forwardRef(function DateInput2({
2667
2760
  date,
2668
2761
  onDateChange,
2669
2762
  label,
@@ -2848,7 +2941,7 @@ var styles6 = {
2848
2941
  }
2849
2942
  }
2850
2943
  };
2851
- var DatetimeInput = React34.forwardRef(function DatetimeInput2({ date, onDateChange, jss, icon, addOn, ...inputProps }, ref) {
2944
+ var DatetimeInput = React35.forwardRef(function DatetimeInput2({ date, onDateChange, jss, icon, addOn, ...inputProps }, ref) {
2852
2945
  return /* @__PURE__ */ jsxs(Row, { jss: styles6.root, children: [
2853
2946
  icon && /* @__PURE__ */ jsx(Box, { padding: "medium", children: /* @__PURE__ */ jsx(Icon, { size: "medium", color: "secondary", icon }) }),
2854
2947
  /* @__PURE__ */ jsx(
@@ -2934,7 +3027,7 @@ var Dialog = ({
2934
3027
  /* @__PURE__ */ jsx(BaseView, { jss: styles8.content, children })
2935
3028
  ] });
2936
3029
  };
2937
- var DialogContext = React34.createContext({
3030
+ var DialogContext = React35.createContext({
2938
3031
  setDialog: () => {
2939
3032
  }
2940
3033
  });
@@ -3021,7 +3114,7 @@ function guid() {
3021
3114
  return v.toString(16);
3022
3115
  });
3023
3116
  }
3024
- var IconLink = React34.forwardRef(function IconLink2({ icon, color, bare, disabled, jss, ...otherProps }, ref) {
3117
+ var IconLink = React35.forwardRef(function IconLink2({ icon, color, bare, disabled, jss, ...otherProps }, ref) {
3025
3118
  return /* @__PURE__ */ jsx(
3026
3119
  BaseLink,
3027
3120
  {
@@ -3053,7 +3146,7 @@ var IconLink = React34.forwardRef(function IconLink2({ icon, color, bare, disabl
3053
3146
  }
3054
3147
  );
3055
3148
  });
3056
- var Link = React34.forwardRef(function Link2({
3149
+ var Link = React35.forwardRef(function Link2({
3057
3150
  children,
3058
3151
  color,
3059
3152
  bare,
@@ -3143,6 +3236,7 @@ var Link = React34.forwardRef(function Link2({
3143
3236
  function List({
3144
3237
  ariaLabel,
3145
3238
  jss,
3239
+ gap = "small",
3146
3240
  autofocus = false,
3147
3241
  navigation = true,
3148
3242
  ...otherProps
@@ -3155,11 +3249,12 @@ function List({
3155
3249
  "aria-label": ariaLabel,
3156
3250
  ref: rootRef,
3157
3251
  jss: [{ overflow: "hidden" }, jss],
3252
+ gap,
3158
3253
  ...otherProps
3159
3254
  }
3160
3255
  );
3161
3256
  }
3162
- var ListButtonItem = React34.forwardRef(function ListButtonItem2({
3257
+ var ListButtonItem = React35.forwardRef(function ListButtonItem2({
3163
3258
  onClick,
3164
3259
  color = "secondary",
3165
3260
  disabled = false,
@@ -3218,10 +3313,26 @@ function ListHeaderItem({
3218
3313
  }
3219
3314
  );
3220
3315
  }
3221
- var ListItem = React34.forwardRef(function ListItem2(props, ref) {
3222
- return /* @__PURE__ */ jsx(BaseListItem, { ...props, jss: props.jss, ref, children: ({ content }) => content });
3316
+ var ListItem = React35.forwardRef(function ListItem2({
3317
+ bodyEllipsis = false,
3318
+ bodySize = "medium",
3319
+ padding = "none",
3320
+ ...props
3321
+ }, ref) {
3322
+ return /* @__PURE__ */ jsx(
3323
+ BaseListItem,
3324
+ {
3325
+ ...props,
3326
+ bodyEllipsis,
3327
+ bodySize,
3328
+ padding,
3329
+ jss: props.jss,
3330
+ ref,
3331
+ children: ({ content }) => content
3332
+ }
3333
+ );
3223
3334
  });
3224
- var ListLinkItem = React34.forwardRef(function ListLinkItem2({
3335
+ var ListLinkItem = React35.forwardRef(function ListLinkItem2({
3225
3336
  onClick,
3226
3337
  href,
3227
3338
  disabled = false,
@@ -3780,13 +3891,13 @@ function Providers({
3780
3891
  initialValue: false,
3781
3892
  loadingValue: false
3782
3893
  });
3783
- const toggleDarkMode = React34.useCallback(
3894
+ const toggleDarkMode = React35.useCallback(
3784
3895
  () => setDarkModeEnabled((x) => !x),
3785
3896
  [setDarkModeEnabled]
3786
3897
  );
3787
3898
  return /* @__PURE__ */ jsx(JSSProvider, { themes, children: /* @__PURE__ */ jsx(DarkModeProvider, { enabled: darkModeEnabled, toggle: toggleDarkMode, children: /* @__PURE__ */ jsx(DialogProvider, { children }) }) });
3788
3899
  }
3789
- var RangeInput = React34.forwardRef(function RangeInput2({
3900
+ var RangeInput = React35.forwardRef(function RangeInput2({
3790
3901
  value,
3791
3902
  onValueChange,
3792
3903
  jssRoot,
@@ -3853,7 +3964,7 @@ var RangeInput = React34.forwardRef(function RangeInput2({
3853
3964
  }
3854
3965
  );
3855
3966
  });
3856
- var StackContext = React34.createContext({
3967
+ var StackContext = React35.createContext({
3857
3968
  subscribe: () => {
3858
3969
  return () => {
3859
3970
  };
@@ -3993,7 +4104,7 @@ function Select({
3993
4104
  );
3994
4105
  }
3995
4106
  function stateMachineContextFactory(stateMachineConfig) {
3996
- const StateMachineContext = React34.createContext({
4107
+ const StateMachineContext = React35.createContext({
3997
4108
  subscribe: () => {
3998
4109
  throw new Error("Not implemented");
3999
4110
  },
@@ -4101,7 +4212,7 @@ function createStorage({
4101
4212
  }
4102
4213
  function useStorage(selector) {
4103
4214
  const [localState, setLocalState] = useState(() => selector(state.current));
4104
- const { subscribe } = React34.useContext(StorageContext);
4215
+ const { subscribe } = React35.useContext(StorageContext);
4105
4216
  useEffect(() => {
4106
4217
  return subscribe((newState) => {
4107
4218
  const newLocalState = selector(newState);
@@ -4111,11 +4222,11 @@ function createStorage({
4111
4222
  return localState;
4112
4223
  }
4113
4224
  function useMutation() {
4114
- const { mutate } = React34.useContext(StorageContext);
4225
+ const { mutate } = React35.useContext(StorageContext);
4115
4226
  return mutate;
4116
4227
  }
4117
4228
  function usePersist() {
4118
- const { persist } = React34.useContext(StorageContext);
4229
+ const { persist } = React35.useContext(StorageContext);
4119
4230
  return persist;
4120
4231
  }
4121
4232
  const dbPromise = new Promise((resolve, reject) => {
@@ -4235,7 +4346,7 @@ function Sublist({
4235
4346
  jss,
4236
4347
  secondaryAddOn
4237
4348
  }) {
4238
- const [collapsed, setCollapsed] = React34.useState(initialState.collapsed);
4349
+ const [collapsed, setCollapsed] = React35.useState(initialState.collapsed);
4239
4350
  return /* @__PURE__ */ jsxs(Fragment, { children: [
4240
4351
  /* @__PURE__ */ jsx(
4241
4352
  ListButtonItem,
@@ -4313,8 +4424,7 @@ var styles12 = {
4313
4424
  getMaterial("aurora"),
4314
4425
  {
4315
4426
  borderRadius: cssVar("--border-radius-xl"),
4316
- boxShadow: cssVar("--shadow-md"),
4317
- overflow: "hidden"
4427
+ boxShadow: cssVar("--shadow-md")
4318
4428
  }
4319
4429
  ],
4320
4430
  horizontal: {
@@ -4353,16 +4463,17 @@ var styles12 = {
4353
4463
  borderRadius: cssVar("--border-radius-l"),
4354
4464
  justifyContent: "center",
4355
4465
  textDecoration: "none",
4356
- userSelect: "none"
4466
+ userSelect: "none",
4467
+ ":focus-visible": {
4468
+ outlineOffset: -2
4469
+ }
4357
4470
  },
4358
4471
  horizontalItem: {
4359
4472
  flex: 1,
4360
4473
  minWidth: 0
4361
4474
  },
4362
- floatingItem: {
4363
- ":focus-visible": {
4364
- outlineOffset: -2
4365
- }
4475
+ defaultItem: {
4476
+ borderRadius: 0
4366
4477
  },
4367
4478
  floatingHorizontalItem: {
4368
4479
  minWidth: "auto"
@@ -4387,6 +4498,10 @@ function TabBar({
4387
4498
  ...otherProps
4388
4499
  }) {
4389
4500
  const horizontal = direction === "row";
4501
+ const selectedIndex = tabs.findIndex((tab) => tab.selected === true);
4502
+ const root = useNavigation({
4503
+ initialIndex: selectedIndex === -1 ? 0 : selectedIndex
4504
+ });
4390
4505
  return /* @__PURE__ */ jsxs(
4391
4506
  BaseView,
4392
4507
  {
@@ -4404,6 +4519,7 @@ function TabBar({
4404
4519
  /* @__PURE__ */ jsx(
4405
4520
  FlexLayout,
4406
4521
  {
4522
+ ref: root,
4407
4523
  ...otherProps,
4408
4524
  direction,
4409
4525
  align,
@@ -4415,7 +4531,7 @@ function TabBar({
4415
4531
  const tabJSS = [
4416
4532
  styles12.item,
4417
4533
  horizontal ? styles12.horizontalItem : styles12.verticalItem,
4418
- variant === "floating" && styles12.floatingItem,
4534
+ variant === "default" && styles12.defaultItem,
4419
4535
  variant === "floating" && horizontal && styles12.floatingHorizontalItem,
4420
4536
  selected && {
4421
4537
  backgroundColor: cssVar("--light-highlight")
@@ -4554,6 +4670,7 @@ function Tabs({
4554
4670
  role: "tablist",
4555
4671
  jss: [
4556
4672
  variant === "segmented" && {
4673
+ isolation: "isolate",
4557
4674
  backgroundColor: cssVar("--hovered-background"),
4558
4675
  borderRadius: cssVar("--border-radius-l"),
4559
4676
  maxWidth: "100%",
@@ -4614,9 +4731,10 @@ function Tabs({
4614
4731
  },
4615
4732
  variant === "segmented" && {
4616
4733
  position: "relative",
4734
+ zIndex: selected ? 1 : 0,
4617
4735
  borderRadius: cssVar("--border-radius-m"),
4618
4736
  backgroundColor: selected ? cssVar("--overlay-background") : "transparent",
4619
- boxShadow: selected ? cssVar("--shadow-sm") : "none",
4737
+ boxShadow: selected ? `0 0 0 1px ${cssVar("--divider")}, 0 0 4px color-mix(in srgb, ${cssVar("--primary-text")} 10%, transparent)` : "none",
4620
4738
  transition: `background-color ${cssVar("--transition-fast")}, box-shadow ${cssVar("--transition-fast")}`,
4621
4739
  ":hover": {
4622
4740
  backgroundColor: selected ? cssVar("--overlay-background") : cssVar("--hovered-background")
@@ -4650,7 +4768,7 @@ function Tabs({
4650
4768
  }
4651
4769
  );
4652
4770
  }
4653
- var TextArea = React34.forwardRef(function TextArea2({
4771
+ var TextArea = React35.forwardRef(function TextArea2({
4654
4772
  jss,
4655
4773
  onValueChange,
4656
4774
  value,
@@ -4688,7 +4806,7 @@ var TextArea = React34.forwardRef(function TextArea2({
4688
4806
  }
4689
4807
  );
4690
4808
  });
4691
- var TextInput = React34.forwardRef(function TextInput2({
4809
+ var TextInput = React35.forwardRef(function TextInput2({
4692
4810
  value,
4693
4811
  onValueChange,
4694
4812
  jssRoot,
@@ -4800,7 +4918,7 @@ function parseSegments2(segments, base) {
4800
4918
  minute
4801
4919
  );
4802
4920
  }
4803
- var TimeInput = React34.forwardRef(function TimeInput2({
4921
+ var TimeInput = React35.forwardRef(function TimeInput2({
4804
4922
  time,
4805
4923
  onTimeChange,
4806
4924
  label,
@@ -4916,6 +5034,44 @@ var TimeInput = React34.forwardRef(function TimeInput2({
4916
5034
  field
4917
5035
  ] });
4918
5036
  });
5037
+ var Toolbar = React35.forwardRef(function Toolbar2({
5038
+ headline,
5039
+ body,
5040
+ leading,
5041
+ actions,
5042
+ actionsGap = "medium",
5043
+ headlineColor,
5044
+ headlineSize = "xlarge",
5045
+ headlineBold = true,
5046
+ bodyColor,
5047
+ bodySize,
5048
+ bodyEllipsis = false,
5049
+ gap = "large",
5050
+ align = "center",
5051
+ justify = "space-between",
5052
+ ...otherProps
5053
+ }, ref) {
5054
+ return /* @__PURE__ */ jsxs(Row, { ref, gap, align, justify, ...otherProps, children: [
5055
+ /* @__PURE__ */ jsx(
5056
+ TextPairing,
5057
+ {
5058
+ headline,
5059
+ body,
5060
+ addOn: leading,
5061
+ headlineColor,
5062
+ headlineSize,
5063
+ headlineBold,
5064
+ bodyColor,
5065
+ bodySize,
5066
+ bodyEllipsis,
5067
+ grow: true,
5068
+ shrink: true
5069
+ }
5070
+ ),
5071
+ actions != null && /* @__PURE__ */ jsx(Row, { align: "center", gap: actionsGap, jss: { flexShrink: 0 }, children: actions })
5072
+ ] });
5073
+ });
5074
+ Toolbar.displayName = "Toolbar";
4919
5075
  var styles14 = {
4920
5076
  tooltip: {
4921
5077
  top: "auto",
@@ -5068,6 +5224,6 @@ function usePromise(promiseFactory, inputs, initialValue) {
5068
5224
  return [value, error];
5069
5225
  }
5070
5226
 
5071
- export { Avatar, Badge, BaseButton, BaseInput, BaseLink, BaseLinkComponentOverrideContext, BaseList, BaseListAddOn, BaseListItem, BaseView, Box, Button, ButtonGroup, Calendar, Card, Checkbox, Circle, Column, DESKTOP_MEDIA, DarkModeContext, DarkModeProvider, DarkModeToggle, DateInput, DatetimeInput, Dialog, DialogProvider, FlexLayout, H1, H2, H3, H4, Icon, IconButton, IconLink, JSSProvider, JSServerStyles, LAPTOP, LAPTOP_MEDIA, Label, Li, Link, List, ListButtonItem, ListDivider, ListHeaderItem, ListItem, ListLinkItem, ListSpacer, MOBILE, MOBILE_MEDIA, MenuIcon, NavigationSplitView, OnVisible, P, Popover, PopoverTrigger, ProgressBar, ProgressCircle, Providers, RangeInput, RootView, Row, Select, Span, StackContextProvider, StaticCheckbox, Sublist, SubmitIconInput, TABLET, TABLET_MEDIA, TabBar, Table, Tabs, Text, TextArea, TextInput, TextInputWithState, TextPairing, TimeInput, Toggle, Tooltip, baseStyles, createEmitter, createStorage, cssVar, darkTheme, desktop, getBackground, getBaseStyles, getColorValue, getCookie, getMargin, getMaterial, getPadding, getSize, getSpacing, getTextColor, guid, hasCookie, hash, laptop, lightTheme, mobile, numberToBase, sizes3 as sizes, stateMachineContextFactory, tablet, timeFormatter, toClassnames, useCookie, useDialog, useIsTopOfStack, useKeyboard, useNavigation, usePromise, useRefEffect, useStream };
5227
+ export { Avatar, AvatarStack, Badge, BaseButton, BaseInput, BaseLink, BaseLinkComponentOverrideContext, BaseList, BaseListAddOn, BaseListItem, BaseView, Box, Button, ButtonGroup, Calendar, Card, Checkbox, Circle, Column, DESKTOP_MEDIA, DarkModeContext, DarkModeProvider, DarkModeToggle, DateInput, DatetimeInput, Dialog, DialogProvider, FlexLayout, H1, H2, H3, H4, Icon, IconButton, IconLink, JSSProvider, JSServerStyles, LAPTOP, LAPTOP_MEDIA, Label, Li, Link, List, ListButtonItem, ListDivider, ListHeaderItem, ListItem, ListLinkItem, ListSpacer, MOBILE, MOBILE_MEDIA, MenuIcon, NavigationSplitView, OnVisible, P, Popover, PopoverTrigger, ProgressBar, ProgressCircle, Providers, RangeInput, RootView, Row, Select, Span, StackContextProvider, StaticCheckbox, Sublist, SubmitIconInput, TABLET, TABLET_MEDIA, TabBar, Table, Tabs, Text, TextArea, TextInput, TextInputWithState, TextPairing, TimeInput, Toggle, Toolbar, Tooltip, baseStyles, createEmitter, createStorage, cssVar, darkTheme, desktop, getBackground, getBaseStyles, getColorValue, getCookie, getMargin, getMaterial, getPadding, getSize, getSpacing, getSurface, getTextColor, guid, hasCookie, hash, laptop, lightTheme, mobile, numberToBase, sizes3 as sizes, stateMachineContextFactory, tablet, timeFormatter, toClassnames, useCookie, useDialog, useIsTopOfStack, useKeyboard, useNavigation, usePromise, useRefEffect, useStream };
5072
5228
  //# sourceMappingURL=index.js.map
5073
5229
  //# sourceMappingURL=index.js.map