@vizejs/fresco 0.715.0 → 0.716.0

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 (37) hide show
  1. package/dist/accessibility-OEhyYUxd.d.mts +88 -0
  2. package/dist/accessibility-OEhyYUxd.d.mts.map +1 -0
  3. package/dist/{app-DoXcF_Dn.mjs → app-CIX6NAW-.mjs} +209 -88
  4. package/dist/app-CIX6NAW-.mjs.map +1 -0
  5. package/dist/{app-adHHi99c.d.mts → app-CKsTWQuP.d.mts} +38 -19
  6. package/dist/app-CKsTWQuP.d.mts.map +1 -0
  7. package/dist/components/index.d.mts +2 -2
  8. package/dist/components/index.mjs +2 -2
  9. package/dist/{components-DWIDBGTL.mjs → components-D9SeB0Be.mjs} +511 -374
  10. package/dist/components-D9SeB0Be.mjs.map +1 -0
  11. package/dist/composables/index.d.mts +1 -1
  12. package/dist/composables/index.mjs +3 -3
  13. package/dist/{composables-b_R5s4QQ.mjs → composables-DbJGVNSG.mjs} +3 -3
  14. package/dist/{composables-b_R5s4QQ.mjs.map → composables-DbJGVNSG.mjs.map} +1 -1
  15. package/dist/{index-8MIK02ET.d.mts → index-CWRginDz.d.mts} +283 -637
  16. package/dist/index-CWRginDz.d.mts.map +1 -0
  17. package/dist/{index-B-asCcvK.d.mts → index-Dikou9bu.d.mts} +4 -2
  18. package/dist/{index-B-asCcvK.d.mts.map → index-Dikou9bu.d.mts.map} +1 -1
  19. package/dist/index.d.mts +6 -6
  20. package/dist/index.mjs +8 -5
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/{protocol--xy80nuC.d.mts → protocol-D8xt3DG7.d.mts} +31 -1
  23. package/dist/protocol-D8xt3DG7.d.mts.map +1 -0
  24. package/dist/testing/index.d.mts +8 -2
  25. package/dist/testing/index.d.mts.map +1 -1
  26. package/dist/testing/index.mjs +10 -7
  27. package/dist/testing/index.mjs.map +1 -1
  28. package/dist/{useVirtualViewport-CcJuIc7U.mjs → useVirtualViewport-pPZWmwUC.mjs} +2 -2
  29. package/dist/{useVirtualViewport-CcJuIc7U.mjs.map → useVirtualViewport-pPZWmwUC.mjs.map} +1 -1
  30. package/package.json +2 -2
  31. package/dist/accessibility-D1R9HiTE.d.mts +0 -40
  32. package/dist/accessibility-D1R9HiTE.d.mts.map +0 -1
  33. package/dist/app-DoXcF_Dn.mjs.map +0 -1
  34. package/dist/app-adHHi99c.d.mts.map +0 -1
  35. package/dist/components-DWIDBGTL.mjs.map +0 -1
  36. package/dist/index-8MIK02ET.d.mts.map +0 -1
  37. package/dist/protocol--xy80nuC.d.mts.map +0 -1
@@ -1,5 +1,5 @@
1
- import { i as useInput, r as useMouse, s as useIsScreenReaderEnabled, t as createVirtualViewport } from "./useVirtualViewport-CcJuIc7U.mjs";
2
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, h, mergeProps, onMounted, onUnmounted, openBlock, ref, renderList, renderSlot, unref, watch, withCtx } from "vue";
1
+ import { i as useInput, r as useMouse, s as useIsScreenReaderEnabled, t as createVirtualViewport } from "./useVirtualViewport-pPZWmwUC.mjs";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, h, mergeProps, normalizeStyle, onMounted, onUnmounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useSlots, watch, withCtx } from "vue";
3
3
  //#region src/components/Box.ts
4
4
  /**
5
5
  * Box Component - Container with flexbox layout
@@ -150,17 +150,17 @@ const Box = defineComponent({
150
150
  }
151
151
  });
152
152
  //#endregion
153
- //#region src/components/Spacer.ts
154
- /**
155
- * Spacer Component - flexible empty space along the parent main axis.
156
- */
157
- const Spacer = defineComponent({
153
+ //#region src/components/FrescoSpacer.vue
154
+ var FrescoSpacer_default = /* @__PURE__ */ defineComponent({
158
155
  name: "Spacer",
159
- setup() {
160
- return () => h("box", { style: {
161
- flexGrow: 1,
162
- flexShrink: 1
163
- } });
156
+ __name: "FrescoSpacer",
157
+ setup(__props) {
158
+ return (_ctx, _cache) => {
159
+ return openBlock(), createBlock(unref(Box), {
160
+ "flex-grow": 1,
161
+ "flex-shrink": 1
162
+ });
163
+ };
164
164
  }
165
165
  });
166
166
  //#endregion
@@ -342,66 +342,96 @@ const Grid = defineComponent({
342
342
  }
343
343
  });
344
344
  //#endregion
345
- //#region src/components/Card.ts
346
- /**
347
- * Card Component - Container card with optional header and footer
348
- */
349
- const Card = defineComponent({
350
- name: "Card",
345
+ //#region src/components/FrescoCard.vue?vue&type=script&setup=true&lang.ts
346
+ const _hoisted_1$9 = [
347
+ "border",
348
+ "fg",
349
+ "bg"
350
+ ];
351
+ const _hoisted_2$7 = ["fg"];
352
+ const _hoisted_3$6 = {
353
+ key: 1,
354
+ dim: true
355
+ };
356
+ const _hoisted_4$2 = { dim: true };
357
+ //#endregion
358
+ //#region src/components/FrescoCard.vue
359
+ var FrescoCard_default = /* @__PURE__ */ defineComponent({
360
+ name: "FrescoCard",
361
+ __name: "FrescoCard",
351
362
  props: {
352
- title: String,
353
- subtitle: String,
354
- footer: String,
363
+ title: {
364
+ type: String,
365
+ required: false
366
+ },
367
+ subtitle: {
368
+ type: String,
369
+ required: false
370
+ },
371
+ footer: {
372
+ type: String,
373
+ required: false
374
+ },
355
375
  border: {
356
376
  type: String,
377
+ required: false,
357
378
  default: "rounded"
358
379
  },
359
380
  padding: {
360
381
  type: Number,
382
+ required: false,
361
383
  default: 1
362
384
  },
363
385
  titleFg: {
364
386
  type: String,
387
+ required: false,
365
388
  default: "white"
366
389
  },
367
- borderFg: String,
368
- bg: String
390
+ borderFg: {
391
+ type: String,
392
+ required: false
393
+ },
394
+ bg: {
395
+ type: String,
396
+ required: false
397
+ }
369
398
  },
370
- setup(props, { slots }) {
371
- return () => {
372
- const children = [];
373
- if (props.title || props.subtitle) {
374
- const headerContent = [];
375
- if (props.title) headerContent.push(h("text", {
376
- fg: props.titleFg,
399
+ setup(__props) {
400
+ const slots = useSlots();
401
+ const hasHeader = computed(() => Boolean(__props.title || __props.subtitle));
402
+ const hasFooter = computed(() => Boolean(__props.footer || slots.footer));
403
+ const containerStyle = computed(() => ({
404
+ flexDirection: "column",
405
+ padding: __props.padding
406
+ }));
407
+ const headerStyle = {
408
+ flexDirection: "row",
409
+ marginBottom: 1
410
+ };
411
+ const contentStyle = { flexGrow: 1 };
412
+ const footerStyle = { marginTop: 1 };
413
+ const subtitleLabel = computed(() => __props.subtitle ? __props.title ? ` - ${__props.subtitle}` : __props.subtitle : "");
414
+ return (_ctx, _cache) => {
415
+ return openBlock(), createElementBlock("div", {
416
+ border: __props.border === "none" ? void 0 : __props.border,
417
+ fg: __props.borderFg,
418
+ bg: __props.bg,
419
+ style: normalizeStyle(containerStyle.value)
420
+ }, [
421
+ hasHeader.value ? (openBlock(), createElementBlock("div", {
422
+ key: 0,
423
+ style: headerStyle
424
+ }, [__props.title ? (openBlock(), createElementBlock("text", {
425
+ key: 0,
426
+ fg: __props.titleFg,
377
427
  bold: true
378
- }, props.title));
379
- if (props.subtitle) headerContent.push(h("text", { dim: true }, props.title ? ` - ${props.subtitle}` : props.subtitle));
380
- children.push(h("box", {
381
- key: "header",
382
- style: {
383
- flex_direction: "row",
384
- margin_bottom: 1
385
- }
386
- }, headerContent));
387
- }
388
- children.push(h("box", {
389
- key: "content",
390
- style: { flex_grow: 1 }
391
- }, slots.default?.()));
392
- if (props.footer || slots.footer) children.push(h("box", {
393
- key: "footer",
394
- style: { margin_top: 1 }
395
- }, slots.footer?.() ?? [h("text", { dim: true }, props.footer)]));
396
- return h("box", {
397
- border: props.border === "none" ? void 0 : props.border,
398
- fg: props.borderFg,
399
- bg: props.bg,
400
- style: {
401
- flex_direction: "column",
402
- padding: props.padding
403
- }
404
- }, children);
428
+ }, toDisplayString(__props.title), 9, _hoisted_2$7)) : createCommentVNode("v-if", true), __props.subtitle ? (openBlock(), createElementBlock("text", _hoisted_3$6, toDisplayString(subtitleLabel.value), 1)) : createCommentVNode("v-if", true)])) : createCommentVNode("v-if", true),
429
+ createElementVNode("div", { style: contentStyle }, [renderSlot(_ctx.$slots, "default")]),
430
+ hasFooter.value ? (openBlock(), createElementBlock("div", {
431
+ key: 1,
432
+ style: footerStyle
433
+ }, [renderSlot(_ctx.$slots, "footer", {}, () => [createElementVNode("text", _hoisted_4$2, toDisplayString(__props.footer), 1)])])) : createCommentVNode("v-if", true)
434
+ ], 12, _hoisted_1$9);
405
435
  };
406
436
  }
407
437
  });
@@ -845,80 +875,101 @@ var ScrollBox_default = /* @__PURE__ */ defineComponent({
845
875
  }
846
876
  });
847
877
  //#endregion
848
- //#region src/components/Newline.ts
849
- /**
850
- * Newline Component - inserts one or more newline characters inside Text.
851
- */
852
- const Newline = defineComponent({
878
+ //#region src/components/FrescoNewline.vue?vue&type=script&setup=true&lang.ts
879
+ const _hoisted_1$8 = ["text"];
880
+ //#endregion
881
+ //#region src/components/FrescoNewline.vue
882
+ var FrescoNewline_default = /* @__PURE__ */ defineComponent({
853
883
  name: "Newline",
884
+ __name: "FrescoNewline",
854
885
  props: { count: {
855
886
  type: Number,
887
+ required: false,
856
888
  default: 1
857
889
  } },
858
- setup(props) {
859
- return () => h("text", { text: "\n".repeat(Math.max(0, props.count)) });
890
+ setup(__props) {
891
+ const content = computed(() => "\n".repeat(Math.max(0, __props.count)));
892
+ return (_ctx, _cache) => {
893
+ return openBlock(), createElementBlock("text", { text: content.value }, null, 8, _hoisted_1$8);
894
+ };
860
895
  }
861
896
  });
862
897
  //#endregion
863
- //#region src/components/Static.ts
864
- /**
865
- * Static Component - renders stable items above the live area.
866
- *
867
- * The app renderer treats this component specially: newly added items are
868
- * promoted into a persistent output region above the live frame.
869
- */
870
- const Static = defineComponent({
898
+ //#region src/components/FrescoStatic.vue
899
+ var FrescoStatic_default = /* @__PURE__ */ defineComponent({
871
900
  name: "Static",
901
+ __name: "FrescoStatic",
872
902
  props: {
873
903
  items: {
874
904
  type: Array,
905
+ required: false,
875
906
  default: () => []
876
907
  },
877
- style: Object
908
+ style: {
909
+ type: null,
910
+ required: false
911
+ }
878
912
  },
879
- setup(props, { slots }) {
880
- return () => {
881
- const renderItem = slots.default;
882
- return h("box", {
913
+ setup(__props) {
914
+ const containerStyle = computed(() => ({
915
+ position: "absolute",
916
+ flexDirection: "column",
917
+ ...__props.style
918
+ }));
919
+ const itemStyle = { flexDirection: "column" };
920
+ const renderedItems = computed(() => __props.items.map((item, index) => ({
921
+ item,
922
+ index,
923
+ key: `static-${index}`
924
+ })));
925
+ return (_ctx, _cache) => {
926
+ return openBlock(), createElementBlock("div", {
883
927
  internal_static: true,
884
- style: {
885
- position: "absolute",
886
- flexDirection: "column",
887
- ...props.style
888
- }
889
- }, props.items.map((item, index) => h("box", {
890
- key: index,
891
- internal_static_item: true,
892
- style: { flexDirection: "column" }
893
- }, renderItem?.({
894
- item,
895
- index
896
- }) ?? [])));
928
+ style: normalizeStyle(containerStyle.value)
929
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(renderedItems.value, (entry) => {
930
+ return openBlock(), createElementBlock("div", {
931
+ key: entry.key,
932
+ internal_static_item: true,
933
+ style: itemStyle
934
+ }, [renderSlot(_ctx.$slots, "default", {
935
+ item: entry.item,
936
+ index: entry.index
937
+ })]);
938
+ }), 128))], 4);
897
939
  };
898
940
  }
899
941
  });
900
942
  //#endregion
901
- //#region src/components/Transform.ts
902
- /**
903
- * Transform Component - transforms stringified child output before rendering.
904
- */
905
- const Transform = defineComponent({
943
+ //#region src/components/FrescoTransform.vue?vue&type=script&setup=true&lang.ts
944
+ const _hoisted_1$7 = ["text", "aria-label"];
945
+ //#endregion
946
+ //#region src/components/FrescoTransform.vue
947
+ var FrescoTransform_default = /* @__PURE__ */ defineComponent({
906
948
  name: "Transform",
949
+ __name: "FrescoTransform",
907
950
  props: {
908
- accessibilityLabel: String,
951
+ accessibilityLabel: {
952
+ type: String,
953
+ required: false
954
+ },
909
955
  transform: {
910
956
  type: Function,
911
957
  required: true
912
958
  }
913
959
  },
914
- setup(props, { slots }) {
960
+ setup(__props) {
961
+ const props = __props;
962
+ const slots = useSlots();
915
963
  const isScreenReaderEnabled = useIsScreenReaderEnabled();
916
- return () => {
964
+ const content = computed(() => {
917
965
  const text = stringifyChildren(slots.default?.());
918
- return h("text", {
919
- text: isScreenReaderEnabled && props.accessibilityLabel ? props.accessibilityLabel : text.split("\n").map((line, index) => props.transform(line, index)).join("\n"),
920
- "aria-label": props.accessibilityLabel
921
- });
966
+ return isScreenReaderEnabled && props.accessibilityLabel ? props.accessibilityLabel : text.split("\n").map((line, index) => props.transform(line, index)).join("\n");
967
+ });
968
+ return (_ctx, _cache) => {
969
+ return openBlock(), createElementBlock("text", {
970
+ text: content.value,
971
+ "aria-label": __props.accessibilityLabel
972
+ }, null, 8, _hoisted_1$7);
922
973
  };
923
974
  }
924
975
  });
@@ -1003,40 +1054,50 @@ const Code = defineComponent({
1003
1054
  }
1004
1055
  });
1005
1056
  //#endregion
1006
- //#region src/components/Link.ts
1007
- /**
1008
- * Link Component - Clickable/styled link
1009
- */
1010
- const Link = defineComponent({
1011
- name: "Link",
1057
+ //#region src/components/FrescoLink.vue?vue&type=script&setup=true&lang.ts
1058
+ const _hoisted_1$6 = ["fg", "underline"];
1059
+ const _hoisted_2$6 = {
1060
+ key: 0,
1061
+ dim: true
1062
+ };
1063
+ //#endregion
1064
+ //#region src/components/FrescoLink.vue
1065
+ var FrescoLink_default = /* @__PURE__ */ defineComponent({
1066
+ name: "FrescoLink",
1067
+ __name: "FrescoLink",
1012
1068
  props: {
1013
1069
  text: {
1014
1070
  type: String,
1015
1071
  required: true
1016
1072
  },
1017
- url: String,
1073
+ url: {
1074
+ type: String,
1075
+ required: false
1076
+ },
1018
1077
  fg: {
1019
1078
  type: String,
1079
+ required: false,
1020
1080
  default: "blue"
1021
1081
  },
1022
1082
  underline: {
1023
1083
  type: Boolean,
1084
+ required: false,
1024
1085
  default: true
1025
1086
  },
1026
1087
  showUrl: {
1027
1088
  type: Boolean,
1089
+ required: false,
1028
1090
  default: false
1029
1091
  }
1030
1092
  },
1031
1093
  emits: ["click"],
1032
- setup(props, { emit: _emit }) {
1033
- return () => {
1034
- const parts = [h("text", {
1035
- fg: props.fg,
1036
- underline: props.underline
1037
- }, props.text)];
1038
- if (props.showUrl && props.url) parts.push(h("text", { dim: true }, ` (${props.url})`));
1039
- return h("box", { style: { flex_direction: "row" } }, parts);
1094
+ setup(__props) {
1095
+ const rowStyle = { flexDirection: "row" };
1096
+ return (_ctx, _cache) => {
1097
+ return openBlock(), createElementBlock("div", { style: rowStyle }, [createElementVNode("text", {
1098
+ fg: __props.fg,
1099
+ underline: __props.underline
1100
+ }, toDisplayString(__props.text), 9, _hoisted_1$6), __props.showUrl && __props.url ? (openBlock(), createElementBlock("text", _hoisted_2$6, " (" + toDisplayString(__props.url) + ")", 1)) : createCommentVNode("v-if", true)]);
1040
1101
  };
1041
1102
  }
1042
1103
  });
@@ -1707,13 +1768,16 @@ const Form = defineComponent({
1707
1768
  }
1708
1769
  });
1709
1770
  //#endregion
1710
- //#region src/components/Spinner.ts
1711
- /**
1712
- * Spinner Component - Loading indicator
1713
- */
1714
- /**
1715
- * Spinner frame sets
1716
- */
1771
+ //#region src/components/display-primitive-types.ts
1772
+ /** Default foreground and background colors for each Badge variant. */
1773
+ const badgeVariantColors = {
1774
+ default: { fg: "white" },
1775
+ success: { fg: "green" },
1776
+ warning: { fg: "yellow" },
1777
+ error: { fg: "red" },
1778
+ info: { fg: "cyan" }
1779
+ };
1780
+ /** Built-in animation frame sets for Spinner. */
1717
1781
  const spinnerTypes = {
1718
1782
  dots: [
1719
1783
  "⠋",
@@ -1813,37 +1877,56 @@ const spinnerTypes = {
1813
1877
  "🌏"
1814
1878
  ]
1815
1879
  };
1816
- const Spinner = defineComponent({
1880
+ //#endregion
1881
+ //#region src/components/FrescoSpinner.vue
1882
+ var FrescoSpinner_default = /* @__PURE__ */ defineComponent({
1817
1883
  name: "Spinner",
1884
+ __name: "FrescoSpinner",
1818
1885
  props: {
1819
1886
  type: {
1820
- type: String,
1887
+ type: null,
1888
+ required: false,
1821
1889
  default: "dots"
1822
1890
  },
1823
- frames: Array,
1891
+ frames: {
1892
+ type: Array,
1893
+ required: false
1894
+ },
1824
1895
  interval: {
1825
1896
  type: Number,
1897
+ required: false,
1826
1898
  default: 80
1827
1899
  },
1828
- label: String,
1829
- fg: String
1900
+ label: {
1901
+ type: String,
1902
+ required: false
1903
+ },
1904
+ fg: {
1905
+ type: String,
1906
+ required: false
1907
+ }
1830
1908
  },
1831
- setup(props) {
1909
+ setup(__props) {
1832
1910
  const frameIndex = ref(0);
1911
+ const frames = computed(() => __props.frames ?? spinnerTypes[__props.type] ?? spinnerTypes.dots);
1912
+ const content = computed(() => {
1913
+ const frame = frames.value[frameIndex.value];
1914
+ return __props.label ? `${frame} ${__props.label}` : frame;
1915
+ });
1833
1916
  let timer = null;
1834
- const frames = props.frames ?? spinnerTypes[props.type] ?? spinnerTypes.dots;
1835
1917
  onMounted(() => {
1836
1918
  timer = setInterval(() => {
1837
- frameIndex.value = (frameIndex.value + 1) % frames.length;
1838
- }, props.interval);
1919
+ frameIndex.value = (frameIndex.value + 1) % frames.value.length;
1920
+ }, __props.interval);
1839
1921
  });
1840
1922
  onUnmounted(() => {
1841
1923
  if (timer) clearInterval(timer);
1842
1924
  });
1843
- return () => {
1844
- const frame = frames[frameIndex.value];
1845
- const content = props.label ? `${frame} ${props.label}` : frame;
1846
- return h(Text, { fg: props.fg }, () => content);
1925
+ return (_ctx, _cache) => {
1926
+ return openBlock(), createBlock(unref(Text), {
1927
+ content: content.value,
1928
+ fg: __props.fg
1929
+ }, null, 8, ["content", "fg"]);
1847
1930
  };
1848
1931
  }
1849
1932
  });
@@ -1950,11 +2033,9 @@ defineComponent({
1950
2033
  }
1951
2034
  });
1952
2035
  //#endregion
1953
- //#region src/components/Alert.ts
1954
- /**
1955
- * Alert Component - Alert/notification box
1956
- */
1957
- const ALERT_CONFIG = {
2036
+ //#region src/components/presentational-primitive-types.ts
2037
+ /** Visual defaults for each alert type. */
2038
+ const alertConfigs = {
1958
2039
  info: {
1959
2040
  icon: "ℹ",
1960
2041
  fg: "cyan",
@@ -1976,8 +2057,30 @@ const ALERT_CONFIG = {
1976
2057
  title: "Error"
1977
2058
  }
1978
2059
  };
1979
- const Alert = defineComponent({
1980
- name: "Alert",
2060
+ /** Foreground colors for avatar statuses. */
2061
+ const avatarStatusColors = {
2062
+ online: "green",
2063
+ offline: "gray",
2064
+ away: "yellow",
2065
+ busy: "red"
2066
+ };
2067
+ /** Glyphs for avatar statuses. */
2068
+ const avatarStatusIcons = {
2069
+ online: "●",
2070
+ offline: "○",
2071
+ away: "◐",
2072
+ busy: "⊘"
2073
+ };
2074
+ //#endregion
2075
+ //#region src/components/FrescoAlert.vue?vue&type=script&setup=true&lang.ts
2076
+ const _hoisted_1$5 = ["border", "fg"];
2077
+ const _hoisted_2$5 = ["fg"];
2078
+ const _hoisted_3$5 = ["fg"];
2079
+ //#endregion
2080
+ //#region src/components/FrescoAlert.vue
2081
+ var FrescoAlert_default = /* @__PURE__ */ defineComponent({
2082
+ name: "FrescoAlert",
2083
+ __name: "FrescoAlert",
1981
2084
  props: {
1982
2085
  message: {
1983
2086
  type: String,
@@ -1985,62 +2088,59 @@ const Alert = defineComponent({
1985
2088
  },
1986
2089
  type: {
1987
2090
  type: String,
2091
+ required: false,
1988
2092
  default: "info"
1989
2093
  },
1990
- title: String,
2094
+ title: {
2095
+ type: String,
2096
+ required: false
2097
+ },
1991
2098
  showIcon: {
1992
2099
  type: Boolean,
2100
+ required: false,
1993
2101
  default: true
1994
2102
  },
1995
2103
  border: {
1996
2104
  type: String,
2105
+ required: false,
1997
2106
  default: "rounded"
1998
2107
  }
1999
2108
  },
2000
- setup(props) {
2001
- return () => {
2002
- const config = ALERT_CONFIG[props.type];
2003
- const title = props.title ?? config.title;
2004
- const children = [];
2005
- const headerParts = [];
2006
- if (props.showIcon) headerParts.push(h("text", { fg: config.fg }, `${config.icon} `));
2007
- headerParts.push(h("text", {
2008
- fg: config.fg,
2109
+ setup(__props) {
2110
+ const config = computed(() => alertConfigs[__props.type]);
2111
+ const heading = computed(() => __props.title ?? config.value.title);
2112
+ const iconLabel = computed(() => `${config.value.icon} `);
2113
+ const containerStyle = {
2114
+ flexDirection: "column",
2115
+ padding: 1
2116
+ };
2117
+ const headerStyle = { flexDirection: "row" };
2118
+ const messageStyle = { marginTop: 1 };
2119
+ return (_ctx, _cache) => {
2120
+ return openBlock(), createElementBlock("div", {
2121
+ border: __props.border === "none" ? void 0 : __props.border,
2122
+ fg: config.value.fg,
2123
+ style: containerStyle
2124
+ }, [createElementVNode("div", { style: headerStyle }, [__props.showIcon ? (openBlock(), createElementBlock("text", {
2125
+ key: 0,
2126
+ fg: config.value.fg
2127
+ }, toDisplayString(iconLabel.value), 9, _hoisted_2$5)) : createCommentVNode("v-if", true), createElementVNode("text", {
2128
+ fg: config.value.fg,
2009
2129
  bold: true
2010
- }, title));
2011
- children.push(h("box", {
2012
- key: "header",
2013
- style: { flex_direction: "row" }
2014
- }, headerParts));
2015
- children.push(h("text", {
2016
- key: "message",
2017
- style: { margin_top: 1 }
2018
- }, props.message));
2019
- return h("box", {
2020
- border: props.border === "none" ? void 0 : props.border,
2021
- fg: config.fg,
2022
- style: {
2023
- flex_direction: "column",
2024
- padding: 1
2025
- }
2026
- }, children);
2130
+ }, toDisplayString(heading.value), 9, _hoisted_3$5)]), createElementVNode("text", { style: messageStyle }, toDisplayString(__props.message), 1)], 8, _hoisted_1$5);
2027
2131
  };
2028
2132
  }
2029
2133
  });
2030
2134
  //#endregion
2031
- //#region src/components/Badge.ts
2032
- /**
2033
- * Badge Component - Status badge/tag
2034
- */
2035
- const VARIANT_COLORS = {
2036
- default: { fg: "white" },
2037
- success: { fg: "green" },
2038
- warning: { fg: "yellow" },
2039
- error: { fg: "red" },
2040
- info: { fg: "cyan" }
2041
- };
2042
- const Badge = defineComponent({
2135
+ //#region src/components/FrescoBadge.vue?vue&type=script&setup=true&lang.ts
2136
+ const _hoisted_1$4 = ["fg", "bg"];
2137
+ const _hoisted_2$4 = ["fg", "bg"];
2138
+ const _hoisted_3$4 = ["fg", "bg"];
2139
+ //#endregion
2140
+ //#region src/components/FrescoBadge.vue
2141
+ var FrescoBadge_default = /* @__PURE__ */ defineComponent({
2043
2142
  name: "Badge",
2143
+ __name: "FrescoBadge",
2044
2144
  props: {
2045
2145
  label: {
2046
2146
  type: String,
@@ -2048,37 +2148,47 @@ const Badge = defineComponent({
2048
2148
  },
2049
2149
  variant: {
2050
2150
  type: String,
2151
+ required: false,
2051
2152
  default: "default"
2052
2153
  },
2053
- fg: String,
2054
- bg: String,
2154
+ fg: {
2155
+ type: String,
2156
+ required: false
2157
+ },
2158
+ bg: {
2159
+ type: String,
2160
+ required: false
2161
+ },
2055
2162
  border: {
2056
2163
  type: Boolean,
2164
+ required: false,
2057
2165
  default: false
2058
2166
  }
2059
2167
  },
2060
- setup(props) {
2061
- return () => {
2062
- const colors = VARIANT_COLORS[props.variant];
2063
- const fg = props.fg ?? colors.fg;
2064
- const bg = props.bg ?? colors.bg;
2065
- if (props.border) return h("box", {
2168
+ setup(__props) {
2169
+ const colors = computed(() => badgeVariantColors[__props.variant]);
2170
+ const foreground = computed(() => __props.fg ?? colors.value.fg);
2171
+ const background = computed(() => __props.bg ?? colors.value.bg);
2172
+ const borderStyle = {
2173
+ paddingLeft: 1,
2174
+ paddingRight: 1
2175
+ };
2176
+ return (_ctx, _cache) => {
2177
+ return __props.border ? (openBlock(), createElementBlock("div", {
2178
+ key: 0,
2066
2179
  border: "single",
2067
- fg,
2068
- bg,
2069
- style: {
2070
- padding_left: 1,
2071
- padding_right: 1
2072
- }
2073
- }, [h("text", {
2074
- fg,
2075
- bg
2076
- }, props.label)]);
2077
- return h("text", {
2078
- fg,
2079
- bg,
2180
+ fg: foreground.value,
2181
+ bg: background.value,
2182
+ style: borderStyle
2183
+ }, [createElementVNode("text", {
2184
+ fg: foreground.value,
2185
+ bg: background.value
2186
+ }, toDisplayString(__props.label), 9, _hoisted_2$4)], 8, _hoisted_1$4)) : (openBlock(), createElementBlock("text", {
2187
+ key: 1,
2188
+ fg: foreground.value,
2189
+ bg: background.value,
2080
2190
  bold: true
2081
- }, `[${props.label}]`);
2191
+ }, "[" + toDisplayString(__props.label) + "]", 9, _hoisted_3$4));
2082
2192
  };
2083
2193
  }
2084
2194
  });
@@ -2201,12 +2311,21 @@ const Timer = defineComponent({
2201
2311
  }
2202
2312
  });
2203
2313
  //#endregion
2204
- //#region src/components/Tooltip.ts
2205
- /**
2206
- * Tooltip Component - Tooltip overlay
2207
- */
2208
- const Tooltip = defineComponent({
2209
- name: "Tooltip",
2314
+ //#region src/components/FrescoTooltip.vue?vue&type=script&setup=true&lang.ts
2315
+ const _hoisted_1$3 = { key: 0 };
2316
+ const _hoisted_2$3 = [
2317
+ "border",
2318
+ "bg",
2319
+ "fg"
2320
+ ];
2321
+ const _hoisted_3$3 = ["fg", "bg"];
2322
+ const _hoisted_4$1 = { key: 1 };
2323
+ const _hoisted_5$1 = { key: 1 };
2324
+ //#endregion
2325
+ //#region src/components/FrescoTooltip.vue
2326
+ var FrescoTooltip_default = /* @__PURE__ */ defineComponent({
2327
+ name: "FrescoTooltip",
2328
+ __name: "FrescoTooltip",
2210
2329
  props: {
2211
2330
  text: {
2212
2331
  type: String,
@@ -2214,56 +2333,54 @@ const Tooltip = defineComponent({
2214
2333
  },
2215
2334
  visible: {
2216
2335
  type: Boolean,
2336
+ required: false,
2217
2337
  default: true
2218
2338
  },
2219
2339
  position: {
2220
2340
  type: String,
2341
+ required: false,
2221
2342
  default: "top"
2222
2343
  },
2223
2344
  border: {
2224
2345
  type: String,
2346
+ required: false,
2225
2347
  default: "rounded"
2226
2348
  },
2227
2349
  bg: {
2228
2350
  type: String,
2351
+ required: false,
2229
2352
  default: "white"
2230
2353
  },
2231
2354
  fg: {
2232
2355
  type: String,
2356
+ required: false,
2233
2357
  default: "black"
2234
2358
  }
2235
2359
  },
2236
- setup(props, { slots }) {
2237
- return () => {
2238
- const content = slots.default?.();
2239
- if (!props.visible) return h("box", {}, content);
2240
- const tooltip = h("box", {
2241
- key: "tooltip",
2242
- border: props.border === "none" ? void 0 : props.border,
2243
- bg: props.bg,
2244
- fg: props.fg,
2245
- style: {
2246
- padding_left: 1,
2247
- padding_right: 1
2248
- }
2249
- }, [h("text", {
2250
- fg: props.fg,
2251
- bg: props.bg
2252
- }, props.text)]);
2253
- const children = [];
2254
- switch (props.position) {
2255
- case "top":
2256
- children.push(tooltip);
2257
- children.push(h("box", { key: "content" }, content));
2258
- break;
2259
- case "bottom":
2260
- children.push(h("box", { key: "content" }, content));
2261
- children.push(tooltip);
2262
- break;
2263
- case "left": return h("box", { style: { flex_direction: "row" } }, [tooltip, h("box", { key: "content" }, content)]);
2264
- case "right": return h("box", { style: { flex_direction: "row" } }, [h("box", { key: "content" }, content), tooltip]);
2265
- }
2266
- return h("box", { style: { flex_direction: "column" } }, children);
2360
+ setup(__props) {
2361
+ const containerStyle = computed(() => ({ flexDirection: __props.position === "left" || __props.position === "right" ? "row" : "column" }));
2362
+ const tooltipStyle = {
2363
+ paddingLeft: 1,
2364
+ paddingRight: 1
2365
+ };
2366
+ const contentComesFirst = computed(() => __props.position === "bottom" || __props.position === "right");
2367
+ return (_ctx, _cache) => {
2368
+ return __props.visible ? (openBlock(), createElementBlock("div", {
2369
+ key: 0,
2370
+ style: normalizeStyle(containerStyle.value)
2371
+ }, [
2372
+ contentComesFirst.value ? (openBlock(), createElementBlock("div", _hoisted_1$3, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("v-if", true),
2373
+ createElementVNode("div", {
2374
+ border: __props.border === "none" ? void 0 : __props.border,
2375
+ bg: __props.bg,
2376
+ fg: __props.fg,
2377
+ style: tooltipStyle
2378
+ }, [createElementVNode("text", {
2379
+ fg: __props.fg,
2380
+ bg: __props.bg
2381
+ }, toDisplayString(__props.text), 9, _hoisted_3$3)], 8, _hoisted_2$3),
2382
+ !contentComesFirst.value ? (openBlock(), createElementBlock("div", _hoisted_4$1, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("v-if", true)
2383
+ ], 4)) : (openBlock(), createElementBlock("div", _hoisted_5$1, [renderSlot(_ctx.$slots, "default")]));
2267
2384
  };
2268
2385
  }
2269
2386
  });
@@ -2672,12 +2789,19 @@ const Tabs = defineComponent({
2672
2789
  }
2673
2790
  });
2674
2791
  //#endregion
2675
- //#region src/components/Breadcrumb.ts
2676
- /**
2677
- * Breadcrumb Component - Navigation breadcrumb
2678
- */
2679
- const Breadcrumb = defineComponent({
2680
- name: "Breadcrumb",
2792
+ //#region src/components/FrescoBreadcrumb.vue?vue&type=script&setup=true&lang.ts
2793
+ const _hoisted_1$2 = ["fg"];
2794
+ const _hoisted_2$2 = [
2795
+ "fg",
2796
+ "bold",
2797
+ "underline"
2798
+ ];
2799
+ const _hoisted_3$2 = ["fg"];
2800
+ //#endregion
2801
+ //#region src/components/FrescoBreadcrumb.vue
2802
+ var FrescoBreadcrumb_default = /* @__PURE__ */ defineComponent({
2803
+ name: "FrescoBreadcrumb",
2804
+ __name: "FrescoBreadcrumb",
2681
2805
  props: {
2682
2806
  items: {
2683
2807
  type: Array,
@@ -2685,43 +2809,47 @@ const Breadcrumb = defineComponent({
2685
2809
  },
2686
2810
  separator: {
2687
2811
  type: String,
2812
+ required: false,
2688
2813
  default: " > "
2689
2814
  },
2690
2815
  fg: {
2691
2816
  type: String,
2817
+ required: false,
2692
2818
  default: "gray"
2693
2819
  },
2694
2820
  activeFg: {
2695
2821
  type: String,
2822
+ required: false,
2696
2823
  default: "white"
2697
2824
  },
2698
2825
  separatorFg: {
2699
2826
  type: String,
2827
+ required: false,
2700
2828
  default: "gray"
2701
2829
  }
2702
2830
  },
2703
2831
  emits: ["select"],
2704
- setup(props, { emit: _emit }) {
2705
- return () => {
2706
- return h("box", { style: { flex_direction: "row" } }, props.items.flatMap((item, index) => {
2707
- const isLast = index === props.items.length - 1;
2708
- const result = [];
2709
- if (item.icon) result.push(h("text", {
2710
- key: `icon-${item.key}`,
2711
- fg: isLast ? props.activeFg : props.fg
2712
- }, `${item.icon} `));
2713
- result.push(h("text", {
2714
- key: item.key,
2715
- fg: isLast ? props.activeFg : props.fg,
2716
- bold: isLast,
2717
- underline: !isLast
2718
- }, item.label));
2719
- if (!isLast) result.push(h("text", {
2720
- key: `sep-${item.key}`,
2721
- fg: props.separatorFg
2722
- }, props.separator));
2723
- return result;
2724
- }));
2832
+ setup(__props) {
2833
+ const rowStyle = { flexDirection: "row" };
2834
+ const iconLabel = (item) => item.icon ? `${item.icon} ` : "";
2835
+ return (_ctx, _cache) => {
2836
+ return openBlock(), createElementBlock("div", { style: rowStyle }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
2837
+ return openBlock(), createElementBlock(Fragment, { key: item.key }, [
2838
+ item.icon ? (openBlock(), createElementBlock("text", {
2839
+ key: 0,
2840
+ fg: index === __props.items.length - 1 ? __props.activeFg : __props.fg
2841
+ }, toDisplayString(iconLabel(item)), 9, _hoisted_1$2)) : createCommentVNode("v-if", true),
2842
+ createElementVNode("text", {
2843
+ fg: index === __props.items.length - 1 ? __props.activeFg : __props.fg,
2844
+ bold: index === __props.items.length - 1,
2845
+ underline: index !== __props.items.length - 1
2846
+ }, toDisplayString(item.label), 9, _hoisted_2$2),
2847
+ index !== __props.items.length - 1 ? (openBlock(), createElementBlock("text", {
2848
+ key: 1,
2849
+ fg: __props.separatorFg
2850
+ }, toDisplayString(__props.separator), 9, _hoisted_3$2)) : createCommentVNode("v-if", true)
2851
+ ], 64);
2852
+ }), 128))]);
2725
2853
  };
2726
2854
  }
2727
2855
  });
@@ -2979,75 +3107,85 @@ const StatusBar = defineComponent({
2979
3107
  }
2980
3108
  });
2981
3109
  //#endregion
2982
- //#region src/components/Header.ts
2983
- /**
2984
- * Header Component - Application header
2985
- */
2986
- const Header = defineComponent({
2987
- name: "Header",
3110
+ //#region src/components/FrescoHeader.vue?vue&type=script&setup=true&lang.ts
3111
+ const _hoisted_1$1 = ["bg"];
3112
+ const _hoisted_2$1 = { key: 0 };
3113
+ const _hoisted_3$1 = ["fg"];
3114
+ const _hoisted_4 = ["fg"];
3115
+ const _hoisted_5 = { key: 0 };
3116
+ const _hoisted_6 = {
3117
+ key: 0,
3118
+ dim: true
3119
+ };
3120
+ //#endregion
3121
+ //#region src/components/FrescoHeader.vue
3122
+ var FrescoHeader_default = /* @__PURE__ */ defineComponent({
3123
+ name: "FrescoHeader",
3124
+ __name: "FrescoHeader",
2988
3125
  props: {
2989
3126
  title: {
2990
3127
  type: String,
2991
3128
  required: true
2992
3129
  },
2993
- subtitle: String,
2994
- left: String,
2995
- right: String,
2996
- bg: String,
3130
+ subtitle: {
3131
+ type: String,
3132
+ required: false
3133
+ },
3134
+ left: {
3135
+ type: String,
3136
+ required: false
3137
+ },
3138
+ right: {
3139
+ type: String,
3140
+ required: false
3141
+ },
3142
+ bg: {
3143
+ type: String,
3144
+ required: false
3145
+ },
2997
3146
  titleFg: {
2998
3147
  type: String,
3148
+ required: false,
2999
3149
  default: "white"
3000
3150
  },
3001
3151
  subtitleFg: {
3002
3152
  type: String,
3153
+ required: false,
3003
3154
  default: "gray"
3004
3155
  },
3005
3156
  borderBottom: {
3006
3157
  type: Boolean,
3158
+ required: false,
3007
3159
  default: false
3008
3160
  }
3009
3161
  },
3010
- setup(props, { slots }) {
3011
- return () => {
3012
- const leftContent = slots.left?.() ?? (props.left ? [h("text", {}, props.left)] : []);
3013
- const rightContent = slots.right?.() ?? (props.right ? [h("text", {}, props.right)] : []);
3014
- const centerContent = [h("text", {
3015
- fg: props.titleFg,
3016
- bold: true
3017
- }, props.title)];
3018
- if (props.subtitle) centerContent.push(h("text", {
3019
- fg: props.subtitleFg,
3020
- dim: true
3021
- }, ` - ${props.subtitle}`));
3022
- const children = [h("box", {
3023
- key: "header-content",
3024
- bg: props.bg,
3025
- style: {
3026
- flex_direction: "row",
3027
- justify_content: "space-between",
3028
- align_items: "center",
3029
- width: "100%",
3030
- padding: 1
3031
- }
3162
+ setup(__props) {
3163
+ const rootStyle = { flexDirection: "column" };
3164
+ const contentStyle = {
3165
+ flexDirection: "row",
3166
+ justifyContent: "space-between",
3167
+ alignItems: "center",
3168
+ width: "100%",
3169
+ padding: 1
3170
+ };
3171
+ const rowStyle = { flexDirection: "row" };
3172
+ const borderLabel = "─".repeat(80);
3173
+ return (_ctx, _cache) => {
3174
+ return openBlock(), createElementBlock("div", { style: rootStyle }, [createElementVNode("div", {
3175
+ bg: __props.bg,
3176
+ style: contentStyle
3032
3177
  }, [
3033
- h("box", {
3034
- key: "left",
3035
- style: { flex_direction: "row" }
3036
- }, leftContent),
3037
- h("box", {
3038
- key: "center",
3039
- style: { flex_direction: "row" }
3040
- }, centerContent),
3041
- h("box", {
3042
- key: "right",
3043
- style: { flex_direction: "row" }
3044
- }, rightContent)
3045
- ])];
3046
- if (props.borderBottom) children.push(h("text", {
3047
- key: "border",
3048
- dim: true
3049
- }, "─".repeat(80)));
3050
- return h("box", { style: { flex_direction: "column" } }, children);
3178
+ createElementVNode("div", { style: rowStyle }, [renderSlot(_ctx.$slots, "left", {}, () => [__props.left ? (openBlock(), createElementBlock("text", _hoisted_2$1, toDisplayString(__props.left), 1)) : createCommentVNode("v-if", true)])]),
3179
+ createElementVNode("div", { style: rowStyle }, [createElementVNode("text", {
3180
+ fg: __props.titleFg,
3181
+ bold: true
3182
+ }, toDisplayString(__props.title), 9, _hoisted_3$1), __props.subtitle ? (openBlock(), createElementBlock("text", {
3183
+ key: 0,
3184
+ fg: __props.subtitleFg,
3185
+ dim: true
3186
+ }, " - " + toDisplayString(__props.subtitle), 9, _hoisted_4)) : createCommentVNode("v-if", true)]),
3187
+ createElementVNode("div", { style: rowStyle }, [renderSlot(_ctx.$slots, "right", {}, () => [__props.right ? (openBlock(), createElementBlock("text", _hoisted_5, toDisplayString(__props.right), 1)) : createCommentVNode("v-if", true)])])
3188
+ ], 8, _hoisted_1$1), __props.borderBottom ? (openBlock(), createElementBlock("text", _hoisted_6, toDisplayString(unref(borderLabel)), 1)) : createCommentVNode("v-if", true)]);
3051
3189
  };
3052
3190
  }
3053
3191
  });
@@ -3113,82 +3251,81 @@ const KeyHint = defineComponent({
3113
3251
  }
3114
3252
  });
3115
3253
  //#endregion
3116
- //#region src/components/Avatar.ts
3117
- /**
3118
- * Avatar Component - User avatar display
3119
- */
3120
- const STATUS_COLORS = {
3121
- online: "green",
3122
- offline: "gray",
3123
- away: "yellow",
3124
- busy: "red"
3125
- };
3126
- const STATUS_ICONS = {
3127
- online: "●",
3128
- offline: "○",
3129
- away: "◐",
3130
- busy: "⊘"
3131
- };
3132
- const Avatar = defineComponent({
3133
- name: "Avatar",
3254
+ //#region src/components/FrescoAvatar.vue?vue&type=script&setup=true&lang.ts
3255
+ const _hoisted_1 = ["border", "bg"];
3256
+ const _hoisted_2 = ["fg", "bg"];
3257
+ const _hoisted_3 = ["fg"];
3258
+ //#endregion
3259
+ //#region src/components/FrescoAvatar.vue
3260
+ var FrescoAvatar_default = /* @__PURE__ */ defineComponent({
3261
+ name: "FrescoAvatar",
3262
+ __name: "FrescoAvatar",
3134
3263
  props: {
3135
- name: String,
3136
- initials: String,
3264
+ name: {
3265
+ type: String,
3266
+ required: false
3267
+ },
3268
+ initials: {
3269
+ type: String,
3270
+ required: false
3271
+ },
3137
3272
  size: {
3138
3273
  type: String,
3274
+ required: false,
3139
3275
  default: "md"
3140
3276
  },
3141
3277
  bg: {
3142
3278
  type: String,
3279
+ required: false,
3143
3280
  default: "blue"
3144
3281
  },
3145
3282
  fg: {
3146
3283
  type: String,
3284
+ required: false,
3147
3285
  default: "white"
3148
3286
  },
3149
3287
  border: {
3150
3288
  type: Boolean,
3289
+ required: false,
3151
3290
  default: true
3152
3291
  },
3153
- status: { type: String }
3292
+ status: {
3293
+ type: String,
3294
+ required: false
3295
+ }
3154
3296
  },
3155
- setup(props) {
3156
- return () => {
3157
- let displayInitials = props.initials;
3158
- if (!displayInitials && props.name) {
3159
- const parts = props.name.split(" ").filter(Boolean);
3160
- if (parts.length >= 2) displayInitials = `${parts[0][0]}${parts[1][0]}`.toUpperCase();
3161
- else if (parts.length === 1) displayInitials = parts[0].slice(0, 2).toUpperCase();
3162
- }
3163
- displayInitials = displayInitials || "??";
3164
- const padding = props.size === "sm" ? 0 : props.size === "lg" ? 1 : 0;
3165
- const children = [h("text", {
3166
- fg: props.fg,
3167
- bg: props.bg,
3297
+ setup(__props) {
3298
+ const takeCodePoints = (value, count) => Array.from(value).slice(0, count).join("");
3299
+ const displayInitials = computed(() => {
3300
+ if (__props.initials) return __props.initials;
3301
+ const parts = __props.name?.split(" ").filter(Boolean) ?? [];
3302
+ if (parts.length >= 2) return `${takeCodePoints(parts[0], 1)}${takeCodePoints(parts[1], 1)}`.toUpperCase();
3303
+ if (parts.length === 1) return takeCodePoints(parts[0], 2).toUpperCase();
3304
+ return "??";
3305
+ });
3306
+ const padding = computed(() => __props.size === "lg" ? 1 : 0);
3307
+ const containerStyle = computed(() => ({
3308
+ flexDirection: "row",
3309
+ paddingLeft: padding.value,
3310
+ paddingRight: padding.value
3311
+ }));
3312
+ return (_ctx, _cache) => {
3313
+ return openBlock(), createElementBlock("div", {
3314
+ border: __props.border ? "rounded" : void 0,
3315
+ bg: __props.bg,
3316
+ style: normalizeStyle(containerStyle.value)
3317
+ }, [createElementVNode("text", {
3318
+ fg: __props.fg,
3319
+ bg: __props.bg,
3168
3320
  bold: true
3169
- }, displayInitials)];
3170
- if (props.status) children.push(h("text", { fg: STATUS_COLORS[props.status] }, STATUS_ICONS[props.status]));
3171
- if (props.border) return h("box", {
3172
- border: "rounded",
3173
- bg: props.bg,
3174
- style: {
3175
- flex_direction: "row",
3176
- padding_left: padding,
3177
- padding_right: padding
3178
- }
3179
- }, children);
3180
- return h("box", {
3181
- bg: props.bg,
3182
- style: {
3183
- flex_direction: "row",
3184
- padding_left: padding,
3185
- padding_right: padding
3186
- }
3187
- }, children);
3321
+ }, toDisplayString(displayInitials.value), 9, _hoisted_2), __props.status ? (openBlock(), createElementBlock("text", {
3322
+ key: 0,
3323
+ fg: unref(avatarStatusColors)[__props.status]
3324
+ }, toDisplayString(unref(avatarStatusIcons)[__props.status]), 9, _hoisted_3)) : createCommentVNode("v-if", true)], 12, _hoisted_1);
3188
3325
  };
3189
3326
  }
3190
3327
  });
3191
3328
  //#endregion
3192
- export { Newline as A, Spacer as B, Select as C, Code as D, Link as E, Grid as F, HStack as I, Stack as L, ScrollBar_default as M, Text as N, Transform as O, Card as P, VStack as R, Checkbox as S, TextInput as T, Box as V, ProgressBar as _, Modal as a, Confirm as b, Tabs as c, Table as d, List as f, Alert as g, Badge as h, StatusBar as i, ScrollBox_default as j, Static as k, Menu as l, Timer as m, KeyHint as n, Stepper as o, Tooltip as p, Header as r, Breadcrumb as s, Avatar as t, Tree as u, Spinner as v, TextArea as w, RadioGroup as x, Form as y, Divider as z };
3329
+ export { FrescoNewline_default as A, FrescoSpacer_default as B, Select as C, Code as D, FrescoLink_default as E, Grid as F, HStack as I, Stack as L, ScrollBar_default as M, Text as N, FrescoTransform_default as O, FrescoCard_default as P, VStack as R, Checkbox as S, TextInput as T, Box as V, ProgressBar as _, Modal as a, Confirm as b, Tabs as c, Table as d, List as f, FrescoAlert_default as g, FrescoBadge_default as h, StatusBar as i, ScrollBox_default as j, FrescoStatic_default as k, Menu as l, Timer as m, KeyHint as n, Stepper as o, FrescoTooltip_default as p, FrescoHeader_default as r, FrescoBreadcrumb_default as s, FrescoAvatar_default as t, Tree as u, FrescoSpinner_default as v, TextArea as w, RadioGroup as x, Form as y, Divider as z };
3193
3330
 
3194
- //# sourceMappingURL=components-DWIDBGTL.mjs.map
3331
+ //# sourceMappingURL=components-D9SeB0Be.mjs.map